# -*- coding: utf-8 -*- # 맵 씬 파일에서 블렌더 소품 프리팹(FRProp_)이 몇 번 쓰였는지 센다(프리팹 guid 로 찾는다). import re, io, sys, json, os, glob maps = ["Graveyard","RuinedKeep","SpiderCave","PlagueCatacomb","HarborExecution","ScorchedDesert"] theme = {"Graveyard":"Graveyard","RuinedKeep":"Keep","SpiderCave":"Cave","PlagueCatacomb":"Catacomb","HarborExecution":"Harbor","ScorchedDesert":"Desert"} root = r"C:\BurningTimes\FirstRising" for m in maps: scenes = glob.glob(os.path.join(root, "Assets/Scenes/Maps", m, "*.unity")) text = "" for s in scenes: text += io.open(s, encoding="utf-8", errors="ignore").read() pdir = os.path.join(root, "Assets/BurningTimes/Maps/_Shared/Props", theme[m], "Prefabs") out = [] total = 0 for meta in sorted(glob.glob(os.path.join(pdir, "*.prefab.meta"))): guid = re.search(r"guid: ([0-9a-f]{32})", io.open(meta, encoding="utf-8").read()).group(1) n = len(re.findall(r"m_SourcePrefab: \{fileID: \d+, guid: %s" % guid, text)) name = os.path.basename(meta)[:-len(".prefab.meta")].split("_", 2)[2] out.append((name, n)); total += n print("%-16s 씬 %d개 · 새 소품 %3d개 · %s" % (m, len(scenes), total, " ".join("%s×%d" % x for x in sorted(out, key=lambda x: -x[1]))))