35 Commits

Author SHA1 Message Date
Kirill 0162084e53 Refactor state management; update unlock logic and enhance signal bindings in scene 2026-09-01 23:53:05 +03:00
Kirill 2f4b6a98d8 Refactor production logic to use state amounts; update calculate_max_producible function to accept default desired amount 2026-09-01 21:29:07 +03:00
Kirill d90f8693c9 Update Godot core rules to version 4.7; refactor production logic and add entity batch processing 2026-08-31 23:51:07 +03:00
Kirill e870c96879 Add 'binds' key to state dictionary for enhanced state management 2026-08-30 22:31:24 +03:00
Kirill e531e7d9b6 Refactor item management and unlock logic; remove unused item update list and signal 2026-08-28 00:07:18 +03:00
Kirill 57cc023558 Implement item unlocking mechanism and refactor save functionality; update scene timer node 2026-08-27 23:04:56 +03:00
Kirill 23929e3651 Refactor owniverse state management; replace evolution class with state handling and update cycle logic 2026-08-25 00:26:31 +03:00
Kirill 829aadca2d Update version to 0.6.27 and increment version code to 143; refactor resource paths in scene files
Android / android (push) Successful in 30s
2026-08-20 22:58:24 +03:00
Kirill 30486616f8 Update version to 0.6.26 and increment version code to 142
Android / android (push) Successful in 30s
2026-08-20 22:55:01 +03:00
Kirill d9a2679af4 Replace pressed burger button image and update resource path in world.tscn 2026-08-20 22:54:42 +03:00
Kirill 4f57c37572 Update version to 0.6.25 and increment version code to 141; replace burger button image
Android / android (push) Successful in 30s
2026-08-20 22:45:22 +03:00
Kirill e4a0dd2d13 Add new spirituality trend indicator image
Android / android (push) Successful in 30s
2026-08-20 22:29:11 +03:00
Kirill 0a10cff0fa Refactor code structure for improved readability and maintainability 2026-08-20 22:28:03 +03:00
Kirill e4cf5bdad0 Add new button images for time adjustment in the top menu 2026-08-20 22:27:36 +03:00
Kirill 645751cd23 Add new button images for time adjustment in the top menu 2026-08-20 22:26:57 +03:00
Kirill b92a49821d Update version to 0.6.23 and increment version code to 139; add unique IDs to UI nodes
Android / android (push) Successful in 31s
2026-08-20 22:19:19 +03:00
Kirill 3a91528e95 Bump version to 0.6.22 and increment version code to 138
Android / android (push) Successful in 30s
2026-08-20 22:11:09 +03:00
Kirill 3c37be2a8e Add new PNG assets for time and speed UI components 2026-08-20 22:10:40 +03:00
Kirill 544b5f4f56 Add new time speed icons for UI 2026-08-20 22:10:22 +03:00
Kirill cc9de54d42 Bump version to 0.6.21 and increment version code to 137
Android / android (push) Successful in 31s
2026-08-20 21:55:23 +03:00
Kirill e76414ce17 Refactor code structure for improved readability and maintainability 2026-08-20 21:54:45 +03:00
Kirill 68c2b4f25d Refactor code structure for improved readability and maintainability 2026-08-20 21:54:32 +03:00
Kirill 78946f1bb4 Bump version to 0.6.20 and increment version code to 136
Android / android (push) Successful in 32s
2026-08-20 21:41:23 +03:00
Kirill 0d1671fe8f Update project icon reference in configuration file 2026-08-20 21:40:48 +03:00
Kirill ea35017aa0 Bump version to 0.6.19 and increment version code to 135
Android / android (push) Successful in 29s
2026-08-20 21:20:08 +03:00
Kirill 0db24fec60 Refactor background and starry sky layer scripts; move to new directory structure 2026-08-20 21:19:47 +03:00
Kirill b2a18c9c41 Refactor code structure for improved readability and maintainability 2026-08-20 21:19:30 +03:00
Kirill 16ec80929c Bump version to 0.6.18 and increment version code to 134; update Android workflow configuration
Android / android (push) Successful in 31s
2026-08-20 21:11:46 +03:00
Kirill 3536e25d52 Update version to 0.6.17 and increment version code to 133; enhance Android build workflow
Android / android (push) Successful in 27s
2026-08-20 21:05:22 +03:00
Kirill 935d249183 Bump version to 0.6.16 and update version code to 132
Android / android (push) Successful in 22s
2026-08-20 20:25:12 +03:00
Kirill 8cb01d77de Refactor Android build workflow to separate preparation and build steps 2026-08-20 20:24:30 +03:00
Kirill a446b7cb41 Update Global autoload reference in project configuration 2026-08-20 20:19:01 +03:00
Kirill 82681d27e1 Bump version to 0.6.15 and update version code to 131
Android / android (push) Failing after 17s
2026-08-20 20:11:39 +03:00
Kirill 777ec2907b Add new PNG assets for time and speed UI components 2026-08-20 20:09:14 +03:00
Kirill 8513bf0313 Add new PNG images for time and speed menu 2026-08-20 20:03:18 +03:00
231 changed files with 530 additions and 235 deletions
+9 -3
View File
@@ -1,13 +1,19 @@
---
name: Godot 4.4 Core Rules
name: Godot 4.7 Core Rules
priority: high
---
Ты — senior Godot 4.4 GDScript разработчик.
Ты — senior Godot 4.7 GDScript разработчик.
- Use Godot 4.7+ API.
- Do not use Godot 3.x syntax or APIs.
- Follow the existing project architecture and coding style.
- Do not introduce unnecessary abstractions.
- Do not modify unrelated files.
- Всегда используй Godot 4.4+ API.
- Пиши строго типизированный код (`var health: int = 100`, `: Array[Node]` и т.д.).
- Предпочитай Signals вместо проверки в _process.
- Используй @export, @export_range, @export_enum, @onready.
- Composition over deep inheritance.
- Менеджеры и автолоады выноси в отдельные singleton'ы.
+1
View File
@@ -0,0 +1 @@
- use spaces not tabs for indentation
+31 -1
View File
@@ -12,20 +12,50 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
with:
lfs: true
- name: Godot version
run: godot --version
- name: Prepare Godot
run: |
rm -rf .godot
godot \
--headless \
--path . \
--editor \
--quit \
--verbose
- name: Build APK
run: |
mkdir -p build
godot \
--headless \
--path . \
--editor \
--quit
godot \
--headless \
--path . \
--export-release "Android" \
build/app.apk
- name: Check imported resources
run: |
echo "=== PNG imports ==="
find .godot/imported -iname '*habitable*' -o -iname '*civ2*'
echo "=== PNG files ==="
ls -lh ui/4-life/habitable_planet.png
ls -lh ui/4-life/civ2.png
- name: Verify APK
run: |
test -f build/app.apk
-6
View File
@@ -1,6 +0,0 @@
[gd_scene format=3 uid="uid://dg15dpxiepicb"]
[ext_resource type="Texture2D" uid="uid://chxxghyul1im7" path="res://ui/border/border-2px.png" id="1_6kaf8"]
[node name="Border" type="TextureRect"]
texture = ExtResource("1_6kaf8")
+1 -1
View File
@@ -110,7 +110,7 @@ architectures/armeabi-v7a=false
architectures/arm64-v8a=true
architectures/x86=false
architectures/x86_64=false
version/code=130
version/code=143
version/name=""
package/unique_name="com.KIDGameProduction.Owniverse"
package/name="Owniverse"
+3 -7
View File
@@ -8,24 +8,20 @@
config_version=5
[animation]
compatibility/default_parent_skeleton_in_mesh_instance_3d=true
[application]
config/name="Owniverse"
config/version="0.6.14"
config/version="0.6.27"
run/main_scene="uid://bv384dpmvjv8o"
config/features=PackedStringArray("4.7", "Mobile")
boot_splash/show_image=false
config/icon="uid://do5teb1i7uiuw"
config/icon="uid://djiwkyk470qb2"
config/size/borderless=true
config/stretch_mode=0
[autoload]
Global="*uid://dojk16crca3cx"
Global="*uid://dy0hrqie4ritn"
SaveManager="*uid://ul0srjc4gcgg"
[display]
+70 -47
View File
@@ -73,8 +73,8 @@ var g_active_items: Dictionary = {}
var owniverse:Owniverse = Owniverse.new()
var owniverse_items: Dictionary[String, OwniverseItem] = {}
var locked_items: Array = []
var item_list_to_update: Dictionary = {}
func set_datetime(value: float):
date_time.text = str(snapped(value, 0.1))
@@ -82,22 +82,32 @@ func set_datetime(value: float):
#region Item manipulations: update and visibility
func add_to_update_list(item_id: String, amount: int) -> void:
if item_list_to_update.has(item_id):
item_list_to_update[item_id] += amount
else:
item_list_to_update[item_id] = amount
func set_owniverse_item_value() -> void:
for item_id in owniverse.items_to_update:
if owniverse_items.has(item_id):
owniverse_items[item_id].set_label(owniverse.items_to_update[item_id])
owniverse.items_to_update = {}
for _item_id in owniverse_items:
owniverse_items[_item_id].set_label(owniverse.state.amount[_item_id])
#endregion
func _unlock_items():
if locked_items.size() == 0: return
var _new_locked_items = []
for _item_id in locked_items:
#print(_item_id ' | ', _entity.unlock)
var _flag_to_unlock = true
for _elem in owniverse.entities[_item_id].unlock:
if owniverse.state.stats.total_amount[_elem] < owniverse.entities[_item_id].unlock[_elem]:
_flag_to_unlock = false
break
if _flag_to_unlock:
owniverse_items[_item_id].set_visible(true)
else:
_new_locked_items.append(_item_id)
locked_items = _new_locked_items
func _on_indicator_pressed(indicator_name: String, page: int = 0):
_set_description(indicator_name, page)
@@ -169,10 +179,7 @@ func item_activated(item: OwniverseItem) -> void:
_set_item_description(item)
if item.item_id == "S" or item.item_id == "H":
owniverse.produce(item.item_id, 100_000)
func _unlock_item(item_id: String):
owniverse_items[item_id].set_visible(true)
var _value = owniverse.produce_hs(item.item_id, 100_000)
func _check_counters(delta: float) -> Array:
@@ -191,7 +198,7 @@ func _check_counters(delta: float) -> Array:
return actions
#region Swipe
#region Swipe and page
func _do_actions(actions: Array) -> void:
for action: String in actions:
@@ -226,41 +233,21 @@ func _input(event: InputEvent) -> void:
g_counters.swipe.value = 0
elif event is InputEventScreenTouch:
pass
#endregion
func _ready() -> void:
owniverse.init_enitities()
owniverse.load_data()
_init_owniverse_items()
owniverse.unlock_item.connect(_unlock_item)
g_counters.swipe.sec = 0.2
for pa in page_actions:
page_actions[pa].action_pressed.connect(_page_action_pressed)
page_actions[pa].page_id = pa
func _process(delta: float) -> void:
var year_delta: float = owniverse.add_time_delta(delta)
set_datetime(year_delta)
owniverse.cycle(year_delta)
var actions = _check_counters(delta)
_do_actions(actions)
_set_active_page_actions()
func _set_active_page_actions() -> void:
for pa in page_actions:
if !g_active_items.has(pa): continue
var item_id: String = g_active_items[pa].item_id
var amount = owniverse.get_available_to_produce(item_id)
page_actions[pa].set_actions(item_id, amount)
var entity: OwniverseEntity = owniverse.entities[item_id]
#var amount = owniverse.get_available_to_produce(item_id)
#var amount = owniverse.get_available_to_produce(entity)
var amount = owniverse.calculate_max_producible(entity)
#print(item_id, " : ", amount)
page_actions[pa].set_actions(item_id, amount)
func _page_action_pressed(page_id: int, action_amount: float) -> void:
@@ -273,8 +260,42 @@ func _page_action_pressed(page_id: int, action_amount: float) -> void:
owniverse.produce(item_id, action_amount)
#endregion
func _ready() -> void:
var inited_result = owniverse.init_enitities()
locked_items = inited_result.locked_items
owniverse.load_data()
_init_owniverse_items()
g_counters.swipe.sec = 0.2
for pa in page_actions:
page_actions[pa].action_pressed.connect(_page_action_pressed)
page_actions[pa].page_id = pa
func _process(delta: float) -> void:
owniverse.evolute(delta)
set_datetime(owniverse.state.year)
#owniverse.cycle(delta)
#owniverse.cycle_legacy(year_delta)
var actions = _check_counters(delta)
_do_actions(actions)
_set_active_page_actions()
func _change_speed(delta: int) -> void:
var speed: int = owniverse.change_speed(delta)
owniverse.speed = owniverse.speed + delta
var speed: int = owniverse.speed
var ind: int = 1
for icon in g_speed_icons:
if ind <= speed:
@@ -294,7 +315,7 @@ func _change_speed(delta: int) -> void:
func _on_topmenu_button_pressed(ButtonName) -> void:
print(ButtonName)
print("Debug: ", owniverse.state)
#var s: float = 1E15
#var z = 1.0
#for i in range(30):
@@ -302,5 +323,7 @@ func _on_topmenu_button_pressed(ButtonName) -> void:
#z *= 10
func _on_save_data() -> void:
func _on_unlock_and_save_timeout() -> void:
owniverse.save_data()
_unlock_items()

Some files were not shown because too many files have changed in this diff Show More