Created SteamAppPanel

Create SteamAppPanel to display information about Steam Games by Steam
ID.
This commit is contained in:
Mario Steele 2026-02-26 22:59:26 -06:00
parent 8735f6c287
commit aac2758ec0
3 changed files with 533 additions and 0 deletions

View file

@ -0,0 +1,236 @@
@tool
extends PanelContainer
class_name SteamAppPanel
#region Test Apps
#region Constants
enum SteamGames{
BLOOD_AND_MEAD,
RIDICULOUS_SHIPPING,
MEMORI,
BLOCK_SHOP,
FIELD_OF_HEROES,
ZOOIKA,
KOOK,
ALPINE_LAKE,
REPLICAT,
CARBRIX,
KERKER,
XXX_CRAZYMIKE_XXX,
MAGNET_JACK,
ROGUE_BLIGHT,
RISE_OF_PIRACY,
MEGABAT,
WARLOCKS_GANTLET,
ARTIFICIAL,
OCEAN_MIRROR,
SPACE_SCAVANGER2,
SCOPECREEP,
THE_UNWANTED_WAR,
HYPERONS,
EPIC_HERO_GAME,
CYBER_LOUNGE_TYCOON,
OLD_BONES,
GRIME_AND_GOLD,
LONG_GONE,
BOMB_AROUND,
NO_SIGNAL,
HEMOMANCER,
SOPHIAS_PATH,
WAKE_CUP,
PROVIDENCE,
TORSO_TENNIS,
STICK_AND_STACK,
FALINERE_FANTASY,
MR_FARMBOY,
ECHO_SHREDD,
}
const STEAM_APP_IDS: Dictionary[SteamGames, int] = {
SteamGames.BLOOD_AND_MEAD: 1081830,
SteamGames.RIDICULOUS_SHIPPING: 2649940,
SteamGames.MEMORI: 1712700,
SteamGames.BLOCK_SHOP: 2731590,
SteamGames.FIELD_OF_HEROES: 1267290,
SteamGames.ZOOIKA: 2994730,
SteamGames.KOOK: 2329690,
SteamGames.ALPINE_LAKE: 2341620,
SteamGames.REPLICAT: 3509430,
SteamGames.CARBRIX: 3712430,
SteamGames.KERKER: 2645100,
SteamGames.XXX_CRAZYMIKE_XXX: 2468680,
SteamGames.MAGNET_JACK: 1491800,
SteamGames.ROGUE_BLIGHT: 1890310,
SteamGames.RISE_OF_PIRACY: 1400660,
SteamGames.MEGABAT: 2429230,
SteamGames.WARLOCKS_GANTLET: 2391180,
SteamGames.ARTIFICIAL: 904510,
SteamGames.OCEAN_MIRROR: 2725640,
SteamGames.SPACE_SCAVANGER2: 1962010,
SteamGames.SCOPECREEP: 3595710,
SteamGames.THE_UNWANTED_WAR: 2487370,
SteamGames.HYPERONS: 2479500,
SteamGames.EPIC_HERO_GAME: 2081720,
SteamGames.CYBER_LOUNGE_TYCOON: 1852150,
SteamGames.OLD_BONES: 3358260,
SteamGames.GRIME_AND_GOLD: 3165090,
SteamGames.LONG_GONE: 1977610,
SteamGames.BOMB_AROUND: 3539690,
SteamGames.NO_SIGNAL: 2840590,
SteamGames.HEMOMANCER: 3690780,
SteamGames.SOPHIAS_PATH: 3197650,
SteamGames.WAKE_CUP: 2881430,
SteamGames.PROVIDENCE: 3643600,
SteamGames.TORSO_TENNIS: 2824780,
SteamGames.STICK_AND_STACK: 3655080,
SteamGames.FALINERE_FANTASY: 1976930,
SteamGames.MR_FARMBOY: 2795090,
SteamGames.ECHO_SHREDD: 3232000,
}
#endregion
@warning_ignore("unused_private_class_variable")
@export_tool_button("Search", "Button") var _search = _tool_search
@export var tool_app_id: int
@export var selected_steam_game: SteamGames:
set(val):
selected_steam_game = val
if is_node_ready(): get_app_info(STEAM_APP_IDS[selected_steam_game])
@export var test_data: SteamAppData
var _save_data: SteamAppData
var _save_bg_texture: ImageTexture
var _save_capsule_texture: ImageTexture
#endregion
static var _log: TwitchLogger = TwitchLogger.new(&"SteamAppPanel")
var data: SteamAppData:
set(val):
data = val
if is_node_ready():
%VisitPage.disabled = data == null
func _ready() -> void:
%VisitPage.pressed.connect(_on_btn_visit_page_pressed)
%ClosePanel.pressed.connect(_on_btn_close_png_pressed)
if Engine.is_editor_hint():
if selected_steam_game != 0:
get_app_info(STEAM_APP_IDS[selected_steam_game])
return
clear()
func _tool_search() -> void:
if !Engine.is_editor_hint():
return
if tool_app_id:
get_app_info(tool_app_id)
func get_app_info(app_id: int) -> SteamAppData:
var _data: SteamAppData = await %SteamService.get_steam_app_data(app_id)
if not _data:
return
display_app_info(_data)
if Engine.is_editor_hint():
test_data = _data
return _data
func display_app_info(_data: SteamAppData) -> void:
data = _data
%AppSearch.text = str(data.steam_app_id)
%GameName.text = data.name
%AuthorName.text = "[font_size=20][i]by [b]%s[/b][/i][/font_size]" % data.developers.front()
%CapsuleImage.texture = await load_texture_from_url(data.header_image)
if !data.screenshots_thumbs.is_empty():
%Background.texture = await load_texture_from_url(data.screenshots_thumbs.front())
%ReleaseDate.text = data.release_date.date
%lb_price_desc.visible = !data.is_free
%h_price.visible = data.price_final_formatted != "" or data.is_free
if %h_price.visible:
if data.is_free:
%GamePrice.text = "Free to Play!"
else:
%GamePrice.text = data.price_final_formatted
if data.price_discount_percent != 0:
%GamePrice.text += "(%d%% discount!)" % data.price_discount_percent
%Description.text = data.short_description
func clear() -> void:
data = null
%AppSearch.text = ""
%GameName.text = ""
%AuthorName.text = ""
%CapsuleImage.texture = null
%Background.texture = null
%ReleaseDate.text = ""
%GamePrice.text = ""
%h_price.hide()
%Description.text = ""
pass
func load_texture_from_url(url: String) -> ImageTexture:
var http := HTTPRequest.new()
add_child(http)
var url_no_query: String = url.split("?")[0]
var file_type = url_no_query.get_extension()
if not file_type in ["png", "jpeg", "jpg", "bmp", "webp", "svg"]:
file_type = "webp"
var _err = http.request(url)
if _err != OK:
print("_err != OK")
return
var result: Array = await http.request_completed
var _result: int = result[0]
var response_code: int = result[1]
var _headers: PackedStringArray = result[2]
var buffer: PackedByteArray = result[3]
if response_code != HTTPClient.RESPONSE_OK:
print("response_code != HTTPClient.RESPONSE_OK")
return
var tex_image := Image.new()
match file_type:
"png": tex_image.load_png_from_buffer(buffer)
"jpeg", "jpg": tex_image.load_jpg_from_buffer(buffer)
"bmp": tex_image.load_bmp_from_buffer(buffer)
"webp": tex_image.load_webp_from_buffer(buffer)
"svg": tex_image.load_svg_from_buffer(buffer)
_:
_log.e("%s format not recognized." % file_type)
return null
var tex = ImageTexture.create_from_image(tex_image)
http.queue_free()
return tex
func _on_btn_close_png_pressed() -> void:
hide()
func _on_btn_visit_page_pressed() -> void:
if data:
OS.shell_open(data.short_url)
func _enter_tree() -> void:
if not Engine.is_editor_hint():
return
func _notification(what: int) -> void:
if not Engine.is_editor_hint(): return
match what:
NOTIFICATION_EDITOR_PRE_SAVE:
_save_data = data
#_save_capsule_texture = %CapsuleImage.texture
#_save_bg_texture = %Background.texture
#test_data = null
clear()
NOTIFICATION_EDITOR_POST_SAVE:
test_data = _save_data
display_app_info.call_deferred(_save_data)
#%CapsuleImage.texture = _save_capsule_texture
#%Background.texture = _save_bg_texture
#_save_capsule_texture = null
#_save_bg_texture = null

View file

@ -0,0 +1 @@
uid://q1gm8286nbuf

View file

@ -0,0 +1,296 @@
[gd_scene format=3 uid="uid://685pgmw1cdw3"]
[ext_resource type="Script" uid="uid://chgufd1youdel" path="res://lib/games_info/steam_service.gd" id="1_uovli"]
[ext_resource type="Script" uid="uid://q1gm8286nbuf" path="res://UI/Controls/steam_app_panel.gd" id="1_vlxh5"]
[ext_resource type="Texture2D" uid="uid://bjrfknk2rkyuy" path="res://UI/assets/font_awesome/steam.svg" id="2_pws53"]
[ext_resource type="Script" uid="uid://bllsv2cy6komw" path="res://lib/models/steam_app_data.gd" id="2_wmir7"]
[ext_resource type="Texture2D" uid="uid://4juherhkw8hp" path="res://addons/script_splitter/assets/Close.svg" id="3_yygdx"]
[ext_resource type="FontFile" uid="uid://cx1a4aqqxhsrn" path="res://UI/assets/neon-wave-theme/polentical_neon/Polentical Neon Italic.ttf" id="4_43mqw"]
[ext_resource type="FontFile" uid="uid://b6u8lwedqawa7" path="res://UI/assets/neon-wave-theme/polentical_neon/Polentical Neon Bold italic.ttf" id="5_vlxh5"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_yygdx"]
content_margin_left = 8.0
content_margin_top = 8.0
content_margin_right = 8.0
content_margin_bottom = 8.0
bg_color = Color(0.1, 0.1, 0.1, 0.6)
corner_radius_top_left = 3
corner_radius_top_right = 3
corner_radius_bottom_right = 3
corner_radius_bottom_left = 3
corner_detail = 5
[sub_resource type="Resource" id="Resource_wmir7"]
script = ExtResource("2_wmir7")
steam_app_id = 3712430
type = "game"
name = "Carbrix"
short_description = "Carbrix is a sci-fi inspired multiplayer vehicle-building sandbox game where creativity meets action. Design and construct anything you can imagine—from sleek cars and powerful trucks to futuristic planes, bikes, and rockets."
detailed_description = "<p class=\"bb_paragraph\" ></p><p class=\"bb_paragraph\" style=\"text-align: center\"><span class=\"bb_img_ctn\"><img class=\"bb_img\" src=\"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/extras/ddedd3e2cbbbda0b12059974c2562381.avif?t=1771564874\" width=545 height=124 /></span></p><p class=\"bb_paragraph\" style=\"text-align: center\"></p><p class=\"bb_paragraph\" style=\"text-align: center\"><strong>Carbrix is a sci-fi inspired multiplayer vehicle-building sandbox game</strong> where creativity meets action. Design and construct anything you can imagine, from sleek cars and powerful trucks to futuristic planes, bikes, and rockets.</p><p class=\"bb_paragraph\" style=\"text-align: center\">Play solo or team up with friends in multiplayer to share your creations, race, battle, or simply explore endless possibilities. With intuitive building tools and a physics-driven world, Carbrix offers a playground of imagination, competition, and fun.</p><p class=\"bb_paragraph\" ></p><p class=\"bb_paragraph\" ></p><p class=\"bb_paragraph\" ></p><p class=\"bb_paragraph\" style=\"text-align: center\"><span class=\"bb_img_ctn\"><img class=\"bb_img\" src=\"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/extras/62d477ed4a8d0610fe41ebcfe4d80a5c.avif?t=1771564874\" width=592 height=124 /></span></p><p class=\"bb_paragraph\" style=\"text-align: center\">With <strong>Carbrix</strong>, you can build cars, trucks, planes, bikes—and so much more!</p><p class=\"bb_paragraph\" style=\"text-align: center\">Thanks to the intuitive building system, you can <strong>build, test, and drive</strong> with ease.</p><p class=\"bb_paragraph\" ></p><p class=\"bb_paragraph\" ></p><h2 class=\"bb_tag\" style=\"text-align: center\"><span class=\"bb_img_ctn\"><img class=\"bb_img\" src=\"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/extras/8c98159aaf423437bda13df2b30a2e5e.avif?t=1771564874\" width=905 height=121 /></span></h2><p class=\"bb_paragraph\" style=\"text-align: center\"><span class=\"bb_img_ctn\"><video class=\"bb_img\" autoplay muted loop playsinline crossorigin=\"anonymous\" poster=\"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/extras/3babe6402e31c20319d567a0821a29c3.poster.avif?t=1771564874\" width=640 height=360 ><source src=\"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/extras/3babe6402e31c20319d567a0821a29c3.webm?t=1771564874\" type=\"video/webm; codecs=vp9\"></video></span></p><p class=\"bb_paragraph\" style=\"text-align: center\">Looking for something to sink your teeth into?</p><p class=\"bb_paragraph\" style=\"text-align: center\">With the built-in destruction system, worry no more</p><p class=\"bb_paragraph\" style=\"text-align: center\">Create combat-oriented vehicles and battle your friends!</p><p class=\"bb_paragraph\" ></p><h2 class=\"bb_tag\" style=\"text-align: center\"><span class=\"bb_img_ctn\"><img class=\"bb_img\" src=\"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/extras/b54bb17deb785da3089c5b644e3f91ab.avif?t=1771564874\" width=923 height=121 /></span></h2><p class=\"bb_paragraph\" style=\"text-align: center\"><strong>With multiplayer, the fun never ends!</strong><br>Team up with your friends to build together—or challenge them in head-to-head battles.</p><p class=\"bb_paragraph\" style=\"text-align: center\">Take part in thrilling races, compete in creative build contests,<br>or just mess around and see who can come up with the wildest inventions.</p><p class=\"bb_paragraph\" style=\"text-align: center\">With so many ways to play, theres always something new to try!</p><p class=\"bb_paragraph\" ></p><p class=\"bb_paragraph\" ></p><p class=\"bb_paragraph\" ></p>"
header_image = "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/a18c9a286445c8553a4eac10ba42df6b96ce63ed/header.jpg?t=1771564874"
capsule_image = "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/0e3354ecdcc92437b51dcc8a7ce5aec3c956d6b8/capsule_231x87.jpg?t=1771564874"
capsule_imagev5 = "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/0e3354ecdcc92437b51dcc8a7ce5aec3c956d6b8/capsule_184x69.jpg?t=1771564874"
developers = Array[String](["Redston4D"])
publishers = Array[String](["Redston4D"])
platforms = {
"linux": true,
"mac": false,
"windows": true
}
genres = Array[Dictionary]([{
"description": "Action",
"id": "1"
}, {
"description": "Adventure",
"id": "25"
}, {
"description": "Casual",
"id": "4"
}, {
"description": "Indie",
"id": "23"
}, {
"description": "Racing",
"id": "9"
}, {
"description": "Simulation",
"id": "28"
}])
release_date = {
"coming_soon": true,
"date": "Coming soon"
}
screenshots_full = Array[String](["https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/4a0c3b9405921fd84ee530e87c4bb49e5bac47d5/ss_4a0c3b9405921fd84ee530e87c4bb49e5bac47d5.1920x1080.jpg?t=1771564874", "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/c3bfb9c95fafd7e2e42bf22b2e1a6324202ff3b3/ss_c3bfb9c95fafd7e2e42bf22b2e1a6324202ff3b3.1920x1080.jpg?t=1771564874", "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/41a0157dabd641a59f561befa2d36687405f906c/ss_41a0157dabd641a59f561befa2d36687405f906c.1920x1080.jpg?t=1771564874", "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/d6440c8c03850fa478c8c845561c6729bf69b981/ss_d6440c8c03850fa478c8c845561c6729bf69b981.1920x1080.jpg?t=1771564874", "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/8c8af6ab67b663d1860e5ebdfe3943eebe85e222/ss_8c8af6ab67b663d1860e5ebdfe3943eebe85e222.1920x1080.jpg?t=1771564874", "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/7ebb66440d8eef2e94a818d95f0805f89ca881d3/ss_7ebb66440d8eef2e94a818d95f0805f89ca881d3.1920x1080.jpg?t=1771564874"])
screenshots_thumbs = Array[String](["https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/4a0c3b9405921fd84ee530e87c4bb49e5bac47d5/ss_4a0c3b9405921fd84ee530e87c4bb49e5bac47d5.600x338.jpg?t=1771564874", "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/c3bfb9c95fafd7e2e42bf22b2e1a6324202ff3b3/ss_c3bfb9c95fafd7e2e42bf22b2e1a6324202ff3b3.600x338.jpg?t=1771564874", "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/41a0157dabd641a59f561befa2d36687405f906c/ss_41a0157dabd641a59f561befa2d36687405f906c.600x338.jpg?t=1771564874", "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/d6440c8c03850fa478c8c845561c6729bf69b981/ss_d6440c8c03850fa478c8c845561c6729bf69b981.600x338.jpg?t=1771564874", "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/8c8af6ab67b663d1860e5ebdfe3943eebe85e222/ss_8c8af6ab67b663d1860e5ebdfe3943eebe85e222.600x338.jpg?t=1771564874", "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/3712430/7ebb66440d8eef2e94a818d95f0805f89ca881d3/ss_7ebb66440d8eef2e94a818d95f0805f89ca881d3.600x338.jpg?t=1771564874"])
categories = Array[Dictionary]([{
"description": "Single-player",
"id": 2.0
}, {
"description": "Multi-player",
"id": 1.0
}, {
"description": "PvP",
"id": 49.0
}, {
"description": "Online PvP",
"id": 36.0
}, {
"description": "Co-op",
"id": 9.0
}, {
"description": "Online Co-op",
"id": 38.0
}, {
"description": "Steam Achievements",
"id": 22.0
}, {
"description": "Steam Workshop",
"id": 30.0
}, {
"description": "Custom Volume Controls",
"id": 68.0
}, {
"description": "Adjustable Difficulty",
"id": 78.0
}, {
"description": "Playable without Timed Input",
"id": 74.0
}, {
"description": "Save Anytime",
"id": 79.0
}, {
"description": "Stereo Sound",
"id": 69.0
}, {
"description": "Surround Sound",
"id": 70.0
}, {
"description": "Partial Controller Support",
"id": 18.0
}, {
"description": "Family Sharing",
"id": 62.0
}])
pc_requirements = "<strong>Minimum:</strong><br><ul class=\"bb_ul\"><li>Requires a 64-bit processor and operating system<br></li><li><strong>OS *:</strong> Windows 7 +<br></li><li><strong>Processor:</strong> Intel Core i5-4670k<br></li><li><strong>Memory:</strong> 8 GB RAM<br></li><li><strong>Graphics:</strong> Intel HD 4600 Graphics<br></li><li><strong>DirectX:</strong> Version 12<br></li><li><strong>Storage:</strong> 1 GB available space<br></li><li><strong>Additional Notes:</strong> Please make sure your GraphicsCard has vulkan</li></ul>"
mac_requirements = "{ \"minimum\": \"<strong>Minimum:</strong><br><ul class=\\\"bb_ul\\\"></ul>\", \"recommended\": \"<strong>Recommended:</strong><br><ul class=\\\"bb_ul\\\"></ul>\" }"
linux_requirements = "{ \"minimum\": \"<strong>Minimum:</strong><br><ul class=\\\"bb_ul\\\"><li><strong>Processor:</strong> Intel Core i5-4670k<br></li><li><strong>Memory:</strong> 8 GB RAM<br></li><li><strong>Graphics:</strong> Please make sure your GraphicsCard has vulkan<br></li><li><strong>Storage:</strong> 1 GB available space</li></ul>\", \"recommended\": \"<strong>Recommended:</strong><br><ul class=\\\"bb_ul\\\"><li><strong>Processor:</strong> Intel Core i5-8500<br></li><li><strong>Memory:</strong> 16 GB RAM<br></li><li><strong>Graphics:</strong> Please make sure your GraphicsCard has vulkan<br></li><li><strong>Storage:</strong> 1 GB available space</li></ul>\" }"
support_email = "CarbrixGame@gmail.com"
background_image = "https://store.akamai.steamstatic.com/images/storepagebackground/app/3712430?t=1771564874"
background_image_raw = "https://store.akamai.steamstatic.com/images/storepagebackground/app/3712430?t=1771564874"
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_pws53"]
content_margin_left = 8.0
content_margin_top = 8.0
content_margin_right = 8.0
content_margin_bottom = 8.0
bg_color = Color(0.1, 0.1, 0.1, 0.6)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.6215238, 0.6215239, 0.62152356, 1)
border_blend = true
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[sub_resource type="LabelSettings" id="LabelSettings_43mqw"]
font_size = 24
[sub_resource type="LabelSettings" id="LabelSettings_wmir7"]
font = ExtResource("4_43mqw")
font_size = 20
[sub_resource type="LabelSettings" id="LabelSettings_312dj"]
font = ExtResource("5_vlxh5")
font_size = 20
[node name="SteamAppPanel" type="PanelContainer" unique_id=597550935]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_right = -1304.0
offset_bottom = -220.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_yygdx")
script = ExtResource("1_vlxh5")
selected_steam_game = 9
test_data = SubResource("Resource_wmir7")
[node name="SteamService" type="Node" parent="." unique_id=1253608490]
unique_name_in_owner = true
script = ExtResource("1_uovli")
metadata/_custom_type_script = "uid://chgufd1youdel"
[node name="Background" type="TextureRect" parent="." unique_id=2131684228]
unique_name_in_owner = true
layout_mode = 2
[node name="v" type="VBoxContainer" parent="." unique_id=711622106]
layout_mode = 2
[node name="m" type="MarginContainer" parent="v" unique_id=326930510]
layout_mode = 2
[node name="h" type="HBoxContainer" parent="v/m" unique_id=503322652]
layout_mode = 2
alignment = 1
[node name="Icon" type="TextureRect" parent="v/m/h" unique_id=637511916]
custom_minimum_size = Vector2(24, 24)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
texture = ExtResource("2_pws53")
expand_mode = 1
stretch_mode = 5
[node name="Title" type="Label" parent="v/m/h" unique_id=1565364238]
layout_mode = 2
text = "Steam App Info"
[node name="ClosePanel" type="Button" parent="v/m" unique_id=1693377160]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 8
size_flags_vertical = 4
icon = ExtResource("3_yygdx")
icon_alignment = 1
[node name="hsep" type="HSeparator" parent="v" unique_id=110475068]
layout_mode = 2
[node name="h" type="HBoxContainer" parent="v" unique_id=1010103611]
layout_mode = 2
[node name="Label" type="Label" parent="v/h" unique_id=908847968]
layout_mode = 2
text = "App ID"
[node name="AppSearch" type="LineEdit" parent="v/h" unique_id=817183379]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
[node name="info" type="PanelContainer" parent="v" unique_id=944205836]
layout_mode = 2
size_flags_vertical = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_pws53")
[node name="sc" type="ScrollContainer" parent="v/info" unique_id=783796096]
layout_mode = 2
[node name="v" type="VBoxContainer" parent="v/info/sc" unique_id=315401709]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="GameName" type="Label" parent="v/info/sc/v" unique_id=1985979119]
unique_name_in_owner = true
layout_mode = 2
label_settings = SubResource("LabelSettings_43mqw")
horizontal_alignment = 1
text_overrun_behavior = 3
[node name="AuthorName" type="RichTextLabel" parent="v/info/sc/v" unique_id=2070779365]
unique_name_in_owner = true
layout_mode = 2
bbcode_enabled = true
fit_content = true
scroll_active = false
autowrap_mode = 0
horizontal_alignment = 1
vertical_alignment = 1
[node name="CapsuleImage" type="TextureRect" parent="v/info/sc/v" unique_id=1453640911]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="hr" type="HBoxContainer" parent="v/info/sc/v" unique_id=1399335643]
layout_mode = 2
alignment = 2
[node name="lb" type="Label" parent="v/info/sc/v/hr" unique_id=578554525]
layout_mode = 2
text = "Release Date:"
label_settings = SubResource("LabelSettings_wmir7")
[node name="ReleaseDate" type="Label" parent="v/info/sc/v/hr" unique_id=156600009]
unique_name_in_owner = true
layout_mode = 2
label_settings = SubResource("LabelSettings_312dj")
[node name="h_price" type="HBoxContainer" parent="v/info/sc/v" unique_id=1445934632]
unique_name_in_owner = true
visible = false
layout_mode = 2
alignment = 2
[node name="lb_price_desc" type="Label" parent="v/info/sc/v/h_price" unique_id=1941918091]
unique_name_in_owner = true
layout_mode = 2
text = "Price:"
label_settings = SubResource("LabelSettings_wmir7")
[node name="GamePrice" type="Label" parent="v/info/sc/v/h_price" unique_id=2076721537]
unique_name_in_owner = true
layout_mode = 2
label_settings = SubResource("LabelSettings_312dj")
[node name="hsep" type="HSeparator" parent="v/info/sc/v" unique_id=292231258]
layout_mode = 2
[node name="Description" type="RichTextLabel" parent="v/info/sc/v" unique_id=771650243]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
bbcode_enabled = true
[node name="VisitPage" type="Button" parent="v" unique_id=263478236]
unique_name_in_owner = true
layout_mode = 2
disabled = true
text = "Visit Steam Page"