Generated Today (2026-01-05): - 🍓 Strawberries: 24/32 (75% - missing spring) - 🧅 Onions: 32/32 (100% COMPLETE) - 🌶️ Peppers: 32/32 (100% COMPLETE) - 🍀 Cannabis Indica: 5/32 (16% - quota hit) Total Production: - +96 standard crop sprites - +5 specialty crop sprites - = 101 NEW SPRITES GENERATED Progress: - Standard crops: 285/288 (99%) - All crops: 290/704 (41%) - Remaining: 411 specialty + 3 pumpkin winter New Features: - Created organize_crop_sprites.py automation - All sprites properly organized in /assets/sprites/crops/ - Updated FAZA1_GENERATION_STATUS.md API Status: - Gemini quota exhausted at 23:26 CET - Resets: 2026-01-06 01:58:59 CET
94 lines
4.4 KiB
Python
94 lines
4.4 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Organize crop sprites from brain directory to assets folder
|
|
"""
|
|
import os
|
|
import shutil
|
|
from pathlib import Path
|
|
|
|
BRAIN_DIR = Path("/Users/davidkotnik/.gemini/antigravity/brain/eda9a368-77c1-4f9a-961e-2c9fce4e750e")
|
|
ASSETS_DIR = Path("/Users/davidkotnik/repos/novafarma/assets/sprites/crops")
|
|
|
|
# Crop mappings
|
|
CROPS = {
|
|
'strawberry': {
|
|
'spring': ['strawberry_s1_spring', 'strawberry_s2_spring', 'strawberry_s3_spring',
|
|
'strawberry_s4_spring', 'strawberry_s5_spring', 'strawberry_s6_spring',
|
|
'strawberry_s7_spring', 'strawberry_s8_spring'],
|
|
'summer': ['strawberry_s1_summer', 'strawberry_s2_summer', 'strawberry_s3_summer',
|
|
'strawberry_s4_summer', 'strawberry_s5_summer', 'strawberry_s6_summer',
|
|
'strawberry_s7_summer', 'strawberry_s8_summer'],
|
|
'autumn': ['strawberry_autumn_1', 'strawberry_autumn_2', 'strawberry_autumn_3',
|
|
'strawberry_autumn_4', 'strawberry_autumn_5', 'strawberry_autumn_6',
|
|
'strawberry_autumn_7', 'strawberry_autumn_8'],
|
|
'winter': ['strawberry_winter_1', 'strawberry_winter_2', 'strawberry_winter_3',
|
|
'strawberry_winter_4', 'strawberry_winter_5', 'strawberry_winter_6',
|
|
'strawberry_winter_7', 'strawberry_winter_8'],
|
|
},
|
|
'onion': {
|
|
'spring': ['onion_s1_spring', 'onion_s2_spring', 'onion_s3_spring',
|
|
'onion_s4_spring', 'onion_s5_spring', 'onion_s6_spring',
|
|
'onion_s7_spring', 'onion_s8_spring_v2'], # v2 due to error retry
|
|
'summer': ['onion_summer_1', 'onion_summer_2', 'onion_summer_3',
|
|
'onion_summer_4', 'onion_summer_5', 'onion_summer_6',
|
|
'onion_summer_7', 'onion_summer_8'],
|
|
'autumn': ['onion_autumn_1', 'onion_autumn_2', 'onion_autumn_3',
|
|
'onion_autumn_4', 'onion_autumn_5', 'onion_autumn_6',
|
|
'onion_autumn_7', 'onion_autumn_8'],
|
|
'winter': ['onion_winter_1', 'onion_winter_2', 'onion_winter_3',
|
|
'onion_winter_4', 'onion_winter_5', 'onion_winter_6',
|
|
'onion_winter_7', 'onion_winter_8'],
|
|
},
|
|
'pepper': {
|
|
'spring': ['pepper_s1_spring', 'pepper_s2_spring', 'pepper_s3_spring',
|
|
'pepper_s4_spring', 'pepper_s5_spring', 'pepper_s6_spring',
|
|
'pepper_s7_spring', 'pepper_s8_spring'],
|
|
'summer': ['pepper_summer_1', 'pepper_summer_2', 'pepper_summer_3',
|
|
'pepper_summer_4', 'pepper_summer_5', 'pepper_summer_6',
|
|
'pepper_summer_7', 'pepper_summer_8'],
|
|
'autumn': ['pepper_autumn_1', 'pepper_autumn_2', 'pepper_autumn_3',
|
|
'pepper_autumn_4', 'pepper_autumn_5', 'pepper_autumn_6',
|
|
'pepper_autumn_7', 'pepper_autumn_8'],
|
|
'winter': ['pepper_winter_1', 'pepper_winter_2', 'pepper_winter_3',
|
|
'pepper_winter_4', 'pepper_winter_5', 'pepper_winter_6',
|
|
'pepper_winter_7', 'pepper_winter_8'],
|
|
},
|
|
'cannabis_indica': {
|
|
'spring': ['cannabis_indica_s1_spring', 'cannabis_indica_s2_spring',
|
|
'cannabis_indica_s3_spring', 'cannabis_indica_s4_spring',
|
|
'cannabis_indica_s5_spring'], # Only 5 generated before quota
|
|
}
|
|
}
|
|
|
|
def organize_crops():
|
|
"""Organize all crop sprites"""
|
|
total_copied = 0
|
|
|
|
for crop_name, seasons in CROPS.items():
|
|
# Create crop directory
|
|
crop_dir = ASSETS_DIR / crop_name
|
|
crop_dir.mkdir(parents=True, exist_ok=True)
|
|
|
|
print(f"\n📦 {crop_name.upper()}:")
|
|
|
|
for season, sprites in seasons.items():
|
|
for idx, sprite_prefix in enumerate(sprites, 1):
|
|
# Find file with this prefix
|
|
matching_files = list(BRAIN_DIR.glob(f"{sprite_prefix}_*.png"))
|
|
|
|
if matching_files:
|
|
source = matching_files[0]
|
|
dest = crop_dir / f"{crop_name}_stage{idx}_{season}.png"
|
|
|
|
shutil.copy2(source, dest)
|
|
print(f" ✅ {season} stage {idx}: {dest.name}")
|
|
total_copied += 1
|
|
else:
|
|
print(f" ❌ {season} stage {idx}: NOT FOUND ({sprite_prefix})")
|
|
|
|
print(f"\n🎉 TOTAL COPIED: {total_copied} sprites")
|
|
return total_copied
|
|
|
|
if __name__ == '__main__':
|
|
organize_crops()
|