Skip to content

Commit

Permalink
Ne plus charger le fichier de save à chaque changement de niveau & pe…
Browse files Browse the repository at this point in the history
…rmettre de charger les saves depuis une requête à un serveur
  • Loading branch information
CorentinBrule committed Feb 26, 2023
1 parent c830353 commit fd83211
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 18 deletions.
48 changes: 31 additions & 17 deletions Global.gd
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@ var color_picker = {

var avatar

var save_folder_path = "res://save/"
var has_server_saves = false
export var save_folder_path = "res://save/"
export var save_server_url = "http://localhost/kinematique/saves.php"
var save_files_path = []
var save_files_data = []
var save_index = 0
Expand All @@ -41,21 +43,29 @@ func _ready():
base_center = Vector2(base_size.x/2, base_size.y/2)
current_scene = root.get_child(root.get_child_count() - 1)

save_files_path = list_files_in_directory(save_folder_path)
save_files_data = load_files(save_files_path)
if current_scene.has_node("Menu"):
# load save from local "res://" file or from "server"
if OS.has_feature('JavaScript'):
var http = HTTPRequest.new()
current_scene.add_child(http)
http.connect("request_completed", self, "_on_request_completed")
http.request(save_server_url)
yield(http, "request_completed")

if has_server_saves == false:
save_files_path = list_files_in_directory(save_folder_path)
save_files_data = load_files(save_files_path)

current_scene.get_node("Menu").init(save_files_data)
yield(get_tree().create_timer(0.1), "timeout")
load_save(save_files_data[0].file_path)
set_save(save_files_data[0])

func _process(delta):
if current_scene.has_node("Menu"):
if Input.is_action_just_pressed("next_level"):
print(current_scene.get_node(Niveau_path))
next_save()

if Input.is_action_just_pressed("prev_level"):
print(current_scene.get_node(Niveau_path))
prev_save()

if Input.is_action_just_pressed("menu"):
Expand All @@ -70,32 +80,28 @@ func _process(delta):
current_scene.get_node("Menu").visible = true
current_scene.get_node("Menu").get_node("%save_files_list").grab_focus()

func load_save(path):
func set_save(save_data):
stop_level()
level_from_save = true
save_lib.load_file(current_scene, path)
save_lib.set_data(current_scene, save_data)
init_level()
yield(get_tree().create_timer(1.0), "timeout")
unpause_level()

func reload_save():
var path = save_files_path[save_index]
load_save(path)
set_save(save_files_data[save_index])

func next_save():
if level_from_save:
save_index = (save_index+1) % len(save_files_path)
var path = save_files_path[save_index]
# print(path)
load_save(path)
save_index = (save_index+1) % len(save_files_data)
set_save(save_files_data[save_index])

func prev_save():
if level_from_save:
save_index -= 1
if save_index < 0:
save_index = len(save_files_path)-1
var path = save_files_path[save_index]
load_save(path)
save_index = len(save_files_data)-1
set_save(save_files_data[save_index])

func stop_level():
pause_level()
Expand Down Expand Up @@ -148,3 +154,11 @@ func load_files(files):
datas.append(data_dict)
file.close()
return datas

func _on_request_completed(result, response_code, headers, body):
print(result)
if result == HTTPRequest.RESULT_SUCCESS:
print("THE SAVES HAS BEEN LOADED FROM ANOTHER FILE ON SERVER")
has_server_saves = true
var json = JSON.parse(body.get_string_from_utf8())
save_files_data = json.result
2 changes: 1 addition & 1 deletion menu.gd
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ func init(list_save_files):


func _on_save_files_list_item_activated(index):
Global.load_save(save_files[index]["file_path"])
Global.set_save(save_files[index])
Global.save_index = index
Global.unpause_level()
visible = false
Expand Down

0 comments on commit fd83211

Please sign in to comment.