diff --git a/README.md b/README.md index e3b95f5..a71ec63 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ A falling sand game made with Godot 4's GDextension feature. The full game can b ## Project Structure The simulation logic is implemented in C++ as a GDextension (in `extension`) that gets compiled into a binary file (in `game\bin`). -The user interface was created in a Godot 4.2.2 project (in `game`). +The user interface was created in a Godot 4.3 project (in `game`). ## Compiling for Windows If coding on Windows, no dependencies or installations are required to build the `.dll` binaries. diff --git a/game/bin/fallingsand/fallingsand.gdextension b/game/bin/fallingsand/fallingsand.gdextension index 38fca6c..4cd2c12 100644 --- a/game/bin/fallingsand/fallingsand.gdextension +++ b/game/bin/fallingsand/fallingsand.gdextension @@ -1,7 +1,7 @@ [configuration] entry_symbol = "fallingsand_library_init" -compatibility_minimum = "4.2" +compatibility_minimum = "4.3" [libraries] diff --git a/game/export_presets.cfg b/game/export_presets.cfg index bc7a856..e30ca89 100644 --- a/game/export_presets.cfg +++ b/game/export_presets.cfg @@ -3,6 +3,7 @@ name="Google Play Store" platform="Android" runnable=false +advanced_options=false dedicated_server=false custom_features="" export_filter="all_resources" @@ -13,12 +14,16 @@ encryption_include_filters="" encryption_exclude_filters="" encrypt_pck=false encrypt_directory=false +script_export_mode=2 [preset.0.options] custom_template/debug="" custom_template/release="" gradle_build/use_gradle_build=true +gradle_build/gradle_build_directory="" +gradle_build/android_source_template="" +gradle_build/compress_native_libraries=false gradle_build/export_format=1 gradle_build/min_sdk="" gradle_build/target_sdk="" @@ -209,6 +214,7 @@ xr_features/passthrough=0 name="Android" platform="Android" runnable=true +advanced_options=false dedicated_server=false custom_features="" export_filter="all_resources" @@ -219,12 +225,16 @@ encryption_include_filters="" encryption_exclude_filters="" encrypt_pck=false encrypt_directory=false +script_export_mode=2 [preset.1.options] custom_template/debug="" custom_template/release="" gradle_build/use_gradle_build=false +gradle_build/gradle_build_directory="" +gradle_build/android_source_template="" +gradle_build/compress_native_libraries=false gradle_build/export_format=0 gradle_build/min_sdk="" gradle_build/target_sdk="" @@ -232,8 +242,8 @@ architectures/armeabi-v7a=false architectures/arm64-v8a=true architectures/x86=false architectures/x86_64=false -version/code=14 -version/name="4.4" +version/code=15 +version/name="4.5" package/unique_name="org.godotengine.sandslide" package/name="sand slide" package/signed=true @@ -415,6 +425,7 @@ xr_features/passthrough=0 name="Windows Desktop" platform="Windows Desktop" runnable=false +advanced_options=false dedicated_server=false custom_features="" export_filter="all_resources" @@ -425,6 +436,7 @@ encryption_include_filters="" encryption_exclude_filters="" encrypt_pck=false encrypt_directory=false +script_export_mode=2 [preset.2.options] @@ -432,10 +444,8 @@ custom_template/debug="" custom_template/release="" debug/export_console_wrapper=1 binary_format/embed_pck=false -texture_format/bptc=false -texture_format/s3tc=true -texture_format/etc=false -texture_format/etc2=false +texture_format/s3tc_bptc=true +texture_format/etc2_astc=false binary_format/architecture="x86_64" codesign/enable=false codesign/timestamp=true @@ -455,6 +465,8 @@ application/file_description="" application/copyright="" application/trademarks="" application/export_angle=0 +application/export_d3d12=0 +application/d3d12_agility_sdk_multiarch=true ssh_remote_deploy/enabled=false ssh_remote_deploy/host="user@host_ip" ssh_remote_deploy/port="22" @@ -472,13 +484,18 @@ Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorActi ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue Remove-Item -Recurse -Force '{temp_dir}'" +texture_format/bptc=false +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false debug/export_console_script=0 [preset.3] name="Linux/X11" -platform="Linux/X11" +platform="Linux" runnable=true +advanced_options=false dedicated_server=false custom_features="" export_filter="all_resources" @@ -489,6 +506,7 @@ encryption_include_filters="" encryption_exclude_filters="" encrypt_pck=false encrypt_directory=false +script_export_mode=2 [preset.3.options] @@ -496,10 +514,8 @@ custom_template/debug="" custom_template/release="" debug/export_console_wrapper=1 binary_format/embed_pck=false -texture_format/bptc=true -texture_format/s3tc=true -texture_format/etc=false -texture_format/etc2=false +texture_format/s3tc_bptc=true +texture_format/etc2_astc=false binary_format/architecture="x86_64" ssh_remote_deploy/enabled=false ssh_remote_deploy/host="user@host_ip" @@ -513,6 +529,10 @@ unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") rm -rf \"{temp_dir}\"" +texture_format/bptc=true +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false debug/export_console_script=1 [preset.4] @@ -520,6 +540,7 @@ debug/export_console_script=1 name="Web" platform="Web" runnable=true +advanced_options=false dedicated_server=false custom_features="" export_filter="all_resources" @@ -530,12 +551,14 @@ encryption_include_filters="" encryption_exclude_filters="" encrypt_pck=false encrypt_directory=false +script_export_mode=2 [preset.4.options] custom_template/debug="" custom_template/release="" variant/extensions_support=true +variant/thread_support=false vram_texture_compression/for_desktop=true vram_texture_compression/for_mobile=false html/export_icon=true @@ -545,6 +568,7 @@ html/canvas_resize_policy=2 html/focus_canvas_on_start=true html/experimental_virtual_keyboard=false progressive_web_app/enabled=false +progressive_web_app/ensure_cross_origin_isolation_headers=true progressive_web_app/offline_page="" progressive_web_app/display=1 progressive_web_app/orientation=0 @@ -558,6 +582,7 @@ progressive_web_app/background_color=Color(0, 0, 0, 1) name="macOS" platform="macOS" runnable=true +advanced_options=false dedicated_server=false custom_features="" export_filter="all_resources" @@ -568,6 +593,7 @@ encryption_include_filters="" encryption_exclude_filters="" encrypt_pck=false encrypt_directory=false +script_export_mode=2 [preset.5.options] @@ -588,6 +614,7 @@ application/copyright_localized={} application/min_macos_version="10.12" application/export_angle=0 display/high_res=true +application/additional_plist_content="" xcode/platform_build="14C18" xcode/sdk_version="13.1" xcode/sdk_build="22C55" @@ -646,6 +673,148 @@ privacy/network_volumes_usage_description="" privacy/network_volumes_usage_description_localized={} privacy/removable_volumes_usage_description="" privacy/removable_volumes_usage_description_localized={} +privacy/tracking_enabled=false +privacy/tracking_domains=PackedStringArray() +privacy/collected_data/name/collected=false +privacy/collected_data/name/linked_to_user=false +privacy/collected_data/name/used_for_tracking=false +privacy/collected_data/name/collection_purposes=0 +privacy/collected_data/email_address/collected=false +privacy/collected_data/email_address/linked_to_user=false +privacy/collected_data/email_address/used_for_tracking=false +privacy/collected_data/email_address/collection_purposes=0 +privacy/collected_data/phone_number/collected=false +privacy/collected_data/phone_number/linked_to_user=false +privacy/collected_data/phone_number/used_for_tracking=false +privacy/collected_data/phone_number/collection_purposes=0 +privacy/collected_data/physical_address/collected=false +privacy/collected_data/physical_address/linked_to_user=false +privacy/collected_data/physical_address/used_for_tracking=false +privacy/collected_data/physical_address/collection_purposes=0 +privacy/collected_data/other_contact_info/collected=false +privacy/collected_data/other_contact_info/linked_to_user=false +privacy/collected_data/other_contact_info/used_for_tracking=false +privacy/collected_data/other_contact_info/collection_purposes=0 +privacy/collected_data/health/collected=false +privacy/collected_data/health/linked_to_user=false +privacy/collected_data/health/used_for_tracking=false +privacy/collected_data/health/collection_purposes=0 +privacy/collected_data/fitness/collected=false +privacy/collected_data/fitness/linked_to_user=false +privacy/collected_data/fitness/used_for_tracking=false +privacy/collected_data/fitness/collection_purposes=0 +privacy/collected_data/payment_info/collected=false +privacy/collected_data/payment_info/linked_to_user=false +privacy/collected_data/payment_info/used_for_tracking=false +privacy/collected_data/payment_info/collection_purposes=0 +privacy/collected_data/credit_info/collected=false +privacy/collected_data/credit_info/linked_to_user=false +privacy/collected_data/credit_info/used_for_tracking=false +privacy/collected_data/credit_info/collection_purposes=0 +privacy/collected_data/other_financial_info/collected=false +privacy/collected_data/other_financial_info/linked_to_user=false +privacy/collected_data/other_financial_info/used_for_tracking=false +privacy/collected_data/other_financial_info/collection_purposes=0 +privacy/collected_data/precise_location/collected=false +privacy/collected_data/precise_location/linked_to_user=false +privacy/collected_data/precise_location/used_for_tracking=false +privacy/collected_data/precise_location/collection_purposes=0 +privacy/collected_data/coarse_location/collected=false +privacy/collected_data/coarse_location/linked_to_user=false +privacy/collected_data/coarse_location/used_for_tracking=false +privacy/collected_data/coarse_location/collection_purposes=0 +privacy/collected_data/sensitive_info/collected=false +privacy/collected_data/sensitive_info/linked_to_user=false +privacy/collected_data/sensitive_info/used_for_tracking=false +privacy/collected_data/sensitive_info/collection_purposes=0 +privacy/collected_data/contacts/collected=false +privacy/collected_data/contacts/linked_to_user=false +privacy/collected_data/contacts/used_for_tracking=false +privacy/collected_data/contacts/collection_purposes=0 +privacy/collected_data/emails_or_text_messages/collected=false +privacy/collected_data/emails_or_text_messages/linked_to_user=false +privacy/collected_data/emails_or_text_messages/used_for_tracking=false +privacy/collected_data/emails_or_text_messages/collection_purposes=0 +privacy/collected_data/photos_or_videos/collected=false +privacy/collected_data/photos_or_videos/linked_to_user=false +privacy/collected_data/photos_or_videos/used_for_tracking=false +privacy/collected_data/photos_or_videos/collection_purposes=0 +privacy/collected_data/audio_data/collected=false +privacy/collected_data/audio_data/linked_to_user=false +privacy/collected_data/audio_data/used_for_tracking=false +privacy/collected_data/audio_data/collection_purposes=0 +privacy/collected_data/gameplay_content/collected=false +privacy/collected_data/gameplay_content/linked_to_user=false +privacy/collected_data/gameplay_content/used_for_tracking=false +privacy/collected_data/gameplay_content/collection_purposes=0 +privacy/collected_data/customer_support/collected=false +privacy/collected_data/customer_support/linked_to_user=false +privacy/collected_data/customer_support/used_for_tracking=false +privacy/collected_data/customer_support/collection_purposes=0 +privacy/collected_data/other_user_content/collected=false +privacy/collected_data/other_user_content/linked_to_user=false +privacy/collected_data/other_user_content/used_for_tracking=false +privacy/collected_data/other_user_content/collection_purposes=0 +privacy/collected_data/browsing_history/collected=false +privacy/collected_data/browsing_history/linked_to_user=false +privacy/collected_data/browsing_history/used_for_tracking=false +privacy/collected_data/browsing_history/collection_purposes=0 +privacy/collected_data/search_hhistory/collected=false +privacy/collected_data/search_hhistory/linked_to_user=false +privacy/collected_data/search_hhistory/used_for_tracking=false +privacy/collected_data/search_hhistory/collection_purposes=0 +privacy/collected_data/user_id/collected=false +privacy/collected_data/user_id/linked_to_user=false +privacy/collected_data/user_id/used_for_tracking=false +privacy/collected_data/user_id/collection_purposes=0 +privacy/collected_data/device_id/collected=false +privacy/collected_data/device_id/linked_to_user=false +privacy/collected_data/device_id/used_for_tracking=false +privacy/collected_data/device_id/collection_purposes=0 +privacy/collected_data/purchase_history/collected=false +privacy/collected_data/purchase_history/linked_to_user=false +privacy/collected_data/purchase_history/used_for_tracking=false +privacy/collected_data/purchase_history/collection_purposes=0 +privacy/collected_data/product_interaction/collected=false +privacy/collected_data/product_interaction/linked_to_user=false +privacy/collected_data/product_interaction/used_for_tracking=false +privacy/collected_data/product_interaction/collection_purposes=0 +privacy/collected_data/advertising_data/collected=false +privacy/collected_data/advertising_data/linked_to_user=false +privacy/collected_data/advertising_data/used_for_tracking=false +privacy/collected_data/advertising_data/collection_purposes=0 +privacy/collected_data/other_usage_data/collected=false +privacy/collected_data/other_usage_data/linked_to_user=false +privacy/collected_data/other_usage_data/used_for_tracking=false +privacy/collected_data/other_usage_data/collection_purposes=0 +privacy/collected_data/crash_data/collected=false +privacy/collected_data/crash_data/linked_to_user=false +privacy/collected_data/crash_data/used_for_tracking=false +privacy/collected_data/crash_data/collection_purposes=0 +privacy/collected_data/performance_data/collected=false +privacy/collected_data/performance_data/linked_to_user=false +privacy/collected_data/performance_data/used_for_tracking=false +privacy/collected_data/performance_data/collection_purposes=0 +privacy/collected_data/other_diagnostic_data/collected=false +privacy/collected_data/other_diagnostic_data/linked_to_user=false +privacy/collected_data/other_diagnostic_data/used_for_tracking=false +privacy/collected_data/other_diagnostic_data/collection_purposes=0 +privacy/collected_data/environment_scanning/collected=false +privacy/collected_data/environment_scanning/linked_to_user=false +privacy/collected_data/environment_scanning/used_for_tracking=false +privacy/collected_data/environment_scanning/collection_purposes=0 +privacy/collected_data/hands/collected=false +privacy/collected_data/hands/linked_to_user=false +privacy/collected_data/hands/used_for_tracking=false +privacy/collected_data/hands/collection_purposes=0 +privacy/collected_data/head/collected=false +privacy/collected_data/head/linked_to_user=false +privacy/collected_data/head/used_for_tracking=false +privacy/collected_data/head/collection_purposes=0 +privacy/collected_data/other_data_types/collected=false +privacy/collected_data/other_data_types/linked_to_user=false +privacy/collected_data/other_data_types/used_for_tracking=false +privacy/collected_data/other_data_types/collection_purposes=0 ssh_remote_deploy/enabled=false ssh_remote_deploy/host="user@host_ip" ssh_remote_deploy/port="22" diff --git a/game/main/Main.tscn b/game/main/Main.tscn index 1902a4d..0088a8d 100644 --- a/game/main/Main.tscn +++ b/game/main/Main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=37 format=3 uid="uid://ggbp6fch244c"] +[gd_scene load_steps=38 format=3 uid="uid://ggbp6fch244c"] [ext_resource type="Script" path="res://main/main.gd" id="1_2pidp"] [ext_resource type="Theme" uid="uid://co20v1mxv2dfm" path="res://main/ui/_theme/theme.tres" id="2_nb65v"] @@ -21,6 +21,7 @@ [ext_resource type="Script" path="res://main/element_manager/element_manager.gd" id="18_mpubp"] [ext_resource type="Texture2D" uid="uid://cwrw6b4hfr57h" path="res://main/ui/_icons/icon_circle2.png" id="19_nbax8"] [ext_resource type="Script" path="res://main/ui/element_selector/element_select_info.gd" id="19_ys0g5"] +[ext_resource type="Script" path="res://main/world_environment.gd" id="24_vnhd0"] [ext_resource type="Script" path="res://main/save_file/save_file_manager.gd" id="87_5tqe6"] [ext_resource type="Script" path="res://main/ui/element_selector/element_button.gd" id="107_ic066"] @@ -30,13 +31,6 @@ bg_color = Color(0.509804, 0.517647, 0.560784, 1) expand_margin_top = 30.0 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_er738"] -bg_color = Color(0.313726, 0.313726, 0.360784, 1) -corner_radius_top_left = 4 -corner_radius_top_right = 4 -corner_radius_bottom_right = 4 -corner_radius_bottom_left = 4 - [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4csg6"] bg_color = Color(0.4, 0.4, 0.45098, 1) corner_radius_top_left = 4 @@ -51,7 +45,7 @@ corner_radius_top_right = 4 corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7pq0y"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_er738"] bg_color = Color(0.313726, 0.313726, 0.360784, 1) corner_radius_top_left = 4 corner_radius_top_right = 4 @@ -72,6 +66,13 @@ corner_radius_top_right = 4 corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7pq0y"] +bg_color = Color(0.313726, 0.313726, 0.360784, 1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + [sub_resource type="Animation" id="Animation_sr1iu"] length = 0.001 tracks/0/type = "value" @@ -125,8 +126,13 @@ _data = { } [sub_resource type="Environment" id="Environment_6bfny"] +background_mode = 3 glow_enabled = true +glow_intensity = 1.2 glow_strength = 1.1 +glow_bloom = 0.3 +glow_hdr_threshold = 0.8 +glow_hdr_scale = 3.61 [node name="Main" type="Node"] script = ExtResource("1_2pidp") @@ -211,9 +217,9 @@ custom_minimum_size = Vector2(42, 42) layout_mode = 2 focus_mode = 0 theme_override_font_sizes/font_size = 18 -theme_override_styles/normal = SubResource("StyleBoxFlat_er738") theme_override_styles/hover = SubResource("StyleBoxFlat_4csg6") theme_override_styles/pressed = SubResource("StyleBoxFlat_jp40q") +theme_override_styles/normal = SubResource("StyleBoxFlat_er738") icon = ExtResource("6_k1fvi") icon_alignment = 1 script = ExtResource("107_ic066") @@ -224,10 +230,10 @@ custom_minimum_size = Vector2(42, 42) layout_mode = 2 focus_mode = 0 theme_override_font_sizes/font_size = 18 -theme_override_styles/normal = SubResource("StyleBoxFlat_7pq0y") +theme_override_styles/focus = SubResource("StyleBoxFlat_dha6b") theme_override_styles/hover = SubResource("StyleBoxFlat_dha6b") theme_override_styles/pressed = SubResource("StyleBoxFlat_3h7k3") -theme_override_styles/focus = SubResource("StyleBoxFlat_dha6b") +theme_override_styles/normal = SubResource("StyleBoxFlat_7pq0y") icon = ExtResource("8_g0v0t") icon_alignment = 1 @@ -240,9 +246,9 @@ layout_mode = 2 size_flags_horizontal = 2 focus_mode = 0 theme_override_font_sizes/font_size = 18 -theme_override_styles/normal = SubResource("StyleBoxFlat_7pq0y") theme_override_styles/hover = SubResource("StyleBoxFlat_dha6b") theme_override_styles/pressed = SubResource("StyleBoxFlat_3h7k3") +theme_override_styles/normal = SubResource("StyleBoxFlat_7pq0y") icon = ExtResource("9_1ns3c") icon_alignment = 1 @@ -253,9 +259,9 @@ layout_mode = 2 size_flags_horizontal = 10 focus_mode = 0 theme_override_font_sizes/font_size = 18 -theme_override_styles/normal = SubResource("StyleBoxFlat_7pq0y") theme_override_styles/hover = SubResource("StyleBoxFlat_dha6b") theme_override_styles/pressed = SubResource("StyleBoxFlat_3h7k3") +theme_override_styles/normal = SubResource("StyleBoxFlat_7pq0y") icon = ExtResource("9_hcxqy") icon_alignment = 1 @@ -265,9 +271,9 @@ custom_minimum_size = Vector2(42, 42) layout_mode = 2 focus_mode = 0 theme_override_font_sizes/font_size = 18 -theme_override_styles/normal = SubResource("StyleBoxFlat_7pq0y") theme_override_styles/hover = SubResource("StyleBoxFlat_dha6b") theme_override_styles/pressed = SubResource("StyleBoxFlat_3h7k3") +theme_override_styles/normal = SubResource("StyleBoxFlat_7pq0y") icon = ExtResource("10_x6g80") icon_alignment = 1 @@ -277,9 +283,9 @@ custom_minimum_size = Vector2(42, 42) layout_mode = 2 focus_mode = 0 theme_override_font_sizes/font_size = 18 -theme_override_styles/normal = SubResource("StyleBoxFlat_7pq0y") theme_override_styles/hover = SubResource("StyleBoxFlat_dha6b") theme_override_styles/pressed = SubResource("StyleBoxFlat_3h7k3") +theme_override_styles/normal = SubResource("StyleBoxFlat_7pq0y") icon = ExtResource("11_nf3sg") icon_alignment = 1 @@ -287,6 +293,7 @@ icon_alignment = 1 unique_name_in_owner = true custom_minimum_size = Vector2(0, 128) layout_mode = 2 +current_tab = 0 simulation = NodePath("../../../../../../..") eraser_button = NodePath("../ButtonRow/Eraser") tap_button = NodePath("../ButtonRow/Tap") @@ -352,8 +359,6 @@ wait_time = 5.0 one_shot = true [node name="SaveFileMenu" parent="CanvasLayer/UI" node_paths=PackedStringArray("save_file_manager") instance=ExtResource("14_73tcr")] -visible = false -modulate = Color(1, 1, 1, 0) layout_mode = 1 save_file_manager = NodePath("../../../SaveFileManager") @@ -381,3 +386,4 @@ script = ExtResource("18_mer41") [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_6bfny") +script = ExtResource("24_vnhd0") diff --git a/game/main/ui/_theme/font/Poppins-Regular.ttf.import b/game/main/ui/_theme/font/Poppins-Regular.ttf.import index 0716ce3..5ca0e8c 100644 --- a/game/main/ui/_theme/font/Poppins-Regular.ttf.import +++ b/game/main/ui/_theme/font/Poppins-Regular.ttf.import @@ -15,6 +15,7 @@ dest_files=["res://.godot/imported/Poppins-Regular.ttf-f5dbde34aa3a0e0edf7eae71e Rendering=null antialiasing=0 generate_mipmaps=true +disable_embedded_bitmaps=true multichannel_signed_distance_field=true msdf_pixel_range=8 msdf_size=48 diff --git a/game/main/ui/submenu/element_editor/ElementEditor.tscn b/game/main/ui/submenu/element_editor/ElementEditor.tscn index 9678669..4d37567 100644 --- a/game/main/ui/submenu/element_editor/ElementEditor.tscn +++ b/game/main/ui/submenu/element_editor/ElementEditor.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=29 format=3 uid="uid://bqwqmevgndrm0"] +[gd_scene load_steps=30 format=3 uid="uid://bqwqmevgndrm0"] [ext_resource type="Theme" uid="uid://co20v1mxv2dfm" path="res://main/ui/_theme/theme.tres" id="1_gu8tf"] [ext_resource type="Script" path="res://main/ui/submenu/element_editor/element_editor_menu.gd" id="2_ae0hb"] [ext_resource type="FontFile" uid="uid://b8lxwo5dkwrs4" path="res://main/ui/_theme/font/Poppins-Regular.ttf" id="3_gc23u"] [ext_resource type="Texture2D" uid="uid://skg5bmd8m812" path="res://main/ui/_icons/close.png" id="4_8lnwy"] +[ext_resource type="Script" path="res://main/ui/submenu/element_editor/nonblurry_option_button.gd" id="5_177m1"] [ext_resource type="PackedScene" uid="uid://dw3yr1ktgbep0" path="res://main/ui/element_selector/ElementPickerButton.tscn" id="5_d2qg0"] [ext_resource type="PackedScene" uid="uid://danjqv04qm3f6" path="res://main/ui/element_selector/ElementSelector.tscn" id="7_jk2v0"] @@ -22,22 +23,22 @@ corner_radius_top_right = 12 corner_radius_bottom_right = 12 corner_radius_bottom_left = 12 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xa765"] -bg_color = Color(0.313726, 0.313726, 0.360784, 1) +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_11w6c"] +bg_color = Color(0.4, 0.4, 0.45098, 1) corner_radius_top_left = 4 corner_radius_top_right = 4 corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_11w6c"] -bg_color = Color(0.4, 0.4, 0.45098, 1) +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_us5ki"] +bg_color = Color(0.188235, 0.188235, 0.239216, 1) corner_radius_top_left = 4 corner_radius_top_right = 4 corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_us5ki"] -bg_color = Color(0.188235, 0.188235, 0.239216, 1) +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xa765"] +bg_color = Color(0.313726, 0.313726, 0.360784, 1) corner_radius_top_left = 4 corner_radius_top_right = 4 corner_radius_bottom_right = 4 @@ -46,50 +47,50 @@ corner_radius_bottom_left = 4 [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_hcor6"] content_margin_right = 12.0 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_oid3n"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_37g2l"] content_margin_left = 3.0 -bg_color = Color(0.313726, 0.313726, 0.360784, 1) +bg_color = Color(0.247059, 0.247059, 0.301961, 1) corner_radius_top_left = 4 corner_radius_top_right = 4 corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_37g2l"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_oid3n"] content_margin_left = 3.0 -bg_color = Color(0.247059, 0.247059, 0.301961, 1) +bg_color = Color(0.313726, 0.313726, 0.360784, 1) corner_radius_top_left = 4 corner_radius_top_right = 4 corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cu37i"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_y3pxx"] content_margin_left = 4.0 content_margin_top = 2.0 content_margin_right = 0.0 content_margin_bottom = 2.0 -bg_color = Color(0.313726, 0.313726, 0.360784, 1) +bg_color = Color(0.454902, 0.462745, 0.501961, 1) corner_radius_top_left = 4 corner_radius_top_right = 4 corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_y3pxx"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_hm12v"] content_margin_left = 4.0 content_margin_top = 2.0 content_margin_right = 0.0 content_margin_bottom = 2.0 -bg_color = Color(0.454902, 0.462745, 0.501961, 1) +bg_color = Color(0.223529, 0.215686, 0.278431, 1) corner_radius_top_left = 4 corner_radius_top_right = 4 corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_hm12v"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cu37i"] content_margin_left = 4.0 content_margin_top = 2.0 content_margin_right = 0.0 content_margin_bottom = 2.0 -bg_color = Color(0.223529, 0.215686, 0.278431, 1) +bg_color = Color(0.313726, 0.313726, 0.360784, 1) corner_radius_top_left = 4 corner_radius_top_right = 4 corner_radius_bottom_right = 4 @@ -360,9 +361,9 @@ layout_mode = 2 size_flags_horizontal = 8 size_flags_vertical = 0 focus_mode = 0 -theme_override_styles/normal = SubResource("StyleBoxFlat_xa765") theme_override_styles/hover = SubResource("StyleBoxFlat_11w6c") theme_override_styles/pressed = SubResource("StyleBoxFlat_us5ki") +theme_override_styles/normal = SubResource("StyleBoxFlat_xa765") icon = ExtResource("4_8lnwy") icon_alignment = 1 @@ -400,8 +401,8 @@ unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 21 -theme_override_styles/normal = SubResource("StyleBoxFlat_oid3n") theme_override_styles/focus = SubResource("StyleBoxFlat_37g2l") +theme_override_styles/normal = SubResource("StyleBoxFlat_oid3n") placeholder_text = "my_elem" [node name="ColorStyleGrouping" type="HBoxContainer" parent="SettingsContainer/PanelContainer/VBoxContainer/ScrollContainer/VBoxContainer"] @@ -421,14 +422,13 @@ size_flags_horizontal = 3 focus_mode = 0 theme_override_constants/outline_size = 0 theme_override_font_sizes/font_size = 21 -theme_override_styles/normal = SubResource("StyleBoxFlat_cu37i") theme_override_styles/hover = SubResource("StyleBoxFlat_y3pxx") theme_override_styles/pressed = SubResource("StyleBoxFlat_hm12v") -item_count = 2 +theme_override_styles/normal = SubResource("StyleBoxFlat_cu37i") selected = 0 fit_to_longest_item = false +item_count = 2 popup/item_0/text = "flat" -popup/item_0/id = 0 popup/item_1/text = "fancy" popup/item_1/id = 1 @@ -505,14 +505,14 @@ unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 focus_mode = 0 +theme_override_colors/font_color = Color(1, 1, 1, 1) theme_override_font_sizes/font_size = 21 -theme_override_styles/normal = SubResource("StyleBoxFlat_cu37i") theme_override_styles/hover = SubResource("StyleBoxFlat_y3pxx") theme_override_styles/pressed = SubResource("StyleBoxFlat_hm12v") -item_count = 5 +theme_override_styles/normal = SubResource("StyleBoxFlat_cu37i") selected = 1 +item_count = 5 popup/item_0/text = "powder" -popup/item_0/id = 0 popup/item_1/text = "solid" popup/item_1/id = 1 popup/item_2/text = "liquid" @@ -521,6 +521,7 @@ popup/item_3/text = "gas" popup/item_3/id = 3 popup/item_4/text = "laser" popup/item_4/id = 4 +script = ExtResource("5_177m1") [node name="DensityGrouping" type="HBoxContainer" parent="SettingsContainer/PanelContainer/VBoxContainer/ScrollContainer/VBoxContainer"] unique_name_in_owner = true @@ -1087,6 +1088,7 @@ theme_override_constants/margin_bottom = 16 [node name="ElementSelector" parent="ElementPickerContainer" instance=ExtResource("7_jk2v0")] layout_mode = 2 +current_tab = 0 tabs_visible = false simple = true diff --git a/game/main/ui/submenu/element_editor/nonblurry_option_button.gd b/game/main/ui/submenu/element_editor/nonblurry_option_button.gd new file mode 100644 index 0000000..ffb730a --- /dev/null +++ b/game/main/ui/submenu/element_editor/nonblurry_option_button.gd @@ -0,0 +1,4 @@ +class_name NonBlurryOptionButton extends OptionButton + +func _ready() -> void: + get_popup().content_scale_factor = 2.0 diff --git a/game/main/world_environment.gd b/game/main/world_environment.gd new file mode 100644 index 0000000..f141969 --- /dev/null +++ b/game/main/world_environment.gd @@ -0,0 +1,5 @@ +extends WorldEnvironment + +func _ready() -> void: + pass + #set("glow_levels/glow_strength", 0.5) diff --git a/game/project.godot b/game/project.godot index fc0e2bc..e3c240d 100644 --- a/game/project.godot +++ b/game/project.godot @@ -13,7 +13,7 @@ config_version=5 config/name="sandslide" config/version="4.3" run/main_scene="res://main/Main.tscn" -config/features=PackedStringArray("4.2") +config/features=PackedStringArray("4.3") run/max_fps=60 boot_splash/bg_color=Color(0, 0, 0, 1) boot_splash/image="res://main/ui/_icons/splash.png" @@ -64,12 +64,12 @@ ui_down={ } toggle_fps={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } enter={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } screen_press={ diff --git a/godot-cpp b/godot-cpp index 9da6ecd..6d939e6 160000 --- a/godot-cpp +++ b/godot-cpp @@ -1 +1 @@ -Subproject commit 9da6ecd14485a3dacc04d8e0558c21beb709ca9f +Subproject commit 6d939e6878c3fb14ae521207ad2d2f0267fd0a9b