code:
/*
 * Author: S1mple
 * Class: GameMode
 * Date of Creation: 08.11.2018
 */

package me.s1mple.GameMode;

import me.s1mple.MysticNavigator;
import org.bukkit.Location;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class GameMode {
    final private String name;
    final private MysticNavigator plugin;
    final private String dataFolder;

    /**
     * Initialize a new Game Mode
     *
     * @param gameModeName The name of the gamemode
     * @param pl           The MysticNavigator plugin
     * @param dataFolder   The data folder of the plugin
     **/
    public GameMode(String gameModeName, MysticNavigator pl, String dataFolder) {
        this.name = gameModeName;
        this.plugin = pl;
        this.dataFolder = dataFolder;
        List<String> gameModes = (List<String>) plugin.getConfig().get(plugin.getConfigFile().GAME_MODES);

        String sql = "CREATE TABLE IF NOT EXISTS " + getName() + " (\n"
                + "	id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\n"
                + "	x real,\n"
                + "	y real,\n"
                + "	z real,\n"
                + "name text, \n"
                + "	world text"
                + ");";

        if (!gameModes.contains(getName())) {
            gameModes.add(getName());
            plugin.getConfigFile().set(plugin.getConfigFile().GAME_MODES, gameModes); // Add GameMode to Config
        }

        try (Connection conn = pl.getUtil().getDatabase(dataFolder);
             Statement state = conn.createStatement()) {
            state.execute(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    /**
     * @return Number of spawn points.
     */
    public int getSpawnPlaces() {
        int i = 0;
        String sql = "SELECT id FROM " + getName();

        try (Connection conn = plugin.getUtil().getDatabase(dataFolder);
             Statement state = conn.createStatement()) {
            ResultSet rs = state.executeQuery(sql);

            while (rs.next()) {
                i++;
            }

            rs.close();
            return i;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }

    /**
     * @return SpawnPointsNames as a String List.
     */
    public List<String> getSpawnPointsNames() {
        ResultSet rs;
        List<String> spawnPoints = new ArrayList<>();
        String sql = "SELECT name from " + getName();

        try (Connection conn = plugin.getUtil().getDatabase(dataFolder);
             Statement state = conn.createStatement()) {
            rs = state.executeQuery(sql);

            while (rs.next()) {
                spawnPoints.add(rs.getString("name"));
            }

            rs.close();

        } catch (SQLException e) {
            e.printStackTrace();
        }
        return spawnPoints;
    }

    /**
     * Set a spawnpoint
     *
     * @param loc  Location of spawnpoint
     * @param name Name of spawnpoint
     */
    public void setSpawnPoint(Location loc, String name) {
        String sql = "INSERT INTO " + getName() + "(world,x,y,z,name) VALUES(?,?,?,?,?)";
        String world = loc.getWorld().getName();
        double x = loc.getX();
        double y = loc.getY();
        double z = loc.getZ();

        // Return false if spawnpoint exists
        if (hasSpawnPoint(loc)) {
            return;
        }

        try (Connection conn = plugin.getUtil().getDatabase(dataFolder);
             PreparedStatement pstate = conn.prepareStatement(sql)) {
            pstate.setString(1, world);
            pstate.setDouble(2, x);
            pstate.setDouble(3, y);
            pstate.setDouble(4, z);
            pstate.setString(5, name.toLowerCase());
            pstate.executeUpdate();
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
    }

    /**
     * Change spawn point
     *
     * @param locNew New location
     * @param name   Name of old SpawnPoint
     */
    public void changeSpawnPoint(Location locNew, String name) {
        String sql = "UPDATE " + getName() + " SET world = ? , "
                + "x = ? , "
                + "y = ? , "
                + "z = ? "
                + "WHERE name = ? ";
        String worldNew = locNew.getWorld().getName();
        double xNew = locNew.getX();
        double yNew = locNew.getY();
        double zNew = locNew.getZ();

        try (Connection conn = plugin.getUtil().getDatabase(dataFolder);
             PreparedStatement pstmt = conn.prepareStatement(sql)) {

            pstmt.setString(1, worldNew);
            pstmt.setDouble(2, xNew);
            pstmt.setDouble(3, yNew);
            pstmt.setDouble(4, zNew);
            pstmt.setString(5, name.toLowerCase());

            pstmt.executeUpdate();
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
    }

    /**
     * Returns the id of a spawn point.
     *
     * @param loc Location of spawnpoint
     * @return Spawn point´s id as an int
     */
    public int getId(Location loc) {
        int id;
        String world = loc.getWorld().getName();
        Double x = loc.getX();
        Double y = loc.getY();
        Double z = loc.getZ();
        String sql = "SELECT id FROM " + getName() + " where x=" + x + " AND world=" + world + " AND y=" + y + " AND z=" + z + ";\n";

        try (Connection conn = plugin.getUtil().getDatabase(dataFolder);
             Statement state = conn.createStatement()) {
            ResultSet rs = state.executeQuery(sql);
            id = rs.getInt("id");
            rs.close();

            return id;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }

    /**
     * Returns the id of a spawn point.
     *
     * @param spawnPointName Name of SpawnPoint
     * @return Spawn point´s id as an int
     */
    public int getId(String spawnPointName) {
        int id;
        String sql = "SELECT id FROM " + getName() + " where name='" + spawnPointName.toLowerCase() + "';\n";

        try (Connection conn = plugin.getUtil().getDatabase(dataFolder);
             Statement state = conn.createStatement()) {
            ResultSet rs = state.executeQuery(sql);
            id = rs.getInt("id");
            rs.close();

            return id;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }

    /**
     * Get location of a spawn point.
     *
     * @param spawnPoint Name of the spawn point
     * @return Location of Spawnpoint, null if it does not exist
     */
    public Location getSpawnPointLocation(String spawnPoint) {
        Location loc = null;

        String sql = "SELECT world, x, y, z FROM " + getName() + " where name='" + spawnPoint + "' ;";
        try (Connection conn = plugin.getUtil().getDatabase(dataFolder);
             Statement state = conn.createStatement()) {
            ResultSet rs = state.executeQuery(sql);
            loc = new Location(plugin.getServer().getWorld(rs.getString("world")), rs.getDouble("x"), rs.getDouble("y"), rs.getDouble("z"));
            rs.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return loc;
    }

    /**
     * Get location of a spawn point.
     *
     * @param id Id of the spawn point
     * @return Location of Spawnpoint, null if it does not exist
     */
    public Location getSpawnPointLocation(int id) {
        Location loc;
        String world;
        double x;
        double y;
        double z;

        String sql = "SELECT world, x, y, z FROM '" + getName() + "' where id=" + id + ";";
        try (Connection conn = plugin.getUtil().getDatabase(dataFolder)) {
            ResultSet rs = conn.createStatement().executeQuery(sql);

            world = rs.getString("world");
            x = rs.getDouble("x");
            y = rs.getDouble("y");
            z = rs.getDouble("z");
            rs.close();

            loc = new Location(plugin.getServer().getWorld(world), x, y, z);
        } catch (SQLException e) {
            loc = null;
            e.printStackTrace();
        }

        return loc;
    }

    /**
     * @return name of the GameMode.
     */
    public String getName() {
        return name.toLowerCase();
    }

    /**
     * Deletes a spawnpoint.
     *
     * @param name Name of Spawn point
     */
    public void deleteSpawnPoint(String name) {
        String sql = "DELETE FROM " + getName() + " WHERE name=?";

        try (Connection conn = plugin.getUtil().getDatabase(dataFolder);
             PreparedStatement pstate = conn.prepareStatement(sql)) {
            pstate.setString(1, name.toLowerCase());
            pstate.executeUpdate();

        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
    }

    /**
     * Delete GameMode
     */
    public void delete() {
        String sql = "DROP TABLE " + getName();
        List<String> gameModes = (List<String>) plugin.getConfig().get(plugin.getConfigFile().GAME_MODES);

        try (Connection conn = plugin.getUtil().getDatabase(dataFolder);
             PreparedStatement pstate = conn.prepareStatement(sql)) {
            pstate.executeUpdate();

            if (gameModes.contains(getName())) {
                gameModes.remove(getName());
                plugin.getConfigFile().set(plugin.getConfigFile().GAME_MODES, gameModes); // Remove GameMode from config
            }

            this.finalize();
        } catch (Throwable throwable) {
            System.out.println(throwable.getMessage());
        }
    }

    /**
     * @param name Name of SpawnPoint
     * @return Wether if spawnpoint exists or not;
     */
    public boolean hasSpawnPoint(String name) {
        for (String arena : getSpawnPointsNames()) {
            if (arena.equalsIgnoreCase(name)) {
                return true;
            }
        }
        return false;
    }

    /**
     * @param loc Location of SpawnPoint
     * @return Wether if spawnpoint exists or not;
     */
    public boolean hasSpawnPoint(Location loc) {
        for (String arena : getSpawnPointsNames()) {
            if (getSpawnPointLocation(arena) == loc) {
                return true;
            }
        }

        return false;
    }

}


code:
/*
 * Author: S1mple
 * Class: MysticNavigator
 * Date of Creation: 08.11.2018
 */

package me.s1mple;

import com.sk89q.worldedit.bukkit.WorldEditPlugin;
import me.s1mple.CommandKits.MysticNavigatorArena;
import me.s1mple.GameMode.Arena;
import me.s1mple.GameMode.GameMode;
import me.s1mple.util.Config;
import me.s1mple.util.Util;
import org.bukkit.Location;
import org.bukkit.plugin.java.JavaPlugin;

import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class MysticNavigator extends JavaPlugin {
    private String dataFolder;
    private List<GameMode> gameModes;
    private List<Arena> arenas;
    private MysticNavigator plugin;
    private Util util;
    private Config configFile;
    private WorldEditPlugin worldEdit;

    /**
     * onEnable() method
     */
    @Override
    public void onEnable() {
        List<Location> locationList = new ArrayList<>();
        this.dataFolder = getDataFolder().toString();
        this.plugin = this;
        this.util = new Util(plugin);
        this.gameModes = new ArrayList<>();
        this.arenas = new ArrayList<>();
        this.configFile = new Config(plugin);
        this.worldEdit = (WorldEditPlugin) plugin.getServer().getPluginManager().getPlugin("WorldEdit");

        setupDataFolder();

        initializeGameModes();

        initializeCommands();
    }

    /**
     * onDisable() method
     */
    @Override
    public void onDisable() {
    }

    /**
     * @param name Name of GameMode
     * @return Weather if GameMode exists
     */
    public boolean gameModeExists(String name) {
        return (plugin.getGameMode(name) != null);
    }

    /**
     * @return Weather if a Game Mode exists or not.
     */
    public boolean existGameModes() {
        return (getGameModes().isEmpty());
    }

    /**
     * Get the Util class
     *
     * @return Util class
     */
    public Util getUtil() {
        return util;
    }

    /**
     * Initialize all Game Modes
     */
    private void initializeGameModes() {
        // Check if there are any GameModes
        if ((getUtil().getGameModes() == null))
            return;

        // Initialize GameModes
        for (String gameMode : getUtil().getGameModes()) {
            GameMode gm = new GameMode(gameMode, plugin, dataFolder);

            if (!gameModes.contains(gm) && !gameMode.equals("default"))
                gameModes.add(gm);
        }

        // Initialize Arenas
        if (!getUtil().getArenas().isEmpty()) {
            for (String arenaName : getUtil().getArenas()) {
                try {
                    arenas.add(new Arena(plugin, arenaName, getArenaLocationFirst(arenaName), getArenaLocationSecond(arenaName)));
                    getLogger().info("Arena " + arenaName + " has been loaded.");
                } catch (IOException e) {
                    getLogger().info(e.getMessage());
                }
            }
        } else {
            getLogger().info("No arenas Found!");
        }

        String sql = "CREATE TABLE IF NOT EXISTS Arenas (\n"
                + "	id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\n"
                + "	xFirst real,\n"
                + "	yFirst real,\n"
                + "	zFirst real,\n"
                + "	xSecond real,\n"
                + "	ySecond real,\n"
                + "	zSecond real,\n"
                + "name text, \n"
                + "	world text"
                + ");";

        try (Connection conn = plugin.getUtil().getDatabase(dataFolder);
             Statement state = conn.createStatement()) {
            state.execute(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

    /**
     * Initialize the CommandKits
     */
    private void initializeCommands() {
        me.s1mple.CommandKits.MysticNavigator mn = new me.s1mple.CommandKits.MysticNavigator(plugin);
        MysticNavigatorArena mna = new MysticNavigatorArena(plugin);
    }

    /**
     * List all GameModes
     *
     * @return A list with all Game Modes.
     */
    public List<GameMode> getGameModes() {
        return gameModes;
    }

    /**
     * Get a GameMode by name.
     *
     * @param name Name of GameMode
     * @return GameMode
     */
    public GameMode getGameMode(String name) {
        if (getGameModes().isEmpty())
            return null;

        for (GameMode g : getGameModes()) {
            if (g.getName().equalsIgnoreCase(name))
                return g;
        }
        return null;
    }

    /**
     * Remove a GameMode
     *
     * @param gameMode GameMode
     */
    public void removeGameMode(GameMode gameMode) {
        try {
            gameMode.delete();
            gameModes.remove(gameMode);
        } catch (Exception ignored) {
        }

    }

    /**
     * Add a new GameMode
     *
     * @param name Name of the GameMode
     * @return If the GameMode was successfully added.
     */
    public GameMode addGameMode(String name) {
        return (gameModes.add(new GameMode(name, plugin, dataFolder))) ? (new GameMode(name, plugin, dataFolder)) : null;
    }

    /**
     * @return Configuration class to make editing config easier.
     */
    public Config getConfigFile() {
        return this.configFile;
    }

    // Set the data Folder up
    private void setupDataFolder() {
        // Check if Config File Exists, if not create one
        if (!new File(getConfig().getCurrentPath()).exists()) {
            new File(getConfig().getCurrentPath());
            getConfigFile().setupConfig();
        }

        // Check if database exists, if not create one
        if (!this.util.dbExists(dataFolder)) {
            try (Connection conn = this.util.getDatabase(dataFolder)) {
                if (conn != null) {
                    getLogger().info("A new database has been created.");
                }

            } catch (SQLException e) {
                getLogger().info(e.getMessage());
            }
        }

    }

    /**
     * Get First location of an Arena
     *
     * @param name Name of Arena.
     * @return First Location of the Arena.
     */
    public Location getArenaLocationFirst(String name) {
        Location loc = null;
        String world;
        double x;
        double y;
        double z;

        String sql = "SELECT world, xFirst, yFirst, zFirst FROM Arenas WHERE name='" + name + "'";
        try (Connection conn = plugin.getUtil().getDatabase(dataFolder)) {
            ResultSet res = conn.createStatement().executeQuery(sql);

            world = res.getString("world");
            x = res.getDouble("xFirst");
            y = res.getDouble("yFirst");
            z = res.getDouble("zFirst");
            res.close();

            loc = new Location(plugin.getServer().getWorld(world), x, y, z);

        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }

        return loc;
    }

    /**
     * @param name Name of the Arena
     * @return Seond Location of the arena.
     */
    public Location getArenaLocationSecond(String name) {
        Location loc = null;
        String world;
        double x;
        double y;
        double z;

        String sql = "SELECT world, xSecond, ySecond, zSecond FROM Arenas WHERE name='" + name + "'";
        try (Connection conn = plugin.getUtil().getDatabase(dataFolder)) {
            ResultSet res = conn.createStatement().executeQuery(sql);

            world = res.getString("world");
            x = res.getDouble("xSecond");
            y = res.getDouble("ySecond");
            z = res.getDouble("zSecond");
            res.close();

            loc = new Location(plugin.getServer().getWorld(world), x, y, z);

        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }

        return loc;
    }

    /**
     * @param name Name of the Arena you want to get.
     * @return An Arena
     */
    public Arena getArena(String name) {
        Arena arenaFound = null;

        for (Arena arena : arenas) {
            if (arena.getName().equalsIgnoreCase(name)) {
                arenaFound = arena;
            }
        }

        return arenaFound;
    }

    /**
     * @return List of the Names of all arenas that exist
     */
    public List<String> getArenasByName() {
        return plugin.getUtil().getArenas();
    }

    /**
     * @return List of all Arenas that exist
     */
    public List<Arena> getArenas() {
        return arenas;
    }

    /**
     * @return Instance of the WorldEdit plugin.
     */
    public WorldEditPlugin getWorldEdit() {
        return worldEdit;
    }

    /**
     * Create a new Arena
     *
     * @param name           Name of the Arena
     * @param locationFirst  Lowest Location of the arena
     * @param locationSecond Highest Location of the arena
     * @throws IOException
     */
    public void createArena(String name, Location locationFirst, Location locationSecond) throws IOException {
        new Arena(plugin, name, locationFirst, locationSecond);
        getUtil().getArenas();
    }

    /**
     * Remove an Arena
     *
     * @param name Name of arena
     * @return If arena was successfully removed
     */
    public boolean removeArena(String name) {
        Arena arena = getArena(name);
        arena.remove();
        return arenas.remove(arena);
    }

}

repo_name: turps/MysticNavigator

license: mit


code:
package me.s1mple.util;

import me.s1mple.MysticNavigator;
import org.bukkit.Location;
import org.bukkit.configuration.file.FileConfiguration;

import java.util.ArrayList;

public class Config {
    final public String DEFAULT_LOCATION = "MysticNavigator.DefaultSpawnpoint";
    final public String GAME_MODES = "MysticNavigator.GameModes";
    final public String GAME_MODE_ARENAS = "MysticNavigator.GameModeArenas";
    final public String ARENAS_RESET_SCHEM_ALLOWUNDO = "MysticNavigator.ArenasResetSchem.AllowUndo";
    final private MysticNavigator plugin;
    final private FileConfiguration config;

    public Config(MysticNavigator plugin) {
        this.plugin = plugin;
        this.config = plugin.getConfig();
    }

    /**
     * Set an Object in the config and Save it.
     *
     * @param configName Path, where the Object should be saved.
     * @param value      Object
     */
    public void set(String configName, Object value) {
        config.set(configName, value);
        plugin.saveConfig();
    }

    /**
     * Set the default Config up.
     */
    public void setupConfig() {
        config.addDefault(DEFAULT_LOCATION, new Location(plugin.getServer().getWorlds().get(0), 0, 0, 0));
        config.addDefault(GAME_MODES, new ArrayList<String>());
        config.addDefault(GAME_MODE_ARENAS, new ArrayList<String>());
        config.addDefault(ARENAS_RESET_SCHEM_ALLOWUNDO, false);
        config.options().copyDefaults(true);
        plugin.saveConfig();
    }
}


code:
package me.s1mple.util;

import org.bukkit.entity.Player;

public enum Permissions {
    MN_ADD("mn.add"),
    MN_REMOVE("mn.remove"),
    MN_SETSPAWN("mn.setspawn"),
    MN_ADDARENA("mn.addarena"),
    MN_JOIN("mn.join"),
    MN_LEAVE("mn.leave"),
    MN_ARENAS("mn.arenas"),
    MN_REMOVEARENA("mn.removearenas"),
    MN_BACKUP("mn.backup"),
    MNA_CREATE("mna.arenas.create"),
    MNA_RESET("mna.arenas.reset"),
    MNA_REMOVE("mna.arenas.remove"),
    MNA_ARENAS("mna.arenas.arenas");

    private final String perm;

    Permissions(final String perm) {
        this.perm = perm;
    }

    public boolean hasPerm(Player player) {
        return player.hasPermission(perm);
    }

}


code:
/*
 * Author: S1mple
 * Class: Util
 * Date of Creation: 08.11.2018
 */
package me.s1mple.util;

import me.s1mple.GameMode.GameMode;
import me.s1mple.MysticNavigator;
import org.bukkit.ChatColor;
import org.bukkit.util.FileUtil;

import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class Util {
    final private MysticNavigator plugin;

    public Util(MysticNavigator plugin) {
        this.plugin = plugin;
    }

    /**
     * Get the Database.
     *
     * @param dataFolder Folder in which to search for database.db \n (Data Folder of plugin)
     * @return Database
     * @throws SQLException SQL connection
     */
    public Connection getDatabase(String dataFolder) throws SQLException {
        return DriverManager.getConnection(getDbFileName(dataFolder));
    }

    /**
     * Path name of the Database.
     *
     * @param dataFolder Data Folder of Plugin.
     * @return Path of database as string.
     */
    private String getDbFileName(String dataFolder) {
        return "jdbc:sqlite:" + dataFolder + "\\database.db";
    }

    /**
     * Check if database exists.
     *
     * @param dataFolder Data Folder of Plugin.
     * @return Database exists
     */
    public boolean dbExists(String dataFolder) {
        try {
            return getDatabase(dataFolder) != null;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }

    /**
     * Get a list of all gamemodes, GameMode default will be by default in the list.
     *
     * @return List<String> of all gamemodes
     */
    public List<String> getGameModes() {
        return ((List<String>) plugin.getConfig().get(plugin.getConfigFile().GAME_MODES)).isEmpty() ? new ArrayList<String>() : (List<String>) plugin.getConfig().get(plugin.getConfigFile().GAME_MODES);
    }

    public List<String> getArenas() {
        return ((List<String>) plugin.getConfig().get(plugin.getConfigFile().GAME_MODE_ARENAS)).isEmpty() ? new ArrayList<String>() : (List<String>) plugin.getConfig().get(plugin.getConfigFile().GAME_MODE_ARENAS);
    }

    /**
     * Remove the spawnpoints of a game mode.
     *
     * @param dataFolder Data Folder of Plugin.
     * @param gameMode   GameMode to reset.
     * @return Weather if the GameMode has been resetted or not.
     */
    public boolean resetGameMode(String dataFolder, GameMode gameMode) {
        for (String gameModeName : getGameModes()) {
            if (gameModeName.equals(gameMode.getName())) {
                gameMode.delete();
                GameMode gm = new GameMode(gameModeName, plugin, dataFolder);
                return true;
            }
        }
        return false;
    }

    /**
     * Backup the data base file.
     *
     * @param dataFolder Data Folder of Plugin
     */
    public void backupDatabase(String dataFolder) {
        FileUtil.copy((new File(getDbFileName(dataFolder + "_Backup" + System.currentTimeMillis()))), (new File(getDbFileName(dataFolder))));
    }

    /**
     * @return The Message that´s used in /mn help.
     */
    public String getHelpMessage() {
        return ChatColor.DARK_BLUE + "----------------------------------------------\n" +
                ChatColor.DARK_BLUE + " * " + ChatColor.AQUA + "<Argument> must exist. [Argument] is optional\n" +
                ChatColor.DARK_BLUE + " * " + ChatColor.BLUE + "/mn Help : " + ChatColor.AQUA + " Display help message. \n" +
                ChatColor.DARK_BLUE + " * " + ChatColor.BLUE + "/mn Add <GameMode> : " + ChatColor.AQUA + " Create a new Game Mode. \n" +
                ChatColor.DARK_BLUE + " * " + ChatColor.BLUE + "/mn Remove <GameMode> : " + ChatColor.AQUA + " Delete a Game Mode.  \n" +
                ChatColor.DARK_BLUE + " * " + ChatColor.BLUE + "/mn SetSpawn : " + ChatColor.AQUA + " Set your location as the default spawn Hub. \n" +
                ChatColor.DARK_BLUE + " * " + ChatColor.BLUE + "/mn AddArena <GameMode> <Arena>: " + ChatColor.AQUA + " Set your location as an Arena of <GameMode>\n"
                + String.format("%80s", "with the name <Arena>. \n") +
                ChatColor.DARK_BLUE + " * " + ChatColor.BLUE + "/mn RemoveArena <GameMode> <Arena> : " + ChatColor.AQUA + " Remove <Arena> from <GameMode>. \n" +
                ChatColor.DARK_BLUE + " * " + ChatColor.BLUE + "/mn Join <GameMode> [Arena]: " + ChatColor.AQUA + " Teleport to the Default Spawn of <GameMode> or to " +
                String.format("%80s", "<Arena> \n") +
                ChatColor.DARK_BLUE + " * " + ChatColor.BLUE + "/mn Leave : " + ChatColor.AQUA + " Teleport yourself to the Hub \n" +
                ChatColor.DARK_BLUE + " * " + ChatColor.BLUE + "/mn Backup : " + ChatColor.AQUA + " Back the DataBase up. \n" +
                ChatColor.DARK_BLUE + " * " + ChatColor.BLUE + "/mn Arenas <GameMode> : " + ChatColor.AQUA + " List Arenas of <GameMode>\n" +
                ChatColor.DARK_BLUE + "----------------------------------------------";
    }

    /**
     * @return The Message that´s used in /mna help.
     */
    public String getHelpArenaMessage() {
        return ChatColor.DARK_BLUE + "----------------------------------------------\n" +
                ChatColor.DARK_BLUE + " * " + ChatColor.AQUA + "<Argument> must exist. [Argument] is optional\n" +
                ChatColor.DARK_BLUE + " * " + ChatColor.BLUE + "/mna Help : " + ChatColor.AQUA + " Display help message. \n" +
                ChatColor.DARK_BLUE + " * " + ChatColor.BLUE + "/mna Create <Arena> : " + ChatColor.AQUA + " Create a new Arena (Select Arena with WorldEdit). \n" +
                ChatColor.DARK_BLUE + " * " + ChatColor.BLUE + "/mna Reset <Arena> : " + ChatColor.AQUA + " Reset an existing Arena. \n" +
                ChatColor.DARK_BLUE + " * " + ChatColor.BLUE + "/mna Remove <Arena> : " + ChatColor.AQUA + " Remove an Arena.  \n" +
                ChatColor.DARK_BLUE + " * " + ChatColor.BLUE + "/mna Arenas : " + ChatColor.AQUA + " List Arenas of <GameMode>\n" +
                ChatColor.DARK_BLUE + "----------------------------------------------";
    }

}


code:
name: MysticNavigator
version: 2.0
main: me.s1mple.MysticNavigator
depend: [WorldEdit, FastAsyncWorldEdit]
commands:
    mn:
      description: Default command.
      aliases: [mysticnavigator, navi]
    mna:
      description: Default command for resetting arenas.
      aliases: [mysticnavigatorarena, naviarena]


code:
name: MysticNavigator
version: 1.0
main: me.s1mple.MysticNavigator
depend: [WorldEdit, FastAsyncWorldEdit]
commands:
    mn:
      description: Default command.
      aliases: [mysticnavigator, navi]
    mna:
      description: Default command for resetting arenas.
      aliases: [mysticnavigatorarena, naviarena]


code:
#Generated by Maven
#Mon Nov 05 22:15:48 CET 2018
version=1.0-SNAPSHOT
groupId=me.s1mple
artifactId=MysticNavigator


code:
me\s1mple\CommandKits\MysticNavigatorArena.class
me\s1mple\GameMode\Arena.class
me\s1mple\util\Permissions.class
me\s1mple\GameMode\GameMode.class
me\s1mple\CommandKits\MysticNavigator.class
me\s1mple\MysticNavigator.class
me\s1mple\util\Config.class
me\s1mple\util\Util.class


repo_name: lavaduder/librerausers

path: .import/Blood Upon the Risers (Gory Gory What a Hell of a Way to Die).ogg-2028d516a64230046d825e1309f01ead.md5


code:
[gd_scene load_steps=5 format=2]

[ext_resource path="res://assets/images/librerauser_bg.png" type="Texture" id=1]
[ext_resource path="res://assets/images/librerauser_bg2.png" type="Texture" id=2]
[ext_resource path="res://assets/images/librerauser_bg3.png" type="Texture" id=3]
[ext_resource path="res://assets/images/librerauser_bgclouds.png" type="Texture" id=4]

[node name="bg&fg" type="Node2D"]

[node name="bg" type="ParallaxBackground" parent="."]
editor/display_folded = true

[node name="1" type="ParallaxLayer" parent="bg"]
position = Vector2( 32, 64 )
motion_scale = Vector2( 0.1, 1 )
motion_mirroring = Vector2( 1024, 0 )

[node name="back" type="Sprite" parent="bg/1"]
position = Vector2( 480, -10 )
scale = Vector2( 16, 16 )
texture = ExtResource( 1 )

[node name="2" type="ParallaxLayer" parent="bg"]
position = Vector2( 32, 64 )
motion_scale = Vector2( 0.5, 1 )
motion_offset = Vector2( 2, 0 )
motion_mirroring = Vector2( 1024, 0 )

[node name="sea" type="Sprite" parent="bg/2"]
position = Vector2( 480, 1796 )
scale = Vector2( 20, 20 )
texture = ExtResource( 2 )

[node name="sky" type="Sprite" parent="bg/2"]
position = Vector2( 480, -1522.84 )
scale = Vector2( 16, 16 )
texture = ExtResource( 3 )

[node name="3" type="ParallaxLayer" parent="bg"]
position = Vector2( 32, 64 )
motion_offset = Vector2( 3, 0 )
motion_mirroring = Vector2( 1024, 0 )

[node name="cloud" type="Sprite" parent="bg/3"]
position = Vector2( 480, -10 )
scale = Vector2( 16, 16 )
texture = ExtResource( 4 )

[node name="foreground" type="ParallaxBackground" parent="."]
editor/display_folded = true
layer = 2

[node name="2" type="ParallaxLayer" parent="foreground"]
position = Vector2( 32, 64 )
motion_scale = Vector2( 0.5, 1 )
motion_offset = Vector2( 2, 0 )
motion_mirroring = Vector2( 1024, 0 )

[node name="sea" type="Sprite" parent="foreground/2"]
position = Vector2( 478, 1746 )
scale = Vector2( 20, 20 )
texture = ExtResource( 2 )

[node name="sky" type="Sprite" parent="foreground/2"]
position = Vector2( 480, -1522.84 )
scale = Vector2( 16, 16 )
texture = ExtResource( 3 )


code:
[gd_scene load_steps=2 format=2]

[ext_resource path="res://scripts/john3_16.gd" type="Script" id=1]

[node name="john3_16" type="Control"]
anchor_right = 1.0
anchor_bottom = 1.0
script = ExtResource( 1 )


code:
[gd_scene load_steps=2 format=2]

[ext_resource path="res://assets/music/Blood Upon the Risers (Gory Gory What a Hell of a Way to Die).ogg" type="AudioStream" id=1]

[node name="librerauserhud" type="CanvasLayer"]
layer = 2

[node name="splitscreen" type="GridContainer" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
size_flags_stretch_ratio = 0.0
columns = 2

[node name="music" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 1 )
autoplay = true


code:
[gd_scene load_steps=3 format=2]

[ext_resource path="res://scripts/librerausers_vpc.gd" type="Script" id=1]
[ext_resource path="res://GUI/bg&fg.tscn" type="PackedScene" id=2]

[node name="vpc" type="ViewportContainer"]
margin_right = 2048.0
margin_bottom = 1200.0
size_flags_horizontal = 3
size_flags_vertical = 3
script = ExtResource( 1 )

[node name="v" type="Viewport" parent="."]
size = Vector2( 1024, 600 )
handle_input_locally = false
render_target_update_mode = 3

[node name="cam" type="Camera2D" parent="v"]
current = true

[node name="bg&fg" parent="v" instance=ExtResource( 2 )]

[node name="ProgressBar" type="ProgressBar" parent="."]
margin_right = 120.0
margin_bottom = 14.0


code:
## Librerausers
Librerausers is a clone of luftrausers (by vlambeer and Devolver digital.) However this has multiplayer, and no enemies.


code:
tool
extends EditorPlugin

var ver = 1.0
var WIP_SCENES = ["res://GAMES/librerauser/librerauser.tscn",
]

func _enter_tree():
	var ein = get_editor_interface()
	for wipscene in WIP_SCENES:
		ein.open_scene_from_path(wipscene)
		print_debug("AUTO_OPENER_"+str(ver)+": -- ",wipscene)

func _exit_tree():
	pass


code:
[plugin]

name="autoopen"
description="Auto opens a scene you are working on. @ boot of godot. 	"
author="Lavaduder"
version="1.0"
script="autoopen.gd"


code:
[remap]

importer="scene"
type="PackedScene"
path="res://.import/librerausers_plane.dae-707912cedb5614e640fbaf3acdb9aa40.scn"

[deps]

source_file="res://assets/3dmodels/librerausers_plane.dae"
dest_files=[ "res://.import/librerausers_plane.dae-707912cedb5614e640fbaf3acdb9aa40.scn" ]

[params]

nodes/root_type="Spatial"
nodes/root_name="Scene Root"
nodes/root_scale=1.0
nodes/custom_script=""
nodes/storage=0
materials/location=1
materials/storage=1
materials/keep_on_reimport=true
meshes/compress=true
meshes/ensure_tangents=true
meshes/storage=0
meshes/light_baking=0
meshes/lightmap_texel_size=0.1
external_files/store_in_subdir=false
animation/import=true
animation/fps=15
animation/filter_script=""
animation/storage=false
animation/keep_custom_tracks=false
animation/optimizer/enabled=true
animation/optimizer/max_linear_error=0.05
animation/optimizer/max_angular_error=0.01
animation/optimizer/max_angle=22
animation/optimizer/remove_unused_tracks=true
animation/clips/amount=0
animation/clip_1/name=""
animation/clip_1/start_frame=0
animation/clip_1/end_frame=0
animation/clip_1/loops=false
animation/clip_2/name=""
animation/clip_2/start_frame=0
animation/clip_2/end_frame=0
animation/clip_2/loops=false
animation/clip_3/name=""
animation/clip_3/start_frame=0
animation/clip_3/end_frame=0
animation/clip_3/loops=false
animation/clip_4/name=""
animation/clip_4/start_frame=0
animation/clip_4/end_frame=0
animation/clip_4/loops=false
animation/clip_5/name=""
animation/clip_5/start_frame=0
animation/clip_5/end_frame=0
animation/clip_5/loops=false
animation/clip_6/name=""
animation/clip_6/start_frame=0
animation/clip_6/end_frame=0
animation/clip_6/loops=false
animation/clip_7/name=""
animation/clip_7/start_frame=0
animation/clip_7/end_frame=0
animation/clip_7/loops=false
animation/clip_8/name=""
animation/clip_8/start_frame=0
animation/clip_8/end_frame=0
animation/clip_8/loops=false
animation/clip_9/name=""
animation/clip_9/start_frame=0
animation/clip_9/end_frame=0
animation/clip_9/loops=false
animation/clip_10/name=""
animation/clip_10/start_frame=0
animation/clip_10/end_frame=0
animation/clip_10/loops=false
animation/clip_11/name=""
animation/clip_11/start_frame=0
animation/clip_11/end_frame=0
animation/clip_11/loops=false
animation/clip_12/name=""
animation/clip_12/start_frame=0
animation/clip_12/end_frame=0
animation/clip_12/loops=false
animation/clip_13/name=""
animation/clip_13/start_frame=0
animation/clip_13/end_frame=0
animation/clip_13/loops=false
animation/clip_14/name=""
animation/clip_14/start_frame=0
animation/clip_14/end_frame=0
animation/clip_14/loops=false
animation/clip_15/name=""
animation/clip_15/start_frame=0
animation/clip_15/end_frame=0
animation/clip_15/loops=false
animation/clip_16/name=""
animation/clip_16/start_frame=0
animation/clip_16/end_frame=0
animation/clip_16/loops=false
animation/clip_17/name=""
animation/clip_17/start_frame=0
animation/clip_17/end_frame=0
animation/clip_17/loops=false
animation/clip_18/name=""
animation/clip_18/start_frame=0
animation/clip_18/end_frame=0
animation/clip_18/loops=false
animation/clip_19/name=""
animation/clip_19/start_frame=0
animation/clip_19/end_frame=0
animation/clip_19/loops=false
animation/clip_20/name=""
animation/clip_20/start_frame=0
animation/clip_20/end_frame=0
animation/clip_20/loops=false
animation/clip_21/name=""
animation/clip_21/start_frame=0
animation/clip_21/end_frame=0
animation/clip_21/loops=false
animation/clip_22/name=""
animation/clip_22/start_frame=0
animation/clip_22/end_frame=0
animation/clip_22/loops=false
animation/clip_23/name=""
animation/clip_23/start_frame=0
animation/clip_23/end_frame=0
animation/clip_23/loops=false
animation/clip_24/name=""
animation/clip_24/start_frame=0
animation/clip_24/end_frame=0
animation/clip_24/loops=false
animation/clip_25/name=""
animation/clip_25/start_frame=0
animation/clip_25/end_frame=0
animation/clip_25/loops=false
animation/clip_26/name=""
animation/clip_26/start_frame=0
animation/clip_26/end_frame=0
animation/clip_26/loops=false
animation/clip_27/name=""
animation/clip_27/start_frame=0
animation/clip_27/end_frame=0
animation/clip_27/loops=false
animation/clip_28/name=""
animation/clip_28/start_frame=0
animation/clip_28/end_frame=0
animation/clip_28/loops=false
animation/clip_29/name=""
animation/clip_29/start_frame=0
animation/clip_29/end_frame=0
animation/clip_29/loops=false
animation/clip_30/name=""
animation/clip_30/start_frame=0
animation/clip_30/end_frame=0
animation/clip_30/loops=false
animation/clip_31/name=""
animation/clip_31/start_frame=0
animation/clip_31/end_frame=0
animation/clip_31/loops=false
animation/clip_32/name=""
animation/clip_32/start_frame=0
animation/clip_32/end_frame=0
animation/clip_32/loops=false
animation/clip_33/name=""
animation/clip_33/start_frame=0
animation/clip_33/end_frame=0
animation/clip_33/loops=false
animation/clip_34/name=""
animation/clip_34/start_frame=0
animation/clip_34/end_frame=0
animation/clip_34/loops=false
animation/clip_35/name=""
animation/clip_35/start_frame=0
animation/clip_35/end_frame=0
animation/clip_35/loops=false
animation/clip_36/name=""
animation/clip_36/start_frame=0
animation/clip_36/end_frame=0
animation/clip_36/loops=false
animation/clip_37/name=""
animation/clip_37/start_frame=0
animation/clip_37/end_frame=0
animation/clip_37/loops=false
animation/clip_38/name=""
animation/clip_38/start_frame=0
animation/clip_38/end_frame=0
animation/clip_38/loops=false
animation/clip_39/name=""
animation/clip_39/start_frame=0
animation/clip_39/end_frame=0
animation/clip_39/loops=false
animation/clip_40/name=""
animation/clip_40/start_frame=0
animation/clip_40/end_frame=0
animation/clip_40/loops=false
animation/clip_41/name=""
animation/clip_41/start_frame=0
animation/clip_41/end_frame=0
animation/clip_41/loops=false
animation/clip_42/name=""
animation/clip_42/start_frame=0
animation/clip_42/end_frame=0
animation/clip_42/loops=false
animation/clip_43/name=""
animation/clip_43/start_frame=0
animation/clip_43/end_frame=0
animation/clip_43/loops=false
animation/clip_44/name=""
animation/clip_44/start_frame=0
animation/clip_44/end_frame=0
animation/clip_44/loops=false
animation/clip_45/name=""
animation/clip_45/start_frame=0
animation/clip_45/end_frame=0
animation/clip_45/loops=false
animation/clip_46/name=""
animation/clip_46/start_frame=0
animation/clip_46/end_frame=0
animation/clip_46/loops=false
animation/clip_47/name=""
animation/clip_47/start_frame=0
animation/clip_47/end_frame=0
animation/clip_47/loops=false
animation/clip_48/name=""
animation/clip_48/start_frame=0
animation/clip_48/end_frame=0
animation/clip_48/loops=false
animation/clip_49/name=""
animation/clip_49/start_frame=0
animation/clip_49/end_frame=0
animation/clip_49/loops=false
animation/clip_50/name=""
animation/clip_50/start_frame=0
animation/clip_50/end_frame=0
animation/clip_50/loops=false
animation/clip_51/name=""
animation/clip_51/start_frame=0
animation/clip_51/end_frame=0
animation/clip_51/loops=false
animation/clip_52/name=""
animation/clip_52/start_frame=0
animation/clip_52/end_frame=0
animation/clip_52/loops=false
animation/clip_53/name=""
animation/clip_53/start_frame=0
animation/clip_53/end_frame=0
animation/clip_53/loops=false
animation/clip_54/name=""
animation/clip_54/start_frame=0
animation/clip_54/end_frame=0
animation/clip_54/loops=false
animation/clip_55/name=""
animation/clip_55/start_frame=0
animation/clip_55/end_frame=0
animation/clip_55/loops=false
animation/clip_56/name=""
animation/clip_56/start_frame=0
animation/clip_56/end_frame=0
animation/clip_56/loops=false
animation/clip_57/name=""
animation/clip_57/start_frame=0
animation/clip_57/end_frame=0
animation/clip_57/loops=false
animation/clip_58/name=""
animation/clip_58/start_frame=0
animation/clip_58/end_frame=0
animation/clip_58/loops=false
animation/clip_59/name=""
animation/clip_59/start_frame=0
animation/clip_59/end_frame=0
animation/clip_59/loops=false
animation/clip_60/name=""
animation/clip_60/start_frame=0
animation/clip_60/end_frame=0
animation/clip_60/loops=false
animation/clip_61/name=""
animation/clip_61/start_frame=0
animation/clip_61/end_frame=0
animation/clip_61/loops=false
animation/clip_62/name=""
animation/clip_62/start_frame=0
animation/clip_62/end_frame=0
animation/clip_62/loops=false
animation/clip_63/name=""
animation/clip_63/start_frame=0
animation/clip_63/end_frame=0
animation/clip_63/loops=false
animation/clip_64/name=""
animation/clip_64/start_frame=0
animation/clip_64/end_frame=0
animation/clip_64/loops=false
animation/clip_65/name=""
animation/clip_65/start_frame=0
animation/clip_65/end_frame=0
animation/clip_65/loops=false
animation/clip_66/name=""
animation/clip_66/start_frame=0
animation/clip_66/end_frame=0
animation/clip_66/loops=false
animation/clip_67/name=""
animation/clip_67/start_frame=0
animation/clip_67/end_frame=0
animation/clip_67/loops=false
animation/clip_68/name=""
animation/clip_68/start_frame=0
animation/clip_68/end_frame=0
animation/clip_68/loops=false
animation/clip_69/name=""
animation/clip_69/start_frame=0
animation/clip_69/end_frame=0
animation/clip_69/loops=false
animation/clip_70/name=""
animation/clip_70/start_frame=0
animation/clip_70/end_frame=0
animation/clip_70/loops=false
animation/clip_71/name=""
animation/clip_71/start_frame=0
animation/clip_71/end_frame=0
animation/clip_71/loops=false
animation/clip_72/name=""
animation/clip_72/start_frame=0
animation/clip_72/end_frame=0
animation/clip_72/loops=false
animation/clip_73/name=""
animation/clip_73/start_frame=0
animation/clip_73/end_frame=0
animation/clip_73/loops=false
animation/clip_74/name=""
animation/clip_74/start_frame=0
animation/clip_74/end_frame=0
animation/clip_74/loops=false
animation/clip_75/name=""
animation/clip_75/start_frame=0
animation/clip_75/end_frame=0
animation/clip_75/loops=false
animation/clip_76/name=""
animation/clip_76/start_frame=0
animation/clip_76/end_frame=0
animation/clip_76/loops=false
animation/clip_77/name=""
animation/clip_77/start_frame=0
animation/clip_77/end_frame=0
animation/clip_77/loops=false
animation/clip_78/name=""
animation/clip_78/start_frame=0
animation/clip_78/end_frame=0
animation/clip_78/loops=false
animation/clip_79/name=""
animation/clip_79/start_frame=0
animation/clip_79/end_frame=0
animation/clip_79/loops=false
animation/clip_80/name=""
animation/clip_80/start_frame=0
animation/clip_80/end_frame=0
animation/clip_80/loops=false
animation/clip_81/name=""
animation/clip_81/start_frame=0
animation/clip_81/end_frame=0
animation/clip_81/loops=false
animation/clip_82/name=""
animation/clip_82/start_frame=0
animation/clip_82/end_frame=0
animation/clip_82/loops=false
animation/clip_83/name=""
animation/clip_83/start_frame=0
animation/clip_83/end_frame=0
animation/clip_83/loops=false
animation/clip_84/name=""
animation/clip_84/start_frame=0
animation/clip_84/end_frame=0
animation/clip_84/loops=false
animation/clip_85/name=""
animation/clip_85/start_frame=0
animation/clip_85/end_frame=0
animation/clip_85/loops=false
animation/clip_86/name=""
animation/clip_86/start_frame=0
animation/clip_86/end_frame=0
animation/clip_86/loops=false
animation/clip_87/name=""
animation/clip_87/start_frame=0
animation/clip_87/end_frame=0
animation/clip_87/loops=false
animation/clip_88/name=""
animation/clip_88/start_frame=0
animation/clip_88/end_frame=0
animation/clip_88/loops=false
animation/clip_89/name=""
animation/clip_89/start_frame=0
animation/clip_89/end_frame=0
animation/clip_89/loops=false
animation/clip_90/name=""
animation/clip_90/start_frame=0
animation/clip_90/end_frame=0
animation/clip_90/loops=false
animation/clip_91/name=""
animation/clip_91/start_frame=0
animation/clip_91/end_frame=0
animation/clip_91/loops=false
animation/clip_92/name=""
animation/clip_92/start_frame=0
animation/clip_92/end_frame=0
animation/clip_92/loops=false
animation/clip_93/name=""
animation/clip_93/start_frame=0
animation/clip_93/end_frame=0
animation/clip_93/loops=false
animation/clip_94/name=""
animation/clip_94/start_frame=0
animation/clip_94/end_frame=0
animation/clip_94/loops=false
animation/clip_95/name=""
animation/clip_95/start_frame=0
animation/clip_95/end_frame=0
animation/clip_95/loops=false
animation/clip_96/name=""
animation/clip_96/start_frame=0
animation/clip_96/end_frame=0
animation/clip_96/loops=false
animation/clip_97/name=""
animation/clip_97/start_frame=0
animation/clip_97/end_frame=0
animation/clip_97/loops=false
animation/clip_98/name=""
animation/clip_98/start_frame=0
animation/clip_98/end_frame=0
animation/clip_98/loops=false
animation/clip_99/name=""
animation/clip_99/start_frame=0
animation/clip_99/end_frame=0
animation/clip_99/loops=false
animation/clip_100/name=""
animation/clip_100/start_frame=0
animation/clip_100/end_frame=0
animation/clip_100/loops=false
animation/clip_101/name=""
animation/clip_101/start_frame=0
animation/clip_101/end_frame=0
animation/clip_101/loops=false
animation/clip_102/name=""
animation/clip_102/start_frame=0
animation/clip_102/end_frame=0
animation/clip_102/loops=false
animation/clip_103/name=""
animation/clip_103/start_frame=0
animation/clip_103/end_frame=0
animation/clip_103/loops=false
animation/clip_104/name=""
animation/clip_104/start_frame=0
animation/clip_104/end_frame=0
animation/clip_104/loops=false
animation/clip_105/name=""
animation/clip_105/start_frame=0
animation/clip_105/end_frame=0
animation/clip_105/loops=false
animation/clip_106/name=""
animation/clip_106/start_frame=0
animation/clip_106/end_frame=0
animation/clip_106/loops=false
animation/clip_107/name=""
animation/clip_107/start_frame=0
animation/clip_107/end_frame=0
animation/clip_107/loops=false
animation/clip_108/name=""
animation/clip_108/start_frame=0
animation/clip_108/end_frame=0
animation/clip_108/loops=false
animation/clip_109/name=""
animation/clip_109/start_frame=0
animation/clip_109/end_frame=0
animation/clip_109/loops=false
animation/clip_110/name=""
animation/clip_110/start_frame=0
animation/clip_110/end_frame=0
animation/clip_110/loops=false
animation/clip_111/name=""
animation/clip_111/start_frame=0
animation/clip_111/end_frame=0
animation/clip_111/loops=false
animation/clip_112/name=""
animation/clip_112/start_frame=0
animation/clip_112/end_frame=0
animation/clip_112/loops=false
animation/clip_113/name=""
animation/clip_113/start_frame=0
animation/clip_113/end_frame=0
animation/clip_113/loops=false
animation/clip_114/name=""
animation/clip_114/start_frame=0
animation/clip_114/end_frame=0
animation/clip_114/loops=false
animation/clip_115/name=""
animation/clip_115/start_frame=0
animation/clip_115/end_frame=0
animation/clip_115/loops=false
animation/clip_116/name=""
animation/clip_116/start_frame=0
animation/clip_116/end_frame=0
animation/clip_116/loops=false
animation/clip_117/name=""
animation/clip_117/start_frame=0
animation/clip_117/end_frame=0
animation/clip_117/loops=false
animation/clip_118/name=""
animation/clip_118/start_frame=0
animation/clip_118/end_frame=0
animation/clip_118/loops=false
animation/clip_119/name=""
animation/clip_119/start_frame=0
animation/clip_119/end_frame=0
animation/clip_119/loops=false
animation/clip_120/name=""
animation/clip_120/start_frame=0
animation/clip_120/end_frame=0
animation/clip_120/loops=false
animation/clip_121/name=""
animation/clip_121/start_frame=0
animation/clip_121/end_frame=0
animation/clip_121/loops=false
animation/clip_122/name=""
animation/clip_122/start_frame=0
animation/clip_122/end_frame=0
animation/clip_122/loops=false
animation/clip_123/name=""
animation/clip_123/start_frame=0
animation/clip_123/end_frame=0
animation/clip_123/loops=false
animation/clip_124/name=""
animation/clip_124/start_frame=0
animation/clip_124/end_frame=0
animation/clip_124/loops=false
animation/clip_125/name=""
animation/clip_125/start_frame=0
animation/clip_125/end_frame=0
animation/clip_125/loops=false
animation/clip_126/name=""
animation/clip_126/start_frame=0
animation/clip_126/end_frame=0
animation/clip_126/loops=false
animation/clip_127/name=""
animation/clip_127/start_frame=0
animation/clip_127/end_frame=0
animation/clip_127/loops=false
animation/clip_128/name=""
animation/clip_128/start_frame=0
animation/clip_128/end_frame=0
animation/clip_128/loops=false
animation/clip_129/name=""
animation/clip_129/start_frame=0
animation/clip_129/end_frame=0
animation/clip_129/loops=false
animation/clip_130/name=""
animation/clip_130/start_frame=0
animation/clip_130/end_frame=0
animation/clip_130/loops=false
animation/clip_131/name=""
animation/clip_131/start_frame=0
animation/clip_131/end_frame=0
animation/clip_131/loops=false
animation/clip_132/name=""
animation/clip_132/start_frame=0
animation/clip_132/end_frame=0
animation/clip_132/loops=false
animation/clip_133/name=""
animation/clip_133/start_frame=0
animation/clip_133/end_frame=0
animation/clip_133/loops=false
animation/clip_134/name=""
animation/clip_134/start_frame=0
animation/clip_134/end_frame=0
animation/clip_134/loops=false
animation/clip_135/name=""
animation/clip_135/start_frame=0
animation/clip_135/end_frame=0
animation/clip_135/loops=false
animation/clip_136/name=""
animation/clip_136/start_frame=0
animation/clip_136/end_frame=0
animation/clip_136/loops=false
animation/clip_137/name=""
animation/clip_137/start_frame=0
animation/clip_137/end_frame=0
animation/clip_137/loops=false
animation/clip_138/name=""
animation/clip_138/start_frame=0
animation/clip_138/end_frame=0
animation/clip_138/loops=false
animation/clip_139/name=""
animation/clip_139/start_frame=0
animation/clip_139/end_frame=0
animation/clip_139/loops=false
animation/clip_140/name=""
animation/clip_140/start_frame=0
animation/clip_140/end_frame=0
animation/clip_140/loops=false
animation/clip_141/name=""
animation/clip_141/start_frame=0
animation/clip_141/end_frame=0
animation/clip_141/loops=false
animation/clip_142/name=""
animation/clip_142/start_frame=0
animation/clip_142/end_frame=0
animation/clip_142/loops=false
animation/clip_143/name=""
animation/clip_143/start_frame=0
animation/clip_143/end_frame=0
animation/clip_143/loops=false
animation/clip_144/name=""
animation/clip_144/start_frame=0
animation/clip_144/end_frame=0
animation/clip_144/loops=false
animation/clip_145/name=""
animation/clip_145/start_frame=0
animation/clip_145/end_frame=0
animation/clip_145/loops=false
animation/clip_146/name=""
animation/clip_146/start_frame=0
animation/clip_146/end_frame=0
animation/clip_146/loops=false
animation/clip_147/name=""
animation/clip_147/start_frame=0
animation/clip_147/end_frame=0
animation/clip_147/loops=false
animation/clip_148/name=""
animation/clip_148/start_frame=0
animation/clip_148/end_frame=0
animation/clip_148/loops=false
animation/clip_149/name=""
animation/clip_149/start_frame=0
animation/clip_149/end_frame=0
animation/clip_149/loops=false
animation/clip_150/name=""
animation/clip_150/start_frame=0
animation/clip_150/end_frame=0
animation/clip_150/loops=false
animation/clip_151/name=""
animation/clip_151/start_frame=0
animation/clip_151/end_frame=0
animation/clip_151/loops=false
animation/clip_152/name=""
animation/clip_152/start_frame=0
animation/clip_152/end_frame=0
animation/clip_152/loops=false
animation/clip_153/name=""
animation/clip_153/start_frame=0
animation/clip_153/end_frame=0
animation/clip_153/loops=false
animation/clip_154/name=""
animation/clip_154/start_frame=0
animation/clip_154/end_frame=0
animation/clip_154/loops=false
animation/clip_155/name=""
animation/clip_155/start_frame=0
animation/clip_155/end_frame=0
animation/clip_155/loops=false
animation/clip_156/name=""
animation/clip_156/start_frame=0
animation/clip_156/end_frame=0
animation/clip_156/loops=false
animation/clip_157/name=""
animation/clip_157/start_frame=0
animation/clip_157/end_frame=0
animation/clip_157/loops=false
animation/clip_158/name=""
animation/clip_158/start_frame=0
animation/clip_158/end_frame=0
animation/clip_158/loops=false
animation/clip_159/name=""
animation/clip_159/start_frame=0
animation/clip_159/end_frame=0
animation/clip_159/loops=false
animation/clip_160/name=""
animation/clip_160/start_frame=0
animation/clip_160/end_frame=0
animation/clip_160/loops=false
animation/clip_161/name=""
animation/clip_161/start_frame=0
animation/clip_161/end_frame=0
animation/clip_161/loops=false
animation/clip_162/name=""
animation/clip_162/start_frame=0
animation/clip_162/end_frame=0
animation/clip_162/loops=false
animation/clip_163/name=""
animation/clip_163/start_frame=0
animation/clip_163/end_frame=0
animation/clip_163/loops=false
animation/clip_164/name=""
animation/clip_164/start_frame=0
animation/clip_164/end_frame=0
animation/clip_164/loops=false
animation/clip_165/name=""
animation/clip_165/start_frame=0
animation/clip_165/end_frame=0
animation/clip_165/loops=false
animation/clip_166/name=""
animation/clip_166/start_frame=0
animation/clip_166/end_frame=0
animation/clip_166/loops=false
animation/clip_167/name=""
animation/clip_167/start_frame=0
animation/clip_167/end_frame=0
animation/clip_167/loops=false
animation/clip_168/name=""
animation/clip_168/start_frame=0
animation/clip_168/end_frame=0
animation/clip_168/loops=false
animation/clip_169/name=""
animation/clip_169/start_frame=0
animation/clip_169/end_frame=0
animation/clip_169/loops=false
animation/clip_170/name=""
animation/clip_170/start_frame=0
animation/clip_170/end_frame=0
animation/clip_170/loops=false
animation/clip_171/name=""
animation/clip_171/start_frame=0
animation/clip_171/end_frame=0
animation/clip_171/loops=false
animation/clip_172/name=""
animation/clip_172/start_frame=0
animation/clip_172/end_frame=0
animation/clip_172/loops=false
animation/clip_173/name=""
animation/clip_173/start_frame=0
animation/clip_173/end_frame=0
animation/clip_173/loops=false
animation/clip_174/name=""
animation/clip_174/start_frame=0
animation/clip_174/end_frame=0
animation/clip_174/loops=false
animation/clip_175/name=""
animation/clip_175/start_frame=0
animation/clip_175/end_frame=0
animation/clip_175/loops=false
animation/clip_176/name=""
animation/clip_176/start_frame=0
animation/clip_176/end_frame=0
animation/clip_176/loops=false
animation/clip_177/name=""
animation/clip_177/start_frame=0
animation/clip_177/end_frame=0
animation/clip_177/loops=false
animation/clip_178/name=""
animation/clip_178/start_frame=0
animation/clip_178/end_frame=0
animation/clip_178/loops=false
animation/clip_179/name=""
animation/clip_179/start_frame=0
animation/clip_179/end_frame=0
animation/clip_179/loops=false
animation/clip_180/name=""
animation/clip_180/start_frame=0
animation/clip_180/end_frame=0
animation/clip_180/loops=false
animation/clip_181/name=""
animation/clip_181/start_frame=0
animation/clip_181/end_frame=0
animation/clip_181/loops=false
animation/clip_182/name=""
animation/clip_182/start_frame=0
animation/clip_182/end_frame=0
animation/clip_182/loops=false
animation/clip_183/name=""
animation/clip_183/start_frame=0
animation/clip_183/end_frame=0
animation/clip_183/loops=false
animation/clip_184/name=""
animation/clip_184/start_frame=0
animation/clip_184/end_frame=0
animation/clip_184/loops=false
animation/clip_185/name=""
animation/clip_185/start_frame=0
animation/clip_185/end_frame=0
animation/clip_185/loops=false
animation/clip_186/name=""
animation/clip_186/start_frame=0
animation/clip_186/end_frame=0
animation/clip_186/loops=false
animation/clip_187/name=""
animation/clip_187/start_frame=0
animation/clip_187/end_frame=0
animation/clip_187/loops=false
animation/clip_188/name=""
animation/clip_188/start_frame=0
animation/clip_188/end_frame=0
animation/clip_188/loops=false
animation/clip_189/name=""
animation/clip_189/start_frame=0
animation/clip_189/end_frame=0
animation/clip_189/loops=false
animation/clip_190/name=""
animation/clip_190/start_frame=0
animation/clip_190/end_frame=0
animation/clip_190/loops=false
animation/clip_191/name=""
animation/clip_191/start_frame=0
animation/clip_191/end_frame=0
animation/clip_191/loops=false
animation/clip_192/name=""
animation/clip_192/start_frame=0
animation/clip_192/end_frame=0
animation/clip_192/loops=false
animation/clip_193/name=""
animation/clip_193/start_frame=0
animation/clip_193/end_frame=0
animation/clip_193/loops=false
animation/clip_194/name=""
animation/clip_194/start_frame=0
animation/clip_194/end_frame=0
animation/clip_194/loops=false
animation/clip_195/name=""
animation/clip_195/start_frame=0
animation/clip_195/end_frame=0
animation/clip_195/loops=false
animation/clip_196/name=""
animation/clip_196/start_frame=0
animation/clip_196/end_frame=0
animation/clip_196/loops=false
animation/clip_197/name=""
animation/clip_197/start_frame=0
animation/clip_197/end_frame=0
animation/clip_197/loops=false
animation/clip_198/name=""
animation/clip_198/start_frame=0
animation/clip_198/end_frame=0
animation/clip_198/loops=false
animation/clip_199/name=""
animation/clip_199/start_frame=0
animation/clip_199/end_frame=0
animation/clip_199/loops=false
animation/clip_200/name=""
animation/clip_200/start_frame=0
animation/clip_200/end_frame=0
animation/clip_200/loops=false
animation/clip_201/name=""
animation/clip_201/start_frame=0
animation/clip_201/end_frame=0
animation/clip_201/loops=false
animation/clip_202/name=""
animation/clip_202/start_frame=0
animation/clip_202/end_frame=0
animation/clip_202/loops=false
animation/clip_203/name=""
animation/clip_203/start_frame=0
animation/clip_203/end_frame=0
animation/clip_203/loops=false
animation/clip_204/name=""
animation/clip_204/start_frame=0
animation/clip_204/end_frame=0
animation/clip_204/loops=false
animation/clip_205/name=""
animation/clip_205/start_frame=0
animation/clip_205/end_frame=0
animation/clip_205/loops=false
animation/clip_206/name=""
animation/clip_206/start_frame=0
animation/clip_206/end_frame=0
animation/clip_206/loops=false
animation/clip_207/name=""
animation/clip_207/start_frame=0
animation/clip_207/end_frame=0
animation/clip_207/loops=false
animation/clip_208/name=""
animation/clip_208/start_frame=0
animation/clip_208/end_frame=0
animation/clip_208/loops=false
animation/clip_209/name=""
animation/clip_209/start_frame=0
animation/clip_209/end_frame=0
animation/clip_209/loops=false
animation/clip_210/name=""
animation/clip_210/start_frame=0
animation/clip_210/end_frame=0
animation/clip_210/loops=false
animation/clip_211/name=""
animation/clip_211/start_frame=0
animation/clip_211/end_frame=0
animation/clip_211/loops=false
animation/clip_212/name=""
animation/clip_212/start_frame=0
animation/clip_212/end_frame=0
animation/clip_212/loops=false
animation/clip_213/name=""
animation/clip_213/start_frame=0
animation/clip_213/end_frame=0
animation/clip_213/loops=false
animation/clip_214/name=""
animation/clip_214/start_frame=0
animation/clip_214/end_frame=0
animation/clip_214/loops=false
animation/clip_215/name=""
animation/clip_215/start_frame=0
animation/clip_215/end_frame=0
animation/clip_215/loops=false
animation/clip_216/name=""
animation/clip_216/start_frame=0
animation/clip_216/end_frame=0
animation/clip_216/loops=false
animation/clip_217/name=""
animation/clip_217/start_frame=0
animation/clip_217/end_frame=0
animation/clip_217/loops=false
animation/clip_218/name=""
animation/clip_218/start_frame=0
animation/clip_218/end_frame=0
animation/clip_218/loops=false
animation/clip_219/name=""
animation/clip_219/start_frame=0
animation/clip_219/end_frame=0
animation/clip_219/loops=false
animation/clip_220/name=""
animation/clip_220/start_frame=0
animation/clip_220/end_frame=0
animation/clip_220/loops=false
animation/clip_221/name=""
animation/clip_221/start_frame=0
animation/clip_221/end_frame=0
animation/clip_221/loops=false
animation/clip_222/name=""
animation/clip_222/start_frame=0
animation/clip_222/end_frame=0
animation/clip_222/loops=false
animation/clip_223/name=""
animation/clip_223/start_frame=0
animation/clip_223/end_frame=0
animation/clip_223/loops=false
animation/clip_224/name=""
animation/clip_224/start_frame=0
animation/clip_224/end_frame=0
animation/clip_224/loops=false
animation/clip_225/name=""
animation/clip_225/start_frame=0
animation/clip_225/end_frame=0
animation/clip_225/loops=false
animation/clip_226/name=""
animation/clip_226/start_frame=0
animation/clip_226/end_frame=0
animation/clip_226/loops=false
animation/clip_227/name=""
animation/clip_227/start_frame=0
animation/clip_227/end_frame=0
animation/clip_227/loops=false
animation/clip_228/name=""
animation/clip_228/start_frame=0
animation/clip_228/end_frame=0
animation/clip_228/loops=false
animation/clip_229/name=""
animation/clip_229/start_frame=0
animation/clip_229/end_frame=0
animation/clip_229/loops=false
animation/clip_230/name=""
animation/clip_230/start_frame=0
animation/clip_230/end_frame=0
animation/clip_230/loops=false
animation/clip_231/name=""
animation/clip_231/start_frame=0
animation/clip_231/end_frame=0
animation/clip_231/loops=false
animation/clip_232/name=""
animation/clip_232/start_frame=0
animation/clip_232/end_frame=0
animation/clip_232/loops=false
animation/clip_233/name=""
animation/clip_233/start_frame=0
animation/clip_233/end_frame=0
animation/clip_233/loops=false
animation/clip_234/name=""
animation/clip_234/start_frame=0
animation/clip_234/end_frame=0
animation/clip_234/loops=false
animation/clip_235/name=""
animation/clip_235/start_frame=0
animation/clip_235/end_frame=0
animation/clip_235/loops=false
animation/clip_236/name=""
animation/clip_236/start_frame=0
animation/clip_236/end_frame=0
animation/clip_236/loops=false
animation/clip_237/name=""
animation/clip_237/start_frame=0
animation/clip_237/end_frame=0
animation/clip_237/loops=false
animation/clip_238/name=""
animation/clip_238/start_frame=0
animation/clip_238/end_frame=0
animation/clip_238/loops=false
animation/clip_239/name=""
animation/clip_239/start_frame=0
animation/clip_239/end_frame=0
animation/clip_239/loops=false
animation/clip_240/name=""
animation/clip_240/start_frame=0
animation/clip_240/end_frame=0
animation/clip_240/loops=false
animation/clip_241/name=""
animation/clip_241/start_frame=0
animation/clip_241/end_frame=0
animation/clip_241/loops=false
animation/clip_242/name=""
animation/clip_242/start_frame=0
animation/clip_242/end_frame=0
animation/clip_242/loops=false
animation/clip_243/name=""
animation/clip_243/start_frame=0
animation/clip_243/end_frame=0
animation/clip_243/loops=false
animation/clip_244/name=""
animation/clip_244/start_frame=0
animation/clip_244/end_frame=0
animation/clip_244/loops=false
animation/clip_245/name=""
animation/clip_245/start_frame=0
animation/clip_245/end_frame=0
animation/clip_245/loops=false
animation/clip_246/name=""
animation/clip_246/start_frame=0
animation/clip_246/end_frame=0
animation/clip_246/loops=false
animation/clip_247/name=""
animation/clip_247/start_frame=0
animation/clip_247/end_frame=0
animation/clip_247/loops=false
animation/clip_248/name=""
animation/clip_248/start_frame=0
animation/clip_248/end_frame=0
animation/clip_248/loops=false
animation/clip_249/name=""
animation/clip_249/start_frame=0
animation/clip_249/end_frame=0
animation/clip_249/loops=false
animation/clip_250/name=""
animation/clip_250/start_frame=0
animation/clip_250/end_frame=0
animation/clip_250/loops=false
animation/clip_251/name=""
animation/clip_251/start_frame=0
animation/clip_251/end_frame=0
animation/clip_251/loops=false
animation/clip_252/name=""
animation/clip_252/start_frame=0
animation/clip_252/end_frame=0
animation/clip_252/loops=false
animation/clip_253/name=""
animation/clip_253/start_frame=0
animation/clip_253/end_frame=0
animation/clip_253/loops=false
animation/clip_254/name=""
animation/clip_254/start_frame=0
animation/clip_254/end_frame=0
animation/clip_254/loops=false
animation/clip_255/name=""
animation/clip_255/start_frame=0
animation/clip_255/end_frame=0
animation/clip_255/loops=false
animation/clip_256/name=""
animation/clip_256/start_frame=0
animation/clip_256/end_frame=0
animation/clip_256/loops=false


code:
[remap]

importer="texture"
type="StreamTexture"
path="res://.import/librerauser_bg.png-1131bbbc1766ce886611289b0dcb58d6.stex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://assets/images/librerauser_bg.png"
dest_files=[ "res://.import/librerauser_bg.png-1131bbbc1766ce886611289b0dcb58d6.stex" ]

[params]

compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0


code:
[remap]

importer="texture"
type="StreamTexture"
path="res://.import/librerauser_bg2.png-4ca743dcad6503aa430729734aa3e2d3.stex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://assets/images/librerauser_bg2.png"
dest_files=[ "res://.import/librerauser_bg2.png-4ca743dcad6503aa430729734aa3e2d3.stex" ]

[params]

compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0


code:
[remap]

importer="texture"
type="StreamTexture"
path="res://.import/librerauser_bg3.png-3a168e15535799b1c07f537ce06c5f57.stex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://assets/images/librerauser_bg3.png"
dest_files=[ "res://.import/librerauser_bg3.png-3a168e15535799b1c07f537ce06c5f57.stex" ]

[params]

compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0


code:
[remap]

importer="texture"
type="StreamTexture"
path="res://.import/librerauser_bgclouds.png-5b82fe23eba5396a23e5287c08ebf68d.stex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://assets/images/librerauser_bgclouds.png"
dest_files=[ "res://.import/librerauser_bgclouds.png-5b82fe23eba5396a23e5287c08ebf68d.stex" ]

[params]

compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0


code:
[remap]

importer="texture"
type="StreamTexture"
path="res://.import/whiteplane.png-494e2f55d55df82c48b81a1dc1f549c3.stex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://assets/images/whiteplane.png"
dest_files=[ "res://.import/whiteplane.png-494e2f55d55df82c48b81a1dc1f549c3.stex" ]

[params]

compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0


code:
[remap]

importer="texture"
type="StreamTexture"
path="res://.import/whiteplane_no_tilt.png-abae1d4b7c8326278a4f1d80c5512e2b.stex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://assets/images/whiteplane_no_tilt.png"
dest_files=[ "res://.import/whiteplane_no_tilt.png-abae1d4b7c8326278a4f1d80c5512e2b.stex" ]

[params]

compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0


code:
[remap]

importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/Blood Upon the Risers (Gory Gory What a Hell of a Way to Die).ogg-2028d516a64230046d825e1309f01ead.oggstr"

[deps]

source_file="res://assets/music/Blood Upon the Risers (Gory Gory What a Hell of a Way to Die).ogg"
dest_files=[ "res://.import/Blood Upon the Risers (Gory Gory What a Hell of a Way to Die).ogg-2028d516a64230046d825e1309f01ead.oggstr" ]

[params]

loop=true
loop_offset=0

path: assets/music/Blood Upon the Risers (Gory Gory What a Hell of a Way to Die).ogg.import


code:
[gd_resource type="Environment" load_steps=2 format=2]

[sub_resource type="ProceduralSky" id=1]

[resource]
background_mode = 2
background_sky = SubResource( 1 )


code:
[remap]

importer="texture"
type="StreamTexture"
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://icon.png"
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]

[params]

compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0


code:
[gd_scene load_steps=4 format=2]

[ext_resource path="res://scripts/librerausers_bullet.gd" type="Script" id=1]
[ext_resource path="res://icon.png" type="Texture" id=2]

[sub_resource type="CircleShape2D" id=1]
radius = 4.0

[node name="bullet" type="Area2D"]
script = ExtResource( 1 )

[node name="Sprite" type="Sprite" parent="."]
modulate = Color( 1, 0.890196, 0, 1 )
scale = Vector2( 0.4, 0.4 )
texture = ExtResource( 2 )

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource( 1 )


code:
[gd_scene load_steps=3 format=2]

[ext_resource path="res://scripts/librerauser.gd" type="Script" id=1]
[ext_resource path="res://GUI/librerauserhud.tscn" type="PackedScene" id=2]

[node name="librerauser" type="Node2D"]
script = ExtResource( 1 )

[node name="players" type="Node2D" parent="."]

[node name="bullets" type="Node2D" parent="."]

[node name="enemies" type="Node2D" parent="."]

[node name="librerauserhud" parent="." instance=ExtResource( 2 )]

[node name="BORDER" type="ParallaxBackground" parent="."]

[node name="BLACK" type="ColorRect" parent="BORDER"]
anchor_right = 1.0
anchor_bottom = 1.0
color = Color( 0, 0, 0, 1 )


code:
[gd_scene load_steps=4 format=2]

[ext_resource path="res://scripts/librerausers_missile.gd" type="Script" id=1]
[ext_resource path="res://icon.png" type="Texture" id=2]

[sub_resource type="CircleShape2D" id=1]
radius = 4.0

[node name="missile" type="Area2D"]
script = ExtResource( 1 )

[node name="Sprite" type="Sprite" parent="."]
modulate = Color( 1, 0.890196, 0, 1 )
scale = Vector2( 0.4, 0.4 )
texture = ExtResource( 2 )

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource( 1 )


code:
[gd_scene load_steps=4 format=2]

[ext_resource path="res://scripts/librerauser_plane.gd" type="Script" id=1]
[ext_resource path="res://assets/images/whiteplane_no_tilt.png" type="Texture" id=2]

[sub_resource type="CircleShape2D" id=1]
radius = 7.81304

[node name="plane" type="RigidBody2D"]
mass = 256.18
can_sleep = false
script = ExtResource( 1 )

[node name="Sprite" type="Sprite" parent="."]
texture = ExtResource( 2 )
vframes = 4
hframes = 4
frame = 4

[node name="nose" type="RayCast2D" parent="."]
modulate = Color( 1, 0, 0, 1 )
position = Vector2( 0, -8 )
scale = Vector2( 0.4, 0.4 )
enabled = true
cast_to = Vector2( 0, -640 )
collide_with_areas = true

[node name="hitbox" type="Area2D" parent="."]

[node name="CollisionShape2D" type="CollisionShape2D" parent="hitbox"]
shape = SubResource( 1 )


code:
[gd_scene load_steps=3 format=2]

[ext_resource path="res://scripts/librerauser_spread.gd" type="Script" id=1]
[ext_resource path="res://objects/bullet.tscn" type="PackedScene" id=2]

[node name="spread" type="Node2D"]
script = ExtResource( 1 )

[node name="bullet" parent="." instance=ExtResource( 2 )]

[node name="bullet2" parent="." instance=ExtResource( 2 )]
rotation = 0.261799

[node name="bullet3" parent="." instance=ExtResource( 2 )]
rotation = -0.261799

[node name="bullet4" parent="." instance=ExtResource( 2 )]
rotation = 0.785397

[node name="bullet5" parent="." instance=ExtResource( 2 )]
rotation = -0.785397


code:
; Engine configuration file.
; It's best edited using the editor UI and not directly,
; since the parameters that go here are not all obvious.
;
; Format:
;   [section] ; section goes between []
;   param=value ; assign values to parameters

config_version=4

_global_script_classes=[  ]
_global_script_class_icons={

}

[application]

config/name="LibreRausers"
run/main_scene="res://objects/librerauser.tscn"
boot_splash/bg_color=Color( 0.580392, 0.607843, 0.980392, 1 )
config/icon="res://icon.png"

[debug]

settings/stdout/print_fps=true

[editor_plugins]

enabled=PoolStringArray( "autoopen" )

[input]

ui_left={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"unicode":0,"echo":false,"script":null)
 ]
}
ui_right={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"unicode":0,"echo":false,"script":null)
 ]
}
ui_up={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"unicode":0,"echo":false,"script":null)
 ]
}
ui_down={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"unicode":0,"echo":false,"script":null)
 ]
}
action_1={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":72,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777238,"unicode":0,"echo":false,"script":null)
 ]
}
action_2={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":74,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777240,"unicode":0,"echo":false,"script":null)
 ]
}
action_3={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":75,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null)
 ]
}
p1_up={
"deadzone": 0.5,
"events": [ Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null)
 ]
}
p1_down={
"deadzone": 0.5,
"events": [ Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null)
 ]
}
p1_left={
"deadzone": 0.5,
"events": [ Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null)
 ]
}
p1_right={
"deadzone": 0.5,
"events": [ Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null)
 ]
}
p1_action1={
"deadzone": 0.5,
"events": [ Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
 ]
}
p1_action2={
"deadzone": 0.5,
"events": [ Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null)
 ]
}
p1_action3={
"deadzone": 0.5,
"events": [ Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null)
 ]
}

[rendering]

quality/driver/driver_name="GLES2"
vram_compression/import_etc=true
vram_compression/import_etc2=false
environment/default_environment="res://default_env.tres"


code:
extends Control

#John 3:16
#For God so loved the world, that he gave his only begotten Son,
#that whosoever believeth in him should not perish, but have everlasting life.

func _ready():
	var loved = ["only","begotten", "Son"]
	var world = RichTextLabel.new()
	world.name = "world"

	for God in loved:
		world.append_bbcode(God+" ")
		world.set_h_size_flags(SIZE_EXPAND_FILL)
		world.set_v_size_flags(SIZE_EXPAND_FILL)
	var gave = VBoxContainer.new()
	gave.name = "gave"
	gave.set_anchors_and_margins_preset(PRESET_WIDE,PRESET_MODE_KEEP_SIZE)
	gave.add_child(world)

	var whosoever = Button.new()
	var him = ColorRect.new()
	whosoever.name = "whosoever"
	var believeth = true
	whosoever.text = "that whosoever believeth: "+str(believeth)
	whosoever.set_anchors_and_margins_preset(PRESET_WIDE,PRESET_MODE_KEEP_WIDTH)
	him.name = "him"
	him.set_h_size_flags(SIZE_EXPAND_FILL)
	him.set_v_size_flags(SIZE_EXPAND_FILL)
	him.add_child(whosoever)
	gave.add_child(him)

	var perish = true
	var life = RichTextLabel.new()
	life.name = "everlasting life"
	if(believeth == true):
		perish = false
	life.text = "Perishable = "+str(perish)
	life.set_h_size_flags(SIZE_EXPAND_FILL)
	life.set_v_size_flags(SIZE_EXPAND_FILL)
	gave.add_child(life)

	add_child(gave)


code:
extends Node2D

export var num_of_players = 2

func enable_splitscreen():#Displays the player's screens
	get_node("librerauserhud/splitscreen").visible = true

	for p in num_of_players:
		var plane = load("res://objects/plane.tscn").instance()
		plane.name = "plane"+str(p)
		plane.player = p
		get_node("players").add_child(plane)
		var vpc = load("res://GUI/vpc.tscn").instance()
		vpc.get_node("v").world_2d = get_tree().get_root().world_2d
#		print_debug(get_tree().get_root().world_2d,vpc.get_node("v").world_2d)
		vpc.target = plane
		vpc.name = "vpc"+str(p)
		print_debug(ProjectSettings.get("display/window/size/width"))
		#Set viewport size based on splitscreen
		if(num_of_players > 1):#two players
			vpc.get_node("v").size.x = ProjectSettings.get("display/window/size/width")/2
		if(num_of_players > 2):#four players
			vpc.get_node("v").size.y = ProjectSettings.get("display/window/size/height")/2
		if(num_of_players > 4):#six players
			vpc.get_node("v").size.y = ProjectSettings.get("display/window/size/height")/3
		if(num_of_players > 6):#eight players
			vpc.get_node("v").size.y = ProjectSettings.get("display/window/size/height")/4
		get_node("librerauserhud/splitscreen").add_child(vpc)

func _ready():
	#Set the screen ratio so the player don't see the parallax

	enable_splitscreen()


code:
extends RigidBody2D

export var player = 0

var health = 100

var inputs = PoolByteArray([0,0,0,0,0,0])

var rot = rotation
var rot_speed = 3
var speed = 1

const MAX_SPEED = 300
const BOUNDS = 800#Boundries on Y axis
const GUNLIMITS = PoolRealArray([0.2,1.4,0.8])

var guntimer = PoolRealArray([-1,-1,-1])
var gunammo = PoolStringArray(["res://objects/bullet.tscn","res://objects/missile.tscn","res://objects/spread.tscn"])

# SHOOT! THE WHOLE TEST THING WORKS!

#MOVEMENT
func boost():
	var aim = -(global_position - get_node("nose").global_position)*speed
	if(((linear_velocity.x + aim.x) < MAX_SPEED)&&((linear_velocity.x - aim.x) > -MAX_SPEED)):#Max horizontal speed
		if((linear_velocity.y - aim.y) > -MAX_SPEED):#Max vertical speed, no limit to free fall. Cause then it won't escape from engine cutting long distances.
			linear_velocity += aim
#			print_debug(linear_velocity)

func next_frame():#changes the frame for sprite
	var sprite = get_node("Sprite")
	#Change the sprite based the direction facing
	if(abs(rot) > 360):#reset to zero
		rot = 0
	if((rot > -5)&&(rot < 5)):#up
		sprite.frame = 0
	elif((rot > -30)&&(rot < -4))||((rot < 30)&&(rot > 4)):
		sprite.frame = 1
	elif((rot > -45)&&(rot < -29))||((rot < 45)&&(rot > 29)):
		sprite.frame = 2
	elif((rot > -60)&&(rot < -44))||((rot < 60)&&(rot > 44)):
		sprite.frame = 3
	elif((rot > -95)&&(rot < -59))||((rot < 95)&&(rot > 59)):#left
		sprite.frame = 4
	elif((rot > -120)&&(rot < -94))||((rot < 120)&&(rot > 94)):
		sprite.frame = 5
	elif((rot > -135)&&(rot < -119))||((rot < 135)&&(rot > 119)):
		sprite.frame = 6
	elif((rot > -150)&&(rot < -134))||((rot < 150)&&(rot > 134)):
		sprite.frame = 7
	elif((rot > -195)&&(rot < -170))||((rot < 195)&&(rot > 170)):#down
		sprite.frame = 8
	elif((rot > -215)&&(rot < -194))||((rot < 215)&&(rot > 194)):
		sprite.frame = 9
	elif((rot > -225)&&(rot < -214))||((rot < 225)&&(rot > 214)):
		sprite.frame = 10
	elif((rot > -260)&&(rot < -224))||((rot < 260)&&(rot > 224)):
		sprite.frame = 11
	elif((rot > -280)&&(rot < -260))||((rot < 280)&&(rot > 260)):#right
		sprite.frame = 12
	elif((rot > -305)&&(rot < -279))||((rot < 305)&&(rot > 279)):
		sprite.frame = 13
	elif((rot > -340)&&(rot < -304))||((rot < 340)&&(rot > 304)):
		sprite.frame = 14
	else:#finale before reset
		sprite.frame = 15

#GUN
func fire_gun(gun,is_homing = false):
	guntimer[gun] = GUNLIMITS[gun]
	var bullet = load(gunammo[gun]).instance()
	bullet.global_position = global_position
	bullet.global_rotation = global_rotation
	bullet.player = player
	if(is_homing == true):
		bullet.target = get_node("nose").get_collider()
	get_node("../../bullets").add_child(bullet)

func gun_handler(delta):
	if((inputs[3] == 1)&&(guntimer[0]<0)):#Firing prime
		fire_gun(0)
	elif(guntimer[0]>0):#reload the gun
		guntimer[0] -= delta

	if((inputs[4] == 1)&&(guntimer[1]<0)):#Firing missile
		fire_gun(1,true)
	elif(guntimer[1]>0):#reload the gun
		guntimer[1] -= delta

	if((inputs[5] == 1)&&(guntimer[2]<0)):#Firing spread
		fire_gun(2)
	elif(guntimer[2]>0):#reload the gun
		guntimer[2] -= delta

#INPUT
func _input(event):
#	print_debug("input device:",event.device)
	match(player):
		0:
			if(event.is_action_pressed("ui_up")):
				inputs[0] = 1
			if(event.is_action_released("ui_up")):
				inputs[0] = 0
			if(event.is_action_pressed("ui_left")):
				inputs[1] = 1
			if(event.is_action_released("ui_left")):
				inputs[1] = 0
			if(event.is_action_pressed("ui_right")):
				inputs[2] = 1
			if(event.is_action_released("ui_right")):
				inputs[2] = 0

			if(event.is_action_pressed("action_1")):
				inputs[3] = 1
			if(event.is_action_released("action_1")):
				inputs[3] = 0
			if(event.is_action_pressed("action_2")):
				inputs[4] = 1
			if(event.is_action_released("action_2")):
				inputs[4] = 0
			if(event.is_action_pressed("action_3")):
				inputs[5] = 1
			if(event.is_action_released("action_3")):
				inputs[5] = 0
		1:
			if(event.is_action_pressed("p1_up")):
				inputs[0] = 1
			if(event.is_action_released("p1_up")):
				inputs[0] = 0
			if(event.is_action_pressed("p1_left")):
				inputs[1] = 1
			if(event.is_action_released("p1_left")):
				inputs[1] = 0
			if(event.is_action_pressed("p1_right")):
				inputs[2] = 1
			if(event.is_action_released("p1_right")):
				inputs[2] = 0

			if(event.is_action_pressed("p1_action1")):
				inputs[3] = 1
			if(event.is_action_released("p1_action1")):
				inputs[3] = 0
			if(event.is_action_pressed("p1_action2")):
				inputs[4] = 1
			if(event.is_action_released("p1_action2")):
				inputs[4] = 0
			if(event.is_action_pressed("p1_action3")):
				inputs[5] = 1
			if(event.is_action_released("p1_action3")):
				inputs[5] = 0

## MAIN
func _physics_process(delta):
	#BOUNDS SKY AND SEA
	if(global_position.y < -BOUNDS):#It's at the top and needs to be going down
		linear_velocity.y += speed
	elif(global_position.y > BOUNDS):#It's at the bottom and needs to be set
		linear_velocity.y += -speed*rot_speed

	if(inputs[0]==1):
		boost()
	if(inputs[1]==1):
		rot -= rot_speed
		next_frame()
	if(inputs[2]==1):
		rot += rot_speed
		next_frame()
	rotation_degrees = rot #I don't why it doesn't keep the position. It must be set every delta second.

	gun_handler(delta)

func _on_colid(area):#If hitbox colids with something
	var parea = area.get_parent()
	if(area.is_in_group("projectile")):
		if(area.player != player):
			health -= area.damage
			if(health < 0):
				queue_free()
			area.queue_free()

func _ready():
	get_node("nose").add_exception(get_node("hitbox"))#Don't colid with itself

	get_node("hitbox").connect("area_entered",self,"_on_colid")

	## CHANGE THE COLOR
	match(player):
		0:#player 1, cyan
			modulate = Color("00edff")
		1:#player 2, white
			modulate = Color("ffffff")
		2:#player 3
			modulate = Color(Color.darkcyan)
		3:#player 4,
			modulate = Color(Color.cornflower)
		_:#Unkown player, black
			modulate = Color("000000")


code:
extends Node2D
#The spreadshot

var player = -1#The player or object that fired this projectile, -1 = enemy

func _ready():
	for bul in get_children():
		bul.player = player
	get_child(0).connect("tree_exited",self,"queue_free")


code:
extends "res://scripts/librerausers_projectile.gd"

func _physics_process(delta):
	move_local_y(-speed)
	falloff -= delta
	if(falloff < 0):
		queue_free()


code:
extends "res://scripts/librerausers_projectile.gd"

var target = null

func _physics_process(delta):
	move_local_x(speed)
	if(target != null):
#		print_debug(target.global_position)
		look_at(target.global_position)
	falloff -= delta
	if(falloff < 0):
		queue_free()

func _ready():
	speed = 4
	falloff = 2


code:
extends Area2D

var player = -1#The player or object that fired this projectile, -1 = enemy
var speed = 7 #The speed of the projectile
var falloff = 3 #How long the projectile lasts
var damage = 10#how much this projectile takes life away from an object

func _ready():
	add_to_group("projectile")


code:
extends ViewportContainer

var target = null

func _physics_process(delta):
	if(target != null):
		if(is_instance_valid(target) == true):
			get_node("v/cam").global_position = target.global_position
		else:#player died
			set_physics_process(false)


code:
**/Jquery.js
**/mousetrap.js
**/sugarCubeConfig.js
**/format.js
**/bugReport.js
**/displayVariables.js
**/dTree.min.js
**/optionsMacro.js
temp.**
**.temp

repo_name: IchthysdeKilt/fc

path: .eslintignore


sourceType: module

semi: warn always

semi-spacing: warn

semi-style: warn

block-spacing: warn always

curly: warn all

eqeqeq: warn smart

no-fallthrough: error

anonymous: never

named: never

asyncArrow: always

template-curly-spacing: warn never

no-trailing-spaces: warn

no-mixed-spaces-and-tabs: warn smart-tabs

no-unneeded-ternary: warn

camelcase: warn

padded-blocks: warn never

comma-spacing: warn

comma-style: warn

object-curly-spacing: warn

no-var: warn

spaced-comment: warn

no-undef: off

block-scoped-var: error

dot-notation: warn

eol-last: warn

unicode-bom: error never


code:
*.bat	text eol=crlf
*.js	text eol=lf
*.tw	text eol=lf
*.sh	text eol=lf
*.py	text eol=lf
*.txt	text eol=lf

path: .gitattributes


code:
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# Vim stuff
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]
Session.vim
Sessionx.vim
.netrwhist
*~
tags
[._]*.un~

# C extensions
*.so

# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
bin/*

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
.hypothesis/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# IPython Notebook
.ipynb_checkpoints

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# dotenv
.env

# virtualenv
venv/
ENV/

# Spyder project settings
.spyderproject

# Rope project settings
.ropeproject

# Start.tw
src/config/start.tw

# eslint
node_modules
package-lock.json
package.json
yarn.lock

# typescript
tsconfig.json

# Visual Studio Code
.vscode/settings.json
*.code-workspace

# WebStorm
.idea

# backup
*.bak
*.gho
*.ori
*.orig
*.tmp

# misc
fc-pregmod
*.outline
*.todo
TODO.txt
temp.*
*.temp

path: .gitignore


brace_style: collapse,preserve-inline

path: .jsbeautifyrc


code:
// Minified files
**/src/js/bugReport.js
**/dTree.min.js
**/js/displayVariables.js

path: .jshintignore