Commit graph

26963 commits

Author SHA1 Message Date
Andrii Doroshenko (Xrayez)
0138ba59ac SCons: use OrderedDict to ensure insertion order of modules
The insertion order for dictionaries is only a language feature for
Python 3.6/3.7+ implementations, and not prior to that.

This ensures that the engine won't be rebuilt if the order of detected
modules changes in any way, as the `OrderedDict` should guarantee
inerstion order.
2020-05-28 17:13:50 +03:00
Rémi Verschelde
807f1f511b
Merge pull request #39110 from volzhs/godotpayment-consume
Add missing consumePurchase plugin method for GodotPayment
2020-05-28 15:59:50 +02:00
volzhs
c86ddd6b61 Add missing consumePurchase plugin method for GodotPayment 2020-05-28 11:51:14 +09:00
Rémi Verschelde
f03bc21e09
Merge pull request #39103 from m4gr3d/enable_legacy_external_storage
Enable legacy external storage for Android 10
2020-05-27 22:57:24 +02:00
Rémi Verschelde
2d9132a463
Merge pull request #39098 from m4gr3d/validate_plugins_build_config_3_2
[3.2] Validate that `Use Custom Build` is enabled when `Plugins` are selected
2020-05-27 22:55:14 +02:00
Fredia Huya-Kouadio
2e7e3dcfe4 Enable legacy external storage for Android 10 2020-05-27 13:34:40 -07:00
Fredia Huya-Kouadio
0181e89e43 Validate that Use Custom Build is enabled when Plugins are selected
Remove `GodotPayment` from the default build template
2020-05-27 12:04:31 -07:00
Marcel Admiraal
08fa7cd8d9 Correct Bullet's default Area angular damp value. 2020-05-27 11:53:41 +01:00
Rémi Verschelde
9aeb9ea826
Merge pull request #39081 from m4gr3d/fix_emit_signal_3_2
[3.2] Fix parameters passing when emitting signal
2020-05-27 12:53:35 +02:00
Fredia Huya-Kouadio
3c0b26e29c Fix parameters passing when emitting signal
The issue was caused because we were using variables local to the `for` loop block.
Address [feedback](https://github.com/godotengine/godot/pull/39047#issuecomment-634545849) by @pouleyKetchoupp regarding the use of arrays on stack with dynamic size.
2020-05-27 03:38:38 -07:00
Rémi Verschelde
6abe73f5b8
Merge pull request #39078 from m4gr3d/override_command_line_args_3_2
[3.2] Provide the ability to override the command line arguments
2020-05-27 12:02:26 +02:00
Fredia Huya-Kouadio
06b7f611f8 Provide the ability for clients of the Godot library to add their own command line arguments 2020-05-27 02:12:54 -07:00
lawnjelly
c7d18dec70 Rename batching project settings in preparation for GLES3
As it now seems like we will soon have GLES3 batching working using the same intermediate layer as GLES2, it makes more sense to reuse the same batching settings for both renderers rather than duplicate project settings for GLES2 and GLES3.
2020-05-26 18:15:35 +01:00
Rémi Verschelde
757d8b5672
Merge pull request #39034 from timoschwarzer/google-play-billing-3.2
Re-implement GodotPayment Android plugin using the Google Play Billing library
2020-05-25 22:17:11 +02:00
Timo Schwarzer
8373c0792a
Re-implement GodotPayment Android plugin using the Google Play Billing library 2020-05-25 21:09:45 +02:00
Rémi Verschelde
7c332d9386
Merge pull request #39040 from Xrayez/modules-search-path-3.2
[3.2] Add `custom_modules` build option to compile external user modules
2020-05-25 17:02:27 +02:00
Rémi Verschelde
acb83db1d1 doc: Sync classref with current source 2020-05-25 17:00:22 +02:00
Tomasz Chabora
800dceee52 Reverse mouse wheel in animation track editor
(cherry picked from commit f4c6bb568e)
2020-05-25 16:38:02 +02:00
PouleyKetchoupp
f4f4b77d23 Use long instead of int for object id in Android java wrapper
Using int for 64-bit values might cause issues with objects not found
in ObjectDB when the id is truncated.

(cherry picked from commit 39f59786fa)
2020-05-25 16:36:34 +02:00
Ignacio Etcheverry
f0bc3482d4 Mono/C#: Don't try to load project assembly in project manager
This was causing an error message when launching the manager,
because there is no project assembly to load.

(cherry picked from commit d7e21ecd63)
2020-05-25 16:34:15 +02:00
Dominik 'dreamsComeTrue' Jasiński
cf311f3e79 Fix moving 2D node with mouse after using arrow keys
Fixes: #38894
(cherry picked from commit 03b54f8a35)
2020-05-25 16:33:58 +02:00
CJ DiMaggio
ad3d643bc2 Delete DummyMesh when RasterizerStorageDummy is freed
(cherry picked from commit 66a294d459)
2020-05-25 16:32:48 +02:00
bruvzg
c4e652a6a3 Docs: Fix order of variant constants.
(cherry picked from commit 409562558a)
2020-05-25 16:32:25 +02:00
Paul Joannon
66e00a2670 check the params section exist before erasing it in import_dock
related #38864

(cherry picked from commit b7a6946790)
2020-05-25 16:32:05 +02:00
Tan Wang Leng
48a2fd7a3d gdscript_parser: Fix "unreachable code" false positive for loops
Depending on the conditional statements of the 'for' and 'while' loops,
their body may not even execute once. For example:

    func a():
        var arr = []
        for i in arr:
            return i
        # can be reached, but analysis says cannot
        return -1

    func b():
        var should_loop = false
        while should_loop:
           return 1
        # can be reached, but analysis says cannot
        return 0

The parser will complain that the statements after the comment cannot
be reached, but it is clearly possible for our scenario. This is
because the parser falsely assumes that the loop body will always
execute at least once.

Fix the code to remove this assumption for both of those loops.

(cherry picked from commit 7b1423a61e)
2020-05-25 16:31:07 +02:00
James Buck
9347a6ad6a Trigger an error when trying to define a preexisting signal in GDScript
A class can't have multiple signals with the same name, but previously users
would not be alerted to a conflict while editing the script where it occurred.
Now a helpful error will appear in the editor during script parsing.

(cherry picked from commit 9e44739324)
2020-05-25 16:29:20 +02:00
Andrii Doroshenko (Xrayez)
133997654c Add custom_modules build option to compile external user modules
This patch adds ability to include external, user-defined C++ modules
to be compiled as part of Godot via `custom_modules` build option
which can be passed to `scons`.

```
scons platform=x11 tools=yes custom_modules="../project/modules"
```

Features:

- detects all available modules under `custom_modules` directory the
same way as it does for built-in modules (not recursive);
- works with both relative and absolute paths on the filesystem;
- multiple search paths can be specified as a comma-separated list.

Module custom documentation and editor icons collection and generation
process is adapted to work with absolute paths needed by such modules.
Also fixed doctool bug mixing absolute and relative paths respectively.

Implementation details:

- `env.module_list` is a dictionary now, which holds both module name as
  key and either a relative or absolute path to a module as a value.
- `methods.detect_modules` is run twice: once for built-in modules, and
  second for external modules, all combined later.
- `methods.detect_modules` was not doing what it says on the tin. It is
  split into `detect_modules` which collects a list of available modules
  and `write_modules` which generates `register_types` sources for each.
- whether a module is built-in or external is distinguished by relative
  or absolute paths respectively. `custom_modules` scons converter
  ensures that the path is absolute even if relative path is supplied,
  including expanding user paths and symbolic links.
- treats the parent directory as if it was Godot's base directory, so
  that there's no need to change include paths in cases where custom
  modules are included as dependencies in other modules.

(cherry picked from commit a96f0e98d7)
2020-05-25 17:08:38 +03:00
Thakee Nathees
d611bd970d regression: dictionary key no autocomplete fix
Fix: #38998
(cherry picked from commit 13c372b522)
2020-05-25 15:58:25 +02:00
Fabio Alessandrelli
d0613a2243 Fix JS audioContext parameters.
Were not passed along correctly.
`latencyHint` is supposed to be in seconds, not milliseconds.

(cherry picked from commit 57bdb4cc35)
2020-05-25 15:53:18 +02:00
PouleyKetchoupp
719369c71b Fix resource preview in remote inspector
The specific case for object reference seems unnecessary, as `RES res = var`
already does the work. The case where REF is invalid is never hit in the case
of already freed objects.

The assignment `res = *r` was causing the resource to be always invalidated
on the 3.2 branch.

(cherry picked from commit 12685df423)
2020-05-25 11:46:51 +02:00
Rémi Verschelde
2cf6624965 FastLZ: Update to upstream version 0.5.0
Upstream development restarted after 13 years. Changes:

2020-02-02: Version 0.5.0

    Minor speed improvement on the decompressor.
    Prevent memory violation when decompressing corrupted input.

2020-01-10: Version 0.4.0

    Only code & infrastructure clean-up, no new functionality.

(cherry picked from commit 5167c9186a)
2020-05-25 11:46:03 +02:00
Ignacio Etcheverry
0da84b50c0 Mono/C#: Fix values not updated in remote inspector
(cherry picked from commit 51e1614d28)
2020-05-25 11:46:03 +02:00
Rémi Verschelde
11d6c0f20d
Merge pull request #38984 from Calinou/bakedlightmap-configuration-warning
Document known bugs in BakedLightmap
2020-05-25 11:28:16 +02:00
Hugo Locurcio
5fb5fb135a
Document known bugs in BakedLightmap
See #30929.
2020-05-24 21:29:12 +02:00
Rémi Verschelde
7ccb146a55
Merge pull request #38979 from lawnjelly/kessel_unshaded_bug
GLES2 Batching - Builtins prevent baking in unshaded shaders
2020-05-23 13:58:12 +02:00
lawnjelly
b95add2bfd GLES2 Batching - Builtins prevent baking in unshaded shaders
Builtins that should prevent baking colors and vertex positions were incorrectly only active in shaders that were not unshaded. This was a terminology misunderstanding - unshaded materials can still use shaders so should have the same test to prevent baking.
2020-05-23 11:35:33 +01:00
Rémi Verschelde
73b97e8f05
Merge pull request #38963 from neikeq/scons-option-build-cil
[3.2] Add SCons option to not build C# solutions
2020-05-22 18:29:52 +02:00
Rémi Verschelde
d5e380117f
Merge pull request #38952 from bruvzg/win_ink_block_mm_3
[3.2] Block WM_MOUSEMOVE during Windows Ink pen handling.
2020-05-22 14:34:29 +02:00
bruvzg
28aabf4f73
[3.2] Block WM_MOUSEMOVE during Windows Ink pen handling. 2020-05-22 14:05:53 +03:00
Rémi Verschelde
fa9c44bf65
Merge pull request #38890 from Xrayez/save-png-buffer-3.2
[3.2] Add `Image.save_png_to_buffer` method
2020-05-22 09:48:50 +02:00
Ignacio Etcheverry
ce09d0c5e1 Add SCons option to not build C# solutions 2020-05-22 03:12:54 +02:00
Rémi Verschelde
8cf450c16b
Merge pull request #38916 from madmiraal/appveyor-test
[3.2] Enable Appveyor error on warnings.
2020-05-21 14:27:04 +02:00
Marcel Admiraal
aeb1181add Enable Appveyor error on warnings. 2020-05-21 11:28:01 +01:00
Marcel Admiraal
dac3504cc3 Fix C4724: potential mod by 0 warnings. 2020-05-21 11:28:01 +01:00
Andrii Doroshenko (Xrayez)
a3cad44f44 Add Image.save_png_to_buffer method
Backported from da0457fa29.

This commit additionally exposes the method to scripting (4.0).
2020-05-20 15:38:20 +03:00
Rémi Verschelde
b6c551e864
Merge pull request #38875 from bruvzg/tab_drv_sel_32
[Windows, 3.2] Add tablet driver selection.
2020-05-20 13:58:26 +02:00
Rémi Verschelde
c5bb283ede
Merge pull request #38832 from akien-mga/3.2-cherrypicks
Cherry-picks for the 3.2 branch (future 3.2.2) - 6th batch
2020-05-20 13:58:08 +02:00
Hugo Locurcio
a785641196 Allow .res and .tres extensions in the scene CLI positional argument
This closes #35709.

(cherry picked from commit 653334cc8d)
2020-05-20 12:07:08 +02:00
SkyJJ
2197ef0566 Fix Android LineEdit editing bugs
(cherry picked from commit cc473b948f)
2020-05-20 12:07:08 +02:00
Michael Alexsander
3d8cc49ec5 Keep "lock" metadata when changing a Node's type, if applicable
(cherry picked from commit d015e4d6fc)
2020-05-20 11:43:49 +02:00