Git Product home page Git Product logo

botw-ist's Introduction

botw-ist

Simulator for Inventory Slot Transfer in BOTW

Visit the app at https://ist.itntpiston.app

Contribute

Contributions are welcomed. For small issues, you can open PRs directly. For big issues contact me on discord iTNTPiston#5339

Development

Clone Repo

Clone repo with --recurse-submodules

If you have already cloned, run git submodule update --init --recursive

Install/Update

To update submodules, go to the submodule directory and pull. Example:

cd scripts/base-lint
git pull
cd scripts/typescript-layers
git pull

To install node modules npm install

Local

Run npm run start to start webpack dev server. When code changes, the dev server will hot reload

Grammar

The simulator uses a LL parser with infinite look ahead to generate an Abstract Syntax Tree from which commands are parsed.

The grammar is at src/core/command/ast/grammar.txt and the ast parser is generated with npm run generate (Python needed)

If you want to introduce new commands, most of the heavy lifting for the parsers is already done. You should be able to define a new derivation in the grammar and implement the parser by looking at one of the parse.cmd.* files. However, you should probably contact the maintainer to have a discussion about the new command.

PR

Do before PR:

  • Lint your code
    1. npm run lint-base: This checks that your files have unix line endings, have no traling whitespaces, and have exactly 1 trailing new line. This might fail if you have auto crlf on git for windows. If you do, please make sure the remote still has UNIX line ending so the PR automation passes
    • npm run layer: This makes sure your imports follow the layer rules (and are sorted correctly)
      • src/data is the bottom layer. It cannot depend on core or ui components
      • src/core is the core logic. It can depend on data, but not ui
      • src/ui is the ui layer. It can depend on everything
    • npm run lint-ts: This is the standard eslint
  • Run tests npm run test-all

botw-ist's People

Contributors

elduende05 avatar jordanbtucker avatar pistonight avatar savage13 avatar

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.