Starsector API
Loading...
Searching...
No Matches
ShipAPI.java
Go to the documentation of this file.
1package com.fs.starfarer.api.combat;
2
3import java.awt.Color;
4import java.util.EnumSet;
5import java.util.List;
6import java.util.Set;
7
8import org.lwjgl.util.vector.Vector2f;
9
10import com.fs.starfarer.api.characters.PersonAPI;
11import com.fs.starfarer.api.combat.ShieldAPI.ShieldType;
12import com.fs.starfarer.api.combat.WeaponAPI.WeaponType;
13import com.fs.starfarer.api.combat.listeners.CombatListenerManagerAPI;
14import com.fs.starfarer.api.fleet.FleetMemberAPI;
15import com.fs.starfarer.api.graphics.SpriteAPI;
16import com.fs.starfarer.api.loading.WeaponSlotAPI;
17
23public interface ShipAPI extends CombatEntityAPI {
24
25
26 public static enum HullSize {
27 DEFAULT, // also makes FIGHTER.ordinal() = 1, which is convenient
28 FIGHTER,
29 FRIGATE,
30 DESTROYER,
31 CRUISER,
32 CAPITAL_SHIP;
33
34 public HullSize smaller(boolean allowFighter) {
35 if (this == FRIGATE && allowFighter) return FIGHTER;
36 if (this == DESTROYER) return FRIGATE;
37 if (this == CRUISER) return DESTROYER;
38 if (this == CAPITAL_SHIP) return CRUISER;
39 return this;
40 }
41
42 public HullSize larger() {
43 if (this == FIGHTER) return FRIGATE;
44 if (this == FRIGATE) return DESTROYER;
45 if (this == DESTROYER) return CRUISER;
46 if (this == CRUISER) return CAPITAL_SHIP;
47 return this;
48 }
49 }
50
56
57
61 Vector2f getMouseTarget();
62
63 boolean isShuttlePod();
64 boolean isDrone();
65 boolean isFighter();
66 boolean isFrigate();
67 boolean isDestroyer();
68 boolean isCruiser();
69 boolean isCapital();
70
71 HullSize getHullSize();
72
73
76
81 void setOriginalOwner(int originalOwner);
83
85
86 boolean isHulk();
87
88 List<WeaponAPI> getAllWeapons();
89
94
95
96 void setShield(ShieldType type, float shieldUpkeep, float shieldEfficiency, float arc);
97
100
106 void useSystem();
107
109
110
115 @Deprecated List<ShipAPI> getWingMembers();
116
122
123 boolean isWingLeader();
124
126
127 List<ShipAPI> getDeployedDrones();
129
134 Object getWingToken();
135
136
138
139 void setRenderBounds(boolean renderBounds);
140
141
142 void setCRAtDeployment(float cr);
145 void setCurrentCR(float cr);
146
148
149 void setHitpoints(float value);
150
155
157
159
164 boolean controlsLocked();
165
167
168
169 void setShipSystemDisabled(boolean systemDisabled);
170
171
172
177 Set<WeaponAPI> getDisabledWeapons();
178
184
186
193 void setSprite(String category, String key);
194
201 SpriteAPI getSpriteAPI();
202
204
205
212 void giveCommand(ShipCommand command, Object param, int groupNumber);
213
220
227
228
233
234
236 void turnOnTravelDrive(float dur);
238
239 boolean isRetreating();
245 //void setRetreating(boolean retreating);
246
247
255
264
268 boolean isLanding();
269
270
275
276
280 boolean isAlive();
281
282
283 boolean isInsideNebula();
286 void setAffectedByNebula(boolean affectedByNebula);
287
294
300
301
302
306 void applyCriticalMalfunction(Object module);
307
310
311
318
319
321
322
328 List<WeaponGroupAPI> getWeaponGroupsCopy();
329
330
331 boolean isHoldFire();
333 void setHoldFireOneFrame(boolean holdFireOneFrame);
334
335 boolean isPhased();
336
337
338 boolean isAlly();
339
340
341 void setWeaponGlow(float glow, Color color, EnumSet<WeaponType> types);
342 void setVentCoreColor(Color color);
343 void setVentFringeColor(Color color);
346
347
348// void setVentCoreTexture(String textureId);
349// void setVentFringeTexture(String textureId);
350// String getVentFringeTexture();
351// String getVentCoreTexture();
354
355 void setCopyLocation(Vector2f loc, float copyAlpha, float copyFacing);
356 Vector2f getCopyLocation();
357
358
359 void setAlly(boolean ally);
360
361 void applyCriticalMalfunction(Object module, boolean permanent);
362
363
364 String getId();
365
366
367 String getName();
368
369
370 void setJitter(Object source, Color color, float intensity, int copies, float range);
371 void setJitterUnder(Object source, Color color, float intensity, int copies, float range);
372 void setJitter(Object source, Color color, float intensity, int copies, float minRange, float range);
373 void setJitterUnder(Object source, Color color, float intensity, int copies, float minRange, float range);
374
375
377
378
385
387 void setDefenseDisabled(boolean defenseDisabled);
388
389
390 void setPhased(boolean phased);
391
392 void setExtraAlphaMult(float transparency);
393 void setApplyExtraAlphaToEngines(boolean applyExtraAlphaToEngines);
394
395
396 void setOverloadColor(Color color);
399
400
402
403
405
406
408
409
410 void fadeToColor(Object source, Color color, float durIn, float durOut, float maxShift);
411
412
414
419 void setShowModuleJitterUnder(boolean showModuleJitterUnder);
420
421
437 void addAfterimage(Color color, float locX, float locY, float velX,
438 float velY, float maxJitter, float in, float dur, float out,
439 boolean additive, boolean combineWithSpriteColor, boolean aboveShip);
440
441
442 PersonAPI getCaptain();
443
444
445 WeaponSlotAPI getStationSlot();
446 void setStationSlot(WeaponSlotAPI stationSlot);
447
450
451
453 void setFixedLocation(Vector2f fixedLocation);
454
455
457 boolean isTargetable();
458
459
460 void setStation(boolean isStation);
461
462
464
465
466 //boolean isAITargetable();
467
468
471 List<ShipAPI> getChildModulesCopy();
472
473
474 boolean isPiece();
475
476
482
483
489 Vector2f getRenderOffset();
490
491
500
501
503
504
506 void setPullBackFighters(boolean pullBackFighters);
507
508 boolean hasLaunchBays();
509 List<FighterLaunchBayAPI> getLaunchBaysCopy();
511 void setFighterTimeBeforeRefit(float fighterTimeBeforeRefit);
512
513 List<FighterWingAPI> getAllWings();
514
516
518
519
520 List<WeaponAPI> getUsableWeapons();
521
522
523 Vector2f getModuleOffset();
524
525
527
528
530
532 void setRenderEngines(boolean renderEngines);
533
534
536 void setHullSize(HullSize hullSize);
538 void setMaxHitpoints(float maxArmor);
539 void setDHullOverlay(String spriteName);
540 boolean isStation();
543
545
551 float getMaxSpeed();
553 float getCurrFlux();
554 float getMaxFlux();
556 float getMinFlux();
557
561
562
564 void setJitterShields(boolean jitterShields);
565
566
568 void setInvalidTransferCommandTarget(boolean invalidTransferCommandTarget);
569
571
572
575
576
578
579 void setRetreating(boolean retreating, boolean direct);
580
581
582 boolean isLiftingOff();
583
584
586
587
590
591
592 FleetMemberAPI getFleetMember();
593
594
595 Vector2f getShieldTarget();
596 void setShieldTargetOverride(float x, float y);
597
598
599
604 CombatListenerManagerAPI getListenerManager();
605
606 void addListener(Object listener);
607 void removeListener(Object listener);
608 void removeListenerOfClass(Class<?> c);
609 boolean hasListener(Object listener);
610 boolean hasListenerOfClass(Class<?> c);
611 <T> List<T> getListeners(Class<T> c);
612
613
615 void setParamAboutToApplyDamage(Object param);
616
617
619
620
621 void setName(String name);
622
623
624 void setHulk(boolean isHulk);
625
626
627 void setCaptain(PersonAPI captain);
629
630
631 void setCircularJitter(boolean circular);
632
633
635
636
637 void setAlphaMult(float alphaMult);
639
640
642
643
644 void setLaunchingShip(ShipAPI launchingShip);
645
646
647 boolean isNonCombat(boolean considerOrders);
648
649
650 float findBestArmorInArc(float facing, float arc);
651 float getAverageArmorInSlice(float direction, float arc);
652
653
654 void setHoldFire(boolean holdFire);
655
656
658
659
660 void setTimeDeployed(float timeDeployed);
661
662
663 void setFluxVentTextureSheet(String textureId);
665
667
668
670 void setForceCarrierTargetTime(float forceCarrierTargetTime);
672 void setForceCarrierPullBackTime(float forceCarrierPullBackTime);
674 void setForceCarrierTarget(ShipAPI forceCarrierTarget);
675
676
679 void setExplosionScale(float explosionScale);
681 void setExplosionFlashColorOverride(Color explosionFlashColorOverride);
683 void setExplosionVelocityOverride(Vector2f explosionVelocityOverride);
684
685
686 void setNextHitHullDamageThresholdMult(float threshold, float multBeyondThreshold);
687
688
690
691
693
694
695 void setExtraAlphaMult2(float transparency);
696
697
699
700
701 void setDrone(boolean isDrone);
702
703
706
707
709 void setForceHideFFOverlay(boolean forceHideFFOverlay);
710
711
712 Set<String> getTags();
713 void addTag(String tag);
714 boolean hasTag(String tag);
715
716
717 void setSprite(SpriteAPI sprite);
718
719
721
722 EnumSet<CombatEngineLayers> getActiveLayers();
723
724
726
727
730
731
732 PersonAPI getFleetCommander();
733
734}
735
736
737
738
739
740
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 fadeToColor(Object source, Color color, float durIn, float durOut, float maxShift)
void setDefenseDisabled(boolean defenseDisabled)
void setRenderEngines(boolean renderEngines)
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 removeListenerOfClass(Class<?> c)
void setForceCarrierTargetTime(float forceCarrierTargetTime)
void setCaptain(PersonAPI captain)
void setControlsLocked(boolean controlsLocked)
void setJitterUnder(Object source, Color color, float intensity, int copies, float range)
void setForceHideFFOverlay(boolean forceHideFFOverlay)
void setVentFringeColor(Color color)
void setShowModuleJitterUnder(boolean showModuleJitterUnder)
void setHoldFire(boolean holdFire)
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 removeWeaponFromGroups(WeaponAPI weapon)
void setJitter(Object source, Color color, float intensity, int copies, float minRange, float range)
CombatListenerManagerAPI getListenerManager()
void setParamAboutToApplyDamage(Object param)
List< WeaponAPI > getUsableWeapons()
void setShipWithModules(boolean isShipWithModules)
void setAffectedByNebula(boolean affectedByNebula)
boolean hasListenerOfClass(Class<?> c)
void setOriginalOwner(int originalOwner)
void setShipAI(ShipAIPlugin ai)
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 setInvalidTransferCommandTarget(boolean invalidTransferCommandTarget)
WeaponGroupAPI getWeaponGroupFor(WeaponAPI weapon)
void setDrone(boolean isDrone)
void setTimeDeployed(float timeDeployed)
void beginLandingAnimation(ShipAPI target)
void setRetreating(boolean retreating, boolean direct)
float getAverageArmorInSlice(float direction, float arc)
EnumSet< CombatEngineLayers > getActiveLayers()
void blockCommandForOneFrame(ShipCommand command)
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 setJitter(Object source, Color color, float intensity, int copies, float range)
void setStation(boolean isStation)
void applyCriticalMalfunction(Object module)
ShipEngineControllerAPI getEngineController()
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 setSprite(String category, String key)
void setHoldFireOneFrame(boolean holdFireOneFrame)
void setPhased(boolean phased)