From edb5ec9dfaab93569ecc64b53e975649db8986c4 Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 26 May 2026 23:21:44 +0300 Subject: [PATCH] Refactor code structure for improved readability and maintainability --- .continue/.continueignore | 5 + .continue/rules/01-godot-core.md | 13 + .continue/rules/02-architecture.md | 9 + Autoload/Global.gd | 15 +- Stage/stage.gd | 14 +- {Autoload => data/legacy}/ApocalypseQueue.csv | 0 {Autoload => data/legacy}/ExtraParams.csv | 0 {Autoload => data/legacy}/Forces.csv | 0 {Autoload => data/legacy}/Tutorial.csv | 0 {Autoload => data/legacy}/Versions.csv | 0 {Autoload => data/legacy}/civ-control.csv | 0 {Autoload => data/legacy}/civs.csv | 0 {Autoload => data/legacy}/data.csv | 0 {Autoload => data/legacy}/locale-en.csv | 0 {Autoload => data/legacy}/locale-ru.csv | 0 .../legacy}/log-message-templates-en.csv | 0 .../legacy}/log-message-templates-ru.csv | 0 {Autoload => data/legacy}/templates-ru.csv | 0 {Autoload => data}/locale.en.txt | 0 {Autoload => data}/locale.ru.txt | 0 {Autoload => data}/owniverse_entitites.txt | 4 +- {Autoload => data}/owniverse_items.txt | 0 {Autoload => data}/templates.en.txt | 0 export_presets.cfg | 266 +----------------- project.godot | 2 +- world/entity.gd | 25 +- world/owniverse.gd | 61 +++- world.tscn => world/world.tscn | 250 ++++++++-------- 28 files changed, 238 insertions(+), 426 deletions(-) create mode 100644 .continue/.continueignore create mode 100644 .continue/rules/01-godot-core.md create mode 100644 .continue/rules/02-architecture.md rename {Autoload => data/legacy}/ApocalypseQueue.csv (100%) rename {Autoload => data/legacy}/ExtraParams.csv (100%) rename {Autoload => data/legacy}/Forces.csv (100%) rename {Autoload => data/legacy}/Tutorial.csv (100%) rename {Autoload => data/legacy}/Versions.csv (100%) rename {Autoload => data/legacy}/civ-control.csv (100%) rename {Autoload => data/legacy}/civs.csv (100%) rename {Autoload => data/legacy}/data.csv (100%) rename {Autoload => data/legacy}/locale-en.csv (100%) rename {Autoload => data/legacy}/locale-ru.csv (100%) rename {Autoload => data/legacy}/log-message-templates-en.csv (100%) rename {Autoload => data/legacy}/log-message-templates-ru.csv (100%) rename {Autoload => data/legacy}/templates-ru.csv (100%) rename {Autoload => data}/locale.en.txt (100%) rename {Autoload => data}/locale.ru.txt (100%) rename {Autoload => data}/owniverse_entitites.txt (99%) rename {Autoload => data}/owniverse_items.txt (100%) rename {Autoload => data}/templates.en.txt (100%) rename world.tscn => world/world.tscn (84%) diff --git a/.continue/.continueignore b/.continue/.continueignore new file mode 100644 index 0000000..d674c75 --- /dev/null +++ b/.continue/.continueignore @@ -0,0 +1,5 @@ +.godot/ +export/ +*.tscn +*.import +addons/ diff --git a/.continue/rules/01-godot-core.md b/.continue/rules/01-godot-core.md new file mode 100644 index 0000000..ad37677 --- /dev/null +++ b/.continue/rules/01-godot-core.md @@ -0,0 +1,13 @@ +--- +name: Godot 4.4 Core Rules +priority: high +--- + +Ты — senior Godot 4.4 GDScript разработчик. + +- Всегда используй Godot 4.4+ API. +- Пиши строго типизированный код (`var health: int = 100`, `: Array[Node]` и т.д.). +- Предпочитай Signals вместо проверки в _process. +- Используй @export, @export_range, @export_enum, @onready. +- Composition over deep inheritance. +- Менеджеры и автолоады выноси в отдельные singleton'ы. diff --git a/.continue/rules/02-architecture.md b/.continue/rules/02-architecture.md new file mode 100644 index 0000000..c7e421c --- /dev/null +++ b/.continue/rules/02-architecture.md @@ -0,0 +1,9 @@ +--- +name: Project Architecture +--- + +В этом проекте используется следующая архитектура: +- StateMachine на основе Node + signals +- Inventory использует ItemStack и SignalBus +- Все данные сохраняются через SaveManager (autoload) +- UI строится через Control + custom themes diff --git a/Autoload/Global.gd b/Autoload/Global.gd index 73706be..c7323b9 100644 --- a/Autoload/Global.gd +++ b/Autoload/Global.gd @@ -30,19 +30,18 @@ func get_description(item_id: String, items: Array = []) -> String: var description: String = Templates[Locale][item_id]["text"] var value = 0 for item in items: - description.replace("value"+str(value), str(item)) + description.replace("value" + str(value), str(item)) return description func _ready() -> void: - - OwniverseEntities = _read_from_csv("res://autoload/owniverse_entitites.txt") - OwniverseItems = _read_from_csv("res://autoload/owniverse_items.txt") + OwniverseEntities = _read_from_csv("res://data/owniverse_entitites.txt") + OwniverseItems = _read_from_csv("res://data/owniverse_items.txt") - Locales["en"] = _read_from_csv("res://autoload/locale.en.txt") - Locales["ru"] = _read_from_csv("res://autoload/locale.ru.txt") + Locales["en"] = _read_from_csv("res://data/locale.en.txt") + Locales["ru"] = _read_from_csv("res://data/locale.ru.txt") - Templates["en"] = _read_from_csv("res://autoload/templates.en.txt") + Templates["en"] = _read_from_csv("res://data/templates.en.txt") func _read_from_csv(file_path: String) -> Dictionary: @@ -65,7 +64,7 @@ func _read_from_csv(file_path: String) -> Dictionary: while not file.eof_reached(): var raw_row = file.get_csv_line("|") - if raw_row.is_empty(): # пропускаем пустые строки + if raw_row.is_empty(): # пропускаем пустые строки continue var trimmed_row: PackedStringArray = [] diff --git a/Stage/stage.gd b/Stage/stage.gd index c0783df..ef39575 100644 --- a/Stage/stage.gd +++ b/Stage/stage.gd @@ -70,7 +70,7 @@ var g_active_items: Dictionary = {} var owniverse:Owniverse = Owniverse.new() var owniverse_items: Dictionary[String, OwniverseItem] = {} -var locked_items:Dictionary = {} +#var locked_items:Dictionary = {} var item_list_to_update: Dictionary = {} @@ -161,8 +161,8 @@ func _init_owniverse_items() -> bool: item.init_button(item_props) item.item_activated.connect(item_activated) - if owniverse.entities.has(item_id): - item.visible = owniverse.entities[item_id].is_unlocked + #if owniverse.entities.has(item_id): + #item.visible = owniverse.entities[item_id].is_unlocked owniverse_items[item_id] = item @@ -176,6 +176,11 @@ func item_activated(item: OwniverseItem) -> void: print(item.item_id) if item.item_id == "S" or item.item_id == "H": owniverse.produce(item.item_id, 1) + +func _unlock_item(item_id: String): + owniverse_items[item_id].visible = true + print("Unlocked ", item_id) + pass func _check_counters(delta: float) -> Array: @@ -235,11 +240,14 @@ func _ready() -> void: owniverse.init_enitities() _init_owniverse_items() + owniverse.unlock_item.connect(_unlock_item) g_counters.swipe.sec = 0.2 func _process(delta: float) -> void: # Update date + owniverse.cycle(delta) + var sdt: String = str(snapped(owniverse.add_time_delta(delta), 0.1)) set_datetime(sdt) diff --git a/Autoload/ApocalypseQueue.csv b/data/legacy/ApocalypseQueue.csv similarity index 100% rename from Autoload/ApocalypseQueue.csv rename to data/legacy/ApocalypseQueue.csv diff --git a/Autoload/ExtraParams.csv b/data/legacy/ExtraParams.csv similarity index 100% rename from Autoload/ExtraParams.csv rename to data/legacy/ExtraParams.csv diff --git a/Autoload/Forces.csv b/data/legacy/Forces.csv similarity index 100% rename from Autoload/Forces.csv rename to data/legacy/Forces.csv diff --git a/Autoload/Tutorial.csv b/data/legacy/Tutorial.csv similarity index 100% rename from Autoload/Tutorial.csv rename to data/legacy/Tutorial.csv diff --git a/Autoload/Versions.csv b/data/legacy/Versions.csv similarity index 100% rename from Autoload/Versions.csv rename to data/legacy/Versions.csv diff --git a/Autoload/civ-control.csv b/data/legacy/civ-control.csv similarity index 100% rename from Autoload/civ-control.csv rename to data/legacy/civ-control.csv diff --git a/Autoload/civs.csv b/data/legacy/civs.csv similarity index 100% rename from Autoload/civs.csv rename to data/legacy/civs.csv diff --git a/Autoload/data.csv b/data/legacy/data.csv similarity index 100% rename from Autoload/data.csv rename to data/legacy/data.csv diff --git a/Autoload/locale-en.csv b/data/legacy/locale-en.csv similarity index 100% rename from Autoload/locale-en.csv rename to data/legacy/locale-en.csv diff --git a/Autoload/locale-ru.csv b/data/legacy/locale-ru.csv similarity index 100% rename from Autoload/locale-ru.csv rename to data/legacy/locale-ru.csv diff --git a/Autoload/log-message-templates-en.csv b/data/legacy/log-message-templates-en.csv similarity index 100% rename from Autoload/log-message-templates-en.csv rename to data/legacy/log-message-templates-en.csv diff --git a/Autoload/log-message-templates-ru.csv b/data/legacy/log-message-templates-ru.csv similarity index 100% rename from Autoload/log-message-templates-ru.csv rename to data/legacy/log-message-templates-ru.csv diff --git a/Autoload/templates-ru.csv b/data/legacy/templates-ru.csv similarity index 100% rename from Autoload/templates-ru.csv rename to data/legacy/templates-ru.csv diff --git a/Autoload/locale.en.txt b/data/locale.en.txt similarity index 100% rename from Autoload/locale.en.txt rename to data/locale.en.txt diff --git a/Autoload/locale.ru.txt b/data/locale.ru.txt similarity index 100% rename from Autoload/locale.ru.txt rename to data/locale.ru.txt diff --git a/Autoload/owniverse_entitites.txt b/data/owniverse_entitites.txt similarity index 99% rename from Autoload/owniverse_entitites.txt rename to data/owniverse_entitites.txt index 58aa70a..23a8335 100644 --- a/Autoload/owniverse_entitites.txt +++ b/data/owniverse_entitites.txt @@ -1,6 +1,6 @@ id|is_visible|unlock|cost|bind|mass|space|lifespan|auto|gamma|blast|life_product|voids|output|destroy_level|degradation|planets|count_as|group_as|event_group|space_bonus|civ_bonus|claim -S|1|prime|||||||||||||||||S||| -H|1|prime|||||||||||||||||H||| +S|1|S:0|||||||||||||||||S||| +H|1|H:0|||||||||||||||||H||| He|1|He:1|||||||||||||||||||| Met|1|Met:1|||||||||||||||||||| BD|1|BD:1|||||||||||||||||||| diff --git a/Autoload/owniverse_items.txt b/data/owniverse_items.txt similarity index 100% rename from Autoload/owniverse_items.txt rename to data/owniverse_items.txt diff --git a/Autoload/templates.en.txt b/data/templates.en.txt similarity index 100% rename from Autoload/templates.en.txt rename to data/templates.en.txt diff --git a/export_presets.cfg b/export_presets.cfg index d3cd0d8..b15d133 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -8,7 +8,7 @@ custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" -export_path="../../Documents/Owad/Owniverse.I/Builds/owniverse.0.6.9-125.exe" +export_path="../../Documents/Owad/Owniverse.I/Builds/owniverse.0.6.11-127.exe" patches=PackedStringArray() patch_delta_encoding=false patch_delta_compression_level_zstd=19 @@ -80,7 +80,7 @@ custom_features="" export_filter="all_resources" include_filter="res://autoload/*.*, *.gd, *.tscn, *.tres, *.json, *.txt, *.png, res://autoload/entitites.txt" exclude_filter="" -export_path="../../Documents/Owad/Owniverse.I/Builds/owniverse.0.6.9-125.aab" +export_path="../../Documents/Owad/Owniverse.I/Builds/owniverse.0.6.11-127.aab" patches=PackedStringArray() patch_delta_encoding=false patch_delta_compression_level_zstd=19 @@ -110,7 +110,7 @@ architectures/armeabi-v7a=false architectures/arm64-v8a=true architectures/x86=false architectures/x86_64=false -version/code=126 +version/code=127 version/name="" package/unique_name="com.KIDGameProduction.Owniverse" package/name="Owniverse" @@ -295,263 +295,3 @@ permissions/write_sms=false permissions/write_social_stream=false permissions/write_sync_settings=false permissions/write_user_dictionary=false - -[preset.2] - -name="macOS" -platform="macOS" -runnable=true -dedicated_server=false -custom_features="" -export_filter="all_resources" -include_filter="" -exclude_filter="" -export_path="../../Sync/Owad/Owniverse.I/Builds/owniverse.II.20260309.dmg" -patches=PackedStringArray() -patch_delta_encoding=false -patch_delta_compression_level_zstd=19 -patch_delta_min_reduction=0.1 -patch_delta_include_filters="*" -patch_delta_exclude_filters="" -encryption_include_filters="" -encryption_exclude_filters="" -seed=0 -encrypt_pck=false -encrypt_directory=false -script_export_mode=2 - -[preset.2.options] - -export/distribution_type=1 -binary_format/architecture="universal" -custom_template/debug="" -custom_template/release="" -debug/export_console_wrapper=1 -application/liquid_glass_icon="" -application/icon="" -application/icon_interpolation=4 -application/bundle_identifier="com.KIDGameProduction.Owniverse" -application/signature="" -application/app_category="Games" -application/short_version="" -application/version="" -application/copyright="" -application/copyright_localized={} -application/min_macos_version_x86_64="10.12" -application/min_macos_version_arm64="11.00" -application/export_angle=0 -display/high_res=true -shader_baker/enabled=false -application/additional_plist_content="" -xcode/platform_build="14C18" -xcode/sdk_version="13.1" -xcode/sdk_build="22C55" -xcode/sdk_name="macosx13.1" -xcode/xcode_version="1420" -xcode/xcode_build="14C18" -codesign/codesign=3 -codesign/installer_identity="" -codesign/apple_team_id="" -codesign/identity="" -codesign/entitlements/custom_file="" -codesign/entitlements/allow_jit_code_execution=false -codesign/entitlements/allow_unsigned_executable_memory=false -codesign/entitlements/allow_dyld_environment_variables=false -codesign/entitlements/disable_library_validation=false -codesign/entitlements/audio_input=false -codesign/entitlements/camera=false -codesign/entitlements/location=false -codesign/entitlements/address_book=false -codesign/entitlements/calendars=false -codesign/entitlements/photos_library=false -codesign/entitlements/apple_events=false -codesign/entitlements/debugging=false -codesign/entitlements/app_sandbox/enabled=false -codesign/entitlements/app_sandbox/network_server=false -codesign/entitlements/app_sandbox/network_client=false -codesign/entitlements/app_sandbox/device_usb=false -codesign/entitlements/app_sandbox/device_bluetooth=false -codesign/entitlements/app_sandbox/files_downloads=0 -codesign/entitlements/app_sandbox/files_pictures=0 -codesign/entitlements/app_sandbox/files_music=0 -codesign/entitlements/app_sandbox/files_movies=0 -codesign/entitlements/app_sandbox/files_user_selected=0 -codesign/entitlements/app_sandbox/helper_executables=[] -codesign/entitlements/additional="" -codesign/custom_options=PackedStringArray() -notarization/notarization=1 -privacy/microphone_usage_description="" -privacy/microphone_usage_description_localized={} -privacy/camera_usage_description="" -privacy/camera_usage_description_localized={} -privacy/location_usage_description="" -privacy/location_usage_description_localized={} -privacy/address_book_usage_description="" -privacy/address_book_usage_description_localized={} -privacy/calendar_usage_description="" -privacy/calendar_usage_description_localized={} -privacy/photos_library_usage_description="" -privacy/photos_library_usage_description_localized={} -privacy/desktop_folder_usage_description="" -privacy/desktop_folder_usage_description_localized={} -privacy/documents_folder_usage_description="" -privacy/documents_folder_usage_description_localized={} -privacy/downloads_folder_usage_description="" -privacy/downloads_folder_usage_description_localized={} -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_history/collected=false -privacy/collected_data/search_history/linked_to_user=false -privacy/collected_data/search_history/used_for_tracking=false -privacy/collected_data/search_history/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" -ssh_remote_deploy/extra_args_ssh="" -ssh_remote_deploy/extra_args_scp="" -ssh_remote_deploy/run_script="#!/usr/bin/env bash -unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" -open \"{temp_dir}/{exe_name}.app\" --args {cmd_args}" -ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash -pkill -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\" -rm -rf \"{temp_dir}\"" diff --git a/project.godot b/project.godot index 36665cc..b4e65fc 100644 --- a/project.godot +++ b/project.godot @@ -15,7 +15,7 @@ compatibility/default_parent_skeleton_in_mesh_instance_3d=true [application] config/name="Owniverse" -config/version="0.6.10" +config/version="0.6.11" run/main_scene="uid://bv384dpmvjv8o" config/features=PackedStringArray("4.6", "Mobile") boot_splash/show_image=false diff --git a/world/entity.gd b/world/entity.gd index 0bc77c9..0544ea6 100644 --- a/world/entity.gd +++ b/world/entity.gd @@ -4,16 +4,17 @@ class_name OwniverseEntity var id: String var is_visible: bool = false var unlock: Dictionary = {} -var is_unlocked: bool = false var cost: Dictionary = {} var bind: Dictionary = {} -var mass: float -var space: int +var mass: float +var space: int var lifespan: int var auto: float -var gamma: float -var blast: int +var gamma: float +var blast: int var life_product: Dictionary = {} +var product_per_year_type: String = "" +var product_per_year_amount: float = 0.0 var voids: int var output_or: Dictionary = {} var output_and: Dictionary = {} @@ -30,26 +31,28 @@ var claim: String var amount: float = 0.0 -func init_entity(values: Dictionary) -> bool: +func init_entity(values: Dictionary) -> void: id = values.id is_visible = values.is_visible == "1" unlock = _parse_and_string(values.unlock) - if "prime" == values.unlock: - is_unlocked = true cost = _parse_and_string(values.cost) bind = _parse_and_string(values.bind) mass = float(values.mass) space = int(values.space) lifespan = int(values.lifespan) auto = float(values.auto) - gamma = float(values.gamma) + gamma = float(values.gamma) blast = int(values.blast) life_product = _parse_and_string(values.life_product) + for key in life_product.keys(): + product_per_year_type = key + product_per_year_amount = life_product[key] / lifespan if lifespan != 0 else 0 + voids = int(values.voids) output_or = _parse_or_string(values.output) output_and = _parse_and_string(values.output) destroy_level = int(values.destroy_level) - degradation = _parse_and_string(values.degradation) + degradation = _parse_and_string(values.degradation) planets = _parse_planet_string(values.planets) count_as = values.count_as group_as = values.group_as @@ -58,8 +61,6 @@ func init_entity(values: Dictionary) -> bool: civ_bonus = float(values.civ_bonus) claim = values.claim - return true - func _parse_or_string(source_line: String) -> Dictionary: var result = {} diff --git a/world/owniverse.gd b/world/owniverse.gd index 65d55f8..0562b56 100644 --- a/world/owniverse.gd +++ b/world/owniverse.gd @@ -1,6 +1,8 @@ extends Node class_name Owniverse +signal unlock_item(item_id: String) + var g_datetime: float = 0 var g_speed: int = 1 var g_speed_in_years = 1 @@ -11,31 +13,57 @@ var items_to_update: Dictionary[String, float] = {} var cumulative_amount: Dictionary[String, float] = {} +var auto_production: Array = [] +var locked_entities: Array = [] + #region Production +func cycle(delta: float) -> void: + _check_locked_items() + + func produce(item_id: String, amount: int) -> void: if item_id == "S" or item_id == 'H': entities[item_id].amount += 1 + var entity: OwniverseEntity = entities[item_id] + _process_enitity(entity, amount) - _process_enitity(item_id, amount) -func automated_production() -> void: - pass +func automated_production(_delta: float) -> void: + for entity_id in auto_production: + var entity = entities[entity_id] + var amount_to_produce = int(entity.amount * entity.product_per_year_amount * _delta) # add to all lists -func _process_enitity(item_id: String, amount: int) -> void: - items_to_update[item_id] = entities[item_id].amount +func _process_enitity(entity: OwniverseEntity, amount: int) -> void: + _count_cumulative(entity, amount) + + items_to_update[entity.id] = entity.amount -func _count_cumulative(item_id: String, amount: int) -> void: - if cumulative_amount.has(item_id): - cumulative_amount[item_id] += amount - else: - cumulative_amount[item_id] = amount +func _count_cumulative(entity: OwniverseEntity, amount: int) -> void: + cumulative_amount[entity.id] += amount + if entity.group_as != "": + cumulative_amount[entity.group_as] += amount +func _check_locked_items() -> void: + for entity:OwniverseEntity in locked_entities: + for elem in entity.unlock: + if cumulative_amount[elem] < entity.unlock[elem]: + continue + print(entity.id, " ", elem, ":", entity.unlock[elem]) + unlock_item.emit(entity.id) + locked_entities.erase(entity) + # unlock here + return + + + + + #endregion @@ -44,10 +72,19 @@ func init_enitities() -> void: var entity = OwniverseEntity.new() entity.init_entity(Global.OwniverseEntities[entity_id]) entities[entity_id] = entity + + cumulative_amount[entity_id] = 0 + cumulative_amount[entity.group_as] = 0 + + if entity.unlock != {}: + locked_entities.append(entity) + + if entity.product_per_year_type != "": + auto_production.append(entity) func add_time_delta(delta) -> float: - var year_delta:float = delta * g_speed_in_years + var year_delta: float = delta * g_speed_in_years # all ownivewrse activity should be called here @@ -57,5 +94,5 @@ func add_time_delta(delta) -> float: func change_speed(delta: int) -> int: g_speed = clamp(g_speed + delta, 1, Global.SPEED_LIMIT) - g_speed_in_years = pow(10, g_speed-1) + g_speed_in_years = pow(10, g_speed - 1) return g_speed diff --git a/world.tscn b/world/world.tscn similarity index 84% rename from world.tscn rename to world/world.tscn index 7e19a77..529acff 100644 --- a/world.tscn +++ b/world/world.tscn @@ -1,53 +1,53 @@ [gd_scene format=3 uid="uid://bv384dpmvjv8o"] -[ext_resource type="Script" uid="uid://d2wrwichuoncd" path="res://world/Background/background.gd" id="1_fj7yv"] -[ext_resource type="PackedScene" uid="uid://icbk3la71t7h" path="res://world/Background/starry_sky_layer.tscn" id="3_aqk2v"] -[ext_resource type="Script" uid="uid://iiva6x8uo0f2" path="res://stage/stage.gd" id="3_bh8nc"] -[ext_resource type="Texture2D" uid="uid://5f80g4i46ycl" path="res://ui/topmenu/buttons/button.burger.normal.png" id="4_2u3nc"] -[ext_resource type="Texture2D" uid="uid://caia36a08wlqs" path="res://ui/topmenu/buttons/button.burger.pressed.png" id="5_2u3nc"] -[ext_resource type="Script" uid="uid://xte4iwvipeve" path="res://command_processor.gd" id="5_036b0"] -[ext_resource type="Texture2D" uid="uid://cjcchycx7biyl" path="res://ui/topmenu/time&speed/time_x.png" id="6_ikiii"] -[ext_resource type="FontFile" uid="uid://d3k1ddvv0rmhs" path="res://fonts/Roboto_Condensed/RobotoCondensed-Light.ttf" id="6_wse8f"] -[ext_resource type="FontFile" uid="uid://dtyi81a0phumr" path="res://fonts/Roboto_Condensed/RobotoCondensed-Bold.ttf" id="7_ic0uy"] -[ext_resource type="Texture2D" uid="uid://davmv5mwt3mo1" path="res://ui/topmenu/time&speed/speed.png" id="8_2u3nc"] -[ext_resource type="Texture2D" uid="uid://cnjtnggw5ccq3" path="res://ui/topmenu/time&speed/time1.png" id="8_cbp6q"] -[ext_resource type="FontFile" uid="uid://8s0fv3gfj317" path="res://fonts/Roboto_Condensed/RobotoCondensed-BoldItalic.ttf" id="8_k3n1d"] -[ext_resource type="FontFile" uid="uid://derqj4pbwtae6" path="res://fonts/Roboto_Condensed/RobotoCondensed-Italic.ttf" id="9_2o6r5"] -[ext_resource type="Texture2D" uid="uid://rmdsdkck0vst" path="res://ui/topmenu/buttons/buton.report.normal.png" id="9_26xuy"] -[ext_resource type="Texture2D" uid="uid://dbhkuw2jshyoh" path="res://ui/topmenu/buttons/buton.report.pressed.png" id="10_bc84e"] -[ext_resource type="Texture2D" uid="uid://dgkmobpfbbffa" path="res://ui/pages/forces.en.png" id="13_il2jm"] -[ext_resource type="Texture2D" uid="uid://i43jaaejvh5f" path="res://ui/indicators/energy/energy.png" id="16_udxuc"] -[ext_resource type="Texture2D" uid="uid://cvc1stj3hoax5" path="res://ui/indicators/density/density.png" id="17_ikiii"] -[ext_resource type="Texture2D" uid="uid://bef36h52n7lxb" path="res://ui/indicators/energy/border-energy.png" id="18_mc2jv"] -[ext_resource type="Texture2D" uid="uid://blq0anccuu387" path="res://ui/pages/resources.en.png" id="18_wjb0r"] -[ext_resource type="Texture2D" uid="uid://38fl8ovnubh8" path="res://ui/pages/stars.en.png" id="20_mc2jv"] -[ext_resource type="Texture2D" uid="uid://bm8ae1ffv7xq5" path="res://ui/indicators/density/density_pointer.png" id="20_wjb0r"] -[ext_resource type="Texture2D" uid="uid://df2nus1pmcc67" path="res://ui/indicators/density/density_crunch.png" id="21_4h6ng"] -[ext_resource type="Texture2D" uid="uid://cbi24bwo70nk" path="res://ui/pages/structures.en.png" id="21_bo7i5"] -[ext_resource type="Texture2D" uid="uid://bpff5o5oa4wag" path="res://ui/pages/planets.en.png" id="22_4h6ng"] -[ext_resource type="Texture2D" uid="uid://bbk74pjqgxe32" path="res://ui/indicators/density/density_rip.png" id="22_o3ebs"] -[ext_resource type="Texture2D" uid="uid://ysbavtgmq7me" path="res://ui/indicators/explosiveness/explosiveness.png" id="24_qktwf"] -[ext_resource type="Texture2D" uid="uid://sry5js57vds4" path="res://ui/indicators/burnability/burnability_pointer.png" id="25_bh8nc"] -[ext_resource type="Texture2D" uid="uid://dbcmaot2c3tg5" path="res://ui/indicators/burnability/burnability.png" id="27_jjr1n"] -[ext_resource type="Texture2D" uid="uid://bbint5cvwtrou" path="res://ui/indicators/explosiveness/explosivenessPointer.png" id="27_qktwf"] -[ext_resource type="PackedScene" uid="uid://dg15dpxiepicb" path="res://ui/border/border.tscn" id="28_o3ebs"] -[ext_resource type="Texture2D" uid="uid://cfttpatxe6k2u" path="res://ui/indicators/aggression/aggression.png" id="30_gggvi"] -[ext_resource type="Texture2D" uid="uid://dm87u2ku8wec8" path="res://ui/indicators/aggression/aggression_pointer.png" id="31_w44yn"] -[ext_resource type="Texture2D" uid="uid://bgjcnwl61nu5i" path="res://ui/indicators/trends/trend_bar1.png" id="33_w44yn"] -[ext_resource type="Texture2D" uid="uid://caiyhk6vv53iu" path="res://ui/indicators/trends/trend_bar2.png" id="34_g1i3r"] -[ext_resource type="Texture2D" uid="uid://dspjxpbpwq52k" path="res://ui/indicators/trends/trend_icon_2.png" id="35_my276"] -[ext_resource type="Texture2D" uid="uid://dxutg6k0ck226" path="res://ui/indicators/trends/trend_bar3.png" id="36_jas3d"] -[ext_resource type="Texture2D" uid="uid://bp72c0myjnl61" path="res://ui/indicators/trends/trend_icon_3.png" id="37_7htu6"] -[ext_resource type="Texture2D" uid="uid://qrjhpvw8ou3o" path="res://ui/indicators/trends/trend_bar4.png" id="38_7qk3m"] -[ext_resource type="Texture2D" uid="uid://bwqmmmg6w7dho" path="res://ui/indicators/trends/trend_icon_4.png" id="39_xpnt2"] -[ext_resource type="Texture2D" uid="uid://4tpbmpe6tbk0" path="res://ui/indicators/trends/trend_bar5.png" id="40_ruyqm"] -[ext_resource type="Texture2D" uid="uid://cnf3ml5gj2cvl" path="res://ui/indicators/trends/trend_icon_5.png" id="41_fnoqa"] +[ext_resource type="Script" uid="uid://d2wrwichuoncd" path="res://world/Background/background.gd" id="1_ifjjt"] +[ext_resource type="PackedScene" uid="uid://icbk3la71t7h" path="res://world/Background/starry_sky_layer.tscn" id="2_behgl"] +[ext_resource type="Script" uid="uid://iiva6x8uo0f2" path="res://stage/stage.gd" id="3_k83x5"] +[ext_resource type="Texture2D" uid="uid://5f80g4i46ycl" path="res://ui/topmenu/buttons/button.burger.normal.png" id="4_b8tmp"] +[ext_resource type="Texture2D" uid="uid://caia36a08wlqs" path="res://ui/topmenu/buttons/button.burger.pressed.png" id="5_en1oy"] +[ext_resource type="Texture2D" uid="uid://cjcchycx7biyl" path="res://ui/topmenu/time&speed/time_x.png" id="6_pfbnl"] +[ext_resource type="FontFile" uid="uid://dtyi81a0phumr" path="res://fonts/Roboto_Condensed/RobotoCondensed-Bold.ttf" id="7_gwdna"] +[ext_resource type="Texture2D" uid="uid://davmv5mwt3mo1" path="res://ui/topmenu/time&speed/speed.png" id="8_h4vgh"] +[ext_resource type="Texture2D" uid="uid://cnjtnggw5ccq3" path="res://ui/topmenu/time&speed/time1.png" id="9_kvuv0"] +[ext_resource type="Texture2D" uid="uid://rmdsdkck0vst" path="res://ui/topmenu/buttons/buton.report.normal.png" id="10_sg5c8"] +[ext_resource type="Texture2D" uid="uid://dbhkuw2jshyoh" path="res://ui/topmenu/buttons/buton.report.pressed.png" id="11_vu62d"] +[ext_resource type="PackedScene" uid="uid://dg15dpxiepicb" path="res://ui/border/border.tscn" id="12_58wjt"] +[ext_resource type="Texture2D" uid="uid://dgkmobpfbbffa" path="res://ui/pages/forces.en.png" id="13_dp8ul"] +[ext_resource type="FontFile" uid="uid://d3k1ddvv0rmhs" path="res://fonts/Roboto_Condensed/RobotoCondensed-Light.ttf" id="14_o7xkw"] +[ext_resource type="FontFile" uid="uid://8s0fv3gfj317" path="res://fonts/Roboto_Condensed/RobotoCondensed-BoldItalic.ttf" id="15_bfrib"] +[ext_resource type="FontFile" uid="uid://derqj4pbwtae6" path="res://fonts/Roboto_Condensed/RobotoCondensed-Italic.ttf" id="16_mip0j"] +[ext_resource type="Texture2D" uid="uid://i43jaaejvh5f" path="res://ui/indicators/energy/energy.png" id="17_l6135"] +[ext_resource type="Texture2D" uid="uid://bef36h52n7lxb" path="res://ui/indicators/energy/border-energy.png" id="18_uvuuk"] +[ext_resource type="Texture2D" uid="uid://blq0anccuu387" path="res://ui/pages/resources.en.png" id="19_an6vj"] +[ext_resource type="Texture2D" uid="uid://cvc1stj3hoax5" path="res://ui/indicators/density/density.png" id="20_s3ar6"] +[ext_resource type="Texture2D" uid="uid://df2nus1pmcc67" path="res://ui/indicators/density/density_crunch.png" id="21_d36xh"] +[ext_resource type="Texture2D" uid="uid://bbk74pjqgxe32" path="res://ui/indicators/density/density_rip.png" id="22_vu83j"] +[ext_resource type="Texture2D" uid="uid://bm8ae1ffv7xq5" path="res://ui/indicators/density/density_pointer.png" id="23_bcq5b"] +[ext_resource type="Texture2D" uid="uid://dbcmaot2c3tg5" path="res://ui/indicators/burnability/burnability.png" id="24_o2i0n"] +[ext_resource type="Texture2D" uid="uid://sry5js57vds4" path="res://ui/indicators/burnability/burnability_pointer.png" id="25_rur7c"] +[ext_resource type="Texture2D" uid="uid://38fl8ovnubh8" path="res://ui/pages/stars.en.png" id="26_y1rwn"] +[ext_resource type="Texture2D" uid="uid://ysbavtgmq7me" path="res://ui/indicators/explosiveness/explosiveness.png" id="27_4rajv"] +[ext_resource type="Texture2D" uid="uid://bbint5cvwtrou" path="res://ui/indicators/explosiveness/explosivenessPointer.png" id="28_upe80"] +[ext_resource type="Texture2D" uid="uid://cbi24bwo70nk" path="res://ui/pages/structures.en.png" id="29_0drd1"] +[ext_resource type="Texture2D" uid="uid://cfttpatxe6k2u" path="res://ui/indicators/aggression/aggression.png" id="30_bemti"] +[ext_resource type="Texture2D" uid="uid://dm87u2ku8wec8" path="res://ui/indicators/aggression/aggression_pointer.png" id="31_x6tg5"] +[ext_resource type="Texture2D" uid="uid://bpff5o5oa4wag" path="res://ui/pages/planets.en.png" id="32_xitqn"] +[ext_resource type="Texture2D" uid="uid://bgjcnwl61nu5i" path="res://ui/indicators/trends/trend_bar1.png" id="33_fprte"] +[ext_resource type="Texture2D" uid="uid://caiyhk6vv53iu" path="res://ui/indicators/trends/trend_bar2.png" id="34_lnsl1"] +[ext_resource type="Texture2D" uid="uid://dspjxpbpwq52k" path="res://ui/indicators/trends/trend_icon_2.png" id="35_1u5dl"] +[ext_resource type="Texture2D" uid="uid://dxutg6k0ck226" path="res://ui/indicators/trends/trend_bar3.png" id="36_v15xm"] +[ext_resource type="Texture2D" uid="uid://bp72c0myjnl61" path="res://ui/indicators/trends/trend_icon_3.png" id="37_vjhti"] +[ext_resource type="Texture2D" uid="uid://qrjhpvw8ou3o" path="res://ui/indicators/trends/trend_bar4.png" id="38_ctwlg"] +[ext_resource type="Texture2D" uid="uid://bwqmmmg6w7dho" path="res://ui/indicators/trends/trend_icon_4.png" id="39_jms70"] +[ext_resource type="Texture2D" uid="uid://4tpbmpe6tbk0" path="res://ui/indicators/trends/trend_bar5.png" id="40_50rdj"] +[ext_resource type="Texture2D" uid="uid://cnf3ml5gj2cvl" path="res://ui/indicators/trends/trend_icon_5.png" id="41_mi6gc"] +[ext_resource type="Script" uid="uid://xte4iwvipeve" path="res://command_processor.gd" id="42_1s1fv"] [node name="World" type="Node2D" unique_id=1392592456] [node name="Background" type="Node2D" parent="." unique_id=1988758765] -script = ExtResource("1_fj7yv") -STARRY_SKY_LAYER = ExtResource("3_aqk2v") +script = ExtResource("1_ifjjt") +STARRY_SKY_LAYER = ExtResource("2_behgl") [node name="Stage" type="Control" parent="." unique_id=1485959841] custom_minimum_size = Vector2(1080, 1920) @@ -57,7 +57,7 @@ offset_right = 40.0 offset_bottom = 40.0 size_flags_horizontal = 4 size_flags_vertical = 3 -script = ExtResource("3_bh8nc") +script = ExtResource("3_k83x5") [node name="StageRows" type="VBoxContainer" parent="Stage" unique_id=1878643860] layout_mode = 1 @@ -80,8 +80,8 @@ custom_minimum_size = Vector2(128, 128) layout_mode = 2 size_flags_horizontal = 4 size_flags_vertical = 4 -texture_normal = ExtResource("4_2u3nc") -texture_pressed = ExtResource("5_2u3nc") +texture_normal = ExtResource("4_b8tmp") +texture_pressed = ExtResource("5_en1oy") [node name="LeftSeparator" type="Panel" parent="Stage/StageRows/TopMenu" unique_id=305575734] self_modulate = Color(1, 1, 1, 0) @@ -93,7 +93,7 @@ custom_minimum_size = Vector2(128, 128) layout_mode = 2 size_flags_horizontal = 4 size_flags_vertical = 4 -texture_normal = ExtResource("6_ikiii") +texture_normal = ExtResource("6_pfbnl") [node name="InfoPanel" type="VBoxContainer" parent="Stage/StageRows/TopMenu" unique_id=397773008] custom_minimum_size = Vector2(440, 0) @@ -104,7 +104,7 @@ size_flags_horizontal = 3 custom_minimum_size = Vector2(240, 72) layout_mode = 2 theme_override_colors/font_color = Color(0.6, 0.6, 0.6, 1) -theme_override_fonts/font = ExtResource("7_ic0uy") +theme_override_fonts/font = ExtResource("7_gwdna") theme_override_font_sizes/font_size = 48 text = "2025.11.16 09:23" horizontal_alignment = 1 @@ -117,49 +117,49 @@ size_flags_vertical = 4 [node name="Speed1" type="TextureRect" parent="Stage/StageRows/TopMenu/InfoPanel/Speed" unique_id=2128881914] layout_mode = 2 -texture = ExtResource("8_2u3nc") +texture = ExtResource("8_h4vgh") [node name="Speed2" type="TextureRect" parent="Stage/StageRows/TopMenu/InfoPanel/Speed" unique_id=1532494238] visible = false layout_mode = 2 -texture = ExtResource("8_2u3nc") +texture = ExtResource("8_h4vgh") [node name="Speed3" type="TextureRect" parent="Stage/StageRows/TopMenu/InfoPanel/Speed" unique_id=180180843] visible = false layout_mode = 2 -texture = ExtResource("8_2u3nc") +texture = ExtResource("8_h4vgh") [node name="Speed4" type="TextureRect" parent="Stage/StageRows/TopMenu/InfoPanel/Speed" unique_id=847300920] visible = false layout_mode = 2 -texture = ExtResource("8_2u3nc") +texture = ExtResource("8_h4vgh") [node name="Speed5" type="TextureRect" parent="Stage/StageRows/TopMenu/InfoPanel/Speed" unique_id=636141728] visible = false layout_mode = 2 -texture = ExtResource("8_2u3nc") +texture = ExtResource("8_h4vgh") [node name="Speed6" type="TextureRect" parent="Stage/StageRows/TopMenu/InfoPanel/Speed" unique_id=988232766] visible = false layout_mode = 2 -texture = ExtResource("8_2u3nc") +texture = ExtResource("8_h4vgh") [node name="Speed7" type="TextureRect" parent="Stage/StageRows/TopMenu/InfoPanel/Speed" unique_id=1241111770] visible = false layout_mode = 2 -texture = ExtResource("8_2u3nc") +texture = ExtResource("8_h4vgh") [node name="Speed8" type="TextureRect" parent="Stage/StageRows/TopMenu/InfoPanel/Speed" unique_id=220922349] visible = false layout_mode = 2 -texture = ExtResource("8_2u3nc") +texture = ExtResource("8_h4vgh") [node name="TimePlus" type="TextureButton" parent="Stage/StageRows/TopMenu" unique_id=2128537958] custom_minimum_size = Vector2(128, 128) layout_mode = 2 size_flags_horizontal = 4 size_flags_vertical = 4 -texture_normal = ExtResource("8_cbp6q") +texture_normal = ExtResource("9_kvuv0") [node name="RightSeparator" type="Panel" parent="Stage/StageRows/TopMenu" unique_id=1481873764] self_modulate = Color(1, 1, 1, 0) @@ -171,10 +171,10 @@ custom_minimum_size = Vector2(128, 128) layout_mode = 2 size_flags_horizontal = 4 size_flags_vertical = 4 -texture_normal = ExtResource("9_26xuy") -texture_pressed = ExtResource("10_bc84e") +texture_normal = ExtResource("10_sg5c8") +texture_pressed = ExtResource("11_vu62d") -[node name="TopMenuBorder" parent="Stage/StageRows" unique_id=476233375 instance=ExtResource("28_o3ebs")] +[node name="TopMenuBorder" parent="Stage/StageRows" unique_id=476233375 instance=ExtResource("12_58wjt")] layout_mode = 2 [node name="PageScroller" type="ScrollContainer" parent="Stage/StageRows" unique_id=1772137283] @@ -204,23 +204,23 @@ layout_mode = 2 [node name="Header" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage/PageHeader" unique_id=1295272502] custom_minimum_size = Vector2(440, 64) layout_mode = 2 -texture = ExtResource("13_il2jm") +texture = ExtResource("13_dp8ul") [node name="RighIndicator" type="TextureButton" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage/PageHeader" unique_id=504419468] custom_minimum_size = Vector2(316, 64) layout_mode = 2 -[node name="PageHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage" unique_id=1411786120 instance=ExtResource("28_o3ebs")] +[node name="PageHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage" unique_id=1411786120 instance=ExtResource("12_58wjt")] layout_mode = 2 [node name="Description" type="RichTextLabel" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage" unique_id=1934400572] custom_minimum_size = Vector2(0, 670) layout_mode = 2 size_flags_vertical = 3 -theme_override_fonts/normal_font = ExtResource("6_wse8f") -theme_override_fonts/bold_font = ExtResource("7_ic0uy") -theme_override_fonts/bold_italics_font = ExtResource("8_k3n1d") -theme_override_fonts/italics_font = ExtResource("9_2o6r5") +theme_override_fonts/normal_font = ExtResource("14_o7xkw") +theme_override_fonts/bold_font = ExtResource("7_gwdna") +theme_override_fonts/bold_italics_font = ExtResource("15_bfrib") +theme_override_fonts/italics_font = ExtResource("16_mip0j") theme_override_font_sizes/normal_font_size = 42 theme_override_font_sizes/bold_font_size = 54 theme_override_font_sizes/bold_italics_font_size = 42 @@ -231,7 +231,7 @@ text = "Forces" fit_content = true horizontal_alignment = 1 -[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage" unique_id=519355296 instance=ExtResource("28_o3ebs")] +[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage" unique_id=519355296 instance=ExtResource("12_58wjt")] layout_mode = 2 [node name="Forces" type="Control" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage" unique_id=2057408842] @@ -260,19 +260,19 @@ offset_left = 2.0 offset_top = 34.0 offset_right = 318.0 offset_bottom = 94.0 -texture = ExtResource("16_udxuc") +texture = ExtResource("17_l6135") [node name="Energy" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage/ResourceHeader/EnergyIndicator" unique_id=1283004804] layout_mode = 0 offset_top = 32.0 offset_right = 320.0 offset_bottom = 96.0 -texture = ExtResource("18_mc2jv") +texture = ExtResource("18_uvuuk") [node name="Header" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage/ResourceHeader" unique_id=1086493812] custom_minimum_size = Vector2(440, 64) layout_mode = 2 -texture = ExtResource("18_wjb0r") +texture = ExtResource("19_an6vj") [node name="DensityIndicator" type="TextureButton" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage/ResourceHeader" unique_id=956598060] custom_minimum_size = Vector2(320, 128) @@ -292,7 +292,7 @@ offset_right = 158.0 offset_bottom = 64.0 grow_horizontal = 2 grow_vertical = 2 -texture = ExtResource("17_ikiii") +texture = ExtResource("20_s3ar6") stretch_mode = 3 [node name="DensityCrunch" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage/ResourceHeader/DensityIndicator" unique_id=473304616] @@ -310,7 +310,7 @@ offset_right = 158.0 offset_bottom = 64.0 grow_horizontal = 2 grow_vertical = 2 -texture = ExtResource("21_4h6ng") +texture = ExtResource("21_d36xh") stretch_mode = 3 [node name="DensityRip" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage/ResourceHeader/DensityIndicator" unique_id=1255957268] @@ -328,7 +328,7 @@ offset_right = 158.0 offset_bottom = 64.0 grow_horizontal = 2 grow_vertical = 2 -texture = ExtResource("22_o3ebs") +texture = ExtResource("22_vu83j") stretch_mode = 3 [node name="Pointer" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage/ResourceHeader/DensityIndicator" unique_id=1087356985] @@ -344,19 +344,19 @@ offset_right = 20.0 offset_bottom = 24.0 grow_horizontal = 2 grow_vertical = 2 -texture = ExtResource("20_wjb0r") +texture = ExtResource("23_bcq5b") -[node name="ResourceHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage" unique_id=2672876 instance=ExtResource("28_o3ebs")] +[node name="ResourceHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage" unique_id=2672876 instance=ExtResource("12_58wjt")] layout_mode = 2 [node name="Description" type="RichTextLabel" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage" unique_id=1171833] custom_minimum_size = Vector2(0, 670) layout_mode = 2 size_flags_vertical = 3 -theme_override_fonts/normal_font = ExtResource("6_wse8f") -theme_override_fonts/bold_font = ExtResource("7_ic0uy") -theme_override_fonts/bold_italics_font = ExtResource("8_k3n1d") -theme_override_fonts/italics_font = ExtResource("9_2o6r5") +theme_override_fonts/normal_font = ExtResource("14_o7xkw") +theme_override_fonts/bold_font = ExtResource("7_gwdna") +theme_override_fonts/bold_italics_font = ExtResource("15_bfrib") +theme_override_fonts/italics_font = ExtResource("16_mip0j") theme_override_font_sizes/normal_font_size = 42 theme_override_font_sizes/bold_font_size = 54 theme_override_font_sizes/bold_italics_font_size = 42 @@ -366,7 +366,7 @@ bbcode_enabled = true fit_content = true horizontal_alignment = 1 -[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage" unique_id=1268799323 instance=ExtResource("28_o3ebs")] +[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage" unique_id=1268799323 instance=ExtResource("12_58wjt")] layout_mode = 2 [node name="HBoxContainer" type="HBoxContainer" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage" unique_id=206289176] @@ -410,7 +410,7 @@ offset_right = 158.0 offset_bottom = 30.0 grow_horizontal = 2 grow_vertical = 2 -texture = ExtResource("27_jjr1n") +texture = ExtResource("24_o2i0n") [node name="BurnabilityPointer" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage/StarHeader/BurnabilityIndicator" unique_id=326702611] layout_mode = 1 @@ -425,12 +425,12 @@ offset_right = 20.0 offset_bottom = 24.0 grow_horizontal = 2 grow_vertical = 2 -texture = ExtResource("25_bh8nc") +texture = ExtResource("25_rur7c") [node name="Header" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage/StarHeader" unique_id=1846312458] custom_minimum_size = Vector2(440, 64) layout_mode = 2 -texture = ExtResource("20_mc2jv") +texture = ExtResource("26_y1rwn") [node name="ExplosivenessIndicator" type="TextureButton" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage/StarHeader" unique_id=528204117] custom_minimum_size = Vector2(320, 128) @@ -449,7 +449,7 @@ offset_right = 158.0 offset_bottom = 30.0 grow_horizontal = 2 grow_vertical = 2 -texture = ExtResource("24_qktwf") +texture = ExtResource("27_4rajv") [node name="ExplosivenessPointer" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage/StarHeader/ExplosivenessIndicator" unique_id=1486652639] layout_mode = 1 @@ -464,19 +464,19 @@ offset_right = 20.0 offset_bottom = 24.0 grow_horizontal = 2 grow_vertical = 2 -texture = ExtResource("27_qktwf") +texture = ExtResource("28_upe80") -[node name="StarHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage" unique_id=2057421818 instance=ExtResource("28_o3ebs")] +[node name="StarHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage" unique_id=2057421818 instance=ExtResource("12_58wjt")] layout_mode = 2 [node name="Description" type="RichTextLabel" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage" unique_id=1195874488] custom_minimum_size = Vector2(0, 670) layout_mode = 2 size_flags_vertical = 3 -theme_override_fonts/normal_font = ExtResource("6_wse8f") -theme_override_fonts/bold_font = ExtResource("7_ic0uy") -theme_override_fonts/bold_italics_font = ExtResource("8_k3n1d") -theme_override_fonts/italics_font = ExtResource("9_2o6r5") +theme_override_fonts/normal_font = ExtResource("14_o7xkw") +theme_override_fonts/bold_font = ExtResource("7_gwdna") +theme_override_fonts/bold_italics_font = ExtResource("15_bfrib") +theme_override_fonts/italics_font = ExtResource("16_mip0j") theme_override_font_sizes/normal_font_size = 42 theme_override_font_sizes/bold_font_size = 54 theme_override_font_sizes/bold_italics_font_size = 42 @@ -486,7 +486,7 @@ bbcode_enabled = true text = "Stars" horizontal_alignment = 1 -[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage" unique_id=358659431 instance=ExtResource("28_o3ebs")] +[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage" unique_id=358659431 instance=ExtResource("12_58wjt")] layout_mode = 2 [node name="Stars" type="Control" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage" unique_id=1969457639] @@ -514,19 +514,19 @@ offset_left = 2.0 offset_top = 34.0 offset_right = 318.0 offset_bottom = 94.0 -texture = ExtResource("16_udxuc") +texture = ExtResource("17_l6135") [node name="Energy" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage/StructureHeader/EnergyIndicator" unique_id=1417853951] layout_mode = 0 offset_top = 32.0 offset_right = 320.0 offset_bottom = 96.0 -texture = ExtResource("18_mc2jv") +texture = ExtResource("18_uvuuk") [node name="Header" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage/StructureHeader" unique_id=1038870090] custom_minimum_size = Vector2(440, 64) layout_mode = 2 -texture = ExtResource("21_bo7i5") +texture = ExtResource("29_0drd1") [node name="DensityIndicator" type="TextureButton" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage/StructureHeader" unique_id=1280030697] custom_minimum_size = Vector2(320, 128) @@ -546,7 +546,7 @@ offset_right = 158.0 offset_bottom = 64.0 grow_horizontal = 2 grow_vertical = 2 -texture = ExtResource("17_ikiii") +texture = ExtResource("20_s3ar6") stretch_mode = 3 [node name="DensityCrunch" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage/StructureHeader/DensityIndicator" unique_id=1612334015] @@ -564,7 +564,7 @@ offset_right = 158.0 offset_bottom = 64.0 grow_horizontal = 2 grow_vertical = 2 -texture = ExtResource("21_4h6ng") +texture = ExtResource("21_d36xh") stretch_mode = 3 [node name="DensityRip" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage/StructureHeader/DensityIndicator" unique_id=1570489598] @@ -582,7 +582,7 @@ offset_right = 158.0 offset_bottom = 64.0 grow_horizontal = 2 grow_vertical = 2 -texture = ExtResource("22_o3ebs") +texture = ExtResource("22_vu83j") stretch_mode = 3 [node name="Pointer" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage/StructureHeader/DensityIndicator" unique_id=1090838442] @@ -598,19 +598,19 @@ offset_right = 20.0 offset_bottom = 24.0 grow_horizontal = 2 grow_vertical = 2 -texture = ExtResource("20_wjb0r") +texture = ExtResource("23_bcq5b") -[node name="StructureHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage" unique_id=522613609 instance=ExtResource("28_o3ebs")] +[node name="StructureHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage" unique_id=522613609 instance=ExtResource("12_58wjt")] layout_mode = 2 [node name="Description" type="RichTextLabel" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage" unique_id=414749774] custom_minimum_size = Vector2(0, 670) layout_mode = 2 size_flags_vertical = 3 -theme_override_fonts/normal_font = ExtResource("6_wse8f") -theme_override_fonts/bold_font = ExtResource("7_ic0uy") -theme_override_fonts/bold_italics_font = ExtResource("8_k3n1d") -theme_override_fonts/italics_font = ExtResource("9_2o6r5") +theme_override_fonts/normal_font = ExtResource("14_o7xkw") +theme_override_fonts/bold_font = ExtResource("7_gwdna") +theme_override_fonts/bold_italics_font = ExtResource("15_bfrib") +theme_override_fonts/italics_font = ExtResource("16_mip0j") theme_override_font_sizes/normal_font_size = 42 theme_override_font_sizes/bold_font_size = 54 theme_override_font_sizes/bold_italics_font_size = 42 @@ -620,7 +620,7 @@ bbcode_enabled = true text = "Structures" horizontal_alignment = 1 -[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage" unique_id=342730054 instance=ExtResource("28_o3ebs")] +[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage" unique_id=342730054 instance=ExtResource("12_58wjt")] layout_mode = 2 [node name="Structures" type="Control" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage" unique_id=1126505300] @@ -654,7 +654,7 @@ offset_right = 158.0 offset_bottom = 30.0 grow_horizontal = 2 grow_vertical = 2 -texture = ExtResource("30_gggvi") +texture = ExtResource("30_bemti") [node name="AggressionPointer" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/AggressionIndicator" unique_id=1229249560] layout_mode = 1 @@ -669,12 +669,12 @@ offset_right = 20.0 offset_bottom = 24.0 grow_horizontal = 2 grow_vertical = 2 -texture = ExtResource("31_w44yn") +texture = ExtResource("31_x6tg5") [node name="Header" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader" unique_id=607573422] custom_minimum_size = Vector2(440, 64) layout_mode = 2 -texture = ExtResource("22_4h6ng") +texture = ExtResource("32_xitqn") [node name="TrendIndicator" type="TextureButton" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader" unique_id=483731989] custom_minimum_size = Vector2(320, 128) @@ -691,67 +691,67 @@ layout_mode = 2 [node name="Trend1" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer" unique_id=1067418872] layout_mode = 2 -texture = ExtResource("33_w44yn") +texture = ExtResource("33_fprte") [node name="Trend1Icon" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer" unique_id=433344874] layout_mode = 2 -texture = ExtResource("31_w44yn") +texture = ExtResource("31_x6tg5") [node name="CenterContainer2" type="CenterContainer" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer" unique_id=1119046601] layout_mode = 2 [node name="Trend2" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer2" unique_id=893059409] layout_mode = 2 -texture = ExtResource("34_g1i3r") +texture = ExtResource("34_lnsl1") [node name="Trend2Icon" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer2" unique_id=1567846635] layout_mode = 2 -texture = ExtResource("35_my276") +texture = ExtResource("35_1u5dl") [node name="CenterContainer3" type="CenterContainer" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer" unique_id=1657283663] layout_mode = 2 [node name="Trend3" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer3" unique_id=1541892233] layout_mode = 2 -texture = ExtResource("36_jas3d") +texture = ExtResource("36_v15xm") [node name="Trend3Icon" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer3" unique_id=2131664708] layout_mode = 2 -texture = ExtResource("37_7htu6") +texture = ExtResource("37_vjhti") [node name="CenterContainer4" type="CenterContainer" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer" unique_id=1576749946] layout_mode = 2 [node name="Trend4" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer4" unique_id=1484921702] layout_mode = 2 -texture = ExtResource("38_7qk3m") +texture = ExtResource("38_ctwlg") [node name="Trend4Icon" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer4" unique_id=209689041] layout_mode = 2 -texture = ExtResource("39_xpnt2") +texture = ExtResource("39_jms70") [node name="CenterContainer5" type="CenterContainer" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer" unique_id=1182691919] layout_mode = 2 [node name="Trend5" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer5" unique_id=873423599] layout_mode = 2 -texture = ExtResource("40_ruyqm") +texture = ExtResource("40_50rdj") [node name="Trend5Icon" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer5" unique_id=1362104530] layout_mode = 2 -texture = ExtResource("41_fnoqa") +texture = ExtResource("41_mi6gc") -[node name="LifeHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage" unique_id=100084430 instance=ExtResource("28_o3ebs")] +[node name="LifeHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage" unique_id=100084430 instance=ExtResource("12_58wjt")] layout_mode = 2 [node name="Description" type="RichTextLabel" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage" unique_id=454792539] custom_minimum_size = Vector2(0, 670) layout_mode = 2 size_flags_vertical = 3 -theme_override_fonts/normal_font = ExtResource("6_wse8f") -theme_override_fonts/bold_font = ExtResource("7_ic0uy") -theme_override_fonts/bold_italics_font = ExtResource("8_k3n1d") -theme_override_fonts/italics_font = ExtResource("9_2o6r5") +theme_override_fonts/normal_font = ExtResource("14_o7xkw") +theme_override_fonts/bold_font = ExtResource("7_gwdna") +theme_override_fonts/bold_italics_font = ExtResource("15_bfrib") +theme_override_fonts/italics_font = ExtResource("16_mip0j") theme_override_font_sizes/normal_font_size = 42 theme_override_font_sizes/bold_font_size = 54 theme_override_font_sizes/bold_italics_font_size = 42 @@ -761,7 +761,7 @@ bbcode_enabled = true text = "Planets" horizontal_alignment = 1 -[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage" unique_id=335602062 instance=ExtResource("28_o3ebs")] +[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage" unique_id=335602062 instance=ExtResource("12_58wjt")] layout_mode = 2 [node name="Planets" type="Control" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage" unique_id=1203503863] @@ -827,7 +827,7 @@ wait_time = 0.2 autostart = true [node name="CommandProcessor" type="Node" parent="." unique_id=2069361293] -script = ExtResource("5_036b0") +script = ExtResource("42_1s1fv") [connection signal="pressed" from="Stage/StageRows/TopMenu/BurgerButton" to="Stage" method="_on_topmenu_button_pressed" binds= ["Burger"]] [connection signal="pressed" from="Stage/StageRows/TopMenu/TimeMinus" to="Stage" method="_change_speed" binds= [-1]]