001package com.fs.starfarer.api.loading; 002 003import java.awt.Color; 004 005import org.json.JSONObject; 006 007import com.fs.starfarer.api.combat.CollisionClass; 008import com.fs.starfarer.api.combat.DamageAPI; 009import com.fs.starfarer.api.combat.MutableShipStatsAPI; 010import com.fs.starfarer.api.combat.OnFireEffectPlugin; 011import com.fs.starfarer.api.combat.OnHitEffectPlugin; 012import com.fs.starfarer.api.combat.WeaponAPI; 013 014public interface ProjectileSpecAPI { 015 String getOnHitClassName(); 016 void setOnHitClassName(String effectClassName); 017 OnHitEffectPlugin getOnHitEffect(); 018 String getId(); 019 float getGlowRadius(); 020 void setGlowRadius(float glowRadius); 021 Color getGlowColor(); 022 void setGlowColor(Color glowColor); 023 float getHitGlowRadius(); 024 void setHitGlowRadius(float hitGlowSize); 025 String getFringeTex(); 026 void setFringeTex(String fringeTex); 027 String getCoreTex(); 028 void setCoreTex(String coreTex); 029 Color getFringeColor(); 030 void setFringeColor(Color fringeColor); 031 Color getCoreColor(); 032 void setCoreColor(Color coreColor); 033 boolean isDarkCore(); 034 void setDarkCore(boolean darkCore); 035 String getBulletSpriteName(); 036 void setBulletSpriteName(String bulletSpriteName); 037 float getPixelsPerTexel(); 038 void setPixelsPerTexel(float pixelsPerTexel); 039 float getTextureScrollSpeed(); 040 void setTextureScrollSpeed(float textureScrollSpeed); 041 float getLength(); 042 void setLength(float length); 043 float getMaxRange(); 044 void setMaxRange(float maxRange); 045 046 /** 047 * Can pass in shipStats == null to get the base value. 048 * @param shipStats 049 * @param weapon 050 * @return 051 */ 052 float getMoveSpeed(MutableShipStatsAPI shipStats, WeaponAPI weapon); 053 void setMoveSpeed(float moveSpeed); 054 float getFadeTime(); 055 void setFadeTime(float fadeTime); 056 float getImpactMass(); 057 void setImpactStrength(float impactMass); 058 CollisionClass getCollisionClass(); 059 void setCollisionClass(CollisionClass collisionClass); 060 CollisionClass getCollisionClassIfByFighter(); 061 void setCollisionClassIfByFighter(CollisionClass collisionClassIfByFighter); 062 DamageAPI getDamage(); 063 float getWidth(); 064 void setWidth(float width); 065 ProjectileSpawnType getSpawnType(); 066 void setSpawnType(ProjectileSpawnType style); 067 float getMaxHealth(); 068 void setMaxHealth(float maxHealth); 069 boolean isPassThroughMissiles(); 070 void setPassThroughMissiles(boolean passThroughMissiles); 071 JSONObject getBehaviorJSON(); 072 int getDarkCoreIter(); 073 void setDarkCoreIter(int darkCoreIter); 074 int getDarkFringeIter(); 075 void setDarkFringeIter(int darkFringeIter); 076 float getCoreWidthMult(); 077 void setCoreWidthMult(float coreWidthMult); 078 void setOnFireClassName(String onFireClassName); 079 String getOnFireClassName(); 080 OnFireEffectPlugin getOnFireEffect(); 081 void setNoNonShieldImpactSounds(boolean noNonShieldImpactSounds); 082 void setNoImpactSounds(boolean noImpactSounds); 083 boolean isNoShieldImpactSounds(); 084 void setNoShieldImpactSounds(boolean noShieldImpactSounds); 085 boolean isNoNonShieldImpactSounds(); 086 boolean isNoImpactSounds(); 087 boolean isPassThroughFighters(); 088 void setPassThroughFighters(boolean passThroughFighters); 089 boolean isPassThroughFightersOnlyWhenDestroyed(); 090 void setPassThroughFightersOnlyWhenDestroyed(boolean passThroughFightersOnlyWhenDestroyed); 091 boolean isApplyOnHitEffectWhenPassThrough(); 092 void setApplyOnHitEffectWhenPassThrough(boolean applyOnHitEffectWhenPassThrough); 093 ShotBehaviorSpecAPI getBehaviorSpec(); 094 095}