package com.arretadogames.pilot.loading;
import java.util.ArrayList;
import java.util.List;
import com.arretadogames.pilot.R;
import com.arretadogames.pilot.game.GameState;
import com.arretadogames.pilot.loading.FontLoader.FontTypeFace;
public class ResourcesManager {
public static FontTypeFace[] getFonts(GameState state) {
FontTypeFace[] resources = null;
if (state.equals(GameState.SPLASH)) {
resources = new FontTypeFace[] {
FontTypeFace.TRANSMETALS_STROKED,
FontTypeFace.TRANSMETALS
};
} else if (state.equals(GameState.MAIN_MENU)) {
resources = new FontTypeFace[] {
FontTypeFace.TRANSMETALS_STROKED,
FontTypeFace.TRANSMETALS
};
} else if (state.equals(GameState.CHARACTER_SELECTION)) {
resources = new FontTypeFace[] {
FontTypeFace.TRANSMETALS_STROKED,
FontTypeFace.TRANSMETALS
};
} else if (state.equals(GameState.GAME_OVER)) {
resources = new FontTypeFace[] {
FontTypeFace.TRANSMETALS_STROKED,
FontTypeFace.TRANSMETALS
};
} else if (state.equals(GameState.RUNNING_GAME)) {
resources = new FontTypeFace[] {
FontTypeFace.TRANSMETALS_STROKED,
FontTypeFace.TRANSMETALS
};
} else if (state.equals(GameState.LEVEL_SELECTION)) {
resources = new FontTypeFace[] {
FontTypeFace.TRANSMETALS_STROKED,
FontTypeFace.TRANSMETALS
};
}
return resources;
}
public static int[] getDrawables(GameState state) {
int[] resources = null;
if (state.equals(GameState.SPLASH)) {
resources = new int[] {
R.drawable.logo
};
} else if (state.equals(GameState.MAIN_MENU)) {
resources = new int[] {
R.drawable.bt_play_selected,
R.drawable.bt_play_unselected,
R.drawable.bt_settings_selected,
R.drawable.bt_settings_unselected,
R.drawable.menu_background,
R.drawable.bt_back_selected,
R.drawable.bt_back_unselected,
R.drawable.checked_box,
R.drawable.unchecked_box,
R.drawable.bt_gplus_unselected,
R.drawable.bt_gplus_selected
};
} else if (state.equals(GameState.CHARACTER_SELECTION)) {
resources = new int[] {
R.drawable.bt_play_selected,
R.drawable.bt_play_unselected,
R.drawable.blue_selector,
R.drawable.red_selector,
R.drawable.selection_lobo_guara,
R.drawable.selection_arara_azul,
R.drawable.selection_tatu_bola,
R.drawable.selection_macaco_prego,
R.drawable.player1,
R.drawable.player2,
R.drawable.selection_anonymous
};
} else if (state.equals(GameState.GAME_OVER)) {
resources = new int[] {
R.drawable.victory_bg,
R.drawable.defeat_bg
};
} else if (state.equals(GameState.RUNNING_GAME)) {
resources = new int[] {
R.drawable.ui_buttons,
R.drawable.pause_menu_bg,
R.drawable.pause_selected,
R.drawable.pause_unselected,
R.drawable.bt_pause_selected,
R.drawable.mountains_repeatable,
R.drawable.spike
};
} else if (state.equals(GameState.LEVEL_SELECTION)) {
resources = new int[] {
R.drawable.bt_prev_selected,
R.drawable.bt_prev_unselected,
R.drawable.bt_next_selected,
R.drawable.bt_next_unselected,
R.drawable.menu_background,
R.drawable.bt_level_selector,
};
}
return resources;
}
// public static
private static List<LoadableGLObject> convertDrawablesToLoadableObjects(int[] drawableResources) {
List<LoadableGLObject> objects = new ArrayList<LoadableGLObject>();
if (drawableResources != null) { // If any resource...
for (int i = 0 ; i < drawableResources.length ; i++) {
LoadableGLObject object = new LoadableGLObject(drawableResources[i], LoadableType.TEXTURE);
objects.add(object);
}
}
return objects;
}
private static List<LoadableGLObject> convertFontsToLoadableObjects(FontTypeFace[] fontsResources) {
List<LoadableGLObject> objects = new ArrayList<LoadableGLObject>();
if (fontsResources != null) { // If any resource...
for (int i = 0 ; i < fontsResources.length ; i++) {
LoadableGLObject object = new LoadableGLObject(fontsResources[i].ordinal(), LoadableType.FONT);
objects.add(object);
}
}
return objects;
}
public static List<LoadableGLObject> getResourcesFrom(GameState state) {
List<LoadableGLObject> objects = new ArrayList<LoadableGLObject>();
objects.addAll(convertDrawablesToLoadableObjects(getDrawables(state)));
objects.addAll(convertFontsToLoadableObjects(getFonts(state)));
return objects;
}
}