Code Monkey home page Code Monkey logo

foreman's Introduction

Foreman

This is a simple program for generating flowcharts for production lines in the game Factorio.

Requires .Net 4.0 or higher and Visual C++ 2012 x86 to run.

For example, here's a (fairly messy) flowchart showing the optimal resources and assemblers required to make one rocket per minute:

1 Rocket per minute.png

Download

To download the latest version of Foreman please visit the "Releases" tab here on Github and download the "Release.zip" from the latest release.

Usage

Run Foreman.exe. It should automatically find your Factorio installation if you used the installer. Otherwise it will ask for its location.

Once the main program is running, you can drag items onto the flowchart from the list on the left to create nodes in the flowchart. Nodes can be dragged around, deleted (by right clicking them), or, in the case of output nodes, edited by clicking the item icon. This will change the amount of that item that the node requires (and any nodes feeding into it should be updated automatically too).

Click and drag an item from the top or bottom of a node to create a new item link. Stop dragging on empty space to create a new node to consume or produce the item, or drag it onto a compatible node to link them.

By default, the program is set to display the requirements to create a fixed amount of each item. If you want to instead show items being created at a specific rate, you can change it in the top left. This also lets you see the minimum number of assemblers, miners or furnaces it would take to produce an item at that rate (as well as applying speed modules to reduce the total number).

To configure which assemblers and modules a recipe uses you first need to check "Display Assemblers" then click on a node.

If you get tired of connecting recipes together yourself, click "Automatically complete flowchart", and it will add in all the recipes you need to fulfil the requirements of the output nodes currently in the graph.

Troubleshooting

"Unable to load DLL 'lua52'."

Make sure Visual C++ 2012 x86 is installed.

Crash on load

We've found most crashes to be related to mods implementing features in their Lua we didn't anticipate or changes to the Lua when a new version of Factorio is released. Feel free to open an issue in this respository so we can investigate and fix.

Contributing

At the time of writing the only official "contributor" is myself, Rybadour here on Github and /u/salbris on Reddit. More are welcome! I don't have any official guidance such as a code style guide so feel free to suggest or create one! I doubt I'd turn away any pull requests unless they involve large rewrites of the core functionality that I would be hard-pressed to review. Generally I'd recommend looking at the issues here on Github to see if the feature you'd like to add is already listed and assigned. I'd recommend everyone to consider this repository the source of truth for the project as there are numerous copies on BitBucket. I'll be attempting to consolidate everything here.

If you would like to contribute but are having difficulty understanding the codebase feel free to reach out directly. I've also taken the liberty to create a Discord server for contributors. We could use that to discuss development and questions about the program. Discord: https://discord.gg/q96w5y6

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.