1 Commits

236 changed files with 278 additions and 571 deletions
+3 -9
View File
@@ -1,19 +1,13 @@
---
name: Godot 4.7 Core Rules
name: Godot 4.4 Core Rules
priority: high
---
Ты — 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.
Ты — 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'ы.
-1
View File
@@ -1 +0,0 @@
- use spaces not tabs for indentation
+21 -58
View File
@@ -2,43 +2,39 @@ name: Android
on:
push:
tags:
- "v*"
branches:
- main
jobs:
android:
runs-on: godot
steps:
- name: Checkout
uses: actions/checkout@v4
with:
lfs: true
- name: Godot version
run: godot --version
- name: Prepare Godot
run: |
rm -rf .godot
godot --version
godot \
--headless \
--path . \
--editor \
--quit \
--verbose
- name: Java version
run: |
java -version
- name: Android SDK
run: |
adb version
- name: Build APK
run: |
mkdir -p build
godot \
--headless \
--path . \
--editor \
--quit
godot \
--headless \
--path . \
@@ -46,47 +42,14 @@ jobs:
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
ls -lh build/app.apk
- name: Create Release
env:
GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }}
run: |
curl -f \
-X POST \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
"https://gt.owad.ru/api/v1/repos/K/owniverse/releases" \
-d "{
\"tag_name\": \"${GITHUB_REF_NAME}\",
\"name\": \"${GITHUB_REF_NAME}\",
\"body\": \"Android build ${GITHUB_REF_NAME}\"
}"
- name: Upload APK to Release
env:
GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }}
run: |
RELEASE_ID=$(curl -fsS \
-H "Authorization: token ${GITEA_TOKEN}" \
"https://gt.owad.ru/api/v1/repos/K/owniverse/releases/tags/${GITHUB_REF_NAME}" \
| python3 -c 'import sys,json; print(json.load(sys.stdin)["id"])')
curl -f \
-X POST \
-H "Authorization: token ${GITEA_TOKEN}" \
-F "attachment=@build/app.apk" \
"https://gt.owad.ru/api/v1/repos/K/owniverse/releases/${RELEASE_ID}/assets?name=owniverse-${GITHUB_REF_NAME}.apk"
- name: Upload APK
uses: actions/upload-artifact@v4
with:
name: android-apk
path: build/app.apk
+1
View File
@@ -0,0 +1 @@
uid://dojk16crca3cx
+50 -73
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,32 +82,22 @@ 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:
owniverse_items[_item_id].set_label(owniverse.state.amount[_item_id])
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 = {}
#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)
@@ -170,7 +160,7 @@ func _init_owniverse_items() -> bool:
item.item_activated.connect(item_activated)
owniverse_items[item_id] = item
return false
@@ -179,8 +169,11 @@ func item_activated(item: OwniverseItem) -> void:
_set_item_description(item)
if item.item_id == "S" or item.item_id == "H":
var _value = owniverse.produce_hs(item.item_id, 100_000)
owniverse.produce(item.item_id, 100_000)
func _unlock_item(item_id: String):
owniverse_items[item_id].set_visible(true)
func _check_counters(delta: float) -> Array:
var actions: Array = []
@@ -198,7 +191,7 @@ func _check_counters(delta: float) -> Array:
return actions
#region Swipe and page
#region Swipe
func _do_actions(actions: Array) -> void:
for action: String in actions:
@@ -233,21 +226,41 @@ 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 entity: OwniverseEntity = owniverse.entities[item_id]
#var amount = owniverse.get_available_to_produce(item_id)
var amount = owniverse.get_available_to_produce(item_id)
page_actions[pa].set_actions(item_id, amount)
#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:
@@ -260,42 +273,8 @@ 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:
owniverse.speed = owniverse.speed + delta
var speed: int = owniverse.speed
var speed: int = owniverse.change_speed(delta)
var ind: int = 1
for icon in g_speed_icons:
if ind <= speed:
@@ -315,7 +294,7 @@ func _change_speed(delta: int) -> void:
func _on_topmenu_button_pressed(ButtonName) -> void:
print("Debug: ", owniverse.state)
print(ButtonName)
#var s: float = 1E15
#var z = 1.0
#for i in range(30):
@@ -323,7 +302,5 @@ func _on_topmenu_button_pressed(ButtonName) -> void:
#z *= 10
func _on_unlock_and_save_timeout() -> void:
func _on_save_data() -> void:
owniverse.save_data()
_unlock_items()

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