summaryrefslogtreecommitdiff
path: root/modules/gdscript/gdscript_functions.cpp
AgeCommit message (Collapse)Author
2020-02-25Variant: Added 64-bit packed arrays, renamed Variant::REAL to FLOAT.Juan Linietsky
- Renames PackedIntArray to PackedInt32Array. - Renames PackedFloatArray to PackedFloat32Array. - Adds PackedInt64Array and PackedFloat64Array. - Renames Variant::REAL to Variant::FLOAT for consistency. Packed arrays are for storing large amount of data and creating stuff like meshes, buffers. textures, etc. Forcing them to be 64 is a huge waste of memory. That said, many users requested the ability to have 64 bits packed arrays for their games, so this is just an optional added type. For Variant, the float datatype is always 64 bits, and exposed as `float`. We still have `real_t` which is the datatype that can change from 32 to 64 bits depending on a compile flag (not entirely working right now, but that's the idea). It affects math related datatypes and code only. Neither Variant nor PackedArray make use of real_t, which is only intended for math precision, so the term is removed from there to keep only float.
2020-02-22Add support for Vector2i, Rect2i and Vector3i to VariantJuan Linietsky
WARNING: Requires C++17 'guaranteed copy elision' to fix ambiguous operator problems in Variant. This was added for this commit (and future C++17 uses) in #36457.
2020-02-20Reworked signal connection system, added support for Callable and Signal ↵Juan Linietsky
objects and made them default.
2020-02-18PoolVector is gone, replaced by VectorJuan Linietsky
Typed `PoolTypeArray` types are now renamed `PackedTypeArray` and are sugar for `Vector<Type>`.
2020-02-15Changed logic and optimized ObjectID in ObjectDB and Variant, removed RefPtr.Juan Linietsky
2020-02-12Merge pull request #36142 from akien-mga/remove-deprecated-decimalsRémi Verschelde
Remove deprecated decimals builtin
2020-02-12ObjectID converted to a structure, fixes many bugs where used incorrectly as ↵Juan Linietsky
32 bits.
2020-02-12Remove deprecated decimals builtinRémi Verschelde
Replaced by 'step_decimals' in 3.2 via #21425.
2020-02-05Remove duplicate WARN_PRINT macro.Marcel Admiraal
2020-02-05Remove duplicate ERR_PRINT macro.Marcel Admiraal
2020-01-08GDScript: enable type checks on release modeGeorge Marques
Also make builtin GDScript functions report return type as Variant in release so type is converted when needed.
2020-01-01Update copyright statements to 2020Rémi Verschelde
Happy new year to the wonderful Godot community! We're starting a new decade with a well-established, non-profit, free and open source game engine, and tons of further improvements in the pipeline from hundreds of contributors. Godot will keep getting better, and we're looking forward to all the games that the community will keep developing and releasing with it.
2019-12-15Updates docs for GDScript built-in functionsHaoyu Qiu
* Adds description for `ord()` * Adds relationship description between `char()` and `ord()` * Describes the argument of `char()` as Unicode code point instead of ASCII code * Fixes wrong interval notation in `randi()` description
2019-12-11Merge pull request #33018 from Xrayez/fix-inst2dict-gettersRémi Verschelde
Fix `inst2dict` calling to getters to retrieve value
2019-11-02Use GDScript resource path over script path for `inst2dict`Andrii Doroshenko (Xrayez)
The resource path holds the original path which can be used to convert a dictionary to instance consistently both within editor and exported projects as the original path is automatically remapped from `gd` to `gdc` or `gde` in exported projects.
2019-10-31Provide and print error messages for JSON parsingAndrii Doroshenko (Xrayez)
Core is not touched, only for binding and scripting.
2019-10-29Fixed leak in gdscript when creating empty WeakRefPouleyKetchoupp
Fixes #33150
2019-10-24Fix `inst2dict` calling to getters to retrieve valueAndrii Doroshenko (Xrayez)
Use `GDScriptInstance` to iterate through all members directly instead. This is similar to how `dict2inst` works and makes the serialization behaviour more consistent.
2019-09-16Allow weakref(null) in gdscriptWindy Darian
Tiny addition I personally found useful - this allows us to `var my_ref := weakref(null)` for nullable weak ref (with type hint!). When trying to test if `my_ref` is holding valid reference, we can just `if my_ref.get_ref():` instead of `if my_ref and my_ref.get_ref():` everywhere.
2019-08-28Add ord() function to return Unicode code point of a string of length oneMasoud Montazeri
2019-08-09Replace 'ERR_EXPLAIN' with 'ERR_FAIL_*_MSG' in "platform", ↵Robin Hübner
"modules/gdnative", "modules/gdscript" directories.
2019-07-20Added lerp_angles built-in functionChaosus
Co-authored-by: Xrayez <https://github.com/Xrayez> Co-authored-by: DleanJeans <https://github.com/DleanJeans>
2019-07-18Add integer posmod and rename default arg namesAaron Franke
"posmod" is the integer version of "fposmod". We do not need a "mod" because of the % operator. I changed the default arg names from "x" and "y" to "a" and "b" because they are not coordinates. I also changed pow's arg names to "base" and "exp". Also, I reorganized the code in the VS built-in funcs switch statement.
2019-06-11Fix error macro calls not ending with semicolonRémi Verschelde
It's not necessary, but the vast majority of calls of error macros do have an ending semicolon, so it's best to be consistent. Most WARN_DEPRECATED calls did *not* have a semicolon, but there's no reason for them to be treated differently.
2019-05-28Added move_toward functions for float, Vector2 and Vector3Giacom
2019-04-30Make "decimal" functions more consistentAaron Franke
In GDScript, rename "decimals" to "step_decimals". In C#, add "StepDecimals", but keep the old functionality in a method called "DecimalCount".
2019-04-25[Core] Expose approximate equality methods to GDScriptAaron Franke
2019-04-08Merge pull request #27231 from Chaosus/smoothstepRémi Verschelde
Added smoothstep built-in function
2019-04-07Added smoothstep built-in functionChaosus
2019-04-01Add object encoding param to serialization methodsFabio Alessandrelli
Network peers get_var/put_var File get_var/store_var GDScript/Mono/VisualScript bytes2var/var2bytes Add MultiplayerAPI.allow_object_decoding member which deprecates PacketPeer.allow_object_decoding. Break ABI compatibaility (API compatibility for GDNative).
2019-01-18GDScript: Fix return value of "lerp" builtinRémi Verschelde
Fixes #25082, fixes #24709.
2019-01-01Update copyright statements to 2019Rémi Verschelde
Happy new year to the wonderful Godot community!
2018-12-13i18n: Sync translation template with current sourceRémi Verschelde
Also French translation update and misc fixes to source strings.
2018-12-07Merge pull request #22934 from SeleckyErik/issue-11457Rémi Verschelde
GDscript function str2var now returns null on invalid input
2018-11-28GDscript function str2var now returns input string on invalid inputErik
str2var used to raise a blocking error when invalid input was passed. Now it logs an error message and returns the input string. This solution was proposed in #13021. Closes #11457 and #13021.
2018-10-31Add new "push_*()" functions to GDScriptMichael Alexsander Silva Dias
2018-09-16Fixed argument names being swapped for atan2DualMatrix
The arguments of atan2() should be y,x instead of x,y This was just wrong since the internal atan2 already had y,x as parameters, so if you followed the autocomplete the result would just be wrong.
2018-09-12Make core/ includes absolute, remove subfolders from include pathRémi Verschelde
This allows more consistency in the manner we include core headers, where previously there would be a mix of absolute, relative and include path-dependent includes.
2018-09-05Fixed return type for get_stack() function callWiggleWizard
2018-08-24Make some debug prints verbose-only, remove othersRémi Verschelde
2018-07-25GDScript: Enable built-in function introspection in non-toolsGeorge Marques
Only for debug builds. Fix problems in non-tools targets.
2018-07-26Reduce unnecessary COW on Vector by make writing explicitHein-Pieter van Braam
This commit makes operator[] on Vector const and adds a write proxy to it. From now on writes to Vectors need to happen through the .write proxy. So for instance: Vector<int> vec; vec.push_back(10); std::cout << vec[0] << std::endl; vec.write[0] = 20; Failing to use the .write proxy will cause a compilation error. In addition COWable datatypes can now embed a CowData pointer to their data. This means that String, CharString, and VMap no longer use or derive from Vector. _ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug builds. This is a lot faster for Vector in the editor and while running tests. The reason why this difference used to exist is because force-inlined methods used to give a bad debugging experience. After extensive testing with modern compilers this is no longer the case.
2018-07-20Add static type checks in the parserGeorge Marques
- Resolve types for all identifiers. - Error when identifier is not found. - Match return type and error when not returning a value when it should. - Check unreachable code (code after sure return). - Match argument count and types for function calls. - Determine if return type of function call matches the assignment. - Do static type check with match statement when possible. - Use type hints to determine export type. - Check compatibility between type hint and explicit export type.
2018-07-04Merge pull request #18966 from chanon/new-debug-printMax Hilbrunner
Add new debug print method that shows line number where the print came from
2018-05-28add new print_debug method which shows source and line numberchanon
2018-05-17add new get_stack function to get GDScript stack trace as arraychanon
2018-05-07Merge pull request #16106 from poke1024/gdscript-lerpJuan Linietsky
GDScript: generalize lerp
2018-05-07Add is_instance_valid() method to GDScript, ending more than a decade of pain.Juan Linietsky
2018-02-19Merge pull request #16173 from vnen/gdscript-argumentsRémi Verschelde
Add argument count check for some GDScript functions
2018-01-30Show default values in docs for GDScript built-in functionsGeorge Marques