Files
novafarma/scripts/organize_crop_sprites.py
David Kotnik b0488a7bc1 🌱 MASSIVE CROP SPRITE GENERATION - 96 sprites
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
2026-01-05 23:33:33 +01:00

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()