Files
novafarma/scripts/generate_faza1_crops.py

358 lines
12 KiB
Python
Executable File

#!/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.")