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}