diff --git a/doc/demo14_file/file.md b/doc/demo14_file/file.md new file mode 100644 index 0000000..18d7fdd --- /dev/null +++ b/doc/demo14_file/file.md @@ -0,0 +1,7 @@ +![Image text](image/file1.png) +![Image text](image/file2.png) +![Image text](image/file3.png) +![Image text](image/file4.png) +![Image text](image/file5.png) +![Image text](image/file6.png) +![Image text](image/file7.png) diff --git a/doc/demo14_file/image/file1.png b/doc/demo14_file/image/file1.png new file mode 100644 index 0000000..9e1949c Binary files /dev/null and b/doc/demo14_file/image/file1.png differ diff --git a/doc/demo14_file/image/file1.png.import b/doc/demo14_file/image/file1.png.import new file mode 100644 index 0000000..668c8c6 --- /dev/null +++ b/doc/demo14_file/image/file1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/file1.png-3ffac0800e2b7d2118a19b3247b2f5f3.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://doc/demo14_file/image/file1.png" +dest_files=[ "res://.import/file1.png-3ffac0800e2b7d2118a19b3247b2f5f3.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/doc/demo14_file/image/file2.png b/doc/demo14_file/image/file2.png new file mode 100644 index 0000000..a0f0686 Binary files /dev/null and b/doc/demo14_file/image/file2.png differ diff --git a/doc/demo14_file/image/file2.png.import b/doc/demo14_file/image/file2.png.import new file mode 100644 index 0000000..1a735f0 --- /dev/null +++ b/doc/demo14_file/image/file2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/file2.png-9be676ae73e6dabfdab5d47c9de45c66.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://doc/demo14_file/image/file2.png" +dest_files=[ "res://.import/file2.png-9be676ae73e6dabfdab5d47c9de45c66.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/doc/demo14_file/image/file3.png b/doc/demo14_file/image/file3.png new file mode 100644 index 0000000..3c8f888 Binary files /dev/null and b/doc/demo14_file/image/file3.png differ diff --git a/doc/demo14_file/image/file3.png.import b/doc/demo14_file/image/file3.png.import new file mode 100644 index 0000000..e58736c --- /dev/null +++ b/doc/demo14_file/image/file3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/file3.png-4715757aa35beafa52c92a7ec377c917.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://doc/demo14_file/image/file3.png" +dest_files=[ "res://.import/file3.png-4715757aa35beafa52c92a7ec377c917.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/doc/demo14_file/image/file4.png b/doc/demo14_file/image/file4.png new file mode 100644 index 0000000..942341e Binary files /dev/null and b/doc/demo14_file/image/file4.png differ diff --git a/doc/demo14_file/image/file4.png.import b/doc/demo14_file/image/file4.png.import new file mode 100644 index 0000000..faa2ada --- /dev/null +++ b/doc/demo14_file/image/file4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/file4.png-4c3824af11de46cee4f62f82384e3ad1.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://doc/demo14_file/image/file4.png" +dest_files=[ "res://.import/file4.png-4c3824af11de46cee4f62f82384e3ad1.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/doc/demo14_file/image/file5.png b/doc/demo14_file/image/file5.png new file mode 100644 index 0000000..87a87c2 Binary files /dev/null and b/doc/demo14_file/image/file5.png differ diff --git a/doc/demo14_file/image/file5.png.import b/doc/demo14_file/image/file5.png.import new file mode 100644 index 0000000..214be6a --- /dev/null +++ b/doc/demo14_file/image/file5.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/file5.png-f467d0f434db1a5e887c11898e394d30.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://doc/demo14_file/image/file5.png" +dest_files=[ "res://.import/file5.png-f467d0f434db1a5e887c11898e394d30.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/doc/demo14_file/image/file6.png b/doc/demo14_file/image/file6.png new file mode 100644 index 0000000..05d8f78 Binary files /dev/null and b/doc/demo14_file/image/file6.png differ diff --git a/doc/demo14_file/image/file6.png.import b/doc/demo14_file/image/file6.png.import new file mode 100644 index 0000000..6d76322 --- /dev/null +++ b/doc/demo14_file/image/file6.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/file6.png-7ee5371775966a7dd9cbd95182678b43.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://doc/demo14_file/image/file6.png" +dest_files=[ "res://.import/file6.png-7ee5371775966a7dd9cbd95182678b43.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/doc/demo14_file/image/file7.png b/doc/demo14_file/image/file7.png new file mode 100644 index 0000000..67366e2 Binary files /dev/null and b/doc/demo14_file/image/file7.png differ diff --git a/doc/demo14_file/image/file7.png.import b/doc/demo14_file/image/file7.png.import new file mode 100644 index 0000000..83f38c1 --- /dev/null +++ b/doc/demo14_file/image/file7.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/file7.png-6229bdb707266ee67d8fb0937efe4845.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://doc/demo14_file/image/file7.png" +dest_files=[ "res://.import/file7.png-6229bdb707266ee67d8fb0937efe4845.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/scene/demo14_file/file.tscn b/scene/demo14_file/file.tscn new file mode 100644 index 0000000..29a18d9 --- /dev/null +++ b/scene/demo14_file/file.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://script/demo14_file/file.gd" type="Script" id=1] + +[node name="Node2D" type="Node2D"] +script = ExtResource( 1 ) diff --git a/script/demo14_file/file.gd b/script/demo14_file/file.gd new file mode 100644 index 0000000..9415688 --- /dev/null +++ b/script/demo14_file/file.gd @@ -0,0 +1,35 @@ +extends Node2D + +const TimeUtils = preload("res://zfoo/scheduler/TimeUtils.gd") +const FileUtils = preload("res://zfoo/util/FileUtils.gd") + + +# Dictionary +var content = "hello file!!!" + +# path string +var filePath: String = "user://playerData.txt" + + +func _ready() -> void: + print("Original Data: ", content) + self.loadData() + print("Altered Data: ", content) + + +func saveData() -> void: + + + FileUtils.writeStringToFile(filePath, content) + + +func loadData() -> void: + + content = FileUtils.readFileToString(filePath) + + +func _notification(what): + if what == MainLoop.NOTIFICATION_WM_QUIT_REQUEST: + content = content + TimeUtils.currentTimeMillis() as String + self.saveData() + get_tree().quit() # quitting the game diff --git a/zfoo/util/FileUtils.gd b/zfoo/util/FileUtils.gd new file mode 100644 index 0000000..7f2098c --- /dev/null +++ b/zfoo/util/FileUtils.gd @@ -0,0 +1,26 @@ +extends Object + +const StringUtils = preload("res://zfoo/util/StringUtils.gd") + +# 以追加的方式写入一个content +static func writeStringToFile(filePath: String, content: String) -> void: + var file = File.new() + file.open(filePath, File.WRITE) + # bread and butter + file.store_string(content) + file.close() + + +# 读取文件 +static func readFileToString(filePath: String) -> String: + var file = File.new() + # make sure our file exists on users system + if !file.file_exists(filePath): + return StringUtils.EMPTY + + # allow reading only for file + file.open(filePath, File.READ) + + var content = file.get_as_text() + file.close() + return content