001package com.fs.starfarer.api.campaign;
002
003import java.util.Set;
004
005import java.awt.Color;
006
007import org.lwjgl.util.vector.Vector3f;
008
009import com.fs.starfarer.api.loading.WithSourceMod;
010
011public interface PlanetSpecAPI extends WithSourceMod {
012        String getName();
013        float getTilt();
014        float getPitch();
015        float getRotation();
016        Color getPlanetColor();
017        float getAtmosphereThickness();
018        Color getAtmosphereColor();
019        boolean isStar();
020        String getPlanetType();
021        float getAtmosphereThicknessMin();
022        Vector3f getLightPosition();
023        float getCloudRotation();
024        //float getCloudOffset();
025        Color getIconColor();
026        Color getCloudColor();
027        
028        void setTilt(float tilt);
029        void setPitch(float pitch);
030        void setRotation(float rotation);
031        void setPlanetColor(Color planetColor);
032        void setCloudRotation(float cloudRotation);
033        void setAtmosphereThickness(float atmosphereThickness);
034        void setAtmosphereThicknessMin(float atmosphereThicknessMin);
035        void setAtmosphereColor(Color atmosphereColor);
036        void setCloudColor(Color cloudColor);
037        void setIconColor(Color iconColor);
038        //void setCloudOffset(float cloudOffset);
039
040        float getCoronaSize();
041        void setCoronaSize(float coronaSize);
042        Color getCoronaColor();
043        void setCoronaColor(Color coronaColor);
044        
045        /**
046         * Use SettingsAPI.getSpriteName(String category, String id) to get the texture name to pass in here.
047         * The texture needs to already be loaded (which textures from settings.json will be).
048         * Do NOT just pass in a filename for a texture that's not already loaded. 
049         * @return
050         */
051        String getCloudTexture();
052        void setCloudTexture(String textureName);
053        
054        /**
055         * Use SettingsAPI.getSpriteName(String category, String id) to get the texture name to pass in here.
056         * The texture needs to already be loaded (which textures from settings.json will be).
057         * Do NOT just pass in a filename for a texture that's not already loaded. 
058         * @return
059         */
060        void setTexture(String texture);
061        String getTexture();
062        
063        String getCoronaTexture();
064        
065        /**
066         * Use SettingsAPI.getSpriteName(String category, String id) to get the texture name to pass in here.
067         * The texture needs to already be loaded (which textures from settings.json will be).
068         * Do NOT just pass in a filename for a texture that's not already loaded. 
069         * @return
070         */
071        void setCoronaTexture(String coronaTexture);
072        
073        /**
074         * Use SettingsAPI.getSpriteName(String category, String id) to get the texture name to pass in here.
075         * The texture needs to already be loaded (which textures from settings.json will be).
076         * Do NOT just pass in a filename for a texture that's not already loaded. 
077         * @return
078         */     
079        void setGlowTexture(String glowTexture);
080        
081        String getGlowTexture();
082        Color getGlowColor();
083        void setGlowColor(Color glowColor);
084        boolean isUseReverseLightForGlow();
085        void setUseReverseLightForGlow(boolean useReverseLightForGlow);
086        String getIconTexture();
087        String getAOrAn();
088        boolean isBlackHole();
089        void setBlackHole(boolean isBlackHole);
090        boolean isNebulaCenter();
091        void setNebulaCenter(boolean isNebulaCenter);
092        float getScaleMultMapIcon();
093        void setScaleMultMapIcon(float scaleMultMapIcon);
094        float getScaleMultStarscapeIcon();
095        void setScaleMultStarscapeIcon(float scaleMultStarscapeIcon);
096        String getStarscapeIcon();
097        void setStarscapeIcon(String starscapeIcon);
098        boolean isPulsar();
099        void setPulsar(boolean isPulsar);
100        
101        float getShieldThickness();
102        void setShieldThickness(float shieldThickness);
103        String getShieldTexture();
104        void setShieldTexture(String shieldTexture);
105        Color getShieldColor();
106        void setShieldColor(Color shieldColor);
107        
108        String getShieldTexture2();
109        void setShieldTexture2(String shieldTexture2);
110        float getShieldThickness2();
111        void setShieldThickness2(float shieldThickness2);
112        Color getShieldColor2();
113        void setShieldColor2(Color shieldColor2);
114        boolean isDoNotShowInCombat();
115        void setDoNotShowInCombat(boolean doNotShowInCombat);
116        boolean isGasGiant();
117        String getDescriptionId();
118        void setDescriptionId(String descriptionId);
119        Set<String> getTags();
120        void addTag(String tag);
121        boolean hasTag(String tag);
122
123}
124        
125