Steam integration working

This commit is contained in:
Chris Bell 2024-12-09 17:41:07 -06:00
parent b89eb1b74c
commit 4711a7c5e3
3 changed files with 81 additions and 4 deletions

View File

@ -1,11 +1,39 @@
extends Node
var avatar_texture: ImageTexture
@export var ui_avatar: TextureRect
@export var ui_username: Label
func _ready() -> void:
var init_result = Steam.steamInit(true, 480)
if init_result["status"] <= 1: # Check if initialization was successful
GameConsole.print_line("Steam is running!")
var steamId = Steam.getSteamID()
GameConsole.print_line("Steam ID: " + str(Steam.getFriendPersonaName(steamId)))
_initialize()
else:
GameConsole.log_error("Steam failed to initialize: " + str(init_result))
func _initialize() -> void:
var steamId = Steam.getSteamID()
GameConsole.print_line("Steam ID: " + str(Steam.getFriendPersonaName(steamId)))
ui_username.text = "User: " + str(Steam.getFriendPersonaName(steamId))
Steam.getPlayerAvatar()
Steam.avatar_loaded.connect(_on_avatar_loaded)
func _on_avatar_loaded(user_id: int, avatar_size: int, avatar_buffer: PackedByteArray) -> void:
GameConsole.print_line("Avatar loaded!")
var avatar_image: Image = Image.create_from_data(avatar_size, avatar_size, false, Image.FORMAT_RGBA8, avatar_buffer)
if avatar_size > 128:
avatar_image.resize(128, 128, Image.INTERPOLATE_LANCZOS)
if avatar_image != null:
GameConsole.print_line("Avatar image created for user: " + str(user_id))
avatar_texture = ImageTexture.create_from_image(avatar_image)
ui_avatar.texture = avatar_texture
else:
GameConsole.log_error("Failed to create avatar image!")

View File

@ -1,6 +1,51 @@
[gd_scene load_steps=2 format=3 uid="uid://huq7dxk5yvjk"]
[gd_scene load_steps=3 format=3 uid="uid://huq7dxk5yvjk"]
[ext_resource type="Script" path="res://assets/core/networking/NetworkManager.gd" id="1_dcack"]
[ext_resource type="Texture2D" uid="uid://c1y4hdhjwuu53" path="res://assets/icon.png" id="2_wjvcl"]
[node name="Main" type="Node"]
[node name="NetworkManager" type="Node" parent="." node_paths=PackedStringArray("ui_avatar", "ui_username")]
script = ExtResource("1_dcack")
ui_avatar = NodePath("../Canvas/SteamUI/VBoxContainer/Avatar")
ui_username = NodePath("../Canvas/SteamUI/VBoxContainer/Username")
[node name="Canvas" type="CanvasLayer" parent="."]
[node name="SteamUI" type="Control" parent="Canvas"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="VBoxContainer" type="VBoxContainer" parent="Canvas/SteamUI"]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -64.0
offset_top = -77.5
offset_right = 64.0
offset_bottom = 77.5
grow_horizontal = 2
grow_vertical = 2
[node name="Avatar" type="TextureRect" parent="Canvas/SteamUI/VBoxContainer"]
custom_minimum_size = Vector2(128, 128)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 2
texture = ExtResource("2_wjvcl")
expand_mode = 1
[node name="Username" type="Label" parent="Canvas/SteamUI/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 0
text = "User: "

View File

@ -28,6 +28,10 @@ file_logging/enable_file_logging=true
window/size/viewport_width=1280
window/size/viewport_height=720
[dotnet]
project/assembly_name="Steamforged Skies"
[editor_plugins]
enabled=PackedStringArray("res://addons/ingameconsole/plugin.cfg")