Compare commits
170 Commits
3.4.3-stab
...
3.4.5-stab
| Author | SHA1 | Date | |
|---|---|---|---|
| f9ac000d5d | |||
| b56d1abc47 | |||
| 73e8a773b3 | |||
| e0214a14f3 | |||
| 60d34604d5 | |||
| 514073b367 | |||
| ee7a704387 | |||
| a68344681b | |||
| 3151ebbd68 | |||
| 7d98a5e069 | |||
| 909a9b77c7 | |||
| 4f98488d82 | |||
| 5f89f1a9ff | |||
| 86d8bd77f4 | |||
| 375d9905b5 | |||
| a4ca649d52 | |||
| 623a5499da | |||
| 07c3e3e41b | |||
| 956ab70733 | |||
| e0fe0c3d82 | |||
| 373ec9a8a2 | |||
| aad1c39098 | |||
| 8d066d25dd | |||
| 720b3a40ce | |||
| 5fcdbfb2be | |||
| 4df1a2f7e3 | |||
| d8f8ae0ce1 | |||
| fd799e459f | |||
| 81fa4a4268 | |||
| d52681085e | |||
| 4a83c2944c | |||
| 6cb32b696e | |||
| 8cb4593eed | |||
| a215d29857 | |||
| 5fa879bd62 | |||
| d23e6b8f00 | |||
| 4a00561556 | |||
| 29fc16d4b6 | |||
| afa669dbd3 | |||
| b0822d4054 | |||
| d506718736 | |||
| 45e55d51de | |||
| d700434b7d | |||
| 59ae873e50 | |||
| 7a87fd232b | |||
| 431558d419 | |||
| 0328664bb5 | |||
| ef701d6c27 | |||
| 716e4e0c2e | |||
| 49fc84da4a | |||
| 8f59e837a8 | |||
| 5446443504 | |||
| 230a047d5f | |||
| da0ade279b | |||
| bccc403823 | |||
| 05a48a189a | |||
| dda6066c33 | |||
| 49282b59d6 | |||
| cde4ed1d21 | |||
| afe8492241 | |||
| 8d287957f9 | |||
| c02325ffda | |||
| 3993510fc6 | |||
| 4c5d2159f5 | |||
| d519a97104 | |||
| 80d46acf5d | |||
| 33bcf1c5d1 | |||
| 38c23419d9 | |||
| 62c48a0cf9 | |||
| 54808aa460 | |||
| 0b60e924d9 | |||
| 01ba2e5e81 | |||
| 40c9d01cb5 | |||
| e55e56b5fc | |||
| 916f3d7c3c | |||
| f7930560c3 | |||
| dba3a8d2aa | |||
| 290e10fdf9 | |||
| a3f91b9fdc | |||
| 698dc5cae8 | |||
| 9fec145ebe | |||
| 62b3855ce7 | |||
| 06ac7dc21f | |||
| a3d032eea3 | |||
| 694aef9ae5 | |||
| 5ca5e7d0c0 | |||
| bfe54e4d44 | |||
| 72498a3ced | |||
| 467c2c5d4b | |||
| d9ad611639 | |||
| db5bfa398a | |||
| 355c73de32 | |||
| 5816a26c04 | |||
| 1a95a0e999 | |||
| 60184f08f4 | |||
| 12ca7fbfe3 | |||
| f0b0a244b0 | |||
| 3d4af8117d | |||
| 5b098bf41b | |||
| 52f6ec2ea7 | |||
| 6a788fe7a3 | |||
| 6432d53f10 | |||
| fcd8ff1ad4 | |||
| 4ac1a79514 | |||
| 4640071104 | |||
| 3850d6db76 | |||
| b95221fb0a | |||
| 3680cfde86 | |||
| 661da8f9dd | |||
| d87f9ad419 | |||
| 95252110c5 | |||
| 152c4c7434 | |||
| 8b8bafbd53 | |||
| 883c3dc413 | |||
| 64d3520faf | |||
| 91c7c40d50 | |||
| 3a16557642 | |||
| a7ccdfcc53 | |||
| 419e713a29 | |||
| f9a67aaae4 | |||
| 0335369e48 | |||
| d298cceeaa | |||
| 91ba6f7895 | |||
| 4ae0adbf2c | |||
| b5ff9fd7c4 | |||
| b86b4e5004 | |||
| 451d3d378c | |||
| 5d1858dcea | |||
| 9029e5d66f | |||
| 776bca2488 | |||
| 1a5b379a68 | |||
| 69e9e8f87d | |||
| d780a0c8db | |||
| c3d7c4d41c | |||
| 0ae6150d8e | |||
| c594e1c0cc | |||
| 1f4dda2138 | |||
| 7adead25ea | |||
| 496d2843c4 | |||
| 5c64f0d7bf | |||
| d57b7cb0e5 | |||
| 69c3abedf0 | |||
| e7d9a40a8b | |||
| bd47f7aebb | |||
| 36aa94502c | |||
| 4594c96dae | |||
| cf3497ce78 | |||
| 6c3cfc72e2 | |||
| ecac71ff5e | |||
| 6b4d7d20a4 | |||
| fd21478f43 | |||
| cb66b672d7 | |||
| 5bd75bccae | |||
| 2c88a947c1 | |||
| 56d3abdbcc | |||
| fb9aa26b9d | |||
| 5e83677408 | |||
| 4b1ee744c7 | |||
| 855a079664 | |||
| a57dc1881b | |||
| fb6394f58c | |||
| fbd74ae941 | |||
| 8e5a3a3019 | |||
| 93efa57823 | |||
| 719f4cd5e5 | |||
| 0cb1d17d22 | |||
| 22f50490c2 | |||
| d35d49171f | |||
| 77ba87be88 | |||
| 7a8b728043 |
634
.gitignore
vendored
634
.gitignore
vendored
@ -1,54 +1,165 @@
|
||||
# Godot auto generated files
|
||||
*.gen.*
|
||||
.import/
|
||||
# Godot .gitignore config
|
||||
#
|
||||
# Aims to encompass the most commonly found files that we don't want committed
|
||||
# to Git, such as compilation output, IDE specific files, etc.
|
||||
#
|
||||
# It doesn't cover *all* thirdparty IDE extensions under the sun so if you have
|
||||
# specific needs covered here, you can add them to:
|
||||
# .git/info/exclude
|
||||
#
|
||||
# Or contribute them to this file if they're common enough that a good number of
|
||||
# users would benefit from the shared rules.
|
||||
#
|
||||
# This file is organized by sections, with subsections ordered alphabetically.
|
||||
# - Build configuration
|
||||
# - Godot generated files
|
||||
# - General build output
|
||||
# - IDE and tool specific
|
||||
# - Visual Studio specific
|
||||
# - OS specific
|
||||
|
||||
# Documentation generated by doxygen or from classes.xml
|
||||
###########################
|
||||
### Build configuration ###
|
||||
###########################
|
||||
|
||||
/custom.py
|
||||
|
||||
#############################
|
||||
### Godot generated files ###
|
||||
#############################
|
||||
|
||||
# Buildsystem
|
||||
bin/
|
||||
*.gen.*
|
||||
compile_commands.json
|
||||
platform/windows/godot_res.res
|
||||
|
||||
# Generated by Godot binary
|
||||
.import/
|
||||
extension_api.json
|
||||
logs/
|
||||
|
||||
# Generated by unit tests
|
||||
tests/data/*.translation
|
||||
|
||||
############################
|
||||
### General build output ###
|
||||
############################
|
||||
|
||||
# C/C++ generated
|
||||
*.a
|
||||
*.ax
|
||||
*.d
|
||||
*.dll
|
||||
*.lib
|
||||
*.lo
|
||||
*.o
|
||||
*.os
|
||||
*.ox
|
||||
*.Plo
|
||||
*.so
|
||||
# Binutils tmp linker output of the form "stXXXXXX" where "X" is alphanumeric
|
||||
st[A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9]
|
||||
|
||||
# Python generated
|
||||
__pycache__/
|
||||
*.pyc
|
||||
|
||||
# Documentation
|
||||
doc/_build/
|
||||
|
||||
# Javascript specific
|
||||
# Android
|
||||
.gradle/
|
||||
local.properties
|
||||
*.iml
|
||||
.gradletasknamecache
|
||||
project.properties
|
||||
platform/android/java/*/.cxx/
|
||||
platform/android/java/*/build/
|
||||
platform/android/java/*/libs/
|
||||
|
||||
# iOS
|
||||
*.dSYM
|
||||
|
||||
# Javascript
|
||||
*.bc
|
||||
|
||||
# Misc
|
||||
*.debug
|
||||
|
||||
#############################
|
||||
### IDE and tool specific ###
|
||||
#############################
|
||||
|
||||
# Automake
|
||||
.deps/*
|
||||
.dirstamp
|
||||
|
||||
# ccls
|
||||
.ccls-cache/
|
||||
|
||||
# clangd
|
||||
.clangd/
|
||||
.cache/
|
||||
|
||||
# CLion
|
||||
cmake-build-debug
|
||||
|
||||
# Android specific
|
||||
.gradle
|
||||
local.properties
|
||||
*.iml
|
||||
.idea
|
||||
.gradletasknamecache
|
||||
project.properties
|
||||
platform/android/java/app/libs/*
|
||||
platform/android/java/libs/*
|
||||
platform/android/java/lib/.cxx/
|
||||
platform/android/java/nativeSrcsConfigs/.cxx/
|
||||
# Code::Blocks
|
||||
*.cbp
|
||||
*.layout
|
||||
*.depend
|
||||
|
||||
# General c++ generated files
|
||||
*.lib
|
||||
*.o
|
||||
*.ox
|
||||
*.a
|
||||
*.ax
|
||||
*.d
|
||||
*.so
|
||||
*.os
|
||||
*.Plo
|
||||
*.lo
|
||||
# Binutils tmp linker output of the form "stXXXXXX" where "X" is alphanumeric
|
||||
st[A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9]
|
||||
# CodeLite
|
||||
*.project
|
||||
*.workspace
|
||||
.codelite/
|
||||
|
||||
# Libs generated files
|
||||
.deps/*
|
||||
.dirstamp
|
||||
# Cppcheck
|
||||
*.cppcheck
|
||||
cppcheck-cppcheck-build-dir/
|
||||
|
||||
# Gprof output
|
||||
# Eclipse CDT
|
||||
.cproject
|
||||
.settings/
|
||||
*.pydevproject
|
||||
*.launch
|
||||
|
||||
# Gcov and Lcov code coverage
|
||||
*.gcno
|
||||
*.gcda
|
||||
*.gcov.html
|
||||
*.func.html
|
||||
*.func-sort-c.html
|
||||
*index-sort-f.html
|
||||
*index-sort-l.html
|
||||
*index.html
|
||||
godot.info
|
||||
amber.png
|
||||
emerald.png
|
||||
glass.png
|
||||
ruby.png
|
||||
snow.png
|
||||
updown.png
|
||||
gcov.css
|
||||
|
||||
# Geany
|
||||
*.geany
|
||||
.geanyprj
|
||||
|
||||
# Gprof
|
||||
gmon.out
|
||||
|
||||
# Vim temp files
|
||||
*.swo
|
||||
*.swp
|
||||
# Jetbrains IDEs
|
||||
.idea/
|
||||
|
||||
# Qt project files
|
||||
# Kate
|
||||
*.kate-swp
|
||||
|
||||
# Kdevelop
|
||||
*.kdev4
|
||||
|
||||
# Qt Creator
|
||||
*.config
|
||||
*.creator
|
||||
*.creator.*
|
||||
@ -57,272 +168,16 @@ gmon.out
|
||||
*.cflags
|
||||
*.cxxflags
|
||||
|
||||
# Code::Blocks files
|
||||
*.cbp
|
||||
*.layout
|
||||
*.depend
|
||||
|
||||
# Eclipse CDT files
|
||||
.cproject
|
||||
.settings/
|
||||
*.pydevproject
|
||||
*.launch
|
||||
|
||||
# Geany/geany-plugins files
|
||||
*.geany
|
||||
.geanyprj
|
||||
|
||||
# Jetbrains IDEs
|
||||
.idea/
|
||||
|
||||
# Misc
|
||||
.DS_Store
|
||||
__MACOSX
|
||||
logs/
|
||||
|
||||
# for projects that use SCons for building: http://http://www.scons.org/
|
||||
# SCons
|
||||
.sconf_temp
|
||||
.sconsign*.dblite
|
||||
*.pyc
|
||||
.scons_env.json
|
||||
.scons_node_count
|
||||
|
||||
# https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
|
||||
# User-specific files
|
||||
*.suo
|
||||
*.user
|
||||
*.sln.docstates
|
||||
*.sln
|
||||
*.vcxproj*
|
||||
|
||||
# Custom SCons configuration override
|
||||
/custom.py
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
x64/
|
||||
build/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
*.debug
|
||||
*.dSYM
|
||||
|
||||
# Visual Studio cache/options directory
|
||||
.vs/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
# Hints for improving IntelliSense, created together with VS project
|
||||
cpp.hint
|
||||
|
||||
#NUNIT
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
|
||||
*.o
|
||||
*.a
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_i.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*.bak
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
*.scc
|
||||
*.nib
|
||||
|
||||
# Chutzpah Test files
|
||||
_Chutzpah*
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
*.VC.db
|
||||
*.VC.opendb
|
||||
*.VC.VC.opendb
|
||||
enc_temp_folder/
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
|
||||
# CodeLite project files
|
||||
*.project
|
||||
*.workspace
|
||||
.codelite/
|
||||
|
||||
# TFS 2012 Local Workspace
|
||||
$tf/
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# JustCode is a .NET coding addin-in
|
||||
.JustCode
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# NCrunch
|
||||
*.ncrunch*
|
||||
_NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
|
||||
# MightyMoose
|
||||
*.mm.*
|
||||
AutoTest.Net/
|
||||
|
||||
# Web workbench (sass)
|
||||
.sass-cache/
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
|
||||
# NuGet Packages Directory
|
||||
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
|
||||
#packages/*
|
||||
## TODO: If the tool you use requires repositories.config, also uncomment the next line
|
||||
#!packages/repositories.config
|
||||
|
||||
# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets
|
||||
# This line needs to be after the ignore of the build folder (and the packages folder if the line above has been uncommented)
|
||||
!packages/build/
|
||||
|
||||
# Windows Azure Build Output
|
||||
csx/
|
||||
*.build.csdef
|
||||
|
||||
# Windows Store app package directory
|
||||
AppPackages/
|
||||
|
||||
# Others
|
||||
sql/
|
||||
*.Cache
|
||||
ClientBin/
|
||||
[Ss]tyle[Cc]op.*
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
node_modules/
|
||||
__pycache__/
|
||||
|
||||
# KDE
|
||||
.directory
|
||||
|
||||
# Kdevelop project files
|
||||
*.kdev4
|
||||
|
||||
# Kate swap files
|
||||
*.kate-swp
|
||||
|
||||
# Xcode
|
||||
xcuserdata/
|
||||
*.xcscmblueprint
|
||||
*.xccheckout
|
||||
*.xcodeproj/*
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file to a newer
|
||||
# Visual Studio version. Backup files are not needed, because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
|
||||
# SQL Server files
|
||||
App_Data/*.mdf
|
||||
App_Data/*.ldf
|
||||
|
||||
# Business Intelligence projects
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
|
||||
# Microsoft Fakes
|
||||
FakesAssemblies/
|
||||
|
||||
# =========================
|
||||
# Windows detritus
|
||||
# =========================
|
||||
|
||||
# Windows image file caches
|
||||
[Tt]humbs.db
|
||||
[Tt]humbs.db:encryptable
|
||||
ehthumbs.db
|
||||
ehthumbs_vista.db
|
||||
|
||||
# Windows stackdumps
|
||||
*.stackdump
|
||||
|
||||
# Windows shortcuts
|
||||
*.lnk
|
||||
|
||||
# Folder config file
|
||||
[Dd]esktop.ini
|
||||
|
||||
# Recycle Bin used on file shares
|
||||
$RECYCLE.BIN/
|
||||
logo.h
|
||||
*.autosave
|
||||
# Sourcetrail
|
||||
*.srctrl*
|
||||
|
||||
# Tags
|
||||
# https://github.com/github/gitignore/blob/master/Global/Tags.gitignore
|
||||
# Ignore tags created by etags, ctags, gtags (GNU global) and cscope
|
||||
TAGS
|
||||
@ -338,33 +193,172 @@ cscope.files
|
||||
cscope.out
|
||||
cscope.in.out
|
||||
cscope.po.out
|
||||
godot.creator.*
|
||||
|
||||
projects/
|
||||
platform/windows/godot_res.res
|
||||
# Vim
|
||||
*.swo
|
||||
*.swp
|
||||
|
||||
# Visual Studio 2017 and Visual Studio Code workspace folder
|
||||
/.vs
|
||||
/.vscode
|
||||
|
||||
# Visual Studio Code workspace file
|
||||
# Visual Studio Code
|
||||
.vscode/
|
||||
*.code-workspace
|
||||
.history/
|
||||
|
||||
# Scons construction environment dump
|
||||
.scons_env.json
|
||||
# Xcode
|
||||
xcuserdata/
|
||||
*.xcscmblueprint
|
||||
*.xccheckout
|
||||
*.xcodeproj/*
|
||||
|
||||
# Scons progress indicator
|
||||
.scons_node_count
|
||||
##############################
|
||||
### Visual Studio specific ###
|
||||
##############################
|
||||
|
||||
# ccls cache (https://github.com/MaskRay/ccls)
|
||||
.ccls-cache/
|
||||
# https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||
# Ignore Visual Studio temporary files, build results, and
|
||||
# files generated by popular Visual Studio add-ons.
|
||||
|
||||
# compile commands (https://clang.llvm.org/docs/JSONCompilationDatabase.html)
|
||||
compile_commands.json
|
||||
# Actual VS project files we don't use
|
||||
*.sln
|
||||
*.vcxproj*
|
||||
|
||||
# Cppcheck
|
||||
*.cppcheck
|
||||
# User-specific files
|
||||
*.rsuser
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
|
||||
# https://clangd.llvm.org/ cache folder
|
||||
.clangd/
|
||||
.cache/
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
[Ww][Ii][Nn]32/
|
||||
[Aa][Rr][Mm]/
|
||||
[Aa][Rr][Mm]64/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
[Ll]og/
|
||||
[Ll]ogs/
|
||||
|
||||
# Visual Studio 2015/2017 cache/options directory
|
||||
.vs/
|
||||
|
||||
# Visual Studio 2017 auto generated files
|
||||
Generated\ Files/
|
||||
|
||||
# Files built by Visual Studio
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_h.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.iobj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.ipdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*_wpftmp.csproj
|
||||
*.log
|
||||
*.tlog
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
*.scc
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opendb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
*.VC.db
|
||||
*.VC.VC.opendb
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
*.sap
|
||||
|
||||
# Visual Studio Trace Files
|
||||
*.e2e
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# Visual Studio cache files
|
||||
# files ending in .cache can be ignored
|
||||
*.[Cc]ache
|
||||
|
||||
# Others
|
||||
ClientBin/
|
||||
~$*
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.jfm
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
orleans.codegen.cs
|
||||
|
||||
# Backup & report files from converting an old project file
|
||||
# to a newer Visual Studio version. Backup files are not needed,
|
||||
# because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
ServiceFabricBackup/
|
||||
*.rptproj.bak
|
||||
|
||||
# Hint file for IntelliSense
|
||||
cpp.hint
|
||||
|
||||
###################
|
||||
### OS specific ###
|
||||
###################
|
||||
|
||||
# Linux
|
||||
*~
|
||||
.directory
|
||||
|
||||
# macOS
|
||||
.DS_Store
|
||||
__MACOSX
|
||||
|
||||
# Windows
|
||||
# https://github.com/github/gitignore/blob/main/Global/Windows.gitignore
|
||||
[Tt]humbs.db
|
||||
[Tt]humbs.db:encryptable
|
||||
ehthumbs.db
|
||||
ehthumbs_vista.db
|
||||
*.stackdump
|
||||
[Dd]esktop.ini
|
||||
$RECYCLE.BIN/
|
||||
*.cab
|
||||
*.msi
|
||||
*.msix
|
||||
*.msm
|
||||
*.msp
|
||||
*.lnk
|
||||
|
||||
6
.mailmap
6
.mailmap
@ -36,9 +36,11 @@ Eveline Jarosz <marqin.pl@gmail.com> <marqin.pl+git@gmail.com>
|
||||
Fabian <supagu@gmail.com>
|
||||
Ferenc Arn <tagcup@yahoo.com>
|
||||
Ferenc Arn <tagcup@yahoo.com> <tagcup@users.noreply.github.com>
|
||||
FireForge <67974470+fire-forge@users.noreply.github.com> <isaacr.7.2005@gmail.com>
|
||||
foxydevloper <12120644+foxydevloper@users.noreply.github.com>
|
||||
Fredia Huya-Kouadio <fhuyakou@gmail.com>
|
||||
Fredia Huya-Kouadio <fhuyakou@gmail.com> <fhuya@google.com>
|
||||
Fredia Huya-Kouadio <fhuyakou@gmail.com> <fhuya@fb.com>
|
||||
Geequlim <geequlim@gmail.com>
|
||||
Gilles Roudiere <gilles.roudiere@gmail.com>
|
||||
Gilles Roudiere <gilles.roudiere@gmail.com> <gilles.roudiere@laas.fr>
|
||||
@ -56,6 +58,7 @@ Ignacio Etcheverry <ignalfonsore@gmail.com> <neikeq@users.noreply.github.com>
|
||||
Ilaria Cislaghi <cislaghi.ilaria@gmail.com>
|
||||
Ilaria Cislaghi <cislaghi.ilaria@gmail.com> <ilaria.cislaghi@simedis.com>
|
||||
Indah Sylvia <ISylvox@yahoo.com>
|
||||
iwek <miwanczuk7@gmail.com>
|
||||
J08nY <johny@neuromancer.sk> <jancar.jj@gmail.com>
|
||||
J08nY <johny@neuromancer.sk> <J08nY@users.noreply.github.com>
|
||||
Jake Young <young9003@gmail.com>
|
||||
@ -126,6 +129,7 @@ RaphaelHunter <raphael10241024@gmail.com> <raphael20141024@gmail.com>
|
||||
Rémi Verschelde <rverschelde@gmail.com> <remi@verschelde.fr>
|
||||
Rhody Lugo <rhodylugo@gmail.com> <rhodylugo@me.com>
|
||||
Ricardo Subtil <ricasubtil@gmail.com>
|
||||
Rindbee <idleman@yeah.net>
|
||||
Robin Hübner <profan@prfn.se> <robinhubner@gmail.com>
|
||||
romulox_x <romulox_x@yahoo.com>
|
||||
Ruslan Mustakov <r.mustakov@gmail.com> <ruslan.mustakov@xored.com>
|
||||
@ -137,12 +141,14 @@ Swarnim Arun <swarnimarun11@gmail.com>
|
||||
Theo Hallenius <redsymbzone@hotmail.com>
|
||||
Tomasz Chabora <kobewi4e@gmail.com>
|
||||
Twarit <wtwarit@gmail.com>
|
||||
Vitika9 <vitika.program@gmail.com>
|
||||
V.VamsiKrishna <vk@bsb.in> <vamsikrishna.v@gmail.com>
|
||||
Wilhem Barbier <nounoursheureux@openmailbox.org> <wilhem.b@free.fr>
|
||||
Wilhem Barbier <nounoursheureux@openmailbox.org> <schtroumps31@gmail.com>
|
||||
Will Nations <willnationsdev@gmail.com>
|
||||
yg2f <yoann@terminajones.com>
|
||||
Yuri Sizov <yuris@humnom.net> <pycbouh@users.noreply.github.com>
|
||||
Yuri Sizov <yuris@humnom.net> <yaschik4ilicha@gmail.com>
|
||||
Zae <zaevi@live.com>
|
||||
Zak Stam <zakscomputers@hotmail.com>
|
||||
Zher Huei Lee <lee.zh.92@gmail.com>
|
||||
|
||||
22
AUTHORS.md
22
AUTHORS.md
@ -52,7 +52,6 @@ name is available.
|
||||
Bojidar Marinov (bojidar-bg)
|
||||
Brian Semrau (briansemrau)
|
||||
Bruno Lourenço (MadEqua)
|
||||
bruvzg
|
||||
Cameron Reikes (creikey)
|
||||
Camille Mohr-Daurat (pouleyKetchoupp)
|
||||
Caner Demirer (cdemirer)
|
||||
@ -60,11 +59,12 @@ name is available.
|
||||
Carter Anderson (cart)
|
||||
Chris Bradfield (cbscribe)
|
||||
Clay John (clayjohn)
|
||||
ConteZero
|
||||
Dana Olson (adolson)
|
||||
Daniel J. Ramirez (djrm)
|
||||
Daniel Rakos (aqnuep)
|
||||
dankan1890
|
||||
Danil Alexeev (dalexeev)
|
||||
dankan1890
|
||||
David Cambré (Gallilus)
|
||||
David Sichma (DavidSichma)
|
||||
David Snopek (dsnopek)
|
||||
@ -84,8 +84,9 @@ name is available.
|
||||
Eveline Jarosz (Marqin)
|
||||
Fabian Mathews (supagu)
|
||||
Fabio Alessandrelli (Faless)
|
||||
fabriceci
|
||||
Fabrice Cipolla (fabriceci)
|
||||
Ferenc Arn (tagcup)
|
||||
FireForge (fire-forge)
|
||||
follower
|
||||
foxydevloper
|
||||
François Belair (Razoric480)
|
||||
@ -109,6 +110,7 @@ name is available.
|
||||
Ian Bishop (ianb96)
|
||||
Ibrahn Sahir (ibrahn)
|
||||
Ignacio Etcheverry (neikeq)
|
||||
Igor Kordiukiewicz (IgorKordiukiewicz)
|
||||
Ilaria Cislaghi (QbieShay)
|
||||
Indah Sylvia (ISylvox)
|
||||
J08nY
|
||||
@ -119,8 +121,8 @@ name is available.
|
||||
Jérôme Gully (Nutriz)
|
||||
Jia Jun Chai (SkyLucilfer)
|
||||
Joan Fons Sanchez (JFonS)
|
||||
Johannes Witt (HaSa1002)
|
||||
Johan Manuel (29jm)
|
||||
Johannes Witt (HaSa1002)
|
||||
Jordan Schidlowsky (winterpixelgames)
|
||||
Joshua Grams (JoshuaGrams)
|
||||
Juan Linietsky (reduz)
|
||||
@ -150,6 +152,7 @@ name is available.
|
||||
Mariano Javier Suligoy (MarianoGnu)
|
||||
Mario Schlack (hurikhan)
|
||||
Marios Staikopoulos (marstaik)
|
||||
Mark Riedesel (klowner)
|
||||
Markus Sauermann (Sauermann)
|
||||
Martin Capitanio (capnm)
|
||||
Martin Liška (marxin)
|
||||
@ -163,6 +166,7 @@ name is available.
|
||||
merumelu
|
||||
Meru Patel (Janglee123)
|
||||
Michael Alexsander (YeldhamDev)
|
||||
Michał Iwańczuk (iwek7)
|
||||
MichiRecRoom (LikeLakers2)
|
||||
Morris "Tabor" Arroad (mortarroad)
|
||||
mrezai
|
||||
@ -182,6 +186,8 @@ name is available.
|
||||
Paul Batty (Paulb23)
|
||||
Paul Joannon (paulloz)
|
||||
Paul Trojahn (ptrojahn)
|
||||
Pāvels Nadtočajevs (bruvzg)
|
||||
Paweł Fertyk (pfertyk)
|
||||
Pawel Kowal (pkowal1982)
|
||||
Pawel Lampe (Scony)
|
||||
Pedro J. Estébanez (RandomShaper)
|
||||
@ -197,6 +203,7 @@ name is available.
|
||||
Ray Koopa (RayKoopa)
|
||||
Rémi Verschelde (akien-mga)
|
||||
Rhody Lugo (rraallvv)
|
||||
Ricardo Buring (rburing)
|
||||
Ricardo Subtil (Ev1lbl0w)
|
||||
Roberto F. Arroyo (robfram)
|
||||
Robin Hübner (profan)
|
||||
@ -211,6 +218,7 @@ name is available.
|
||||
Shiqing (kawa-yoiko)
|
||||
Silc 'Tokage' Renew (TokageItLab)
|
||||
Simon Wenner (swenner)
|
||||
smix8
|
||||
Stijn Hinlopen (hinlopen)
|
||||
Swarnim Arun (minraws)
|
||||
TC (floppyhammer)
|
||||
@ -224,6 +232,7 @@ name is available.
|
||||
Twarit Waikar (IronicallySerious)
|
||||
Umang Kalra (theoway)
|
||||
Vinzenz Feenstra (vinzenz)
|
||||
Vitika Soni (Vitika9)
|
||||
박한얼 (volzhs)
|
||||
V. Vamsi Krishna (vkbsb)
|
||||
Wilhem Barbier (nounoursheureux)
|
||||
@ -232,9 +241,10 @@ name is available.
|
||||
Wilson E. Alvarez (Rubonnek)
|
||||
Xavier Cho (mysticfall)
|
||||
yg2f (SuperUserNameMan)
|
||||
Yuri Roubinsky (Chaosus)
|
||||
Yuri Sizov (pycbouh)
|
||||
Yuri Rubinsky (Chaosus)
|
||||
Yuri Sizov (YuriSizov)
|
||||
Zae Chao (zaevi)
|
||||
Zak Stam (zaksnet)
|
||||
Zher Huei Lee (leezh)
|
||||
ZuBsPaCe
|
||||
风青山 (Rindbee)
|
||||
|
||||
202
CHANGELOG.md
202
CHANGELOG.md
@ -4,9 +4,192 @@ 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/).
|
||||
|
||||
## [3.4.5] - 2022-08-02
|
||||
|
||||
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-3-4-5) for details.
|
||||
|
||||
### Added
|
||||
|
||||
#### 2D
|
||||
|
||||
- Expose `tile_texture` property in TilesetEditorContext ([GH-60770](https://github.com/godotengine/godot/pull/60770)).
|
||||
|
||||
### Changed
|
||||
|
||||
#### Porting
|
||||
|
||||
- Android: Update target SDK version to API level 31 (Android 12) ([GH-62297](https://github.com/godotengine/godot/pull/62297)).
|
||||
* This fulfills [Google Play requirements for August 2022](https://developer.android.com/google/play/requirements/target-sdk).
|
||||
* When upgrading to 3.4.5 for projects using Android custom builds, you have to manually set the "Target Sdk" option to 31 in your export preset. For new presets, this is the new default value.
|
||||
|
||||
#### Rendering
|
||||
|
||||
- GLES3: Ignore support for S3TC texture compression on Android and iOS devices ([GH-62909](https://github.com/godotengine/godot/pull/62909)).
|
||||
* Few devices support this compression while they all support ETC2. Godot exports ETC2 by default and doesn't take into account that mobile devices could need S3TC.
|
||||
|
||||
#### Thirdparty
|
||||
|
||||
- zlib/minizip updated to 1.2.12.
|
||||
- mbedTLS updated to 2.28.1.
|
||||
- CA certificates updated to 2022-03-31.
|
||||
- SDL GameControllerDB updated to 2022-07-15.
|
||||
|
||||
#### XR
|
||||
|
||||
- XR: Update Meta hand tracking version ([GH-60639](https://github.com/godotengine/godot/pull/60639)).
|
||||
|
||||
### Fixed
|
||||
|
||||
#### Audio
|
||||
|
||||
- Instance audio streams before `AudioServer::lock()` call ([GH-59413](https://github.com/godotengine/godot/pull/59413)).
|
||||
- Fix crash in AudioServer when switching audio devices with different audio channels count ([GH-59778](https://github.com/godotengine/godot/pull/59778)).
|
||||
|
||||
#### Animation
|
||||
|
||||
- Fix looping issue in AnimationNodeStateMachinePlayback with "At End" switch mode ([GH-60247](https://github.com/godotengine/godot/pull/60247)).
|
||||
|
||||
#### Buildsystem
|
||||
|
||||
- Fix creating VS solutions with SCons 4.4.0 ([GH-63722](https://github.com/godotengine/godot/pull/63722)).
|
||||
|
||||
#### Core
|
||||
|
||||
- Fix left aligned integer sign in string formatting ([GH-60679](https://github.com/godotengine/godot/pull/60679)).
|
||||
|
||||
#### Editor
|
||||
|
||||
- Fix popup dialog UI in AnimationTreePlayer editor ([GH-60200](https://github.com/godotengine/godot/pull/60200)).
|
||||
- Fix EditorProperty icon overlapping text with checkbox ([GH-58125](https://github.com/godotengine/godot/pull/58125)).
|
||||
- Fix custom class icon when it inherits from a script ([GH-60536](https://github.com/godotengine/godot/pull/60536)).
|
||||
- Fix UndoRedo in Gradient editor ([GH-60401](https://github.com/godotengine/godot/pull/60401)).
|
||||
- Fix crash when editing pinned StyleBox ([GH-61071](https://github.com/godotengine/godot/pull/61071)).
|
||||
- Fix GridMap cursor showing the wrong mesh ([GH-58624](https://github.com/godotengine/godot/pull/58624)).
|
||||
- Fix incorrect encoding used in error handling functions ([GH-61277](https://github.com/godotengine/godot/pull/61277)).
|
||||
- Fix crash when drag-reordering array elements in the inspector ([GH-61282](https://github.com/godotengine/godot/pull/61282)).
|
||||
- Fix scene tree dock focus after using "Add Child Node" button ([GH-61964](https://github.com/godotengine/godot/pull/61964)).
|
||||
|
||||
#### GDScript
|
||||
|
||||
- Fix editor undo history for function name autocompletion ([GH-60231](https://github.com/godotengine/godot/pull/60231)).
|
||||
- Fix autocompletetion showing class names with an underscore ([GH-62731](https://github.com/godotengine/godot/pull/62731)).
|
||||
|
||||
#### GUI
|
||||
|
||||
- FileDialog: Fix support for changing directory in `user://` and `res://` modes ([GH-59838](https://github.com/godotengine/godot/pull/59838)).
|
||||
- GraphEdit: Fix toggling minimap using the `minimap_enabled` property ([GH-57239](https://github.com/godotengine/godot/pull/57239)).
|
||||
- GraphEdit: Fix valid connections types being reversed ([GH-60124](https://github.com/godotengine/godot/pull/60124)).
|
||||
- Label: Fixed leading spaces pushing text outside autowrap boundary ([GH-60233](https://github.com/godotengine/godot/pull/60233)).
|
||||
- LineEdit: Fix clear button position for asymmetric StyleBox ([GH-61496](https://github.com/godotengine/godot/pull/61496)).
|
||||
- RichTextLabel: Fix implementation of `remove_line()` ([GH-60618](https://github.com/godotengine/godot/pull/60618)).
|
||||
|
||||
#### Import
|
||||
|
||||
- Fix glTF texture filename decoding ([GH-57685](https://github.com/godotengine/godot/pull/57685)).
|
||||
|
||||
#### Input
|
||||
|
||||
- Document that accumulated input is disabled by default ([GH-62664](https://github.com/godotengine/godot/pull/62664)).
|
||||
* This is actually due to a regression in 3.4. It's kept disabled in this release for compatibility, but will be enabled by default in 3.5.
|
||||
|
||||
#### Mono (C#)
|
||||
|
||||
- Avoid modifying csproj globbing includes on remove ([GH-59521](https://github.com/godotengine/godot/pull/59521)).
|
||||
- Fix `Transform.Translated` method affecting the original transform ([GH-63685](https://github.com/godotengine/godot/pull/63685)).
|
||||
|
||||
#### Physics
|
||||
|
||||
- Skip compound shapes without child shapes in `SpaceBullet::recover_from_penetration()` ([GH-59864](https://github.com/godotengine/godot/pull/59864)).
|
||||
|
||||
#### Porting
|
||||
|
||||
- Android: Fix crash when trying to paste non-text data from clipboard ([GH-60563](https://github.com/godotengine/godot/pull/60563)).
|
||||
- iOS: Fix simultaneous touches for different touch types ([GH-60224](https://github.com/godotengine/godot/pull/60224)).
|
||||
- iOS: Flush accumulated input events ([GH-62842](https://github.com/godotengine/godot/pull/62842)).
|
||||
- Linux: Fix X11 `OS.is_window_maximized()` ([GH-59767](https://github.com/godotengine/godot/pull/59767)).
|
||||
- Linux: Properly check for fullscreen toggle made through the Window Manager ([GH-62543](https://github.com/godotengine/godot/pull/62543)).
|
||||
- UWP: Fix GDNative DLLs not being included on export ([GH-61262](https://github.com/godotengine/godot/pull/61262)).
|
||||
- UWP: Flush accumulated input events ([GH-63341](https://github.com/godotengine/godot/pull/63341)).
|
||||
- Windows: Fix `String.http_escape()` non-standard behavior with MinGW ([GH-61655](https://github.com/godotengine/godot/pull/61655)).
|
||||
|
||||
#### Rendering
|
||||
|
||||
- GLES2: Unpack blend shape arrays when necessary ([GH-60829](https://github.com/godotengine/godot/pull/60829)).
|
||||
- GLES3: Unbind vertex buffer before calculating blend shapes ([GH-60832](https://github.com/godotengine/godot/pull/60832)).
|
||||
- Portals: Force full check on adding moving object ([GH-61523](https://github.com/godotengine/godot/pull/61523)).
|
||||
|
||||
#### VisualScript
|
||||
|
||||
- Fix copy paste issue in the editor ([GH-54629](https://github.com/godotengine/godot/pull/54629)).
|
||||
- Fix zoom handling in editor when jumping to functions ([GH-60016](https://github.com/godotengine/godot/pull/60016)).
|
||||
|
||||
|
||||
## [3.4.4] - 2022-03-22
|
||||
|
||||
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-3-4-4) for details.
|
||||
|
||||
### Fixed
|
||||
|
||||
#### 3D
|
||||
|
||||
- CSG: Fix visible seam on smoothed sphere, cylinder, and torus shapes ([GH-58208](https://github.com/godotengine/godot/pull/58208), [GH-59002](https://github.com/godotengine/godot/pull/59002)).
|
||||
- CSG: Fix mixed smoothed and non-smoothed face normals computation for CSG shapes ([GH-59039](https://github.com/godotengine/godot/pull/59039)).
|
||||
- Portals: Fix duplication of instanced scenes during conversion ([GH-58650](https://github.com/godotengine/godot/pull/58650)).
|
||||
|
||||
#### Animation
|
||||
|
||||
- Fix cubic interpolate when looping ([GH-58651](https://github.com/godotengine/godot/pull/58651)).
|
||||
|
||||
#### Audio
|
||||
|
||||
- Revert "PitchShift effect quality and performance tweaks for different pitch scale values" ([GH-58668](https://github.com/godotengine/godot/pull/58668)) **[regression fix]**.
|
||||
|
||||
#### Core
|
||||
|
||||
- Print every file exported with `PCKPacker.flush()`'s verbose parameter ([GH-58520](https://github.com/godotengine/godot/pull/58520)).
|
||||
- Fix `UndoRedo::create_action()` invalid memory usage ([GH-58652](https://github.com/godotengine/godot/pull/58652)).
|
||||
- Revert "Fix ProjectSettings `has_setting()` when used on a overridden setting with feature tags" ([GH-58859](https://github.com/godotengine/godot/pull/58859)).
|
||||
- Fix crash on `Input.get_joy_button_index_from_string` and `Input.get_joy_axis_index_from_string` for non-existing key ([GH-59195](https://github.com/godotengine/godot/pull/59195)).
|
||||
|
||||
#### GUI
|
||||
|
||||
- RichTextLabel: Fix shadow color when text has transparency ([GH-59054](https://github.com/godotengine/godot/pull/59054)).
|
||||
|
||||
#### Editor
|
||||
|
||||
- Fix showing Extend Script option without script attached to the node ([GH-58821](https://github.com/godotengine/godot/pull/58821)).
|
||||
|
||||
#### Physics
|
||||
|
||||
- Fix premature return in GodotPhysics Area `call_queries` ([GH-58531](https://github.com/godotengine/godot/pull/58531)).
|
||||
- Update joints on `NOTIFICATION_POST_ENTER_TREE` ([GH-58642](https://github.com/godotengine/godot/pull/58642)).
|
||||
|
||||
#### Porting
|
||||
|
||||
- HTML5: Revert "[HTML5] Fetch API now passes credentials." ([GH-58862](https://github.com/godotengine/godot/pull/58862)) **[regression fix]**.
|
||||
* This turned out not to be a good option with the current state of the web standard.
|
||||
- iOS: Fix multitouch not working correctly ([GH-58586](https://github.com/godotengine/godot/pull/58586)) **[regression fix]**.
|
||||
- Windows: Fix reporting of DST in `OS.get_datetime()` ([GH-59223](https://github.com/godotengine/godot/pull/59223)).
|
||||
|
||||
#### Rendering
|
||||
|
||||
- GLES2: Fix compression on blend shapes ([GH-58838](https://github.com/godotengine/godot/pull/58838)) **[regression fix]**.
|
||||
- GLES2: Fix `VersionKey` comparison in shader binding ([GH-58855](https://github.com/godotengine/godot/pull/58855)).
|
||||
- GLES2: Fix incorrect buffer upload size in `draw_gui_primitive` ([GH-58150](https://github.com/godotengine/godot/pull/58150)).
|
||||
- GLES3: Fix shader state caching when blend shapes used ([GH-58808](https://github.com/godotengine/godot/pull/58808)) **[regression fix]**.
|
||||
- GLES3: Fix broken normals in meshes with blend shapes ([GH-59159](https://github.com/godotengine/godot/pull/59159)) **[regression fix]**.
|
||||
- Rendering: Fix alpha scissor support with `depth_draw_opaque` ([GH-58959](https://github.com/godotengine/godot/pull/58959)).
|
||||
|
||||
### Added
|
||||
|
||||
#### Porting
|
||||
|
||||
- Android: Setup logic to publish the Godot Android library to MavenCentral ([GH-59146](https://github.com/godotengine/godot/pull/59146)).
|
||||
|
||||
|
||||
## [3.4.3] - 2022-02-25
|
||||
|
||||
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-3-4-2) for details.
|
||||
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-3-4-3) for details.
|
||||
|
||||
### Fixed
|
||||
|
||||
@ -30,6 +213,8 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
|
||||
- Replicate load-as-placeholder state on node duplication ([GH-56831](https://github.com/godotengine/godot/pull/56831)).
|
||||
- Add hexadecimal and binary literals support to `Expression` parser, fix parsing of exponent literals ([GH-57571](https://github.com/godotengine/godot/pull/57571), [GH-57620](https://github.com/godotengine/godot/pull/57620)).
|
||||
- Fix `ProjectSettings.has_setting()` to handle feature overrides like `get_setting()` ([GH-57972](https://github.com/godotengine/godot/pull/57972)).
|
||||
- Fix decompression functions not returning error codes ([GH-58278](https://github.com/godotengine/godot/pull/58278)).
|
||||
- Only store `_edit_use_anchors_` metadata if value is not the default ([GH-58254](https://github.com/godotengine/godot/pull/58254)).
|
||||
|
||||
#### Editor
|
||||
|
||||
@ -79,6 +264,7 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
|
||||
#### Physics
|
||||
|
||||
- Fix RayCast `clear_exceptions` clearing the parent node exception despite `exclude_parent` ([GH-57792](https://github.com/godotengine/godot/pull/57792)).
|
||||
- In final phase of `test_body_motion`, move and cull AABB for body once instead of for every shape ([GH-58391](https://github.com/godotengine/godot/pull/58391)).
|
||||
|
||||
#### Porting
|
||||
|
||||
@ -129,6 +315,7 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
|
||||
- Allow configuring Mono debugger agent with command line arguments ([GH-56835](https://github.com/godotengine/godot/pull/56835)).
|
||||
- Add support for opening Visual Studio 2022 as external editor ([GH-57609](https://github.com/godotengine/godot/pull/57609)).
|
||||
|
||||
|
||||
## [3.4.2] - 2021-12-21
|
||||
|
||||
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-3-4-2) for details.
|
||||
@ -166,6 +353,7 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
|
||||
|
||||
- Fix size issue for ARVR managed viewport ([GH-56072](https://github.com/godotengine/godot/pull/56072)).
|
||||
|
||||
|
||||
## [3.4.1] - 2021-12-17
|
||||
|
||||
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-3-4-1) for details.
|
||||
@ -312,6 +500,7 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
|
||||
- Fix occasional dangling OmniLight RID ([GH-41360](https://github.com/godotengine/godot/issues/41360)).
|
||||
- GLES3: Fix incompatible addition in auto exposure shader ([GH-55983](https://github.com/godotengine/godot/pull/55983)).
|
||||
|
||||
|
||||
## [3.4] - 2021-11-05
|
||||
|
||||
See the [release announcement](https://godotengine.org/article/godot-3-4-is-released) for details.
|
||||
@ -802,6 +991,7 @@ See the [release announcement](https://godotengine.org/article/godot-3-4-is-rele
|
||||
- Add half frame to `floor()` for animated particles UV to compensate precision errors ([GH-53233](https://github.com/godotengine/godot/pull/53233)).
|
||||
- Prevent shaders from generating code before the constructor finishes ([GH-52475](https://github.com/godotengine/godot/pull/52475)).
|
||||
|
||||
|
||||
## [3.3] - 2021-04-21
|
||||
|
||||
See the [release announcement](https://godotengine.org/article/godot-3-3-has-arrived) for details.
|
||||
@ -1142,6 +1332,7 @@ See the [release announcement](https://godotengine.org/article/godot-3-3-has-arr
|
||||
- [Fade screen-space reflections towards the inner margin in GLES3](https://github.com/godotengine/godot/pull/41892).
|
||||
- [Ensure Reinhard tonemapping values are positive in GLES3](https://github.com/godotengine/godot/pull/42056).
|
||||
|
||||
|
||||
## [3.2.3] - 2020-09-17
|
||||
|
||||
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-3-2-3) for details.
|
||||
@ -1214,6 +1405,7 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
|
||||
- Windows: DirectInput: Use correct joypad ID
|
||||
- Thirdparty library updates: mbedtls 2.16.8, stb_vorbis 1.20, wslay 1.1.1
|
||||
|
||||
|
||||
## [3.2.2] - 2020-06-26
|
||||
|
||||
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-3-2-2) for details.
|
||||
@ -1299,6 +1491,7 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
|
||||
- Windows: Do not probe joypads if `DirectInput` cannot be initializer
|
||||
- Windows: Fix overflow condition with QueryPerformanceCounter
|
||||
|
||||
|
||||
## [3.2.1] - 2020-03-10
|
||||
|
||||
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-3-2-1) for details.
|
||||
@ -1327,6 +1520,7 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
|
||||
- Windows: Fix UPNP regression after upstream update
|
||||
- Windows: Disable NetSocket address reuse
|
||||
|
||||
|
||||
## [3.2] - 2020-01-29
|
||||
|
||||
### Added
|
||||
@ -2053,6 +2247,7 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
|
||||
- **X11:** `OS.set_window_maximized()` now gives up after 0.5 seconds.
|
||||
- This makes the editor no longer freeze on startup when using fvwm.
|
||||
|
||||
|
||||
## [3.1] - 2019-03-13
|
||||
|
||||
### Added
|
||||
@ -2312,6 +2507,7 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
|
||||
|
||||
- Fixed a security issue relating to deserializing Variants.
|
||||
|
||||
|
||||
## [3.0] - 2018-01-29
|
||||
|
||||
### Added
|
||||
@ -2445,6 +2641,10 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
|
||||
- HTML5 export using asm.js.
|
||||
- Only WebAssembly is supported now, since all browsers supporting WebGL 2.0 also support WebAssembly.
|
||||
|
||||
---
|
||||
|
||||
[3.4.5]: https://downloads.tuxfamily.org/godotengine/3.4.5/Godot_v3.4.5-stable_changelog_chrono.txt
|
||||
[3.4.4]: https://downloads.tuxfamily.org/godotengine/3.4.4/Godot_v3.4.4-stable_changelog_chrono.txt
|
||||
[3.4.3]: https://downloads.tuxfamily.org/godotengine/3.4.3/Godot_v3.4.3-stable_changelog_chrono.txt
|
||||
[3.4.2]: https://downloads.tuxfamily.org/godotengine/3.4.2/Godot_v3.4.2-stable_changelog_chrono.txt
|
||||
[3.4.1]: https://downloads.tuxfamily.org/godotengine/3.4.1/Godot_v3.4.1-stable_changelog_chrono.txt
|
||||
|
||||
324
DONORS.md
324
DONORS.md
@ -21,56 +21,57 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
|
||||
## Silver sponsors
|
||||
|
||||
Affray Interactive <https://scp.games/pandemic>
|
||||
ASIFA-Hollywood <https://www.asifa-hollywood.org>
|
||||
LITSLINK <https://litslink.com>
|
||||
ORE System <https://ore-system.com>
|
||||
Playful Studios <https://playfulstudios.com>
|
||||
Robot Gentleman <http://robotgentleman.com>
|
||||
|
||||
## Bronze sponsors
|
||||
|
||||
Ben Nolan
|
||||
Basically Games
|
||||
Brandon Lamb
|
||||
Bri
|
||||
Daniel Kaplan
|
||||
Garry Newman
|
||||
Gordon MacPherson
|
||||
Hunter Dickson
|
||||
Isaiah smith
|
||||
Kenney <https://kenney.nl>
|
||||
Kitcat490
|
||||
Kyle Szklenski
|
||||
Maxim Karsten
|
||||
Moonwards <https://www.moonwards.com>
|
||||
TrampolineTales <http://trampolinetales.com>
|
||||
Nik Rudenko
|
||||
TrampolineTales <https://trampolinetales.com>
|
||||
|
||||
## Mini sponsors
|
||||
|
||||
AD Ford
|
||||
Albin Lundahl
|
||||
Andres Hernandez
|
||||
Andrew Bowen
|
||||
Andrew Dunai
|
||||
anti666
|
||||
Chris Bolton
|
||||
Christian Baune
|
||||
Christopher Montesano
|
||||
Christopher Shifflett
|
||||
CodeLikeCammy
|
||||
Daniel Edwards
|
||||
Darrin Massena
|
||||
David Mydlarz
|
||||
Digital Grows
|
||||
Dov Zimring
|
||||
Edward Flick
|
||||
Florian Neumann
|
||||
Gamechuck
|
||||
GameDev.net
|
||||
Hein-Pieter van Braam
|
||||
Jasper Brooks
|
||||
Jeffery Chiu
|
||||
John G Gentzel
|
||||
Jonah Stich
|
||||
Justin Arnold
|
||||
Justo Delgado Baudí
|
||||
Kossi Selom Banybah
|
||||
Marcel Kräml
|
||||
Marek Belski
|
||||
Markus Ort
|
||||
Matthieu Huvé
|
||||
Maxim Karsten
|
||||
Michael
|
||||
Mike King
|
||||
Nassor Paulino da Silva
|
||||
@ -80,8 +81,10 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Patrick Horn
|
||||
Patrick Schmidt
|
||||
Rami
|
||||
Relintai
|
||||
René Habermann
|
||||
Ronnie Cheng
|
||||
Ryan Heath
|
||||
Samantha
|
||||
ShikadiGum
|
||||
Slobodan Milnovic
|
||||
Stephan Lanfermann
|
||||
@ -106,16 +109,14 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
David Snopek
|
||||
Ed Morley
|
||||
First Last
|
||||
Florian Rämisch
|
||||
Frank Kurka
|
||||
Hunter Jones
|
||||
Jacobus Dens
|
||||
Jakub Grzesik
|
||||
Javier Roman
|
||||
Joan Fons
|
||||
Jonathan Wright
|
||||
Jon Woodward
|
||||
Karl Werf
|
||||
Kevin Vu
|
||||
Klavdij Voncina
|
||||
Maciej Pendolski
|
||||
Manuele Finocchiaro
|
||||
@ -124,16 +125,15 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Mathieu
|
||||
Matthew Hillier
|
||||
Officine Pixel S.n.c.
|
||||
Patrick Brock
|
||||
Pedro Silva
|
||||
Retro Village
|
||||
Rob Messick
|
||||
Roland Fredenhagen
|
||||
Ronan Zeegers
|
||||
Sarksus
|
||||
Scott B
|
||||
Sean
|
||||
Sergey
|
||||
Sergio Airaldi
|
||||
Sofox
|
||||
Stephan Kessler
|
||||
Stephen Molyneaux
|
||||
@ -145,14 +145,15 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Victor
|
||||
Xeno Coliseum
|
||||
|
||||
Adam Mill
|
||||
Adam Nakonieczny
|
||||
Adam Nelson
|
||||
Adam Stankiewicz
|
||||
Adrian Adamiak
|
||||
Alexander Erlemann
|
||||
Alexander J Maynard
|
||||
Alex Khayrullin
|
||||
alice gambrell
|
||||
Amar Šahinović
|
||||
Alo Mis
|
||||
Andrew Cunningham
|
||||
Andrew Farr
|
||||
Andriy
|
||||
@ -160,83 +161,78 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Antoni Batchelli
|
||||
Arch Henderson III
|
||||
Arthur S. Muszynski
|
||||
BasicIncomePlz
|
||||
Brandon Hawkinson
|
||||
BrizzleBrip
|
||||
c64cosmin
|
||||
Cameron Connolly
|
||||
Carl Kryschi
|
||||
Charles Gray
|
||||
Charlie Whitfield
|
||||
Chase Taranto
|
||||
Chris Petrich
|
||||
Chris Serino
|
||||
Cow
|
||||
Craig Ostrin
|
||||
Collin Rapp
|
||||
Craig Scarborough
|
||||
Craig Smith
|
||||
Cristopher
|
||||
CzechBlueBear
|
||||
D
|
||||
DagobertDick
|
||||
dan didenko
|
||||
Daniel
|
||||
Daniel Hernández Alcojor
|
||||
Daniel Tebbutt
|
||||
Darrian Little
|
||||
David Thomason
|
||||
Daylon J Williams
|
||||
Dennis Belfrage
|
||||
Dev To be curious
|
||||
Dima Fedotov
|
||||
Dimitri Nüscheler
|
||||
Dmitriy Khudorozhkov
|
||||
Donn Eddy
|
||||
Douglas Hammond
|
||||
Eric Brand
|
||||
Eric Churches
|
||||
Eugenio Hugo Salgüero Jáñez
|
||||
EXUREI
|
||||
Felix Winterhalter
|
||||
flesk
|
||||
foxydevloper
|
||||
Fransiska
|
||||
Freeman
|
||||
Gabrielius Vaiškūnas
|
||||
Gary Hulst
|
||||
gavlig
|
||||
General Chicken
|
||||
Geoffroy Warin
|
||||
GGGames.org
|
||||
George Venizelos
|
||||
gisora
|
||||
GlassBrick
|
||||
GrayDwarf
|
||||
Guilherme Felipe de C. G. da Silva
|
||||
Harry Tumber
|
||||
Harvey Fong
|
||||
Heath Hayes
|
||||
Horváth Péter
|
||||
Horváth-Lázár Péter
|
||||
Hu Hund
|
||||
Hunter Barabas
|
||||
HurrieCrane
|
||||
Jaap Marsman
|
||||
Jamal Bencharki
|
||||
James Couzens
|
||||
Jan Sælid
|
||||
Jared
|
||||
Jared White
|
||||
Jean-Sébastien Ross
|
||||
Jennifer Wilcox
|
||||
Jeremi Biernacki
|
||||
Jesús Chicharro
|
||||
Joel Fivat
|
||||
Johnathan Kupferer
|
||||
John Duplechain
|
||||
John Stinson
|
||||
Josef Stumpfegger
|
||||
Jose Malheiro
|
||||
Jose Manuel Muñoz Perez
|
||||
Joshie Sparks
|
||||
Joshua Flores
|
||||
Joshua Lesperance
|
||||
Juan Velandia
|
||||
Judd
|
||||
Julián Absatz
|
||||
Julian Todd
|
||||
Juraj Móza
|
||||
JUSTIN CARROLL
|
||||
Justin Palmer
|
||||
Kelteseth
|
||||
Kevan
|
||||
Khora
|
||||
kickmaniac
|
||||
kinfox
|
||||
Kos
|
||||
Lakshaya Goel
|
||||
Laszlo Kiss
|
||||
leetNightshade
|
||||
@ -244,7 +240,6 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Liam Smyth
|
||||
LoparPanda
|
||||
Luca Vazzano
|
||||
Luke
|
||||
MadScientistCarl
|
||||
Marcus Dobler
|
||||
Marcus Richter
|
||||
@ -255,89 +250,78 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Martin Soucek
|
||||
matt
|
||||
Matt Greene
|
||||
Matthew Hall
|
||||
medecau
|
||||
Matthew Dana
|
||||
Max Kryschi
|
||||
Michael Dürwald
|
||||
Michael Policastro
|
||||
Michael Seawell
|
||||
MikadoSC
|
||||
Mike Barbee
|
||||
nate etan
|
||||
Nick Abousselam
|
||||
Nicola Cocchiaro
|
||||
Nicolás Carrasco
|
||||
Nicole Barovic
|
||||
Nikita Blizniuk
|
||||
Oliver Dick
|
||||
Oscar Campos
|
||||
Paul Hocker
|
||||
Paul Von Zimmerman
|
||||
Pavel Kotlyar
|
||||
Pedro
|
||||
Pete Goodwin
|
||||
Peter Richmond
|
||||
Petr Malac
|
||||
PhaineOfCatz
|
||||
Rafał Michno
|
||||
Raymond Harris
|
||||
Petrus Prinsloo
|
||||
Philip Woods
|
||||
R
|
||||
RaiRu
|
||||
RAMupgrade
|
||||
Reilt
|
||||
Rene Tailleur
|
||||
Rhodochrone
|
||||
Rickard Hermanson
|
||||
Rob
|
||||
Robert McDermott
|
||||
Robert Willes
|
||||
Rob McInroy
|
||||
Rocknight Studios
|
||||
RodZilla
|
||||
Romeo Disca
|
||||
Ronnie Ashlock
|
||||
Ronny Mühle
|
||||
Russ
|
||||
Ryan Breaker
|
||||
Ryan Heath
|
||||
Ryan Miller
|
||||
Ryan Scott
|
||||
Samuel Hummerstone
|
||||
Samuel Judd
|
||||
Sean Morgan
|
||||
Sebastian Hutter
|
||||
schroedinger's possum
|
||||
Serban Serafimescu
|
||||
Sergey Fonaryov
|
||||
Sergey Minakov
|
||||
Shishir Tandale
|
||||
Sing Chun Lee
|
||||
Skides
|
||||
SKison
|
||||
Song Junwoo
|
||||
spacechase0
|
||||
Stephan Hennion
|
||||
Stephen Brown
|
||||
Steven Landow
|
||||
Stoned Xander
|
||||
Super Izzo
|
||||
Sven F.
|
||||
Sven Carstensen
|
||||
Teslatech
|
||||
Thomas Bjarnelöf
|
||||
Thomas Kurz
|
||||
Tim Howard
|
||||
Timothy van der Valk
|
||||
Tobias Bocanegra
|
||||
Tobias Raggl
|
||||
Todd Smith
|
||||
Tom Wor
|
||||
Tom Glenn
|
||||
Torbulous
|
||||
toto bibi
|
||||
Troy Kinsella
|
||||
Turntsnaco
|
||||
Valryia
|
||||
Vincent Cloutier
|
||||
Vlad Ceru Opran
|
||||
VoidPointer
|
||||
Winston
|
||||
Wojciech Chojnacki
|
||||
xzibiting
|
||||
Yifan Lai
|
||||
Yuancheng Zhang
|
||||
Артём Равбецкий
|
||||
|
||||
## Silver donors
|
||||
|
||||
1D_Inc
|
||||
Aaron Oldenburg
|
||||
A. B.
|
||||
Adam Brunnmeier
|
||||
@ -346,28 +330,30 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Adam McCurdy
|
||||
Adam N Webber
|
||||
Adam Smeltzer
|
||||
Adam Szymański
|
||||
Adisibio
|
||||
Adriano Orioli
|
||||
Adrien de Pierres
|
||||
Agustinus Arya
|
||||
Aidan O'Flannagain
|
||||
Aki Mimoto
|
||||
Akio Yamazaki
|
||||
Alaksandr Suša
|
||||
Alan Beauchamp
|
||||
Albert Gyulgazyan
|
||||
Alberto Salazar Muñoz
|
||||
Alberto Vilches
|
||||
Alder Stefano
|
||||
Alejandro Saucedo
|
||||
AleMax
|
||||
Ales Jelovcan
|
||||
Alessandro Senese
|
||||
Alexander Ravenheart
|
||||
Alex Chan
|
||||
Alex Clavelle
|
||||
alex raeside
|
||||
Alex (Well Done Games)
|
||||
Allan Davis
|
||||
Allen Schade
|
||||
Amar Šahinović
|
||||
Andre Altmueller
|
||||
Andrei Pufu
|
||||
Andre Stackhouse
|
||||
Andrew Groot
|
||||
andrew james morris
|
||||
@ -376,23 +362,22 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Ano Nim
|
||||
Anthony Avina
|
||||
Anton Bouwer
|
||||
Antti Vesanen
|
||||
Arch Toasty
|
||||
Arda Erol
|
||||
Arseniy M
|
||||
Arthur Brainville
|
||||
Arturo Rosales
|
||||
Ashley Claymore
|
||||
Aubrey Falconer
|
||||
Auré Franky
|
||||
aurelien condomines
|
||||
Austin Finlinson
|
||||
Austin Miller
|
||||
Azar Gurbanov
|
||||
AzulCrescent
|
||||
b110110
|
||||
Balázs Batári
|
||||
Bálint Horváth
|
||||
Beau Seymour
|
||||
Behzad Ghaffari
|
||||
Benedikt
|
||||
Benoit Jauvin-Girard
|
||||
Ben Ridley
|
||||
Ben Vercammen
|
||||
Bernd Jänichen
|
||||
@ -401,45 +386,46 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
bitbrain
|
||||
Bjarne Voigtländer
|
||||
Black Block
|
||||
Blair Allen
|
||||
Blunderjack
|
||||
Bobby CC Wong
|
||||
Brad Harms
|
||||
BoiLudens
|
||||
Bram
|
||||
Brandon
|
||||
Brian Klein
|
||||
Brodie Fairhall
|
||||
Brian
|
||||
Brian Ford
|
||||
Bronson Zgeb
|
||||
Burney Waring
|
||||
c64cosmin
|
||||
Caleb Gartner
|
||||
Caleb Makela
|
||||
Caliburn
|
||||
Cameron Meyer
|
||||
Carlos Rios
|
||||
Carl van der Geest
|
||||
Casey
|
||||
Cassidy James
|
||||
Chad Steadman
|
||||
Checkpoint Charlie
|
||||
Chris Chapin
|
||||
Chris Jagusch
|
||||
Chris Langford
|
||||
Chris Ridenour
|
||||
Christian Kaltenecker
|
||||
Christian Mauduit
|
||||
Christian Scholz
|
||||
Christian Winter
|
||||
Christoffer Dahlblom
|
||||
Christophe Gagnier
|
||||
Christopher Chin
|
||||
Christoph Woinke
|
||||
Codex404
|
||||
Cody Parker
|
||||
CoffeeFingers
|
||||
Conall O
|
||||
Conner Lane
|
||||
Corchari
|
||||
Craig Maloney
|
||||
Corey W
|
||||
Craig Post
|
||||
CT
|
||||
Cullen Canejo
|
||||
cynwav
|
||||
Dakota Watkins
|
||||
damucz
|
||||
Daniel Cheney
|
||||
Daniel H. Bahr
|
||||
Danielle Cheney
|
||||
Dare Looks
|
||||
Daren Scot Wilson
|
||||
Dave Walker
|
||||
David Baker
|
||||
@ -448,25 +434,25 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
David Maziarka
|
||||
David Rapisarda
|
||||
Devin Carraway
|
||||
Diego Pereira
|
||||
Devin R
|
||||
Dimitri Roche
|
||||
Dmitry Fisher (Raccoon path)
|
||||
Dmytro Korchynskyi
|
||||
Dominik Wetzel
|
||||
Don B
|
||||
Douglas Plumley
|
||||
Dragontrapper
|
||||
Dr Ewan Murray
|
||||
Ducky
|
||||
Duobix
|
||||
Duodecimal
|
||||
Eduardo Teixeira
|
||||
Edward Herbert
|
||||
Edward L
|
||||
Edward Swartz
|
||||
Egon Elbre
|
||||
Elgenzay
|
||||
Elias Nykrem
|
||||
Elijah Anderson
|
||||
Emerson MX
|
||||
Ends
|
||||
Ephemeral
|
||||
Eric Stokes
|
||||
Eric Walkingshaw
|
||||
@ -482,54 +468,42 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Felix Bohmann
|
||||
Fer DC
|
||||
Filip Lundby
|
||||
Francisco Garcia Florez
|
||||
Frank
|
||||
freakazoid
|
||||
FrostMarble
|
||||
Game Endeavor
|
||||
Garett Bass
|
||||
Gary Thomas
|
||||
gebba
|
||||
George Marques
|
||||
Gon Shibayama
|
||||
Green Fox
|
||||
Greg Lincoln
|
||||
Greg Olson
|
||||
Greyson Richey
|
||||
Grid
|
||||
Grok Games
|
||||
Grominet
|
||||
Guillaume Pham Ngoc
|
||||
Guldoman
|
||||
gurehamu
|
||||
Hal A
|
||||
Guo Hongci
|
||||
Haplo
|
||||
Hayden Foley
|
||||
Heribert Hirth
|
||||
Hinken
|
||||
Houdini Blueprints
|
||||
Ian ORourke
|
||||
Hylian Ensemble
|
||||
Ian Richard Kunert
|
||||
Ian Williams
|
||||
Idilio Alfaro
|
||||
IndustrialRobot
|
||||
Ivan Nikolaev
|
||||
Inki Crow
|
||||
iveks
|
||||
izzy neuhaus
|
||||
Jackson Harmer
|
||||
Jacob D
|
||||
Jaguar
|
||||
Jake D
|
||||
Jake Huxell
|
||||
Jako Danar
|
||||
James
|
||||
James A F Manley
|
||||
James Allen
|
||||
James Gary
|
||||
James Guardino
|
||||
James Quincy
|
||||
James Thomas
|
||||
Jamie Massey
|
||||
Janis Skuja
|
||||
Jan Vetulani
|
||||
Japortie
|
||||
JARKKO PARVIAINEN
|
||||
Jason Bolton
|
||||
Jason Evans
|
||||
@ -538,13 +512,14 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Jeff Hungerford
|
||||
Jeffrey Berube
|
||||
Jennifer Graves
|
||||
Jeramie
|
||||
Jesse Dubay
|
||||
Jim Engstrand
|
||||
João Pedro Braz
|
||||
Joe Hurdle
|
||||
Joe Klemmer
|
||||
Joel Höglund
|
||||
John Anders Stav
|
||||
John Bruce
|
||||
John Gabriel
|
||||
Johnny Deepman
|
||||
Jonas
|
||||
Jonas Arndt
|
||||
Jonas Bernemann
|
||||
@ -555,33 +530,32 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Jonathan Ellis
|
||||
Jonathan G
|
||||
Jonathan Turner
|
||||
Jon Bonazza
|
||||
Jon Oakes
|
||||
Jon Sully
|
||||
Jordan West
|
||||
Jordy Goodridge
|
||||
Jorge Antunes
|
||||
Jorge Araya Navarro
|
||||
Jose Francisco 'Yiro' Vera Girona
|
||||
José Gabriel González
|
||||
Joseph Catrambone
|
||||
Josh P
|
||||
Josh Taylor
|
||||
Joshua Heidrich
|
||||
jromkjrom
|
||||
Joshua Segall
|
||||
Juanfran
|
||||
Juan Maggi
|
||||
Juan Uys
|
||||
Jueast
|
||||
Julian le Roux
|
||||
Julian Murgia
|
||||
June Little
|
||||
Justin Hamilton
|
||||
Justin Hurst
|
||||
Justin Oaksford
|
||||
Justin Spedding
|
||||
KaDokta
|
||||
Kalydi Balázs
|
||||
Karol Wojtasiuk (Drakonter)
|
||||
Katsuomi Kobayashi
|
||||
Keedong Park
|
||||
keeganstoybox
|
||||
Keegan Scott
|
||||
Keinan Powers
|
||||
Keith Bradner
|
||||
Kenji Kawabata
|
||||
@ -589,74 +563,72 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Kent Jofur
|
||||
Kerotasma
|
||||
Ketafuki
|
||||
Kiri Jolly
|
||||
killaQueen
|
||||
Kodera Software
|
||||
Kolandrious
|
||||
Kquona
|
||||
Krishna Nadoor
|
||||
Kristian Nygaard Jensen
|
||||
KR McGinley
|
||||
Kronarq
|
||||
KsyTek Games
|
||||
kycho
|
||||
Kyle Burnett
|
||||
Kyle Jacobs
|
||||
Kyuppin
|
||||
La diagonale du poulpe
|
||||
Lasse le Dous
|
||||
Laurent CHEA
|
||||
Laurent Dethoor
|
||||
Laxman Pradhan
|
||||
Lech Rozanski
|
||||
Leland Vakarian
|
||||
Lemin
|
||||
LEMMiNO
|
||||
Leonardo Dimano
|
||||
Leonardo Baumle
|
||||
Levi Lindsey
|
||||
LF
|
||||
Linus Lind Lundgren
|
||||
Logan Apple
|
||||
Luca Poli
|
||||
Ludovic DELVAL
|
||||
Luigi Renna
|
||||
Luis Gaemperle
|
||||
Luis M
|
||||
Luke Kasz
|
||||
LunaticInAHat
|
||||
Major Haul
|
||||
Malcolm
|
||||
Marco Lardelli
|
||||
Marcos Heitor Carvalho
|
||||
Markie Music
|
||||
Mark Jad
|
||||
Mark Malone
|
||||
Mark Tyler
|
||||
Markus Martin
|
||||
Markus Michael Egger
|
||||
Markus Ort
|
||||
Markus Strompen
|
||||
Martin FIbik
|
||||
Martin Holas
|
||||
Martin Linklater
|
||||
Martin Liška
|
||||
Martin Trbola
|
||||
Martin Zabinski
|
||||
Mathieu Meissonnier
|
||||
Matt Edwards
|
||||
Matthew Booe
|
||||
Matt Sylvia
|
||||
Maverick
|
||||
Max Fiedler
|
||||
Maxime Blade
|
||||
Maxime Santerre
|
||||
Maxwell
|
||||
McStuffings
|
||||
Melissa Mears
|
||||
Merlyn Morgan-Graham
|
||||
Mert Kasar
|
||||
Metal Demon 2000
|
||||
mhilbrunner
|
||||
Michael
|
||||
Michael Bruce-Lockhart
|
||||
Michael Haney
|
||||
Michael Morrison
|
||||
Michael Toporkov
|
||||
Michał Skwarek
|
||||
Mikael Nordenberg
|
||||
Mikail Freitas
|
||||
Mikayla
|
||||
Mike
|
||||
Mike Birkhead
|
||||
Mike Copley
|
||||
Mitchell
|
||||
Miss
|
||||
Mitchell J. Wagner
|
||||
Mitchell White
|
||||
MJacred
|
||||
ModularMind
|
||||
Molinghu
|
||||
@ -666,7 +638,6 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
moulefrite
|
||||
MrAZIE
|
||||
Mrjemandem
|
||||
Nathan Fish
|
||||
Nathaniel
|
||||
neighty
|
||||
Neil Blakey-Milner
|
||||
@ -677,83 +648,78 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Nicholas Orlowski
|
||||
Nick Eldrenkamp
|
||||
Nick Macholl
|
||||
Niclas Eriksen
|
||||
Nico Greve
|
||||
Nicolas Goll-Perrier
|
||||
Nicolas Rosset
|
||||
Nicolò Brigadoi Calamari
|
||||
Nils Nordmark
|
||||
Nima Farid
|
||||
Noel Billig
|
||||
oceoh
|
||||
Noesis
|
||||
obscuresteel
|
||||
Okatima
|
||||
Oleg Reva
|
||||
Oliver Ambrose
|
||||
Oriol Muñoz Princep
|
||||
oscar1000108
|
||||
Oscar Domingo
|
||||
p
|
||||
Panagiotis Xynos
|
||||
Pascal
|
||||
Patrick Indermühle
|
||||
Patrickm
|
||||
Patrick Nafarrete
|
||||
Patrick Wuttke
|
||||
Paul E Hansen
|
||||
Paul Gieske
|
||||
Paweł Kowal
|
||||
Paweł Łyczkowski
|
||||
Peter Höglund
|
||||
Philip Cohoe
|
||||
Philip Ludington (MrPhil)
|
||||
Pierre Caye
|
||||
pingudroid
|
||||
Pixel Archipel
|
||||
pj
|
||||
Point08
|
||||
Preethi Vaidyanathan
|
||||
PsycHead
|
||||
Puntigames
|
||||
pwab
|
||||
RabidTunes
|
||||
RackBar Dingum
|
||||
Rafa Laguna
|
||||
Raffaele Aramo
|
||||
Ragnar Pettersson
|
||||
Rainer Amler
|
||||
Rami Hanano
|
||||
Rammeow
|
||||
RAMupgrade
|
||||
red1939
|
||||
Relintai
|
||||
Remi Rampin
|
||||
Remtaine
|
||||
Reneator
|
||||
René Habermann
|
||||
Riccardo Marini
|
||||
Richard Hayes
|
||||
Richard Ivánek
|
||||
Richard Néveri
|
||||
Riley
|
||||
Robin Ward
|
||||
RobotCritter
|
||||
Rob Ruana
|
||||
Rodrigo Loli
|
||||
Roger Smith
|
||||
Roglozor
|
||||
Roka
|
||||
Roland Rząsa
|
||||
Roman Papush
|
||||
Ronald Ho Hip (CrimsonZA)
|
||||
Ronan
|
||||
Roy Scayged
|
||||
Russ
|
||||
Ryan Groom
|
||||
Sam Caulfield
|
||||
Sam Edson
|
||||
Ryan Mueller
|
||||
Rykk
|
||||
Sammy Fischer
|
||||
Sangeeth Pavithran
|
||||
schroedinger's possum
|
||||
Scott Longley
|
||||
Sean Wall
|
||||
Sean Dee
|
||||
Sebastian Michailidis
|
||||
SeongWan Kim
|
||||
Sessamekesh
|
||||
Seth Drebitko
|
||||
SeungJong k
|
||||
Shaidak
|
||||
Shane
|
||||
Shane Abraham
|
||||
Shane Sicienski
|
||||
Shane Spoor
|
||||
Silver1063
|
||||
simdee
|
||||
@ -766,14 +732,16 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
slavfox
|
||||
smbe19
|
||||
smo1704
|
||||
Snippytorque
|
||||
Soheib El-Harrache
|
||||
Solene Waked
|
||||
Sophie Winter
|
||||
Spencer Everhart
|
||||
Space Hedgehog
|
||||
Sparky
|
||||
Squidgy
|
||||
Squirrel
|
||||
Stéphane Roussel
|
||||
Stephen Rice
|
||||
Steve Cloete
|
||||
Steven Drovie
|
||||
summerblind
|
||||
Sung soo Choi
|
||||
@ -781,10 +749,12 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
SxP
|
||||
tadashi endo
|
||||
Tarch
|
||||
Techwizz
|
||||
Terry
|
||||
The Domis4
|
||||
Theodore Lindsey
|
||||
TheVoiceInMyHead
|
||||
TheWint
|
||||
Thibaut DECROMBECQUE
|
||||
thomas
|
||||
Thomas Bechtold
|
||||
@ -797,9 +767,7 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Tim Gleason
|
||||
Tim Klein
|
||||
Timothy B. MacDonald
|
||||
tinyBigGAMES LLC
|
||||
Title Plinsut
|
||||
TMoney
|
||||
Tim Riley
|
||||
Toadile
|
||||
Tobias Bradtke
|
||||
Tom Coxon
|
||||
@ -810,11 +778,12 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Travis O'Brien
|
||||
Trent Skinner
|
||||
tril zerobyte
|
||||
Troy Bonneau
|
||||
Tryggve Sollid
|
||||
Turgut Temucin
|
||||
tweedle
|
||||
Tycho
|
||||
Tyler Stafos
|
||||
Ukko K.
|
||||
UltyX
|
||||
Uther
|
||||
v01tech
|
||||
@ -825,21 +794,20 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||
Vitaliy Sapronenko
|
||||
Vi Watch
|
||||
Vladimir Savin
|
||||
Vuli Nux
|
||||
Wapiti .
|
||||
Watchinofoye
|
||||
Wiley Thompson
|
||||
William Bodin
|
||||
William Edwards
|
||||
William F Siqueira
|
||||
William Hogben
|
||||
Windvis
|
||||
Woonki Moon
|
||||
Wyatt Goodin
|
||||
xenomat
|
||||
yakcyll
|
||||
Xananax
|
||||
Yan Shi
|
||||
Yegor Smirnov
|
||||
yust
|
||||
Zach H.
|
||||
Zak Stephens
|
||||
Zekim
|
||||
Zher Huei Lee
|
||||
蕭惟允
|
||||
貴宏 小松
|
||||
|
||||
@ -482,8 +482,8 @@ if selected_platform in platform_list:
|
||||
|
||||
if env["werror"]:
|
||||
env.Append(CCFLAGS=["-Werror"])
|
||||
else: # always enable those errors
|
||||
env.Append(CCFLAGS=["-Werror=return-type"])
|
||||
if methods.using_gcc(env) and version[0] >= 12: # False positives in our error macros, see GH-58747.
|
||||
env.Append(CCFLAGS=["-Wno-error=return-type"])
|
||||
|
||||
if hasattr(detect, "get_program_suffix"):
|
||||
suffix = "." + detect.get_program_suffix()
|
||||
@ -665,6 +665,9 @@ if selected_platform in platform_list:
|
||||
|
||||
# Microsoft Visual Studio Project Generation
|
||||
if env["vsproj"]:
|
||||
if os.name != "nt":
|
||||
print("Error: The `vsproj` option is only usable on Windows with Visual Studio.")
|
||||
Exit(255)
|
||||
env["CPPPATH"] = [Dir(path) for path in env["CPPPATH"]]
|
||||
methods.generate_vs_project(env, GetOption("num_jobs"))
|
||||
methods.generate_cpp_hint_file("cpp.hint")
|
||||
|
||||
@ -299,7 +299,7 @@ class CommandQueueMT {
|
||||
DECL_CMD(0)
|
||||
SPACE_SEP_LIST(DECL_CMD, 13)
|
||||
|
||||
/* comands that return */
|
||||
/* commands that return */
|
||||
DECL_CMD_RET(0)
|
||||
SPACE_SEP_LIST(DECL_CMD_RET, 13)
|
||||
|
||||
|
||||
@ -38,7 +38,7 @@ class PHashTranslation : public Translation {
|
||||
|
||||
//this translation uses a sort of modified perfect hash algorithm
|
||||
//it requires hashing strings twice and then does a binary search,
|
||||
//so it's slower, but at the same time it has an extreemly high chance
|
||||
//so it's slower, but at the same time it has an extremely high chance
|
||||
//of catching untranslated strings
|
||||
|
||||
//load/store friendly types
|
||||
|
||||
@ -30,6 +30,7 @@ if not has_module:
|
||||
thirdparty_mbedtls_sources = [
|
||||
"aes.c",
|
||||
"base64.c",
|
||||
"constant_time.c",
|
||||
"md5.c",
|
||||
"sha1.c",
|
||||
"sha256.c",
|
||||
|
||||
@ -376,7 +376,7 @@ static void _convert(int p_width, int p_height, const uint8_t *p_src, uint8_t *p
|
||||
const uint8_t *rofs = &p_src[((y * p_width) + x) * (read_bytes + (read_alpha ? 1 : 0))];
|
||||
uint8_t *wofs = &p_dst[((y * p_width) + x) * (write_bytes + (write_alpha ? 1 : 0))];
|
||||
|
||||
uint8_t rgba[4];
|
||||
uint8_t rgba[4] = { 0, 0, 0, 255 };
|
||||
|
||||
if (read_gray) {
|
||||
rgba[0] = rofs[0];
|
||||
@ -394,7 +394,7 @@ static void _convert(int p_width, int p_height, const uint8_t *p_src, uint8_t *p
|
||||
|
||||
if (write_gray) {
|
||||
//TODO: not correct grayscale, should use fixed point version of actual weights
|
||||
wofs[0] = uint8_t((uint16_t(rofs[0]) + uint16_t(rofs[1]) + uint16_t(rofs[2])) / 3);
|
||||
wofs[0] = uint8_t((uint16_t(rgba[0]) + uint16_t(rgba[1]) + uint16_t(rgba[2])) / 3);
|
||||
} else {
|
||||
for (uint32_t i = 0; i < write_bytes; i++) {
|
||||
wofs[i] = rgba[i];
|
||||
|
||||
@ -765,7 +765,7 @@ static void _encode_string(const String &p_string, uint8_t *&buf, int &r_len) {
|
||||
}
|
||||
|
||||
Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bool p_full_objects, int p_depth) {
|
||||
ERR_FAIL_COND_V_MSG(p_depth > Variant::MAX_RECURSION_DEPTH, ERR_OUT_OF_MEMORY, "Potential inifite recursion detected. Bailing.");
|
||||
ERR_FAIL_COND_V_MSG(p_depth > Variant::MAX_RECURSION_DEPTH, ERR_OUT_OF_MEMORY, "Potential infinite recursion detected. Bailing.");
|
||||
uint8_t *buf = r_buffer;
|
||||
|
||||
r_len = 0;
|
||||
|
||||
@ -154,13 +154,11 @@ Error PCKPacker::flush(bool p_verbose) {
|
||||
src->close();
|
||||
memdelete(src);
|
||||
count += 1;
|
||||
if (p_verbose && files.size() > 0) {
|
||||
if (count % 100 == 0) {
|
||||
printf("%i/%i (%.2f)\r", count, files.size(), float(count) / files.size() * 100);
|
||||
fflush(stdout);
|
||||
};
|
||||
};
|
||||
};
|
||||
const int file_num = files.size();
|
||||
if (p_verbose && (file_num > 0)) {
|
||||
print_line(vformat("[%d/%d - %d%%] PCKPacker flush: %s -> %s", count, file_num, float(count) / file_num * 100, files[i].src_path, files[i].path));
|
||||
}
|
||||
}
|
||||
|
||||
if (p_verbose) {
|
||||
printf("\n");
|
||||
|
||||
@ -301,7 +301,7 @@ public:
|
||||
tree.update();
|
||||
_check_for_collisions();
|
||||
#ifdef BVH_INTEGRITY_CHECKS
|
||||
tree.integrity_check_all();
|
||||
tree._integrity_check_all();
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -477,13 +477,6 @@ private:
|
||||
continue;
|
||||
}
|
||||
|
||||
#ifdef BVH_CHECKS
|
||||
// if neither are pairable, they should ignore each other
|
||||
// THIS SHOULD NEVER HAPPEN .. now we only test the pairable tree
|
||||
// if the changed item is not pairable
|
||||
CRASH_COND(params.test_pairable_only && !tree._extra[ref_id].pairable);
|
||||
#endif
|
||||
|
||||
// checkmasks is already done in the cull routine.
|
||||
BVHHandle h_collidee;
|
||||
h_collidee.set_id(ref_id);
|
||||
|
||||
@ -2,7 +2,7 @@ public:
|
||||
BVHHandle item_add(T *p_userdata, bool p_active, const BOUNDS &p_aabb, int32_t p_subindex, bool p_pairable, uint32_t p_pairable_type, uint32_t p_pairable_mask, bool p_invisible = false) {
|
||||
#ifdef BVH_VERBOSE_TREE
|
||||
VERBOSE_PRINT("\nitem_add BEFORE");
|
||||
_debug_recursive_print_tree(0);
|
||||
_debug_recursive_print_tree(p_tree_id);
|
||||
VERBOSE_PRINT("\n");
|
||||
#endif
|
||||
|
||||
@ -90,8 +90,8 @@ BVHHandle item_add(T *p_userdata, bool p_active, const BOUNDS &p_aabb, int32_t p
|
||||
mem += _nodes.estimate_memory_use();
|
||||
|
||||
String sz = _debug_aabb_to_string(abb);
|
||||
VERBOSE_PRINT("\titem_add [" + itos(ref_id) + "] " + itos(_refs.size()) + " refs,\t" + itos(_nodes.size()) + " nodes " + sz);
|
||||
VERBOSE_PRINT("mem use : " + itos(mem) + ", num nodes : " + itos(_nodes.size()));
|
||||
VERBOSE_PRINT("\titem_add [" + itos(ref_id) + "] " + itos(_refs.used_size()) + " refs,\t" + itos(_nodes.used_size()) + " nodes " + sz);
|
||||
VERBOSE_PRINT("mem use : " + itos(mem) + ", num nodes reserved : " + itos(_nodes.reserved_size()));
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@ -50,8 +50,8 @@ public:
|
||||
/**
|
||||
*
|
||||
* @param p_plane plane used to split the face
|
||||
* @param p_res array of at least 3 faces, amount used in functio return
|
||||
* @param p_is_point_over array of at least 3 booleans, determining which face is over the plane, amount used in functio return
|
||||
* @param p_res array of at least 3 faces, amount used in function return
|
||||
* @param p_is_point_over array of at least 3 booleans, determining which face is over the plane, amount used in function return
|
||||
* @param _epsilon constant used for numerical error rounding, to add "thickness" to the plane (so coplanar points can happen)
|
||||
* @return amount of faces generated by the split, either 0 (means no split possible), 2 or 3
|
||||
*/
|
||||
|
||||
@ -249,6 +249,12 @@ DirAccess *DirAccess::create(AccessType p_access) {
|
||||
DirAccess *da = create_func[p_access] ? create_func[p_access]() : nullptr;
|
||||
if (da) {
|
||||
da->_access_type = p_access;
|
||||
|
||||
if (p_access == ACCESS_RESOURCES) {
|
||||
da->change_dir("res://");
|
||||
} else if (p_access == ACCESS_USERDATA) {
|
||||
da->change_dir("user://");
|
||||
}
|
||||
}
|
||||
|
||||
return da;
|
||||
|
||||
@ -28,6 +28,7 @@
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
|
||||
#include "platform_config.h"
|
||||
#ifndef PLATFORM_THREAD_OVERRIDE // See details in thread.h
|
||||
|
||||
#include "thread.h"
|
||||
|
||||
@ -28,6 +28,7 @@
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
|
||||
#include "platform_config.h"
|
||||
// Define PLATFORM_THREAD_OVERRIDE in your platform's `platform_config.h`
|
||||
// to use a custom Thread implementation defined in `platform/[your_platform]/platform_thread.h`
|
||||
// Overriding the platform implementation is required in some proprietary platforms
|
||||
|
||||
@ -37,7 +37,7 @@
|
||||
@author Juan Linietsky <reduzio@gmail.com>
|
||||
* Generic Pool Allocator.
|
||||
* This is a generic memory pool allocator, with locking, compacting and alignment. (@TODO alignment)
|
||||
* It used as a standard way to manage alloction in a specific region of memory, such as texture memory,
|
||||
* It used as a standard way to manage allocation in a specific region of memory, such as texture memory,
|
||||
* audio sample memory, or just any kind of memory overall.
|
||||
* (@TODO) abstraction should be greater, because in many platforms, you need to manage a nonreachable memory.
|
||||
*/
|
||||
|
||||
@ -509,11 +509,7 @@ Error ProjectSettings::setup(const String &p_path, const String &p_main_pack, bo
|
||||
bool ProjectSettings::has_setting(String p_var) const {
|
||||
_THREAD_SAFE_METHOD_
|
||||
|
||||
StringName name = p_var;
|
||||
if (!disable_feature_overrides && feature_overrides.has(name)) {
|
||||
name = feature_overrides[name];
|
||||
}
|
||||
return props.has(name);
|
||||
return props.has(p_var);
|
||||
}
|
||||
|
||||
void ProjectSettings::set_registering_order(bool p_enable) {
|
||||
|
||||
@ -113,7 +113,7 @@ public:
|
||||
if (tmp >= p_value) {
|
||||
return tmp; // already greater, or equal
|
||||
}
|
||||
if (value.compare_exchange_weak(tmp, p_value, std::memory_order_release)) {
|
||||
if (value.compare_exchange_weak(tmp, p_value, std::memory_order_acq_rel)) {
|
||||
return p_value;
|
||||
}
|
||||
}
|
||||
@ -125,7 +125,7 @@ public:
|
||||
if (c == 0) {
|
||||
return 0;
|
||||
}
|
||||
if (value.compare_exchange_weak(c, c + 1, std::memory_order_release)) {
|
||||
if (value.compare_exchange_weak(c, c + 1, std::memory_order_acq_rel)) {
|
||||
return c + 1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -33,6 +33,20 @@
|
||||
#include "core/os/os.h"
|
||||
#include "core/resource.h"
|
||||
|
||||
void UndoRedo::Operation::delete_reference() {
|
||||
if (type != Operation::TYPE_REFERENCE) {
|
||||
return;
|
||||
}
|
||||
if (ref.is_valid()) {
|
||||
ref.unref();
|
||||
} else {
|
||||
Object *obj = ObjectDB::get_instance(object);
|
||||
if (obj) {
|
||||
memdelete(obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void UndoRedo::_discard_redo() {
|
||||
if (current_action == actions.size() - 1) {
|
||||
return;
|
||||
@ -40,16 +54,7 @@ void UndoRedo::_discard_redo() {
|
||||
|
||||
for (int i = current_action + 1; i < actions.size(); i++) {
|
||||
for (List<Operation>::Element *E = actions.write[i].do_ops.front(); E; E = E->next()) {
|
||||
if (E->get().type == Operation::TYPE_REFERENCE) {
|
||||
if (E->get().ref.is_valid()) {
|
||||
E->get().ref.unref();
|
||||
} else {
|
||||
Object *obj = ObjectDB::get_instance(E->get().object);
|
||||
if (obj) {
|
||||
memdelete(obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
E->get().delete_reference();
|
||||
}
|
||||
//ERASE do data
|
||||
}
|
||||
@ -72,14 +77,7 @@ void UndoRedo::create_action(const String &p_name, MergeMode p_mode) {
|
||||
List<Operation>::Element *E = actions.write[current_action + 1].do_ops.front();
|
||||
|
||||
while (E) {
|
||||
if (E->get().type == Operation::TYPE_REFERENCE) {
|
||||
Object *obj = ObjectDB::get_instance(E->get().object);
|
||||
|
||||
if (obj) {
|
||||
memdelete(obj);
|
||||
}
|
||||
}
|
||||
|
||||
E->get().delete_reference();
|
||||
E = E->next();
|
||||
actions.write[current_action + 1].do_ops.pop_front();
|
||||
}
|
||||
@ -224,16 +222,7 @@ void UndoRedo::_pop_history_tail() {
|
||||
}
|
||||
|
||||
for (List<Operation>::Element *E = actions.write[0].undo_ops.front(); E; E = E->next()) {
|
||||
if (E->get().type == Operation::TYPE_REFERENCE) {
|
||||
if (E->get().ref.is_valid()) {
|
||||
E->get().ref.unref();
|
||||
} else {
|
||||
Object *obj = ObjectDB::get_instance(E->get().object);
|
||||
if (obj) {
|
||||
memdelete(obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
E->get().delete_reference();
|
||||
}
|
||||
|
||||
actions.remove(0);
|
||||
|
||||
@ -64,6 +64,8 @@ private:
|
||||
ObjectID object;
|
||||
String name;
|
||||
Variant args[VARIANT_ARG_MAX];
|
||||
|
||||
void delete_reference();
|
||||
};
|
||||
|
||||
struct Action {
|
||||
|
||||
@ -3426,21 +3426,19 @@ String String::http_escape() const {
|
||||
const CharString temp = utf8();
|
||||
String res;
|
||||
for (int i = 0; i < temp.length(); ++i) {
|
||||
char ord = temp[i];
|
||||
uint8_t ord = temp[i];
|
||||
if (ord == '.' || ord == '-' || ord == '_' || ord == '~' ||
|
||||
(ord >= 'a' && ord <= 'z') ||
|
||||
(ord >= 'A' && ord <= 'Z') ||
|
||||
(ord >= '0' && ord <= '9')) {
|
||||
res += ord;
|
||||
} else {
|
||||
char h_Val[3];
|
||||
#if defined(__GNUC__) || defined(_MSC_VER)
|
||||
snprintf(h_Val, 3, "%02hhX", ord);
|
||||
#else
|
||||
sprintf(h_Val, "%02hhX", ord);
|
||||
#endif
|
||||
res += "%";
|
||||
res += h_Val;
|
||||
char p[4] = { '%', 0, 0, 0 };
|
||||
static const char hex[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
|
||||
|
||||
p[1] = hex[ord >> 4];
|
||||
p[2] = hex[ord & 0xF];
|
||||
res += p;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
@ -4201,7 +4199,7 @@ String String::sprintf(const Array &values, bool *error) const {
|
||||
int min_chars = 0;
|
||||
int min_decimals = 0;
|
||||
bool in_decimals = false;
|
||||
bool pad_with_zeroes = false;
|
||||
bool pad_with_zeros = false;
|
||||
bool left_justified = false;
|
||||
bool show_sign = false;
|
||||
|
||||
@ -4252,7 +4250,7 @@ String String::sprintf(const Array &values, bool *error) const {
|
||||
|
||||
// Padding.
|
||||
int pad_chars_count = (value < 0 || show_sign) ? min_chars - 1 : min_chars;
|
||||
String pad_char = pad_with_zeroes ? String("0") : String(" ");
|
||||
String pad_char = pad_with_zeros ? String("0") : String(" ");
|
||||
if (left_justified) {
|
||||
str = str.rpad(pad_chars_count, pad_char);
|
||||
} else {
|
||||
@ -4260,10 +4258,13 @@ String String::sprintf(const Array &values, bool *error) const {
|
||||
}
|
||||
|
||||
// Sign.
|
||||
if (show_sign && value >= 0) {
|
||||
str = str.insert(pad_with_zeroes ? 0 : str.length() - number_len, "+");
|
||||
} else if (value < 0) {
|
||||
str = str.insert(pad_with_zeroes ? 0 : str.length() - number_len, "-");
|
||||
if (show_sign || value < 0) {
|
||||
String sign_char = value < 0 ? "-" : "+";
|
||||
if (left_justified) {
|
||||
str = str.insert(0, sign_char);
|
||||
} else {
|
||||
str = str.insert(pad_with_zeros ? 0 : str.length() - number_len, sign_char);
|
||||
}
|
||||
}
|
||||
|
||||
formatted += str;
|
||||
@ -4292,13 +4293,9 @@ String String::sprintf(const Array &values, bool *error) const {
|
||||
|
||||
// Padding. Leave room for sign later if required.
|
||||
int pad_chars_count = (is_negative || show_sign) ? min_chars - 1 : min_chars;
|
||||
String pad_char = pad_with_zeroes ? String("0") : String(" ");
|
||||
String pad_char = pad_with_zeros ? String("0") : String(" ");
|
||||
if (left_justified) {
|
||||
if (pad_with_zeroes) {
|
||||
return "left justification cannot be used with zeros as the padding";
|
||||
} else {
|
||||
str = str.rpad(pad_chars_count, pad_char);
|
||||
}
|
||||
str = str.rpad(pad_chars_count, pad_char);
|
||||
} else {
|
||||
str = str.lpad(pad_chars_count, pad_char);
|
||||
}
|
||||
@ -4309,7 +4306,7 @@ String String::sprintf(const Array &values, bool *error) const {
|
||||
if (left_justified) {
|
||||
str = str.insert(0, sign_char);
|
||||
} else {
|
||||
str = str.insert(pad_with_zeroes ? 0 : str.length() - initial_len, sign_char);
|
||||
str = str.insert(pad_with_zeros ? 0 : str.length() - initial_len, sign_char);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4396,7 +4393,11 @@ String String::sprintf(const Array &values, bool *error) const {
|
||||
min_decimals += n;
|
||||
} else {
|
||||
if (c == '0' && min_chars == 0) {
|
||||
pad_with_zeroes = true;
|
||||
if (left_justified) {
|
||||
WARN_PRINT("'0' flag ignored with '-' flag in string format");
|
||||
} else {
|
||||
pad_with_zeros = true;
|
||||
}
|
||||
} else {
|
||||
min_chars *= 10;
|
||||
min_chars += n;
|
||||
@ -4445,7 +4446,7 @@ String String::sprintf(const Array &values, bool *error) const {
|
||||
// Back to defaults:
|
||||
min_chars = 0;
|
||||
min_decimals = 6;
|
||||
pad_with_zeroes = false;
|
||||
pad_with_zeros = false;
|
||||
left_justified = false;
|
||||
show_sign = false;
|
||||
in_decimals = false;
|
||||
|
||||
@ -1376,7 +1376,8 @@
|
||||
Hints that a float property should be within an exponential range specified via the hint string [code]"min,max"[/code] or [code]"min,max,step"[/code]. The hint string can optionally include [code]"or_greater"[/code] and/or [code]"or_lesser"[/code] to allow manual input going respectively above the max or below the min values. Example: [code]"0.01,100,0.01,or_greater"[/code].
|
||||
</constant>
|
||||
<constant name="PROPERTY_HINT_ENUM" value="3" enum="PropertyHint">
|
||||
Hints that an integer, float or string property is an enumerated value to pick in a list specified via a hint string such as [code]"Hello,Something,Else"[/code].
|
||||
Hints that an integer, float or string property is an enumerated value to pick in a list specified via a hint string.
|
||||
The hint string is a comma separated list of names such as [code]"Hello,Something,Else"[/code]. For integer and float properties, the first name in the list has value 0, the next 1, and so on. Explicit values can also be specified by appending [code]:integer[/code] to the name, e.g. [code]"Zero,One,Three:3,Four,Six:6"[/code].
|
||||
</constant>
|
||||
<constant name="PROPERTY_HINT_EXP_EASING" value="4" enum="PropertyHint">
|
||||
Hints that a float property should be edited via an exponential easing function. The hint string can include [code]"attenuation"[/code] to flip the curve horizontally and/or [code]"inout"[/code] to also include in/out easing.
|
||||
|
||||
@ -172,7 +172,7 @@
|
||||
<method name="erase">
|
||||
<argument index="0" name="value" type="Variant" />
|
||||
<description>
|
||||
Removes the first occurrence of a value from the array. To remove an element by index, use [method remove] instead.
|
||||
Removes the first occurrence of a value from the array. If the value does not exist in the array, nothing happens. To remove an element by index, use [method remove] instead.
|
||||
[b]Note:[/b] This method acts in-place and doesn't return a value.
|
||||
[b]Note:[/b] On large arrays, this method will be slower if the removed element is close to the beginning of the array (index 0). This is because all elements placed after the removed element have to be reindexed.
|
||||
</description>
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
</brief_description>
|
||||
<description>
|
||||
AudioEffectCapture is an AudioEffect which copies all audio frames from the attached audio effect bus into its internal ring buffer.
|
||||
Application code should consume these audio frames from this ring buffer using [method get_buffer] and process it as needed, for example to capture data from a microphone, implement application defined effects, or to transmit audio over the network.
|
||||
Application code should consume these audio frames from this ring buffer using [method get_buffer] and process it as needed, for example to capture data from a microphone, implement application defined effects, or to transmit audio over the network. When capturing audio data from a microphone, the format of the samples will be stereo 32-bit floating point PCM.
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
|
||||
@ -81,7 +81,7 @@
|
||||
The calculated light data.
|
||||
</member>
|
||||
<member name="quality" type="int" setter="set_bake_quality" getter="get_bake_quality" enum="BakedLightmap.BakeQuality" default="1">
|
||||
Determines the amount of samples per texel used in indrect light baking. The amount of samples for each quality level can be configured in the project settings.
|
||||
Determines the amount of samples per texel used in indirect light baking. The amount of samples for each quality level can be configured in the project settings.
|
||||
</member>
|
||||
<member name="use_color" type="bool" setter="set_use_color" getter="is_using_color" default="true">
|
||||
Store full color values in the lightmap textures. When disabled, lightmap textures will store a single brightness channel. Can be disabled to reduce disk usage if the scene contains only white lights or you don't mind losing color information in indirect lighting.
|
||||
|
||||
@ -75,14 +75,14 @@
|
||||
<return type="Vector3" />
|
||||
<argument index="0" name="screen_point" type="Vector2" />
|
||||
<description>
|
||||
Returns a normal vector in world space, that is the result of projecting a point on the [Viewport] rectangle by the camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking.
|
||||
Returns a normal vector in world space, that is the result of projecting a point on the [Viewport] rectangle by the inverse camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking.
|
||||
</description>
|
||||
</method>
|
||||
<method name="project_ray_origin" qualifiers="const">
|
||||
<return type="Vector3" />
|
||||
<argument index="0" name="screen_point" type="Vector2" />
|
||||
<description>
|
||||
Returns a 3D position in world space, that is the result of projecting a point on the [Viewport] rectangle by the camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking.
|
||||
Returns a 3D position in world space, that is the result of projecting a point on the [Viewport] rectangle by the inverse camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking.
|
||||
</description>
|
||||
</method>
|
||||
<method name="set_cull_mask_bit">
|
||||
|
||||
@ -35,6 +35,8 @@
|
||||
<argument index="7" name="antialiased" type="bool" default="false" />
|
||||
<description>
|
||||
Draws a unfilled arc between the given angles. The larger the value of [code]point_count[/code], the smoother the curve. See also [method draw_circle].
|
||||
[b]Note:[/b] Line drawing is not accelerated by batching if [code]antialiased[/code] is [code]true[/code].
|
||||
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent lines and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedRegularPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.
|
||||
</description>
|
||||
</method>
|
||||
<method name="draw_char">
|
||||
@ -54,7 +56,8 @@
|
||||
<argument index="1" name="radius" type="float" />
|
||||
<argument index="2" name="color" type="Color" />
|
||||
<description>
|
||||
Draws a colored, unfilled circle. See also [method draw_arc], [method draw_polyline] and [method draw_polygon].
|
||||
Draws a colored, filled circle. See also [method draw_arc], [method draw_polyline] and [method draw_polygon].
|
||||
[b]Note:[/b] Built-in antialiasing is not provided for [method draw_circle]. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedRegularPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.
|
||||
</description>
|
||||
</method>
|
||||
<method name="draw_colored_polygon">
|
||||
@ -67,6 +70,7 @@
|
||||
<argument index="5" name="antialiased" type="bool" default="false" />
|
||||
<description>
|
||||
Draws a colored polygon of any amount of points, convex or concave. Unlike [method draw_polygon], a single color must be specified for the whole polygon.
|
||||
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent polygons and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.
|
||||
</description>
|
||||
</method>
|
||||
<method name="draw_line">
|
||||
@ -78,6 +82,8 @@
|
||||
<argument index="4" name="antialiased" type="bool" default="false" />
|
||||
<description>
|
||||
Draws a line from a 2D point to another, with a given color and width. It can be optionally antialiased. See also [method draw_multiline] and [method draw_polyline].
|
||||
[b]Note:[/b] Line drawing is not accelerated by batching if [code]antialiased[/code] is [code]true[/code].
|
||||
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent lines and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedLine2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.
|
||||
</description>
|
||||
</method>
|
||||
<method name="draw_mesh">
|
||||
@ -99,7 +105,7 @@
|
||||
<argument index="3" name="antialiased" type="bool" default="false" />
|
||||
<description>
|
||||
Draws multiple disconnected lines with a uniform [code]color[/code]. When drawing large amounts of lines, this is faster than using individual [method draw_line] calls. To draw interconnected lines, use [method draw_polyline] instead.
|
||||
[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently not implemented and have no effect.
|
||||
[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently not implemented and have no effect. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedLine2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.
|
||||
</description>
|
||||
</method>
|
||||
<method name="draw_multiline_colors">
|
||||
@ -110,7 +116,7 @@
|
||||
<argument index="3" name="antialiased" type="bool" default="false" />
|
||||
<description>
|
||||
Draws multiple disconnected lines with a uniform [code]width[/code] and segment-by-segment coloring. Colors assigned to line segments match by index between [code]points[/code] and [code]colors[/code]. When drawing large amounts of lines, this is faster than using individual [method draw_line] calls. To draw interconnected lines, use [method draw_polyline_colors] instead.
|
||||
[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently not implemented and have no effect.
|
||||
[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently not implemented and have no effect. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedLine2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.
|
||||
</description>
|
||||
</method>
|
||||
<method name="draw_multimesh">
|
||||
@ -132,6 +138,7 @@
|
||||
<argument index="5" name="antialiased" type="bool" default="false" />
|
||||
<description>
|
||||
Draws a solid polygon of any amount of points, convex or concave. Unlike [method draw_colored_polygon], each point's color can be changed individually. See also [method draw_polyline] and [method draw_polyline_colors].
|
||||
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent polygons and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.
|
||||
</description>
|
||||
</method>
|
||||
<method name="draw_polyline">
|
||||
@ -142,6 +149,7 @@
|
||||
<argument index="3" name="antialiased" type="bool" default="false" />
|
||||
<description>
|
||||
Draws interconnected line segments with a uniform [code]color[/code] and [code]width[/code] and optional antialiasing. When drawing large amounts of lines, this is faster than using individual [method draw_line] calls. To draw disconnected lines, use [method draw_multiline] instead. See also [method draw_polygon].
|
||||
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent polygons and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.
|
||||
</description>
|
||||
</method>
|
||||
<method name="draw_polyline_colors">
|
||||
@ -152,6 +160,7 @@
|
||||
<argument index="3" name="antialiased" type="bool" default="false" />
|
||||
<description>
|
||||
Draws interconnected line segments with a uniform [code]width[/code] and segment-by-segment coloring, and optional antialiasing. Colors assigned to line segments match by index between [code]points[/code] and [code]colors[/code]. When drawing large amounts of lines, this is faster than using individual [method draw_line] calls. To draw disconnected lines, use [method draw_multiline_colors] instead. See also [method draw_polygon].
|
||||
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent polygons and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.
|
||||
</description>
|
||||
</method>
|
||||
<method name="draw_primitive">
|
||||
@ -174,8 +183,9 @@
|
||||
<argument index="3" name="width" type="float" default="1.0" />
|
||||
<argument index="4" name="antialiased" type="bool" default="false" />
|
||||
<description>
|
||||
Draws a rectangle. If [code]filled[/code] is [code]true[/code], the rectangle will be filled with the [code]color[/code] specified. If [code]filled[/code] is [code]false[/code], the rectangle will be drawn as a stroke with the [code]color[/code] and [code]width[/code] specified. If [code]antialiased[/code] is [code]true[/code], the lines will be antialiased.
|
||||
Draws a rectangle. If [code]filled[/code] is [code]true[/code], the rectangle will be filled with the [code]color[/code] specified. If [code]filled[/code] is [code]false[/code], the rectangle will be drawn as a stroke with the [code]color[/code] and [code]width[/code] specified. If [code]antialiased[/code] is [code]true[/code], the lines will attempt to perform antialiasing using OpenGL line smoothing.
|
||||
[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are only effective if [code]filled[/code] is [code]false[/code].
|
||||
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent polygons and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.
|
||||
</description>
|
||||
</method>
|
||||
<method name="draw_set_transform">
|
||||
@ -377,7 +387,7 @@
|
||||
<return type="void" />
|
||||
<argument index="0" name="enable" type="bool" />
|
||||
<description>
|
||||
If [code]enable[/code] is [code]true[/code], the node won't inherit its transform from parent canvas items.
|
||||
If [code]enable[/code] is [code]true[/code], this [CanvasItem] will [i]not[/i] inherit its transform from parent [CanvasItem]s. Its draw order will also be changed to make it draw on top of other [CanvasItem]s that are not set as top-level. The [CanvasItem] will effectively act as if it was placed as a child of a bare [Node]. See also [method is_set_as_toplevel].
|
||||
</description>
|
||||
</method>
|
||||
<method name="set_notify_local_transform">
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
</brief_description>
|
||||
<description>
|
||||
CollisionObject2D is the base class for 2D physics objects. It can hold any number of 2D collision [Shape2D]s. Each shape must be assigned to a [i]shape owner[/i]. The CollisionObject2D can have any number of shape owners. Shape owners are not nodes and do not appear in the editor, but are accessible through code using the [code]shape_owner_*[/code] methods.
|
||||
[b]Note:[/b] Only collisions between objects within the same canvas ([Viewport] canvas or [CanvasLayer]) are supported. The behavior of collisions between objects in different canvases is undefined.
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
|
||||
@ -780,7 +780,7 @@
|
||||
The minimum size of the node's bounding rectangle. If you set it to a value greater than (0, 0), the node's bounding rectangle will always have at least this size, even if its content is smaller. If it's set to (0, 0), the node sizes automatically to fit its content, be it a texture or child nodes.
|
||||
</member>
|
||||
<member name="rect_pivot_offset" type="Vector2" setter="set_pivot_offset" getter="get_pivot_offset" default="Vector2( 0, 0 )">
|
||||
By default, the node's pivot is its top-left corner. When you change its [member rect_scale], it will scale around this pivot. Set this property to [member rect_size] / 2 to center the pivot in the node's rectangle.
|
||||
By default, the node's pivot is its top-left corner. When you change its [member rect_rotation] or [member rect_scale], it will rotate or scale around this pivot. Set this property to [member rect_size] / 2 to pivot around the Control's center.
|
||||
</member>
|
||||
<member name="rect_position" type="Vector2" setter="_set_position" getter="get_position" default="Vector2( 0, 0 )">
|
||||
The node's position, relative to its parent. It corresponds to the rectangle's top-left corner. The property is not affected by [member rect_pivot_offset].
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
<argument index="2" name="out" type="Vector2" default="Vector2( 0, 0 )" />
|
||||
<argument index="3" name="at_position" type="int" default="-1" />
|
||||
<description>
|
||||
Adds a point to a curve at [code]position[/code], with control points [code]in[/code] and [code]out[/code].
|
||||
Adds a point to a curve at [code]position[/code] relative to the [Curve2D]'s position, with control points [code]in[/code] and [code]out[/code].
|
||||
If [code]at_position[/code] is given, the point is inserted before the point number [code]at_position[/code], moving that point (and every point after) after the inserted point. If [code]at_position[/code] is not given, or is an illegal value ([code]at_position <0[/code] or [code]at_position >= [method get_point_count][/code]), the point will be appended at the end of the point list.
|
||||
</description>
|
||||
</method>
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
<argument index="2" name="out" type="Vector3" default="Vector3( 0, 0, 0 )" />
|
||||
<argument index="3" name="at_position" type="int" default="-1" />
|
||||
<description>
|
||||
Adds a point to a curve at [code]position[/code], with control points [code]in[/code] and [code]out[/code].
|
||||
Adds a point to a curve at [code]position[/code] relative to the [Curve3D]'s position, with control points [code]in[/code] and [code]out[/code].
|
||||
If [code]at_position[/code] is given, the point is inserted before the point number [code]at_position[/code], moving that point (and every point after) after the inserted point. If [code]at_position[/code] is not given, or is an illegal value ([code]at_position <0[/code] or [code]at_position >= [method get_point_count][/code]), the point will be appended at the end of the point list.
|
||||
</description>
|
||||
</method>
|
||||
|
||||
@ -12,10 +12,10 @@
|
||||
</methods>
|
||||
<members>
|
||||
<member name="curve" type="Curve" setter="set_curve" getter="get_curve">
|
||||
The [code]curve[/code] rendered onto the texture.
|
||||
The [Curve] that is rendered onto the texture.
|
||||
</member>
|
||||
<member name="width" type="int" setter="set_width" getter="get_width" default="2048">
|
||||
The width of the texture.
|
||||
The width of the texture (in pixels). Higher values make it possible to represent high-frequency data better (such as sudden direction changes), at the cost of increased generation time and memory usage.
|
||||
</member>
|
||||
</members>
|
||||
<constants>
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
[/codeblock]
|
||||
You can access a dictionary's values by referencing the appropriate key. In the above example, [code]points_dict["White"][/code] will return [code]50[/code]. You can also write [code]points_dict.White[/code], which is equivalent. However, you'll have to use the bracket syntax if the key you're accessing the dictionary with isn't a fixed string (such as a number or variable).
|
||||
[codeblock]
|
||||
export(string, "White", "Yellow", "Orange") var my_color
|
||||
export(String, "White", "Yellow", "Orange") var my_color
|
||||
var points_dict = {"White": 50, "Yellow": 75, "Orange": 100}
|
||||
func _ready():
|
||||
# We can't use dot syntax here as `my_color` is a variable.
|
||||
|
||||
@ -40,7 +40,7 @@
|
||||
</description>
|
||||
</method>
|
||||
<method name="handle_menu_selected" qualifiers="virtual">
|
||||
<return type="void" />
|
||||
<return type="bool" />
|
||||
<argument index="0" name="id" type="int" />
|
||||
<description>
|
||||
This virtual method can be implemented to handle context menu items not handled by default. See [method set_create_options].
|
||||
|
||||
@ -302,7 +302,8 @@
|
||||
</members>
|
||||
<constants>
|
||||
<constant name="BG_KEEP" value="5" enum="BGMode">
|
||||
Keeps on screen every pixel drawn in the background. This is the fastest background mode, but it can only be safely used in fully-interior scenes (no visible sky or sky reflections). If enabled in a scene where the background is visible, "ghost trail" artifacts will be visible when moving the camera.
|
||||
Keeps on screen every pixel drawn in the background. Only select this mode if you really need to keep the old data. On modern GPUs it will generally not be faster than clearing the background, and can be significantly slower, particularly on mobile.
|
||||
It can only be safely used in fully-interior scenes (no visible sky or sky reflections). If enabled in a scene where the background is visible, "ghost trail" artifacts will be visible when moving the camera.
|
||||
</constant>
|
||||
<constant name="BG_CLEAR_COLOR" value="0" enum="BGMode">
|
||||
Clears the background using the clear color defined in [member ProjectSettings.rendering/environment/default_clear_color].
|
||||
@ -338,19 +339,20 @@
|
||||
Replace glow blending mode. Replaces all pixels' color by the glow value. This can be used to simulate a full-screen blur effect by tweaking the glow parameters to match the original image's brightness.
|
||||
</constant>
|
||||
<constant name="TONE_MAPPER_LINEAR" value="0" enum="ToneMapper">
|
||||
Linear tonemapper operator. Reads the linear data and passes it on unmodified.
|
||||
Linear tonemapper operator. Reads the linear data and passes it on unmodified. This can cause bright lighting to look blown out, with noticeable clipping in the output colors.
|
||||
</constant>
|
||||
<constant name="TONE_MAPPER_REINHARDT" value="1" enum="ToneMapper">
|
||||
Reinhardt tonemapper operator. Performs a variation on rendered pixels' colors by this formula: [code]color = color / (1 + color)[/code].
|
||||
Reinhardt tonemapper operator. Performs a variation on rendered pixels' colors by this formula: [code]color = color / (1 + color)[/code]. This avoids clipping bright highlights, but the resulting image can look a bit dull.
|
||||
</constant>
|
||||
<constant name="TONE_MAPPER_FILMIC" value="2" enum="ToneMapper">
|
||||
Filmic tonemapper operator.
|
||||
Filmic tonemapper operator. This avoids clipping bright highlights, with a resulting image that usually looks more vivid than [constant TONE_MAPPER_REINHARDT].
|
||||
</constant>
|
||||
<constant name="TONE_MAPPER_ACES" value="3" enum="ToneMapper">
|
||||
Academy Color Encoding System tonemapper operator. Performs an approximation of the ACES tonemapping curve.
|
||||
Use the legacy Godot version of the Academy Color Encoding System tonemapper. Unlike [constant TONE_MAPPER_ACES_FITTED], this version of ACES does not handle bright lighting in a physically accurate way. ACES typically has a more contrasted output compared to [constant TONE_MAPPER_REINHARDT] and [constant TONE_MAPPER_FILMIC].
|
||||
[b]Note:[/b] This tonemapping operator will be removed in Godot 4.0 in favor of the more accurate [constant TONE_MAPPER_ACES_FITTED].
|
||||
</constant>
|
||||
<constant name="TONE_MAPPER_ACES_FITTED" value="4" enum="ToneMapper">
|
||||
High quality Academy Color Encoding System tonemapper operator that matches the industry standard. Performs a more physically accurate curve fit which better simulates how light works in the real world. The color of lights and emissive materials will become lighter as the emissive energy increases, and will eventually become white if the light is bright enough to saturate the camera sensor.
|
||||
Use the Academy Color Encoding System tonemapper. ACES is slightly more expensive than other options, but it handles bright lighting in a more realistic fashion by desaturating it as it becomes brighter. ACES typically has a more contrasted output compared to [constant TONE_MAPPER_REINHARDT] and [constant TONE_MAPPER_FILMIC].
|
||||
</constant>
|
||||
<constant name="DOF_BLUR_QUALITY_LOW" value="0" enum="DOFBlurQuality">
|
||||
Low depth-of-field blur quality (fastest).
|
||||
|
||||
@ -189,7 +189,7 @@
|
||||
<argument index="2" name="from_b" type="Vector2" />
|
||||
<argument index="3" name="dir_b" type="Vector2" />
|
||||
<description>
|
||||
Checks if the two lines ([code]from_a[/code], [code]dir_a[/code]) and ([code]from_b[/code], [code]dir_b[/code]) intersect. If yes, return the point of intersection as [Vector2]. If no intersection takes place, returns an empty [Variant].
|
||||
Checks if the two lines ([code]from_a[/code], [code]dir_a[/code]) and ([code]from_b[/code], [code]dir_b[/code]) intersect. If yes, return the point of intersection as [Vector2]. If no intersection takes place, returns [code]null[/code].
|
||||
[b]Note:[/b] The lines are specified using direction vectors, not end points.
|
||||
</description>
|
||||
</method>
|
||||
@ -297,7 +297,7 @@
|
||||
<argument index="2" name="from_b" type="Vector2" />
|
||||
<argument index="3" name="to_b" type="Vector2" />
|
||||
<description>
|
||||
Checks if the two segments ([code]from_a[/code], [code]to_a[/code]) and ([code]from_b[/code], [code]to_b[/code]) intersect. If yes, return the point of intersection as [Vector2]. If no intersection takes place, returns an empty [Variant].
|
||||
Checks if the two segments ([code]from_a[/code], [code]to_a[/code]) and ([code]from_b[/code], [code]to_b[/code]) intersect. If yes, return the point of intersection as [Vector2]. If no intersection takes place, returns [code]null[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="segment_intersects_sphere">
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
Gradient-filled texture.
|
||||
</brief_description>
|
||||
<description>
|
||||
GradientTexture uses a [Gradient] to fill the texture data. The gradient will be filled from left to right using colors obtained from the gradient. This means the texture does not necessarily represent an exact copy of the gradient, but instead an interpolation of samples obtained from the gradient at fixed steps (see [member width]).
|
||||
GradientTexture uses a [Gradient] to fill the texture data. The gradient will be filled from left to right using colors obtained from the gradient. This means the texture does not necessarily represent an exact copy of the gradient, but instead an interpolation of samples obtained from the gradient at fixed steps (see [member width]). See also [CurveTexture].
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
|
||||
@ -15,10 +15,10 @@
|
||||
Height map data, pool array must be of [member map_width] * [member map_depth] size.
|
||||
</member>
|
||||
<member name="map_depth" type="int" setter="set_map_depth" getter="get_map_depth" default="2">
|
||||
Depth of the height map data. Changing this will resize the [member map_data].
|
||||
Number of vertices in the depth of the height map. Changing this will resize the [member map_data].
|
||||
</member>
|
||||
<member name="map_width" type="int" setter="set_map_width" getter="get_map_width" default="2">
|
||||
Width of the height map data. Changing this will resize the [member map_data].
|
||||
Number of vertices in the width of the height map. Changing this will resize the [member map_data].
|
||||
</member>
|
||||
</members>
|
||||
<constants>
|
||||
|
||||
@ -375,7 +375,8 @@
|
||||
<argument index="0" name="enable" type="bool" />
|
||||
<description>
|
||||
Enables or disables the accumulation of similar input events sent by the operating system. When input accumulation is enabled, all input events generated during a frame will be merged and emitted when the frame is done rendering. Therefore, this limits the number of input method calls per second to the rendering FPS.
|
||||
Input accumulation is enabled by default. It can be disabled to get slightly more precise/reactive input at the cost of increased CPU usage. In applications where drawing freehand lines is required, input accumulation should generally be disabled while the user is drawing the line to get results that closely follow the actual input.
|
||||
Input accumulation can be disabled to get slightly more precise/reactive input at the cost of increased CPU usage. In applications where drawing freehand lines is required, input accumulation should generally be disabled while the user is drawing the line to get results that closely follow the actual input.
|
||||
[b]Note:[/b] Input accumulation is [i]disabled[/i] by default for backward compatibility reasons. It is however recommended to enable it for games which don't require very reactive input, as this will decrease CPU usage.
|
||||
</description>
|
||||
</method>
|
||||
<method name="start_joy_vibration">
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
If [code]true[/code], the button's state is pressed. If [code]false[/code], the button's state is released.
|
||||
</member>
|
||||
<member name="pressure" type="float" setter="set_pressure" getter="get_pressure" default="0.0">
|
||||
Represents the pressure the user puts on the button with his finger, if the controller supports it. Ranges from [code]0[/code] to [code]1[/code].
|
||||
Represents the pressure the user puts on the button with their finger, if the controller supports it. Ranges from [code]0[/code] to [code]1[/code].
|
||||
</member>
|
||||
</members>
|
||||
<constants>
|
||||
|
||||
@ -5,7 +5,8 @@
|
||||
</brief_description>
|
||||
<description>
|
||||
Contains mouse and pen motion information. Supports relative, absolute positions and speed. See [method Node._input].
|
||||
[b]Note:[/b] By default, this event is only emitted once per frame rendered at most. If you need more precise input reporting, call [method Input.set_use_accumulated_input] with [code]false[/code] to make events emitted as often as possible. If you use InputEventMouseMotion to draw lines, consider implementing [url=https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm]Bresenham's line algorithm[/url] as well to avoid visible gaps in lines if the user is moving the mouse quickly.
|
||||
[b]Note:[/b] By default, this event can be emitted multiple times per frame rendered, allowing for precise input reporting, at the expense of CPU usage. You can call [method Input.set_use_accumulated_input] with [code]true[/code] to let multiple events merge into a single emitted event per frame.
|
||||
[b]Note:[/b] If you use InputEventMouseMotion to draw lines, consider implementing [url=https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm]Bresenham's line algorithm[/url] as well to avoid visible gaps in lines if the user is moving the mouse quickly.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="Mouse and input coordinates">https://docs.godotengine.org/en/3.4/tutorials/inputs/mouse_and_input_coordinates.html</link>
|
||||
|
||||
@ -87,6 +87,7 @@
|
||||
<argument index="0" name="action" type="String" />
|
||||
<description>
|
||||
Returns an array of [InputEvent]s associated with a given action.
|
||||
[b]Note:[/b] When used in the editor (e.g. a tool script or [EditorPlugin]), this method will return events for the editor action. If you want to access your project's input binds from the editor, read the [code]input/*[/code] settings from [ProjectSettings].
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_actions">
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
A 2D line.
|
||||
</brief_description>
|
||||
<description>
|
||||
A line through several points in 2D space.
|
||||
A line through several points in 2D space. Supports varying width and color over the line's length, texturing, and several cap/joint types.
|
||||
[b]Note:[/b] By default, Godot can only draw up to 4,096 polygon points at a time. To increase this limit, open the Project Settings and increase [member ProjectSettings.rendering/limits/buffers/canvas_polygon_buffer_size_kb] and [member ProjectSettings.rendering/limits/buffers/canvas_polygon_index_buffer_size_kb].
|
||||
</description>
|
||||
<tutorials>
|
||||
@ -58,8 +58,9 @@
|
||||
</methods>
|
||||
<members>
|
||||
<member name="antialiased" type="bool" setter="set_antialiased" getter="get_antialiased" default="false">
|
||||
If [code]true[/code], the line's border will be anti-aliased.
|
||||
[b]Note:[/b] Line2D is not accelerated by batching when being anti-aliased.
|
||||
If [code]true[/code], the line's border will attempt to perform antialiasing by drawing thin OpenGL smooth lines on the line's edges.
|
||||
[b]Note:[/b] Line2D is not accelerated by batching if [member antialiased] is [code]true[/code].
|
||||
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent lines and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedLine2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.
|
||||
</member>
|
||||
<member name="begin_cap_mode" type="int" setter="set_begin_cap_mode" getter="get_begin_cap_mode" enum="Line2D.LineCapMode" default="0">
|
||||
Controls the style of the line's first point. Use [enum LineCapMode] constants.
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
Node that instances meshes into a scenario.
|
||||
</brief_description>
|
||||
<description>
|
||||
MeshInstance is a node that takes a [Mesh] resource and adds it to the current scenario by creating an instance of it. This is the class most often used to get 3D geometry rendered and can be used to instance a single [Mesh] in many places. This allows to reuse geometry and save on resources. When a [Mesh] has to be instanced more than thousands of times at close proximity, consider using a [MultiMesh] in a [MultiMeshInstance] instead.
|
||||
MeshInstance is a node that takes a [Mesh] resource and adds it to the current scenario by creating an instance of it. This is the class most often used to get 3D geometry rendered and can be used to instance a single [Mesh] in many places. This allows reusing geometry, which can save on resources. When a [Mesh] has to be instanced more than thousands of times at close proximity, consider using a [MultiMesh] in a [MultiMeshInstance] instead.
|
||||
</description>
|
||||
<tutorials>
|
||||
<link title="3D Material Testers Demo">https://godotengine.org/asset-library/asset/123</link>
|
||||
@ -52,13 +52,14 @@
|
||||
<return type="Material" />
|
||||
<argument index="0" name="surface" type="int" />
|
||||
<description>
|
||||
Returns the [Material] for a surface of the [Mesh] resource.
|
||||
Returns the override [Material] for a surface of the [Mesh] resource.
|
||||
[b]Note:[/b] This function only returns [i]override[/i] materials associated with this [MeshInstance]. Consider using [method get_active_material] or [method Mesh.surface_get_material] to get materials associated with the [Mesh] resource.
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_surface_material_count" qualifiers="const">
|
||||
<return type="int" />
|
||||
<description>
|
||||
Returns the number of surface materials.
|
||||
Returns the number of surface override materials.
|
||||
</description>
|
||||
</method>
|
||||
<method name="set_surface_material">
|
||||
@ -66,7 +67,7 @@
|
||||
<argument index="0" name="surface" type="int" />
|
||||
<argument index="1" name="material" type="Material" />
|
||||
<description>
|
||||
Sets the [Material] for a surface of the [Mesh] resource.
|
||||
Sets the override [Material] for the specified surface of the [Mesh] resource. This material is associated with this [MeshInstance] rather than with the [Mesh] resource.
|
||||
</description>
|
||||
</method>
|
||||
</methods>
|
||||
|
||||
@ -118,7 +118,7 @@
|
||||
child_node.get_parent().remove_child(child_node)
|
||||
add_child(child_node)
|
||||
[/codeblock]
|
||||
[b]Note:[/b] If you want a child to be persisted to a [PackedScene], you must set [member owner] in addition to calling [method add_child]. This is typically relevant for [url=https://godot.readthedocs.io/en/3.2/tutorials/misc/running_code_in_the_editor.html]tool scripts[/url] and [url=https://godot.readthedocs.io/en/latest/tutorials/plugins/editor/index.html]editor plugins[/url]. If [method add_child] is called without setting [member owner], the newly added [Node] will not be visible in the scene tree, though it will be visible in the 2D/3D view.
|
||||
[b]Note:[/b] If you want a child to be persisted to a [PackedScene], you must set [member owner] in addition to calling [method add_child]. This is typically relevant for [url=https://docs.godotengine.org/en/3.4/tutorials/misc/running_code_in_the_editor.html]tool scripts[/url] and [url=https://docs.godotengine.org/en/3.4/tutorials/plugins/editor/index.html]editor plugins[/url]. If [method add_child] is called without setting [member owner], the newly added [Node] will not be visible in the scene tree, though it will be visible in the 2D/3D view.
|
||||
</description>
|
||||
</method>
|
||||
<method name="add_child_below_node">
|
||||
@ -534,7 +534,7 @@
|
||||
<return type="Variant" />
|
||||
<argument index="0" name="method" type="String" />
|
||||
<description>
|
||||
Sends a remote procedure call request for the given [code]method[/code] to peers on the network (and locally), optionally sending all additional arguments as arguments to the method called by the RPC. The call request will only be received by nodes with the same [NodePath], including the exact same node name. Behaviour depends on the RPC configuration for the given method, see [method rpc_config]. Methods are not exposed to RPCs by default. See also [method rset] and [method rset_config] for properties. Returns an empty [Variant].
|
||||
Sends a remote procedure call request for the given [code]method[/code] to peers on the network (and locally), optionally sending all additional arguments as arguments to the method called by the RPC. The call request will only be received by nodes with the same [NodePath], including the exact same node name. Behaviour depends on the RPC configuration for the given method, see [method rpc_config]. Methods are not exposed to RPCs by default. See also [method rset] and [method rset_config] for properties. Returns [code]null[/code].
|
||||
[b]Note:[/b] You can only safely use RPCs on clients after you received the [code]connected_to_server[/code] signal from the [SceneTree]. You also need to keep track of the connection state, either by the [SceneTree] signals like [code]server_disconnected[/code] or by checking [code]SceneTree.network_peer.get_connection_status() == CONNECTION_CONNECTED[/code].
|
||||
</description>
|
||||
</method>
|
||||
@ -551,14 +551,14 @@
|
||||
<argument index="0" name="peer_id" type="int" />
|
||||
<argument index="1" name="method" type="String" />
|
||||
<description>
|
||||
Sends a [method rpc] to a specific peer identified by [code]peer_id[/code] (see [method NetworkedMultiplayerPeer.set_target_peer]). Returns an empty [Variant].
|
||||
Sends a [method rpc] to a specific peer identified by [code]peer_id[/code] (see [method NetworkedMultiplayerPeer.set_target_peer]). Returns [code]null[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="rpc_unreliable" qualifiers="vararg">
|
||||
<return type="Variant" />
|
||||
<argument index="0" name="method" type="String" />
|
||||
<description>
|
||||
Sends a [method rpc] using an unreliable protocol. Returns an empty [Variant].
|
||||
Sends a [method rpc] using an unreliable protocol. Returns [code]null[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="rpc_unreliable_id" qualifiers="vararg">
|
||||
@ -566,7 +566,7 @@
|
||||
<argument index="0" name="peer_id" type="int" />
|
||||
<argument index="1" name="method" type="String" />
|
||||
<description>
|
||||
Sends a [method rpc] to a specific peer identified by [code]peer_id[/code] using an unreliable protocol (see [method NetworkedMultiplayerPeer.set_target_peer]). Returns an empty [Variant].
|
||||
Sends a [method rpc] to a specific peer identified by [code]peer_id[/code] using an unreliable protocol (see [method NetworkedMultiplayerPeer.set_target_peer]). Returns [code]null[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="rset">
|
||||
@ -708,6 +708,7 @@
|
||||
</member>
|
||||
<member name="owner" type="Node" setter="set_owner" getter="get_owner">
|
||||
The node owner. A node can have any other node as owner (as long as it is a valid parent, grandparent, etc. ascending in the tree). When saving a node (using [PackedScene]), all the nodes it owns will be saved with it. This allows for the creation of complex [SceneTree]s, with instancing and subinstancing.
|
||||
[b]Note:[/b] If you want a child to be persisted to a [PackedScene], you must set [member owner] in addition to calling [method add_child]. This is typically relevant for [url=https://docs.godotengine.org/en/3.4/tutorials/misc/running_code_in_the_editor.html]tool scripts[/url] and [url=https://docs.godotengine.org/en/3.4/tutorials/plugins/editor/index.html]editor plugins[/url]. If [method add_child] is called without setting [member owner], the newly added [Node] will not be visible in the scene tree, though it will be visible in the 2D/3D view.
|
||||
</member>
|
||||
<member name="pause_mode" type="int" setter="set_pause_mode" getter="get_pause_mode" enum="Node.PauseMode" default="0">
|
||||
Pause mode. How the node will behave if the [SceneTree] is paused.
|
||||
|
||||
@ -152,6 +152,10 @@
|
||||
if argument.find("=") > -1:
|
||||
var key_value = argument.split("=")
|
||||
arguments[key_value[0].lstrip("--")] = key_value[1]
|
||||
else:
|
||||
# Options without an argument will be present in the dictionary,
|
||||
# with the value set to an empty string.
|
||||
arguments[argument.lstrip("--")] = ""
|
||||
[/codeblock]
|
||||
</description>
|
||||
</method>
|
||||
|
||||
@ -44,7 +44,8 @@
|
||||
<method name="_init" qualifiers="virtual">
|
||||
<return type="void" />
|
||||
<description>
|
||||
Called when the object is initialized.
|
||||
Called when the object is initialized in memory. Can be defined to take in parameters, that are passed in when constructing.
|
||||
[b]Note:[/b] If [method _init] is defined with required parameters, then explicit construction is the only valid means of creating an Object of the class. If any other means (such as [method PackedScene.instance]) is used, then initialization will fail.
|
||||
</description>
|
||||
</method>
|
||||
<method name="_notification" qualifiers="virtual">
|
||||
@ -126,7 +127,7 @@
|
||||
<argument index="4" name="flags" type="int" default="0" />
|
||||
<description>
|
||||
Connects a [code]signal[/code] to a [code]method[/code] on a [code]target[/code] object. Pass optional [code]binds[/code] to the call as an [Array] of parameters. These parameters will be passed to the method after any parameter used in the call to [method emit_signal]. Use [code]flags[/code] to set deferred or one-shot connections. See [enum ConnectFlags] constants.
|
||||
A [code]signal[/code] can only be connected once to a [code]method[/code]. It will throw an error if already connected, unless the signal was connected with [constant CONNECT_REFERENCE_COUNTED]. To avoid this, first, use [method is_connected] to check for existing connections.
|
||||
A [code]signal[/code] can only be connected once to a [code]method[/code]. It will print an error if already connected, unless the signal was connected with [constant CONNECT_REFERENCE_COUNTED]. To avoid this, first, use [method is_connected] to check for existing connections.
|
||||
If the [code]target[/code] is destroyed in the game's lifecycle, the connection will be lost.
|
||||
Examples:
|
||||
[codeblock]
|
||||
@ -150,7 +151,7 @@
|
||||
<argument index="2" name="method" type="String" />
|
||||
<description>
|
||||
Disconnects a [code]signal[/code] from a [code]method[/code] on the given [code]target[/code].
|
||||
If you try to disconnect a connection that does not exist, the method will throw an error. Use [method is_connected] to ensure that the connection exists.
|
||||
If you try to disconnect a connection that does not exist, the method will print an error. Use [method is_connected] to ensure that the connection exists.
|
||||
</description>
|
||||
</method>
|
||||
<method name="emit_signal" qualifiers="vararg">
|
||||
|
||||
@ -673,7 +673,7 @@
|
||||
<return type="int" />
|
||||
<argument index="0" name="process_info" type="int" enum="PhysicsServer.ProcessInfo" />
|
||||
<description>
|
||||
Returns an Info defined by the [enum ProcessInfo] input given.
|
||||
Returns information about the current state of the 3D physics engine. See [enum ProcessInfo] for a list of available states. Only implemented for Godot Physics.
|
||||
</description>
|
||||
</method>
|
||||
<method name="hinge_joint_get_flag" qualifiers="const">
|
||||
|
||||
@ -70,7 +70,8 @@
|
||||
</methods>
|
||||
<members>
|
||||
<member name="antialiased" type="bool" setter="set_antialiased" getter="get_antialiased" default="false">
|
||||
If [code]true[/code], polygon edges will be anti-aliased.
|
||||
If [code]true[/code], attempts to perform antialiasing for polygon edges by drawing a thin OpenGL smooth line on the edges.
|
||||
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent polygons and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.
|
||||
</member>
|
||||
<member name="bones" type="Array" setter="_set_bones" getter="_get_bones" default="[ ]">
|
||||
</member>
|
||||
|
||||
@ -1397,10 +1397,12 @@
|
||||
Lower-end override for [member rendering/quality/shading/force_lambert_over_burley] on mobile devices, due to performance concerns or driver support.
|
||||
</member>
|
||||
<member name="rendering/quality/shading/force_vertex_shading" type="bool" setter="" getter="" default="false">
|
||||
If [code]true[/code], forces vertex shading for all rendering. This can increase performance a lot, but also reduces quality immensely. Can be used to optimize performance on low-end mobile devices.
|
||||
If [code]true[/code], forces vertex shading for all 3D [SpatialMaterial] and [ShaderMaterial] rendering. This can be used to improve performance on low-end mobile devices. The downside is that shading becomes much less accurate, with visible linear interpolation between vertices that are joined together. This can be compensated by ensuring meshes have a sufficient level of subdivision (but not too much, to avoid reducing performance). Some material features are also not supported when vertex shading is enabled.
|
||||
See also [member SpatialMaterial.flags_vertex_lighting] which can be used to enable vertex shading on specific materials only.
|
||||
[b]Note:[/b] This setting does not affect unshaded materials.
|
||||
</member>
|
||||
<member name="rendering/quality/shading/force_vertex_shading.mobile" type="bool" setter="" getter="" default="true">
|
||||
Lower-end override for [member rendering/quality/shading/force_vertex_shading] on mobile devices, due to performance concerns or driver support.
|
||||
Lower-end override for [member rendering/quality/shading/force_vertex_shading] on mobile devices, due to performance concerns or driver support. If lighting looks broken after exporting the project to a mobile platform, try disabling this setting.
|
||||
</member>
|
||||
<member name="rendering/quality/shading/use_physical_light_attenuation" type="bool" setter="" getter="" default="false">
|
||||
If [code]true[/code], enables new physical light attenuation for [OmniLight]s and [SpotLight]s. This results in more realistic lighting appearance with a very small performance cost. When physical light attenuation is enabled, lights will appear to be darker as a result of the new attenuation formula. This can be compensated by adjusting the lights' energy or attenuation values.
|
||||
|
||||
@ -1,10 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="ProximityGroup" inherits="Spatial" version="3.4">
|
||||
<brief_description>
|
||||
General-purpose proximity detection node.
|
||||
General-purpose 3D proximity detection node.
|
||||
</brief_description>
|
||||
<description>
|
||||
General-purpose proximity detection node.
|
||||
General-purpose proximity detection node. [ProximityGroup] can be used for [i]approximate[/i] distance checks, which are faster than exact distance checks using [method Vector3.distance_to] or [method Vector3.distance_squared_to].
|
||||
[ProximityGroup] nodes are automatically grouped together, as long as they share the same [member group_name] and intersect with each other. By calling the [method broadcast], you can invoke a specified method with various parameters to all intersecting members.
|
||||
[ProximityGroup] is cuboid-shaped and consists of a cluster of [Vector3] coordinates. The coordinates are automatically calculated by calling [member grid_radius]. To allow [ProximityGroup] to find its peers (and perform automatic grouping), you need to define its [member group_name] to a non-empty [String]. As soon as this object's shape intersects with another [ProximityGroup] object' shape, and both share the same [member group_name], they will belong together for as long as they intersect.
|
||||
Since [ProximityGroup] doesn't rely the physics engine, you don't need to add any other node as a child (unlike [PhysicsBody]).
|
||||
The [ProximityGroup] uses the [SceneTree] groups in the background by calling the method [method Node.add_to_group] internally. The [SceneTree] group names are constructed by combining the [member group_name] with its coordinates, which are calculated using the [member grid_radius] you defined beforehand.
|
||||
[b]Example:[/b] A [ProximityGroup] node named [code]"PlanetEarth"[/code] at position [code]Vector3(6, 6, 6)[/code] with a [member group_name] set to [code]"planets"[/code] and a [member grid_radius] of [code]Vector3(1, 2, 3)[/code] will create the following [SceneTree] group names:
|
||||
[codeblock]
|
||||
- "planets|5|4|3"
|
||||
- "planets|5|4|4"
|
||||
- "planets|5|4|5"
|
||||
- "planets|5|4|6"
|
||||
- "planets|5|4|7"
|
||||
- "planets|5|4|8"
|
||||
- "planets|5|4|9"
|
||||
- ...
|
||||
[/codeblock]
|
||||
If there is another [ProximityGroup] named [code]"PlanetMars"[/code] with group name [code]"planets"[/code], and one of its coordinates is [code]Vector3(5, 4, 7)[/code], it would normally create the [SceneTree] group called [code]"planets|5|4|7"[/code]. However, since this group name already exists, this [ProximityGroup] object will be [i]added[/i] to the existing one. [code]"PlanetEarth"[/code] is already in this group. As long as both nodes don't change their transform and stop intersecting (or exit the scene tree), they are grouped together. As long as this intersection exists, any call to [method broadcast] will affect [i]both[/i] [ProximityGroup] nodes.
|
||||
There are 3 caveats to keep in mind when using [ProximityGroup]:
|
||||
- The larger the grid radius, the more coordinates and the more [SceneTree] groups are created. This can have a performance impact if too many groups are created.
|
||||
- If the [ProximityGroup] node is transformed in any way (or is removed from the scene tree), the groupings will have to be recalculated. This can also have a performance impact.
|
||||
- If your [member grid_radius] is smaller than [code]Vector3(1, 1, 1)[/code], it will be rounded up to [code]Vector3(1, 1, 1)[/code]. Therefore, small grid radius values may lead to unwanted groupings.
|
||||
[b]Note:[/b] [ProximityGroup] will be removed in Godot 4.0 in favor of more effective and faster [VisibilityNotifier] functionality. For most use cases, [method Vector3.distance_to] or [method Vector3.distance_squared_to] are fast enough too, especially if you call them less often using a [Timer] node.
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
@ -14,15 +35,21 @@
|
||||
<argument index="0" name="method" type="String" />
|
||||
<argument index="1" name="parameters" type="Variant" />
|
||||
<description>
|
||||
Calls on all intersecting [ProximityGroup] the given method and parameters.
|
||||
If the [member dispatch_mode] is set to [constant MODE_PROXY] (the default), all calls are delegated to their respective parent [Node].
|
||||
</description>
|
||||
</method>
|
||||
</methods>
|
||||
<members>
|
||||
<member name="dispatch_mode" type="int" setter="set_dispatch_mode" getter="get_dispatch_mode" enum="ProximityGroup.DispatchMode" default="0">
|
||||
Specifies which node gets contacted on a call of method [method broadcast].
|
||||
</member>
|
||||
<member name="grid_radius" type="Vector3" setter="set_grid_radius" getter="get_grid_radius" default="Vector3( 1, 1, 1 )">
|
||||
The size of the space in 3D units. This also sets the amount of coordinates required to calculate whether two [ProximityGroup] nodes are intersecting or not. Smaller [member grid_radius] values can be used for more precise proximity checks at the cost of performance, since more groups will be created.
|
||||
</member>
|
||||
<member name="group_name" type="String" setter="set_group_name" getter="get_group_name" default="""">
|
||||
Specify the common group name, to let other [ProximityGroup] nodes know, if they should be auto-grouped with this node in case they intersect with each other.
|
||||
For example, if you have a [ProximityGroup] node named [code]"Earth"[/code] and another called [code]"Mars"[/code], with both nodes having [code]"planet"[/code] as their [member group_name]. Give both planets a significantly larger [member grid_radius] than their actual radius, position them close enough and they'll be automatically grouped.
|
||||
</member>
|
||||
</members>
|
||||
<signals>
|
||||
@ -30,13 +57,18 @@
|
||||
<argument index="0" name="method" type="String" />
|
||||
<argument index="1" name="parameters" type="Array" />
|
||||
<description>
|
||||
Emitted when the user calls the [method broadcast] method and has set [member dispatch_mode] to [constant MODE_SIGNAL].
|
||||
The given method and its parameters are passed on to the listeners who connected to this signal of this object, as well as any [ProximityGroup] node this node is grouped together with.
|
||||
[b]Note:[/b] This signal is [i]not[/i] emitted by default, as the default [member dispatch_mode] is [constant MODE_PROXY].
|
||||
</description>
|
||||
</signal>
|
||||
</signals>
|
||||
<constants>
|
||||
<constant name="MODE_PROXY" value="0" enum="DispatchMode">
|
||||
This [ProximityGroup]'s parent will be target of [method broadcast].
|
||||
</constant>
|
||||
<constant name="MODE_SIGNAL" value="1" enum="DispatchMode">
|
||||
This [ProximityGroup] will emit the [signal broadcast] [i]signal[/i] when calling the [method broadcast] [i]method[/i].
|
||||
</constant>
|
||||
</constants>
|
||||
</class>
|
||||
|
||||
@ -13,13 +13,13 @@
|
||||
<return type="void" />
|
||||
<argument index="0" name="with" type="Node" />
|
||||
<description>
|
||||
Binds two ranges together along with any ranges previously grouped with either of them. When any of range's member variables change, it will share the new value with all other ranges in its group.
|
||||
Binds two [Range]s together along with any ranges previously grouped with either of them. When any of range's member variables change, it will share the new value with all other ranges in its group.
|
||||
</description>
|
||||
</method>
|
||||
<method name="unshare">
|
||||
<return type="void" />
|
||||
<description>
|
||||
Stops range from sharing its member variables with any other.
|
||||
Stops the [Range] from sharing its member variables with any other.
|
||||
</description>
|
||||
</method>
|
||||
</methods>
|
||||
@ -64,7 +64,8 @@
|
||||
<signal name="value_changed">
|
||||
<argument index="0" name="value" type="float" />
|
||||
<description>
|
||||
Emitted when [member value] changes.
|
||||
Emitted when [member value] changes. When used on a [Slider], this is called continuously while dragging (potentially every frame). If you are performing an expensive operation in a function connected to [signal value_changed], consider using a [i]debouncing[/i] [Timer] to call the function less often.
|
||||
[b]Note:[/b] Unlike signals such as [signal LineEdit.text_changed], [signal value_changed] is also emitted when [code]value[/code] is set directly via code.
|
||||
</description>
|
||||
</signal>
|
||||
</signals>
|
||||
|
||||
@ -108,7 +108,7 @@
|
||||
</methods>
|
||||
<members>
|
||||
<member name="angular_damp" type="float" setter="set_angular_damp" getter="get_angular_damp" default="-1.0">
|
||||
Damps RigidBody's rotational forces.
|
||||
Damps RigidBody's rotational forces. If this value is different from -1.0 it will be added to any linear damp derived from the world or areas.
|
||||
See [member ProjectSettings.physics/3d/default_angular_damp] for more details about damping.
|
||||
</member>
|
||||
<member name="angular_velocity" type="Vector3" setter="set_angular_velocity" getter="get_angular_velocity" default="Vector3( 0, 0, 0 )">
|
||||
@ -162,7 +162,7 @@
|
||||
This is multiplied by the global 3D gravity setting found in [b]Project > Project Settings > Physics > 3d[/b] to produce RigidBody's gravity. For example, a value of 1 will be normal gravity, 2 will apply double gravity, and 0.5 will apply half gravity to this object.
|
||||
</member>
|
||||
<member name="linear_damp" type="float" setter="set_linear_damp" getter="get_linear_damp" default="-1.0">
|
||||
The body's linear damp. Cannot be less than -1.0. If this value is different from -1.0, any linear damp derived from the world or areas will be overridden.
|
||||
The body's linear damp. Cannot be less than -1.0. If this value is different from -1.0 it will be added to any linear damp derived from the world or areas.
|
||||
See [member ProjectSettings.physics/3d/default_linear_damp] for more details about damping.
|
||||
</member>
|
||||
<member name="linear_velocity" type="Vector3" setter="set_linear_velocity" getter="get_linear_velocity" default="Vector3( 0, 0, 0 )">
|
||||
|
||||
@ -94,7 +94,7 @@
|
||||
</methods>
|
||||
<members>
|
||||
<member name="angular_damp" type="float" setter="set_angular_damp" getter="get_angular_damp" default="-1.0">
|
||||
Damps the body's [member angular_velocity]. If [code]-1[/code], the body will use the [b]Default Angular Damp[/b] defined in [b]Project > Project Settings > Physics > 2d[/b].
|
||||
Damps the body's [member angular_velocity]. If [code]-1[/code], the body will use the [b]Default Angular Damp[/b] defined in [b]Project > Project Settings > Physics > 2d[/b]. If greater than [code]-1[/code] it will be added to the default project value.
|
||||
See [member ProjectSettings.physics/2d/default_angular_damp] for more details about damping.
|
||||
</member>
|
||||
<member name="angular_velocity" type="float" setter="set_angular_velocity" getter="get_angular_velocity" default="0.0">
|
||||
@ -139,7 +139,7 @@
|
||||
The body's moment of inertia. This is like mass, but for rotation: it determines how much torque it takes to rotate the body. The moment of inertia is usually computed automatically from the mass and the shapes, but this function allows you to set a custom value. Set 0 inertia to return to automatically computing it.
|
||||
</member>
|
||||
<member name="linear_damp" type="float" setter="set_linear_damp" getter="get_linear_damp" default="-1.0">
|
||||
Damps the body's [member linear_velocity]. If [code]-1[/code], the body will use the [b]Default Linear Damp[/b] in [b]Project > Project Settings > Physics > 2d[/b].
|
||||
Damps the body's [member linear_velocity]. If [code]-1[/code], the body will use the [b]Default Linear Damp[/b] in [b]Project > Project Settings > Physics > 2d[/b]. If greater than [code]-1[/code] it will be added to the default project value.
|
||||
See [member ProjectSettings.physics/2d/default_linear_damp] for more details about damping.
|
||||
</member>
|
||||
<member name="linear_velocity" type="Vector2" setter="set_linear_velocity" getter="get_linear_velocity" default="Vector2( 0, 0 )">
|
||||
|
||||
@ -55,6 +55,7 @@
|
||||
Changes the running scene to a new instance of the given [PackedScene].
|
||||
Returns [constant OK] on success or [constant ERR_CANT_CREATE] if the scene cannot be instantiated.
|
||||
[b]Note:[/b] The scene change is deferred, which means that the new scene node is added on the next idle frame. You won't be able to access it immediately after the [method change_scene_to] call.
|
||||
[b]Note:[/b] Passing a value of [code]null[/code] into the method will unload the current scene without loading a new one.
|
||||
</description>
|
||||
</method>
|
||||
<method name="create_timer">
|
||||
|
||||
@ -26,7 +26,9 @@
|
||||
<argument index="1" name="with_shape" type="Shape2D" />
|
||||
<argument index="2" name="shape_xform" type="Transform2D" />
|
||||
<description>
|
||||
Returns a list of the points where this shape touches another. If there are no collisions the list is empty.
|
||||
Returns a list of contact point pairs where this shape touches another.
|
||||
If there are no collisions, the returned list is empty. Otherwise, the returned list contains contact points arranged in pairs, with entries alternating between points on the boundary of this shape and points on the boundary of [code]with_shape[/code].
|
||||
A collision pair A, B can be used to calculate the collision normal with [code](B - A).normalized()[/code], and the collision depth with [code](B - A).length()[/code]. This information is typically used to separate shapes, particularly in collision solvers.
|
||||
This method needs the transformation matrix for this shape ([code]local_xform[/code]), the shape to check collisions with ([code]with_shape[/code]), and the transformation matrix of that shape ([code]shape_xform[/code]).
|
||||
</description>
|
||||
</method>
|
||||
@ -50,7 +52,9 @@
|
||||
<argument index="3" name="shape_xform" type="Transform2D" />
|
||||
<argument index="4" name="shape_motion" type="Vector2" />
|
||||
<description>
|
||||
Returns a list of the points where this shape would touch another, if a given movement was applied. If there are no collisions the list is empty.
|
||||
Returns a list of contact point pairs where this shape would touch another, if a given movement was applied.
|
||||
If there would be no collisions, the returned list is empty. Otherwise, the returned list contains contact points arranged in pairs, with entries alternating between points on the boundary of this shape and points on the boundary of [code]with_shape[/code].
|
||||
A collision pair A, B can be used to calculate the collision normal with [code](B - A).normalized()[/code], and the collision depth with [code](B - A).length()[/code]. This information is typically used to separate shapes, particularly in collision solvers.
|
||||
This method needs the transformation matrix for this shape ([code]local_xform[/code]), the movement to test on this shape ([code]local_motion[/code]), the shape to check collisions with ([code]with_shape[/code]), the transformation matrix of that shape ([code]shape_xform[/code]), and the movement to test onto the other object ([code]shape_motion[/code]).
|
||||
</description>
|
||||
</method>
|
||||
|
||||
@ -208,7 +208,10 @@
|
||||
If [code]true[/code], enables the "shadow to opacity" render mode where lighting modifies the alpha so shadowed areas are opaque and non-shadowed areas are transparent. Useful for overlaying shadows onto a camera feed in AR.
|
||||
</member>
|
||||
<member name="flags_vertex_lighting" type="bool" setter="set_flag" getter="get_flag" default="false">
|
||||
If [code]true[/code], lighting is calculated per vertex rather than per pixel. This may increase performance on low-end devices.
|
||||
If [code]true[/code], lighting is calculated per vertex rather than per pixel. This may increase performance on low-end devices, especially for meshes with a lower polygon count. The downside is that shading becomes much less accurate, with visible linear interpolation between vertices that are joined together. This can be compensated by ensuring meshes have a sufficient level of subdivision (but not too much, to avoid reducing performance). Some material features are also not supported when vertex shading is enabled.
|
||||
See also [member ProjectSettings.rendering/quality/shading/force_vertex_shading] which can globally enable vertex shading on all materials.
|
||||
[b]Note:[/b] By default, vertex shading is enforced on mobile platforms by [member ProjectSettings.rendering/quality/shading/force_vertex_shading]'s [code]mobile[/code] override.
|
||||
[b]Note:[/b] [member flags_vertex_lighting] has no effect if [member flags_unshaded] is [code]true[/code].
|
||||
</member>
|
||||
<member name="flags_world_triplanar" type="bool" setter="set_flag" getter="get_flag" default="false">
|
||||
If [code]true[/code], triplanar mapping is calculated in world space rather than object local space. See also [member uv1_triplanar].
|
||||
|
||||
@ -188,7 +188,10 @@
|
||||
<method name="bigrams">
|
||||
<return type="PoolStringArray" />
|
||||
<description>
|
||||
Returns the bigrams (pairs of consecutive letters) of this string.
|
||||
Returns an array containing the bigrams (pairs of consecutive letters) of this string.
|
||||
[codeblock]
|
||||
print("Bigrams".bigrams()) # Prints "[Bi, ig, gr, ra, am, ms]"
|
||||
[/codeblock]
|
||||
</description>
|
||||
</method>
|
||||
<method name="c_escape">
|
||||
@ -434,7 +437,13 @@
|
||||
<method name="is_valid_float">
|
||||
<return type="bool" />
|
||||
<description>
|
||||
Returns [code]true[/code] if this string contains a valid float.
|
||||
Returns [code]true[/code] if this string contains a valid float. This is inclusive of integers, and also supports exponents:
|
||||
[codeblock]
|
||||
print("1.7".is_valid_float()) # Prints "True"
|
||||
print("24".is_valid_float()) # Prints "True"
|
||||
print("7e3".is_valid_float()) # Prints "True"
|
||||
print("Hello".is_valid_float()) # Prints "False"
|
||||
[/codeblock]
|
||||
</description>
|
||||
</method>
|
||||
<method name="is_valid_hex_number">
|
||||
@ -454,12 +463,24 @@
|
||||
<return type="bool" />
|
||||
<description>
|
||||
Returns [code]true[/code] if this string is a valid identifier. A valid identifier may contain only letters, digits and underscores ([code]_[/code]) and the first character may not be a digit.
|
||||
[codeblock]
|
||||
print("good_ident_1".is_valid_identifier()) # Prints "True"
|
||||
print("1st_bad_ident".is_valid_identifier()) # Prints "False"
|
||||
print("bad_ident_#2".is_valid_identifier()) # Prints "False"
|
||||
[/codeblock]
|
||||
</description>
|
||||
</method>
|
||||
<method name="is_valid_integer">
|
||||
<return type="bool" />
|
||||
<description>
|
||||
Returns [code]true[/code] if this string contains a valid integer.
|
||||
[codeblock]
|
||||
print("7".is_valid_int()) # Prints "True"
|
||||
print("14.6".is_valid_int()) # Prints "False"
|
||||
print("L".is_valid_int()) # Prints "False"
|
||||
print("+3".is_valid_int()) # Prints "True"
|
||||
print("-12".is_valid_int()) # Prints "True"
|
||||
[/codeblock]
|
||||
</description>
|
||||
</method>
|
||||
<method name="is_valid_ip_address">
|
||||
@ -499,14 +520,14 @@
|
||||
<return type="bool" />
|
||||
<argument index="0" name="expr" type="String" />
|
||||
<description>
|
||||
Does a simple case-sensitive expression match, where [code]"*"[/code] matches zero or more arbitrary characters and [code]"?"[/code] matches any single character except a period ([code]"."[/code]).
|
||||
Does a simple case-sensitive expression match, where [code]"*"[/code] matches zero or more arbitrary characters and [code]"?"[/code] matches any single character except a period ([code]"."[/code]). An empty string or empty expression always evaluates to [code]false[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="matchn">
|
||||
<return type="bool" />
|
||||
<argument index="0" name="expr" type="String" />
|
||||
<description>
|
||||
Does a simple case-insensitive expression match, where [code]"*"[/code] matches zero or more arbitrary characters and [code]"?"[/code] matches any single character except a period ([code]"."[/code]).
|
||||
Does a simple case-insensitive expression match, where [code]"*"[/code] matches zero or more arbitrary characters and [code]"?"[/code] matches any single character except a period ([code]"."[/code]). An empty string or empty expression always evaluates to [code]false[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="md5_buffer">
|
||||
@ -642,8 +663,8 @@
|
||||
var some_string = "One,Two,Three,Four"
|
||||
var some_array = some_string.rsplit(",", true, 1)
|
||||
print(some_array.size()) # Prints 2
|
||||
print(some_array[0]) # Prints "Four"
|
||||
print(some_array[1]) # Prints "Three,Two,One"
|
||||
print(some_array[0]) # Prints "One,Two,Three"
|
||||
print(some_array[1]) # Prints "Four"
|
||||
[/codeblock]
|
||||
</description>
|
||||
</method>
|
||||
@ -683,7 +704,13 @@
|
||||
<return type="float" />
|
||||
<argument index="0" name="text" type="String" />
|
||||
<description>
|
||||
Returns the similarity index of the text compared to this string. 1 means totally similar and 0 means totally dissimilar.
|
||||
Returns the similarity index ([url=https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient]Sorensen-Dice coefficient[/url]) of this string compared to another. A result of 1.0 means totally similar, while 0.0 means totally dissimilar.
|
||||
[codeblock]
|
||||
print("ABC123".similarity("ABC123")) # Prints "1"
|
||||
print("ABC123".similarity("XYZ456")) # Prints "0"
|
||||
print("ABC123".similarity("123ABC")) # Prints "0.8"
|
||||
print("ABC123".similarity("abc123")) # Prints "0.4"
|
||||
[/codeblock]
|
||||
</description>
|
||||
</method>
|
||||
<method name="simplify_path">
|
||||
|
||||
@ -99,7 +99,7 @@
|
||||
Returns the currently edited item. Can be used with [signal item_edited] to get the item that was modified.
|
||||
[codeblock]
|
||||
func _ready():
|
||||
$Tree.item_edited.connect(on_Tree_item_edited)
|
||||
$Tree.connect("item_edited", self, "on_Tree_item_edited")
|
||||
|
||||
func on_Tree_item_edited():
|
||||
print($Tree.get_edited()) # This item just got edited (e.g. checked).
|
||||
|
||||
@ -52,7 +52,7 @@
|
||||
<argument index="0" name="to" type="Vector2" />
|
||||
<description>
|
||||
Returns the angle between the line connecting the two points and the X axis, in radians.
|
||||
[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/vector2_angle_to_point.png]Illustration of the returned angle.[/url]
|
||||
[url=https://raw.githubusercontent.com/godotengine/godot-docs/3.4/img/vector2_angle_to_point.png]Illustration of the returned angle.[/url]
|
||||
</description>
|
||||
</method>
|
||||
<method name="aspect">
|
||||
|
||||
@ -1751,7 +1751,7 @@
|
||||
<argument index="0" name="material" type="RID" />
|
||||
<argument index="1" name="parameter" type="String" />
|
||||
<description>
|
||||
Returns the default value for the param if available. Otherwise returns an empty [Variant].
|
||||
Returns the default value for the param if available. Returns [code]null[/code] otherwise.
|
||||
</description>
|
||||
</method>
|
||||
<method name="material_get_shader" qualifiers="const">
|
||||
@ -3789,19 +3789,20 @@
|
||||
Shows the glow effect by itself without the underlying scene.
|
||||
</constant>
|
||||
<constant name="ENV_TONE_MAPPER_LINEAR" value="0" enum="EnvironmentToneMapper">
|
||||
Output color as they came in.
|
||||
Output color as they came in. This can cause bright lighting to look blown out, with noticeable clipping in the output colors.
|
||||
</constant>
|
||||
<constant name="ENV_TONE_MAPPER_REINHARD" value="1" enum="EnvironmentToneMapper">
|
||||
Use the Reinhard tonemapper.
|
||||
Use the Reinhard tonemapper. Performs a variation on rendered pixels' colors by this formula: [code]color = color / (1 + color)[/code]. This avoids clipping bright highlights, but the resulting image can look a bit dull.
|
||||
</constant>
|
||||
<constant name="ENV_TONE_MAPPER_FILMIC" value="2" enum="EnvironmentToneMapper">
|
||||
Use the filmic tonemapper.
|
||||
Use the filmic tonemapper. This avoids clipping bright highlights, with a resulting image that usually looks more vivid than [constant ENV_TONE_MAPPER_REINHARD].
|
||||
</constant>
|
||||
<constant name="ENV_TONE_MAPPER_ACES" value="3" enum="EnvironmentToneMapper">
|
||||
Use the ACES tonemapper.
|
||||
Use the legacy Godot version of the Academy Color Encoding System tonemapper. Unlike [constant ENV_TONE_MAPPER_ACES_FITTED], this version of ACES does not handle bright lighting in a physically accurate way. ACES typically has a more contrasted output compared to [constant ENV_TONE_MAPPER_REINHARD] and [constant ENV_TONE_MAPPER_FILMIC].
|
||||
[b]Note:[/b] This tonemapping operator will be removed in Godot 4.0 in favor of the more accurate [constant ENV_TONE_MAPPER_ACES_FITTED].
|
||||
</constant>
|
||||
<constant name="ENV_TONE_MAPPER_ACES_FITTED" value="4" enum="EnvironmentToneMapper">
|
||||
Use the ACES Fitted tonemapper.
|
||||
Use the Academy Color Encoding System tonemapper. ACES is slightly more expensive than other options, but it handles bright lighting in a more realistic fashion by desaturating it as it becomes brighter. ACES typically has a more contrasted output compared to [constant ENV_TONE_MAPPER_REINHARD] and [constant ENV_TONE_MAPPER_FILMIC].
|
||||
</constant>
|
||||
<constant name="ENV_SSAO_QUALITY_LOW" value="0" enum="EnvironmentSSAOQuality">
|
||||
Lowest quality of screen space ambient occlusion.
|
||||
|
||||
@ -29095,7 +29095,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -29042,7 +29042,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -28862,7 +28862,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -29533,7 +29533,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -31228,7 +31228,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -29017,7 +29017,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -38638,7 +38638,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
"Representa la presión que el usuario ejerce sobre el botón con su dedo, si "
|
||||
|
||||
@ -29436,7 +29436,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -29020,7 +29020,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -28997,7 +28997,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -31229,7 +31229,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -28869,7 +28869,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -28867,7 +28867,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -28884,7 +28884,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -29203,7 +29203,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -28868,7 +28868,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -29860,7 +29860,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -31896,7 +31896,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -29235,7 +29235,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -29011,7 +29011,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -28867,7 +28867,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -28877,7 +28877,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -29045,7 +29045,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -29485,7 +29485,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -28907,7 +28907,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -30037,7 +30037,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -29010,7 +29010,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -30780,7 +30780,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -28998,7 +28998,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -29008,7 +29008,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -28869,7 +28869,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -29111,7 +29111,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -28941,7 +28941,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -29800,7 +29800,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -29149,7 +29149,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -29338,7 +29338,7 @@ msgstr ""
|
||||
|
||||
#: doc/classes/InputEventJoypadButton.xml
|
||||
msgid ""
|
||||
"Represents the pressure the user puts on the button with his finger, if the "
|
||||
"Represents the pressure the user puts on the button with their finger, if the "
|
||||
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
|
||||
msgstr ""
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user