diff --git a/.github/workflows/main-godot4.yml b/.github/workflows/main-godot4.yml index 7f70e77d..f623fee6 100644 --- a/.github/workflows/main-godot4.yml +++ b/.github/workflows/main-godot4.yml @@ -38,11 +38,7 @@ jobs: matrix: include: - os: ubuntu-latest - godot-version: '4.3' - godot-status: 'stable' - gdunit-version: 'v5.1' - - os: ubuntu-latest - godot-version: '4.4' + godot-version: '4.4.1' godot-status: 'stable' gdunit-version: 'v5.1' - os: ubuntu-latest diff --git a/.gitignore b/.gitignore index 3ae90e23..184270d5 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,8 @@ exports/ [Ee]xport/ + +steam_appid.txt + +# Ignore temp files +~* diff --git a/Scenes/LoggedIn.gd b/Scenes/LoggedIn.gd index 3a56a560..457f9aea 100644 --- a/Scenes/LoggedIn.gd +++ b/Scenes/LoggedIn.gd @@ -9,11 +9,11 @@ func _ready(): var _error = PlayFabManager.client.connect("api_error", func(error: ApiErrorWrapper): print_debug(error.errorMessage) ) + update() - -# Called when the node enters the scene tree for the first time. func update(): - if login_result != null: + if PlayFabManager.client.is_logged_in(): + login_result = PlayFabManager.client.get_login_result() $VBoxContainer/LoginResultContainer/AccountPlayerId/Edit.text = login_result.PlayFabId $VBoxContainer/LoginResultContainer/TitlePlayerId/Edit.text = login_result.InfoResultPayload.AccountInfo.TitleInfo.TitlePlayerAccount.Id $VBoxContainer/LoginResultContainer/TitlePlayerName/Edit.text = login_result.InfoResultPayload.AccountInfo.TitleInfo.DisplayName diff --git a/Scenes/Login.gd b/Scenes/Login.gd index 9039e228..3b76dd3c 100644 --- a/Scenes/Login.gd +++ b/Scenes/Login.gd @@ -93,7 +93,6 @@ func _on_logged_in(login_result: LoginResult): _hide_progess() $LoggedIn.login_result = login_result - $LoggedIn.update() $LoggedIn.show() func _on_api_error(api_error_wrapper: ApiErrorWrapper): diff --git a/Scenes/Main.gd b/Scenes/Main.gd index 6be184b1..23294c1c 100644 --- a/Scenes/Main.gd +++ b/Scenes/Main.gd @@ -1,7 +1,26 @@ -extends HBoxContainer +extends Control + +func _ready(): + # determine whether godot-steam addon is enabled + if ClassDB.can_instantiate("Steam"): + %LoginWithSteam.disabled = true +# PlayFabSteam.connect("logged_in", _on_logged_in) # Enable, if using GodotSteam/PlayFabSteam (4.4.1+) + else: + print_debug("Steam is NOT installed") + %LoginWithSteam.visible = false + %LoginWithSteam.disconnect("pressed", _on_login_with_steam_pressed) + %StatusLabel.text = "Steam wasn't detected." func _on_Register_pressed(): SceneManager.goto_scene("res://Scenes/Register.tscn") func _on_Login_pressed(): SceneManager.goto_scene("res://Scenes/Login.tscn") + +func _on_login_with_steam_pressed(): + SceneManager.goto_scene("res://Scenes/LoggedIn.tscn") + +func _on_logged_in(playfab_id: String, steam_persona_name: String) -> void: + print_debug("PlayFab ID: %s\nSteam Persona: %s" % [ playfab_id, steam_persona_name ]) + %LoginWithSteam.disabled = false + %StatusLabel.text = "Steam initialized!\nPlayFab ID %s\nSteam Persona: \"%s\"" % [ playfab_id, steam_persona_name ] diff --git a/Scenes/Main.tscn b/Scenes/Main.tscn index fb2c1859..c17428b9 100644 --- a/Scenes/Main.tscn +++ b/Scenes/Main.tscn @@ -9,9 +9,25 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +script = ExtResource("1") + +[node name="StatusLabel" type="Label" parent="."] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -230.0 +offset_top = 199.0 +offset_right = 231.0 +offset_bottom = 271.0 +grow_horizontal = 2 +text = "Trying login with Steam..." +horizontal_alignment = 1 [node name="Main" type="HBoxContainer" parent="."] -layout_mode = 0 +layout_mode = 1 +anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 @@ -20,19 +36,29 @@ offset_left = -232.5 offset_top = -46.0 offset_right = 232.5 offset_bottom = 46.0 -script = ExtResource("1") +grow_horizontal = 2 +grow_vertical = 2 [node name="Register" type="Button" parent="Main"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Register" [node name="Login" type="Button" parent="Main"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Login" -[connection signal="pressed" from="Main/Register" to="Main" method="_on_Register_pressed"] -[connection signal="pressed" from="Main/Login" to="Main" method="_on_Login_pressed"] +[node name="LoginWithSteam" type="Button" parent="Main"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +text = "Steam Login" + +[connection signal="pressed" from="Main/Register" to="." method="_on_Register_pressed"] +[connection signal="pressed" from="Main/Login" to="." method="_on_Login_pressed"] +[connection signal="pressed" from="Main/LoginWithSteam" to="." method="_on_login_with_steam_pressed"] diff --git a/addons/godot-playfab/PlayFab.gd b/addons/godot-playfab/PlayFab.gd index 53719743..1ce76e70 100644 --- a/addons/godot-playfab/PlayFab.gd +++ b/addons/godot-playfab/PlayFab.gd @@ -9,6 +9,7 @@ signal registered(RegisterPlayFabUserResult) ## Emitted when the player logged in successfully ## @param login_result: LoginResult signal logged_in(login_result) +var _login_result: LoginResult enum AUTH_TYPE {SESSION_TICKET, ENTITY_TOKEN} @@ -28,6 +29,7 @@ func _ready(): func _on_logged_in(login_result: LoginResult): # Setting SessionTicket for subsequent client requests + _login_result = login_result PlayFabManager.client_config.session_ticket = login_result.SessionTicket PlayFabManager.client_config.master_player_account_id = login_result.PlayFabId PlayFabManager.client_config.entity_token = login_result.EntityToken @@ -192,3 +194,12 @@ func _add_auth_headers(additional_headers: Dictionary, auth_type) -> bool: push_error("auth_type \"" + auth_type + "\" is invalid") return true + +func is_logged_in(): + return _login_result != null + +func get_login_result(): + if (!is_logged_in()): + push_error("No use logged in with PlayFab") + + return _login_result diff --git a/addons/godot-playfab/PlayFabEditor.gd b/addons/godot-playfab/PlayFabEditor.gd index 8221fc2d..5b6bf36d 100644 --- a/addons/godot-playfab/PlayFabEditor.gd +++ b/addons/godot-playfab/PlayFabEditor.gd @@ -24,6 +24,8 @@ func _init(): func _enter_tree(): add_autoload_singleton("PlayFabManager", "res://addons/godot-playfab/PlayFabManager.gd") + if Engine.get_version_info().hex >= 0x040401: # load only if Godot 4.4.1 + add_autoload_singleton("PlayFabSteam", "res://addons/godot-playfab/PlayFabSteam.gd") main_panel_instance = MainPanel.instantiate() # Add the main panel to the editor's main viewport. @@ -33,6 +35,7 @@ func _enter_tree(): func _exit_tree(): + remove_autoload_singleton("PlayFabSteam") remove_autoload_singleton("PlayFabManager") if main_panel_instance: diff --git a/addons/godot-playfab/PlayFabSteam.gd b/addons/godot-playfab/PlayFabSteam.gd new file mode 100644 index 00000000..1e0cf954 --- /dev/null +++ b/addons/godot-playfab/PlayFabSteam.gd @@ -0,0 +1,125 @@ +extends Node + +const PRICE_REFRESH_INTERVAL: int = 3600 # Specifies, after how many seconds prices will be refreshed. + +var steam_auth_ticket : Dictionary +var steam_name: String = "" +var playfab_id: String = "" + +var inventory_items: Array = [] +var inventory_item_definitions: Array = [] + +var _refresh_prices_timer: Timer = Timer.new() + +signal logged_in(playfab_id, steam_persona_name) +signal inventory_updated(items: Array) + +func _init() -> void: + self.connect("logged_in", _update_player_inventory, CONNECT_ONE_SHOT) + if not ClassDB.can_instantiate("Steam"): + print_debug("Steam class is not available!") + return + + if not Steam.isSteamRunning(): + print_debug("Steam client is not running!") + return + + PlayFabManager.client.logged_in.connect(_on_logged_in) + PlayFabManager.client.api_error.connect(_on_api_error) + PlayFabManager.client.server_error.connect(_on_server_error) + Steam.get_auth_session_ticket_response.connect(_on_get_auth_sesssion_ticket) + Steam.get_ticket_for_web_api.connect(_on_get_auth_ticket_for_web_api_response) + + var result : Dictionary = Steam.steamInitEx(false) # Set to true if you want some local user's data + if result.status > 0: + print("Failure to initialize Steam with status %s" % result.status) + else: + create_auth_session_ticket() + #create_auth_ticket_for_web_api() #Use this line instead if you need Steam Auth Ticket for Web Api + +func _enter_tree() -> void: + add_child(_refresh_prices_timer) + _request_prices() + +func _process(_delta: float) -> void: + Steam.run_callbacks() + +func _exit_tree() -> void: + if steam_auth_ticket.size() > 0: + cancel_auth_ticket() + +func _on_logged_in(login_result: LoginResult) -> void: + print("PlayFab Login successful: %s" % login_result) + logged_in.emit(login_result.PlayFabId, Steam.getPersonaName()) + +func _on_api_error(error_wrapper: ApiErrorWrapper) -> void: + print("PlayFab API Error: %s" % error_wrapper.errorMessage) + +func _on_server_error(error_wrapper: ApiErrorWrapper) -> void: + print("PlayFab Server Error: %s" % error_wrapper.errorMessage) + +func login(ticket: String, is_auth_ticket_for_api: bool) -> void: + var combined_info_request_params = GetPlayerCombinedInfoRequestParams.new() + combined_info_request_params.show_all() + var player_profile_view_constraints = PlayerProfileViewConstraints.new() + combined_info_request_params.ProfileConstraints = player_profile_view_constraints + PlayFabManager.client.login_with_steam(ticket, is_auth_ticket_for_api, true, combined_info_request_params) + +func cancel_auth_ticket() -> void: + Steam.cancelAuthTicket(steam_auth_ticket.id) + +func create_auth_session_ticket() -> void: + steam_auth_ticket = Steam.getAuthSessionTicket() + +func create_auth_ticket_for_web_api() -> void: + Steam.getAuthTicketForWebApi("AzurePlayFab") + +func convert_auth_ticket() -> String: + var ticket: String = "" + for number in steam_auth_ticket.buffer: + ticket += "%02X" % number + return ticket + +func _on_get_auth_sesssion_ticket(auth_ticket_id: int, result: int) -> void: + print("Auth Session Ticket (%s) return with result %s" % [auth_ticket_id, result]) + if result == 1: + login(convert_auth_ticket(), false) + +func _on_get_auth_ticket_for_web_api_response(auth_ticket: int, result: int, ticket_size: int, ticket_buffer: Array) -> void: + print("Auth Ticket for Web API (%s) return with the result %s" % [auth_ticket, result]) + steam_auth_ticket.id = auth_ticket + steam_auth_ticket.buffer = ticket_buffer + steam_auth_ticket.size = ticket_size + if result == 1: + login(convert_auth_ticket(), true) + + +func _request_prices(): + print("Requesting Steam prices...") + Steam.requestPrices() + print("Prices requested.") + _refresh_prices_timer.start(PRICE_REFRESH_INTERVAL) + _refresh_prices_timer.connect("timeout", _request_prices, CONNECT_ONE_SHOT) + +func _on_inventory_definition_update(definitions: Array) -> void: + inventory_item_definitions = definitions + print("Loaded %s definitions." % inventory_item_definitions.size()) + +func _update_player_inventory(_playFabId, _steam_persona_name) -> void: + Steam.inventory_definition_update.connect(_on_inventory_definition_update) + Steam.loadItemDefinitions() + Steam.getAllItems() + + Steam.inventory_result_ready.connect(_on_inventory_result_ready) + +func _on_inventory_result_ready(_result: int, _inventory_handle: int): + inventory_items = Steam.getResultItems(Steam.inventory_handle) + inventory_updated.emit(inventory_items) + print("Items in inventory: %s" % inventory_items.size()) + + +func _grant_test_items() -> int: + var items: PackedInt64Array = [1, 2] + var quantities: PackedInt32Array = [2, 3] + var handler = Steam.generateItems(items, quantities) + return handler diff --git a/addons/godot-playfab/PlayFabSteam.gd.uid b/addons/godot-playfab/PlayFabSteam.gd.uid new file mode 100644 index 00000000..a0783146 --- /dev/null +++ b/addons/godot-playfab/PlayFabSteam.gd.uid @@ -0,0 +1 @@ +uid://bwjpctbep1gob diff --git a/addons/godot-playfab/docs/overview.md b/addons/godot-playfab/docs/overview.md new file mode 100644 index 00000000..2b153ee3 --- /dev/null +++ b/addons/godot-playfab/docs/overview.md @@ -0,0 +1,44 @@ +# Feature Overview + +`godot-playfab` is a Godot addon that provides easy access to the [PlayFab](https://playfab.com/) +Game Backend-as-a-Service (BaaS) platform for Godot Engine games/applications. + + + + + +## Authentication +`godot-playfab` supports multiple authentication methods to log in users: + +- **Anonymous Login**: Allows users to log in without any credentials. +- **Custom ID Login**: Users can log in using a custom identifier, with optional password. +- **Steam Login**: Integrates with Steam for user authentication. + +It also takes care of some behind the scenes fundamentals: +- **Session Management**: Manages session tokens and handles re-authentication as needed. +- **Signal-Based Callbacks**: Signals for handling login success and failure. +- **Example Implementations**: The example project includes implementations for each login method. + +## Events & Analytics +With the `PlayFabEvents` API, you can send telemetry and PlayStream events. +These events can be used in PlayFab's Data & Analytics features. + +Events can be sent in two ways: +- **Batched Send**: To save cost/requests, Events are batched and sent when a configured threshold is met or manually flushed. +- **Direct Write**: Events are sent immediately, suitable for urgent events, mainly used for PlayStream events. + +## Steam integration +godot-playfab has a built-in integration with [GodotSteam](https://godotsteam.com/). + +> ⚠️ Steam integration needs to be enabled in the example project, as it requires you to set up a Steam App ID and have the Steam client running. +> +> You can easily enable Steam login in your game by following the steps in the [Login with Steam](addons/godot-playfab/docs/Logins/login-steam.md) documentation. + + +## Example Project +If you clone the full repository, you get a full example project where you can find out how different features +are implemented. + +You can absolutely use the example project as a starting point for your own game! In fact, I encourage you to do so! + +Start with the default scene in `Scenes/Main.tscn` to see how to use `godot-playfab` in your game. diff --git a/addons/godotsteam/godotsteam.gdextension b/addons/godotsteam/godotsteam.gdextension new file mode 100644 index 00000000..5917bede --- /dev/null +++ b/addons/godotsteam/godotsteam.gdextension @@ -0,0 +1,22 @@ +[configuration] +entry_symbol = "godotsteam_init" +compatibility_minimum = "4.4" + +[libraries] +macos.debug = "res://addons/godotsteam/osx/libgodotsteam.macos.template_debug.framework" +macos.release = "res://addons/godotsteam/osx/libgodotsteam.macos.template_release.framework" +windows.debug.x86_64 = "res://addons/godotsteam/win64/libgodotsteam.windows.template_debug.x86_64.dll" +windows.debug.x86_32 = "res://addons/godotsteam/win32/libgodotsteam.windows.template_debug.x86_32.dll" +windows.release.x86_64 = "res://addons/godotsteam/win64/libgodotsteam.windows.template_release.x86_64.dll" +windows.release.x86_32 = "res://addons/godotsteam/win32/libgodotsteam.windows.template_release.x86_32.dll" +linux.debug.x86_64 = "res://addons/godotsteam/linux64/libgodotsteam.linux.template_debug.x86_64.so" +linux.debug.x86_32 = "res://addons/godotsteam/linux32/libgodotsteam.linux.template_debug.x86_32.so" +linux.release.x86_64 = "res://addons/godotsteam/linux64/libgodotsteam.linux.template_release.x86_64.so" +linux.release.x86_32 = "res://addons/godotsteam/linux32/libgodotsteam.linux.template_release.x86_32.so" + +[dependencies] +macos.universal = { "res://addons/godotsteam/osx/libsteam_api.dylib": "" } +windows.x86_64 = { "res://addons/godotsteam/win64/steam_api64.dll": "" } +windows.x86_32 = { "res://addons/godotsteam/win32/steam_api.dll": "" } +linux.x86_64 = { "res://addons/godotsteam/linux64/libsteam_api.so": "" } +linux.x86_32 = { "res://addons/godotsteam/linux32/libsteam_api.so": "" } diff --git a/addons/godotsteam/godotsteam.gdextension.uid b/addons/godotsteam/godotsteam.gdextension.uid new file mode 100644 index 00000000..e6a50943 --- /dev/null +++ b/addons/godotsteam/godotsteam.gdextension.uid @@ -0,0 +1 @@ +uid://bg8pn4laey8st diff --git a/addons/godotsteam/license.md b/addons/godotsteam/license.md new file mode 100644 index 00000000..ba21e7d7 --- /dev/null +++ b/addons/godotsteam/license.md @@ -0,0 +1,23 @@ +MIT License + +Copyright (c) 2015-Current | GP Garcia and Contributors + +View all contributors at https://godotsteam.com/contribute/contributors/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/addons/godotsteam/linux32/libgodotsteam.linux.template_debug.x86_32.so b/addons/godotsteam/linux32/libgodotsteam.linux.template_debug.x86_32.so new file mode 100644 index 00000000..6eb69230 Binary files /dev/null and b/addons/godotsteam/linux32/libgodotsteam.linux.template_debug.x86_32.so differ diff --git a/addons/godotsteam/linux32/libgodotsteam.linux.template_release.x86_32.so b/addons/godotsteam/linux32/libgodotsteam.linux.template_release.x86_32.so new file mode 100644 index 00000000..a252150f Binary files /dev/null and b/addons/godotsteam/linux32/libgodotsteam.linux.template_release.x86_32.so differ diff --git a/addons/godotsteam/linux32/libsteam_api.so b/addons/godotsteam/linux32/libsteam_api.so new file mode 100644 index 00000000..8783570d Binary files /dev/null and b/addons/godotsteam/linux32/libsteam_api.so differ diff --git a/addons/godotsteam/linux64/libgodotsteam.linux.template_debug.x86_64.so b/addons/godotsteam/linux64/libgodotsteam.linux.template_debug.x86_64.so new file mode 100644 index 00000000..0ed8ecb0 Binary files /dev/null and b/addons/godotsteam/linux64/libgodotsteam.linux.template_debug.x86_64.so differ diff --git a/addons/godotsteam/linux64/libgodotsteam.linux.template_release.x86_64.so b/addons/godotsteam/linux64/libgodotsteam.linux.template_release.x86_64.so new file mode 100644 index 00000000..10d16bae Binary files /dev/null and b/addons/godotsteam/linux64/libgodotsteam.linux.template_release.x86_64.so differ diff --git a/addons/godotsteam/linux64/libsteam_api.so b/addons/godotsteam/linux64/libsteam_api.so new file mode 100644 index 00000000..8783570d Binary files /dev/null and b/addons/godotsteam/linux64/libsteam_api.so differ diff --git a/addons/godotsteam/osx/libgodotsteam.macos.template_debug.framework/Resources/Info.plist b/addons/godotsteam/osx/libgodotsteam.macos.template_debug.framework/Resources/Info.plist new file mode 100644 index 00000000..99875d07 --- /dev/null +++ b/addons/godotsteam/osx/libgodotsteam.macos.template_debug.framework/Resources/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleExecutable + libgodotsteam.debug + CFBundleIdentifier + org.godotsteam.godotsteam + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + libgodotsteam.debug + CFBundlePackageType + FMWK + CFBundleShortVersionString + 4.16 + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 4.16 + LSMinimumSystemVersion + 10.12 + + \ No newline at end of file diff --git a/addons/godotsteam/osx/libgodotsteam.macos.template_debug.framework/libgodotsteam.macos.template_debug b/addons/godotsteam/osx/libgodotsteam.macos.template_debug.framework/libgodotsteam.macos.template_debug new file mode 100644 index 00000000..ea521665 Binary files /dev/null and b/addons/godotsteam/osx/libgodotsteam.macos.template_debug.framework/libgodotsteam.macos.template_debug differ diff --git a/addons/godotsteam/osx/libgodotsteam.macos.template_debug.framework/libsteam_api.dylib b/addons/godotsteam/osx/libgodotsteam.macos.template_debug.framework/libsteam_api.dylib new file mode 100644 index 00000000..c493b2b5 Binary files /dev/null and b/addons/godotsteam/osx/libgodotsteam.macos.template_debug.framework/libsteam_api.dylib differ diff --git a/addons/godotsteam/osx/libgodotsteam.macos.template_release.framework/Resources/Info.plist b/addons/godotsteam/osx/libgodotsteam.macos.template_release.framework/Resources/Info.plist new file mode 100644 index 00000000..622304a8 --- /dev/null +++ b/addons/godotsteam/osx/libgodotsteam.macos.template_release.framework/Resources/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleExecutable + libgodotsteam + CFBundleIdentifier + org.godotsteam.godotsteam + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + libgodotsteam + CFBundlePackageType + FMWK + CFBundleShortVersionString + 4.16 + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 4.16 + LSMinimumSystemVersion + 10.12 + + \ No newline at end of file diff --git a/addons/godotsteam/osx/libgodotsteam.macos.template_release.framework/libgodotsteam.macos.template_release b/addons/godotsteam/osx/libgodotsteam.macos.template_release.framework/libgodotsteam.macos.template_release new file mode 100644 index 00000000..539aa5c5 Binary files /dev/null and b/addons/godotsteam/osx/libgodotsteam.macos.template_release.framework/libgodotsteam.macos.template_release differ diff --git a/addons/godotsteam/osx/libgodotsteam.macos.template_release.framework/libsteam_api.dylib b/addons/godotsteam/osx/libgodotsteam.macos.template_release.framework/libsteam_api.dylib new file mode 100644 index 00000000..c493b2b5 Binary files /dev/null and b/addons/godotsteam/osx/libgodotsteam.macos.template_release.framework/libsteam_api.dylib differ diff --git a/addons/godotsteam/osx/libsteam_api.dylib b/addons/godotsteam/osx/libsteam_api.dylib new file mode 100644 index 00000000..c493b2b5 Binary files /dev/null and b/addons/godotsteam/osx/libsteam_api.dylib differ diff --git a/addons/godotsteam/win32/libgodotsteam.windows.template_debug.x86_32.dll b/addons/godotsteam/win32/libgodotsteam.windows.template_debug.x86_32.dll new file mode 100644 index 00000000..2c36b175 Binary files /dev/null and b/addons/godotsteam/win32/libgodotsteam.windows.template_debug.x86_32.dll differ diff --git a/addons/godotsteam/win32/libgodotsteam.windows.template_release.x86_32.dll b/addons/godotsteam/win32/libgodotsteam.windows.template_release.x86_32.dll new file mode 100644 index 00000000..c8223602 Binary files /dev/null and b/addons/godotsteam/win32/libgodotsteam.windows.template_release.x86_32.dll differ diff --git a/addons/godotsteam/win32/steam_api.dll b/addons/godotsteam/win32/steam_api.dll new file mode 100644 index 00000000..2372ab1f Binary files /dev/null and b/addons/godotsteam/win32/steam_api.dll differ diff --git a/addons/godotsteam/win64/libgodotsteam.windows.template_debug.x86_64.dll b/addons/godotsteam/win64/libgodotsteam.windows.template_debug.x86_64.dll new file mode 100644 index 00000000..386af2d2 Binary files /dev/null and b/addons/godotsteam/win64/libgodotsteam.windows.template_debug.x86_64.dll differ diff --git a/addons/godotsteam/win64/libgodotsteam.windows.template_release.x86_64.dll b/addons/godotsteam/win64/libgodotsteam.windows.template_release.x86_64.dll new file mode 100644 index 00000000..c375f382 Binary files /dev/null and b/addons/godotsteam/win64/libgodotsteam.windows.template_release.x86_64.dll differ diff --git a/addons/godotsteam/win64/steam_api64.dll b/addons/godotsteam/win64/steam_api64.dll new file mode 100644 index 00000000..6d118254 Binary files /dev/null and b/addons/godotsteam/win64/steam_api64.dll differ diff --git a/addons/godotsteam/win64/~libgodotsteam.windows.template_debug.x86_64.dll~RF17775b1e.TMP b/addons/godotsteam/win64/~libgodotsteam.windows.template_debug.x86_64.dll~RF17775b1e.TMP new file mode 100644 index 00000000..386af2d2 Binary files /dev/null and b/addons/godotsteam/win64/~libgodotsteam.windows.template_debug.x86_64.dll~RF17775b1e.TMP differ diff --git a/project.godot b/project.godot index 332cb88a..5c6fe517 100644 --- a/project.godot +++ b/project.godot @@ -20,6 +20,7 @@ config/icon="res://addons/godot-playfab/icon.png" SceneManager="*res://Scripts/SceneManager.gd" PlayFabManager="*res://addons/godot-playfab/PlayFabManager.gd" +PlayFabSteam="*res://addons/godot-playfab/PlayFabSteam.gd" [editor_plugins] @@ -53,3 +54,9 @@ title_id="544D3" [rendering] environment/default_environment="res://default_env.tres" + +[steam] + +initialization/app_id=0 +initialization/initialize_on_startup=false +initialization/embed_callbacks=false