001package com.fs.starfarer.api.loading; 002 003import java.util.List; 004 005import org.lwjgl.util.vector.Vector2f; 006 007import com.fs.starfarer.api.combat.CombatEntityAPI; 008import com.fs.starfarer.api.combat.ShipAPI; 009import com.fs.starfarer.api.combat.WeaponAPI; 010 011public interface WeaponSlotAPI { 012 boolean isHardpoint(); 013 boolean isTurret(); 014 boolean isHidden(); 015 boolean isSystemSlot(); 016 boolean isBuiltIn(); 017 boolean isDecorative(); 018 019 String getId(); 020 WeaponAPI.WeaponType getWeaponType(); 021 WeaponAPI.WeaponSize getSlotSize(); 022 float getArc(); 023 void setArc(float arc); 024 025 /** 026 * @return center of the arc, with the ship facing 0 degrees (to the right). 027 */ 028 float getAngle(); 029 030 /** 031 * Absolute coordinates of the weapon slot. 032 * @param ship 033 * @return 034 */ 035 Vector2f computePosition(CombatEntityAPI ship); 036 boolean isStationModule(); 037 038 boolean weaponFits(WeaponSpecAPI spec); 039 040 void setAngle(float angle); 041 Vector2f getLocation(); 042 043 float getRenderOrderMod(); 044 void setRenderOrderMod(float renderOrderMod); 045 float computeMidArcAngle(ShipAPI ship); 046 List<Vector2f> getLaunchPointOffsets(); 047 //WeaponSlotAPI clone(); 048 boolean isWeaponSlot(); 049 //void setSlotSize(WeaponSize slotSize); 050 //void setId(String id); 051 //void setNode(String nodeId, Vector2f position); 052 053}