001package com.fs.starfarer.api.campaign; 002 003import java.awt.Color; 004import java.util.Random; 005 006import org.lwjgl.util.vector.Vector3f; 007 008 009 010public interface PlanetAPI extends SectorEntityToken { 011 String getTypeId(); 012 013 boolean isStar(); 014 /** 015 * Star, not a black hole or a pulsar or a nebula center. 016 * @return 017 */ 018 boolean isNormalStar(); 019 boolean isGasGiant(); 020 boolean isMoon(); 021 022 023 /** 024 * The object returned by this method can be changed to control how this specific 025 * planet looks, without affecting other planets of the same type. 026 * 027 * applySpecChanges() must be called for the changes to take effect. 028 * @return 029 */ 030 PlanetSpecAPI getSpec(); 031 032 /** 033 * Applies any changes made using getSpec().setXXX to the planet's graphics. 034 */ 035 void applySpecChanges(); 036 037 void setRadius(float radius); 038 039 Color getLightColorOverrideIfStar(); 040 041 void setLightColorOverrideIfStar(Color lightColorOverrideIfStar); 042 043 String getTypeNameWithWorld(); 044 045 String getTypeNameWithLowerCaseWorld(); 046 047 void setTypeId(String typeId); 048 049 boolean hasCondition(String id); 050 051 void setSecondLight(Vector3f location, Color color); 052 053 String getTypeNameWithWorldLowerCase(); 054 055 void changeType(String type, Random random); 056 057 String getDescriptionIdOverride(); 058 059 void setDescriptionIdOverride(String descriptionIdOverride); 060 061 boolean isBlackHole(); 062}