Skip to main content

A language server for Bioware's nwscript and more!

Project description

PyPI version

Arclight.py

These are tools related to the Arclight project

Installation

Ideally, create and activate a Python venv.

pip install arclight

To uninstall delete the venv created above.

2dilate - v0.5

2dilate is a 2da merger and xlsx<->2da/x converter. It adds a new file type, 2dx (specification below), to simplify and ease the 2da merging process.

Goals:

  • A merger that did not require using directories to separate multiple merge files.
  • A file format that is simple, compact, and familiar. Something that could ideally be distributed with custom content to ease merging or shared by community members. And also trivially implementable in any programming language/environment.
  • A simple straight forward interface, that does not require a PhD to learn.

2dx file format version 2.1

  • Header: 2DX V2.1
  • YAML Metadata: The following is optional . The YAML metadata is enclosed within two lines containing "---". If you are not familiar with YAML visit yaml.org. Please note that you can put anything in the metadata so long as it conforms to the YAML specification. Anything that 2dx doesn't understand, it ignores. Note: YAML does not like tabs, you should always uses spaces for indentation.
  • Column Labels: As 2da, note however that a 2dx file needn't have all the columns of it's parent 2da. Only the columns that are being merged need to be included. Also, new columns can be added.
  • Rows: As 2da with a couple exceptions:
    • Row numbers are significant, this is how 2dilate decides where to merge the 2dx file. Row numbers are not expected to start from 0, they should be start wherever you want to merge. They need not be contiguous or even ordered.
    • Row numbers can be unspecified by '****' in which case the row entry in the YAML metadata is used to calculate new row = 2dx row number + row. They can also be unspecified by '####' in which case the row numbers are calculated by appending rows to the 2da we are merging in to. I.e.: new row = base 2da last row + 2dx row number + 1.
    • #### is a new entry type that tells 2dilate to ignore the row entry as far as merging goes. This is very handy when you want to merge changes from a few different columns but only change some values on certain rows.

Reserved YAML Metadata Entries:

  • tlk - A table of column names and integer offsets.
  • row - Starting row for row numbers that are unspecified i.e. instead of '1', '****'.

All non-reserved YAML metadata entries are ignored. Example:

---
description: | # Custom metadata entry.
  This renames some columns and modifies some TLK entries. It's ignored by the parser.
  Exists only for user edification

tlk:
  SomeColumn: 1000 # For all non-empty column entries the TLK entry will be calculated
  Column2: 1500    # offset + column entry + 0x01000000 (Custom TLK starting point).

row: 1000 # Any unspecified row number ('****') is replaced with 1000 + 2dx row number.

date: 2015-07-04 # Custom metadata entry.  Note that 2dilate and the 2dx reader will simply
                 # ignore this.
---

Usage - 2dilate merge

usage: 2dilate merge [-h] [-o OUTPUT] [--force] input files [files ...]

positional arguments:
  input                 Directory containing 2dx files to be merged.
  files                 2da file(s).

options:
  -h, --help            show this help message and exit
  -o OUTPUT, --output OUTPUT
                        Output directory.
  --force               Force merges non-default row entries.

Usage - 2dilate convert

usage: 2dilate convert [-h] files [files ...]

positional arguments:
  files       File(s) to convert.

options:
  -h, --help  show this help message and exit

nwscriptd

A language server for nwscript. See the README.

nwscript-lint

A wrapper around the script parser and resolver

Usage

usage: nwscript-lint [-h] [-I INCLUDE] [--no-install] [--no-user] scripts [scripts ...]

A linter for nwscript.

positional arguments:
  scripts               List of scripts to lint.

options:
  -h, --help            show this help message and exit
  -I INCLUDE, --include INCLUDE
                        Include path(s).
  --no-install          Disable loading game install files.
  --no-user             Disable user install files.

Sample

output

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arclight-0.15.dev0.tar.gz (766.8 kB view details)

Uploaded Source

Built Distribution

arclight-0.15.dev0-py3-none-any.whl (775.4 kB view details)

Uploaded Python 3

File details

Details for the file arclight-0.15.dev0.tar.gz.

File metadata

  • Download URL: arclight-0.15.dev0.tar.gz
  • Upload date:
  • Size: 766.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.11.10 Linux/5.15.0-1073-azure

File hashes

Hashes for arclight-0.15.dev0.tar.gz
Algorithm Hash digest
SHA256 a4fc18c481f04ce12d4a49ef6c397f820b014b97b3a81fc2d1a34502380a3228
MD5 79a807d6e1bf298081be616cccb62270
BLAKE2b-256 a76511a9c4c69cbad0fbb6dd7f339f2d8ba11311303555f066a254039acdd7d0

See more details on using hashes here.

File details

Details for the file arclight-0.15.dev0-py3-none-any.whl.

File metadata

  • Download URL: arclight-0.15.dev0-py3-none-any.whl
  • Upload date:
  • Size: 775.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.11.10 Linux/5.15.0-1073-azure

File hashes

Hashes for arclight-0.15.dev0-py3-none-any.whl
Algorithm Hash digest
SHA256 0f2642f915f3bc8f17e70bc6e275de7b974f67157bbe52a492377bf10d150baa
MD5 511b350a303d797894abf6226fbe330e
BLAKE2b-256 f2673fb4b6c64d7e8f6c632b4916f9dd68082d4ba6dc3df80e1805196a3b4202

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page