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}