GithubHelp home page GithubHelp logo

ninja-lib's Introduction

Ninja-lib is now on npm. You can now convert files easily using Nodejs. This library has been made mostly with BlueBurst in mind and have no intention of supporting other versions, but this is an open source library, so if you need you change anything you can always fork the github repository.

Installation

Install ninja-lib with npm

npm install ninja-lib

Use it in your code

var ninja = require("ninja-lib");

get_extension(buffer)

This function takes a buffer as an agrument, looks at the first four bytes and returns an extension for the file based on the Interchange File Format given by the first four bytes of the file. Returns ".bin" if file extension is not recognized.

var buffer = fs.readFileSync("unkown_file.bin");
var ext = ninja.get_extension(buffer);
//returns ".xvm", ".nj", etc

extract_bml(filename, [dest_folder])

This function takes a filename and an destination folder as an optional argument. The provided bml file is parsed and extracted to the destination folder. If no destination folder is provided, the files are written to the same directory as the source filename. This function will throw an error if the source file or destinatation folder provided do not exist.

Returns a list of all of the extracted files from the bml archive.

var bml_file = "booma_bagons.bml";
var arr = ninja.extract_bml(bml_file, "out/");
//returns ["out/booma.nj", "out/booma.pvm", ...]

extract_afs(filename, [compressed], [dest_folder])

This function takes a filename, compressed boolean and destination folder as arguments. Compressed is a boolean value stating if the files inside the afs file are compressed with prs. Dest folder follows the same rules as extract_bml, if no folder is provided, files are extracted to the same directory as the source folder.

Returns a list of all of the extracted files from the afs archive.

var afs_file = "WeaponList.afs";
var arr = ninja.extract_afs(afs_file, true, "out/");
//returns ["out/WeaponList_000.xvm", "out/WeaponList_001.xvm" ...]

extract_gsl(filename, [dest_folder])

This function takes a filename and a destination folder as arguments. Dest folder follows the same rules as extract_bml, if no folder is provided, files are extracted to the same directory as the source folder.

Returns a list of all of the extracted files from the gsl archive.

var gsl_file = "data.gsl";
var arr = ninja.extract_gsl(gsl_file, "out/");
//returns ["out/lightentry.bin", "out/map_ancient_e.bin" ...]

decompress_prs(buffer)

This function takes a buffer as an argument and returns a decompressed buffer as a result.

var prs_buffer = fs.readFileSync("some_file.prs");
var decomp_buffer = ninja.decompress_prs(prs_buffer);
var ext = ninja.get_extension(decomp_buffer);
fs.writeFileSync("some_file" + ext, decomp_buffer);

ninja-lib's People

Contributors

seiche avatar

Watchers

Stargirl Flowers avatar James Cloos avatar  avatar

Forkers

perikiyoxd

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.