diff options
| author | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2023-06-30 15:06:17 +0200 |
|---|---|---|
| committer | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2023-06-30 15:07:42 +0200 |
| commit | 155f2e2a62b2e6526aeab927a217d9dbc06f21b5 (patch) | |
| tree | 1afe858d14209e6c5e363db8feb27379a5732e48 /test/src | |
| parent | 80986f8497b7bec307e0987d01412360d39cbb3f (diff) | |
| download | redot-cpp-155f2e2a62b2e6526aeab927a217d9dbc06f21b5.tar.gz | |
Add RPC tests.
Diffstat (limited to 'test/src')
| -rw-r--r-- | test/src/example.cpp | 26 | ||||
| -rw-r--r-- | test/src/example.h | 6 |
2 files changed, 32 insertions, 0 deletions
diff --git a/test/src/example.cpp b/test/src/example.cpp index 6c5e736..34ee355 100644 --- a/test/src/example.cpp +++ b/test/src/example.cpp @@ -9,6 +9,8 @@ #include <godot_cpp/classes/global_constants.hpp> #include <godot_cpp/classes/label.hpp> +#include <godot_cpp/classes/multiplayer_api.hpp> +#include <godot_cpp/classes/multiplayer_peer.hpp> #include <godot_cpp/variant/utility_functions.hpp> using namespace godot; @@ -48,6 +50,14 @@ int Example::def_args(int p_a, int p_b) { } void Example::_notification(int p_what) { + if (p_what == NOTIFICATION_READY) { + Dictionary opts; + opts["rpc_mode"] = MultiplayerAPI::RPC_MODE_AUTHORITY; + opts["transfer_mode"] = MultiplayerPeer::TRANSFER_MODE_RELIABLE; + opts["call_local"] = true; + opts["channel"] = 0; + rpc_config("test_rpc", opts); + } //UtilityFunctions::print("Notification: ", String::num(p_what)); } @@ -132,6 +142,10 @@ void Example::_bind_methods() { ClassDB::bind_method(D_METHOD("test_bitfield", "flags"), &Example::test_bitfield); + ClassDB::bind_method(D_METHOD("test_rpc", "value"), &Example::test_rpc); + ClassDB::bind_method(D_METHOD("test_send_rpc", "value"), &Example::test_send_rpc); + ClassDB::bind_method(D_METHOD("return_last_rpc_arg"), &Example::return_last_rpc_arg); + ClassDB::bind_method(D_METHOD("def_args", "a", "b"), &Example::def_args, DEFVAL(100), DEFVAL(200)); ClassDB::bind_static_method("Example", D_METHOD("test_static", "a", "b"), &Example::test_static); @@ -333,6 +347,18 @@ BitField<Example::Flags> Example::test_bitfield(BitField<Flags> flags) { return flags; } +void Example::test_rpc(int p_value) { + last_rpc_arg = p_value; +} + +void Example::test_send_rpc(int p_value) { + rpc("test_rpc", p_value); +} + +int Example::return_last_rpc_arg() { + return last_rpc_arg; +} + // Properties. void Example::set_custom_position(const Vector2 &pos) { custom_position = pos; diff --git a/test/src/example.h b/test/src/example.h index 7f1b5b2..a330030 100644 --- a/test/src/example.h +++ b/test/src/example.h @@ -70,6 +70,7 @@ private: Vector2 custom_position; Vector3 property_from_list; Vector2 dprop[3]; + int last_rpc_arg = 0; public: // Constants. @@ -120,6 +121,11 @@ public: BitField<Flags> test_bitfield(BitField<Flags> flags); + // RPC + void test_rpc(int p_value); + void test_send_rpc(int p_value); + int return_last_rpc_arg(); + // Property. void set_custom_position(const Vector2 &pos); Vector2 get_custom_position() const; |
