#!/usr/bin/env python3 """ FAZA 1 - Batch Asset Generator Generates all 576 crop sprites for Phase 1 Usage: python3 scripts/generate_faza1_crops.py """ import os import time from datetime import datetime # Crop definitions for Faza 1 CROPS_FAZA1 = { 'corn': { 'name': 'Corn (Koruza)', 'seasons': ['spring', 'summer', 'fall', 'winter'], 'stages': [ 'seeds planted in dark soil', 'small sprout emerging from soil', 'young plant with few leaves', 'growing plant with more foliage', 'mature plant with stalk forming, corn ears developing', 'harvest-ready with golden ears visible', 'overripe plant slightly wilting, ears browning', 'withered dead plant, brown dried stalks' ], 'special': 'tall crop, golden yellow ears' }, 'tomatoes': { 'name': 'Tomatoes (Paradižnik)', 'seasons': ['spring', 'summer', 'fall', 'winter'], 'stages': [ 'seeds planted in dark soil', 'small sprout emerging', 'young plant with few leaves', 'growing vine plant spreading', 'mature plant with small green tomatoes forming', 'harvest-ready with ripe red tomatoes', 'overripe with dark red tomatoes drooping', 'withered dead vine plant' ], 'special': 'vine crop, red fruits' }, 'carrots': { 'name': 'Carrots (Korenje)', 'seasons': ['spring', 'summer', 'fall', 'winter'], 'stages': [ 'seeds planted in dark soil', 'small green sprout emerging', 'young feathery leaves growing', 'growing leafy top, carrot forming underground', 'mature plant with orange carrot top visible', 'harvest-ready with large orange carrot', 'overripe with cracking carrot', 'withered dead plant' ], 'special': 'root vegetable, orange carrot visible' }, 'potatoes': { 'name': 'Potatoes (Krompir)', 'seasons': ['spring', 'summer', 'fall', 'winter'], 'stages': [ 'potato seed planted in soil', 'small sprout emerging', 'young plant with leaves', 'growing bushy plant', 'mature flowering plant', 'harvest-ready with potatoes visible in soil', 'overripe plant wilting', 'withered dead plant' ], 'special': 'multiple potatoes per plant' }, 'lettuce': { 'name': 'Lettuce (Solata)', 'seasons': ['spring', 'summer', 'fall', 'winter'], 'stages': [ 'seeds planted', 'tiny sprout', 'young leaves forming', 'growing leafy head', 'mature compact head', 'harvest-ready full lettuce head', 'overripe bolting plant', 'withered brown leaves' ], 'special': 'fast growing, leafy green head' }, 'pumpkin': { 'name': 'Pumpkin (Buče)', 'seasons': ['spring', 'summer', 'fall', 'winter'], 'stages': [ 'seeds planted', 'small sprout', 'young vine leaves', 'growing vine spreading', 'mature vine with small green pumpkin', 'harvest-ready large orange pumpkin', 'overripe darkening pumpkin', 'withered dead vine' ], 'special': 'large orange pumpkin, vine plant' }, 'strawberries': { 'name': 'Strawberries (Jagode)', 'seasons': ['spring', 'summer', 'fall', 'winter'], 'stages': [ 'seeds planted', 'small sprout', 'young leaves', 'growing plant with white flowers', 'mature plant with small green berries', 'harvest-ready with red strawberries', 'overripe dark berries', 'withered plant' ], 'special': 'bright red berries, perennial' }, 'onions': { 'name': 'Onions (Čebula)', 'seasons': ['spring', 'summer', 'fall', 'winter'], 'stages': [ 'onion set planted', 'green shoot emerging', 'young green stalks', 'growing stalks, bulb forming', 'mature plant with bulb visible', 'harvest-ready with large brown bulb', 'overripe bulb splitting', 'withered dead stalks' ], 'special': 'bulb formation visible, brown/white bulb' }, 'peppers': { 'name': 'Peppers (Paprika)', 'seasons': ['spring', 'summer', 'fall', 'winter'], 'stages': [ 'seeds planted', 'small sprout', 'young plant', 'growing bushy plant', 'mature plant with small green peppers', 'harvest-ready with red peppers', 'overripe dark red peppers', 'withered plant' ], 'special': 'color change green to red' } } CANNABIS_STRAINS = { 'hemp': { 'name': 'Hemp (Industrial)', 'seasons': ['spring', 'summer', 'fall', 'winter'], 'stages': [ 'hemp seeds planted', 'small sprout emerging', 'young plant with thin leaves', 'growing tall plant', 'mature tall plant with fiber stalks', 'harvest-ready hemp plant', 'overripe browning plant', 'withered dead plant' ], 'special': 'tall thin plant, industrial use' }, '7leaf': { 'name': '7-Leaf Cannabis (High THC)', 'seasons': ['spring', 'summer', 'fall', 'winter'], 'stages': [ 'cannabis seeds planted', 'small sprout', 'young plant with iconic 7-leaf pattern', 'growing bushy plant', 'mature plant with buds forming', 'harvest-ready with dense frosty buds', 'overripe drying plant', 'withered dead plant' ], 'special': 'classic 7-leaf marijuana, frosty buds' }, 'purple_haze': { 'name': 'Purple Haze (Legendary)', 'seasons': ['spring', 'summer', 'fall', 'winter'], 'stages': [ 'purple haze seeds planted', 'small purple-tinted sprout', 'young plant with purple hues', 'growing purple-tinted leaves', 'mature plant with purple buds', 'harvest-ready with deep purple buds', 'overripe purple drying', 'withered dead plant' ], 'special': 'purple coloration, legendary strain' } } MUSHROOM_VARIETIES = { 'cubensis': { 'name': 'Psilocybe Cubensis (Golden Teacher)', 'stages': [ 'substrate with spores', 'mycelium pins forming', 'baby mushrooms emerging', 'young mushrooms growing', 'mature golden-brown caps', 'harvest-ready with veil breaking' ], 'special': 'golden brown caps, white stems' }, 'amanita': { 'name': 'Amanita Muscaria (Fly Agaric)', 'stages': [ 'substrate prepared', 'small red cap emerging', 'baby mushroom with white dots appearing', 'young red cap with dots', 'mature red cap with white spots', 'harvest-ready iconic red mushroom' ], 'special': 'iconic red cap with white dots!' }, 'azurescens': { 'name': 'Psilocybe Azurescens (Blue Meanies)', 'stages': [ 'substrate with spores', 'blue-tinted pins', 'baby blue mushrooms', 'young mushrooms with blue bruising', 'mature with blue coloration', 'harvest-ready potent blue mushrooms' ], 'special': 'blue bruising, very potent' }, 'semilanceata': { 'name': 'Psilocybe Semilanceata (Liberty Caps)', 'stages': [ 'substrate prepared', 'tiny pins forming', 'baby pointy cap mushrooms', 'young liberty caps', 'mature pointy caps', 'harvest-ready liberty caps' ], 'special': 'pointy caps, small size' }, 'cyanescens': { 'name': 'Psilocybe Cyanescens (Wavy Caps)', 'stages': [ 'substrate with spores', 'small wavy caps emerging', 'baby mushrooms with wavy edges', 'young wavy mushrooms', 'mature wavy caps', 'harvest-ready wavy mushrooms' ], 'special': 'wavy cap edges, blue bruising' }, 'penis_envy': { 'name': 'Psilocybe Penis Envy (Strongest)', 'stages': [ 'substrate prepared', 'thick stem emerging', 'baby thick mushroom', 'young penis envy mushrooms', 'mature thick stems', 'harvest-ready potent mushrooms' ], 'special': 'thick stems, small caps, extreme potency' } } def create_generation_manifest(): """Create manifest file for all assets to generate""" manifest = { 'phase': 'Faza 1', 'total_sprites': 0, 'generated_at': datetime.now().isoformat(), 'crops': {} } # Standard crops for crop_id, crop_data in CROPS_FAZA1.items(): manifest['crops'][crop_id] = { 'name': crop_data['name'], 'type': 'standard_crop', 'seasons': len(crop_data['seasons']), 'stages': len(crop_data['stages']), 'total_sprites': len(crop_data['seasons']) * len(crop_data['stages']), 'special': crop_data['special'] } manifest['total_sprites'] += manifest['crops'][crop_id]['total_sprites'] # Cannabis for strain_id, strain_data in CANNABIS_STRAINS.items(): manifest['crops'][f'cannabis_{strain_id}'] = { 'name': strain_data['name'], 'type': 'cannabis', 'seasons': len(strain_data['seasons']), 'stages': len(strain_data['stages']), 'total_sprites': len(strain_data['seasons']) * len(strain_data['stages']), 'special': strain_data['special'] } manifest['total_sprites'] += manifest['crops'][f'cannabis_{strain_id}']['total_sprites'] # Mushrooms for variety_id, variety_data in MUSHROOM_VARIETIES.items(): manifest['crops'][f'mushroom_{variety_id}'] = { 'name': variety_data['name'], 'type': 'mushroom', 'seasons': 1, # mushrooms don't have seasons 'stages': len(variety_data['stages']), 'total_sprites': len(variety_data['stages']), 'special': variety_data['special'] } manifest['total_sprites'] += manifest['crops'][f'mushroom_{variety_id}']['total_sprites'] return manifest def print_manifest(): """Print generation manifest""" manifest = create_generation_manifest() print("=" * 60) print("🎨 FAZA 1 - ASSET GENERATION MANIFEST") print("=" * 60) print(f"\nTotal Sprites to Generate: {manifest['total_sprites']}") print("\n📋 CROPS BREAKDOWN:\n") print("STANDARD VEGETABLES (10 crops):") for crop_id, crop_data in manifest['crops'].items(): if crop_data['type'] == 'standard_crop': print(f" ✓ {crop_data['name']}: {crop_data['total_sprites']} sprites") print("\n🌿 CANNABIS (3 strains):") for crop_id, crop_data in manifest['crops'].items(): if crop_data['type'] == 'cannabis': print(f" ✓ {crop_data['name']}: {crop_data['total_sprites']} sprites") print("\n🍄 MAGIC MUSHROOMS (6 varieties):") for crop_id, crop_data in manifest['crops'].items(): if crop_data['type'] == 'mushroom': print(f" ✓ {crop_data['name']}: {crop_data['total_sprites']} sprites") print("\n" + "=" * 60) print(f"TOTAL: {manifest['total_sprites']} sprites") print("Estimated time: ~6 hours") print("=" * 60) if __name__ == '__main__': print_manifest() print("\n📝 Generation manifest created!") print("\nTo generate assets, use Google AI Studio API or generate_image tool") print("This script provides the structure and prompts for all 576 sprites.")