extends "res://scripts/player.gd" var time = 0 func _ready(): ._ready() read_recording() func _physics_process(delta): time += delta func _integrate_forces(state): play_keys(state) func read_recording(): # Gather all existing recordings var possible = [] var begin = "%d-%d" % [player_info.level, player_info.hero] var path = "res://recordings/" var dir = Directory.new() dir.open(path) dir.list_dir_begin() while true: var fname = dir.get_next() print(fname) if fname == "": # Indicates end of directory break if fname.begins_with(begin): possible.append(fname) dir.list_dir_end() # Now pick a random one var fname = possible[randi() % possible.size()] # Read the file into recording.events for later use var frec = File.new() frec.open(path + fname, File.READ) recording = parse_json(frec.get_as_text()) frec.close() func play_keys(phys_state): # states[0] is first state # states[0][0] is first state's time while float(recording[0][0]) <= time: # states[0][1] is first state's STATE var state = recording.pop_front()[1] for i in range(state.size()): state[i] = str2var(state[i]) set_status(state) phys_state.integrate_forces()