forked from team-sg/hero-mark-2
re-written save and level data system :)
This commit is contained in:
parent
f3debf74cf
commit
45ddbd5c04
13 changed files with 177 additions and 93 deletions
17
scripts/level_entry.gd
Normal file
17
scripts/level_entry.gd
Normal 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
35
scripts/save.gd
Normal 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)
|
Loading…
Add table
Add a link
Reference in a new issue