eastward.js v0.0.56
eastward.js
Typescript library for imort/export assets of the video game Eastward.
No Browser Support
Installation into an existing project
To install eastward.js
as a dependency of your Node.js project:
npm install eastward.js
eastward.js
is made with TypeScript.
How to use
Command Line usage
npx eastward --help
for help.
If you installed eastward.js globally,
npm install -g eastward.js
you can just use eastward --help
Usage: eastward [MODE] [OPTION]... [FILE]...
Mode and Option:
extract Extract all assets with types from game root directory to output directory. Without explicit --type option, all assets will be extracted.
--root game root directory
-T, --type asset type; eastward --help type to get list
--out output directory
unzip Extract data from .g files to output directory.
--out output directory
[FILE] .g files
zip Archive all data from root directory to output .g file.
--root root directory
--out output .g file
hmg2png Read hmg files and convert to png files.
-r Read recursive in directory
--in Input directory or file
--out Output directory or file
png2hmg Read png files and convert to hmg files.
-r Read recursive in directory
--in Input directory or file
--out Output directory or file
json2msg Read JSON files and convert to msgpack files.
-r Read recursive in directory
--in Input directory or file
--out Output directory or file
inject Read files from root and inject them into .g file.
--root Input directory
--in Input .g file
--out Output .g file
Source code usage
Example for extract some assets from the root game folder.
import { Eastward, registerAll } from "eastward.js";
const root = "C:/SteamLibrary/steamapps/common/Eastward";
const eastward = new Eastward({ root });
await eastward.init();
registerAll(eastward); // register all asset types
await eastward.extractTo("./extract");
console.log("extracting finished");
Or you can just extract some types of assets.
import { Eastward, LocalePackAsset } from "eastward.js";
const root = "C:/SteamLibrary/steamapps/common/Eastward";
const eastward = new Eastward({ root });
await eastward.init();
eastward.registerAssetLoader("locale_pack", LocalePackAsset);
await eastward.extractTo("./extract_locale_pack");
console.log("extracting locale_pack finished");
Example for extract certain assets from the root game folder.
import { Eastward, TextureAsset, registerAll } from "eastward.js";
const root = "C:/SteamLibrary/steamapps/common/Eastward";
const eastward = new Eastward({ root });
await eastward.init();
registerAll(eastward); // register all asset types
const texture = await eastward.loadAsset<TextureAsset>("texture/ui/icon/miniSam.png");
if (texture) {
await texture.saveFile("./miniSam.png")
}
console.log("extracting finished");
Example for reading asset from archive.
import { GArchive } from "eastward.js";
import { writeFile } from "fs/promises";
const archive = new GArchive();
await archive.load(
"C:/SteamLibrary/steamapps/common/Eastward/content/game/locale.g"
);
const data = await archive.getFileData("1fbba5dfab829f507358f58c1c2dc59a");
if (data == null) {
process.exit(-1);
}
writeFile("./CH1.lua", data);
Example for writing asset to archive.
import { GArchive } from "eastward.js";
import { readFile } from "fs/promises";
const archive = new GArchive();
await archive.load(
"C:/SteamLibrary/steamapps/common/Eastward/content/game/locale.g"
);
const data = await readFile("./CH1.lua");
await archive.setFileData("1fbba5dfab829f507358f58c1c2dc59a", data);
await archive.saveFile("./locale.g");
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
10 months ago
10 months ago
10 months ago
9 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago