001package com.fs.starfarer.api.impl.campaign.procgen.themes;
002
003import java.util.Random;
004
005
006public interface ThemeGenerator {
007        String getThemeId();
008        
009        void generateForSector(ThemeGenContext context, float allowedUnusedFraction);
010        
011        /**
012         * Themes with lower "order" values get their shot at generating content first.
013         * @return
014         */
015        int getOrder();
016        
017        
018        /**
019         * What fraction of the Sector this theme wants to be used for, relative to other themes.
020         * 
021         * The fraction it gets is weight / (total weight of all themes).
022         * 
023         * Base value is 100.
024         * 
025         * @return
026         */
027        float getWeight();
028
029        Random getRandom();
030        void setRandom(Random random);
031}