Starsector API
Loading...
Searching...
No Matches
ShipAPI.java
Go to the documentation of this file.
1package com.fs.starfarer.api.combat;
2
3import java.util.EnumSet;
4import java.util.List;
5import java.util.Set;
6
7import java.awt.Color;
8
9import org.lwjgl.util.vector.Vector2f;
10
11import com.fs.starfarer.api.characters.PersonAPI;
12import com.fs.starfarer.api.combat.ShieldAPI.ShieldType;
13import com.fs.starfarer.api.combat.WeaponAPI.WeaponType;
14import com.fs.starfarer.api.combat.listeners.CombatListenerManagerAPI;
15import com.fs.starfarer.api.fleet.FleetMemberAPI;
16import com.fs.starfarer.api.graphics.SpriteAPI;
17import com.fs.starfarer.api.loading.WeaponSlotAPI;
18
24public interface ShipAPI extends CombatEntityAPI {
25
26
27 public static enum HullSize {
28 DEFAULT, // also makes FIGHTER.ordinal() = 1, which is convenient
29 FIGHTER,
30 FRIGATE,
31 DESTROYER,
32 CRUISER,
33 CAPITAL_SHIP;
34
35 public HullSize smaller(boolean allowFighter) {
36 if (this == FRIGATE && allowFighter) return FIGHTER;
37 if (this == DESTROYER) return FRIGATE;
38 if (this == CRUISER) return DESTROYER;
39 if (this == CAPITAL_SHIP) return CRUISER;
40 return this;
41 }
42
43 public HullSize larger() {
44 if (this == FIGHTER) return FRIGATE;
45 if (this == FRIGATE) return DESTROYER;
46 if (this == DESTROYER) return CRUISER;
47 if (this == CRUISER) return CAPITAL_SHIP;
48 return this;
49 }
50 }
51
57
58
62 Vector2f getMouseTarget();
63
64 boolean isShuttlePod();
65 boolean isDrone();
66 boolean isFighter();
67 boolean isFrigate();
68 boolean isDestroyer();
69 boolean isCruiser();
70 boolean isCapital();
71
72 HullSize getHullSize();
73
74
77
82 void setOriginalOwner(int originalOwner);
84
86
87 boolean isHulk();
88
89 List<WeaponAPI> getAllWeapons();
90
95
96
97 void setShield(ShieldType type, float shieldUpkeep, float shieldEfficiency, float arc);
98
101
107 void useSystem();
108
110
111
116 @Deprecated List<ShipAPI> getWingMembers();
117
123
124 boolean isWingLeader();
125
127
128 List<ShipAPI> getDeployedDrones();
130
135 Object getWingToken();
136
137
139
140 void setRenderBounds(boolean renderBounds);
141
142
143 void setCRAtDeployment(float cr);
146 void setCurrentCR(float cr);
147
149
150 void setHitpoints(float value);
151
156
158
160
165 boolean controlsLocked();
166
168
169
170 void setShipSystemDisabled(boolean systemDisabled);
171
172
173
178 Set<WeaponAPI> getDisabledWeapons();
179
185
187
194 void setSprite(String category, String key);
195
203
205
206
213 void giveCommand(ShipCommand command, Object param, int groupNumber);
214
221
228
229
234
235
237 void turnOnTravelDrive(float dur);
239
240 boolean isRetreating();
246 //void setRetreating(boolean retreating);
247
248
256
265
269 boolean isLanding();
270
271
276
277
281 boolean isAlive();
282
283
284 boolean isInsideNebula();
287 void setAffectedByNebula(boolean affectedByNebula);
288
295
301
302
303
307 void applyCriticalMalfunction(Object module);
308
311
312
319
320
322
323
329 List<WeaponGroupAPI> getWeaponGroupsCopy();
330
331
332 boolean isHoldFire();
334 void setHoldFireOneFrame(boolean holdFireOneFrame);
335
336 boolean isPhased();
337
338
339 boolean isAlly();
340
341
342 void setWeaponGlow(float glow, Color color, EnumSet<WeaponType> types);
343 void setVentCoreColor(Color color);
344 void setVentFringeColor(Color color);
347
348
349// void setVentCoreTexture(String textureId);
350// void setVentFringeTexture(String textureId);
351// String getVentFringeTexture();
352// String getVentCoreTexture();
355
356 void setCopyLocation(Vector2f loc, float copyAlpha, float copyFacing);
357 Vector2f getCopyLocation();
358
359
360 void setAlly(boolean ally);
361
362 void applyCriticalMalfunction(Object module, boolean permanent);
363
364
365 String getId();
366
367
368 String getName();
369
370
371 void setJitter(Object source, Color color, float intensity, int copies, float range);
372 void setJitterUnder(Object source, Color color, float intensity, int copies, float range);
373 void setJitter(Object source, Color color, float intensity, int copies, float minRange, float range);
374 void setJitterUnder(Object source, Color color, float intensity, int copies, float minRange, float range);
375
376
378
379
386
388 void setDefenseDisabled(boolean defenseDisabled);
389
390
391 void setPhased(boolean phased);
392
393 void setExtraAlphaMult(float transparency);
394 void setApplyExtraAlphaToEngines(boolean applyExtraAlphaToEngines);
395
396
397 void setOverloadColor(Color color);
400
401
403
404
406
407
409
410
411 void fadeToColor(Object source, Color color, float durIn, float durOut, float maxShift);
412
413
415
420 void setShowModuleJitterUnder(boolean showModuleJitterUnder);
421
422
438 void addAfterimage(Color color, float locX, float locY, float velX,
439 float velY, float maxJitter, float in, float dur, float out,
440 boolean additive, boolean combineWithSpriteColor, boolean aboveShip);
441
442
444
445
447 void setStationSlot(WeaponSlotAPI stationSlot);
448
451
452
454 void setFixedLocation(Vector2f fixedLocation);
455
456
458 boolean isTargetable();
459
460
461 void setStation(boolean isStation);
462
463
465
466
467 //boolean isAITargetable();
468
469
472 List<ShipAPI> getChildModulesCopy();
473
474
475 boolean isPiece();
476
477
483
484
490 Vector2f getRenderOffset();
491
492
501
502
504
505
507 void setPullBackFighters(boolean pullBackFighters);
508
509 boolean hasLaunchBays();
510 List<FighterLaunchBayAPI> getLaunchBaysCopy();
512 void setFighterTimeBeforeRefit(float fighterTimeBeforeRefit);
513
514 List<FighterWingAPI> getAllWings();
515
517
519
520
521 List<WeaponAPI> getUsableWeapons();
522
523
524 Vector2f getModuleOffset();
525
526
528
529
531
533 void setRenderEngines(boolean renderEngines);
534
535
537 void setHullSize(HullSize hullSize);
539 void setMaxHitpoints(float maxArmor);
540 void setDHullOverlay(String spriteName);
541 boolean isStation();
544
546
552 float getMaxSpeed();
554 float getCurrFlux();
555 float getMaxFlux();
557 float getMinFlux();
558
562
563
565 void setJitterShields(boolean jitterShields);
566
567
569 void setInvalidTransferCommandTarget(boolean invalidTransferCommandTarget);
570
572
573
576
577
579
580 void setRetreating(boolean retreating, boolean direct);
581
582
583 boolean isLiftingOff();
584
585
587
588
591
592
594
595
596 Vector2f getShieldTarget();
597 void setShieldTargetOverride(float x, float y);
598
599
600
606
607 void addListener(Object listener);
608 void removeListener(Object listener);
609 void removeListenerOfClass(Class<?> c);
610 boolean hasListener(Object listener);
611 boolean hasListenerOfClass(Class<?> c);
612 <T> List<T> getListeners(Class<T> c);
613
614
616 void setParamAboutToApplyDamage(Object param);
617
618
620
621
622 void setName(String name);
623
624
625 void setHulk(boolean isHulk);
626
627
628 void setCaptain(PersonAPI captain);
630
631
632 void setCircularJitter(boolean circular);
633
634
636
637
638 void setAlphaMult(float alphaMult);
640
641
643
644
645 void setLaunchingShip(ShipAPI launchingShip);
646
647
648 boolean isNonCombat(boolean considerOrders);
649
650
651 float findBestArmorInArc(float facing, float arc);
652 float getAverageArmorInSlice(float direction, float arc);
653
654
655 void setHoldFire(boolean holdFire);
656
657
659
660
661 void setTimeDeployed(float timeDeployed);
662
663
664 void setFluxVentTextureSheet(String textureId);
666
668
669
671 void setForceCarrierTargetTime(float forceCarrierTargetTime);
673 void setForceCarrierPullBackTime(float forceCarrierPullBackTime);
675 void setForceCarrierTarget(ShipAPI forceCarrierTarget);
676
677
680 void setExplosionScale(float explosionScale);
682 void setExplosionFlashColorOverride(Color explosionFlashColorOverride);
684 void setExplosionVelocityOverride(Vector2f explosionVelocityOverride);
685
686
687 void setNextHitHullDamageThresholdMult(float threshold, float multBeyondThreshold);
688
689
691
692
694
695
696 void setExtraAlphaMult2(float transparency);
697
698
700
701
702 void setDrone(boolean isDrone);
703
704
707
708
710 void setForceHideFFOverlay(boolean forceHideFFOverlay);
711
712
713 Set<String> getTags();
714 void addTag(String tag);
715 boolean hasTag(String tag);
716
717
718 void setSprite(SpriteAPI sprite);
719
720
722
723 EnumSet<CombatEngineLayers> getActiveLayers();
724
725
727
728
731
732
734
735
736 boolean isDoNotRender();
737 void setDoNotRender(boolean doNotRender);
739 void setHulkChanceOverride(float hulkChanceOverride);
741 void setImpactVolumeMult(float impactVolumeMult);
742
743
750 Vector2f checkCollisionVsRay(Vector2f from, Vector2f to);
751
752
758 boolean isPointInBounds(Vector2f p);
759
760
761 boolean isSpawnDebris();
762 void setSpawnDebris(boolean spawnDebris);
763
765 void setDHullOverlayAngleOffset(float dHullOverlayAngleOffset);
766
768 void setExtraOverlayAngleOffset(float extraOverlayAngleOffset);
769 void setExtraOverlay(String spriteName);
771 void setExtraOverlayShadowOpacity(float extraOverlayOpacity);
773 void setExtraOverlayMatchHullColor(boolean extraOverlayMatchHullColor);
774
775
777 void removeTag(String tag);
778
779
781 void setSkipNextDamagedExplosion(boolean skipNextDamagedExplosion);
784 void setNoDamagedExplosions(boolean noDamagedExplosions);
785
787 void setDoNotRenderSprite(boolean doNotRenderSprite);
789 void setDoNotRenderShield(boolean doNotRenderShield);
791 void setDoNotRenderWeapons(boolean doNotRenderWeapons);
792 void setDoNotRenderVentingAnimation(boolean doNotRenderVentingAnimation);
795 void setShipCollisionSoundOverride(String shipCollisionSoundOverride);
797 void setAsteroidCollisionSoundOverride(String asteroidCollisionSoundOverride);
798
800 void setParentPieceId(String parentPieceId);
801
802
804
805
807
809 void setNoMuzzleFlash(boolean noMuzzleFlash);
810
811
816 boolean isBeingIgnored();
817
822 void setBeingIgnored(boolean beingIgnored);
823
824
825 void setLowestHullLevelReached(float lowestHullLevelReached);
826
827
829}
830
831
832
833
834
835
void setPullBackFighters(boolean pullBackFighters)
Set< WeaponAPI > getDisabledWeapons()
List< ShipAPI > getChildModulesCopy()
void setShipSystemDisabled(boolean systemDisabled)
void addAfterimage(Color color, float locX, float locY, float velX, float velY, float maxJitter, float in, float dur, float out, boolean additive, boolean combineWithSpriteColor, boolean aboveShip)
void setAlphaMult(float alphaMult)
void setCircularJitter(boolean circular)
void setExplosionFlashColorOverride(Color explosionFlashColorOverride)
void setExtraOverlayMatchHullColor(boolean extraOverlayMatchHullColor)
void fadeToColor(Object source, Color color, float durIn, float durOut, float maxShift)
void setDefenseDisabled(boolean defenseDisabled)
void setExtraOverlayAngleOffset(float extraOverlayAngleOffset)
void setRenderEngines(boolean renderEngines)
void setAsteroidCollisionSoundOverride(String asteroidCollisionSoundOverride)
void setNextHitHullDamageThresholdMult(float threshold, float multBeyondThreshold)
void setJitterUnder(Object source, Color color, float intensity, int copies, float minRange, float range)
boolean isNonCombat(boolean considerOrders)
void setExtraAlphaMult2(float transparency)
void setDefaultAI(FleetMemberAPI member)
void removeListenerOfClass(Class<?> c)
void setForceCarrierTargetTime(float forceCarrierTargetTime)
void setCaptain(PersonAPI captain)
void setControlsLocked(boolean controlsLocked)
void setDoNotRenderSprite(boolean doNotRenderSprite)
void setJitterUnder(Object source, Color color, float intensity, int copies, float range)
void setForceHideFFOverlay(boolean forceHideFFOverlay)
void setSpawnDebris(boolean spawnDebris)
void setVentFringeColor(Color color)
void setShowModuleJitterUnder(boolean showModuleJitterUnder)
void setHoldFire(boolean holdFire)
void setNoMuzzleFlash(boolean noMuzzleFlash)
MutableShipStatsAPI getMutableStats()
void setShieldTargetOverride(float x, float y)
void setMaxHitpoints(float maxArmor)
void addListener(Object listener)
void setSprite(SpriteAPI sprite)
void setForceCarrierPullBackTime(float forceCarrierPullBackTime)
void setSkipNextDamagedExplosion(boolean skipNextDamagedExplosion)
void removeWeaponFromGroups(WeaponAPI weapon)
void setJitter(Object source, Color color, float intensity, int copies, float minRange, float range)
void setFleetMember(FleetMemberAPI member)
boolean isPointInBounds(Vector2f p)
CombatListenerManagerAPI getListenerManager()
void setDoNotRender(boolean doNotRender)
void setParamAboutToApplyDamage(Object param)
void setImpactVolumeMult(float impactVolumeMult)
List< WeaponAPI > getUsableWeapons()
void setShipWithModules(boolean isShipWithModules)
void setAffectedByNebula(boolean affectedByNebula)
boolean hasListenerOfClass(Class<?> c)
void setExtraOverlay(String spriteName)
void setOriginalOwner(int originalOwner)
void setDoNotRenderShield(boolean doNotRenderShield)
void setShipAI(ShipAIPlugin ai)
void setExtraOverlayShadowOpacity(float extraOverlayOpacity)
boolean hasListener(Object listener)
void setDHullOverlay(String spriteName)
float findBestArmorInArc(float facing, float arc)
void setRenderBounds(boolean renderBounds)
void setWing(FighterWingAPI wing)
void setCopyLocation(Vector2f loc, float copyAlpha, float copyFacing)
boolean isDoNotFlareEnginesWhenStrafingOrDecelerating()
void setFluxVentTextureSheet(String textureId)
void setFixedLocation(Vector2f fixedLocation)
void setWeaponGlow(float glow, Color color, EnumSet< WeaponType > types)
void setHullSize(HullSize hullSize)
List< WeaponAPI > getAllWeapons()
List< WeaponGroupAPI > getWeaponGroupsCopy()
void setExplosionScale(float explosionScale)
void setDoNotFlareEnginesWhenStrafingOrDecelerating(boolean doNotFlare)
void setVariantForHullmodCheckOnly(ShipVariantAPI variant)
void setExtraAlphaMult(float transparency)
void setExplosionVelocityOverride(Vector2f explosionVelocityOverride)
void setShield(ShieldType type, float shieldUpkeep, float shieldEfficiency, float arc)
void setHulkChanceOverride(float hulkChanceOverride)
void setInvalidTransferCommandTarget(boolean invalidTransferCommandTarget)
WeaponGroupAPI getWeaponGroupFor(WeaponAPI weapon)
void setDrone(boolean isDrone)
void setBeingIgnored(boolean beingIgnored)
void setTimeDeployed(float timeDeployed)
void beginLandingAnimation(ShipAPI target)
Vector2f checkCollisionVsRay(Vector2f from, Vector2f to)
void setRetreating(boolean retreating, boolean direct)
float getAverageArmorInSlice(float direction, float arc)
EnumSet< CombatEngineLayers > getActiveLayers()
void blockCommandForOneFrame(ShipCommand command)
void setNoDamagedExplosions(boolean noDamagedExplosions)
void setStationSlot(WeaponSlotAPI stationSlot)
void setLayer(CombatEngineLayers layer)
void setForceCarrierTarget(ShipAPI forceCarrierTarget)
void removeListener(Object listener)
void applyCriticalMalfunction(Object module, boolean permanent)
void setParentStation(ShipAPI station)
void setJitterShields(boolean jitterShields)
void setApplyExtraAlphaToEngines(boolean applyExtraAlphaToEngines)
List< FighterLaunchBayAPI > getLaunchBaysCopy()
void setFighterTimeBeforeRefit(float fighterTimeBeforeRefit)
void setParentPieceId(String parentPieceId)
void setJitter(Object source, Color color, float intensity, int copies, float range)
void setStation(boolean isStation)
void applyCriticalMalfunction(Object module)
ShipEngineControllerAPI getEngineController()
void setDHullOverlayAngleOffset(float dHullOverlayAngleOffset)
void setLowestHullLevelReached(float lowestHullLevelReached)
void setShipCollisionSoundOverride(String shipCollisionSoundOverride)
void giveCommand(ShipCommand command, Object param, int groupNumber)
< T > List< T > getListeners(Class< T > c)
void setInsideNebula(boolean isInsideNebula)
List< FighterWingAPI > getAllWings()
void setLaunchingShip(ShipAPI launchingShip)
void setDoNotRenderVentingAnimation(boolean doNotRenderVentingAnimation)
void setSprite(String category, String key)
void setHoldFireOneFrame(boolean holdFireOneFrame)
void setDoNotRenderWeapons(boolean doNotRenderWeapons)
void setPhased(boolean phased)