art loader 加载逻辑修正

This commit is contained in:
cakipaul 2024-12-25 14:27:47 +08:00
parent 9fdb1d2f17
commit b9feed86dd
8 changed files with 1356 additions and 420 deletions

View File

@ -21,7 +21,7 @@ const PAGE_SIZE = 6
# 12.png # 12.png
# 11.png.import # 11.png.import
# 31 - 副本.png.import # 31 - 副本.png.import
var frame_png_regex = RegEx.create_from_string("^.*(\\d+)\\.png$") var frame_png_regex = RegEx.create_from_string("^[^\\d]*(\\d+)\\.png$")
# { # {
# "dirs": {}, # "dirs": {},
# "mapping": {}, # "mapping": {},
@ -170,7 +170,7 @@ func _display_cards(current_keys: Array):
original_config.data.mapping[frames_name] = frames_name original_config.data.mapping[frames_name] = frames_name
# frames_per_second # frames_per_second
if not original_config.data["frames_per_second"].has(frames_name): if not original_config.data["frames_per_second"].has(frames_name):
original_config.data.frames_per_second[frames_name] = 12 original_config.data.frames_per_second[frames_name] = 5
# mirror_mapping # mirror_mapping
if not original_config.data["mirror_mapping"].has(frames_name): if not original_config.data["mirror_mapping"].has(frames_name):
original_config.data.mirror_mapping[frames_name] = "" original_config.data.mirror_mapping[frames_name] = ""

View File

@ -1,46 +1,46 @@
{ {
"frames_per_second": { "frames_per_second": {
"idle小男孩": 7, "idle小男孩": 3,
"idle车夫": 12, "idle车夫": 3,
"idle鬼差红光": 12, "idle鬼差红光": 5,
"running车夫": 12, "running车夫": 6,
"walking鬼差红光": 12, "walking鬼差红光": 6,
"右呼吸": 12, "右呼吸": 2,
"右走路": 12, "右走路": 6,
"吊猫动作帧": 12, "吊猫动作帧": 3,
"吕萍头痛蹲下": 12, "吕萍头痛蹲下": 6,
"吕萍爬行": 12, "吕萍爬行": 6,
"吕萍背靠起身": 12, "吕萍背靠起身": 6,
"吕萍记笔记": 12, "吕萍记笔记": 6,
"吕萍风吹过": 12, "吕萍风吹过": 6,
"小男孩-站起来": 12, "小男孩-站起来": 6,
"小男孩-跑步": 20, "小男孩-跑步": 7,
"小蝶-抬头+站起来": 12, "小蝶-抬头+站起来": 6,
"小蝶-跑步": 15, "小蝶-跑步": 8,
"小跑右": 20, "小跑右": 8,
"小跑左": 17, "小跑左": 7,
"左呼吸": 12, "左呼吸": 2,
"左走路": 12, "左走路": 6,
"张胖子": 12, "张胖子": 2,
"弹珠": 12, "弹珠": 11,
"捂脸": 12, "捂脸": 6,
"捡球男孩关键帧": 12, "捡球男孩关键帧": 6,
"李氏": 12, "李氏": 2,
"母亲": 12, "母亲": 6,
"爬出洞口": 12, "爬出洞口": 6,
"父亲": 12, "父亲": 6,
"父亲走路": 20, "父亲走路": 8,
"王癞子": 12, "王癞子": 2,
"癞子蹲着+呼吸": 12, "癞子蹲着+呼吸": 2,
"瞎子": 12, "瞎子": 2,
"站起来": 12, "站起来": 7,
"被吓到后退": 12, "被吓到后退": 6,
"起身蹲着窥视": 12, "起身蹲着窥视": 6,
"跑步右": 20, "跑步右": 8,
"跑步左": 20, "跑步左": 8,
"蹲下来查看": 12, "蹲下来查看": 6,
"钻出": 12, "钻出": 6,
"黑手": 24 "黑手": 9
}, },
"mapping": { "mapping": {
"idle小男孩": "idle_boy_l", "idle小男孩": "idle_boy_l",
@ -211,8 +211,15 @@
"吕萍头痛蹲下": { "吕萍头痛蹲下": {
"path": "res://asset/art/characters/吕萍头痛蹲下", "path": "res://asset/art/characters/吕萍头痛蹲下",
"frames": { "frames": {
"1": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下11.png", "1": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下1.png",
"0": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下10.png", "10": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下10.png",
"11": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下11.png",
"12": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下12.png",
"13": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下13.png",
"14": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下14.png",
"15": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下15.png",
"16": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下16.png",
"17": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下17.png",
"2": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下2.png", "2": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下2.png",
"3": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下3.png", "3": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下3.png",
"4": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下4.png", "4": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下4.png",
@ -223,7 +230,6 @@
"9": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下9.png" "9": "res://asset/art/characters/吕萍头痛蹲下/吕萍-头痛蹲下9.png"
}, },
"ids": [ "ids": [
"0",
"1", "1",
"2", "2",
"3", "3",
@ -232,7 +238,15 @@
"6", "6",
"7", "7",
"8", "8",
"9" "9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17"
] ]
}, },
"吕萍爬行": { "吕萍爬行": {
@ -261,9 +275,25 @@
"吕萍背靠起身": { "吕萍背靠起身": {
"path": "res://asset/art/characters/吕萍背靠起身", "path": "res://asset/art/characters/吕萍背靠起身",
"frames": { "frames": {
"1": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身21.png", "1": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身1.png",
"0": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身20.png", "10": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身10.png",
"2": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身22.png", "11": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身11.png",
"12": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身12.png",
"13": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身13.png",
"14": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身14.png",
"15": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身15.png",
"16": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身16.png",
"17": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身17.png",
"18": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身18.png",
"19": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身19.png",
"2": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身2.png",
"20": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身20.png",
"21": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身21.png",
"22": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身22.png",
"23": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身23.png",
"24": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身24.png",
"25": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身25.png",
"26": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身26.png",
"3": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身3.png", "3": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身3.png",
"4": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身4.png", "4": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身4.png",
"5": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身5.png", "5": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身5.png",
@ -273,7 +303,6 @@
"9": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身9.png" "9": "res://asset/art/characters/吕萍背靠起身/吕萍-站起身9.png"
}, },
"ids": [ "ids": [
"0",
"1", "1",
"2", "2",
"3", "3",
@ -282,15 +311,46 @@
"6", "6",
"7", "7",
"8", "8",
"9" "9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18",
"19",
"20",
"21",
"22",
"23",
"24",
"25",
"26"
] ]
}, },
"吕萍记笔记": { "吕萍记笔记": {
"path": "res://asset/art/characters/吕萍记笔记", "path": "res://asset/art/characters/吕萍记笔记",
"frames": { "frames": {
"1": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录21.png", "1": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录1.png",
"0": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录20.png", "10": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录10.png",
"2": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录22.png", "11": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录11.png",
"12": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录12.png",
"13": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录13.png",
"14": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录14.png",
"15": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录15.png",
"16": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录16.png",
"17": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录17.png",
"18": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录18.png",
"19": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录19.png",
"2": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录2.png",
"20": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录20.png",
"21": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录21.png",
"22": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录22.png",
"23": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录23.png",
"24": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录24.png",
"3": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录3.png", "3": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录3.png",
"4": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录4.png", "4": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录4.png",
"5": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录5.png", "5": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录5.png",
@ -300,7 +360,6 @@
"9": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录9.png" "9": "res://asset/art/characters/吕萍记笔记/吕萍-拿本子记录9.png"
}, },
"ids": [ "ids": [
"0",
"1", "1",
"2", "2",
"3", "3",
@ -309,14 +368,30 @@
"6", "6",
"7", "7",
"8", "8",
"9" "9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18",
"19",
"20",
"21",
"22",
"23",
"24"
] ]
}, },
"吕萍风吹过": { "吕萍风吹过": {
"path": "res://asset/art/characters/吕萍风吹过", "path": "res://asset/art/characters/吕萍风吹过",
"frames": { "frames": {
"1": "res://asset/art/characters/吕萍风吹过/吕萍-风吹过11.png", "1": "res://asset/art/characters/吕萍风吹过/吕萍-风吹过1.png",
"0": "res://asset/art/characters/吕萍风吹过/吕萍-风吹过10.png", "10": "res://asset/art/characters/吕萍风吹过/吕萍-风吹过10.png",
"11": "res://asset/art/characters/吕萍风吹过/吕萍-风吹过11.png",
"2": "res://asset/art/characters/吕萍风吹过/吕萍-风吹过2.png", "2": "res://asset/art/characters/吕萍风吹过/吕萍-风吹过2.png",
"3": "res://asset/art/characters/吕萍风吹过/吕萍-风吹过3.png", "3": "res://asset/art/characters/吕萍风吹过/吕萍-风吹过3.png",
"4": "res://asset/art/characters/吕萍风吹过/吕萍-风吹过4.png", "4": "res://asset/art/characters/吕萍风吹过/吕萍-风吹过4.png",
@ -327,7 +402,6 @@
"9": "res://asset/art/characters/吕萍风吹过/吕萍-风吹过9.png" "9": "res://asset/art/characters/吕萍风吹过/吕萍-风吹过9.png"
}, },
"ids": [ "ids": [
"0",
"1", "1",
"2", "2",
"3", "3",
@ -336,7 +410,9 @@
"6", "6",
"7", "7",
"8", "8",
"9" "9",
"10",
"11"
] ]
}, },
"小男孩-站起来": { "小男孩-站起来": {
@ -378,8 +454,11 @@
"小蝶-抬头+站起来": { "小蝶-抬头+站起来": {
"path": "res://asset/art/characters/小蝶-抬头+站起来", "path": "res://asset/art/characters/小蝶-抬头+站起来",
"frames": { "frames": {
"1": "res://asset/art/characters/小蝶-抬头+站起来/11.png", "1": "res://asset/art/characters/小蝶-抬头+站起来/1.png",
"0": "res://asset/art/characters/小蝶-抬头+站起来/10.png", "10": "res://asset/art/characters/小蝶-抬头+站起来/10.png",
"11": "res://asset/art/characters/小蝶-抬头+站起来/11.png",
"12": "res://asset/art/characters/小蝶-抬头+站起来/12.png",
"13": "res://asset/art/characters/小蝶-抬头+站起来/13.png",
"2": "res://asset/art/characters/小蝶-抬头+站起来/2.png", "2": "res://asset/art/characters/小蝶-抬头+站起来/2.png",
"3": "res://asset/art/characters/小蝶-抬头+站起来/3.png", "3": "res://asset/art/characters/小蝶-抬头+站起来/3.png",
"6": "res://asset/art/characters/小蝶-抬头+站起来/6.png", "6": "res://asset/art/characters/小蝶-抬头+站起来/6.png",
@ -388,14 +467,17 @@
"9": "res://asset/art/characters/小蝶-抬头+站起来/9.png" "9": "res://asset/art/characters/小蝶-抬头+站起来/9.png"
}, },
"ids": [ "ids": [
"0",
"1", "1",
"2", "2",
"3", "3",
"6", "6",
"7", "7",
"8", "8",
"9" "9",
"10",
"11",
"12",
"13"
] ]
}, },
"小蝶-跑步": { "小蝶-跑步": {
@ -513,9 +595,25 @@
"弹珠": { "弹珠": {
"path": "res://asset/art/characters/弹珠", "path": "res://asset/art/characters/弹珠",
"frames": { "frames": {
"1": "res://asset/art/characters/弹珠/21.png", "1": "res://asset/art/characters/弹珠/1.png",
"0": "res://asset/art/characters/弹珠/20.png", "10": "res://asset/art/characters/弹珠/10.png",
"2": "res://asset/art/characters/弹珠/22.png", "11": "res://asset/art/characters/弹珠/11.png",
"12": "res://asset/art/characters/弹珠/12.png",
"13": "res://asset/art/characters/弹珠/13.png",
"14": "res://asset/art/characters/弹珠/14.png",
"15": "res://asset/art/characters/弹珠/15.png",
"16": "res://asset/art/characters/弹珠/16.png",
"17": "res://asset/art/characters/弹珠/17.png",
"18": "res://asset/art/characters/弹珠/18.png",
"19": "res://asset/art/characters/弹珠/19.png",
"2": "res://asset/art/characters/弹珠/2.png",
"20": "res://asset/art/characters/弹珠/20.png",
"21": "res://asset/art/characters/弹珠/21.png",
"22": "res://asset/art/characters/弹珠/22.png",
"23": "res://asset/art/characters/弹珠/23.png",
"24": "res://asset/art/characters/弹珠/24.png",
"25": "res://asset/art/characters/弹珠/25.png",
"26": "res://asset/art/characters/弹珠/26.png",
"3": "res://asset/art/characters/弹珠/3.png", "3": "res://asset/art/characters/弹珠/3.png",
"4": "res://asset/art/characters/弹珠/4.png", "4": "res://asset/art/characters/弹珠/4.png",
"5": "res://asset/art/characters/弹珠/5.png", "5": "res://asset/art/characters/弹珠/5.png",
@ -525,7 +623,6 @@
"9": "res://asset/art/characters/弹珠/9.png" "9": "res://asset/art/characters/弹珠/9.png"
}, },
"ids": [ "ids": [
"0",
"1", "1",
"2", "2",
"3", "3",
@ -534,25 +631,48 @@
"6", "6",
"7", "7",
"8", "8",
"9" "9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18",
"19",
"20",
"21",
"22",
"23",
"24",
"25",
"26"
] ]
}, },
"捂脸": { "捂脸": {
"path": "res://asset/art/characters/捂脸", "path": "res://asset/art/characters/捂脸",
"frames": { "frames": {
"1": "res://asset/art/characters/捂脸/11.png", "1": "res://asset/art/characters/捂脸/1.png",
"0": "res://asset/art/characters/捂脸/10.png", "10": "res://asset/art/characters/捂脸/10.png",
"11": "res://asset/art/characters/捂脸/11.png",
"12": "res://asset/art/characters/捂脸/12.png",
"13": "res://asset/art/characters/捂脸/13.png",
"16": "res://asset/art/characters/捂脸/16.png",
"17": "res://asset/art/characters/捂脸/17.png",
"18": "res://asset/art/characters/捂脸/18.png",
"19": "res://asset/art/characters/捂脸/19.png",
"2": "res://asset/art/characters/捂脸/2.png", "2": "res://asset/art/characters/捂脸/2.png",
"3": "res://asset/art/characters/捂脸/3.png", "3": "res://asset/art/characters/捂脸/3.png",
"4": "res://asset/art/characters/捂脸/4.png",
"5": "res://asset/art/characters/捂脸/5.png",
"6": "res://asset/art/characters/捂脸/6.png", "6": "res://asset/art/characters/捂脸/6.png",
"7": "res://asset/art/characters/捂脸/7.png", "7": "res://asset/art/characters/捂脸/7.png",
"8": "res://asset/art/characters/捂脸/8.png", "8": "res://asset/art/characters/捂脸/8.png",
"9": "res://asset/art/characters/捂脸/9.png", "9": "res://asset/art/characters/捂脸/9.png"
"4": "res://asset/art/characters/捂脸/4.png",
"5": "res://asset/art/characters/捂脸/5.png"
}, },
"ids": [ "ids": [
"0",
"1", "1",
"2", "2",
"3", "3",
@ -561,25 +681,83 @@
"6", "6",
"7", "7",
"8", "8",
"9" "9",
"10",
"11",
"12",
"13",
"16",
"17",
"18",
"19"
] ]
}, },
"捡球男孩关键帧": { "捡球男孩关键帧": {
"path": "res://asset/art/characters/捡球男孩关键帧", "path": "res://asset/art/characters/捡球男孩关键帧",
"frames": { "frames": {
"1": "res://asset/art/characters/捡球男孩关键帧/61.png", "1": "res://asset/art/characters/捡球男孩关键帧/1.png",
"0": "res://asset/art/characters/捡球男孩关键帧/60.png", "10": "res://asset/art/characters/捡球男孩关键帧/10.png",
"2": "res://asset/art/characters/捡球男孩关键帧/52.png", "11": "res://asset/art/characters/捡球男孩关键帧/11.png",
"3": "res://asset/art/characters/捡球男孩关键帧/53.png", "12": "res://asset/art/characters/捡球男孩关键帧/12.png",
"4": "res://asset/art/characters/捡球男孩关键帧/54.png", "13": "res://asset/art/characters/捡球男孩关键帧/13.png",
"5": "res://asset/art/characters/捡球男孩关键帧/55.png", "14": "res://asset/art/characters/捡球男孩关键帧/14.png",
"15": "res://asset/art/characters/捡球男孩关键帧/15.png",
"16": "res://asset/art/characters/捡球男孩关键帧/16.png",
"17": "res://asset/art/characters/捡球男孩关键帧/17.png",
"18": "res://asset/art/characters/捡球男孩关键帧/18.png",
"19": "res://asset/art/characters/捡球男孩关键帧/19.png",
"2": "res://asset/art/characters/捡球男孩关键帧/2.png",
"20": "res://asset/art/characters/捡球男孩关键帧/20.png",
"21": "res://asset/art/characters/捡球男孩关键帧/21.png",
"22": "res://asset/art/characters/捡球男孩关键帧/22.png",
"23": "res://asset/art/characters/捡球男孩关键帧/23.png",
"24": "res://asset/art/characters/捡球男孩关键帧/24.png",
"25": "res://asset/art/characters/捡球男孩关键帧/25.png",
"26": "res://asset/art/characters/捡球男孩关键帧/26.png",
"27": "res://asset/art/characters/捡球男孩关键帧/27.png",
"28": "res://asset/art/characters/捡球男孩关键帧/28.png",
"29": "res://asset/art/characters/捡球男孩关键帧/29.png",
"3": "res://asset/art/characters/捡球男孩关键帧/3.png",
"30": "res://asset/art/characters/捡球男孩关键帧/30.png",
"31": "res://asset/art/characters/捡球男孩关键帧/31.png",
"32": "res://asset/art/characters/捡球男孩关键帧/32.png",
"33": "res://asset/art/characters/捡球男孩关键帧/33.png",
"34": "res://asset/art/characters/捡球男孩关键帧/34.png",
"35": "res://asset/art/characters/捡球男孩关键帧/35.png",
"36": "res://asset/art/characters/捡球男孩关键帧/36.png",
"37": "res://asset/art/characters/捡球男孩关键帧/37.png",
"38": "res://asset/art/characters/捡球男孩关键帧/38.png",
"39": "res://asset/art/characters/捡球男孩关键帧/39.png",
"4": "res://asset/art/characters/捡球男孩关键帧/4.png",
"40": "res://asset/art/characters/捡球男孩关键帧/40.png",
"41": "res://asset/art/characters/捡球男孩关键帧/41.png",
"42": "res://asset/art/characters/捡球男孩关键帧/42.png",
"43": "res://asset/art/characters/捡球男孩关键帧/43.png",
"44": "res://asset/art/characters/捡球男孩关键帧/44.png",
"45": "res://asset/art/characters/捡球男孩关键帧/45.png",
"46": "res://asset/art/characters/捡球男孩关键帧/46.png",
"47": "res://asset/art/characters/捡球男孩关键帧/47.png",
"48": "res://asset/art/characters/捡球男孩关键帧/48.png",
"49": "res://asset/art/characters/捡球男孩关键帧/49.png",
"5": "res://asset/art/characters/捡球男孩关键帧/5.png",
"50": "res://asset/art/characters/捡球男孩关键帧/50.png",
"51": "res://asset/art/characters/捡球男孩关键帧/51.png",
"52": "res://asset/art/characters/捡球男孩关键帧/52.png",
"53": "res://asset/art/characters/捡球男孩关键帧/53.png",
"54": "res://asset/art/characters/捡球男孩关键帧/54.png",
"55": "res://asset/art/characters/捡球男孩关键帧/55.png",
"56": "res://asset/art/characters/捡球男孩关键帧/56.png",
"57": "res://asset/art/characters/捡球男孩关键帧/57.png",
"58": "res://asset/art/characters/捡球男孩关键帧/58.png",
"59": "res://asset/art/characters/捡球男孩关键帧/59.png",
"6": "res://asset/art/characters/捡球男孩关键帧/6.png", "6": "res://asset/art/characters/捡球男孩关键帧/6.png",
"60": "res://asset/art/characters/捡球男孩关键帧/60.png",
"61": "res://asset/art/characters/捡球男孩关键帧/61.png",
"7": "res://asset/art/characters/捡球男孩关键帧/7.png", "7": "res://asset/art/characters/捡球男孩关键帧/7.png",
"8": "res://asset/art/characters/捡球男孩关键帧/8.png", "8": "res://asset/art/characters/捡球男孩关键帧/8.png",
"9": "res://asset/art/characters/捡球男孩关键帧/9.png" "9": "res://asset/art/characters/捡球男孩关键帧/9.png"
}, },
"ids": [ "ids": [
"0",
"1", "1",
"2", "2",
"3", "3",
@ -588,7 +766,59 @@
"6", "6",
"7", "7",
"8", "8",
"9" "9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18",
"19",
"20",
"21",
"22",
"23",
"24",
"25",
"26",
"27",
"28",
"29",
"30",
"31",
"32",
"33",
"34",
"35",
"36",
"37",
"38",
"39",
"40",
"41",
"42",
"43",
"44",
"45",
"46",
"47",
"48",
"49",
"50",
"51",
"52",
"53",
"54",
"55",
"56",
"57",
"58",
"59",
"60",
"61"
] ]
}, },
"李氏": { "李氏": {
@ -609,37 +839,39 @@
"母亲": { "母亲": {
"path": "res://asset/art/characters/母亲", "path": "res://asset/art/characters/母亲",
"frames": { "frames": {
"1": "res://asset/art/characters/母亲/11.png", "1": "res://asset/art/characters/母亲/1.png",
"0": "res://asset/art/characters/母亲/10.png", "10": "res://asset/art/characters/母亲/10.png",
"2": "res://asset/art/characters/母亲/12.png", "11": "res://asset/art/characters/母亲/11.png",
"3": "res://asset/art/characters/母亲/13.png", "12": "res://asset/art/characters/母亲/12.png",
"13": "res://asset/art/characters/母亲/13.png",
"4": "res://asset/art/characters/母亲/4.png" "4": "res://asset/art/characters/母亲/4.png"
}, },
"ids": [ "ids": [
"0",
"1", "1",
"2", "4",
"3", "10",
"4" "11",
"12",
"13"
] ]
}, },
"爬出洞口": { "爬出洞口": {
"path": "res://asset/art/characters/爬出洞口", "path": "res://asset/art/characters/爬出洞口",
"frames": { "frames": {
"1": "res://asset/art/characters/爬出洞口/1.png", "1": "res://asset/art/characters/爬出洞口/1.png",
"0": "res://asset/art/characters/爬出洞口/10.png", "10": "res://asset/art/characters/爬出洞口/10.png",
"6": "res://asset/art/characters/爬出洞口/6.png", "6": "res://asset/art/characters/爬出洞口/6.png",
"7": "res://asset/art/characters/爬出洞口/7.png", "7": "res://asset/art/characters/爬出洞口/7.png",
"8": "res://asset/art/characters/爬出洞口/8.png", "8": "res://asset/art/characters/爬出洞口/8.png",
"9": "res://asset/art/characters/爬出洞口/9.png" "9": "res://asset/art/characters/爬出洞口/9.png"
}, },
"ids": [ "ids": [
"0",
"1", "1",
"6", "6",
"7", "7",
"8", "8",
"9" "9",
"10"
] ]
}, },
"父亲": { "父亲": {
@ -664,19 +896,26 @@
"父亲走路": { "父亲走路": {
"path": "res://asset/art/characters/父亲走路", "path": "res://asset/art/characters/父亲走路",
"frames": { "frames": {
"1": "res://asset/art/characters/父亲走路/11.png", "1": "res://asset/art/characters/父亲走路/01.png",
"2": "res://asset/art/characters/父亲走路/12.png", "2": "res://asset/art/characters/父亲走路/02.png",
"3": "res://asset/art/characters/父亲走路/13.png", "3": "res://asset/art/characters/父亲走路/03.png",
"4": "res://asset/art/characters/父亲走路/14.png", "4": "res://asset/art/characters/父亲走路/04.png",
"5": "res://asset/art/characters/父亲走路/15.png", "5": "res://asset/art/characters/父亲走路/05.png",
"6": "res://asset/art/characters/父亲走路/16.png", "6": "res://asset/art/characters/父亲走路/06.png",
"7": "res://asset/art/characters/父亲走路/17.png", "7": "res://asset/art/characters/父亲走路/07.png",
"8": "res://asset/art/characters/父亲走路/18.png", "8": "res://asset/art/characters/父亲走路/08.png",
"9": "res://asset/art/characters/父亲走路/09.png", "9": "res://asset/art/characters/父亲走路/09.png",
"0": "res://asset/art/characters/父亲走路/10.png" "10": "res://asset/art/characters/父亲走路/10.png",
"11": "res://asset/art/characters/父亲走路/11.png",
"12": "res://asset/art/characters/父亲走路/12.png",
"13": "res://asset/art/characters/父亲走路/13.png",
"14": "res://asset/art/characters/父亲走路/14.png",
"15": "res://asset/art/characters/父亲走路/15.png",
"16": "res://asset/art/characters/父亲走路/16.png",
"17": "res://asset/art/characters/父亲走路/17.png",
"18": "res://asset/art/characters/父亲走路/18.png"
}, },
"ids": [ "ids": [
"0",
"1", "1",
"2", "2",
"3", "3",
@ -685,7 +924,16 @@
"6", "6",
"7", "7",
"8", "8",
"9" "9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18"
] ]
}, },
"王癞子": { "王癞子": {
@ -876,7 +1124,7 @@
"path": "res://asset/art/characters/黑手", "path": "res://asset/art/characters/黑手",
"frames": { "frames": {
"1": "res://asset/art/characters/黑手/1.png", "1": "res://asset/art/characters/黑手/1.png",
"0": "res://asset/art/characters/黑手/10.png", "10": "res://asset/art/characters/黑手/10.png",
"2": "res://asset/art/characters/黑手/2.png", "2": "res://asset/art/characters/黑手/2.png",
"3": "res://asset/art/characters/黑手/3.png", "3": "res://asset/art/characters/黑手/3.png",
"4": "res://asset/art/characters/黑手/4.png", "4": "res://asset/art/characters/黑手/4.png",
@ -887,7 +1135,6 @@
"9": "res://asset/art/characters/黑手/9.png" "9": "res://asset/art/characters/黑手/9.png"
}, },
"ids": [ "ids": [
"0",
"1", "1",
"2", "2",
"3", "3",
@ -896,7 +1143,8 @@
"6", "6",
"7", "7",
"8", "8",
"9" "9",
"10"
] ]
} }
}, },

View File

@ -3,7 +3,7 @@ extends Control
@export var frames_config: JSON @export var frames_config: JSON
@export var frame_dir_name := "" @export var frame_dir_name := ""
@export var mapping_name := "" @export var mapping_name := ""
@export var frames_per_sec := 0 @export var frames_per_sec := 5
# empty string means no first frame mapping # empty string means no first frame mapping
@export var first_frame_mapping := "" @export var first_frame_mapping := ""
# empty string means no mirror mapping # empty string means no mirror mapping
@ -56,18 +56,19 @@ func reload_frames():
sprite_frames.clear(mirror_mapping) sprite_frames.clear(mirror_mapping)
else: else:
sprite_frames.add_animation(mirror_mapping) sprite_frames.add_animation(mirror_mapping)
var frame_duration = 12.0 / frames_per_sec
for id in frames_data.ids: for id in frames_data.ids:
var frame_path = frames_data.frames[id] var frame_path = frames_data.frames[id]
var frame_texture = load(frame_path) as Texture2D var frame_texture = load(frame_path) as Texture2D
sprite_frames.add_frame(mapping_name, frame_texture, frame_duration) sprite_frames.add_frame(mapping_name, frame_texture)
sprite_frames.set_animation_speed(mapping_name, frames_per_sec)
# mirror the frame # mirror the frame
if mirror_mapping != "": if mirror_mapping != "":
var mirrored_frame = frame_texture.duplicate() as Texture2D var mirrored_frame = frame_texture.duplicate() as Texture2D
var flipped_image = mirrored_frame.get_image() var flipped_image = mirrored_frame.get_image()
flipped_image.flip_x() flipped_image.flip_x()
mirrored_frame = ImageTexture.create_from_image(flipped_image) mirrored_frame = ImageTexture.create_from_image(flipped_image)
sprite_frames.add_frame(mirror_mapping, mirrored_frame, frame_duration) sprite_frames.add_frame(mirror_mapping, mirrored_frame)
sprite_frames.set_animation_speed(mapping_name, frames_per_sec)
animated_sprite.play(mapping_name) animated_sprite.play(mapping_name)
# scale down if the frame is too big # scale down if the frame is too big
var frame_size = sprite_frames.get_frame_texture(mapping_name, 0).get_size() var frame_size = sprite_frames.get_frame_texture(mapping_name, 0).get_size()

File diff suppressed because one or more lines are too long

View File

@ -1,16 +1,19 @@
{ {
"items": [ "items": [
{ {
"event_date": "12/24/2024", "event_date": "12/25/2024",
"item_id": "17350412826264", "item_id": "17350940343608",
"log_content": "实现基本的 EntityLoader 功能:\n* 在没有配置资源时,展示 placeholder\n* 可填充资源\n* 基本的数据结构:名称,说明,大小参数,动画,音效等", "log_content": "完善《从策划、资产(美术、音效)到程序的工作流说明》:\n* 三层定义:上层两端(策划+资产)、下层数据、程序中台\n* 五类定义:时间线纲要,实体,场景与部署点,事件与 CG小游戏\n* 工作流六步:定义资产规格,定义部署规格,定义音效规格,生产并组装资产,检阅与意见\n* 关于 UX 理念与分工的说明",
"tags": [], "tags": [
"update_date": "12/24/2024" "2@design",
"3@manage_tool"
],
"update_date": "12/25/2024"
}, },
{ {
"event_date": "12/24/2024", "event_date": "12/24/2024",
"item_id": "17350401808351", "item_id": "17350401808351",
"log_content": "实现自动存档功能:\n* 整合存档资源在 AssembledArchive 下\n* 多存档(隔离) + 单配置(全局)\n* 可配置定时保存\n* 游戏时长记录:存档游戏时长 + 全局游戏时长", "log_content": "实现自动存档功能:\n* 整合存档资源在 AssembledArchive 下\n* 多存档(隔离) + 单配置(全局)\n* 可配置定时保存\n* 游戏时长记录:存档游戏时长 + 全局游戏时长\n",
"tags": [ "tags": [
"2@code" "2@code"
], ],
@ -19,7 +22,7 @@
{ {
"event_date": "12/24/2024", "event_date": "12/24/2024",
"item_id": "17350028043797", "item_id": "17350028043797",
"log_content": "* 完善消息提示功能\n * 支持堆积消息\n * 0.5s 浮现,显示 3s0.5s 隐藏(通过调整 alpha 通道实现)如果有堆积的消息,显示 2s而不是 3s", "log_content": "* 完善消息提示功能\n * 0.5s 浮现,显示 3s0.5s 隐藏(通过调整 alpha 通道实现)\n * 支持堆积消息\n * 如果有堆积的消息,显示 2s而不是 3s",
"tags": [ "tags": [
"2@ui", "2@ui",
"2@code" "2@code"
@ -97,4 +100,4 @@
"update_date": "12/22/2024" "update_date": "12/22/2024"
} }
] ]
} }

View File

@ -58,7 +58,8 @@ func _check_autosave_options():
func _try_auto_save(): func _try_auto_save():
print("Auto save") if GlobalConfig.DEBUG:
print("Auto save")
if archive and GlobalConfigManager.config.auto_save_seconds > 1: if archive and GlobalConfigManager.config.auto_save_seconds > 1:
save_all() save_all()
SceneManager.pop_notification("自动保存成功") SceneManager.pop_notification("自动保存成功")

View File

@ -4,8 +4,6 @@ class_name EntityLoader extends Node2D
@export var entity_config: EntityConfig: @export var entity_config: EntityConfig:
set(value): set(value):
entity_config = value entity_config = value
value.changed.connect(_reload)
# Load the entity config
_reload() _reload()
@onready var sprite2d = %AnimatedSprite2D as AnimatedSprite2D @onready var sprite2d = %AnimatedSprite2D as AnimatedSprite2D
@ -22,9 +20,11 @@ func _ready() -> void:
func _reload() -> void: func _reload() -> void:
if not entity_config or not sprite2d: if not entity_config or not sprite2d:
return return
## free unused children
# TODO Load current state according to entity config
var success := false var success := false
# Load current state according to entity config
if entity_config.entity_state_default:
sprite2d.play(entity_config.entity_state_default.animation)
success = true
# Add placeholder if state's missing # Add placeholder if state's missing
if not success: if not success:
_init_placeholder() _init_placeholder()

View File

@ -1,16 +1,16 @@
[gd_scene load_steps=5 format=3 uid="uid://do5j7vqrviv48"] [gd_scene load_steps=5 format=3 uid="uid://do5j7vqrviv48"]
[ext_resource type="Script" path="res://manager/deploy/entity/entity_loader.gd" id="1_0ynbr"] [ext_resource type="Script" path="res://manager/deploy/entity/entity_loader.gd" id="1_0ynbr"]
[ext_resource type="SpriteFrames" uid="uid://cs44glabs8sma" path="res://config/animation/player_sprite_frames.tres" id="2_7crsu"] [ext_resource type="SpriteFrames" uid="uid://bpqlx1kac5d88" path="res://config/animation/player_sprite_frames.tres" id="2_7crsu"]
[ext_resource type="Script" path="res://config/deploy/entity_config.gd" id="2_ig6vo"] [ext_resource type="Script" path="res://config/deploy/entity_config.gd" id="2_ig6vo"]
[sub_resource type="Resource" id="Resource_2isy3"] [sub_resource type="Resource" id="Resource_2isy3"]
script = ExtResource("2_ig6vo") script = ExtResource("2_ig6vo")
trigger = true trigger = true
entity_name = "name" entity_name = "name24"
placeholder_size = Vector2(32, 64) placeholder_size = Vector2(32, 64)
offset = Vector2(0, 0) offset = Vector2(0, 0)
entity_title = "title" entity_title = "title1"
entity_note = "" entity_note = ""
pickable = false pickable = false
@ -23,4 +23,3 @@ unique_name_in_owner = true
scale = Vector2(0.125, 0.25) scale = Vector2(0.125, 0.25)
sprite_frames = ExtResource("2_7crsu") sprite_frames = ExtResource("2_7crsu")
animation = &"placeholder" animation = &"placeholder"
frame_progress = 0.488925