com.explatcreations.sft.Assets.java Source code

Java tutorial

Introduction

Here is the source code for com.explatcreations.sft.Assets.java

Source

/*****************************************************************************
 * Copyright 2013, see AUTHORS file.
 *
 * This file is part of Sniffy's Flip Trip.
 *
 * Sniffy's Flip Trip is free software: you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as published
 * by the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Sniffy's Flip Trip is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Sniffy's Flip Trip.
 * If not, see <http://www.gnu.org/licenses/>.
 ****************************************************************************/

package com.explatcreations.sft;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.audio.Music;
import com.badlogic.gdx.audio.Sound;
import com.badlogic.gdx.graphics.Pixmap;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator;
import com.explatcreations.sft.audio.SftMusic;
import com.explatcreations.sft.audio.OverlapSfx;
import com.explatcreations.sft.audio.Sfx;
import com.explatcreations.sft.data.Recti;
import com.explatcreations.sft.graphics.AnimatedSprite;
import com.explatcreations.sft.graphics.SpriteBase;
import com.explatcreations.sft.graphics.StaticSprite;
import com.explatcreations.sft.tiles.Tile;

/**
 * @author deweyvm
 */
public class Assets {

    public static TextureRegion makeTextureRegion(Texture t, int x, int y, int width, int height) {
        TextureRegion region = new TextureRegion(t, x, y, width, height);
        region.flip(false, true);
        return region;
    }

    public final Texture SplashPageGraphic = loadTexture("eclogo");

    public final Texture DPadClearGraphic = loadTexture("dpadclear");
    public final Texture DPadGraphic = loadTexture("dpad");

    public final Texture FlagGraphic = loadTexture("flag");

    public final Texture BatWingGraphic = loadTexture("batwing");
    public final Texture MouseCursor = loadTexture("wandcursor2");
    public final Texture JoyBorderGraphic = loadTexture("buttonclear");
    public final Texture JoyBorderParchmentGraphic = loadTexture("buttonparchment");

    public final Texture ArrowsGraphic = loadTexture("arrows");

    public final Texture FlipTileGraphic = loadTexture("fliptiles");
    public final Texture StarGraphic = loadTexture("tiletostar");
    public final Texture TrapdoorGraphic = loadTexture("trapdoors");
    public final Texture PitTileGraphic = loadTexture("pittile");
    public final Texture WaterTileGraphic = loadTexture("water");
    public final Texture IceSplashGraphic = loadTexture("icesplash");
    public final Texture IceBlockGraphic = loadTexture("iceblock");

    public final Texture IceFloorGraphic = loadTexture("icetile");

    public final Texture FloorTileGraphic = loadTexture("regulartile");

    public final Texture BreakableWallGraphic = loadTexture("breakableblock");
    public final Texture DarkBreakableWallGraphic = loadTexture("darkbreakableblock");

    public final Texture WallTileGraphic = loadTexture("blocks");
    public final Texture DarkWallTileGraphic = loadTexture("darkblocks");

    public final Texture RedDoorGraphic = loadTexture("reddoor");
    public final Texture YellowDoorGraphic = loadTexture("yellowdoor");
    public final Texture GreenDoorGraphic = loadTexture("greendoor");
    public final Texture BlueDoorGraphic = loadTexture("bluedoor");

    public final Texture LeverTileGraphic = loadTexture("lever");

    public final Texture RedKeyGraphic = loadTexture("redkey");
    public final Texture YellowKeyGraphic = loadTexture("yellowkey");
    public final Texture GreenKeyGraphic = loadTexture("greenkey");
    public final Texture BlueKeyGraphic = loadTexture("bluekey");

    public final Texture EmptyPickupGraphic = loadTexture("emptypickup");
    public final Texture FirePickupGraphic = loadTexture("firepickup");
    public final Texture WindPickupGraphic = loadTexture("windpickup");
    public final Texture EarthPickupGraphic = loadTexture("earthpickup");
    public final Texture IcePickupGraphic = loadTexture("icepickup");

    public final Texture MagicIcons = loadTexture("pickups");
    public final Texture KeyIcons = loadTexture("keyicon");

    public final Texture ShutterTileGraphic = loadTexture("itemframe");

    public final Texture TeleportersGraphic = loadTexture("teleporters");

    public final Texture TileShadowGraphic = loadTexture("wallshadow");

    public final Texture TitleLettering = loadTexture("title");
    public final Texture TitleScreenScene = loadTexture("titlescreen");
    public final Texture TowerGraphic = loadTexture("tower");
    public final Texture TowerShadowGraphic = loadTexture("towershadow");
    public final Texture TitleScreenSniffyLettering = loadTexture("titlesniffy");
    public final Texture BlueBits = loadTexture("titlebluebits");
    public final Texture YellowBits = loadTexture("titleyellowbits");

    public final Texture SkyStarGraphic = loadTexture("skystar");

    public final Texture PushBlockGraphic = loadTexture("pushableblock");
    public final Texture BallGraphic = loadTexture("ballroll");
    public final Texture PaintBallGraphic = loadTexture("paintballroll");

    public final Texture FireballGraphic = loadTexture("fireball");
    public final Texture WindBallGraphic = loadTexture("windmagic");
    public final Texture IceBallGraphic = loadTexture("iceball");

    public final Texture KeyBorderParchmentGraphic = loadTexture("9patchkeyparchment");

    public final Texture KeyBorderGraphic = loadTexture("9patchkeyclear");

    public final Texture PlayerWalkGraphic = loadTexture("maincharwalk");

    public final Texture Parchment16x16Graphic = loadTexture("parchment9patch16x16-2nd");

    public final Texture Parchment8x8CharredGraphic = loadTexture("charredparchment9patch8x8");
    public final Texture Parchment8x8Graphic = loadTexture("parchment9patch8x8");

    public final Texture MagicMenuGraphic = loadTexture("magicselect");
    public final Texture MagicCursorGraphic = loadTexture("magiccursor");

    public final Texture RightArrowGraphic = loadTexture("arrow");

    public final Texture CheckmarkGraphic = loadTexture("stagecheckmark");
    public final Texture GoldStarGraphic = loadTexture("stagegoldstar");
    public final Texture ExclamationGraphic = loadTexture("stageexclamation");

    public final Texture ReticleGraphic = loadTexture("reticle");

    public final Texture MuteGraphic = loadTexture("muteicon");

    public final Texture StumpGraphic = loadTexture("stump");

    public final Pixmap SmallIcon = loadPixmap("Icon16x16");
    public final Pixmap MediumIcon = loadPixmap("Icon32x32");
    public final Pixmap LargeIcon = loadPixmap("Icon128x128");

    public final String HowToPlayText = loadTextFile("howtoplay");
    public final String TeleportersText = loadTextFile("teleporters");
    public final String LeversText = loadTextFile("levers");
    public final String FrozenText = loadTextFile("frozen");
    public final String CracksText = loadTextFile("cracks");
    public final String FillerText = loadTextFile("filler");
    public final String PushablesText = loadTextFile("pushables");
    public final String FireMagicText = loadTextFile("magicfire");
    public final String EarthMagicText = loadTextFile("magicearth");
    public final String WindMagicText = loadTextFile("magicwind");
    public final String IceMagicText = loadTextFile("magicice");
    public final String DoorsText = loadTextFile("doors");
    public final String CreditsText = loadTextFile("credits");

    public final AnimatedSprite BlankSprite = makeBlankSprite();

    public final Sfx CollectSound = loadSfx("collect", 3);
    public final Sfx FlipOnSound = loadSfx("flipon", 3);
    public final Sfx FlipOffSound = loadSfx("flipoff", 3);
    public final Sfx TeleportSound = loadSfx("teleport", 3);
    public final Sfx TelefailSound = loadSfx("telefail", 3);
    public final Sfx Disintegrate2Sound = loadOverlapSfx("disintegrate2", 3);
    public final Sfx DoorunlockSound = loadSfx("doorunlock", 3);
    public final Sfx ButtonpushSound = loadSfx("buttonpush", 3);
    public final Sfx FireballcastSound = loadSfx("fireballcast", 3);
    public final Sfx FireballhitSound = loadSfx("fireballhit", 3);
    public final Sfx GrowblockSound = loadSfx("growblock", 3);
    public final Sfx UndoSound = loadSfx("undo", 3);
    public final Sfx StepSound = loadSfx("step", 3);
    public final Sfx MagicpickupSound = loadSfx("magicpickup", 3);
    public final Sfx WindmagiccastSound = loadSfx("windmagiccast", 3);
    public final Sfx WindmagichitSound = loadSfx("windmagichit", 3);
    public final Sfx IcemagiccastSound = loadSfx("icemagiccast", 3);
    public final Sfx IcemagichitSound = loadSfx("icemagichit", 3);
    public final Sfx IcefreezeSound = loadSfx("icefreeze", 3);
    public final Sfx RollSound = loadSfx("roll", 3);
    public final Sfx BallhitSound = loadSfx("ballhit", 3);
    public final Sfx IcecrackSound = loadSfx("icecrack", 3);
    public final Sfx SplashSound = loadSfx("splash", 3);
    public final Sfx ClickSound = loadSfx("click", 1);
    public final Sfx ClackSound = loadSfx("clack", 2);
    public final Sfx DeleteblipSound = loadSfx("deleteblip", 3);
    public final Sfx DeleteexplosionSound = loadSfx("deleteexplosion", 3);
    public final Sfx BloopSound = loadOverlapSfx("bloop", 3);
    public final Sfx TeleinSound = loadSfx("telein", 3);
    public final Sfx TeleoutSound = loadSfx("teleout", 3);
    public final Sfx NewnoteSound = loadSfx("newnote", 3);
    public final Sfx ButtonclickSound = loadSfx("buttonclick", 3);
    public final Sfx PageflipSound = loadSfx("pageflip", 0);
    public final Sfx PageflipoutSound = loadSfx("pageflipout", 0);
    public final Sfx MagicmenuselectSound = loadSfx("magicmenuselect", 3);
    public final Sfx ExplodefinalSound = loadSfx("explodefinal", 3);
    public final Sfx WiggleSound = loadOverlapSfx("wiggle", 3);
    public final Sfx MagicemptySound = loadSfx("magicempty", 3);
    public final Sfx ResetclickSound = loadSfx("resetclick", 3);
    public final Sfx ResetclackSound = loadSfx("resetclack", 3);
    public final Sfx LevelunlockSound = loadSfx("levelunlock", 3);

    public final SftMusic StampSound = loadMusic("stamp", false);
    public final SftMusic WinJingleMusic = loadMusic("WinJingle", false);
    public final SftMusic GoldJingleSound = loadMusic("GoldJingle", false);
    public final SftMusic LevelSelectBGMMusic = loadMusic("LevelSelectBGM", true);
    public final SftMusic TitleBGMMusic = loadMusic("TitleBGM", true);
    public final SftMusic EasyTileFlippinMusic = loadMusic("EasyTileFlippin", true);
    public final SftMusic ElevatedMusic = loadMusic("Elevated", true);
    public final SftMusic MidEndingMusic = loadMusic("JobWellDone", true);

    public final SftMusic GoodTimesMusic = loadMusic("GoodTimes", false);
    public final SftMusic TimpoLivesMusic = loadMusic("TimpoLives", false);

    public final BitmapFont Font = makeFont("8bitoperator", 11);

    private BitmapFont makeFont(String name, int size) {
        final String path = "fonts/" + name + ".ttf";
        final FreeTypeFontGenerator gen = new FreeTypeFontGenerator(Gdx.files.internal(path));
        return gen.generateFont(size, FreeTypeFontGenerator.DEFAULT_CHARS, true);
    }

    private SftMusic loadMusic(String name, boolean looping) {
        final String path = "music/" + name;
        try {
            final Music music = Gdx.app.getAudio().newMusic(Gdx.files.internal(path + ".ogg"));
            return new SftMusic(music, looping);
        } catch (Throwable t) {
            final Music music = Gdx.app.getAudio().newMusic(Gdx.files.internal(path + ".wav"));
            return new SftMusic(music, looping);
        }
    }

    private static Sfx loadSfx(String name, int maxFrequency) {
        final String path = "sfx/" + name + ".ogg";
        final Music music = Gdx.app.getAudio().newMusic(Gdx.files.internal(path));
        return new Sfx(music, maxFrequency, name);
    }

    private static OverlapSfx loadOverlapSfx(String name, int maxFrequency) {
        final String path = "sfx/" + name + ".ogg";
        final Sound sound = Gdx.app.getAudio().newSound(Gdx.files.internal(path));
        return new OverlapSfx(sound, maxFrequency);
    }

    public static SpriteBase makeArrowSprite(String name) {
        final int index;
        if (name.equals("Up")) {
            index = 0;
        } else if (name.equals("Down")) {
            index = 1;
        } else if (name.equals("Right")) {
            index = 2;
        } else {
            index = 3;
        }
        return makeSpriteFrame(Game.assets.ArrowsGraphic, 16, 16, index);
    }

    public static AnimatedSprite makeTileSprite(Texture texture) {
        final AnimatedSprite result = new AnimatedSprite(texture, Tile.Size, Tile.Size);
        final String dummy = "dummy123";
        result.addAnimation(dummy, 1, new int[] { 0 }, false);
        result.play(dummy);
        return result;
    }

    public static StaticSprite makeStaticSprite(Texture t, Recti rect) {
        TextureRegion region = makeTextureRegion(t, rect.x, rect.y, rect.width, rect.height);
        return new StaticSprite(region);
    }

    public static StaticSprite makeStaticSprite(Texture t) {
        TextureRegion region = makeTextureRegion(t, 0, 0, t.getWidth(), t.getHeight());
        return new StaticSprite(region);
    }

    public static AnimatedSprite makeTileFrame(Texture t, int frame) {
        final AnimatedSprite result = new AnimatedSprite(t, Tile.Size, Tile.Size);
        final String dummy = "dummy123";
        result.addAnimation(dummy, 1, new int[] { frame }, false);
        result.play(dummy);
        return result;
    }

    public static AnimatedSprite makeSpriteFrame(Texture t, int width, int height, int frame) {
        final AnimatedSprite result = new AnimatedSprite(t, width, height);
        final String dummy = "dummy123";
        result.addAnimation(dummy, 1, new int[] { frame }, false);
        result.play(dummy);
        return result;
    }

    private static Pixmap loadPixmap(String name) {
        return new Pixmap(Gdx.files.internal("sprites/" + name + ".png"));
    }

    private static Texture loadTexture(String name) {
        return new Texture(Gdx.files.internal("sprites/" + name + ".png"));
    }

    private static String loadTextFile(String name) {
        final String path = "notes/" + name + ".txt";
        return Gdx.files.internal(path).readString();
    }

    private static AnimatedSprite makeBlankSprite() {
        final Texture t = new Texture(1, 1, Pixmap.Format.RGBA8888);
        final String name = "play";
        final AnimatedSprite result = new AnimatedSprite(t, 1, 1);
        result.addAnimation(name, 1, new int[] { 0 }, false);
        result.play(name);
        return result;
    }
}