diff --git a/cmd/gox/template/project/.godot/editor/UIAsk.tscn-editstate-ed8eede60fb1eb872ed9ab97275dcb66.cfg b/cmd/gox/template/project/.godot/editor/UIAsk.tscn-editstate-ed8eede60fb1eb872ed9ab97275dcb66.cfg new file mode 100644 index 00000000..9e255224 --- /dev/null +++ b/cmd/gox/template/project/.godot/editor/UIAsk.tscn-editstate-ed8eede60fb1eb872ed9ab97275dcb66.cfg @@ -0,0 +1,175 @@ +[editor_states] + +Anim={ +"visible": false +} +2D={ +"grid_offset": Vector2(0, 0), +"grid_snap_active": false, +"grid_step": Vector2(8, 8), +"grid_visibility": 1, +"ofs": Vector2(-102.732, -113.023), +"primary_grid_step": Vector2i(8, 8), +"show_edit_locks": true, +"show_guides": true, +"show_helpers": false, +"show_origin": true, +"show_rulers": true, +"show_transformation_gizmos": true, +"show_viewport": true, +"show_zoom_control": true, +"smart_snap_active": false, +"snap_guides": true, +"snap_node_anchors": true, +"snap_node_center": true, +"snap_node_parent": true, +"snap_node_sides": true, +"snap_other_nodes": true, +"snap_pixel": true, +"snap_relative": false, +"snap_rotation": false, +"snap_rotation_offset": 0.0, +"snap_rotation_step": 0.261799, +"snap_scale": false, +"snap_scale_step": 0.1, +"zoom": 0.943874 +} +3D={ +"fov": 70.01, +"gizmos_status": { +"AudioListener3D": 0, +"AudioStreamPlayer3D": 0, +"CPUParticles3D": 0, +"CSGShape3D": 0, +"Camera3D": 0, +"CollisionObject3D": 0, +"CollisionPolygon3D": 0, +"CollisionShape3D": 0, +"Decal": 0, +"FogVolume": 0, +"GPUParticles3D": 0, +"GPUParticlesCollision3D": 0, +"Joint3D": 0, +"Light3D": 0, +"LightmapGI": 0, +"LightmapProbe": 0, +"Marker3D": 0, +"NavigationLink3D": 0, +"NavigationRegion3D": 0, +"OccluderInstance3D": 0, +"Path3D": 0, +"PhysicalBone3D": 0, +"RayCast3D": 0, +"ReflectionProbe": 0, +"ShapeCast3D": 0, +"Skeleton3D": 0, +"SoftBody3D": 0, +"SpringArm3D": 0, +"VehicleWheel3D": 0, +"VisibleOnScreenNotifier3D": 0, +"VoxelGI": 0 +}, +"local_coords": false, +"preview_sun_env": { +"environ_ao_enabled": false, +"environ_enabled": true, +"environ_energy": 1.0, +"environ_gi_enabled": false, +"environ_glow_enabled": false, +"environ_ground_color": Color(0.2, 0.169, 0.133, 1), +"environ_sky_color": Color(0.385, 0.454, 0.55, 1), +"environ_tonemap_enabled": true, +"sun_color": Color(1, 1, 1, 1), +"sun_enabled": true, +"sun_energy": 1.0, +"sun_max_distance": 100.0, +"sun_rotation": Vector2(-1.0472, 2.61799) +}, +"rotate_snap": 15.0, +"scale_snap": 10.0, +"show_grid": true, +"show_origin": true, +"snap_enabled": false, +"translate_snap": 1.0, +"viewport_mode": 1, +"viewports": [{ +"auto_orthogonal": false, +"auto_orthogonal_enabled": true, +"cinematic_preview": false, +"display_mode": 20, +"distance": 4.0, +"doppler": false, +"frame_time": false, +"gizmos": true, +"half_res": false, +"information": false, +"listener": true, +"lock_rotation": false, +"orthogonal": false, +"position": Vector3(0, 0, 0), +"use_environment": false, +"view_type": 0, +"x_rotation": 0.5, +"y_rotation": -0.5 +}, { +"auto_orthogonal": false, +"auto_orthogonal_enabled": true, +"cinematic_preview": false, +"display_mode": 20, +"distance": 4.0, +"doppler": false, +"frame_time": false, +"gizmos": true, +"half_res": false, +"information": false, +"listener": false, +"lock_rotation": false, +"orthogonal": false, +"position": Vector3(0, 0, 0), +"use_environment": false, +"view_type": 0, +"x_rotation": 0.5, +"y_rotation": -0.5 +}, { +"auto_orthogonal": false, +"auto_orthogonal_enabled": true, +"cinematic_preview": false, +"display_mode": 20, +"distance": 4.0, +"doppler": false, +"frame_time": false, +"gizmos": true, +"half_res": false, +"information": false, +"listener": false, +"lock_rotation": false, +"orthogonal": false, +"position": Vector3(0, 0, 0), +"use_environment": false, +"view_type": 0, +"x_rotation": 0.5, +"y_rotation": -0.5 +}, { +"auto_orthogonal": false, +"auto_orthogonal_enabled": true, +"cinematic_preview": false, +"display_mode": 20, +"distance": 4.0, +"doppler": false, +"frame_time": false, +"gizmos": true, +"half_res": false, +"information": false, +"listener": false, +"lock_rotation": false, +"orthogonal": false, +"position": Vector3(0, 0, 0), +"use_environment": false, +"view_type": 0, +"x_rotation": 0.5, +"y_rotation": -0.5 +}], +"zfar": 4000.01, +"znear": 0.05 +} +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17147/@Panel@13/@VBoxContainer@14/@HSplitContainer@17/@HSplitContainer@25/@HSplitContainer@33/@VBoxContainer@34/@VSplitContainer@36/@VSplitContainer@62/@VBoxContainer@63/@PanelContainer@110/MainScreen/@CanvasItemEditor@9462/@VSplitContainer@9281/@HSplitContainer@9283/@HSplitContainer@9285/@Control@9286/@SubViewportContainer@9287/@SubViewport@9288/UIAsk/MF/Frame")]) diff --git a/cmd/gox/template/project/.godot/editor/UIAsk.tscn-folding-ed8eede60fb1eb872ed9ab97275dcb66.cfg b/cmd/gox/template/project/.godot/editor/UIAsk.tscn-folding-ed8eede60fb1eb872ed9ab97275dcb66.cfg new file mode 100644 index 00000000..fe3682d7 --- /dev/null +++ b/cmd/gox/template/project/.godot/editor/UIAsk.tscn-folding-ed8eede60fb1eb872ed9ab97275dcb66.cfg @@ -0,0 +1,5 @@ +[folding] + +node_unfolds=[NodePath("."), PackedStringArray("Layout"), NodePath("MF"), PackedStringArray("Layout", "Theme Overrides", "Theme Overrides/constants"), NodePath("MF/Frame"), PackedStringArray("Layout", "Theme Overrides", "Theme Overrides/styles", "theme_override_styles/panel", "Layout/Transform", "Layout/Container Sizing"), NodePath("MF/Frame/AskBody"), PackedStringArray("Theme Overrides", "Theme Overrides/constants", "Layout"), NodePath("M"), PackedStringArray("Layout", "Theme Overrides", "Theme Overrides/constants"), NodePath("M/InputBG"), PackedStringArray("Theme Overrides", "Theme Overrides/styles", "theme_override_styles/panel", "Layout"), NodePath("M/Input"), PackedStringArray("Layout", "theme_override_styles/normal", "Theme Overrides", "Theme Overrides/styles", "Caret", "Theme Overrides/fonts", "Theme Overrides/font_sizes", "Theme Overrides/colors"), NodePath("M/Input/Check"), PackedStringArray("Layout", "Layout/Transform", "Layout/Container Sizing", "Theme Overrides", "Theme Overrides/styles", "theme_override_styles/normal", "theme_override_styles/hover", "theme_override_styles/pressed", "theme_override_styles/disabled", "theme_override_styles/focus")] +resource_unfolds=["res://engine/ui/UIAsk.tscn::StyleBoxTexture_vjsl3", PackedStringArray("Texture Margins", "Expand Margins"), "res://engine/ui/UIAsk.tscn::StyleBoxTexture_03o2d", PackedStringArray("Texture Margins"), "res://engine/ui/UIAsk.tscn::StyleBoxEmpty_ct2ti", PackedStringArray("Resource", "Content Margins"), "res://engine/ui/UIAsk.tscn::StyleBoxEmpty_w3b6m", PackedStringArray(), "res://engine/ui/UIAsk.tscn::StyleBoxEmpty_31enk", PackedStringArray(), "res://engine/ui/UIAsk.tscn::StyleBoxTexture_ue1ek", PackedStringArray(), "res://engine/ui/UIAsk.tscn::StyleBoxTexture_15fsc", PackedStringArray(), "res://engine/ui/UIAsk.tscn::StyleBoxTexture_3ufoe", PackedStringArray(), "res://engine/ui/UIAsk.tscn::StyleBoxTexture_15re3", PackedStringArray(), "res://engine/ui/UIAsk.tscn::StyleBoxTexture_alfx8", PackedStringArray()] +nodes_folded=[] diff --git a/cmd/gox/template/project/.godot/editor/UiMonitor.tscn-editstate-b488440cec249792506cfd6deec90887.cfg b/cmd/gox/template/project/.godot/editor/UiMonitor.tscn-editstate-b488440cec249792506cfd6deec90887.cfg new file mode 100644 index 00000000..c2913d36 --- /dev/null +++ b/cmd/gox/template/project/.godot/editor/UiMonitor.tscn-editstate-b488440cec249792506cfd6deec90887.cfg @@ -0,0 +1,175 @@ +[editor_states] + +Anim={ +"visible": false +} +2D={ +"grid_offset": Vector2(0, 0), +"grid_snap_active": false, +"grid_step": Vector2(8, 8), +"grid_visibility": 1, +"ofs": Vector2(-8.65676, -30.3207), +"primary_grid_step": Vector2i(8, 8), +"show_edit_locks": true, +"show_guides": true, +"show_helpers": false, +"show_origin": true, +"show_rulers": true, +"show_transformation_gizmos": true, +"show_viewport": true, +"show_zoom_control": true, +"smart_snap_active": false, +"snap_guides": true, +"snap_node_anchors": true, +"snap_node_center": true, +"snap_node_parent": true, +"snap_node_sides": true, +"snap_other_nodes": true, +"snap_pixel": true, +"snap_relative": false, +"snap_rotation": false, +"snap_rotation_offset": 0.0, +"snap_rotation_step": 0.261799, +"snap_scale": false, +"snap_scale_step": 0.1, +"zoom": 3.1748 +} +3D={ +"fov": 70.01, +"gizmos_status": { +"AudioListener3D": 0, +"AudioStreamPlayer3D": 0, +"CPUParticles3D": 0, +"CSGShape3D": 0, +"Camera3D": 0, +"CollisionObject3D": 0, +"CollisionPolygon3D": 0, +"CollisionShape3D": 0, +"Decal": 0, +"FogVolume": 0, +"GPUParticles3D": 0, +"GPUParticlesCollision3D": 0, +"Joint3D": 0, +"Light3D": 0, +"LightmapGI": 0, +"LightmapProbe": 0, +"Marker3D": 0, +"NavigationLink3D": 0, +"NavigationRegion3D": 0, +"OccluderInstance3D": 0, +"Path3D": 0, +"PhysicalBone3D": 0, +"RayCast3D": 0, +"ReflectionProbe": 0, +"ShapeCast3D": 0, +"Skeleton3D": 0, +"SoftBody3D": 0, +"SpringArm3D": 0, +"VehicleWheel3D": 0, +"VisibleOnScreenNotifier3D": 0, +"VoxelGI": 0 +}, +"local_coords": false, +"preview_sun_env": { +"environ_ao_enabled": false, +"environ_enabled": true, +"environ_energy": 1.0, +"environ_gi_enabled": false, +"environ_glow_enabled": false, +"environ_ground_color": Color(0.2, 0.169, 0.133, 1), +"environ_sky_color": Color(0.385, 0.454, 0.55, 1), +"environ_tonemap_enabled": true, +"sun_color": Color(1, 1, 1, 1), +"sun_enabled": true, +"sun_energy": 1.0, +"sun_max_distance": 100.0, +"sun_rotation": Vector2(-1.0472, 2.61799) +}, +"rotate_snap": 15.0, +"scale_snap": 10.0, +"show_grid": true, +"show_origin": true, +"snap_enabled": false, +"translate_snap": 1.0, +"viewport_mode": 1, +"viewports": [{ +"auto_orthogonal": false, +"auto_orthogonal_enabled": true, +"cinematic_preview": false, +"display_mode": 20, +"distance": 4.0, +"doppler": false, +"frame_time": false, +"gizmos": true, +"half_res": false, +"information": false, +"listener": true, +"lock_rotation": false, +"orthogonal": false, +"position": Vector3(0, 0, 0), +"use_environment": false, +"view_type": 0, +"x_rotation": 0.5, +"y_rotation": -0.5 +}, { +"auto_orthogonal": false, +"auto_orthogonal_enabled": true, +"cinematic_preview": false, +"display_mode": 20, +"distance": 4.0, +"doppler": false, +"frame_time": false, +"gizmos": true, +"half_res": false, +"information": false, +"listener": false, +"lock_rotation": false, +"orthogonal": false, +"position": Vector3(0, 0, 0), +"use_environment": false, +"view_type": 0, +"x_rotation": 0.5, +"y_rotation": -0.5 +}, { +"auto_orthogonal": false, +"auto_orthogonal_enabled": true, +"cinematic_preview": false, +"display_mode": 20, +"distance": 4.0, +"doppler": false, +"frame_time": false, +"gizmos": true, +"half_res": false, +"information": false, +"listener": false, +"lock_rotation": false, +"orthogonal": false, +"position": Vector3(0, 0, 0), +"use_environment": false, +"view_type": 0, +"x_rotation": 0.5, +"y_rotation": -0.5 +}, { +"auto_orthogonal": false, +"auto_orthogonal_enabled": true, +"cinematic_preview": false, +"display_mode": 20, +"distance": 4.0, +"doppler": false, +"frame_time": false, +"gizmos": true, +"half_res": false, +"information": false, +"listener": false, +"lock_rotation": false, +"orthogonal": false, +"position": Vector3(0, 0, 0), +"use_environment": false, +"view_type": 0, +"x_rotation": 0.5, +"y_rotation": -0.5 +}], +"zfar": 4000.01, +"znear": 0.05 +} +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17147/@Panel@13/@VBoxContainer@14/@HSplitContainer@17/@HSplitContainer@25/@HSplitContainer@33/@VBoxContainer@34/@VSplitContainer@36/@VSplitContainer@62/@VBoxContainer@63/@PanelContainer@110/MainScreen/@CanvasItemEditor@9462/@VSplitContainer@9281/@HSplitContainer@9283/@HSplitContainer@9285/@Control@9286/@SubViewportContainer@9287/@SubViewport@9288/UIAsk/MF/Frame/AskBody/LabelAsk")]) diff --git a/cmd/gox/template/project/.godot/editor/UiMonitor.tscn-folding-b488440cec249792506cfd6deec90887.cfg b/cmd/gox/template/project/.godot/editor/UiMonitor.tscn-folding-b488440cec249792506cfd6deec90887.cfg new file mode 100644 index 00000000..651dd6ea --- /dev/null +++ b/cmd/gox/template/project/.godot/editor/UiMonitor.tscn-folding-b488440cec249792506cfd6deec90887.cfg @@ -0,0 +1,5 @@ +[folding] + +node_unfolds=[NodePath("BG"), PackedStringArray("Layout", "Theme Overrides", "Theme Overrides/styles", "theme_override_styles/panel"), NodePath("BG/H"), PackedStringArray("Layout"), NodePath("BG/H/LabelName"), PackedStringArray("Layout", "Theme Overrides", "BiDi"), NodePath("BG/H/Space"), PackedStringArray("Layout", "Theme Overrides", "BiDi"), NodePath("BG/H/C"), PackedStringArray("Layout", "Theme Overrides"), NodePath("BG/H/C/H"), PackedStringArray("Layout"), NodePath("BG/H/C/H/LabelValue"), PackedStringArray("Layout", "Theme", "Theme Overrides"), NodePath("BG/H/C/H/Space"), PackedStringArray("Layout", "Theme Overrides", "BiDi"), NodePath("ValueOnly"), PackedStringArray("Visibility", "Layout", "Theme Overrides"), NodePath("ValueOnly/H"), PackedStringArray("Visibility", "Layout"), NodePath("ValueOnly/LabelValue"), PackedStringArray("Layout", "Theme Overrides")] +resource_unfolds=["res://engine/ui/UiMonitor.tscn::StyleBoxTexture_5mp4r", PackedStringArray("Resource", "Texture Margins"), "res://engine/ui/UiMonitor.tscn::StyleBoxTexture_c560o", PackedStringArray("Resource", "Texture Margins", "Expand Margins", "Modulate"), "res://engine/ui/UiMonitor.tscn::Theme_gvmbf", PackedStringArray("Resource"), "res://engine/ui/UiMonitor.tscn::StyleBoxEmpty_sbh8w", PackedStringArray("Resource"), "res://engine/ui/UiMonitor.tscn::StyleBoxTexture_h4u5r", PackedStringArray("Resource", "Texture Margins")] +nodes_folded=[] diff --git a/cmd/gox/template/project/.godot/editor/create_recent.Node b/cmd/gox/template/project/.godot/editor/create_recent.Node new file mode 100644 index 00000000..f0dd6369 --- /dev/null +++ b/cmd/gox/template/project/.godot/editor/create_recent.Node @@ -0,0 +1,8 @@ +MarginContainer +SplitContainer +Control +Label +PanelContainer +Button +LineEdit +TextureRect diff --git a/cmd/gox/template/project/.godot/editor/favorites b/cmd/gox/template/project/.godot/editor/favorites new file mode 100644 index 00000000..e69de29b diff --git a/cmd/gox/template/project/.godot/editor/favorites.Node b/cmd/gox/template/project/.godot/editor/favorites.Node new file mode 100644 index 00000000..e69de29b diff --git a/cmd/gox/template/project/.godot/editor/filesystem_cache8 b/cmd/gox/template/project/.godot/editor/filesystem_cache8 index 7fb6dbd6..ad42eac1 100644 --- a/cmd/gox/template/project/.godot/editor/filesystem_cache8 +++ b/cmd/gox/template/project/.godot/editor/filesystem_cache8 @@ -1,28 +1,42 @@ -ea4bc82a6ad023ab7ee23ee620429895 -::res://::1737642051 -.gitignore.txt::TextFile::-1::1735262672::0::1::::<><>:: -gdspx.gdextension::GDExtension::-1::1737335821::0::1::::<><>:: -go.mod.txt::TextFile::-1::1737336345::0::1::::<><>:: -main.tscn::PackedScene::6787114117689904641::1733990668::0::1::::<><>:: -::res://engine/::1733990668 -::res://engine/textures/::1737638827 -::res://engine/textures/measure/::1733990668 -Line.png::CompressedTexture2D::72195066198421830::1733990668::1733990668::1::::<><>:: -::res://engine/textures/monitor/::1737638503 -frame_name.png::CompressedTexture2D::5671557123434281583::1733990668::1733990668::1::::<><>:: -frame_value.png::CompressedTexture2D::4949145575456655435::1733990668::1733990668::1::::<><>:: -::res://engine/textures/quote/::1733990668 -quote.png::CompressedTexture2D::8801965585543483211::1733990668::1733990668::1::::<><>:: -::res://engine/textures/robot/::1737638827 -semantic_object.png::CompressedTexture2D::5007228785467172241::1737638827::1737642052::1::::<><>:: -::res://engine/textures/say/::1733990668 -dot_say.png::CompressedTexture2D::7995496957962182592::1733990668::1733990668::1::::<><>:: -frame_say.png::CompressedTexture2D::74715039462851498::1733990668::1733990668::1::::<><>:: -::res://engine/theme/::1733990668 -ui_say.tres::Theme::3803005688195695468::1733990668::0::1::::<><>::uid://bcgss6q0fbi5::::res://engine/textures/say/frame_say.png -::res://engine/ui/::1733990668 -UiMeasure.tscn::PackedScene::876215261502039545::1733990668::0::1::::<><>::uid://ba8bo1lkfvri::::res://engine/textures/measure/Line.png -UiMonitor.tscn::PackedScene::3650811620556224789::1733990668::0::1::::<><>::uid://cm2lync0vu3ot::::res://engine/textures/monitor/frame_name.png<>uid://ccrnx7ptuijh0::::res://engine/textures/monitor/frame_value.png -UiQuote.tscn::PackedScene::6471941878163067134::1733990668::0::1::::<><>::uid://dxn0c72yygef8::::res://engine/textures/quote/quote.png -UiSay.tscn::PackedScene::899015386338223426::1733990668::0::1::::<><>::uid://bugg7h7qx37im::::res://engine/theme/ui_say.tres<>uid://dl6cww0t5blw7::::res://engine/textures/say/dot_say.png -::res://lib/::1737335821 +fc8a56933c4b1c8d796fdb8f7a9f9475 +::res://::1744357289 +export_presets.cfg::TextFile::-1::1744353346::0::1::::<><>:: +gdspx.gdextension::GDExtension::-1::1744353346::0::1::::<><>:: +main.tscn::PackedScene::6787114117689904641::1744357219::0::1::::<><>:: +new_style_box_texture.tres::StyleBoxTexture::8246456591113810870::1744357036::0::1::::<><>::uid://cllgpgpe6ehmg::::res://engine/textures/ask/input_frame.png +::res://engine/::1744353346 +::res://engine/icons/::1744353346 +logo.png::CompressedTexture2D::5223531597288739491::1744353346::1744353346::1::::<><>:: +::res://engine/shader/::1744353346 +spx_sprite_shader.gdshader::Shader::-1::1744353346::0::1::::<><>:: +::res://engine/textures/::1744353984 +::res://engine/textures/ask/::1744357289 +input_frame.png::CompressedTexture2D::5568018230099889034::1744353979::1744354001::1::::<><>:: +out_frame.png::CompressedTexture2D::5537753501572777940::1744353979::1744354070::1::::<><>:: +sure.png::CompressedTexture2D::6374184923760227049::1744354037::1744354058::1::::<><>:: +sure_hover.png::CompressedTexture2D::8240163831050056582::1744357277::1744357289::1::::<><>:: +::res://engine/textures/measure/::1744353346 +Line.png::CompressedTexture2D::72195066198421830::1744353346::1744353346::1::::<><>:: +::res://engine/textures/monitor/::1744353346 +frame_name.png::CompressedTexture2D::5671557123434281583::1744353346::1744353346::1::::<><>:: +frame_value.png::CompressedTexture2D::4949145575456655435::1744353346::1744353346::1::::<><>:: +::res://engine/textures/quote/::1744353346 +quote.png::CompressedTexture2D::8801965585543483211::1744353346::1744353346::1::::<><>:: +::res://engine/textures/robot/::1744353346 +semantic_object.png::CompressedTexture2D::5007228785467172241::1744353346::1744353346::1::::<><>:: +::res://engine/textures/say/::1744353346 +dot_say.png::CompressedTexture2D::7995496957962182592::1744353346::1744353346::1::::<><>:: +frame_say.png::CompressedTexture2D::74715039462851498::1744353346::1744353346::1::::<><>:: +::res://engine/theme/::1744357036 +ui_say.tres::Theme::3803005688195695468::1744357036::0::1::::<><>::uid://bcgss6q0fbi5::::res://engine/textures/say/frame_say.png +::res://engine/ui/::1744357219 +UIAsk.tscn::PackedScene::2328153286434844730::1744357219::0::1::::<><>::uid://dpqv62en4vf5o::::res://new_style_box_texture.tres<>uid://cllgpgpe6ehmg::::res://engine/textures/ask/input_frame.png<>uid://cw2x5n7b8coov::::res://engine/textures/ask/sure.png +UiMeasure.tscn::PackedScene::876215261502039545::1744353346::0::1::::<><>::uid://ba8bo1lkfvri::::res://engine/textures/measure/Line.png +UiMonitor.tscn::PackedScene::3650811620556224789::1744357219::0::1::::<><>::uid://cm2lync0vu3ot::::res://engine/textures/monitor/frame_name.png<>uid://ccrnx7ptuijh0::::res://engine/textures/monitor/frame_value.png +UiQuote.tscn::PackedScene::6471941878163067134::1744353346::0::1::::<><>::uid://dxn0c72yygef8::::res://engine/textures/quote/quote.png +UiSay.tscn::PackedScene::899015386338223426::1744353346::0::1::::<><>::uid://bugg7h7qx37im::::res://engine/theme/ui_say.tres<>uid://dl6cww0t5blw7::::res://engine/textures/say/dot_say.png +::res://go/::1744353894 +ios_adapter.go.txt::TextFile::-1::1744353346::0::1::::<><>:: +ios_adapter_complete.c.txt::TextFile::-1::1744353346::0::1::::<><>:: +ios_adapter_complete.h.txt::TextFile::-1::1744353346::0::1::::<><>:: +::res://lib/::1744353895 diff --git a/cmd/gox/template/project/.godot/editor/filesystem_update4 b/cmd/gox/template/project/.godot/editor/filesystem_update4 index 2ee6b781..86ac8498 100644 --- a/cmd/gox/template/project/.godot/editor/filesystem_update4 +++ b/cmd/gox/template/project/.godot/editor/filesystem_update4 @@ -1 +1,5 @@ res://main.tscn +res://engine/ui/UIAsk.tscn +res://new_style_box_texture.tres +res://engine/theme/ui_say.tres +res://engine/ui/UiMonitor.tscn diff --git a/cmd/gox/template/project/.godot/editor/main.tscn-editstate-3070c538c03ee49b7677ff960a3f5195.cfg b/cmd/gox/template/project/.godot/editor/main.tscn-editstate-3070c538c03ee49b7677ff960a3f5195.cfg index ff9b9d82..3a271236 100644 --- a/cmd/gox/template/project/.godot/editor/main.tscn-editstate-3070c538c03ee49b7677ff960a3f5195.cfg +++ b/cmd/gox/template/project/.godot/editor/main.tscn-editstate-3070c538c03ee49b7677ff960a3f5195.cfg @@ -172,4 +172,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([]) +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17147/@Panel@13/@VBoxContainer@14/@HSplitContainer@17/@HSplitContainer@25/@HSplitContainer@33/@VBoxContainer@34/@VSplitContainer@36/@VSplitContainer@62/@VBoxContainer@63/@PanelContainer@110/MainScreen/@CanvasItemEditor@9462/@VSplitContainer@9281/@HSplitContainer@9283/@HSplitContainer@9285/@Control@9286/@SubViewportContainer@9287/@SubViewport@9288/UIAsk/MF/Frame/AskBody/LabelAsk")]) diff --git a/cmd/gox/template/project/.godot/editor/new_style_box_texture.tres-folding-26b0e98d122e827f17c799c8d05b24ff.cfg b/cmd/gox/template/project/.godot/editor/new_style_box_texture.tres-folding-26b0e98d122e827f17c799c8d05b24ff.cfg new file mode 100644 index 00000000..6d73ef64 --- /dev/null +++ b/cmd/gox/template/project/.godot/editor/new_style_box_texture.tres-folding-26b0e98d122e827f17c799c8d05b24ff.cfg @@ -0,0 +1,3 @@ +[folding] + +sections_unfolded=PackedStringArray("Texture Margins", "Resource", "Content Margins", "Modulate", "Sub-Region", "Axis Stretch") diff --git a/cmd/gox/template/project/.godot/editor/project_metadata.cfg b/cmd/gox/template/project/.godot/editor/project_metadata.cfg index 9a09998f..47b76ef9 100644 --- a/cmd/gox/template/project/.godot/editor/project_metadata.cfg +++ b/cmd/gox/template/project/.godot/editor/project_metadata.cfg @@ -9,8 +9,33 @@ run_reload_scripts=true [recent_files] -scenes=["res://main.tscn"] +scenes=["res://engine/ui/UiMonitor.tscn", "res://engine/ui/UIAsk.tscn", "res://main.tscn"] [linked_properties] Node2D:scale=true +Control:scale=true +Button:scale=true +Label:scale=true +PanelContainer:scale=true +MarginContainer:scale=true +HBoxContainer:scale=true +LineEdit:scale=true +Sprite2D:scale=true +TextureRect:scale=true +MultiNodeEdit:scale=true +SplitContainer:scale=true + +[dialog_bounds] + +create_new_node=Rect2(510, 190, 900, 700) + +[color_picker] + +recent_presets=PackedColorArray(1, 1, 1, 0.32549) + +[texture_region_editor] + +snap_step=Vector2(8, 8) +snap_separation=Vector2(0, 0) +snap_mode=0 diff --git a/cmd/gox/template/project/.godot/editor/recent_dirs b/cmd/gox/template/project/.godot/editor/recent_dirs new file mode 100644 index 00000000..7eeb8d11 --- /dev/null +++ b/cmd/gox/template/project/.godot/editor/recent_dirs @@ -0,0 +1 @@ +res:// diff --git a/cmd/gox/template/project/.godot/editor/ui_say.tres-folding-15f075b2b24735e4bfd3b044deae1fa6.cfg b/cmd/gox/template/project/.godot/editor/ui_say.tres-folding-15f075b2b24735e4bfd3b044deae1fa6.cfg new file mode 100644 index 00000000..e860dd49 --- /dev/null +++ b/cmd/gox/template/project/.godot/editor/ui_say.tres-folding-15f075b2b24735e4bfd3b044deae1fa6.cfg @@ -0,0 +1,3 @@ +[folding] + +sections_unfolded=PackedStringArray() diff --git a/cmd/gox/template/project/.godot/imported/input_frame.png-5a0068808c33368e18bdb0221226882a.ctex b/cmd/gox/template/project/.godot/imported/input_frame.png-5a0068808c33368e18bdb0221226882a.ctex new file mode 100644 index 00000000..696b014a Binary files /dev/null and b/cmd/gox/template/project/.godot/imported/input_frame.png-5a0068808c33368e18bdb0221226882a.ctex differ diff --git a/cmd/gox/template/project/.godot/imported/input_frame.png-5a0068808c33368e18bdb0221226882a.md5 b/cmd/gox/template/project/.godot/imported/input_frame.png-5a0068808c33368e18bdb0221226882a.md5 new file mode 100644 index 00000000..1530651c --- /dev/null +++ b/cmd/gox/template/project/.godot/imported/input_frame.png-5a0068808c33368e18bdb0221226882a.md5 @@ -0,0 +1,3 @@ +source_md5="2a77649bf69f6eb5036dca7c407bf23c" +dest_md5="56884f57ad92748411f3546ac0f9c737" + diff --git a/cmd/gox/template/project/.godot/imported/out_frame.png-933987ba4e040fd111e6d1c31eda1ba2.ctex b/cmd/gox/template/project/.godot/imported/out_frame.png-933987ba4e040fd111e6d1c31eda1ba2.ctex new file mode 100644 index 00000000..d853da51 Binary files /dev/null and b/cmd/gox/template/project/.godot/imported/out_frame.png-933987ba4e040fd111e6d1c31eda1ba2.ctex differ diff --git a/cmd/gox/template/project/.godot/imported/out_frame.png-933987ba4e040fd111e6d1c31eda1ba2.md5 b/cmd/gox/template/project/.godot/imported/out_frame.png-933987ba4e040fd111e6d1c31eda1ba2.md5 new file mode 100644 index 00000000..500f5c1d --- /dev/null +++ b/cmd/gox/template/project/.godot/imported/out_frame.png-933987ba4e040fd111e6d1c31eda1ba2.md5 @@ -0,0 +1,3 @@ +source_md5="339c86704f4efce922ec8e3246fd1e79" +dest_md5="6542ad36d017a562e9b1d05e14eb6651" + diff --git a/cmd/gox/template/project/.godot/imported/sure.png-ab4df3fac5ca12e736c7dcf7796a22b2.ctex b/cmd/gox/template/project/.godot/imported/sure.png-ab4df3fac5ca12e736c7dcf7796a22b2.ctex new file mode 100644 index 00000000..e7f449cc Binary files /dev/null and b/cmd/gox/template/project/.godot/imported/sure.png-ab4df3fac5ca12e736c7dcf7796a22b2.ctex differ diff --git a/cmd/gox/template/project/.godot/imported/sure.png-ab4df3fac5ca12e736c7dcf7796a22b2.md5 b/cmd/gox/template/project/.godot/imported/sure.png-ab4df3fac5ca12e736c7dcf7796a22b2.md5 new file mode 100644 index 00000000..0a828ea4 --- /dev/null +++ b/cmd/gox/template/project/.godot/imported/sure.png-ab4df3fac5ca12e736c7dcf7796a22b2.md5 @@ -0,0 +1,3 @@ +source_md5="07a3ae962592a31ae61170395a10b495" +dest_md5="e02165e367e16260f26a64659f76f276" + diff --git a/cmd/gox/template/project/.godot/imported/sure_hover.png-7066de4373b04def572041be98abaa21.ctex b/cmd/gox/template/project/.godot/imported/sure_hover.png-7066de4373b04def572041be98abaa21.ctex new file mode 100644 index 00000000..11fba1f1 Binary files /dev/null and b/cmd/gox/template/project/.godot/imported/sure_hover.png-7066de4373b04def572041be98abaa21.ctex differ diff --git a/cmd/gox/template/project/.godot/imported/sure_hover.png-7066de4373b04def572041be98abaa21.md5 b/cmd/gox/template/project/.godot/imported/sure_hover.png-7066de4373b04def572041be98abaa21.md5 new file mode 100644 index 00000000..09817ea9 --- /dev/null +++ b/cmd/gox/template/project/.godot/imported/sure_hover.png-7066de4373b04def572041be98abaa21.md5 @@ -0,0 +1,3 @@ +source_md5="e5d9b188cd93e599b6f6097dba335f00" +dest_md5="5acd53b47f8cdeabb7ebff52f30ec051" + diff --git a/cmd/gox/template/project/.godot/shader_cache/CanvasShaderGLES3/9bc99205aab0f8358ecb00caa0738618f66ba43dc39bec3fe97adfc516e96f9f/c78da9ec302d5974179414820af260b7fc891df6.cache b/cmd/gox/template/project/.godot/shader_cache/CanvasShaderGLES3/9bc99205aab0f8358ecb00caa0738618f66ba43dc39bec3fe97adfc516e96f9f/c78da9ec302d5974179414820af260b7fc891df6.cache new file mode 100644 index 00000000..47f6610b Binary files /dev/null and b/cmd/gox/template/project/.godot/shader_cache/CanvasShaderGLES3/9bc99205aab0f8358ecb00caa0738618f66ba43dc39bec3fe97adfc516e96f9f/c78da9ec302d5974179414820af260b7fc891df6.cache differ diff --git a/cmd/gox/template/project/.godot/uid_cache.bin b/cmd/gox/template/project/.godot/uid_cache.bin index a5520cb7..5e8e9d82 100644 Binary files a/cmd/gox/template/project/.godot/uid_cache.bin and b/cmd/gox/template/project/.godot/uid_cache.bin differ diff --git a/cmd/gox/template/project/engine/textures/ask/input_frame.png b/cmd/gox/template/project/engine/textures/ask/input_frame.png new file mode 100644 index 00000000..a507f6fa Binary files /dev/null and b/cmd/gox/template/project/engine/textures/ask/input_frame.png differ diff --git a/cmd/gox/template/project/engine/textures/ask/input_frame.png.import b/cmd/gox/template/project/engine/textures/ask/input_frame.png.import new file mode 100644 index 00000000..d72aaef6 --- /dev/null +++ b/cmd/gox/template/project/engine/textures/ask/input_frame.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cllgpgpe6ehmg" +path="res://.godot/imported/input_frame.png-5a0068808c33368e18bdb0221226882a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://engine/textures/ask/input_frame.png" +dest_files=["res://.godot/imported/input_frame.png-5a0068808c33368e18bdb0221226882a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/cmd/gox/template/project/engine/textures/ask/out_frame.png b/cmd/gox/template/project/engine/textures/ask/out_frame.png new file mode 100644 index 00000000..e530fd9e Binary files /dev/null and b/cmd/gox/template/project/engine/textures/ask/out_frame.png differ diff --git a/cmd/gox/template/project/engine/textures/ask/out_frame.png.import b/cmd/gox/template/project/engine/textures/ask/out_frame.png.import new file mode 100644 index 00000000..a3da6e8e --- /dev/null +++ b/cmd/gox/template/project/engine/textures/ask/out_frame.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ck5r8xx86frxk" +path="res://.godot/imported/out_frame.png-933987ba4e040fd111e6d1c31eda1ba2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://engine/textures/ask/out_frame.png" +dest_files=["res://.godot/imported/out_frame.png-933987ba4e040fd111e6d1c31eda1ba2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/cmd/gox/template/project/engine/textures/ask/sure.png b/cmd/gox/template/project/engine/textures/ask/sure.png new file mode 100644 index 00000000..086a1095 Binary files /dev/null and b/cmd/gox/template/project/engine/textures/ask/sure.png differ diff --git a/cmd/gox/template/project/engine/textures/ask/sure.png.import b/cmd/gox/template/project/engine/textures/ask/sure.png.import new file mode 100644 index 00000000..0fcc7da6 --- /dev/null +++ b/cmd/gox/template/project/engine/textures/ask/sure.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cw2x5n7b8coov" +path="res://.godot/imported/sure.png-ab4df3fac5ca12e736c7dcf7796a22b2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://engine/textures/ask/sure.png" +dest_files=["res://.godot/imported/sure.png-ab4df3fac5ca12e736c7dcf7796a22b2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/cmd/gox/template/project/engine/textures/ask/sure_hover.png b/cmd/gox/template/project/engine/textures/ask/sure_hover.png new file mode 100644 index 00000000..1882af07 Binary files /dev/null and b/cmd/gox/template/project/engine/textures/ask/sure_hover.png differ diff --git a/cmd/gox/template/project/engine/textures/ask/sure_hover.png.import b/cmd/gox/template/project/engine/textures/ask/sure_hover.png.import new file mode 100644 index 00000000..661e266c --- /dev/null +++ b/cmd/gox/template/project/engine/textures/ask/sure_hover.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dpnukak43aukc" +path="res://.godot/imported/sure_hover.png-7066de4373b04def572041be98abaa21.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://engine/textures/ask/sure_hover.png" +dest_files=["res://.godot/imported/sure_hover.png-7066de4373b04def572041be98abaa21.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/cmd/gox/template/project/engine/ui/UIAsk.tscn b/cmd/gox/template/project/engine/ui/UIAsk.tscn new file mode 100644 index 00000000..353ef5f0 --- /dev/null +++ b/cmd/gox/template/project/engine/ui/UIAsk.tscn @@ -0,0 +1,137 @@ +[gd_scene load_steps=15 format=3 uid="uid://8f1lyhpg00ao"] + +[ext_resource type="Texture2D" uid="uid://ck5r8xx86frxk" path="res://engine/textures/ask/out_frame.png" id="1_0vwsm"] +[ext_resource type="Texture2D" uid="uid://cllgpgpe6ehmg" path="res://engine/textures/ask/input_frame.png" id="2_cads7"] +[ext_resource type="Texture2D" uid="uid://cw2x5n7b8coov" path="res://engine/textures/ask/sure.png" id="3_bxmpm"] +[ext_resource type="Texture2D" uid="uid://dpnukak43aukc" path="res://engine/textures/ask/sure_hover.png" id="4_8m5m8"] + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_vjsl3"] +texture = ExtResource("1_0vwsm") +texture_margin_left = 70.0 +texture_margin_top = 30.0 +texture_margin_right = 50.0 +texture_margin_bottom = 60.0 +expand_margin_top = 18.0 +expand_margin_right = 20.0 +expand_margin_bottom = 18.0 + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_03o2d"] +texture = ExtResource("2_cads7") +texture_margin_left = 42.0 +texture_margin_top = 32.0 +texture_margin_right = 42.0 +texture_margin_bottom = 32.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ct2ti"] +content_margin_left = 20.0 +content_margin_right = 20.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_w3b6m"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_31enk"] + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_ue1ek"] +texture = ExtResource("3_bxmpm") + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_15fsc"] +texture = ExtResource("4_8m5m8") + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_3ufoe"] +texture = ExtResource("3_bxmpm") + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_15re3"] +texture = ExtResource("3_bxmpm") + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_alfx8"] +texture = ExtResource("3_bxmpm") + +[node name="UIAsk" type="Control"] +layout_mode = 3 +anchors_preset = 12 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 0 +size_flags_horizontal = 3 + +[node name="MF" type="MarginContainer" parent="."] +layout_mode = 1 +anchors_preset = 12 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 0 +theme_override_constants/margin_left = -20 + +[node name="Frame" type="PanelContainer" parent="MF"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_styles/panel = SubResource("StyleBoxTexture_vjsl3") + +[node name="AskBody" type="MarginContainer" parent="MF/Frame"] +custom_minimum_size = Vector2(99.48, 30) +layout_mode = 2 +size_flags_horizontal = 0 +theme_override_constants/margin_left = -28 +theme_override_constants/margin_top = -32 + +[node name="LabelAsk" type="Label" parent="MF/Frame/AskBody"] +layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 0 +size_flags_stretch_ratio = 2.06 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 22 +text = "asdf" + +[node name="M" type="MarginContainer" parent="."] +layout_mode = 1 +anchors_preset = 12 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_top = -60.0 +grow_horizontal = 2 +grow_vertical = 0 +theme_override_constants/margin_left = 20 +theme_override_constants/margin_right = 20 +theme_override_constants/margin_bottom = 20 + +[node name="InputBG" type="PanelContainer" parent="M"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_styles/panel = SubResource("StyleBoxTexture_03o2d") + +[node name="Input" type="LineEdit" parent="M"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_colors/font_color = Color(0.0605303, 0.0605303, 0.0605303, 1) +theme_override_colors/font_placeholder_color = Color(0, 0, 0, 0.0705882) +theme_override_colors/caret_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 22 +theme_override_styles/normal = SubResource("StyleBoxEmpty_ct2ti") +theme_override_styles/focus = SubResource("StyleBoxEmpty_w3b6m") +theme_override_styles/read_only = SubResource("StyleBoxEmpty_31enk") +placeholder_text = "Please input the anwser" +caret_blink = true + +[node name="Check" type="Button" parent="M/Input"] +layout_mode = 1 +anchors_preset = 6 +anchor_left = 1.0 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_left = -64.145 +offset_top = -30.46 +offset_right = -5.14499 +offset_bottom = 28.54 +grow_horizontal = 0 +grow_vertical = 2 +theme_override_styles/normal = SubResource("StyleBoxTexture_ue1ek") +theme_override_styles/hover = SubResource("StyleBoxTexture_15fsc") +theme_override_styles/pressed = SubResource("StyleBoxTexture_3ufoe") +theme_override_styles/disabled = SubResource("StyleBoxTexture_15re3") +theme_override_styles/focus = SubResource("StyleBoxTexture_alfx8") diff --git a/game.go b/game.go index 0509153b..9c99c720 100644 --- a/game.go +++ b/game.go @@ -33,6 +33,7 @@ import ( "github.com/goplus/spx/internal/coroutine" "github.com/goplus/spx/internal/engine" gtime "github.com/goplus/spx/internal/time" + "github.com/goplus/spx/internal/ui" "github.com/realdream-ai/mathf" spxfs "github.com/goplus/spx/fs" @@ -123,6 +124,9 @@ type Game struct { windowScale float64 audioId engine.Object + + askObj *ui.UiAsk + anwserVal string } type Gamer interface { @@ -1223,12 +1227,39 @@ func (p *Game) ResetTimer() { // ----------------------------------------------------------------------------- -func (p *Game) Ask(msg interface{}) { - panic("todo") +func (p *Game) Ask(msgv interface{}) { + msg, ok := msgv.(string) + if !ok { + msg = fmt.Sprint(msgv) + } + if msg == "" { + println("ask: msg should not be empty") + return + } + p.ask(false, msg, func(answer string) {}) } -func (p *Game) Answer() Value { - panic("todo") +func (p *Game) Anwser() string { + return p.anwserVal +} + +func (p *Game) ask(isSprite bool, question string, callback func(string)) { + if p.askObj == nil { + p.askObj = ui.NewUiAsk() + p.addShape(p.askObj) + } + hasAnswer := false + p.askObj.Show(isSprite, question, func(msg string) { + p.anwserVal = msg + callback(msg) + hasAnswer = true + }) + for { + if hasAnswer { + break + } + engine.WaitNextFrame() + } } // ----------------------------------------------------------------------------- diff --git a/internal/ui/ui_ask.go b/internal/ui/ui_ask.go new file mode 100644 index 00000000..850afac6 --- /dev/null +++ b/internal/ui/ui_ask.go @@ -0,0 +1,44 @@ +package ui + +import ( + "github.com/goplus/spx/internal/engine" +) + +type UiAsk struct { + UiNode + input *UiNode + checkBtn *UiNode + OnCheck func(string) + askBody *UiNode + askLabel *UiNode +} + +func NewUiAsk() *UiAsk { + panel := engine.NewUiNode[UiAsk]() + return panel +} + +// !!Warning: this method was called in main thread +func (pself *UiAsk) OnStart() { + pself.askBody = SyncBindUI[UiNode](pself.GetId(), "MF/Frame/AskBody") + pself.askLabel = SyncBindUI[UiNode](pself.GetId(), "MF/Frame/AskBody/LabelAsk") + + pself.input = SyncBindUI[UiNode](pself.GetId(), "M/Input") + pself.checkBtn = SyncBindUI[UiNode](pself.GetId(), "M/Input/Check") + pself.checkBtn.OnUiClickEvent.Subscribe(func() { + if pself.OnCheck != nil { + pself.SetVisible(false) + pself.OnCheck(pself.input.GetText()) + } + }) +} + +func (pself *UiAsk) Show(isSprite bool, question string, onCheck func(string)) { + pself.OnCheck = onCheck + uiMgr.SetVisible(pself.askBody.GetId(), !isSprite) + if !isSprite { + uiMgr.SetText(pself.askLabel.GetId(), question) + } + uiMgr.SetText(pself.input.GetId(), "") + uiMgr.SetVisible(pself.GetId(), true) +} diff --git a/sprite.go b/sprite.go index b34fda94..5849075d 100644 --- a/sprite.go +++ b/sprite.go @@ -17,6 +17,7 @@ package spx import ( + "fmt" "log" "math" "reflect" @@ -897,8 +898,22 @@ func (p *SpriteImpl) Animate(name SpriteAnimationName) { // ----------------------------------------------------------------------------- -func (p *SpriteImpl) Ask(msg interface{}) { - panic("todo") +func (p *SpriteImpl) Ask(msgv interface{}) { + if debugInstr { + log.Println("Ask", p.name, msgv) + } + msg, ok := msgv.(string) + if !ok { + msg = fmt.Sprint(msgv) + } + if msg == "" { + println("ask: msg should not be empty") + return + } + p.Say__0(msg) + p.g.ask(true, msg, func(answer string) { + p.doStopSay() + }) } func (p *SpriteImpl) Say__0(msg interface{}) {