An open API service indexing awesome lists of open source software.

https://github.com/tabone/azgaar-fmg-parser


https://github.com/tabone/azgaar-fmg-parser

Last synced: 7 days ago
JSON representation

Awesome Lists containing this project

README

          

# azgaar-fmg-parser

An unofficial utility for parsing Cultures, Provinces, States, Religions, and Burgs from .map files generated by [Azgaar's Fantasy Map Generator](https://azgaar.github.io/Fantasy-Map-Generator/). Ideal for developers working on fantasy world-building tools and games.

## Installation

To install `azgaar-fmg-parser`, use `yarn`:

```bash
yarn add azgaar-fmg-parser
```

Or, if you prefer `npm`:

```bash
npm install azgaar-fmg-parser
```

## Usage

Here's a simple example demonstrating how to use `azgaar-fmg-parser`:

```javascript
const fs = require("fs");
const { FMG } = require("azgaar-fmg-parser");

// Load a .map file
const mapFileContent = fs.readFileSync("path/to/your/map/file.map", "utf-8");

// Parse the .map file content
const { fmg, info } = FMG.parse({ data: mapFileContent });

// Access parsed data
console.log("Burgs:", fmg.burgs);
console.log("States:", fmg.states);
console.log("Cultures:", fmg.cultures);
console.log("Religions:", fmg.religions);
console.log("Provinces:", fmg.provinces);

// Access parsing information
console.log("Parsing Info:", info);
```

## TypeScript Usage

You can use the provided [type predicates](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates) to check the types of states, cultures, and religions in a TypeScript project:

```javascript
import {
isDefaultState,
isDefaultCulture,
isDefaultReligion,
FMG,
} from "azgaar-fmg-parser";

// Assuming `state`, `culture`, and `religion` are variables from your parsed data
if (isDefaultState(state)) {
console.log("This is a default state.");
}

if (isDefaultCulture(culture)) {
console.log("This is a default culture.");
}

if (isDefaultReligion(religion)) {
console.log("This is a default religion.");
}
```

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request or open an Issue.

## License

This project is licensed under the MIT License.