001package com.fs.starfarer.api.loading;
002
003import java.util.EnumSet;
004
005import java.awt.Color;
006
007import com.fs.starfarer.api.combat.BeamEffectPlugin;
008import com.fs.starfarer.api.combat.CollisionClass;
009
010public interface BeamWeaponSpecAPI extends WeaponSpecAPI {
011
012        float getDamagePerSecond();
013        void setDamagePerSecond(float damagePerSecond);
014        float getEnergyPerSecond();
015        void setEnergyPerSecond(float energyPerSecond);
016        String getEffectClassName();
017        void setEffectClassName(String effectClassName);
018        BeamEffectPlugin getBeamEffect();
019        boolean isConvergeOnPoint();
020        void setConvergeOnPoint(boolean convergeOnPoint);
021        boolean isSkipIdleFrameIfZeroBurstDelay();
022        void setSkipIdleFrameIfZeroBurstDelay(boolean skipIdleFrameIfZeroBurstDelay);
023        float getHitGlowRadius();
024        void setHitGlowRadius(float hitGlowRadius);
025        float getEMPPerSecond();
026        void setEMPPerSecond(float empPerSecond);
027        CollisionClass getCollisionClass();
028        void setCollisionClass(CollisionClass collisionClass);
029        CollisionClass getCollisionClassIfByFighter();
030        void setCollisionClassIfByFighter(CollisionClass collisionClassIfByFighter);
031        String getFringeTex();
032        float getBurstDuration();
033        void setBurstDuration(float burstDuration);
034        float getBurstCooldown();
035        void setBurstCooldown(float burstCooldown);
036        boolean isBurstBeam();
037        void setBurstBeam(boolean isBurst);
038        void setFringeTex(String fringeTex);
039        String getCoreTex();
040        void setCoreTex(String coreTex);
041        boolean isDarkCore();
042        void setDarkCore(boolean darkCore);
043        boolean isBeamFireOnlyOnFullCharge();
044        void setBeamFireOnlyOnFullCharge(boolean beamFireOnlyOnFullCharge);
045        boolean isUseGlowColorForHitGlow();
046        void setUseGlowColorForHitGlow(boolean useGlowColorForHitGlow);
047        String getHardpointGlowSpriteName();
048        void setHardpointGlowSpriteName(String hardpointGlowSpriteName);
049        String getTurretGlowSpriteName();
050        void setTurretGlowSpriteName(String glowSpriteName);
051        Color getGlowColor();
052        void setGlowColor(Color glowColor);
053        float getChargeupTime();
054        void setChargeupTime(float chargeupTime);
055        float getChargedownTime();
056        void setChargedownTime(float chargedownTime);
057        float getBeamSpeed();
058        void setBeamSpeed(float beamSpeed);
059        float getFluxPerSecond();
060        void setFluxPerSecond(float fluxPerSecond);
061        Color getFringeColor();
062        void setFringeColor(Color color);
063        Color getCoreColor();
064        void setCoreColor(Color coreColor);
065        float getWidth();
066        void setWidth(float width);
067        float getTextureScrollSpeed();
068        void setTextureScrollSpeed(float textureScrollSpeed);
069        float getFringeScrollSpeedMult();
070        void setFringeScrollSpeedMult(float fringeScrollSpeedMult);
071        float getPixelsPerTexel();
072        void setPixelsPerTexel(float pixelsPerTexel);
073        float getImpactMass();
074        void setImpactMass(float impactMass);
075        EnumSet<CollisionClass> getPierceSet();
076        void addPierced(CollisionClass pierced);
077        void setStandardPiercing();
078        int getDarkFringeIter();
079        void setDarkFringeIter(int darkFringeIter);
080        int getDarkCoreIter();
081        void setDarkCoreIter(int darkCoreIter);
082        float getCoreWidthMult();
083        void setCoreWidthMult(float coreWidthMult);
084        float getHitGlowBrightenDuration();
085        void setHitGlowBrightenDuration(float hitGlowBrightenDuration);
086        boolean isRandomizeTextureOffset();
087        void setRandomizeTextureOffset(boolean randomizeTextureOffset);
088
089
090}