re-written save and level data system :)

This commit is contained in:
Haze Weathers 2023-01-27 09:51:50 -05:00
parent f3debf74cf
commit 45ddbd5c04
13 changed files with 177 additions and 93 deletions

17
scripts/level_entry.gd Normal file
View file

@ -0,0 +1,17 @@
tool
class_name LevelEntry
extends Resource
export var title = "" setget set_title
export var shard_titles = [
"", "", "", "",
"5 Rainbow Stars",
"Collection Bonus",
"Time Bonus",
"Life Bonus"]
export var save_id = ""
export (PackedScene) var scene
func set_title(value):
title = value
resource_name = value

35
scripts/save.gd Normal file
View file

@ -0,0 +1,35 @@
extends Node
var file
func load_file(file_number):
var new_file = ConfigFile.new()
new_file.load("user://file%d.pr" % file_number)
file = new_file
func get_level_data(save_id):
var shards = []
shards.resize(8)
for i in 8:
shards[i] = file.get_value(save_id, "shard_%d" % i, false)
return {
# any% score and time
score_any = file.get_value(save_id, "score_any", 0),
time_any = file.get_value(save_id, "time_any", 0),
# 100% score and time
score_100 = file.get_value(save_id, "score_100", 0),
time_100 = file.get_value(save_id, "time_100", 0),
shards = shards
}
func set_shard_collected(save_id, index, collected = true):
file.set_value(save_id, "shard_%d" % index, collected)
func set_score(save_id, score, is_100 = false):
file.set_value(save_id, "score_100" if is_100 else "score_any", int(score))
func set_time(save_id, time, is_100 = false):
file.set_value(save_id, "time_100" if is_100 else "time_any", float(time))
func save_file(file_number):
file.save("user://file%d.pr" % file_number)