Obsługa modów

This commit is contained in:
Tirith 2025-11-06 11:10:44 +01:00
parent 042b7aea2b
commit 658f68365d
6 changed files with 66 additions and 4 deletions

View File

@ -2,3 +2,21 @@
[resource]
bus/0/volume_db = 0.46499825
bus/1/name = &"Music"
bus/1/solo = false
bus/1/mute = false
bus/1/bypass_fx = false
bus/1/volume_db = 0.0
bus/1/send = &"Master"
bus/2/name = &"SFX"
bus/2/solo = false
bus/2/mute = false
bus/2/bypass_fx = false
bus/2/volume_db = 0.0
bus/2/send = &"Master"
bus/3/name = &"Voices"
bus/3/solo = false
bus/3/mute = false
bus/3/bypass_fx = false
bus/3/volume_db = 0.0
bus/3/send = &"Master"

12
mods/buildings.json Normal file
View File

@ -0,0 +1,12 @@
{
"aluminium_ore_mine": {
"name": "Kopalnia rudy aluminium",
"description": "Wydobywa boksyt.",
"resource": "aluminium",
"cost": {"iron": 500, "carbon": 200, "uranium": 50},
"bonuses": {"biosfere": 0.1},
"build_time": 15.0,
"texture": "res://assets/buildings/fusion_plant.png",
"required_tech": "fusion_power"
}
}

View File

@ -1,6 +1,6 @@
extends Node
const BUILDINGS = {
var BUILDINGS = {
"iron_mine": {
"name": "Iron Mine",
"description": "Pozwala wydobywać żelazo z powierzchni planety.",
@ -74,3 +74,35 @@ const BUILDINGS = {
"required_tech": null
}
}
func _ready():
_load_mod_buildings()
func _load_mod_buildings():
var mod_path = "res://mods/buildings.json"
if not FileAccess.file_exists(mod_path):
print("Brak pliku modów: ", mod_path)
return
var file = FileAccess.open(mod_path, FileAccess.READ)
if file == null:
print("Nie można otworzyć pliku modów:", mod_path)
return
var content = file.get_as_text()
file.close()
var parsed = JSON.parse_string(content)
if parsed == null or typeof(parsed) != TYPE_DICTIONARY:
print("Błąd: niepoprawny format JSON w", mod_path)
return
for key in parsed.keys():
if not BUILDINGS.has(key):
BUILDINGS[key] = parsed[key]
print("Dodano budynek z moda:", key)
else:
print("Pominięto (już istnieje):", key)

View File

@ -41,7 +41,7 @@ func _generate_galaxy(count: int):
print("Zatrzymano generowanie po znalezieniu %s systemów." % i)
break
star.get_node("Sprite2D").texture = load("res://assets/stars/s%d.png" % randi_range(1,8))
add_child(star)
#add_child(star)
# generowanie planet dla danej gwiazdy
for j in range(star.planet_count):

View File

@ -89,7 +89,7 @@ func colonize():
add_building("iron_mine")
add_building("water_purifier")
add_building("terraforming_center")
add_building("residential_zone")
add_building("aluminium_ore_mine")
population = 100
print_data()

View File

@ -13,7 +13,7 @@ func _ready():
func _process(delta):
var total_days = int(GameData.game_time)
var numer_roku = 3980 + total_days / 365
var numer_roku = 2980 + total_days / 365
var day_of_year = total_days % 365
var dzien_cykliczny: int