001package com.fs.starfarer.api.combat; 002 003import org.lwjgl.util.vector.Vector2f; 004 005public interface ViewportAPI { 006 boolean isNearViewport(Vector2f loc, float nearDistance); 007 Vector2f getCenter(); 008 009 /** 010 * @return x coordinate of the lower left corner, in world units. 011 */ 012 float getLLX(); 013 /** 014 * @return y coordinate of the lower left corner, in world units. 015 */ 016 float getLLY(); 017 /** 018 * @return Visible area's width, in world units. 019 */ 020 float getVisibleWidth(); 021 /** 022 * @return Visible area's height, in world units. 023 */ 024 float getVisibleHeight(); 025 float getWorldXtoScreenX(); 026 float getWorldYtoScreenY(); 027 028 /** 029 * @return Current level zoom multiplier. 030 */ 031 float getViewMult(); 032 033 float getAlphaMult(); 034 float convertScreenXToWorldX(float x); 035 float convertScreenYToWorldY(float y); 036 float convertWorldXtoScreenX(float x); 037 float convertWorldYtoScreenY(float y); 038 float convertWorldWidthToScreenWidth(float w); 039 float convertWorldHeightToScreenHeight(float h); 040 float convertScreenWidthToWorldWidth(float w); 041 float convertScreenHeightToWorldHeight(float h); 042 043 void set(float llx, float lly, float visibleWidth, float visibleHeight); 044 void setViewMult(float zoom); 045 046 boolean isExternalControl(); 047 048 /** 049 * Tells the game not to set the viewport parameters every frame. Allows a mod to override viewport behavior. 050 * @return 051 */ 052 void setExternalControl(boolean externalControl); 053 void setCenter(Vector2f c); 054 void setAlphaMult(float alphaMult); 055 boolean isEverythingNearViewport(); 056 void setEverythingNearViewport(boolean everythingNearViewport); 057}