Foreman 0.1.9 - A factory optimisation tool.

Calculate optimal ratios for feeding recipes, search through the research-tree, specialized tools to view game-information.
Nicksaurus
Long Handed Inserter
Long Handed Inserter
Posts: 55
Joined: Thu Aug 28, 2014 12:56 pm
Contact:

Re: A tool to help you optimise your production lines.

Post by Nicksaurus »

Valkor wrote:I grabbed the source and compiled it with exactly zero problems in Visual Studio 2012. Fantastic application. What license is it under?
Thanks! It's under the MIT licence.
MagicSaurus
Manual Inserter
Manual Inserter
Posts: 2
Joined: Tue Sep 09, 2014 8:28 pm
Contact:

Re: A tool to help you optimise your production lines.

Post by MagicSaurus »

This is nothing short of amazing! :o
Nicksaurus
Long Handed Inserter
Long Handed Inserter
Posts: 55
Joined: Thu Aug 28, 2014 12:56 pm
Contact:

Re: A tool to help you optimise your production lines.

Post by Nicksaurus »

MagicSaurus wrote:This is nothing short of amazing! :o
Thanks! So is your username.
Blackence
Fast Inserter
Fast Inserter
Posts: 109
Joined: Thu Jun 05, 2014 4:03 pm
Contact:

Re: A tool to help you optimise your production lines.

Post by Blackence »

I felt like improving my Debian packaging skills, and while I'm pretty sure the package is not up to Debian standards, it works, and I think it's not really bad. There's a bundled lua library and I'm not sure if my versioning and install paths for the .NET libraries are really correct, but yeah.

So if you're using Ubuntu you can now install Foreman from my PPA (just add that PPA, apt-get update and apt-get install the foreman package, then you can launch foreman from the command line or through your favourite desktop environment menu). If it doesn't work, don't blame Nicksaurus, blame me.
https://launchpad.net/~florian-will/+ar ... /factorio/

I guess the source package also works for Debian if you build it manually, but I haven't tried it. The git repo I used for git-buildpackage packaging is here: https://github.com/w-flo/foreman-pkg (Also, feel free to fork/improve/whatever of course.)
Mur
Long Handed Inserter
Long Handed Inserter
Posts: 73
Joined: Mon Feb 11, 2013 3:52 pm
Contact:

Re: A tool to help you optimise your production lines.

Post by Mur »

omg I spent so much time trying to find that. I like to plan my factories which takes me forever without info like this.
Mur
Long Handed Inserter
Long Handed Inserter
Posts: 73
Joined: Mon Feb 11, 2013 3:52 pm
Contact:

Re: A tool to help you optimise your production lines.

Post by Mur »

omg I spent so much time trying to find that. I like to plan my factories which takes me forever without info like this.
Nicksaurus
Long Handed Inserter
Long Handed Inserter
Posts: 55
Joined: Thu Aug 28, 2014 12:56 pm
Contact:

Re: A tool to help you optimise your production lines.

Post by Nicksaurus »

Blackence wrote:I felt like improving my Debian packaging skills, and while I'm pretty sure the package is not up to Debian standards, it works, and I think it's not really bad. There's a bundled lua library and I'm not sure if my versioning and install paths for the .NET libraries are really correct, but yeah.

So if you're using Ubuntu you can now install Foreman from my PPA (just add that PPA, apt-get update and apt-get install the foreman package, then you can launch foreman from the command line or through your favourite desktop environment menu). If it doesn't work, don't blame Nicksaurus, blame me.
https://launchpad.net/~florian-will/+ar ... /factorio/

I guess the source package also works for Debian if you build it manually, but I haven't tried it. The git repo I used for git-buildpackage packaging is here: https://github.com/w-flo/foreman-pkg (Also, feel free to fork/improve/whatever of course.)
http://i.imgur.com/yRZt9lW.png

It works!
n9103
Smart Inserter
Smart Inserter
Posts: 1067
Joined: Wed Feb 20, 2013 12:09 am
Contact:

Re: A tool to help you optimise your production lines.

Post by n9103 »

Still having this problem:
Image
Colonel Failure wrote:You can lose your Ecologist Badge quite quickly once you get to the point of just being able to murder them willy-nilly without a second care in the world.
Blackence
Fast Inserter
Fast Inserter
Posts: 109
Joined: Thu Jun 05, 2014 4:03 pm
Contact:

Re: A tool to help you optimise your production lines.

Post by Blackence »

Looking at the repo… I can feel your pain. :? :(

Too bad I can't really help, as I've stopped using hg a long time ago. In fact, it was confusing to create these branch heads ("Why is my commit showing up in hg log of the default branch? I commited this to the other branch! Damn you hg!"), so I can only wish you good luck with getting rid of them! I think it looks pretty nice and clean already.

n9103, it might be interesting to know if you're using any mods. And whether or not the tool works after temporarily removing the mods. Since the Foreman tool attempts to parse lua files of mods as well as the base game, this might cause different behaviour depending on the mods you have installed. As far as I can tell, most places where bad things might happen have error checking though. So maybe it's unrelated to mods.
User avatar
ludsoe
Fast Inserter
Fast Inserter
Posts: 243
Joined: Tue Feb 11, 2014 8:16 am
Contact:

Re: A tool to help you optimise your production lines.

Post by ludsoe »

Image

I get this error, with and without mods installed.
n9103
Smart Inserter
Smart Inserter
Posts: 1067
Joined: Wed Feb 20, 2013 12:09 am
Contact:

Re: A tool to help you optimise your production lines.

Post by n9103 »

moved the whole mod folder out of factorio's directory and ran this again, same error.
Colonel Failure wrote:You can lose your Ecologist Badge quite quickly once you get to the point of just being able to murder them willy-nilly without a second care in the world.
Nicksaurus
Long Handed Inserter
Long Handed Inserter
Posts: 55
Joined: Thu Aug 28, 2014 12:56 pm
Contact:

Re: A tool to help you optimise your production lines.

Post by Nicksaurus »

n9103 wrote:moved the whole mod folder out of factorio's directory and ran this again, same error.
There are some changes in the next version that affect that section of the code. I'll also add some better error handling so it's easier to diagnose this sort of thing.
ludsoe wrote:Image

I get this error, with and without mods installed.
OK. I have no idea what might be causing that. The best answer I can give you is to wait for the next version, for the improved error handling I've mentioned above.
Inarion
Burner Inserter
Burner Inserter
Posts: 7
Joined: Mon Sep 15, 2014 2:46 pm
Contact:

Re: A tool to help you optimise your production lines.

Post by Inarion »

Hey Nicksaurus,

are you still working on this nifty little tool?
I do hope so, as your program was the very thing that helped me understand how best set up my blue science factory. ;)

One (rather annoying) thing I recognized, however: When starting up, it always asks me for the Factorio directory. Is that intended behaviour? (I already tried starting it with Admin rights and it's located in E:\...\Factorio\Foreman which is not a Windows-protected directory.)
So if it's not already happening, could you have Foreman remember the Factorio path, once known?
Nicksaurus
Long Handed Inserter
Long Handed Inserter
Posts: 55
Joined: Thu Aug 28, 2014 12:56 pm
Contact:

Re: A tool to help you optimise your production lines.

Post by Nicksaurus »

Inarion wrote:Hey Nicksaurus,

are you still working on this nifty little tool?
I do hope so, as your program was the very thing that helped me understand how best set up my blue science factory. ;)

One (rather annoying) thing I recognized, however: When starting up, it always asks me for the Factorio directory. Is that intended behaviour? (I already tried starting it with Admin rights and it's located in E:\...\Factorio\Foreman which is not a Windows-protected directory.)
So if it's not already happening, could you have Foreman remember the Factorio path, once known?
I'm still working on it! It's just slow at the moment because I'm back at university. I'm glad you like it though.

The path it searches for by default is "[The drive letter that Foreman is running from]:\Program Files\Factorio", and it shows the 'Enter the Factorio Directory' dialog if it can't find that directory. I've added this as an issue though so it should be fixed soonish.
Inarion
Burner Inserter
Burner Inserter
Posts: 7
Joined: Mon Sep 15, 2014 2:46 pm
Contact:

Re: A tool to help you optimise your production lines.

Post by Inarion »

Ah, I see. Thanks for the reply!

I stopped using my C: drive for game installations at some point during Win98's reign... so I'd never have expected Foreman to search for Factorio there. (Though I guess it's the default installation path?) ;)

And good to hear you're still on it. I'd rather have a slow and steady progress than none at all! :mrgreen:
ares0027
Long Handed Inserter
Long Handed Inserter
Posts: 65
Joined: Sun May 04, 2014 6:48 pm
Contact:

Re: A tool to help you optimise your production lines.

Post by ares0027 »

awesome tool BUT i am using it with dytech, no matter if I disable it or not it always shows me recipes with disabled assemblers/smelters.

as in case;

Image


what can i do to disable it?


edit: I also have something in errorlog

Code: Select all

The following files could not be loaded due to errors:
C:\Users\baran_000\AppData\Roaming\Factorio\mods\DyTech-Tools\prototypes\item\modulartools.lua(...ng\Factorio\mods\DyTech-Tools\scripts/tools-database.lua:1: attempt to call global 'module' (a nil value))
D:\Program Files\Factorio\data\base\prototypes\entity\demo-turrets.lua(D:\Program Files\Factorio\data\core\lualib\util.lua:2: attempt to call global 'module' (a nil value))
D:\Program Files\Factorio\data\base\prototypes\entity\turrets.lua(D:\Program Files\Factorio\data\core\lualib\util.lua:2: attempt to call global 'module' (a nil value))
C:\Users\baran_000\AppData\Roaming\Factorio\mods\DyTech-Energy\prototypes\entity\steam-engines-large.lua(...\DyTech-Energy\prototypes\entity\steam-engines-large.lua:1204: unexpected symbol near '}')

Eagle0600
Manual Inserter
Manual Inserter
Posts: 4
Joined: Wed Sep 03, 2014 6:29 am
Contact:

Re: A tool to help you optimise your production lines.

Post by Eagle0600 »

I'm thinking that the best UI solution for that sort of thing in general would be clicking or right-clicking on the recipe in the flowchart to disable certain recipes, with some other element on each recipe to show when some recipes have been disabled and re-enable them.

The next step after that would be remembering that setting on future launches of the application.
Nicksaurus
Long Handed Inserter
Long Handed Inserter
Posts: 55
Joined: Thu Aug 28, 2014 12:56 pm
Contact:

Re: A tool to help you optimise your production lines.

Post by Nicksaurus »

ares0027 wrote:awesome tool BUT i am using it with dytech, no matter if I disable it or not it always shows me recipes with disabled assemblers/smelters.

as in case;

Image


what can i do to disable it?


edit: I also have something in errorlog

Code: Select all

The following files could not be loaded due to errors:
C:\Users\baran_000\AppData\Roaming\Factorio\mods\DyTech-Tools\prototypes\item\modulartools.lua(...ng\Factorio\mods\DyTech-Tools\scripts/tools-database.lua:1: attempt to call global 'module' (a nil value))
D:\Program Files\Factorio\data\base\prototypes\entity\demo-turrets.lua(D:\Program Files\Factorio\data\core\lualib\util.lua:2: attempt to call global 'module' (a nil value))
D:\Program Files\Factorio\data\base\prototypes\entity\turrets.lua(D:\Program Files\Factorio\data\core\lualib\util.lua:2: attempt to call global 'module' (a nil value))
C:\Users\baran_000\AppData\Roaming\Factorio\mods\DyTech-Energy\prototypes\entity\steam-engines-large.lua(...\DyTech-Energy\prototypes\entity\steam-engines-large.lua:1204: unexpected symbol near '}')

Yeah... that part's a bit unintuitive. The way it works is that all recipes are displayed whether they have an enabled assembler or not (because some e.g. Rocket Defense don't have assemblers at all). I only intended the enabled assemblers to limit what's displayed on the recipes as the optimal assembler setup, not which recipes are allowed.

The lua errors in the errorlog really confuse me. They happen all the time and I have no idea why. I've been treating them as low priority for the meantime because they don't affect vanilla games but it looks like they might be disabling certain items for DyTech... I'll check in a bit.
Eagle0600 wrote:I'm thinking that the best UI solution for that sort of thing in general would be clicking or right-clicking on the recipe in the flowchart to disable certain recipes, with some other element on each recipe to show when some recipes have been disabled and re-enable them.

The next step after that would be remembering that setting on future launches of the application.
I agree. That seems like the right solution here.
ares0027
Long Handed Inserter
Long Handed Inserter
Posts: 65
Joined: Sun May 04, 2014 6:48 pm
Contact:

Re: A tool to help you optimise your production lines.

Post by ares0027 »

Eagle0600 wrote:I'm thinking that the best UI solution for that sort of thing in general would be clicking or right-clicking on the recipe in the flowchart to disable certain recipes, with some other element on each recipe to show when some recipes have been disabled and re-enable them.

The next step after that would be remembering that setting on future launches of the application.

as a real end user, who has no idea about programming, that would be easier for me.
Nicksaurus wrote:
Yeah... that part's a bit unintuitive. The way it works is that all recipes are displayed whether they have an enabled assembler or not (because some e.g. Rocket Defense don't have assemblers at all). I only intended the enabled assemblers to limit what's displayed on the recipes as the optimal assembler setup, not which recipes are allowed.

The lua errors in the errorlog really confuse me. They happen all the time and I have no idea why. I've been treating them as low priority for the meantime because they don't affect vanilla games but it looks like they might be disabling certain items for DyTech... I'll check in a bit.
Eagle0600 wrote:I'm thinking that the best UI solution for that sort of thing in general would be clicking or right-clicking on the recipe in the flowchart to disable certain recipes, with some other element on each recipe to show when some recipes have been disabled and re-enable them.

The next step after that would be remembering that setting on future launches of the application.
I agree. That seems like the right solution here.
by the way there is also a problem that you cannot resize nor scroll down on the "Create a node" window. therefore it renders it useless, especially for some items that are included in a lot of recipes (like iron plate)

in picture;

Image
The Lone Wolfling
Long Handed Inserter
Long Handed Inserter
Posts: 97
Joined: Tue Oct 28, 2014 3:33 pm
Contact:

Re: A tool to help you optimise your production lines.

Post by The Lone Wolfling »

Is this still in development?

If so: I am getting the following error on startup with 0.11:

Code: Select all

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
   at Foreman.DataCache.InterpretFurnace(String name, LuaTable values)
   at Foreman.DataCache.LoadRecipes()
   at Foreman.MainForm.Form1_Load(Object sender, EventArgs e)
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Form.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ContainerControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Post Reply

Return to “Cheatsheets / Calculators / Viewers”