Compare commits
177 Commits
4.0.3-stab
...
4.0.4-stab
| Author | SHA1 | Date | |
|---|---|---|---|
| fc0b241c9b | |||
| e6a21778de | |||
| 1fe01a7741 | |||
| a0a5cbad57 | |||
| cfedb0a7a6 | |||
| c945ec71d3 | |||
| 2120fcee1c | |||
| 96a480feac | |||
| 07ec20b8fa | |||
| 82ea4b4718 | |||
| b3c74b4874 | |||
| de57ac9227 | |||
| e862643007 | |||
| 7a59ef60ee | |||
| dd2907f9b7 | |||
| 52f583fdee | |||
| 23c1eae8b6 | |||
| 627ddd412e | |||
| 22d3fa7292 | |||
| f9a0ac507c | |||
| 5a82eadd2d | |||
| 31e582b970 | |||
| 39f9c8cd29 | |||
| fa8e3b200e | |||
| 0f23679699 | |||
| 7f8de2df4c | |||
| 131ce4acf6 | |||
| c683fa9971 | |||
| 33618f25fd | |||
| 9acd4cfdfc | |||
| ca65d85d6e | |||
| 96eb16a365 | |||
| a18fe83298 | |||
| 1fcf58d72e | |||
| db7406e6a7 | |||
| 2dfb108a6a | |||
| 31b1f98bba | |||
| 4a747edb6f | |||
| c8e0bd50c5 | |||
| 0164b293f0 | |||
| a3292d6891 | |||
| b11499edce | |||
| d6e0170e94 | |||
| d8caf0a726 | |||
| 101adc3853 | |||
| 78773b74f0 | |||
| 07c4a32a84 | |||
| f05e3712d6 | |||
| 980d95a3ad | |||
| a3951382cd | |||
| 8129d83ee9 | |||
| e7f7fcd145 | |||
| cbdad97829 | |||
| bbfd9914c7 | |||
| d4dc9e4bda | |||
| 740d387a09 | |||
| 5fbf1c230f | |||
| bfd15886de | |||
| b63db1e6fc | |||
| bf8f9e28c8 | |||
| 0649c05756 | |||
| 05eeb8783c | |||
| 88475cfba9 | |||
| fcafb674af | |||
| 13a030de06 | |||
| e4986ad4aa | |||
| d86aa32f8c | |||
| 531b22339a | |||
| f7ee97d6d7 | |||
| 9cae00fae8 | |||
| bfc679b862 | |||
| bcb6154a3b | |||
| b7d741977c | |||
| d56e19b012 | |||
| 5366970863 | |||
| c41ad0f74c | |||
| 7ac0f406aa | |||
| 2900425eeb | |||
| 73650d0fea | |||
| f2738cbd41 | |||
| 2d49b669bb | |||
| 431bcf4880 | |||
| 3a4551450c | |||
| 5ef5ff00a4 | |||
| e75e104e2d | |||
| 0b8fee56e2 | |||
| 4edc22ee6e | |||
| f745ef03a3 | |||
| 52c8c8c174 | |||
| 14f1141abe | |||
| 34b4cce2ff | |||
| 03ce3f5027 | |||
| 98a47218a4 | |||
| 5fdd5fa19d | |||
| bce04919f4 | |||
| 4eefe8a40e | |||
| e22a71aa3c | |||
| 09dc11bff5 | |||
| 314c729d2c | |||
| 9307d851a9 | |||
| 4cf3aff7cc | |||
| 3f98539361 | |||
| b650ba820b | |||
| c58bc21dba | |||
| 506734cae1 | |||
| 67698b155f | |||
| 156862bddb | |||
| dcf6f2b29f | |||
| ce116e4708 | |||
| 566ad9813e | |||
| 2054141848 | |||
| a26dd53faf | |||
| 4cabfc1756 | |||
| 3af3e88d81 | |||
| 2bcad4c55b | |||
| ac1885925c | |||
| acd975a45a | |||
| 72d561c89f | |||
| d00eb58381 | |||
| e46b14fd30 | |||
| 30f079ecb5 | |||
| d6d232a881 | |||
| 142e648000 | |||
| e027c44fe6 | |||
| 84b9202d87 | |||
| d5d02b9a85 | |||
| b686a30a2c | |||
| 5f60f4cdbf | |||
| b845bf8adc | |||
| 3e2c9077dc | |||
| e9ee7bdc9b | |||
| 3d61653e45 | |||
| 227de95dbb | |||
| bb7e88e52a | |||
| 2337d825c1 | |||
| 23dc7047ad | |||
| a07cfcc09e | |||
| d7e50811bc | |||
| 53cb88554a | |||
| c99f67105f | |||
| 4c34531499 | |||
| 8df97cf368 | |||
| 1a1095f986 | |||
| 62d7797cbf | |||
| 0e697e102b | |||
| a44409bf54 | |||
| 484a39c34d | |||
| e72e24b3cc | |||
| 3c2e30b319 | |||
| 412d947dc3 | |||
| b118d89eed | |||
| 2792b520a7 | |||
| fd08e35cd3 | |||
| 465f363c77 | |||
| 605b6e568f | |||
| c5c27e64ea | |||
| a4e8ba9b5d | |||
| 0934545d23 | |||
| 3aea815a05 | |||
| 41b10f1222 | |||
| a7ba5e9939 | |||
| d6e73cabad | |||
| 3fbf460a9f | |||
| dce1b9ce14 | |||
| 4ba4ed6528 | |||
| 6a4bf0a9ad | |||
| 11df2a8f22 | |||
| 290db4a0b6 | |||
| da3f725206 | |||
| fd5dc25240 | |||
| ebc3ac0934 | |||
| 70fa4d26d7 | |||
| 74ac827ac7 | |||
| 75e5bf789d | |||
| d0c0d44cb5 | |||
| 97631f8aa9 | |||
| 5296b91592 |
26
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
26
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -5,18 +5,19 @@ body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
- Read our [CONTRIBUTING.md guide](https://github.com/godotengine/godot/blob/master/CONTRIBUTING.md#reporting-bugs) on reporting bugs.
|
||||
- When reporting bugs, you'll make our life simpler (and the fix will come sooner) if you follow the guidelines in this template.
|
||||
- Write a descriptive issue title above.
|
||||
- Search [open](https://github.com/godotengine/godot/issues) and [closed](https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aclosed) issues to ensure it has not already been reported.
|
||||
- The golden rule is to **always open *one* issue for *one* bug**. If you notice several bugs and want to report them, make sure to create one new issue for each of them.
|
||||
- Search [open](https://github.com/godotengine/godot/issues) and [closed](https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aclosed) issues to ensure it has not already been reported. If you don't find a relevant match or if you're unsure, don't hesitate to **open a new issue**. The bugsquad will handle it from there if it's a duplicate.
|
||||
- Verify that you are using a [supported Godot version](https://docs.godotengine.org/en/stable/about/release_policy.html).
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Godot version
|
||||
description: >
|
||||
Specify the Git commit hash if using a development or non-official build.
|
||||
Specify the Godot version, including the Git commit hash if using a development or non-official build.
|
||||
If you use a custom build, please test if your issue is reproducible in official builds too.
|
||||
placeholder: 3.3.stable, 4.0.dev (3041becc6)
|
||||
placeholder: 3.5.stable, 4.0.dev (3041becc6)
|
||||
validations:
|
||||
required: true
|
||||
|
||||
@ -24,9 +25,12 @@ body:
|
||||
attributes:
|
||||
label: System information
|
||||
description: |
|
||||
Specify the OS version, and when relevant hardware information.
|
||||
For graphics-related issues, specify the GPU model, driver version, and the rendering backend (GLES2, GLES3, Vulkan).
|
||||
placeholder: Windows 10, GLES3, Intel HD Graphics 620 (27.20.100.9616)
|
||||
- Specify the OS version, and when relevant hardware information.
|
||||
- For issues that are likely OS-specific and/or graphics-related, please specify the CPU model and architecture.
|
||||
- For graphics-related issues, specify the GPU model, driver version, and the rendering backend (GLES2, GLES3, Vulkan).
|
||||
- **Bug reports not including the required information may be closed at the maintainers' discretion.** If in doubt, always include all the requested information; it's better to include too much information than not enough information.
|
||||
- **Starting from Godot 4.1, you can copy this information to your clipboard by using *Help > Copy System Info* at the top of the editor window.**
|
||||
placeholder: Windows 10 - Godot v4.0.3.stable - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 970 (nvidia, 510.85.02) - Intel Core i7-10700KF CPU @ 3.80GHz (16 Threads)
|
||||
validations:
|
||||
required: true
|
||||
|
||||
@ -52,8 +56,10 @@ body:
|
||||
attributes:
|
||||
label: Minimal reproduction project
|
||||
description: |
|
||||
A small Godot project which reproduces the issue, with no unnecessary files included. Be sure to not include the `.godot` folder in the archive (but keep `project.godot`).
|
||||
Required, unless the reproduction steps are trivial and don't require any project files to be followed. In this case, write "N/A" in the field.
|
||||
Drag and drop a ZIP archive to upload it. **Do not select another field until the project is done uploading.**
|
||||
- A small Godot project which reproduces the issue, with no unnecessary files included. Be sure to not include the `.godot` folder in the archive (but keep `project.godot`).
|
||||
- Required, unless the reproduction steps are trivial and don't require any project files to be followed. In this case, write "N/A" in the field.
|
||||
- Drag and drop a ZIP archive to upload it. **Do not select another field until the project is done uploading.**
|
||||
- **Note for C# users:** If your issue is *not* Mono-specific, please upload a minimal reproduction project written in GDScript or VisualScript. This will make it easier for contributors to reproduce the issue locally as not everyone has a Mono setup available.
|
||||
- **If you've been asked by a maintainer to upload a minimal reproduction project, you *must* do so within 7 days.** Otherwise, your bug report will be closed as it'll be considered too difficult to diagnose.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
18
.github/actions/download-artifact/action.yml
vendored
Normal file
18
.github/actions/download-artifact/action.yml
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
name: Download Godot artifact
|
||||
description: Download the Godot artifact.
|
||||
inputs:
|
||||
name:
|
||||
description: The artifact name.
|
||||
default: "${{ github.job }}"
|
||||
path:
|
||||
description: The path to download and extract to.
|
||||
required: true
|
||||
default: "./"
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Download Godot Artifact
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: ${{ inputs.name }}
|
||||
path: ${{ inputs.path }}
|
||||
24
.github/actions/godot-api-dump/action.yml
vendored
Normal file
24
.github/actions/godot-api-dump/action.yml
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
name: Dump Godot API
|
||||
description: Dump Godot API for GDExtension
|
||||
inputs:
|
||||
bin:
|
||||
description: The path to the Godot executable
|
||||
required: true
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
# Dump GDExtension interface and API
|
||||
- name: Dump GDExtension interface and API for godot-cpp build
|
||||
shell: sh
|
||||
run: |
|
||||
${{ inputs.bin }} --headless --dump-gdextension-interface --dump-extension-api
|
||||
mkdir godot-api
|
||||
cp -f gdextension_interface.h godot-api/
|
||||
cp -f extension_api.json godot-api/
|
||||
|
||||
- name: Upload API dump
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: 'godot-api-dump'
|
||||
path: './godot-api/*'
|
||||
|
||||
13
.github/actions/godot-cache/action.yml
vendored
13
.github/actions/godot-cache/action.yml
vendored
@ -16,7 +16,20 @@ runs:
|
||||
with:
|
||||
path: ${{inputs.scons-cache}}
|
||||
key: ${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||
|
||||
# We try to match an existing cache to restore from it. Each potential key is checked against
|
||||
# all existing caches as a prefix. E.g. 'linux-template-minimal' would match any cache that
|
||||
# starts with "linux-template-minimal", such as "linux-template-minimal-master-refs/heads/master-6588a4a29af1621086feac0117d5d4d37af957fd".
|
||||
#
|
||||
# We check these prefixes in this order:
|
||||
#
|
||||
# 1. The exact match, including the base branch, the commit reference, and the SHA hash of the commit.
|
||||
# 2. A partial match for the same base branch and the same commit reference.
|
||||
# 3. A partial match for the same base branch and the base branch commit reference.
|
||||
# 4. A partial match for the same base branch only (not ideal, matches any PR with the same base branch).
|
||||
|
||||
restore-keys: |
|
||||
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
|
||||
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-refs/heads/${{env.GODOT_BASE_BRANCH}}
|
||||
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}
|
||||
|
||||
18
.github/actions/godot-converter-test/action.yml
vendored
Normal file
18
.github/actions/godot-converter-test/action.yml
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
name: Test Godot project converter
|
||||
description: Test the Godot project converter.
|
||||
inputs:
|
||||
bin:
|
||||
description: The path to the Godot executable
|
||||
required: true
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Test 3-to-4 conversion
|
||||
shell: sh
|
||||
run: |
|
||||
mkdir converter_test
|
||||
cd converter_test
|
||||
touch project.godot
|
||||
../${{ inputs.bin }} --headless --validate-conversion-3to4
|
||||
cd ..
|
||||
rm converter_test -rf
|
||||
37
.github/actions/godot-project-test/action.yml
vendored
Normal file
37
.github/actions/godot-project-test/action.yml
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
name: Test Godot project
|
||||
description: Run the test Godot project.
|
||||
inputs:
|
||||
bin:
|
||||
description: The path to the Godot executable
|
||||
required: true
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
# Download and extract zip archive with project, folder is renamed to be able to easy change used project
|
||||
- name: Download test project
|
||||
shell: sh
|
||||
run: |
|
||||
wget https://github.com/godotengine/regression-test-project/archive/4.0.zip
|
||||
unzip 4.0.zip
|
||||
mv "regression-test-project-4.0" "test_project"
|
||||
|
||||
# Editor is quite complicated piece of software, so it is easy to introduce bug here.
|
||||
|
||||
- name: Open and close editor (Vulkan)
|
||||
shell: sh
|
||||
run: |
|
||||
xvfb-run ${{ inputs.bin }} --audio-driver Dummy --editor --quit --path test_project 2>&1 | tee sanitizers_log.txt || true
|
||||
misc/scripts/check_ci_log.py sanitizers_log.txt
|
||||
|
||||
- name: Open and close editor (GLES3)
|
||||
shell: sh
|
||||
run: |
|
||||
DRI_PRIME=0 xvfb-run ${{ inputs.bin }} --audio-driver Dummy --rendering-driver opengl3 --editor --quit --path test_project 2>&1 | tee sanitizers_log.txt || true
|
||||
misc/scripts/check_ci_log.py sanitizers_log.txt
|
||||
|
||||
# Run test project
|
||||
- name: Run project
|
||||
shell: sh
|
||||
run: |
|
||||
xvfb-run ${{ inputs.bin }} 40 --audio-driver Dummy --path test_project 2>&1 | tee sanitizers_log.txt || true
|
||||
misc/scripts/check_ci_log.py sanitizers_log.txt
|
||||
54
.github/workflows/godot_cpp_test.yml
vendored
Normal file
54
.github/workflows/godot_cpp_test.yml
vendored
Normal file
@ -0,0 +1,54 @@
|
||||
name: 🪲 Godot CPP
|
||||
on:
|
||||
workflow_call:
|
||||
|
||||
# Global Settings
|
||||
env:
|
||||
# Used for the cache key, and godot-cpp checkout. Add version suffix to force clean build.
|
||||
GODOT_BASE_BRANCH: '4.0'
|
||||
|
||||
concurrency:
|
||||
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-cpp-tests
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
godot-cpp-tests:
|
||||
runs-on: "ubuntu-20.04"
|
||||
name: "Build and test Godot CPP"
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Setup python and scons
|
||||
uses: ./.github/actions/godot-deps
|
||||
|
||||
# Checkout godot-cpp
|
||||
- name: Checkout godot-cpp
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: godotengine/godot-cpp
|
||||
ref: ${{ env.GODOT_BASE_BRANCH }}
|
||||
submodules: 'recursive'
|
||||
path: 'godot-cpp'
|
||||
|
||||
# Download generated API dump
|
||||
- name: Download GDExtension interface and API dump
|
||||
uses: ./.github/actions/download-artifact
|
||||
with:
|
||||
name: 'godot-api-dump'
|
||||
path: './godot-api'
|
||||
|
||||
# Extract and override existing files with generated files
|
||||
- name: Extract GDExtension interface and API dump
|
||||
run: |
|
||||
cp -f godot-api/gdextension_interface.h godot-cpp/gdextension/
|
||||
cp -f godot-api/extension_api.json godot-cpp/gdextension/
|
||||
|
||||
# TODO: Add caching to the scons build and store it for CI via the godot-cache
|
||||
# action.
|
||||
|
||||
# Build godot-cpp test extension
|
||||
- name: Build godot-cpp test extension
|
||||
run: |
|
||||
cd godot-cpp/test
|
||||
scons target=template_debug dev_build=yes
|
||||
cd ../..
|
||||
128
.github/workflows/linux_builds.yml
vendored
128
.github/workflows/linux_builds.yml
vendored
@ -4,7 +4,7 @@ on:
|
||||
|
||||
# Global Settings
|
||||
env:
|
||||
# Used for the cache key, and godot-cpp checkout. Add version suffix to force clean build.
|
||||
# Used for the cache key. Add version suffix to force clean build.
|
||||
GODOT_BASE_BRANCH: '4.0'
|
||||
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes
|
||||
DOTNET_NOLOGO: true
|
||||
@ -25,52 +25,51 @@ jobs:
|
||||
- name: Editor w/ Mono (target=editor)
|
||||
cache-name: linux-editor-mono
|
||||
target: editor
|
||||
tests: false # Disabled due freeze caused by mix Mono build and CI
|
||||
sconsflags: module_mono_enabled=yes
|
||||
doc-test: true
|
||||
bin: "./bin/godot.linuxbsd.editor.x86_64.mono"
|
||||
build-mono: true
|
||||
tests: false # Disabled due freeze caused by mix Mono build and CI
|
||||
doc-test: true
|
||||
proj-conv: true
|
||||
artifact: true
|
||||
|
||||
- name: Editor with doubles and GCC sanitizers (target=editor, tests=yes, dev_build=yes, precision=double, use_asan=yes, use_ubsan=yes, linker=gold)
|
||||
cache-name: linux-editor-double-sanitizers
|
||||
target: editor
|
||||
tests: true
|
||||
# Debug symbols disabled as they're huge on this build and we hit the 14 GB limit for runners.
|
||||
sconsflags: dev_build=yes debug_symbols=no precision=double use_asan=yes use_ubsan=yes linker=gold
|
||||
proj-test: true
|
||||
# Can be turned off for PRs that intentionally break compat with godot-cpp,
|
||||
# until both the upstream PR and the matching godot-cpp changes are merged.
|
||||
godot-cpp-test: true
|
||||
bin: "./bin/godot.linuxbsd.editor.dev.double.x86_64.san"
|
||||
build-mono: false
|
||||
tests: true
|
||||
proj-test: true
|
||||
# Generate an API dump for godot-cpp tests.
|
||||
api-dump: true
|
||||
# Skip 2GiB artifact speeding up action.
|
||||
artifact: false
|
||||
|
||||
- name: Editor with clang sanitizers (target=editor, tests=yes, dev_build=yes, use_asan=yes, use_ubsan=yes, use_llvm=yes, linker=lld)
|
||||
cache-name: linux-editor-llvm-sanitizers
|
||||
target: editor
|
||||
tests: true
|
||||
sconsflags: dev_build=yes use_asan=yes use_ubsan=yes use_llvm=yes linker=lld
|
||||
bin: "./bin/godot.linuxbsd.editor.dev.x86_64.llvm.san"
|
||||
build-mono: false
|
||||
tests: true
|
||||
# Skip 2GiB artifact speeding up action.
|
||||
artifact: false
|
||||
|
||||
- name: Template w/ Mono (target=template_release)
|
||||
cache-name: linux-template-mono
|
||||
target: template_release
|
||||
tests: false
|
||||
sconsflags: module_mono_enabled=yes
|
||||
build-mono: false
|
||||
tests: false
|
||||
artifact: true
|
||||
|
||||
- name: Minimal template (target=template_release, everything disabled)
|
||||
cache-name: linux-template-minimal
|
||||
target: template_release
|
||||
tests: false
|
||||
sconsflags: modules_enabled_by_default=no disable_3d=yes disable_advanced_gui=yes deprecated=no minizip=no
|
||||
tests: false
|
||||
artifact: true
|
||||
|
||||
steps:
|
||||
@ -84,6 +83,12 @@ jobs:
|
||||
sudo add-apt-repository ppa:kisak/kisak-mesa
|
||||
sudo apt-get install -qq mesa-vulkan-drivers
|
||||
|
||||
- name: Free disk space on runner
|
||||
run: |
|
||||
echo "Disk usage before:" && df -h
|
||||
sudo rm -rf /usr/local/lib/android
|
||||
echo "Disk usage after:" && df -h
|
||||
|
||||
- name: Setup Godot build cache
|
||||
uses: ./.github/actions/godot-cache
|
||||
with:
|
||||
@ -120,6 +125,24 @@ jobs:
|
||||
run: |
|
||||
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=linuxbsd
|
||||
|
||||
- name: Prepare artifact
|
||||
if: ${{ matrix.artifact }}
|
||||
run: |
|
||||
strip bin/godot.*
|
||||
chmod +x bin/godot.*
|
||||
|
||||
- name: Upload artifact
|
||||
uses: ./.github/actions/upload-artifact
|
||||
if: ${{ matrix.artifact }}
|
||||
with:
|
||||
name: ${{ matrix.cache-name }}
|
||||
|
||||
- name: Dump Godot API
|
||||
uses: ./.github/actions/godot-api-dump
|
||||
if: ${{ matrix.api-dump }}
|
||||
with:
|
||||
bin: ${{ matrix.bin }}
|
||||
|
||||
# Execute unit tests for the editor
|
||||
- name: Unit tests
|
||||
if: ${{ matrix.tests }}
|
||||
@ -137,79 +160,16 @@ jobs:
|
||||
${{ matrix.bin }} --doctool --headless 2>&1 > /dev/null || true
|
||||
git diff --color --exit-code && ! git ls-files --others --exclude-standard | sed -e 's/^/New doc file missing in PR: /' | grep 'xml$'
|
||||
|
||||
# Test 3.x -> 4.x project converter
|
||||
# Download and run the test project
|
||||
- name: Test Godot project
|
||||
uses: ./.github/actions/godot-project-test
|
||||
if: ${{ matrix.proj-test }}
|
||||
with:
|
||||
bin: ${{ matrix.bin }}
|
||||
|
||||
# Test the project converter
|
||||
- name: Test project converter
|
||||
uses: ./.github/actions/godot-converter-test
|
||||
if: ${{ matrix.proj-conv }}
|
||||
run: |
|
||||
mkdir converter_test
|
||||
cd converter_test
|
||||
touch project.godot
|
||||
../${{ matrix.bin }} --headless --validate-conversion-3to4
|
||||
cd ..
|
||||
rm converter_test -rf
|
||||
|
||||
# Download and extract zip archive with project, folder is renamed to be able to easy change used project
|
||||
- name: Download test project
|
||||
if: ${{ matrix.proj-test }}
|
||||
run: |
|
||||
wget https://github.com/godotengine/regression-test-project/archive/4.0.zip
|
||||
unzip 4.0.zip
|
||||
mv "regression-test-project-4.0" "test_project"
|
||||
|
||||
# Editor is quite complicated piece of software, so it is easy to introduce bug here
|
||||
- name: Open and close editor (Vulkan)
|
||||
if: ${{ matrix.proj-test }}
|
||||
run: |
|
||||
xvfb-run ${{ matrix.bin }} --audio-driver Dummy --editor --quit --path test_project 2>&1 | tee sanitizers_log.txt || true
|
||||
misc/scripts/check_ci_log.py sanitizers_log.txt
|
||||
|
||||
- name: Open and close editor (GLES3)
|
||||
if: ${{ matrix.proj-test }}
|
||||
run: |
|
||||
DRI_PRIME=0 xvfb-run ${{ matrix.bin }} --audio-driver Dummy --rendering-driver opengl3 --editor --quit --path test_project 2>&1 | tee sanitizers_log.txt || true
|
||||
misc/scripts/check_ci_log.py sanitizers_log.txt
|
||||
|
||||
# Run test project
|
||||
- name: Run project
|
||||
if: ${{ matrix.proj-test }}
|
||||
run: |
|
||||
xvfb-run ${{ matrix.bin }} 40 --audio-driver Dummy --path test_project 2>&1 | tee sanitizers_log.txt || true
|
||||
misc/scripts/check_ci_log.py sanitizers_log.txt
|
||||
|
||||
# Checkout godot-cpp
|
||||
- name: Checkout godot-cpp
|
||||
if: ${{ matrix.godot-cpp-test }}
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: godotengine/godot-cpp
|
||||
ref: ${{ env.GODOT_BASE_BRANCH }}
|
||||
submodules: 'recursive'
|
||||
path: 'godot-cpp'
|
||||
|
||||
# Dump GDExtension interface and API
|
||||
- name: Dump GDExtension interface and API for godot-cpp build
|
||||
if: ${{ matrix.godot-cpp-test }}
|
||||
run: |
|
||||
${{ matrix.bin }} --headless --dump-gdextension-interface --dump-extension-api
|
||||
cp -f gdextension_interface.h godot-cpp/gdextension/
|
||||
cp -f extension_api.json godot-cpp/gdextension/
|
||||
|
||||
# Build godot-cpp test extension
|
||||
- name: Build godot-cpp test extension
|
||||
if: ${{ matrix.godot-cpp-test }}
|
||||
run: |
|
||||
cd godot-cpp/test
|
||||
scons target=template_debug dev_build=yes
|
||||
cd ../..
|
||||
|
||||
- name: Prepare artifact
|
||||
if: ${{ matrix.artifact }}
|
||||
run: |
|
||||
strip bin/godot.*
|
||||
chmod +x bin/godot.*
|
||||
|
||||
- name: Upload artifact
|
||||
uses: ./.github/actions/upload-artifact
|
||||
if: ${{ matrix.artifact }}
|
||||
with:
|
||||
name: ${{ matrix.cache-name }}
|
||||
bin: ${{ matrix.bin }}
|
||||
|
||||
16
.github/workflows/macos_builds.yml
vendored
16
.github/workflows/macos_builds.yml
vendored
@ -56,14 +56,6 @@ jobs:
|
||||
target: ${{ matrix.target }}
|
||||
tests: ${{ matrix.tests }}
|
||||
|
||||
# Execute unit tests for the editor
|
||||
- name: Unit tests
|
||||
if: ${{ matrix.tests }}
|
||||
run: |
|
||||
${{ matrix.bin }} --version
|
||||
${{ matrix.bin }} --help
|
||||
${{ matrix.bin }} --test
|
||||
|
||||
- name: Prepare artifact
|
||||
run: |
|
||||
strip bin/godot.*
|
||||
@ -73,3 +65,11 @@ jobs:
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: ${{ matrix.cache-name }}
|
||||
|
||||
# Execute unit tests for the editor
|
||||
- name: Unit tests
|
||||
if: ${{ matrix.tests }}
|
||||
run: |
|
||||
${{ matrix.bin }} --version
|
||||
${{ matrix.bin }} --help
|
||||
${{ matrix.bin }} --test
|
||||
|
||||
16
.github/workflows/runner.yml
vendored
16
.github/workflows/runner.yml
vendored
@ -6,10 +6,14 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
# First stage: Only static checks, fast and prevent expensive builds from running.
|
||||
|
||||
static-checks:
|
||||
name: 📊 Static checks
|
||||
uses: ./.github/workflows/static_checks.yml
|
||||
|
||||
# Second stage: Run all the builds and some of the tests.
|
||||
|
||||
android-build:
|
||||
name: 🤖 Android
|
||||
needs: static-checks
|
||||
@ -39,3 +43,15 @@ jobs:
|
||||
name: 🌐 Web
|
||||
needs: static-checks
|
||||
uses: ./.github/workflows/web_builds.yml
|
||||
|
||||
# Third stage: Run auxiliary tests using build artifacts from previous jobs.
|
||||
|
||||
# Can be turned off for PRs that intentionally break compat with godot-cpp,
|
||||
# until both the upstream PR and the matching godot-cpp changes are merged.
|
||||
godot-cpp-test:
|
||||
name: 🪲 Godot CPP
|
||||
# This can be changed to depend on another platform, if we decide to use it for
|
||||
# godot-cpp instead. Make sure to move the .github/actions/godot-api-dump step
|
||||
# appropriately.
|
||||
needs: linux-build
|
||||
uses: ./.github/workflows/godot_cpp_test.yml
|
||||
|
||||
4
.github/workflows/static_checks.yml
vendored
4
.github/workflows/static_checks.yml
vendored
@ -103,8 +103,8 @@ jobs:
|
||||
|
||||
- name: Spell checks via codespell
|
||||
if: github.event_name == 'pull_request' && env.CHANGED_FILES != ''
|
||||
uses: codespell-project/actions-codespell@v1
|
||||
uses: codespell-project/actions-codespell@v2
|
||||
with:
|
||||
skip: "./bin,./thirdparty,*.desktop,*.gen.*,*.po,*.pot,*.rc,./AUTHORS.md,./COPYRIGHT.txt,./DONORS.md,./core/input/gamecontrollerdb.txt,./core/string/locales.h,./editor/project_converter_3_to_4.cpp,./misc/scripts/codespell.sh,./platform/android/java/lib/src/com,./platform/web/node_modules,./platform/web/package-lock.json"
|
||||
ignore_words_list: "curvelinear,doubleclick,expct,findn,gird,hel,inout,lod,nd,numer,ot,te,vai"
|
||||
ignore_words_list: "curvelinear,doubleclick,expct,findn,gird,hel,inout,lod,mis,nd,numer,ot,te,vai"
|
||||
path: ${{ env.CHANGED_FILES }}
|
||||
|
||||
18
.github/workflows/windows_builds.yml
vendored
18
.github/workflows/windows_builds.yml
vendored
@ -28,7 +28,7 @@ jobs:
|
||||
target: editor
|
||||
tests: true
|
||||
# Skip debug symbols, they're way too big with MSVC.
|
||||
sconsflags: debug_symbols=no vsproj=yes
|
||||
sconsflags: debug_symbols=no vsproj=yes windows_subsystem=console
|
||||
bin: "./bin/godot.windows.editor.x86_64.exe"
|
||||
|
||||
- name: Template (target=template_release)
|
||||
@ -60,14 +60,6 @@ jobs:
|
||||
target: ${{ matrix.target }}
|
||||
tests: ${{ matrix.tests }}
|
||||
|
||||
# Execute unit tests for the editor
|
||||
- name: Unit tests
|
||||
if: ${{ matrix.tests }}
|
||||
run: |
|
||||
${{ matrix.bin }} --version
|
||||
${{ matrix.bin }} --help
|
||||
${{ matrix.bin }} --test
|
||||
|
||||
- name: Prepare artifact
|
||||
run: |
|
||||
Remove-Item bin/* -Include *.exp,*.lib,*.pdb -Force
|
||||
@ -76,3 +68,11 @@ jobs:
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: ${{ matrix.cache-name }}
|
||||
|
||||
# Execute unit tests for the editor
|
||||
- name: Unit tests
|
||||
if: ${{ matrix.tests }}
|
||||
run: |
|
||||
${{ matrix.bin }} --version
|
||||
${{ matrix.bin }} --help
|
||||
${{ matrix.bin }} --test
|
||||
|
||||
2
.mailmap
2
.mailmap
@ -1,4 +1,5 @@
|
||||
Aaron Record <aaronjrecord@gmail.com>
|
||||
ajreckof <66184050+ajreckof@users.noreply.github.com> <tbonhoure@ymail.com>
|
||||
Alexander Holland <alexander.holland@live.de>
|
||||
Alexander Holland <alexander.holland@live.de> <alexander.holland@haw-hamburg.de>
|
||||
Alexander Holland <alexander.holland@live.de> <AlexHolly>
|
||||
@ -105,6 +106,7 @@ marynate <mary.w.nate@gmail.com> <marynate@github.com>
|
||||
Mateo Kuruk Miccino <mateomiccino@gmail.com>
|
||||
Max Hilbrunner <m.hilbrunner@gmail.com>
|
||||
Max Hilbrunner <m.hilbrunner@gmail.com> <mhilbrunner@users.noreply.github.com>
|
||||
MewPurPur <mew.pur.pur@abv.bg>
|
||||
Michael Alexsander <michaelalexsander@protonmail.com>
|
||||
Micky <micheledevita2@gmail.com> <66727710+Mickeon@users.noreply.github.com>
|
||||
Nathan Franke <natfra@pm.me> <nathanwfranke@gmail.com>
|
||||
|
||||
@ -45,12 +45,14 @@ name is available.
|
||||
Anutrix
|
||||
Aren Villanueva (kurikaesu)
|
||||
Ariel Manzur (punto-)
|
||||
AThousandShips
|
||||
Bartłomiej T. Listwon (Listwon)
|
||||
Bastiaan Olij (BastiaanOlij)
|
||||
Ben Brookshire (sheepandshepherd)
|
||||
Benjamin Larsson (Nallebeorn)
|
||||
Bernhard Liebl (poke1024)
|
||||
Bhuvan Vemula (Bhu1-V)
|
||||
bitsawer
|
||||
Błażej Szczygieł (zaps166)
|
||||
Bojidar Marinov (bojidar-bg)
|
||||
Brian Semrau (briansemrau)
|
||||
@ -104,6 +106,7 @@ name is available.
|
||||
Gilles Roudiere (groud)
|
||||
Gordon MacPherson (RevoluPowered)
|
||||
Guilherme Felipe de C. G. da Silva (guilhermefelipecgs)
|
||||
Hakim Rouatbi (hakro)
|
||||
Hanif Bin Ariffin (hbina)
|
||||
Haoyu Qiu (timothyqiu)
|
||||
Hein-Pieter van Braam-Stewart (hpvb)
|
||||
@ -181,6 +184,7 @@ name is available.
|
||||
Michał Iwańczuk (iwek7)
|
||||
MichiRecRoom (LikeLakers2)
|
||||
Micky (Mickeon)
|
||||
Mikael Hermansson (mihe)
|
||||
MinusKube
|
||||
Morris "Tabor" Arroad (mortarroad)
|
||||
mrezai
|
||||
@ -193,6 +197,7 @@ name is available.
|
||||
Nikita Lita (nikitalita)
|
||||
Nils André-Chang (NilsIrl)
|
||||
Noah Beard (TwistedTwigleg)
|
||||
Nông Văn Tình (nongvantinh)
|
||||
Nuno Donato (nunodonato)
|
||||
ocean (they/them) (anvilfolk)
|
||||
Omar El Sheikh (The-O-King)
|
||||
@ -248,6 +253,7 @@ name is available.
|
||||
thebestnom
|
||||
Theo Hallenius (TheoXD)
|
||||
Timo Schwarzer (timoschwarzer)
|
||||
Timothé Bonhoure (ajreckof)
|
||||
Timo (toger5)
|
||||
Tomasz Chabora (KoBeWi)
|
||||
trollodel
|
||||
|
||||
201
CHANGELOG.md
201
CHANGELOG.md
@ -4,6 +4,206 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||
|
||||
## [4.0.4] - 2023-08-02
|
||||
|
||||
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-4-0-4) for details.
|
||||
|
||||
### Added
|
||||
|
||||
#### C#/.NET
|
||||
|
||||
- Add version defines to help users deal with breaking changes ([GH-78270](https://github.com/godotengine/godot/pull/78270)).
|
||||
|
||||
#### Documentation
|
||||
|
||||
- Document GI techniques ignoring VisualInstance3D and Camera3D layers ([GH-74688](https://github.com/godotengine/godot/pull/74688)).
|
||||
- Document how to use the global animation library in GDScript ([GH-74894](https://github.com/godotengine/godot/pull/74894)).
|
||||
- Add more info on the nature of NAN ([GH-75614](https://github.com/godotengine/godot/pull/75614)).
|
||||
- Add Stretch Mode description to ProjectSettings.xml ([GH-76272](https://github.com/godotengine/godot/pull/76272)).
|
||||
- Document seamless caveats on small textures in NoiseTexture2D and NoiseTexture3D ([GH-77017](https://github.com/godotengine/godot/pull/77017)).
|
||||
- Document the database for `Input.get_joy_name()` and `Input.get_joy_guid()` ([GH-77768](https://github.com/godotengine/godot/pull/77768)).
|
||||
- Document the InitialAction enum in RenderingDevice ([GH-77882](https://github.com/godotengine/godot/pull/77882)).
|
||||
- Document ShaderInclude ([GH-78562](https://github.com/godotengine/godot/pull/78562)).
|
||||
|
||||
#### Editor
|
||||
|
||||
- Add an editor option to copy system info to clipboard ([GH-65902](https://github.com/godotengine/godot/pull/65902)).
|
||||
|
||||
#### Input
|
||||
|
||||
- Add support for DPAD Center key of Android TV remote controller ([GH-77115](https://github.com/godotengine/godot/pull/77115)).
|
||||
|
||||
### Changed
|
||||
|
||||
#### 2D
|
||||
|
||||
- Make tile atlas merge dialog use filter nearest on both sides ([GH-77385](https://github.com/godotengine/godot/pull/77385)).
|
||||
- Don't create bones from empty scene ([GH-77473](https://github.com/godotengine/godot/pull/77473)).
|
||||
- Don't disable `Material` and `PlaceholderMaterial` when `disable_3d=yes` ([GH-77654](https://github.com/godotengine/godot/pull/77654)).
|
||||
- Draw materials in tile atlas view ([GH-77909](https://github.com/godotengine/godot/pull/77909)).
|
||||
|
||||
#### Animation
|
||||
|
||||
- Hide Animation Frames section when there are no animations ([GH-77221](https://github.com/godotengine/godot/pull/77221)).
|
||||
- Improve `Skeleton3D::find_bone()` performance ([GH-77307](https://github.com/godotengine/godot/pull/77307)).
|
||||
- Avoid mutating the same Skin multiple times ([GH-77505](https://github.com/godotengine/godot/pull/77505)).
|
||||
|
||||
#### C#/.NET
|
||||
|
||||
- Always decode `dotnet` output as UTF-8 ([GH-74065](https://github.com/godotengine/godot/pull/74065)).
|
||||
- Link the right build property to REAL_T_IS_DOUBLE ([GH-77198](https://github.com/godotengine/godot/pull/77198)).
|
||||
|
||||
#### Editor
|
||||
|
||||
- Use nearest with mipmaps texture filter in SpriteFrames editor plugin ([GH-74341](https://github.com/godotengine/godot/pull/74341)).
|
||||
- Make sure script cache is created after reimport ([GH-75798](https://github.com/godotengine/godot/pull/75798)).
|
||||
- Make SpriteFrames editor toolbar a `FlowContainer` ([GH-77034](https://github.com/godotengine/godot/pull/77034)).
|
||||
- Prevent selecting unselectable `EditorProperty` with RMB ([GH-77148](https://github.com/godotengine/godot/pull/77148)).
|
||||
- Do not translate node name when assigned to an exported field ([GH-77217](https://github.com/godotengine/godot/pull/77217)).
|
||||
- Allow up to INT32_MAX max size in Array/Dictionary editor ([GH-77225](https://github.com/godotengine/godot/pull/77225)).
|
||||
- Avoid error spam on first opening of a not yet imported project ([GH-77276](https://github.com/godotengine/godot/pull/77276)).
|
||||
- Ensure quotes are escaped when converting built-in scripts ([GH-77399](https://github.com/godotengine/godot/pull/77399)).
|
||||
- Ignore the `project_settings_override` file when in editor ([GH-77459](https://github.com/godotengine/godot/pull/77459)).
|
||||
|
||||
#### GDScript
|
||||
|
||||
- Treat `BitField<Enum>` as `int` (not `Enum`) ([GH-77579](https://github.com/godotengine/godot/pull/77579)).
|
||||
|
||||
#### GUI
|
||||
|
||||
- Stop dragging when `Slider` changes editability ([GH-77242](https://github.com/godotengine/godot/pull/77242)).
|
||||
- Use defined key mapping for closing popups and dialogs ([GH-77297](https://github.com/godotengine/godot/pull/77297)).
|
||||
- TextServer: Prevent duplicate line breaks on virtual spaces when line width is significantly smaller than character width ([GH-77514](https://github.com/godotengine/godot/pull/77514)).
|
||||
- Cancel tooltip when mouse leaves viewport ([GH-77933](https://github.com/godotengine/godot/pull/77933)).
|
||||
- Preserve selection when focusing SpinBox ([GH-78092](https://github.com/godotengine/godot/pull/78092)).
|
||||
|
||||
#### Input
|
||||
|
||||
- Improve touchpad and mouse support for the Android editor ([GH-77498](https://github.com/godotengine/godot/pull/77498)).
|
||||
- Skip error messages for buttons that don't exist ([GH-77748](https://github.com/godotengine/godot/pull/77748)).
|
||||
|
||||
#### Rendering
|
||||
|
||||
- Disable AMD switchable graphics on Windows with Vulkan to fix driver issue ([GH-73450](https://github.com/godotengine/godot/pull/73450)).
|
||||
- Take 3D resolution scaling into account for mesh LOD ([GH-77294](https://github.com/godotengine/godot/pull/77294)).
|
||||
|
||||
#### Thirdparty
|
||||
|
||||
- brotli updated to version ed1995b6b.
|
||||
- msdfgen updated to version 1.10.
|
||||
- recast updated to version 1.6.0.
|
||||
- tinyexr updated to version 1.0.5.
|
||||
- wslay updated to version 0e7d106ff.
|
||||
- zstd updated to version 1.5.5.
|
||||
- CA root certificates updated to 2023-06-02 bundle from Mozilla.
|
||||
|
||||
### Fixed
|
||||
|
||||
#### 2D
|
||||
|
||||
- Fix crash when opening a TileSet with invalid tiles ([GH-78165](https://github.com/godotengine/godot/pull/78165)).
|
||||
- Fix crash with failed compatibility tiles ([GH-78796](https://github.com/godotengine/godot/pull/78796)).
|
||||
|
||||
#### 3D
|
||||
|
||||
- Fix CSGPolygon3D in path mode disappearing at runtime ([GH-77118](https://github.com/godotengine/godot/pull/77118)).
|
||||
|
||||
#### Animation
|
||||
|
||||
- Fix type check in AnimationTrackKeyEdit for methods ([GH-74948](https://github.com/godotengine/godot/pull/74948)).
|
||||
- Fix `AnimatedSprite3D` autoplay warning ([GH-77028](https://github.com/godotengine/godot/pull/77028)).
|
||||
- Adjust BoneAttachment3D children/meshes during rest fixer ([GH-77123](https://github.com/godotengine/godot/pull/77123)).
|
||||
- Fix for SkeletonIK3D interpolation and bone roll ([GH-77469](https://github.com/godotengine/godot/pull/77469)).
|
||||
- Fix AnimationPlayer cumulative `speed_scale` ([GH-77500](https://github.com/godotengine/godot/pull/77500)).
|
||||
- Fix adding bones with the same name after calling `Skeleton3D.clear_bones()` ([GH-77874](https://github.com/godotengine/godot/pull/77874)).
|
||||
|
||||
#### Audio
|
||||
|
||||
- Fix trim when importing WAV ([GH-75261](https://github.com/godotengine/godot/pull/75261)).
|
||||
- Fix 2D audio in multiple viewports ([GH-76713](https://github.com/godotengine/godot/pull/76713)).
|
||||
- Fix crash in AudioStream preview ([GH-77664](https://github.com/godotengine/godot/pull/77664)).
|
||||
- Fix issue causing the Android editor to crash when creating a new AudioStreamMicrophone ([GH-77686](https://github.com/godotengine/godot/pull/77686)).
|
||||
|
||||
#### Buildsystem
|
||||
|
||||
- CI: Fix running the unit tests on windows ([GH-76887](https://github.com/godotengine/godot/pull/76887)).
|
||||
- Linux: Fix udev fallback logic with `use_sowrap=no` ([GH-79111](https://github.com/godotengine/godot/pull/79111)).
|
||||
|
||||
#### C#/.NET
|
||||
|
||||
- Fix C# glue generation for enums with negative values ([GH-77018](https://github.com/godotengine/godot/pull/77018)).
|
||||
- Fix `SendToScriptDebugger` crash ([GH-77377](https://github.com/godotengine/godot/pull/77377)).
|
||||
|
||||
#### Core
|
||||
|
||||
- Fix `StringName` comparison ([GH-77197](https://github.com/godotengine/godot/pull/77197)).
|
||||
- Fix calling `TextureStorage::texture_3d_update()` could cause a crash ([GH-77266](https://github.com/godotengine/godot/pull/77266)).
|
||||
|
||||
#### Editor
|
||||
|
||||
- Fix theme of editor VCS dialogs ([GH-75983](https://github.com/godotengine/godot/pull/75983)).
|
||||
- Fix calculation bug with `TextEdit::get_line_height()` ([GH-76605](https://github.com/godotengine/godot/pull/76605)).
|
||||
- Fix Input Map key assignments missing after project conversion ([GH-77134](https://github.com/godotengine/godot/pull/77134)).
|
||||
- Fix `Window` derived nodes being unselectable for `ViewportTexture` `NodePath` ([GH-77312](https://github.com/godotengine/godot/pull/77312)).
|
||||
- Fix crash when using tile atlas merge with recreated alt tile ([GH-77382](https://github.com/godotengine/godot/pull/77382)).
|
||||
- Fix filesystem cache split error ([GH-78324](https://github.com/godotengine/godot/pull/78324)).
|
||||
- Fix saving size in `CreateDialog` ([GH-78403](https://github.com/godotengine/godot/pull/78403)).
|
||||
- Shaders: Exclude incorrect completion options for `render_mode` in shaders ([GH-77086](https://github.com/godotengine/godot/pull/77086)).
|
||||
|
||||
#### GDScript
|
||||
|
||||
- Add missing `script_type` `nullptr` check ([GH-75943](https://github.com/godotengine/godot/pull/75943)).
|
||||
- Fix warning ignoring for member variables ([GH-76203](https://github.com/godotengine/godot/pull/76203)).
|
||||
- Fix `validate_call_arg()` for unresolved datatype ([GH-77091](https://github.com/godotengine/godot/pull/77091)).
|
||||
- Fix extraction of chained `tr()` calls ([GH-77538](https://github.com/godotengine/godot/pull/77538)).
|
||||
|
||||
#### GUI
|
||||
|
||||
- Fix `Range`-derived nodes not redrawing after `set_value_no_signal` ([GH-70834](https://github.com/godotengine/godot/pull/70834)).
|
||||
- Fix adding colors to swatches not updating in previous ColorPickers ([GH-76751](https://github.com/godotengine/godot/pull/76751)).
|
||||
- Fix crash when changing node type from PopupMenu to ItemList ([GH-76854](https://github.com/godotengine/godot/pull/76854)).
|
||||
- Fix `ItemList` item text positions in RTL mode ([GH-77166](https://github.com/godotengine/godot/pull/77166)).
|
||||
- Fix crash when selecting lines in text edit ([GH-77667](https://github.com/godotengine/godot/pull/77667)).
|
||||
- Fix SVG font rendering after ThorVG update ([GH-77942](https://github.com/godotengine/godot/pull/77942)).
|
||||
- Fix disabled slider highlighting ([GH-78776](https://github.com/godotengine/godot/pull/78776)).
|
||||
|
||||
#### Input
|
||||
|
||||
- Fix errors that appear while reordering input map entries ([GH-77009](https://github.com/godotengine/godot/pull/77009)).
|
||||
- Fix spatial viewport multitouch detection support ([GH-78083](https://github.com/godotengine/godot/pull/78083)).
|
||||
|
||||
#### Navigation
|
||||
|
||||
- Fix agent avoidance position not updated when entering SceneTree ([GH-77110](https://github.com/godotengine/godot/pull/77110)).
|
||||
|
||||
#### Networking
|
||||
|
||||
- Fix HTTPClient `_request` using wrong size ([GH-75867](https://github.com/godotengine/godot/pull/75867)).
|
||||
- ENet: Better handle truncated socket messages ([GH-79699](https://github.com/godotengine/godot/pull/79699)).
|
||||
|
||||
#### Particles
|
||||
|
||||
- Correctly reset particle size and rotation in ParticlesProcessMaterial ([GH-78021](https://github.com/godotengine/godot/pull/78021)).
|
||||
- Avoid error spam when (un)pausing GPUParticles out of tree ([GH-78143](https://github.com/godotengine/godot/pull/78143)).
|
||||
|
||||
#### Physics
|
||||
|
||||
- Fix width and center position of `CapsuleShape2D::get_rect` ([GH-77065](https://github.com/godotengine/godot/pull/77065)).
|
||||
|
||||
#### Porting
|
||||
|
||||
- Android: Set pending intent flag to stop insta-crash ([GH-78175](https://github.com/godotengine/godot/pull/78175)).
|
||||
- Windows: Fix for Win+M crashing the editor ([GH-78235](https://github.com/godotengine/godot/pull/78235)).
|
||||
|
||||
#### Rendering
|
||||
|
||||
- Fix typo in FinalAction `switch` statement in RenderingDevice ([GH-75945](https://github.com/godotengine/godot/pull/75945)).
|
||||
- Fix modulation propagation for Y-sorted CanvasItems ([GH-77079](https://github.com/godotengine/godot/pull/77079)).
|
||||
- Fix LightmapGI dynamic object lighting ([GH-77089](https://github.com/godotengine/godot/pull/77089)).
|
||||
- Fix calculation of skinned AABB for unused bones ([GH-77265](https://github.com/godotengine/godot/pull/77265)).
|
||||
- Fix uninitialized Y-sort modulate for CanvasItems ([GH-78134](https://github.com/godotengine/godot/pull/78134)).
|
||||
|
||||
|
||||
## [4.0.3] - 2023-05-19
|
||||
|
||||
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-4-0-3) for details.
|
||||
@ -3106,6 +3306,7 @@ See the [release announcement](https://godotengine.org/article/godot-3-3-has-arr
|
||||
- Only WebAssembly is supported now, since all browsers supporting WebGL 2.0 also support WebAssembly.
|
||||
|
||||
|
||||
[4.0.4]: https://github.com/godotengine/godot/compare/4.0.3-stable...4.0.4-stable
|
||||
[4.0.3]: https://github.com/godotengine/godot/compare/4.0.2-stable...4.0.3-stable
|
||||
[4.0.2]: https://github.com/godotengine/godot/compare/4.0.1-stable...4.0.2-stable
|
||||
[4.0.1]: https://github.com/godotengine/godot/compare/4.0-stable...4.0.1-stable
|
||||
|
||||
@ -8,87 +8,10 @@
|
||||
- [Contributing to Godot's translation](#contributing-to-godots-translation)
|
||||
- [Communicating with developers](#communicating-with-developers)
|
||||
|
||||
**Please read the first section before reporting a bug!**
|
||||
|
||||
## Reporting bugs
|
||||
|
||||
The golden rule is to **always open *one* issue for *one* bug**. If you notice
|
||||
several bugs and want to report them, make sure to create one new issue for
|
||||
each of them.
|
||||
|
||||
If you're reporting a new bug, you'll make our life simpler (and the
|
||||
fix will come sooner) by following these guidelines:
|
||||
|
||||
### Search first in the existing database
|
||||
|
||||
Issues are often reported several times by various users. It's good practice to
|
||||
**search first in the [issue tracker](https://github.com/godotengine/godot/issues)
|
||||
before reporting your issue**. If you don't find a relevant match or if you're
|
||||
unsure, don't hesitate to **open a new issue**. The bugsquad will handle it
|
||||
from there if it's a duplicate.
|
||||
|
||||
### Specify the platform
|
||||
|
||||
Godot runs on a large variety of platforms and operating systems and devices.
|
||||
**In your bug reports, please always specify:**
|
||||
|
||||
- Operating system and version (e.g. Windows 10, macOS 10.15, Ubuntu 19.10)
|
||||
- Godot version (e.g. 3.2, 3.1.2, or the Git commit hash if you're using a development branch)
|
||||
|
||||
For bugs that are likely OS-specific and/or graphics-related, please also specify:
|
||||
|
||||
- Device (CPU model including architecture, e.g. x86_64, arm64, etc.)
|
||||
- GPU model (and the driver version in use if you know it)
|
||||
|
||||
**Bug reports not including the required information may be closed at the
|
||||
maintainers' discretion.** If in doubt, always include all the requested
|
||||
information; it's better to include too much information than not enough
|
||||
information.
|
||||
|
||||
### Specify steps to reproduce
|
||||
|
||||
Many bugs can't be reproduced unless specific steps are taken. Please **specify
|
||||
the exact steps** that must be taken to reproduce the condition, and try to
|
||||
keep them as minimal as possible. If you're describing a procedure to follow
|
||||
in the editor, don't hesitate to include screenshots.
|
||||
|
||||
Making your bug report easy to reproduce will make it easier for contributors
|
||||
to fix the bug.
|
||||
|
||||
### Provide a simple example project
|
||||
|
||||
Sometimes, unexpected behavior can happen in your project. In such case,
|
||||
understand that:
|
||||
|
||||
- What happens to you may not happen to other users.
|
||||
- We can't take the time to look at your project, understand how it is set up
|
||||
and then figure out why it's failing.
|
||||
- On the contributors' end, recreating a test project from scratch takes valuable
|
||||
time that can be saved by uploading a *minimal* project.
|
||||
|
||||
To speed up our work, **please upload a minimal project** that isolates
|
||||
and reproduces the issue. This is always the **best way for us to fix it**.
|
||||
We recommend attaching a ZIP file with the minimal project directly to the bug report,
|
||||
by drag and dropping the file in the GitHub edition field. This ensures the file
|
||||
can remain available for a long period of time. Only use third-party file hosts
|
||||
if your ZIP file isn't accepted by GitHub because it's too large.
|
||||
|
||||
We recommend always attaching a minimal reproduction project, even if the issue
|
||||
may seem simple to reproduce manually.
|
||||
|
||||
**Note for C# users:** If your issue is *not* .NET-specific, please upload a
|
||||
minimal reproduction project written in GDScript.
|
||||
This will make it easier for contributors to reproduce the issue
|
||||
locally as not everyone has a .NET setup available.
|
||||
|
||||
**If you've been asked by a maintainer to upload a minimal reproduction project,
|
||||
you *must* do so within 7 days.** Otherwise, your bug report will be closed as
|
||||
it'll be considered too difficult to diagnose.
|
||||
|
||||
Now that you've read the guidelines, click the link below to create a
|
||||
bug report:
|
||||
|
||||
- **[Report a bug](https://github.com/godotengine/godot/issues/new?assignees=&labels=&template=bug_report.yml)**
|
||||
Report bugs [here](https://github.com/godotengine/godot/issues/new?assignees=&labels=&template=bug_report.yml).
|
||||
Please follow the instructions in the template when you do.
|
||||
|
||||
## Proposing features or improvements
|
||||
|
||||
|
||||
@ -390,7 +390,7 @@ License: BSD-2-clause
|
||||
|
||||
Files: ./thirdparty/msdfgen/
|
||||
Comment: Multi-channel signed distance field generator
|
||||
Copyright: 2016, Viktor Chlumsky
|
||||
Copyright: 2016-2022, Viktor Chlumsky
|
||||
License: MIT
|
||||
|
||||
Files: ./thirdparty/oidn/
|
||||
@ -483,7 +483,7 @@ License: Zlib
|
||||
|
||||
Files: ./thirdparty/zstd/
|
||||
Comment: Zstandard
|
||||
Copyright: 2016-2021, Facebook, Inc.
|
||||
Copyright: Meta Platforms, Inc. and affiliates.
|
||||
License: BSD-3-clause
|
||||
|
||||
|
||||
|
||||
185
DONORS.md
185
DONORS.md
@ -23,20 +23,17 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
## Silver sponsors
|
||||
|
||||
Affray Interactive <https://scp.games/pandemic>
|
||||
Delton Ding
|
||||
Playful Studios <https://playfulstudios.com>
|
||||
Robot Gentleman <http://robotgentleman.com>
|
||||
Striked <https://striked.gg>
|
||||
|
||||
## Bronze sponsors
|
||||
|
||||
ASIFA-Hollywood <https://www.asifa-hollywood.org>
|
||||
Basically Games
|
||||
Bippinbits <https://bippinbits.com>
|
||||
Brandon Lamb
|
||||
Bri
|
||||
Garry Newman
|
||||
Gordon MacPherson
|
||||
Hunter Dickson
|
||||
Isaiah smith
|
||||
Jb Evain
|
||||
Keepsake Games <https://keepsake.games>
|
||||
@ -45,7 +42,6 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Kyle Szklenski
|
||||
Matthew Campbell
|
||||
Maxim Karsten
|
||||
Moonwards <https://www.moonwards.com>
|
||||
Nik Rudenko
|
||||
TrampolineTales <https://trampolinetales.com>
|
||||
|
||||
@ -56,17 +52,12 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Andres Hernandez
|
||||
Andrew Dunai
|
||||
anti666
|
||||
Christian Baune
|
||||
Christopher Montesano
|
||||
Christopher Shifflett
|
||||
Christoph Woinke
|
||||
Daniel Edwards
|
||||
Darrin Massena
|
||||
David Mydlarz
|
||||
Digital Grows
|
||||
Edward Flick
|
||||
Florian Neumann
|
||||
GameDev.net
|
||||
Hein-Pieter van Braam
|
||||
Jonah Stich
|
||||
Justin Arnold
|
||||
@ -74,19 +65,15 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Justo Delgado Baudí
|
||||
Kossi Selom Banybah
|
||||
Lloyd Bond
|
||||
Marcel Kräml
|
||||
Marek Belski
|
||||
Markus Ort
|
||||
Matthieu Huvé
|
||||
Michael
|
||||
Mike King
|
||||
Nassor Paulino da Silva
|
||||
nate-wilkins
|
||||
Nathan Warden
|
||||
Neal Gompa (Conan Kudo)
|
||||
Ninja_5tyl3
|
||||
Nick Macholl
|
||||
Patrick Horn
|
||||
Patrick Schmidt
|
||||
Rami
|
||||
Ronnie Cheng
|
||||
Ryan Heath
|
||||
@ -94,18 +81,15 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
ShikadiGum
|
||||
Slobodan Milnovic
|
||||
Stephan Lanfermann
|
||||
Steve
|
||||
Tim Yuen
|
||||
Violin Iliev
|
||||
Vladimír Chvátil
|
||||
|
||||
## Gold donors
|
||||
|
||||
Acheron
|
||||
Adam Brown
|
||||
albinaask
|
||||
Allen Pestaluky
|
||||
Arisaka Mayuki
|
||||
Asher Glick
|
||||
Barugon
|
||||
Benito
|
||||
@ -115,39 +99,30 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
David Gehrig
|
||||
David Hubber
|
||||
David Snopek
|
||||
Dima Paloskin
|
||||
Ed Morley
|
||||
Frank Kurka
|
||||
Guilherme de Oliveira
|
||||
Guy Kay Jay
|
||||
Javier Roman
|
||||
Joan Fons
|
||||
Jonathan Wright
|
||||
Jon Woodward
|
||||
Karl Werf
|
||||
Klavdij Voncina
|
||||
Maciej Pendolski
|
||||
Manuele Finocchiaro
|
||||
Markus Wiesner
|
||||
Mateo Navarrete
|
||||
Matthew Hillier
|
||||
Officine Pixel S.n.c.
|
||||
Pedro Silva
|
||||
Retro Village
|
||||
Rob Messick
|
||||
Roland Fredenhagen
|
||||
Ronan Zeegers
|
||||
Sarksus
|
||||
Sean
|
||||
Sergey
|
||||
Sofox
|
||||
Taylor Ritenour
|
||||
Stephan Kessler
|
||||
Tom Langwaldt
|
||||
tukon
|
||||
Vagabond Arcade
|
||||
Victor
|
||||
Xeno Coliseum
|
||||
|
||||
␣
|
||||
23BLUENINJA
|
||||
Acheron
|
||||
AdamRatai
|
||||
Alexander Erlemann
|
||||
Alexandre VALIN
|
||||
@ -156,12 +131,10 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Algebrute
|
||||
alice gambrell
|
||||
Alo Mis
|
||||
Andrew Cunningham
|
||||
Andrew Farr
|
||||
Andriy
|
||||
Antanas Paskauskas
|
||||
Antoni Batchelli
|
||||
Ari
|
||||
Arisaka Mayuki
|
||||
Arthur S. Muszynski
|
||||
BasicIncomePlz
|
||||
Brandon Hawkinson
|
||||
@ -172,26 +145,23 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Charlie Whitfield
|
||||
Chris Petrich
|
||||
Chris Serino
|
||||
Collin Rapp
|
||||
Craig Ostrin
|
||||
Craig Scarborough
|
||||
Craig Smith
|
||||
CT
|
||||
CzechBlueBear
|
||||
CzłowiekImadło
|
||||
Daniel Eichler
|
||||
Daniel Grice
|
||||
Daniel Reed
|
||||
Daniel Tebbutt
|
||||
Darrian Little
|
||||
Dennis Belfrage
|
||||
Donn Eddy
|
||||
Emily A. Bellows
|
||||
Eric Brand
|
||||
Eugenio Hugo Salgüero Jáñez
|
||||
Felix Winterhalter
|
||||
flesk
|
||||
Florencio Olsen
|
||||
foxydevloper
|
||||
Fransiska
|
||||
Furroy
|
||||
Gabrielius Vaiškūnas
|
||||
Gary Hulst
|
||||
Geoffroy Warin
|
||||
@ -202,26 +172,18 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Guillaume Pham Ngoc
|
||||
Harry Tumber
|
||||
Harvey Fong
|
||||
Heath Hayes
|
||||
Horváth-Lázár Péter
|
||||
Hu Hund
|
||||
illuxxium
|
||||
Jaap Marsman
|
||||
Jamal Bencharki
|
||||
James Couzens
|
||||
Jared White
|
||||
Jason Yundt
|
||||
Jennifer Wilcox
|
||||
Jesús Chicharro
|
||||
Jihun Moon
|
||||
Joel Fivat
|
||||
Johnathan Kupferer
|
||||
John Stinson
|
||||
Josef Stumpfegger
|
||||
Joshie Sparks
|
||||
Joshua Flores
|
||||
Joshua Lesperance
|
||||
Juan Velandia
|
||||
Judd
|
||||
Julian Todd
|
||||
JUSTIN CARROLL
|
||||
@ -230,15 +192,12 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Khora
|
||||
kickmaniac
|
||||
kinfox
|
||||
Laszlo Kiss
|
||||
leetNightshade
|
||||
Leo Fidel R Liban
|
||||
Liam Smyth
|
||||
LoparPanda
|
||||
Luca Junge
|
||||
Lucaaa
|
||||
Luca Vazzano
|
||||
LyaaaaaGames
|
||||
MadScientistCarl
|
||||
Marcus Dobler
|
||||
Marcus Richter
|
||||
Mark Barrett
|
||||
@ -246,63 +205,58 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Martin Gulliksson
|
||||
Martin Kotz
|
||||
Martin Soucek
|
||||
matt
|
||||
Matt Greene
|
||||
Matthew Dana
|
||||
Max Kryschi
|
||||
Matthieu Huvé
|
||||
Michael Dürwald
|
||||
Michael Policastro
|
||||
MikadoSC
|
||||
n00sh
|
||||
nate etan
|
||||
Nicola Cocchiaro
|
||||
Nicolás Monner Sans
|
||||
Nikita Blizniuk
|
||||
Nikita Rotskov
|
||||
Nikola Whallon
|
||||
Oliver Dick
|
||||
Otis Clark
|
||||
Patrick Wuttke
|
||||
Patryk Pluta (vrid)
|
||||
Paul Hocker
|
||||
Paul Von Zimmerman
|
||||
Pete Goodwin
|
||||
Petr Malac
|
||||
Petrus Prinsloo
|
||||
Philip Woods
|
||||
RAMupgrade
|
||||
Rebekah Farr
|
||||
red1939
|
||||
Reilt
|
||||
Rene Tailleur
|
||||
Rhodochrone
|
||||
Rickard Hermanson
|
||||
Rob
|
||||
Rob McInroy
|
||||
RodZilla
|
||||
Romeo Disca
|
||||
Ronan Zeegers
|
||||
Ronnie Ashlock
|
||||
Ronny Mühle
|
||||
Russ
|
||||
Ryan Breaker
|
||||
Ryan Miller
|
||||
Ryan Scott
|
||||
"Sage Automatic Systems, LLC"
|
||||
Samuel Hummerstone
|
||||
Samuel Judd
|
||||
schroedinger's possum
|
||||
Shishir Tandale
|
||||
Sing Chun Lee
|
||||
SKison
|
||||
Song Junwoo
|
||||
spacechase0
|
||||
SpicyCactuar
|
||||
Stephan Hennion
|
||||
Steven Landow
|
||||
Stoned Xander
|
||||
sus
|
||||
Talii
|
||||
Teslatech
|
||||
Thomas Bjarnelöf
|
||||
Thomas Kurz
|
||||
Tim Nedvyga
|
||||
Tobias Bocanegra
|
||||
Tobias Raggl
|
||||
Tom Glenn
|
||||
Torbulous
|
||||
toto bibi
|
||||
Troy Kinsella
|
||||
@ -319,12 +273,11 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
|
||||
## Silver donors
|
||||
|
||||
Aaron Adriano
|
||||
Aaron Mayfield
|
||||
Aaron Oldenburg
|
||||
Adam Brunnmeier
|
||||
Adam Carr
|
||||
Adam Long
|
||||
Adam McCurdy
|
||||
Adam N Webber
|
||||
Adam Smeltzer
|
||||
Adinimys
|
||||
@ -333,17 +286,15 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Adrien de Pierres
|
||||
Agustinus Arya
|
||||
Aidan O'Flannagain
|
||||
Aiguo Wang
|
||||
ajaxcc
|
||||
Aki Mimoto
|
||||
Akio Yamazaki
|
||||
Alan Beauchamp
|
||||
Albert Gyulgazyan
|
||||
Alberto Salazar Muñoz
|
||||
Alberto Vilches
|
||||
Alder Stefano
|
||||
Alejandro Saucedo
|
||||
AleMax
|
||||
Alessandro Senese
|
||||
Alex Clavelle
|
||||
Alex de la Mare
|
||||
alex raeside
|
||||
@ -354,6 +305,7 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Andrew
|
||||
Andrew Groot
|
||||
andrew james morris
|
||||
Andy Baird
|
||||
Ano Nim
|
||||
Anthony Avina
|
||||
Anton Bouwer
|
||||
@ -361,8 +313,8 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Arda Erol
|
||||
Arthur Brainville
|
||||
Arturo Rosales
|
||||
Ash K
|
||||
Aubrey Falconer
|
||||
Auré Franky
|
||||
aurelien condomines
|
||||
Austin Miller
|
||||
Azar Gurbanov
|
||||
@ -372,11 +324,9 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Benedikt
|
||||
Ben Vercammen
|
||||
Ben Visness
|
||||
Bernhard Werner
|
||||
Bill Thibault
|
||||
bitbrain
|
||||
Bjarne Voigtländer
|
||||
Black Block
|
||||
Brady Goldsworthy
|
||||
Bram
|
||||
Brian
|
||||
@ -388,7 +338,6 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Cameron Meyer
|
||||
Carlos Rios
|
||||
Carl van der Geest
|
||||
Casey
|
||||
Cesar Ruiz
|
||||
Chad Steadman
|
||||
Checkpoint Charlie
|
||||
@ -397,13 +346,14 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Chris Jagusch
|
||||
Chris Langford
|
||||
Chris Ridenour
|
||||
Christer Stenbrenden
|
||||
Christian Alexander Bjørklund Bøhler
|
||||
Christian Kaltenecker
|
||||
Christian Mauduit
|
||||
Christian Scholz
|
||||
Christian Winter
|
||||
Christoffer Dahlblom
|
||||
Christoph Czurda
|
||||
Christophe Gagnier
|
||||
Ciyvius
|
||||
Codex404
|
||||
Cody Parker
|
||||
Conall O
|
||||
@ -413,11 +363,12 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
CrispyPin
|
||||
cynwav
|
||||
Dakota Watkins
|
||||
Daniel H. Bahr
|
||||
Daniel Hoffmann
|
||||
Danielle
|
||||
Daniel Ramos
|
||||
Dare Looks
|
||||
Daren Scot Wilson
|
||||
Dave Jansen
|
||||
Davesnothere
|
||||
David Baker
|
||||
David Bôle
|
||||
@ -428,36 +379,33 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Dimitri Roche
|
||||
Dominik Wetzel
|
||||
Donovan Hutcheon
|
||||
Douglas Plumley
|
||||
Doug Walker
|
||||
Dragontrapper
|
||||
dragoon
|
||||
Dr Ewan Murray
|
||||
Ducky
|
||||
Duobix
|
||||
Duodecimal
|
||||
edisonlee55
|
||||
Eduardo Teixeira
|
||||
Edward Herbert
|
||||
Edward Swartz
|
||||
Egon Elbre
|
||||
Elias Nykrem
|
||||
Elgenzay
|
||||
Elijah Anderson
|
||||
Emerson MX
|
||||
Ends
|
||||
Ephemeral
|
||||
Eric Stokes
|
||||
Eric Walkingshaw
|
||||
Eric Williams
|
||||
Erkki Seppälä
|
||||
Ewan Holmes
|
||||
Faisal Alkubaisi
|
||||
Fault Boy
|
||||
fby
|
||||
Felix Adam
|
||||
Fer DC
|
||||
Filip Lundby
|
||||
Frank
|
||||
fumangy
|
||||
Frank Kurka
|
||||
Frying☆Pan
|
||||
Game Endeavor
|
||||
Garrett Steffen
|
||||
Gary Thomas
|
||||
@ -473,23 +421,20 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Guo Hongci
|
||||
Hans Jorgensen
|
||||
Haplo
|
||||
Helge Maus
|
||||
Helianthus Games
|
||||
Heribert Hirth
|
||||
Ian Richard Kunert
|
||||
Ian Williams
|
||||
Interstice
|
||||
itsybitesyspider
|
||||
iveks
|
||||
Jacob D
|
||||
Jaguar
|
||||
Jake D
|
||||
Jako Danar
|
||||
James
|
||||
James A F Manley
|
||||
James Duran
|
||||
James Gary
|
||||
James Thomas
|
||||
Jamie Massey
|
||||
Janis Skuja
|
||||
Jan Vetulani
|
||||
JARKKO PARVIAINEN
|
||||
Jason Evans
|
||||
Jason Uechi
|
||||
@ -498,8 +443,6 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Jennifer Graves
|
||||
Jesse Dubay
|
||||
João Pedro Braz
|
||||
Joe Hurdle
|
||||
Joe Klemmer
|
||||
John Barlex
|
||||
John Bruce
|
||||
John Palgut
|
||||
@ -514,67 +457,69 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Jonathan G
|
||||
Jon Sully
|
||||
Jordy Goodridge
|
||||
Jose Francisco 'Yiro' Vera Girona
|
||||
Joseph Catrambone
|
||||
Josh Segall
|
||||
Josh Taylor
|
||||
Joshua Heidrich
|
||||
Jozef Krcho
|
||||
Juanfran
|
||||
Juan Maggi
|
||||
Juan Uys
|
||||
Jueast
|
||||
Julian le Roux
|
||||
Julian Murgia
|
||||
Julien Kaspar
|
||||
Justin Hamilton
|
||||
Justin Spedding
|
||||
Justin Zander
|
||||
J Vetulani
|
||||
Kalydi Balázs
|
||||
Katsuomi Kobayashi
|
||||
Keedong Park
|
||||
Keegan Scott
|
||||
Keinan Powers
|
||||
Keith Bradner
|
||||
Kenji Kawabata
|
||||
Ken Minardo
|
||||
Kent Jofur
|
||||
Kerotasma
|
||||
Ketafuki
|
||||
killaQueen
|
||||
kimbring2
|
||||
kindzadza
|
||||
Kodera Software
|
||||
Kostas Mouratidis
|
||||
Krishna Nadoor
|
||||
KsyTek Games
|
||||
kycho
|
||||
Kyle Burnett
|
||||
Kyle Jacobs
|
||||
Lasse le Dous
|
||||
Laurent CHEA
|
||||
Laurent Dethoor
|
||||
Laxman Pradhan
|
||||
Lech Rozanski
|
||||
Leland Vakarian
|
||||
Leonardo Baumle
|
||||
Levi Berciu
|
||||
Levi Lindsey
|
||||
LF
|
||||
Linus Lind Lundgren
|
||||
Logan Apple
|
||||
Lucas Coelho
|
||||
Logan Bratton
|
||||
Lonnie Cox
|
||||
Ludovic DELVAL
|
||||
Luigi Renna
|
||||
Luis Ernesto Del Toro Peña
|
||||
Luis Gaemperle
|
||||
Luis Morao
|
||||
Lukas Komischke
|
||||
Luke Diasio
|
||||
Luke Kasz
|
||||
Major Haul
|
||||
Malcolm
|
||||
Mara Huldra
|
||||
Marcell Simon
|
||||
Marcos Heitor Carvalho
|
||||
Markie Music
|
||||
Mark Tyler
|
||||
Markus Martin
|
||||
Markus Michael Egger
|
||||
Markus Strompen
|
||||
Martin Fitzke
|
||||
Martin Holas
|
||||
Martin Linklater
|
||||
Martin Liška
|
||||
Martin Trbola
|
||||
Martin Zabinski
|
||||
@ -586,7 +531,6 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Maxime Blade
|
||||
Maxwell
|
||||
McStuffings
|
||||
Melchor
|
||||
Melissa Mears
|
||||
Metal Demon 2000
|
||||
Michael
|
||||
@ -595,37 +539,29 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Mikael Nordenberg
|
||||
Mikail Freitas
|
||||
Mikayla
|
||||
Mike Birkhead
|
||||
Mike Copley
|
||||
Mike McRoberts
|
||||
Miss
|
||||
Mitchell J. Wagner
|
||||
MJacred
|
||||
ModularMind
|
||||
Molinghu
|
||||
Molly Jameson
|
||||
MoltenGears
|
||||
Moowool
|
||||
Moritz Weissenberger
|
||||
moulefrite
|
||||
MrAZIE
|
||||
Mrjemandem
|
||||
Nathaniel
|
||||
neguse
|
||||
neighty
|
||||
Neil Blakey-Milner
|
||||
Neil Wang
|
||||
Neofytos Chimonas
|
||||
Nerdforge
|
||||
Nerdyninja
|
||||
Nicholas La Roux
|
||||
Nick Eldrenkamp
|
||||
Nick Macholl
|
||||
Nico Greve
|
||||
Nicolas Rosset
|
||||
Nicolò Brigadoi Calamari
|
||||
Nils Nordmark
|
||||
Nobbele
|
||||
Noel Billig
|
||||
Noesis
|
||||
obscuresteel
|
||||
@ -639,23 +575,23 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Patrick Indermühle
|
||||
Patrickm
|
||||
Patrick Nafarrete
|
||||
Paul Black
|
||||
Paul Gieske
|
||||
Paul Hankins
|
||||
Paul Mozet
|
||||
Paweł Kowal
|
||||
Paweł Łyczkowski
|
||||
Pedro Henrique Martins Garcia
|
||||
Peter Höglund
|
||||
Philip Ludington (MrPhil)
|
||||
Phoenix Jauregui
|
||||
Pierre Caye
|
||||
Pille
|
||||
Pixel Archipel
|
||||
pj
|
||||
Point08
|
||||
Portponky
|
||||
Preethi Vaidyanathan
|
||||
PsycHead
|
||||
PsyCrab
|
||||
Puntigames
|
||||
pwab
|
||||
Quincy Quincy
|
||||
@ -665,9 +601,11 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Ragnar Pettersson
|
||||
Rainer Amler
|
||||
Rammeow
|
||||
Rebecca H
|
||||
Relintai
|
||||
Remi Rampin
|
||||
Reneator
|
||||
Richard Hayes
|
||||
Richard Ivánek
|
||||
Riley
|
||||
Robin Ward
|
||||
@ -680,21 +618,21 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Roland Rząsa
|
||||
Roman Papush
|
||||
Roy Scayged
|
||||
Rudi
|
||||
Russ
|
||||
Russell Matney
|
||||
Ryan Groom
|
||||
Ryan Mueller
|
||||
Rykk
|
||||
Sacha Waked (Shaidak)
|
||||
Sammy Fischer
|
||||
Sangeeth Pavithran
|
||||
Sasha Schwartz
|
||||
Sean Dee
|
||||
Sebastian Michailidis
|
||||
Sekuta
|
||||
SeongWan Kim
|
||||
Sessamekesh
|
||||
SeungJong k
|
||||
Shaidak
|
||||
Shane Lillie
|
||||
Shane Spoor
|
||||
Shaun Kohanowski
|
||||
simdee
|
||||
Simon Jonas Larsen
|
||||
Simon Schoenenberger
|
||||
@ -705,7 +643,6 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
SleepDepJoel1
|
||||
smbe19
|
||||
smo1704
|
||||
Soheib El-Harrache
|
||||
Solene Waked
|
||||
Sophie Winter
|
||||
Squidgy
|
||||
@ -718,7 +655,6 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
SxP
|
||||
tadashi endo
|
||||
Tarch
|
||||
Techwizz
|
||||
Terry
|
||||
TheVoiceInMyHead
|
||||
Thibaut DECROMBECQUE
|
||||
@ -732,7 +668,6 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Tim Erskine
|
||||
Tim Gleason
|
||||
Tim Klein
|
||||
Tim Nedvyga
|
||||
Timothy B. MacDonald
|
||||
Tim Raveling
|
||||
Tim Riley
|
||||
@ -740,7 +675,6 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Tom Coxon
|
||||
Tom Webster
|
||||
Torsten Crass
|
||||
travis f w
|
||||
Trent Skinner
|
||||
tril zerobyte
|
||||
Tryggve Sollid
|
||||
@ -757,22 +691,21 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Vincent Barkmann
|
||||
Vincent Cloutier
|
||||
Vincent Foulon
|
||||
Vitaliy Sapronenko
|
||||
Vladimir Savin
|
||||
Vulinux
|
||||
Wapiti .
|
||||
Wiley Thompson
|
||||
William Bodin
|
||||
William Edwards
|
||||
William F Siqueira
|
||||
Wolfram
|
||||
Woonki Moon
|
||||
Wyatt Goodin
|
||||
Xananax
|
||||
Yan Shi
|
||||
yin
|
||||
Zekim
|
||||
Zher Huei Lee
|
||||
Zoee Silcock
|
||||
Zyphery
|
||||
ケルベロス
|
||||
貴宏 小松
|
||||
郝晨煜
|
||||
|
||||
@ -640,7 +640,7 @@ Error ProjectSettings::_setup(const String &p_path, const String &p_main_pack, b
|
||||
|
||||
Error ProjectSettings::setup(const String &p_path, const String &p_main_pack, bool p_upwards, bool p_ignore_override) {
|
||||
Error err = _setup(p_path, p_main_pack, p_upwards, p_ignore_override);
|
||||
if (err == OK) {
|
||||
if (err == OK && !p_ignore_override) {
|
||||
String custom_settings = GLOBAL_GET("application/config/project_settings_override");
|
||||
if (!custom_settings.is_empty()) {
|
||||
_load_settings_text(custom_settings);
|
||||
|
||||
@ -1354,8 +1354,9 @@ void Input::parse_mapping(String p_mapping) {
|
||||
|
||||
String output = entry[idx].get_slice(":", 0).replace(" ", "");
|
||||
String input = entry[idx].get_slice(":", 1).replace(" ", "");
|
||||
ERR_CONTINUE_MSG(output.length() < 1 || input.length() < 2,
|
||||
vformat("Invalid device mapping entry \"%s\" in mapping:\n%s", entry[idx], p_mapping));
|
||||
if (output.length() < 1 || input.length() < 2) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (output == "platform" || output == "hint") {
|
||||
continue;
|
||||
|
||||
@ -63,8 +63,9 @@ Error HTTPClient::_request_raw(Method p_method, const String &p_url, const Vecto
|
||||
}
|
||||
|
||||
Error HTTPClient::_request(Method p_method, const String &p_url, const Vector<String> &p_headers, const String &p_body) {
|
||||
int size = p_body.length();
|
||||
return request(p_method, p_url, p_headers, size > 0 ? (const uint8_t *)p_body.utf8().get_data() : nullptr, size);
|
||||
CharString body_utf8 = p_body.utf8();
|
||||
int size = body_utf8.length();
|
||||
return request(p_method, p_url, p_headers, size > 0 ? (const uint8_t *)body_utf8.get_data() : nullptr, size);
|
||||
}
|
||||
|
||||
String HTTPClient::query_string_from_dict(const Dictionary &p_dict) {
|
||||
|
||||
@ -397,7 +397,7 @@ void Basis::rotate_to_align(Vector3 p_start_direction, Vector3 p_end_direction)
|
||||
real_t dot = p_start_direction.dot(p_end_direction);
|
||||
dot = CLAMP(dot, -1.0f, 1.0f);
|
||||
const real_t angle_rads = Math::acos(dot);
|
||||
set_axis_angle(axis, angle_rads);
|
||||
*this = Basis(axis, angle_rads) * (*this);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -117,6 +117,15 @@ public:
|
||||
_FORCE_INLINE_ bool operator<(const StringName &p_name) const {
|
||||
return _data < p_name._data;
|
||||
}
|
||||
_FORCE_INLINE_ bool operator<=(const StringName &p_name) const {
|
||||
return _data <= p_name._data;
|
||||
}
|
||||
_FORCE_INLINE_ bool operator>(const StringName &p_name) const {
|
||||
return _data > p_name._data;
|
||||
}
|
||||
_FORCE_INLINE_ bool operator>=(const StringName &p_name) const {
|
||||
return _data >= p_name._data;
|
||||
}
|
||||
_FORCE_INLINE_ bool operator==(const StringName &p_name) const {
|
||||
// the real magic of all this mess happens here.
|
||||
// this is why path comparisons are very fast
|
||||
|
||||
@ -829,7 +829,7 @@
|
||||
Converts one or more arguments of any type to string in the best way possible and prints them to the console.
|
||||
The following BBCode tags are supported: [code]b[/code], [code]i[/code], [code]u[/code], [code]s[/code], [code]indent[/code], [code]code[/code], [code]url[/code], [code]center[/code], [code]right[/code], [code]color[/code], [code]bgcolor[/code], [code]fgcolor[/code].
|
||||
Color tags only support the following named colors: [code]black[/code], [code]red[/code], [code]green[/code], [code]yellow[/code], [code]blue[/code], [code]magenta[/code], [code]pink[/code], [code]purple[/code], [code]cyan[/code], [code]white[/code], [code]orange[/code], [code]gray[/code]. Hexadecimal color codes are not supported.
|
||||
URL tags only support URLs wrapped by an URL tag, not URLs with a different title.
|
||||
URL tags only support URLs wrapped by a URL tag, not URLs with a different title.
|
||||
When printing to standard output, the supported subset of BBCode is converted to ANSI escape codes for the terminal emulator to display. Support for ANSI escape codes varies across terminal emulators, especially for italic and strikethrough. In standard output, [code]code[/code] is represented with faint text but without any font change. Unsupported tags are left as-is in standard output.
|
||||
[codeblocks]
|
||||
[gdscript]
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AABB" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Axis-Aligned Bounding Box.
|
||||
A 3D axis-aligned bounding box.
|
||||
</brief_description>
|
||||
<description>
|
||||
[AABB] consists of a position, a size, and several utility functions. It is typically used for fast overlap tests.
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AESContext" inherits="RefCounted" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Interface to low level AES encryption features.
|
||||
Provides access to AES encryption/decryption of raw data.
|
||||
</brief_description>
|
||||
<description>
|
||||
This class provides access to AES encryption/decryption of raw data. Both AES-ECB and AES-CBC mode are supported.
|
||||
This class holds the context information required for encryption and decryption operations with AES (Advanced Encryption Standard). Both AES-ECB and AES-CBC modes are supported.
|
||||
[codeblocks]
|
||||
[gdscript]
|
||||
extends Node
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AcceptDialog" inherits="Window" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Base dialog for user notification.
|
||||
A base dialog used for user notification.
|
||||
</brief_description>
|
||||
<description>
|
||||
This dialog is useful for small notifications to the user about an event. It can only be accepted or closed, with the same result.
|
||||
The default use of [AcceptDialog] is to allow it to only be accepted or closed, with the same result. However, the [signal confirmed] and [signal canceled] signals allow to make the two actions different, and the [method add_button] method allows to add custom buttons and actions.
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="Animation" inherits="Resource" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Contains data used to animate everything in the engine.
|
||||
Holds data that can be used to animate anything in the engine.
|
||||
</brief_description>
|
||||
<description>
|
||||
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.
|
||||
This resource holds data that can be used to animate anything 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.
|
||||
[codeblocks]
|
||||
[gdscript]
|
||||
# This creates an animation that makes the node "Enemy" move to the right by
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AnimationNode" inherits="Resource" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Base resource for [AnimationTree] nodes.
|
||||
Base class for [AnimationTree] nodes. Not related to scene nodes.
|
||||
</brief_description>
|
||||
<description>
|
||||
Base resource for [AnimationTree] nodes. In general, it's not used directly, but you can create custom ones with custom blending formulas.
|
||||
Inherit this when creating nodes mainly for use in [AnimationNodeBlendTree], otherwise [AnimationRootNode] should be used instead.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
</tutorials>
|
||||
<methods>
|
||||
<method name="_get_caption" qualifiers="virtual const">
|
||||
|
||||
@ -7,6 +7,6 @@
|
||||
A resource to add to an [AnimationNodeBlendTree]. Blends two animations additively based on an amount value in the [code][0.0, 1.0][/code] range.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
</tutorials>
|
||||
</class>
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
- A +add animation to blend with when the blend amount is in the [code][0.0, 1.0][/code] range
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
|
||||
</tutorials>
|
||||
</class>
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AnimationNodeAnimation" inherits="AnimationRootNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Input animation to use in an [AnimationNodeBlendTree].
|
||||
An input animation for an [AnimationNodeBlendTree].
|
||||
</brief_description>
|
||||
<description>
|
||||
A resource to add to an [AnimationNodeBlendTree]. Only features one output set using the [member animation] property. Use it as an input for [AnimationNode] that blend animations together.
|
||||
A resource to add to an [AnimationNodeBlendTree]. Only has one output port using the [member animation] property. Used as an input for [AnimationNode]s that blend animations together.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
|
||||
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
|
||||
</tutorials>
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
A resource to add to an [AnimationNodeBlendTree]. Blends two animations linearly based on an amount value in the [code][0.0, 1.0][/code] range.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
|
||||
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
|
||||
</tutorials>
|
||||
|
||||
@ -11,6 +11,6 @@
|
||||
- A +blend animation to blend with when the blend amount is in the [code][0.0, 1.0][/code] range
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
</tutorials>
|
||||
</class>
|
||||
|
||||
@ -1,16 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AnimationNodeBlendSpace1D" inherits="AnimationRootNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Blends linearly between two of any number of [AnimationNode] of any type placed on a virtual axis.
|
||||
A set of [AnimationRootNode]s placed on a virtual axis, crossfading between the two adjacent ones. Used by [AnimationTree].
|
||||
</brief_description>
|
||||
<description>
|
||||
A resource to add to an [AnimationNodeBlendTree].
|
||||
This is a virtual axis on which you can add any type of [AnimationNode] using [method add_blend_point].
|
||||
Outputs the linear blend of the two [AnimationNode]s closest to the node's current value.
|
||||
You can set the extents of the axis using the [member min_space] and [member max_space].
|
||||
A resource used by [AnimationNodeBlendTree].
|
||||
[AnimationNodeBlendSpace1D] represents a virtual axis on which any type of [AnimationRootNode]s can be added using [method add_blend_point]. Outputs the linear blend of the two [AnimationRootNode]s adjacent to the current value.
|
||||
You can set the extents of the axis with [member min_space] and [member max_space].
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
</tutorials>
|
||||
<methods>
|
||||
<method name="add_blend_point">
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AnimationNodeBlendSpace2D" inherits="AnimationRootNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Blends linearly between three [AnimationNode] of any type placed in a 2D space.
|
||||
A set of [AnimationRootNode]s placed on 2D coordinates, crossfading between the three adjacent ones. Used by [AnimationTree].
|
||||
</brief_description>
|
||||
<description>
|
||||
A resource to add to an [AnimationNodeBlendTree].
|
||||
This node allows you to blend linearly between three animations using a [Vector2] weight.
|
||||
You can add vertices to the blend space with [method add_blend_point] and automatically triangulate it by setting [member auto_triangles] to [code]true[/code]. Otherwise, use [method add_triangle] and [method remove_triangle] to create up the blend space by hand.
|
||||
A resource used by [AnimationNodeBlendTree].
|
||||
[AnimationNodeBlendSpace1D] represents a virtual 2D space on which [AnimationRootNode]s are placed. Outputs the linear blend of the three adjacent animations using a [Vector2] weight. Adjacent in this context means the three [AnimationRootNode]s making up the triangle that contains the current value.
|
||||
You can add vertices to the blend space with [method add_blend_point] and automatically triangulate it by setting [member auto_triangles] to [code]true[/code]. Otherwise, use [method add_triangle] and [method remove_triangle] to triangulate the blend space by hand.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
|
||||
</tutorials>
|
||||
<methods>
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AnimationNodeBlendTree" inherits="AnimationRootNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
[AnimationTree] node resource that contains many blend type nodes.
|
||||
A sub-tree of blend type [AnimationNode]s used for complex animations. Used by [AnimationTree].
|
||||
</brief_description>
|
||||
<description>
|
||||
This node may contain a sub-tree of any other blend type nodes, such as [AnimationNodeTransition], [AnimationNodeBlend2], [AnimationNodeBlend3], [AnimationNodeOneShot], etc. This is one of the most commonly used roots.
|
||||
This node may contain a sub-tree of any other blend type nodes, such as [AnimationNodeTransition], [AnimationNodeBlend2], [AnimationNodeBlend3], [AnimationNodeOneShot], etc. This is one of the most commonly used animation node roots.
|
||||
An [AnimationNodeOutput] node named [code]output[/code] is created by default.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
</tutorials>
|
||||
<methods>
|
||||
<method name="add_node">
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AnimationNodeOneShot" inherits="AnimationNodeSync" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Plays an animation once in [AnimationNodeBlendTree].
|
||||
Plays an animation once in an [AnimationNodeBlendTree].
|
||||
</brief_description>
|
||||
<description>
|
||||
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.
|
||||
@ -25,10 +25,10 @@
|
||||
[/gdscript]
|
||||
[csharp]
|
||||
// Play child animation connected to "shot" port.
|
||||
animationTree.Set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE);
|
||||
animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.Fire);
|
||||
|
||||
// Abort child animation connected to "shot" port.
|
||||
animationTree.Set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_ABORT);
|
||||
animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.Abort);
|
||||
|
||||
// Get current state (read-only).
|
||||
animationTree.Get("parameters/OneShot/active");
|
||||
@ -36,7 +36,7 @@
|
||||
[/codeblocks]
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
|
||||
</tutorials>
|
||||
<members>
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AnimationNodeOutput" inherits="AnimationNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Generic output node to be added to [AnimationNodeBlendTree].
|
||||
The animation output node of an [AnimationNodeBlendTree].
|
||||
</brief_description>
|
||||
<description>
|
||||
A node created automatically in an [AnimationNodeBlendTree] that outputs the final animation.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
|
||||
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
|
||||
</tutorials>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AnimationNodeStateMachine" inherits="AnimationRootNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
State machine for control of animations.
|
||||
A state machine with multiple [AnimationRootNode]s, used by [AnimationTree].
|
||||
</brief_description>
|
||||
<description>
|
||||
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.
|
||||
Contains multiple [AnimationRootNode]s 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.
|
||||
[b]Example:[/b]
|
||||
[codeblocks]
|
||||
[gdscript]
|
||||
@ -18,7 +18,7 @@
|
||||
[/codeblocks]
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
</tutorials>
|
||||
<methods>
|
||||
<method name="add_node">
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AnimationNodeStateMachinePlayback" inherits="Resource" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Playback control for [AnimationNodeStateMachine].
|
||||
Provides playback control for an [AnimationNodeStateMachine].
|
||||
</brief_description>
|
||||
<description>
|
||||
Allows control of [AnimationTree] state machines created with [AnimationNodeStateMachine]. Retrieve with [code]$AnimationTree.get("parameters/playback")[/code].
|
||||
@ -12,13 +12,13 @@
|
||||
state_machine.travel("some_state")
|
||||
[/gdscript]
|
||||
[csharp]
|
||||
var stateMachine = GetNode<AnimationTree>("AnimationTree").Get("parameters/playback") as AnimationNodeStateMachinePlayback;
|
||||
var stateMachine = GetNode<AnimationTree>("AnimationTree").Get("parameters/playback").As<AnimationNodeStateMachinePlayback>();
|
||||
stateMachine.Travel("some_state");
|
||||
[/csharp]
|
||||
[/codeblocks]
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
</tutorials>
|
||||
<methods>
|
||||
<method name="get_current_length" qualifiers="const">
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AnimationNodeStateMachineTransition" inherits="Resource" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
A resource to connect each node to make a path for [AnimationNodeStateMachine].
|
||||
A transition within an [AnimationNodeStateMachine] connecting two [AnimationRootNode]s.
|
||||
</brief_description>
|
||||
<description>
|
||||
The path generated when using [method AnimationNodeStateMachinePlayback.travel] is limited to the nodes connected by [AnimationNodeStateMachineTransition].
|
||||
You can set the timing and conditions of the transition in detail.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
</tutorials>
|
||||
<members>
|
||||
<member name="advance_condition" type="StringName" setter="set_advance_condition" getter="get_advance_condition" default="&""">
|
||||
|
||||
@ -1,11 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AnimationNodeSync" inherits="AnimationNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
The base class for [AnimationNode] which has more than two input ports and needs to synchronize them.
|
||||
Base class for [AnimationNode]s with more than two input ports that must be synchronized.
|
||||
</brief_description>
|
||||
<description>
|
||||
An animation node used to combine, mix, or blend two or more animations together while keeping them synchronized within an [AnimationTree].
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
</tutorials>
|
||||
<members>
|
||||
<member name="sync" type="bool" setter="set_use_sync" getter="is_using_sync" default="false">
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AnimationNodeTimeScale" inherits="AnimationNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
A time-scaling animation node to be used with [AnimationTree].
|
||||
A time-scaling animation node used in [AnimationTree].
|
||||
</brief_description>
|
||||
<description>
|
||||
Allows scaling the speed of the animation (or reversing it) in any children nodes. Setting it to 0 will pause the animation.
|
||||
Allows to scale the speed of the animation (or reverse it) in any children [AnimationNode]s. Setting it to [code]0.0[/code] will pause the animation.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
|
||||
</tutorials>
|
||||
</class>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AnimationNodeTimeSeek" inherits="AnimationNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
A time-seeking animation node to be used with [AnimationTree].
|
||||
A time-seeking animation node used in [AnimationTree].
|
||||
</brief_description>
|
||||
<description>
|
||||
This node can be used to cause a seek command to happen to any sub-children of the animation graph. Use this node type to play an [Animation] from the start or a certain playback position inside the [AnimationNodeBlendTree].
|
||||
@ -28,6 +28,6 @@
|
||||
[/codeblocks]
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
</tutorials>
|
||||
</class>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AnimationNodeTransition" inherits="AnimationNodeSync" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
A generic animation transition node for [AnimationTree].
|
||||
A transition within an [AnimationTree] connecting two [AnimationNode]s.
|
||||
</brief_description>
|
||||
<description>
|
||||
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.
|
||||
@ -37,7 +37,7 @@
|
||||
[/codeblocks]
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
|
||||
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
|
||||
</tutorials>
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AnimationPlayer" inherits="Node" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Player of [Animation] resources.
|
||||
A node used for animation playback.
|
||||
</brief_description>
|
||||
<description>
|
||||
An animation player is used for general-purpose playback of [Animation] resources. It contains a dictionary of [AnimationLibrary] resources and custom blend times between animation transitions.
|
||||
An animation player is used for general-purpose playback of animations. It contains a dictionary of [AnimationLibrary] resources and custom blend times between animation transitions.
|
||||
Some methods and properties use a single key to reference an animation directly. These keys are formatted as the key for the library, followed by a forward slash, then the key for the animation within the library, for example [code]"movement/run"[/code]. If the library's key is an empty string (known as the default library), the forward slash is omitted, being the same key used by the library.
|
||||
[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], but it requires doing everything by code.
|
||||
Updating the target properties of animations occurs at process time.
|
||||
[AnimationPlayer] is better-suited than [Tween] for more complex animations, for example ones with non-trivial timings. It can also be used over [Tween] if the animation track editor is more convenient than doing it in code.
|
||||
Updating the target properties of animations occurs at the process frame.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="2D Sprite animation">$DOCS_URL/tutorials/2d/2d_sprite_animation.html</link>
|
||||
@ -94,6 +94,7 @@
|
||||
<param index="0" name="name" type="StringName" />
|
||||
<description>
|
||||
Returns the first [AnimationLibrary] with key [param name] or [code]null[/code] if not found.
|
||||
To get the [AnimationPlayer]'s global animation library, use [code]get_animation_library("")[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_animation_library_list" qualifiers="const">
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AnimationRootNode" inherits="AnimationNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
The [AnimationNode] which can be set as the root of an [AnimationTree].
|
||||
Base class for [AnimationNode]s that hold one or multiple composite animations. Usually used for [member AnimationTree.tree_root].
|
||||
</brief_description>
|
||||
<description>
|
||||
[AnimationRootNode] is a base class for [AnimationNode]s that hold a complete animation. A complete animation refers to the output of an [AnimationNodeOutput] in an [AnimationNodeBlendTree] or the output of another [AnimationRootNode]. Used for [member AnimationTree.tree_root] or in other [AnimationRootNode]s.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
||||
</tutorials>
|
||||
</class>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AnimationTree" inherits="Node" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
A node to be used for advanced animation transitions in an [AnimationPlayer].
|
||||
A node used for advanced animation transitions in an [AnimationPlayer].
|
||||
</brief_description>
|
||||
<description>
|
||||
A node to be used for advanced animation transitions in an [AnimationPlayer].
|
||||
A node used for advanced animation transitions in an [AnimationPlayer].
|
||||
[b]Note:[/b] 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.
|
||||
</description>
|
||||
<tutorials>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="Array" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
A generic array datatype.
|
||||
A built-in data structure that holds a sequence of elements.
|
||||
</brief_description>
|
||||
<description>
|
||||
A generic array that can contain several elements of any type, accessible by a numerical index starting at 0. Negative indices can be used to count from the back, like in Python (-1 is the last element, -2 is the second to last, etc.).
|
||||
An array data structure that can contain a sequence of elements of any type. Elements are accessed by a numerical index starting at 0. Negative indices are used to count from the back (-1 is the last element, -2 is the second to last, etc.).
|
||||
[b]Example:[/b]
|
||||
[codeblocks]
|
||||
[gdscript]
|
||||
@ -38,7 +38,6 @@
|
||||
GD.Print(array1 + array2); // Prints [One, 2, 3, Four]
|
||||
[/csharp]
|
||||
[/codeblocks]
|
||||
[b]Note:[/b] Concatenating with the [code]+=[/code] operator will create a new array, which has a cost. If you want to append another array to an existing array, [method append_array] is more efficient.
|
||||
[b]Note:[/b] Arrays are always passed by reference. To get a copy of an array that can be modified independently of the original array, use [method duplicate].
|
||||
[b]Note:[/b] Erasing elements while iterating over arrays is [b]not[/b] supported and will result in unpredictable behavior.
|
||||
</description>
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="AspectRatioContainer" inherits="Container" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Container that preserves its child controls' aspect ratio.
|
||||
A container that preserves the proportions of its child controls.
|
||||
</brief_description>
|
||||
<description>
|
||||
Arranges child controls in a way to preserve their aspect ratio automatically whenever the container is resized. Solves the problem where the container size is dynamic and the contents' size needs to adjust accordingly without losing proportions.
|
||||
A container type that arranges its child controls in a way that preserves their proportions automatically when the container is resized. Useful when a container has a dynamic size and the child nodes must adjust their sizes accordingly without losing their aspect ratios.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="GUI containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
|
||||
<link title="Using Containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
|
||||
</tutorials>
|
||||
<members>
|
||||
<member name="alignment_horizontal" type="int" setter="set_alignment_horizontal" getter="get_alignment_horizontal" enum="AspectRatioContainer.AlignmentMode" default="1">
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
<param index="3" name="pitch_scale" type="float" default="1.0" />
|
||||
<description>
|
||||
Play an [AudioStream] at a given offset, volume and pitch scale. Playback starts immediately.
|
||||
The return value is an unique integer ID that is associated to this playback stream and which can be used to control it.
|
||||
The return value is a unique integer ID that is associated to this playback stream and which can be used to control it.
|
||||
This ID becomes invalid when the stream ends (if it does not loop), when the [AudioStreamPlaybackPolyphonic] is stopped, or when [method stop_stream] is called.
|
||||
This function returns [constant INVALID_ID] if the amount of streams currently playing equals [member AudioStreamPolyphonic.polyphony]. If you need a higher amount of maximum polyphony, raise this value.
|
||||
</description>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="BaseButton" inherits="Control" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Base class for different kinds of buttons.
|
||||
Abstract base class for GUI buttons.
|
||||
</brief_description>
|
||||
<description>
|
||||
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.
|
||||
[BaseButton] is an abstract base class for GUI buttons. It doesn't display anything by itself.
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
@ -49,6 +49,7 @@
|
||||
</member>
|
||||
<member name="button_group" type="ButtonGroup" setter="set_button_group" getter="get_button_group">
|
||||
The [ButtonGroup] associated with the button. Not to be confused with node groups.
|
||||
[b]Note:[/b] The button will be configured as a radio button if a [ButtonGroup] is assigned to it.
|
||||
</member>
|
||||
<member name="button_mask" type="int" setter="set_button_mask" getter="get_button_mask" enum="MouseButtonMask" default="1">
|
||||
Binary mask to choose which mouse buttons this button will respond to.
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="Basis" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
3×3 matrix datatype.
|
||||
A 3×3 matrix for representing 3D rotation and scale.
|
||||
</brief_description>
|
||||
<description>
|
||||
3×3 matrix used for 3D rotation and scale. Almost always used as an orthogonal basis for a [Transform3D].
|
||||
A 3×3 matrix used for representing 3D rotation and scale. Usually used as an orthogonal basis for a [Transform3D].
|
||||
Contains 3 vector fields X, Y and Z as its columns, which are typically interpreted as the local basis vectors of a transformation. For such use, it is composed of a scaling and a rotation matrix, in that order (M = R.S).
|
||||
Can also be accessed as array of 3D vectors. These vectors are normally orthogonal to each other, but are not necessarily normalized (due to scaling).
|
||||
Basis can also be accessed as an array of 3D vectors. These vectors are usually orthogonal to each other, but are not necessarily normalized (due to scaling).
|
||||
For more information, read the "Matrices and transforms" documentation article.
|
||||
</description>
|
||||
<tutorials>
|
||||
@ -110,13 +110,13 @@
|
||||
<return type="bool" />
|
||||
<param index="0" name="b" type="Basis" />
|
||||
<description>
|
||||
Returns [code]true[/code] if this basis and [param b] are approximately equal, by calling [code]is_equal_approx[/code] on each component.
|
||||
Returns [code]true[/code] if this basis and [param b] are approximately equal, by calling [method @GlobalScope.is_equal_approx] on all vector components.
|
||||
</description>
|
||||
</method>
|
||||
<method name="is_finite" qualifiers="const">
|
||||
<return type="bool" />
|
||||
<description>
|
||||
Returns [code]true[/code] if this basis is finite, by calling [method @GlobalScope.is_finite] on each component.
|
||||
Returns [code]true[/code] if this basis is finite, by calling [method @GlobalScope.is_finite] on all vector components.
|
||||
</description>
|
||||
</method>
|
||||
<method name="looking_at" qualifiers="static">
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="Bone2D" inherits="Node2D" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Joint used with [Skeleton2D] to control and animate other nodes.
|
||||
A joint used with [Skeleton2D] to control and animate other nodes.
|
||||
</brief_description>
|
||||
<description>
|
||||
Use a hierarchy of [code]Bone2D[/code] bound to a [Skeleton2D] to control, and animate other [Node2D] nodes.
|
||||
You can use [code]Bone2D[/code] and [code]Skeleton2D[/code] nodes to animate 2D meshes created with the Polygon 2D UV editor.
|
||||
A hierarchy of [Bone2D]s can be bound to a [Skeleton2D] to control and animate other [Node2D] nodes.
|
||||
You can use [Bone2D] and [Skeleton2D] nodes to animate 2D meshes created with the [Polygon2D] UV editor.
|
||||
Each bone has a [member rest] transform that you can reset to with [method apply_rest]. These rest poses are relative to the bone's parent.
|
||||
If 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.
|
||||
</description>
|
||||
@ -21,14 +21,14 @@
|
||||
<method name="get_autocalculate_length_and_angle" qualifiers="const">
|
||||
<return type="bool" />
|
||||
<description>
|
||||
Returns whether this [code]Bone2D[/code] node is going to autocalculate its length and bone angle using its first [code]Bone2D[/code] child node, if one exists. If there are no [code]Bone2D[/code] children, then it cannot autocalculate these values and will print a warning.
|
||||
Returns whether this [Bone2D] is going to autocalculate its length and bone angle using its first [Bone2D] child node, if one exists. If there are no [Bone2D] children, then it cannot autocalculate these values and will print a warning.
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_bone_angle" qualifiers="const">
|
||||
<return type="float" />
|
||||
<description>
|
||||
Returns the angle of the bone in the [code]Bone2D[/code] node.
|
||||
[b]Note:[/b] This is different from the [code]Bone2D[/code]'s rotation. The bone angle is the rotation of the bone shown by the [code]Bone2D[/code] gizmo, and because [code]Bone2D[/code] bones are based on positions, this can vary from the actual rotation of the [code]Bone2D[/code] node.
|
||||
Returns the angle of the bone in the [Bone2D].
|
||||
[b]Note:[/b] This is different from the [Bone2D]'s rotation. The bone's angle is the rotation of the bone shown by the gizmo, which is unaffected by the [Bone2D]'s [member Node2D.transform].
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_index_in_skeleton" qualifiers="const">
|
||||
@ -40,7 +40,7 @@
|
||||
<method name="get_length" qualifiers="const">
|
||||
<return type="float" />
|
||||
<description>
|
||||
Returns the length of the bone in the [code]Bone2D[/code] node.
|
||||
Returns the length of the bone in the [Bone2D] node.
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_skeleton_rest" qualifiers="const">
|
||||
@ -53,22 +53,22 @@
|
||||
<return type="void" />
|
||||
<param index="0" name="auto_calculate" type="bool" />
|
||||
<description>
|
||||
When set to [code]true[/code], the [code]Bone2D[/code] node will attempt to automatically calculate the bone angle and length using the first child [code]Bone2D[/code] node, if one exists. If none exist, the [code]Bone2D[/code] cannot automatically calculate these values and will print a warning.
|
||||
When set to [code]true[/code], the [Bone2D] node will attempt to automatically calculate the bone angle and length using the first child [Bone2D] node, if one exists. If none exist, the [Bone2D] cannot automatically calculate these values and will print a warning.
|
||||
</description>
|
||||
</method>
|
||||
<method name="set_bone_angle">
|
||||
<return type="void" />
|
||||
<param index="0" name="angle" type="float" />
|
||||
<description>
|
||||
Sets the bone angle for the [code]Bone2D[/code] node. This is typically set to the rotation from the [code]Bone2D[/code] node to a child [code]Bone2D[/code] node.
|
||||
[b]Note:[/b] This is different from the [code]Bone2D[/code]'s rotation. The bone angle is the rotation of the bone shown by the [code]Bone2D[/code] gizmo, and because [code]Bone2D[/code] bones are based on positions, this can vary from the actual rotation of the [code]Bone2D[/code] node.
|
||||
Sets the bone angle for the [Bone2D]. This is typically set to the rotation from the [Bone2D] to a child [Bone2D] node.
|
||||
[b]Note:[/b] [b]Note:[/b] This is different from the [Bone2D]'s rotation. The bone's angle is the rotation of the bone shown by the gizmo, which is unaffected by the [Bone2D]'s [member Node2D.transform].
|
||||
</description>
|
||||
</method>
|
||||
<method name="set_length">
|
||||
<return type="void" />
|
||||
<param index="0" name="length" type="float" />
|
||||
<description>
|
||||
Sets the length of the bone in the [code]Bone2D[/code] node.
|
||||
Sets the length of the bone in the [Bone2D].
|
||||
</description>
|
||||
</method>
|
||||
</methods>
|
||||
|
||||
@ -1,11 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="BoneAttachment3D" inherits="Node3D" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
A node that will attach to a bone.
|
||||
А node that dynamically copies or overrides the 3D transform of a bone in its parent [Skeleton3D].
|
||||
</brief_description>
|
||||
<description>
|
||||
This node will allow you to select a bone for this node to attach to. The BoneAttachment3D node can copy the transform of the select bone, or can override the transform of the selected bone.
|
||||
The BoneAttachment3D node must either be a child of a [Skeleton3D] node or be given an external [Skeleton3D] to use in order to function properly.
|
||||
This node selects a bone in a [Skeleton3D] and attaches to it. This means that the [BoneAttachment3D] node will either dynamically copy or override the 3D transform of the selected bone.
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="BoneMap" inherits="Resource" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Bone map for retargeting.
|
||||
Describes a mapping of bone names for retargeting [Skeleton3D] into common names defined by a [SkeletonProfile].
|
||||
</brief_description>
|
||||
<description>
|
||||
This class contains a hashmap that uses a list of bone names in [SkeletonProfile] as key names.
|
||||
This class contains a dictionary that uses a list of bone names in [SkeletonProfile] as key names.
|
||||
By assigning the actual [Skeleton3D] bone name as the key value, it maps the [Skeleton3D] to the [SkeletonProfile].
|
||||
</description>
|
||||
<tutorials>
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="BoxContainer" inherits="Container" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Base class for box containers.
|
||||
A container that arranges its child controls horizontally or vertically.
|
||||
</brief_description>
|
||||
<description>
|
||||
Arranges child [Control] nodes vertically or horizontally, and rearranges them automatically when their minimum size changes.
|
||||
A container that arranges its child controls horizontally or vertically, rearranging them automatically when their minimum size changes.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="GUI containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
|
||||
<link title="Using Containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
|
||||
</tutorials>
|
||||
<methods>
|
||||
<method name="add_spacer">
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="Button" inherits="BaseButton" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Standard themed Button.
|
||||
A themed button that can contain text and an icon.
|
||||
</brief_description>
|
||||
<description>
|
||||
Button is the standard themed button. It can contain text and an icon, and will display them according to the current [Theme].
|
||||
[Button] is the standard themed button. It can contain text and an icon, and it will display them according to the current [Theme].
|
||||
[b]Example of creating a button and assigning an action when pressed by code:[/b]
|
||||
[codeblocks]
|
||||
[gdscript]
|
||||
@ -32,9 +32,8 @@
|
||||
}
|
||||
[/csharp]
|
||||
[/codeblocks]
|
||||
Buttons (like all Control nodes) can also be created in the editor, but some situations may require creating them from code.
|
||||
See also [BaseButton] which contains common properties and methods associated with this node.
|
||||
[b]Note:[/b] Buttons do not interpret touch input and therefore don't support multitouch, since mouse emulation can only press one button at a given time. Use [TouchScreenButton] for buttons that trigger gameplay movement or actions, as [TouchScreenButton] supports multitouch.
|
||||
[b]Note:[/b] Buttons do not interpret touch input and therefore don't support multitouch, since mouse emulation can only press one button at a given time. Use [TouchScreenButton] for buttons that trigger gameplay movement or actions.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="ButtonGroup" inherits="Resource" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Group of Buttons.
|
||||
A group of buttons that doesn't allow more than one button to be pressed at a time.
|
||||
</brief_description>
|
||||
<description>
|
||||
Group of [BaseButton]. The members of this group are treated like radio buttons in the sense that only one button can be pressed at the same time.
|
||||
Every member of the ButtonGroup should have [member BaseButton.toggle_mode] set to [code]true[/code].
|
||||
A group of [BaseButton]-derived buttons. The buttons in a [ButtonGroup] are treated like radio buttons: No more than one button can be pressed at a time. Some types of buttons (such as [CheckBox]) may have a special appearance in this state.
|
||||
Every member of a [ButtonGroup] should have [member BaseButton.toggle_mode] set to [code]true[/code].
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="Callable" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Built-in type representing a method in an object instance or a standalone function.
|
||||
A built-in type representing a method or a standalone function.
|
||||
</brief_description>
|
||||
<description>
|
||||
[Callable] is a built-in [Variant] type that represents a function. It can either be a method within an [Object] instance, or a standalone function not related to any object, like a lambda function. Like all [Variant] types, it can be stored in variables and passed to other functions. It is most commonly used for signal callbacks.
|
||||
|
||||
@ -154,7 +154,10 @@
|
||||
The [CameraAttributes] to use for this camera.
|
||||
</member>
|
||||
<member name="cull_mask" type="int" setter="set_cull_mask" getter="get_cull_mask" default="1048575">
|
||||
The culling mask that describes which 3D render layers are rendered by this camera.
|
||||
The culling mask that describes which [member VisualInstance3D.layers] are rendered by this camera. By default, all 20 user-visible layers are rendered.
|
||||
[b]Note:[/b] Since the [member cull_mask] allows for 32 layers to be stored in total, there are an additional 12 layers that are only used internally by the engine and aren't exposed in the editor. Setting [member cull_mask] using a script allows you to toggle those reserved layers, which can be useful for editor plugins.
|
||||
To adjust [member cull_mask] more easily using a script, use [method get_cull_mask_value] and [method set_cull_mask_value].
|
||||
[b]Note:[/b] [VoxelGI], SDFGI and [LightmapGI] will always take all layers into account to determine what contributes to global illumination. If this is an issue, set [member GeometryInstance3D.gi_mode] to [constant GeometryInstance3D.GI_MODE_DISABLED] for meshes and [member Light3D.light_bake_mode] to [constant Light3D.BAKE_DISABLED] for lights to exclude them from global illumination.
|
||||
</member>
|
||||
<member name="current" type="bool" setter="set_current" getter="is_current" default="false">
|
||||
If [code]true[/code], the ancestor [Viewport] is currently using this camera.
|
||||
@ -167,7 +170,7 @@
|
||||
The [Environment] to use for this camera.
|
||||
</member>
|
||||
<member name="far" type="float" setter="set_far" getter="get_far" default="4000.0">
|
||||
The distance to the far culling boundary for this camera relative to its local Z axis.
|
||||
The distance to the far culling boundary for this camera relative to its local Z axis. Higher values allow the camera to see further away, while decreasing [member far] can improve performance if it results in objects being partially or fully culled.
|
||||
</member>
|
||||
<member name="fov" type="float" setter="set_fov" getter="get_fov" default="75.0">
|
||||
The camera's field of view angle (in degrees). Only applicable in perspective mode. Since [member keep_aspect] locks one axis, [code]fov[/code] sets the other axis' field of view angle.
|
||||
@ -188,7 +191,7 @@
|
||||
The axis to lock during [member fov]/[member size] adjustments. Can be either [constant KEEP_WIDTH] or [constant KEEP_HEIGHT].
|
||||
</member>
|
||||
<member name="near" type="float" setter="set_near" getter="get_near" default="0.05">
|
||||
The distance to the near culling boundary for this camera relative to its local Z axis.
|
||||
The distance to the near culling boundary for this camera relative to its local Z axis. Lower values allow the camera to see objects more up close to its origin, at the cost of lower precision across the [i]entire[/i] range. Values lower than the default can lead to increased Z-fighting.
|
||||
</member>
|
||||
<member name="projection" type="int" setter="set_projection" getter="get_projection" enum="Camera3D.ProjectionType" default="0">
|
||||
The camera's projection mode. In [constant PROJECTION_PERSPECTIVE] mode, objects' Z distance from the camera's local space scales their perceived size.
|
||||
|
||||
@ -1,15 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="CanvasItem" inherits="Node" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Base class of anything 2D.
|
||||
Abstract base class for everything in 2D space.
|
||||
</brief_description>
|
||||
<description>
|
||||
Base class of anything 2D. 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.
|
||||
Any [CanvasItem] can draw. For this, [method queue_redraw] is called by the engine, then [constant 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 [code]draw_*[/code] functions). However, they can only be used inside [method _draw], its corresponding [method Object._notification] or methods connected to the [signal draw] signal.
|
||||
Canvas 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.
|
||||
A [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.
|
||||
Ultimately, a transform notification can be requested, which will notify the node that its global position changed in case the parent tree changed.
|
||||
[b]Note:[/b] Unless otherwise specified, all methods that have angle parameters must have angles specified as [i]radians[/i]. To convert degrees to radians, use [method @GlobalScope.deg_to_rad].
|
||||
Abstract base class for everything in 2D space. Canvas items are laid out in a tree; children inherit and extend their parent's transform. [CanvasItem] is extended by [Control] for GUI-related nodes, and by [Node2D] for 2D game objects.
|
||||
Any [CanvasItem] can draw. For this, [method queue_redraw] is called by the engine, then [constant NOTIFICATION_DRAW] will be received on idle time to request a 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 [code]draw_*[/code] functions). However, they can only be used inside [method _draw], its corresponding [method Object._notification] or methods connected to the [signal draw] signal.
|
||||
Canvas 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.
|
||||
A [CanvasItem] can be hidden, which will also hide its children. By adjusting various other properties of a [CanvasItem], you can also modulate its color (via [member modulate] or [member self_modulate]), change its Z-index, blend mode, and more.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="Viewport and canvas transforms">$DOCS_URL/tutorials/2d/2d_transforms.html</link>
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="CanvasLayer" inherits="Node" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Canvas drawing layer.
|
||||
A node used for independent rendering of objects within a 2D scene.
|
||||
</brief_description>
|
||||
<description>
|
||||
Canvas drawing layer. [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).
|
||||
Embedded [Window]s are placed in layer 1024. CanvasItems in layer 1025 or above appear in front of embedded windows, CanvasItems in layer 1023 or below appear behind embedded windows.
|
||||
[CanvasItem]-derived 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 [code]0[/code], so a [CanvasLayer] with index [code]-1[/code] will be drawn below, and a [CanvasLayer] with index [code]1[/code] will be drawn above. This order will hold regardless of the [member CanvasItem.z_index] of the nodes within each layer.
|
||||
[CanvasLayer]s can be hidden and they can also optionally follow the viewport. This makes them useful for HUDs like health bar overlays (on layers [code]1[/code] and higher) or backgrounds (on layers [code]-1[/code] and lower).
|
||||
[b]Note:[/b] Embedded [Window]s are placed on layer [code]1024[/code]. [CanvasItem]s on layers [code]1025[/code] and higher appear in front of embedded windows.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="Viewport and canvas transforms">$DOCS_URL/tutorials/2d/2d_transforms.html</link>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="CanvasModulate" inherits="Node2D" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Tint the entire canvas.
|
||||
A node that applies a color tint to a canvas.
|
||||
</brief_description>
|
||||
<description>
|
||||
[CanvasModulate] tints the canvas elements using its assigned [member color].
|
||||
[CanvasModulate] applies a color tint to all nodes on a canvas. Only one can be used to tint a canvas, but [CanvasLayer]s can be used to render things independently.
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="CenterContainer" inherits="Container" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Keeps children controls centered.
|
||||
A container that keeps child controls in its center.
|
||||
</brief_description>
|
||||
<description>
|
||||
CenterContainer keeps children controls centered. This container keeps all children to their minimum size, in the center.
|
||||
[CenterContainer] is a container that keeps all of its child controls in its center at their minimum size.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="GUI containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
|
||||
<link title="Using Containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
|
||||
</tutorials>
|
||||
<members>
|
||||
<member name="use_top_left" type="bool" setter="set_use_top_left" getter="is_using_top_left" default="false">
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="CheckBox" inherits="Button" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Binary choice user interface widget. See also [CheckButton].
|
||||
A button that represents a binary choice.
|
||||
</brief_description>
|
||||
<description>
|
||||
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 appearance. To follow established UX patterns, it's recommended to use CheckBox when toggling it has [b]no[/b] immediate effect on something. For example, it could be used when toggling it will only do something once a confirmation button is pressed.
|
||||
[CheckBox] allows the user to choose one of only two possible options. It's similar to [CheckButton] in functionality, but it has a different appearance. To follow established UX patterns, it's recommended to use [CheckBox] when toggling it has [b]no[/b] immediate effect on something. For example, it could be used when toggling it will only do something once a confirmation button is pressed.
|
||||
See also [BaseButton] which contains common properties and methods associated with this node.
|
||||
When [member BaseButton.button_group] specifies a [ButtonGroup], [CheckBox] changes its appearance to that of a radio button and uses the various [code]radio_*[/code] theme properties.
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="CheckButton" inherits="Button" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Checkable button. See also [CheckBox].
|
||||
A button that represents a binary choice.
|
||||
</brief_description>
|
||||
<description>
|
||||
CheckButton is a toggle button displayed as a check field. It's similar to [CheckBox] in functionality, but it has a different appearance. To follow established UX patterns, it's recommended to use CheckButton when toggling it has an [b]immediate[/b] effect on something. For example, it could be used if toggling it enables/disables a setting without requiring the user to press a confirmation button.
|
||||
[CheckButton] is a toggle button displayed as a check field. It's similar to [CheckBox] in functionality, but it has a different appearance. To follow established UX patterns, it's recommended to use [CheckButton] when toggling it has an [b]immediate[/b] effect on something. For example, it can be used when pressing it shows or hides advanced settings, without asking the user to confirm this action.
|
||||
See also [BaseButton] which contains common properties and methods associated with this node.
|
||||
</description>
|
||||
<tutorials>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="ClassDB" inherits="Object" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Class information repository.
|
||||
A class information repository.
|
||||
</brief_description>
|
||||
<description>
|
||||
Provides access to metadata stored for every available class.
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="CodeEdit" inherits="TextEdit" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Multiline text control intended for editing code.
|
||||
A multiline text editor designed for editing code.
|
||||
</brief_description>
|
||||
<description>
|
||||
CodeEdit is a specialized [TextEdit] designed for editing plain text code files. It contains a bunch of features commonly found in code editors such as line numbers, line folding, code completion, indent management and string / comment management.
|
||||
[b]Note:[/b] By default [CodeEdit] always use left-to-right text direction to correctly display source code.
|
||||
CodeEdit is a specialized [TextEdit] designed for editing plain text code files. It has many features commonly found in code editors such as line numbers, line folding, code completion, indent management, and string/comment management.
|
||||
[b]Note:[/b] Regardless of locale, [CodeEdit] will by default always use left-to-right text direction to correctly display source code.
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="CodeHighlighter" inherits="SyntaxHighlighter" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
A syntax highlighter for code.
|
||||
A syntax highlighter intended for code.
|
||||
</brief_description>
|
||||
<description>
|
||||
A syntax highlighter for code.
|
||||
By adjusting various properties of this resource, you can change the colors of strings, comments, numbers, and other text patterns inside a [TextEdit] control.
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="Color" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Color built-in type, in RGBA format.
|
||||
A color represented in RGBA format.
|
||||
</brief_description>
|
||||
<description>
|
||||
A color represented in RGBA format by red ([member r]), green ([member g]), blue ([member b]), and alpha ([member a]) components. Each component is a 16-bit floating-point value, usually ranging from 0 to 1. Some properties (such as [member CanvasItem.modulate]) may support values greater than 1, for overbright or High Dynamic Range colors. If you want to supply values in a range of 0 to 255, you should use [method @GDScript.Color8].
|
||||
Colors can also be created by name from a set of standardized colors, through the [String] constructor, [method from_string], or by directly fetching the color constants documented here. The standardized color set is based on the [url=https://en.wikipedia.org/wiki/X11_color_names]X11 color names[/url], with the addition of [constant TRANSPARENT].
|
||||
[b]Note:[/b] In a boolean context, a Color will evaluate to [code]false[/code] if it's equal to [code]Color(0, 0, 0, 1)[/code] (opaque black). Otherwise, a Color will always evaluate to [code]true[/code].
|
||||
A color represented in RGBA format by a red ([member r]), green ([member g]), blue ([member b]), and alpha ([member a]) component. Each component is a 16-bit floating-point value, usually ranging from [code]0.0[/code] to [code]1.0[/code]. Some properties (such as [member CanvasItem.modulate]) may support values greater than [code]1.0[/code], for overbright or HDR (High Dynamic Range) colors.
|
||||
Colors can be created in various ways: By the various [Color] constructors, by static methods such as [method from_hsv], and by using a name from the set of standardized colors based on [url=https://en.wikipedia.org/wiki/X11_color_names]X11 color names[/url] with the addition of [constant TRANSPARENT]. GDScript also provides [method @GDScript.Color8], which uses integers from [code]0[/code] to [code]255[/code] and doesn't support overbright colors.
|
||||
[b]Note:[/b] In a boolean context, a Color will evaluate to [code]false[/code] if it is equal to [code]Color(0, 0, 0, 1)[/code] (opaque black). Otherwise, a Color will always evaluate to [code]true[/code].
|
||||
[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/color_constants.png]Color constants cheatsheet[/url]
|
||||
</description>
|
||||
<tutorials>
|
||||
@ -203,8 +203,8 @@
|
||||
<return type="Color" />
|
||||
<param index="0" name="hex" type="int" />
|
||||
<description>
|
||||
Returns the [Color] associated with the provided [param hex] integer in 32-bit RGBA format (8 bits per channel, alpha channel first).
|
||||
In GDScript and C#, the [int] is best visualized with hexadecimal notation ([code]"0x"[/code] prefix).
|
||||
Returns the [Color] associated with the provided [param hex] integer in 32-bit RGBA format (8 bits per channel).
|
||||
In GDScript and C#, the [int] is best visualized with hexadecimal notation ([code]"0x"[/code] prefix, making it [code]"0xRRGGBBAA"[/code]).
|
||||
[codeblocks]
|
||||
[gdscript]
|
||||
var red = Color.hex(0xff0000ff)
|
||||
@ -223,8 +223,8 @@
|
||||
<return type="Color" />
|
||||
<param index="0" name="hex" type="int" />
|
||||
<description>
|
||||
Returns the [Color] associated with the provided [param hex] integer in 64-bit RGBA format (16 bits per channel, alpha channel first).
|
||||
In GDScript and C#, the [int] is best visualized with hexadecimal notation ([code]"0x"[/code] prefix).
|
||||
Returns the [Color] associated with the provided [param hex] integer in 64-bit RGBA format (16 bits per channel).
|
||||
In GDScript and C#, the [int] is best visualized with hexadecimal notation ([code]"0x"[/code] prefix, making it [code]"0xRRRRGGGGBBBBAAAA"[/code]).
|
||||
</description>
|
||||
</method>
|
||||
<method name="html" qualifiers="static">
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="ColorPicker" inherits="VBoxContainer" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Color picker control.
|
||||
A widget that provides an interface for selecting or modifying a color.
|
||||
</brief_description>
|
||||
<description>
|
||||
Displays a color picker widget. Useful for selecting a color from an RGB/RGBA colorspace.
|
||||
[b]Note:[/b] This control is the color picker widget itself. You can use a [ColorPickerButton] instead if you need a button that brings up a [ColorPicker] in a pop-up.
|
||||
A widget that provides an interface for selecting or modifying a color. It can optionally provide functionalities like a color sampler (eyedropper), color modes, and presets.
|
||||
[b]Note:[/b] This control is the color picker widget itself. You can use a [ColorPickerButton] instead if you need a button that brings up a [ColorPicker] in a popup.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="Tween Demo">https://godotengine.org/asset-library/asset/146</link>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="ColorPickerButton" inherits="Button" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Button that pops out a [ColorPicker].
|
||||
A button that brings up a [ColorPicker] when pressed.
|
||||
</brief_description>
|
||||
<description>
|
||||
Encapsulates a [ColorPicker] making it accessible by pressing a button. Pressing the button will toggle the [ColorPicker] visibility.
|
||||
Encapsulates a [ColorPicker], making it accessible by pressing a button. Pressing the button will toggle the [ColorPicker]'s visibility.
|
||||
See also [BaseButton] which contains common properties and methods associated with this node.
|
||||
[b]Note:[/b] By default, the button may not be wide enough for the color preview swatch to be visible. Make sure to set [member Control.custom_minimum_size] to a big enough value to give the button enough space.
|
||||
</description>
|
||||
|
||||
@ -1,25 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="ColorRect" inherits="Control" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Colored rectangle.
|
||||
A control that displays a solid color rectangle.
|
||||
</brief_description>
|
||||
<description>
|
||||
Displays a rectangle filled with a solid [member color]. If you need to display the border alone, consider using [ReferenceRect] instead.
|
||||
Displays a rectangle filled with a solid [member color]. If you need to display the border alone, consider using a [Panel] instead.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
|
||||
</tutorials>
|
||||
<members>
|
||||
<member name="color" type="Color" setter="set_color" getter="get_color" default="Color(1, 1, 1, 1)">
|
||||
The fill color.
|
||||
[codeblocks]
|
||||
[gdscript]
|
||||
$ColorRect.color = Color(1, 0, 0, 1) # Set ColorRect's color to red.
|
||||
[/gdscript]
|
||||
[csharp]
|
||||
GetNode<ColorRect>("ColorRect").Color = new Color(1, 0, 0, 1); // Set ColorRect's color to red.
|
||||
[/csharp]
|
||||
[/codeblocks]
|
||||
The fill color of the rectangle.
|
||||
</member>
|
||||
</members>
|
||||
</class>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="ConfirmationDialog" inherits="AcceptDialog" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Dialog for confirmation of actions.
|
||||
A dialog used for confirmation of actions.
|
||||
</brief_description>
|
||||
<description>
|
||||
Dialog for confirmation of actions. This dialog inherits from [AcceptDialog], but has by default an OK and Cancel button (in host OS order).
|
||||
A dialog used for confirmation of actions. This window is similar to [AcceptDialog], but pressing its Cancel button can have a different outcome from pressing the OK button. The order of the two buttons varies depending on the host OS.
|
||||
To get cancel action, you can use:
|
||||
[codeblocks]
|
||||
[gdscript]
|
||||
|
||||
@ -1,14 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="Container" inherits="Control" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Base node for containers.
|
||||
Base class for all GUI containers.
|
||||
</brief_description>
|
||||
<description>
|
||||
Base node for containers. A [Container] contains other controls and automatically arranges them in a certain way.
|
||||
A Control can inherit this to create custom container classes.
|
||||
Base class for all GUI containers. A [Container] automatically arranges its child controls in a certain way. This class can be inherited to make custom container types.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="GUI containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
|
||||
<link title="Using Containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
|
||||
</tutorials>
|
||||
<methods>
|
||||
<method name="_get_allowed_size_flags_horizontal" qualifiers="virtual const">
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="Control" inherits="CanvasItem" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
All user interface nodes inherit from Control. A control's anchors and offsets adapt its position and size relative to its parent.
|
||||
Base class for all GUI controls. Adapts its position and size based on its parent control.
|
||||
</brief_description>
|
||||
<description>
|
||||
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 offsets relative to the anchor. The offsets update automatically when the node, any of its parents, or the screen size change.
|
||||
@ -41,7 +41,7 @@
|
||||
{
|
||||
// Check position if it is relevant to you
|
||||
// Otherwise, just check data
|
||||
return data.VariantType == Variant.Type.Dictionary && data.AsGodotDictionary().Contains("expected");
|
||||
return data.VariantType == Variant.Type.Dictionary && data.AsGodotDictionary().ContainsKey("expected");
|
||||
}
|
||||
[/csharp]
|
||||
[/codeblocks]
|
||||
@ -64,7 +64,7 @@
|
||||
[csharp]
|
||||
public override bool _CanDropData(Vector2 atPosition, Variant data)
|
||||
{
|
||||
return data.VariantType == Variant.Type.Dictionary && dict.AsGodotDictionary().Contains("color");
|
||||
return data.VariantType == Variant.Type.Dictionary && dict.AsGodotDictionary().ContainsKey("color");
|
||||
}
|
||||
|
||||
public override void _DropData(Vector2 atPosition, Variant data)
|
||||
@ -1020,13 +1020,13 @@
|
||||
The size of the node's bounding rectangle, in the node's coordinate system. [Container] nodes update this property automatically.
|
||||
</member>
|
||||
<member name="size_flags_horizontal" type="int" setter="set_h_size_flags" getter="get_h_size_flags" enum="Control.SizeFlags" default="1">
|
||||
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.
|
||||
Tells the parent [Container] nodes how they should resize and place the node on the X axis. Use a combination of the [enum SizeFlags] constants to change the flags. See the constants to learn what each does.
|
||||
</member>
|
||||
<member name="size_flags_stretch_ratio" type="float" setter="set_stretch_ratio" getter="get_stretch_ratio" default="1.0">
|
||||
If the node and at least one of its neighbors uses the [constant 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 neighbor a ratio of 1, this node will take two thirds of the available space.
|
||||
</member>
|
||||
<member name="size_flags_vertical" type="int" setter="set_v_size_flags" getter="get_v_size_flags" enum="Control.SizeFlags" default="1">
|
||||
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.
|
||||
Tells the parent [Container] nodes how they should resize and place the node on the Y axis. Use a combination of the [enum SizeFlags] constants to change the flags. See the constants to learn what each does.
|
||||
</member>
|
||||
<member name="theme" type="Theme" setter="set_theme" getter="get_theme">
|
||||
The [Theme] resource this node and all its [Control] and [Window] children use. If a child node has its own [Theme] resource set, theme items are merged with child's definitions having higher priority.
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="Crypto" inherits="RefCounted" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Access to advanced cryptographic functionalities.
|
||||
Provides access to advanced cryptographic functionalities.
|
||||
</brief_description>
|
||||
<description>
|
||||
The Crypto class allows you to access some more advanced cryptographic functionalities in Godot.
|
||||
For now, this includes generating cryptographically secure random bytes, RSA keys and self-signed X509 certificates generation, asymmetric key encryption/decryption, and signing/verification.
|
||||
The Crypto class provides access to advanced cryptographic functionalities.
|
||||
Currently, this includes asymmetric key encryption/decryption, signing/verification, and generating cryptographically secure random bytes, RSA keys, HMAC digests, and self-signed [X509Certificate]s.
|
||||
[codeblocks]
|
||||
[gdscript]
|
||||
extends Node
|
||||
|
||||
@ -78,7 +78,7 @@
|
||||
<return type="void" />
|
||||
<param index="0" name="index" type="int" />
|
||||
<description>
|
||||
Removes the point at [code]index[/code] from the curve.
|
||||
Removes the point at [param index] from the curve.
|
||||
</description>
|
||||
</method>
|
||||
<method name="sample" qualifiers="const">
|
||||
|
||||
@ -80,7 +80,7 @@
|
||||
<return type="void" />
|
||||
<param index="0" name="idx" type="int" />
|
||||
<description>
|
||||
Deletes the point [code]idx[/code] from the curve. Sends an error to the console if [code]idx[/code] is out of bounds.
|
||||
Deletes the point [param idx] from the curve. Sends an error to the console if [param idx] is out of bounds.
|
||||
</description>
|
||||
</method>
|
||||
<method name="sample" qualifiers="const">
|
||||
|
||||
@ -100,7 +100,7 @@
|
||||
<return type="void" />
|
||||
<param index="0" name="idx" type="int" />
|
||||
<description>
|
||||
Deletes the point [code]idx[/code] from the curve. Sends an error to the console if [code]idx[/code] is out of bounds.
|
||||
Deletes the point [param idx] from the curve. Sends an error to the console if [param idx] is out of bounds.
|
||||
</description>
|
||||
</method>
|
||||
<method name="sample" qualifiers="const">
|
||||
|
||||
@ -1,12 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="Dictionary" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Dictionary type.
|
||||
A built-in data structure that holds key-value pairs.
|
||||
</brief_description>
|
||||
<description>
|
||||
Dictionary type. Associative container, which contains values referenced by unique keys. Dictionaries are composed of pairs of keys (which must be unique) and values. Dictionaries will preserve the insertion order when adding new entries. In other programming languages, this data structure is sometimes referred to as a hash map or associative array.
|
||||
You can define a dictionary by placing a comma-separated list of [code]key: value[/code] pairs in curly braces [code]{}[/code].
|
||||
[b]Note:[/b] Dictionaries are always passed by reference. To get a copy of a dictionary which can be modified independently of the original dictionary, use [method duplicate].
|
||||
Dictionaries are associative containers that contain values referenced by unique keys. Dictionaries will preserve the insertion order when adding new entries. In other programming languages, this data structure is often referred to as a hash map or an associative array.
|
||||
You can define a dictionary by placing a comma-separated list of [code]key: value[/code] pairs inside curly braces [code]{}[/code].
|
||||
Creating a dictionary:
|
||||
[codeblocks]
|
||||
[gdscript]
|
||||
@ -134,6 +133,7 @@
|
||||
}
|
||||
[/csharp]
|
||||
[/codeblocks]
|
||||
[b]Note:[/b] Dictionaries are always passed by reference. To get a copy of a dictionary which can be modified independently of the original dictionary, use [method duplicate].
|
||||
[b]Note:[/b] Erasing elements while iterating over dictionaries is [b]not[/b] supported and will result in unpredictable behavior.
|
||||
</description>
|
||||
<tutorials>
|
||||
@ -217,9 +217,9 @@
|
||||
{ 210, default },
|
||||
};
|
||||
|
||||
GD.Print(myDict.Contains("Godot")); // Prints true
|
||||
GD.Print(myDict.Contains(210)); // Prints true
|
||||
GD.Print(myDict.Contains(4)); // Prints false
|
||||
GD.Print(myDict.ContainsKey("Godot")); // Prints true
|
||||
GD.Print(myDict.ContainsKey(210)); // Prints true
|
||||
GD.Print(myDict.ContainsKey(4)); // Prints false
|
||||
[/csharp]
|
||||
[/codeblocks]
|
||||
In GDScript, this is equivalent to the [code]in[/code] operator:
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="DirAccess" inherits="RefCounted" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Type used to handle the filesystem.
|
||||
Provides methods for managing directories and their content.
|
||||
</brief_description>
|
||||
<description>
|
||||
Directory type. It is used to manage directories and their content (not restricted to the project folder).
|
||||
This class is used to manage directories and their content, even outside of the project folder.
|
||||
[DirAccess] can't be instantiated directly. Instead it is created with a static method that takes a path for which it will be opened.
|
||||
Most of the methods have a static alternative that can be used without creating a [DirAccess]. Static methods only support absolute paths (including [code]res://[/code] and [code]user://[/code]).
|
||||
[codeblock]
|
||||
@ -173,7 +173,7 @@
|
||||
<description>
|
||||
Returns a [PackedStringArray] containing filenames of the directory contents, excluding directories. The array is sorted alphabetically.
|
||||
Affected by [member include_hidden].
|
||||
[b]Note:[/b] When used on a [code]res://[/code] path in an exported project, only the files actually included in the PCK at the given folder level are returned. In practice, this means that since imported resources are stored in a top-level [code].godot/[/code] folder, only paths to [code]*.gd[/code] and [code]*.import[/code] files are returned (plus a few files such as [code]project.godot[/code] or [code]project.binary[code] and the project icon). In an exported project, the list of returned files will also vary depending on whether [member ProjectSettings.editor/export/convert_text_resources_to_binary] is [code]true[/code].
|
||||
[b]Note:[/b] When used on a [code]res://[/code] path in an exported project, only the files actually included in the PCK at the given folder level are returned. In practice, this means that since imported resources are stored in a top-level [code].godot/[/code] folder, only paths to [code]*.gd[/code] and [code]*.import[/code] files are returned (plus a few files such as [code]project.godot[/code] or [code]project.binary[/code] and the project icon). In an exported project, the list of returned files will also vary depending on whether [member ProjectSettings.editor/export/convert_text_resources_to_binary] is [code]true[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_files_at" qualifiers="static">
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="DisplayServer" inherits="Object" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Singleton for window management functions.
|
||||
A server interface for low-level window management.
|
||||
</brief_description>
|
||||
<description>
|
||||
[DisplayServer] handles everything related to window management. This is separated from [OS] as a single operating system may support multiple display servers.
|
||||
[DisplayServer] handles everything related to window management. It is separated from [OS] as a single operating system may support multiple display servers.
|
||||
[b]Headless mode:[/b] Starting the engine with the [code]--headless[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]command line argument[/url] disables all rendering and window management functions. Most functions from [DisplayServer] will return dummy values in this case.
|
||||
</description>
|
||||
<tutorials>
|
||||
@ -1624,7 +1624,7 @@
|
||||
I-beam cursor shape. This is used by default when hovering a control that accepts text input, such as [LineEdit] or [TextEdit].
|
||||
</constant>
|
||||
<constant name="CURSOR_POINTING_HAND" value="2" enum="CursorShape">
|
||||
Pointing hand cursor shape. This is used by default when hovering a [LinkButton] or an URL tag in a [RichTextLabel].
|
||||
Pointing hand cursor shape. This is used by default when hovering a [LinkButton] or a URL tag in a [RichTextLabel].
|
||||
</constant>
|
||||
<constant name="CURSOR_CROSS" value="3" enum="CursorShape">
|
||||
Crosshair cursor. This is intended to be displayed when the user needs precise aim over an element, such as a rectangle selection tool or a color picker.
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
A modified version of [FileDialog] used by the editor.
|
||||
</brief_description>
|
||||
<description>
|
||||
[EditorFileDialog] is an enhanced version of [FileDialog] available only to editor plugins. Additional features include list of favorited/recent files and ability to see files as thumbnails grid instead of list.
|
||||
[EditorFileDialog] is an enhanced version of [FileDialog] available only to editor plugins. Additional features include list of favorited/recent files and the ability to see files as thumbnails grid instead of list.
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
|
||||
@ -30,10 +30,10 @@
|
||||
func _get_preset_count():
|
||||
return 1
|
||||
|
||||
func _get_preset_name(i):
|
||||
func _get_preset_name(preset_index):
|
||||
return "Default"
|
||||
|
||||
func _get_import_options(i):
|
||||
func _get_import_options(path, preset_index):
|
||||
return [{"name": "my_option", "default_value": false}]
|
||||
|
||||
func _import(source_file, save_path, options, platform_variants, gen_files):
|
||||
@ -93,7 +93,7 @@
|
||||
new Godot.Collections.Dictionary
|
||||
{
|
||||
{ "name", "myOption" },
|
||||
{ "defaultValue", false },
|
||||
{ "default_value", false },
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -157,12 +157,12 @@
|
||||
return true
|
||||
[/gdscript]
|
||||
[csharp]
|
||||
public void GetOptionVisibility(string option, Godot.Collections.Dictionary options)
|
||||
public void _GetOptionVisibility(string option, Godot.Collections.Dictionary options)
|
||||
{
|
||||
// Only show the lossy quality setting if the compression mode is set to "Lossy".
|
||||
if (option == "compress/lossyQuality" && options.Contains("compress/mode"))
|
||||
if (option == "compress/lossy_quality" && options.ContainsKey("compress/mode"))
|
||||
{
|
||||
return (int)options["compress/mode"] == COMPRESS_LOSSY; // This is a constant you set
|
||||
return (int)options["compress/mode"] == CompressLossy; // This is a constant you set
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
Godot editor's interface.
|
||||
</brief_description>
|
||||
<description>
|
||||
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.
|
||||
[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.
|
||||
[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access the singleton using [method EditorPlugin.get_editor_interface].
|
||||
</description>
|
||||
<tutorials>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="EditorNode3DGizmoPlugin" inherits="Resource" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Used by the editor to define Node3D gizmo types.
|
||||
A class used by the editor to define Node3D gizmo types.
|
||||
</brief_description>
|
||||
<description>
|
||||
[EditorNode3DGizmoPlugin] allows you to define a new type of Gizmo. There are two main ways to do so: extending [EditorNode3DGizmoPlugin] for the simpler gizmos, or creating a new [EditorNode3DGizmo] type. See the tutorial in the documentation for more info.
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="EditorProperty" inherits="Container" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Custom control to edit properties for adding into the inspector.
|
||||
Custom control for editing properties that can be added to the [EditorInspector].
|
||||
</brief_description>
|
||||
<description>
|
||||
This control allows property editing for one or multiple properties into [EditorInspector]. It is added via [EditorInspectorPlugin].
|
||||
A custom control for editing properties that can be added to the [EditorInspector]. It is added via [EditorInspectorPlugin].
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="EditorResourcePreview" inherits="Node" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Helper to generate previews of resources or files.
|
||||
A node used to generate previews of resources or files.
|
||||
</brief_description>
|
||||
<description>
|
||||
This object is used to generate previews for resources of files.
|
||||
This node is used to generate previews for resources of files.
|
||||
[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access the singleton using [method EditorInterface.get_resource_previewer].
|
||||
</description>
|
||||
<tutorials>
|
||||
|
||||
@ -635,6 +635,10 @@
|
||||
If [code]true[/code], increases the scrollbar touch area to improve usability on touchscreen devices.
|
||||
[b]Note:[/b] Defaults to [code]true[/code] on touchscreen devices.
|
||||
</member>
|
||||
<member name="interface/touchscreen/scale_gizmo_handles" type="float" setter="" getter="">
|
||||
Specify the multiplier to apply to the scale for the editor gizmo handles to improve usability on touchscreen devices.
|
||||
[b]Note:[/b] Defaults to [code]1[/code] on non-touchscreen devices.
|
||||
</member>
|
||||
<member name="network/debug/remote_host" type="String" setter="" getter="">
|
||||
The address to listen to when starting the remote debugger. This can be set to [code]0.0.0.0[/code] to allow external clients to connect to the remote debugger (instead of restricting the remote debugger to connections from [code]localhost[/code]).
|
||||
</member>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="EditorSyntaxHighlighter" inherits="SyntaxHighlighter" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Base Syntax highlighter resource for the [ScriptEditor].
|
||||
Base class for [SyntaxHighlighter] used by the [ScriptEditor].
|
||||
</brief_description>
|
||||
<description>
|
||||
Base syntax highlighter resource all editor syntax highlighters extend from, it is used in the [ScriptEditor].
|
||||
Base class that all [SyntaxHighlighter]s used by the [ScriptEditor] extend from.
|
||||
Add a syntax highlighter to an individual script by calling [method ScriptEditorBase.add_syntax_highlighter]. To apply to all scripts on open, call [method ScriptEditor.register_syntax_highlighter]
|
||||
</description>
|
||||
<tutorials>
|
||||
|
||||
@ -13,21 +13,21 @@
|
||||
<return type="bool" />
|
||||
<param index="0" name="branch_name" type="String" />
|
||||
<description>
|
||||
Checks out a [code]branch_name[/code] in the VCS.
|
||||
Checks out a [param branch_name] in the VCS.
|
||||
</description>
|
||||
</method>
|
||||
<method name="_commit" qualifiers="virtual">
|
||||
<return type="void" />
|
||||
<param index="0" name="msg" type="String" />
|
||||
<description>
|
||||
Commits the currently staged changes and applies the commit [code]msg[/code] to the resulting commit.
|
||||
Commits the currently staged changes and applies the commit [param msg] to the resulting commit.
|
||||
</description>
|
||||
</method>
|
||||
<method name="_create_branch" qualifiers="virtual">
|
||||
<return type="void" />
|
||||
<param index="0" name="branch_name" type="String" />
|
||||
<description>
|
||||
Creates a new branch named [code]branch_name[/code] in the VCS.
|
||||
Creates a new branch named [param branch_name] in the VCS.
|
||||
</description>
|
||||
</method>
|
||||
<method name="_create_remote" qualifiers="virtual">
|
||||
@ -35,21 +35,21 @@
|
||||
<param index="0" name="remote_name" type="String" />
|
||||
<param index="1" name="remote_url" type="String" />
|
||||
<description>
|
||||
Creates a new remote destination with name [code]remote_name[/code] and points it to [code]remote_url[/code]. This can be an HTTPS remote or an SSH remote.
|
||||
Creates a new remote destination with name [param remote_name] and points it to [param remote_url]. This can be an HTTPS remote or an SSH remote.
|
||||
</description>
|
||||
</method>
|
||||
<method name="_discard_file" qualifiers="virtual">
|
||||
<return type="void" />
|
||||
<param index="0" name="file_path" type="String" />
|
||||
<description>
|
||||
Discards the changes made in a file present at [code]file_path[/code].
|
||||
Discards the changes made in a file present at [param file_path].
|
||||
</description>
|
||||
</method>
|
||||
<method name="_fetch" qualifiers="virtual">
|
||||
<return type="void" />
|
||||
<param index="0" name="remote" type="String" />
|
||||
<description>
|
||||
Fetches new changes from the remote, but doesn't write changes to the current working directory. Equivalent to [code]git fetch[/code].
|
||||
Fetches new changes from the [param remote], but doesn't write changes to the current working directory. Equivalent to [code]git fetch[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="_get_branch_list" qualifiers="virtual">
|
||||
@ -69,7 +69,7 @@
|
||||
<param index="0" name="identifier" type="String" />
|
||||
<param index="1" name="area" type="int" />
|
||||
<description>
|
||||
Returns an array of [Dictionary] items (see [method create_diff_file], [method create_diff_hunk], [method create_diff_line], [method add_line_diffs_into_diff_hunk] and [method add_diff_hunks_into_diff_file]), each containing information about a diff. If [code]identifier[/code] is a file path, returns a file diff, and if it is a commit identifier, then returns a commit diff.
|
||||
Returns an array of [Dictionary] items (see [method create_diff_file], [method create_diff_hunk], [method create_diff_line], [method add_line_diffs_into_diff_hunk] and [method add_diff_hunks_into_diff_file]), each containing information about a diff. If [param identifier] is a file path, returns a file diff, and if it is a commit identifier, then returns a commit diff.
|
||||
</description>
|
||||
</method>
|
||||
<method name="_get_line_diff" qualifiers="virtual">
|
||||
@ -77,7 +77,7 @@
|
||||
<param index="0" name="file_path" type="String" />
|
||||
<param index="1" name="text" type="String" />
|
||||
<description>
|
||||
Returns an [Array] of [Dictionary] items (see [method create_diff_hunk]), each containing a line diff between a file at [code]file_path[/code] and the [code]text[/code] which is passed in.
|
||||
Returns an [Array] of [Dictionary] items (see [method create_diff_hunk]), each containing a line diff between a file at [param file_path] and the [param text] which is passed in.
|
||||
</description>
|
||||
</method>
|
||||
<method name="_get_modified_files_data" qualifiers="virtual">
|
||||
@ -109,7 +109,7 @@
|
||||
<return type="bool" />
|
||||
<param index="0" name="project_path" type="String" />
|
||||
<description>
|
||||
Initializes the VCS plugin when called from the editor. Returns whether or not the plugin was successfully initialized. A VCS project is initialized at [code]project_path[/code].
|
||||
Initializes the VCS plugin when called from the editor. Returns whether or not the plugin was successfully initialized. A VCS project is initialized at [param project_path].
|
||||
</description>
|
||||
</method>
|
||||
<method name="_pull" qualifiers="virtual">
|
||||
@ -149,7 +149,7 @@
|
||||
<param index="3" name="ssh_private_key_path" type="String" />
|
||||
<param index="4" name="ssh_passphrase" type="String" />
|
||||
<description>
|
||||
Set user credentials in the underlying VCS. [code]username[/code] and [code]password[/code] are used only during HTTPS authentication unless not already mentioned in the remote URL. [code]ssh_public_key_path[/code], [code]ssh_private_key_path[/code], and [code]ssh_passphrase[/code] are only used during SSH authentication.
|
||||
Set user credentials in the underlying VCS. [param username] and [param password] are used only during HTTPS authentication unless not already mentioned in the remote URL. [param ssh_public_key_path], [param ssh_private_key_path], and [param ssh_passphrase] are only used during SSH authentication.
|
||||
</description>
|
||||
</method>
|
||||
<method name="_shut_down" qualifiers="virtual">
|
||||
@ -162,14 +162,14 @@
|
||||
<return type="void" />
|
||||
<param index="0" name="file_path" type="String" />
|
||||
<description>
|
||||
Stages the file present at [code]file_path[/code] to the staged area.
|
||||
Stages the file present at [param file_path] to the staged area.
|
||||
</description>
|
||||
</method>
|
||||
<method name="_unstage_file" qualifiers="virtual">
|
||||
<return type="void" />
|
||||
<param index="0" name="file_path" type="String" />
|
||||
<description>
|
||||
Unstages the file present at [code]file_path[/code] from the staged area to the unstaged area.
|
||||
Unstages the file present at [param file_path] from the staged area to the unstaged area.
|
||||
</description>
|
||||
</method>
|
||||
<method name="add_diff_hunks_into_diff_file">
|
||||
@ -177,7 +177,7 @@
|
||||
<param index="0" name="diff_file" type="Dictionary" />
|
||||
<param index="1" name="diff_hunks" type="Dictionary[]" />
|
||||
<description>
|
||||
Helper function to add an array of [code]diff_hunks[/code] into a [code]diff_file[/code].
|
||||
Helper function to add an array of [param diff_hunks] into a [param diff_file].
|
||||
</description>
|
||||
</method>
|
||||
<method name="add_line_diffs_into_diff_hunk">
|
||||
@ -185,7 +185,7 @@
|
||||
<param index="0" name="diff_hunk" type="Dictionary" />
|
||||
<param index="1" name="line_diffs" type="Dictionary[]" />
|
||||
<description>
|
||||
Helper function to add an array of [code]line_diffs[/code] into a [code]diff_hunk[/code].
|
||||
Helper function to add an array of [param line_diffs] into a [param diff_hunk].
|
||||
</description>
|
||||
</method>
|
||||
<method name="create_commit">
|
||||
@ -196,7 +196,7 @@
|
||||
<param index="3" name="unix_timestamp" type="int" />
|
||||
<param index="4" name="offset_minutes" type="int" />
|
||||
<description>
|
||||
Helper function to create a commit [Dictionary] item. [code]msg[/code] is the commit message of the commit. [code]author[/code] is a single human-readable string containing all the author's details, e.g. the email and name configured in the VCS. [code]id[/code] is the identifier of the commit, in whichever format your VCS may provide an identifier to commits. [code]unix_timestamp[/code] is the UTC Unix timestamp of when the commit was created. [code]offset_minutes[/code] is the timezone offset in minutes, recorded from the system timezone where the commit was created.
|
||||
Helper function to create a commit [Dictionary] item. [param msg] is the commit message of the commit. [param author] is a single human-readable string containing all the author's details, e.g. the email and name configured in the VCS. [param id] is the identifier of the commit, in whichever format your VCS may provide an identifier to commits. [param unix_timestamp] is the UTC Unix timestamp of when the commit was created. [param offset_minutes] is the timezone offset in minutes, recorded from the system timezone where the commit was created.
|
||||
</description>
|
||||
</method>
|
||||
<method name="create_diff_file">
|
||||
@ -204,7 +204,7 @@
|
||||
<param index="0" name="new_file" type="String" />
|
||||
<param index="1" name="old_file" type="String" />
|
||||
<description>
|
||||
Helper function to create a [code]Dictionary[/code] for storing old and new diff file paths.
|
||||
Helper function to create a [Dictionary] for storing old and new diff file paths.
|
||||
</description>
|
||||
</method>
|
||||
<method name="create_diff_hunk">
|
||||
@ -214,7 +214,7 @@
|
||||
<param index="2" name="old_lines" type="int" />
|
||||
<param index="3" name="new_lines" type="int" />
|
||||
<description>
|
||||
Helper function to create a [code]Dictionary[/code] for storing diff hunk data. [code]old_start[/code] is the starting line number in old file. [code]new_start[/code] is the starting line number in new file. [code]old_lines[/code] is the number of lines in the old file. [code]new_lines[/code] is the number of lines in the new file.
|
||||
Helper function to create a [Dictionary] for storing diff hunk data. [param old_start] is the starting line number in old file. [param new_start] is the starting line number in new file. [param old_lines] is the number of lines in the old file. [param new_lines] is the number of lines in the new file.
|
||||
</description>
|
||||
</method>
|
||||
<method name="create_diff_line">
|
||||
@ -224,7 +224,7 @@
|
||||
<param index="2" name="content" type="String" />
|
||||
<param index="3" name="status" type="String" />
|
||||
<description>
|
||||
Helper function to create a [code]Dictionary[/code] for storing a line diff. [code]new_line_no[/code] is the line number in the new file (can be [code]-1[/code] if the line is deleted). [code]old_line_no[/code] is the line number in the old file (can be [code]-1[/code] if the line is added). [code]content[/code] is the diff text. [code]status[/code] is a single character string which stores the line origin.
|
||||
Helper function to create a [Dictionary] for storing a line diff. [param new_line_no] is the line number in the new file (can be [code]-1[/code] if the line is deleted). [param old_line_no] is the line number in the old file (can be [code]-1[/code] if the line is added). [param content] is the diff text. [param status] is a single character string which stores the line origin.
|
||||
</description>
|
||||
</method>
|
||||
<method name="create_status_file">
|
||||
@ -233,7 +233,7 @@
|
||||
<param index="1" name="change_type" type="int" enum="EditorVCSInterface.ChangeType" />
|
||||
<param index="2" name="area" type="int" enum="EditorVCSInterface.TreeArea" />
|
||||
<description>
|
||||
Helper function to create a [code]Dictionary[/code] used by editor to read the status of a file.
|
||||
Helper function to create a [Dictionary] used by editor to read the status of a file.
|
||||
</description>
|
||||
</method>
|
||||
<method name="popup_error">
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="Engine" inherits="Object" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Access to engine properties.
|
||||
Provides access to engine properties.
|
||||
</brief_description>
|
||||
<description>
|
||||
The [Engine] singleton allows you to query and modify the project's run-time parameters, such as frames per second, time scale, and others.
|
||||
|
||||
@ -50,7 +50,7 @@
|
||||
<param index="1" name="enable" type="bool" />
|
||||
<param index="2" name="arguments" type="Array" default="[]" />
|
||||
<description>
|
||||
Calls the [code]toggle[/code] callable of the profiler with given [param name] and [param arguments]. Enables/Disables the same profiler depending on [code]enable[/code] argument.
|
||||
Calls the [code]toggle[/code] callable of the profiler with given [param name] and [param arguments]. Enables/Disables the same profiler depending on [param enable] argument.
|
||||
</description>
|
||||
</method>
|
||||
<method name="register_message_capture">
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="FileAccess" inherits="RefCounted" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Type to handle file reading and writing operations.
|
||||
Provides methods for file reading and writing operations.
|
||||
</brief_description>
|
||||
<description>
|
||||
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.
|
||||
This class can be used to permanently store data in the user device's file system and to read from it. This is useful for store game save data or player configuration files.
|
||||
Here's a sample on how to write and read from a file:
|
||||
[codeblocks]
|
||||
[gdscript]
|
||||
@ -33,18 +33,8 @@
|
||||
[/csharp]
|
||||
[/codeblocks]
|
||||
In the example above, the file will be saved in the user data folder as specified in the [url=$DOCS_URL/tutorials/io/data_paths.html]Data paths[/url] documentation.
|
||||
[FileAccess] will close when it's freed, which happens when it goes out of scope or when it gets assigned with [code]null[/code]. In C# the reference must be disposed after we are done using it, this can be done with the [code]using[/code] statement or calling the [code]Dispose[/code] method directly.
|
||||
[codeblocks]
|
||||
[gdscript]
|
||||
var file = FileAccess.open("res://something") # File is opened and locked for use.
|
||||
file = null # File is closed.
|
||||
[/gdscript]
|
||||
[csharp]
|
||||
using var file = FileAccess.Open("res://something"); // File is opened and locked for use.
|
||||
// The using statement calls Dispose when going out of scope.
|
||||
[/csharp]
|
||||
[/codeblocks]
|
||||
[b]Note:[/b] To access project resources once exported, it is recommended to use [ResourceLoader] instead of the [FileAccess] API, as some files are converted to engine-specific formats and their original source files might not be present in the exported PCK package.
|
||||
[FileAccess] will close when it's freed, which happens when it goes out of scope or when it gets assigned with [code]null[/code]. [method close] can be used to close it before then explicitly. In C# the reference must be disposed manually, which can be done with the [code]using[/code] statement or by calling the [code]Dispose[/code] method directly.
|
||||
[b]Note:[/b] To access project resources once exported, it is recommended to use [ResourceLoader] instead of [FileAccess], as some files are converted to engine-specific formats and their original source files might not be present in the exported PCK package.
|
||||
[b]Note:[/b] Files are automatically closed only if the process exits "normally" (such as by clicking the window manager's close button or pressing [b]Alt + F4[/b]). If you stop the project execution by pressing [b]F8[/b] while the project is running, the file won't be closed as the game process will be killed. You can work around this by calling [method flush] at regular intervals.
|
||||
</description>
|
||||
<tutorials>
|
||||
@ -204,7 +194,7 @@
|
||||
<return type="int" />
|
||||
<param index="0" name="file" type="String" />
|
||||
<description>
|
||||
Returns the last time the [param file] was modified in Unix timestamp format or returns a [String] "ERROR IN [code]file[/code]". This Unix timestamp can be converted to another format using the [Time] singleton.
|
||||
Returns the last time the [param file] was modified in Unix timestamp format or returns a [String] "ERROR IN [param file]". This Unix timestamp can be converted to another format using the [Time] singleton.
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_open_error" qualifiers="static">
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="FileDialog" inherits="ConfirmationDialog" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Dialog for selecting files or directories in the filesystem.
|
||||
A dialog for selecting files or directories in the filesystem.
|
||||
</brief_description>
|
||||
<description>
|
||||
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 [member file_mode]. If you want to use a custom title, disable this by setting [member mode_overrides_title] to [code]false[/code].
|
||||
[FileDialog] is a preset dialog used to choose files and directories in the filesystem. It supports filter masks. [FileDialog] automatically sets its window title according to the [member file_mode]. If you want to use a custom title, disable this by setting [member mode_overrides_title] to [code]false[/code].
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="FileSystemDock" inherits="VBoxContainer" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Editor dock for managing files in the project.
|
||||
Godot editor's dock for managing files in the project.
|
||||
</brief_description>
|
||||
<description>
|
||||
This class is available only in [EditorPlugin]s and can't be instantiated. You can access it using [method EditorInterface.get_file_system_dock].
|
||||
While FileSystemDock doesn't expose any methods for file manipulation, you can listen for various file-related signals.
|
||||
While [FileSystemDock] doesn't expose any methods for file manipulation, it can listen for various file-related signals.
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="FlowContainer" inherits="Container" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
||||
<brief_description>
|
||||
Base class for flow containers.
|
||||
A container that arranges its child controls horizontally or vertically and wraps them around at the borders.
|
||||
</brief_description>
|
||||
<description>
|
||||
Arranges child [Control] nodes vertically or horizontally in a left-to-right or top-to-bottom flow.
|
||||
A line is filled with [Control] nodes until no more fit on the same line, similar to text in an autowrapped label.
|
||||
A container that arranges its child controls horizontally or vertically and wraps them around at the borders. This is similar to how text in a book wraps around when no more words can fit on a line.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="Using Containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
|
||||
</tutorials>
|
||||
<methods>
|
||||
<method name="get_line_count" qualifiers="const">
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user