001package com.fs.starfarer.api.combat;
002
003import org.lwjgl.util.vector.Vector2f;
004
005/**
006 * Covers the map plus a 100 pixel area around it.
007 * 
008 * @author Alex Mosolov
009 *
010 * Copyright 2016 Fractal Softworks, LLC
011 */
012public interface CombatNebulaAPI {
013
014        public interface CloudAPI {
015                void thicken(float thicknessGain);
016                Vector2f getLocation();
017                float getThickness();
018                void setThickness(float thickness);
019                
020        }
021        
022        int getTilesWide();
023        int getTilesHigh();
024        
025        float getTileSizeInPixels();
026        boolean tileHasNebula(int cellX, int cellY);
027        boolean locationHasNebula(float x, float y);
028        
029        /**
030         * Number of cells to the left of x = 0.
031         * @return
032         */
033        int getLeftOf();
034        
035        
036        /**
037         * Number of cells below y = 0.
038         * @return
039         */
040        int getBelow();
041        
042        /**
043         * Number of cells to the right of x = 0.
044         * @return
045         */
046        int getRightOf();
047        
048        /**
049         * Number of cells above y = 0.
050         * @return
051         */
052        int getAbove();
053        
054        void setHasNebula(int cellX, int cellY, float brightness);
055        CloudAPI getCloud(float x, float y);
056        CloudAPI getCloud(int cellX, int cellY);
057}