import shutil
import os
import glob

def create_new_model(file_name):
    # 移动文件
    shutil.move(file_name, f"citems\\textures\\item\\{file_name}")
    print(f"文件 {file_name} 已被移动")

    # 移除文件扩展名
    base_name = file_name.split(".")[0]

    # 创建模型文件
    with open(f"citems\\models\\item\\{base_name}.json", 'w') as model_file:
        model_file.write(f"""
{{
    "parent": "item/generated",
    "textures": {{
        "layer0": "citems:item/{base_name}"
    }}
}}
        """)
    print(f"模型文件 {base_name}.json 已创建")

    # 创建物品文件
    with open(f"citems\\items\\{base_name}.json", 'w') as item_file:
        item_file.write(f"""
{{
    "model": {{
        "type": "minecraft:model",
        "model": "citems:item/{base_name}"
    }}
}}
        """)
    print(f"物品文件 {base_name}.json 已创建")

def process_all_png_files():
    # 获取当前目录下所有png文件
    png_files = glob.glob("*.png")
    
    if not png_files:
        print("当前目录下没有找到png文件")
        return
    
    print(f"找到 {len(png_files)} 个png文件，开始处理...")
    
    for png_file in png_files:
        print(f"\n正在处理: {png_file}")
        try:
            create_new_model(png_file)
        except Exception as e:
            print(f"处理 {png_file} 时出错: {e}")

if __name__ == "__main__":
    while True:
        user_input = input("请输入文件名 (或输入'all'处理所有png文件，输入'quit'退出): ").strip()
        
        if user_input.lower() == 'quit':
            print("程序退出")
            break
        elif user_input.lower() == 'all':
            process_all_png_files()
        elif user_input.endswith('.png') and os.path.exists(user_input):
            create_new_model(user_input)
        else:
            print("无效输入！请输入png文件名，或'all'处理所有png文件，或'quit'退出")