Decided on Python because pandas.

This commit is contained in:
Phil Bajsicki 2023-08-23 12:02:02 +02:00
parent 6b21e87dd2
commit af60833afe

View file

@ -1,8 +1,8 @@
#+title: Factorio Recipe Analyzer #+title: Factorio Recipe Analyzer
#+author: Phil Bajsicki #+author: Phil Bajsicki
#+PROPERTY: header-args :tangle fra.raku #+PROPERTY: header-args :tangle fra.py
* Intro * Intro
This is a simple Raku script which generates an analysis of each recipe into its component parts, and delivers insight into the balance and progression of a mod. This is a simple Python script which generates an analysis of each recipe into its component parts, and delivers insight into the balance and progression of a mod.
The .csv files used as input are generated in Factorio, by loading a new game with only ~base~ and your chosen mod enabled, and running the following Lua code: The .csv files used as input are generated in Factorio, by loading a new game with only ~base~ and your chosen mod enabled, and running the following Lua code:
@ -78,7 +78,7 @@ The output of this is an org-mode file in the following pattern:
* This script * This script
This is a literate script. The source code is embedded in these code blocks, and tangled into the Raku script using org-babel. This allows me to write a description of what I want to do, and comment on it without resorting to ~// /* */~ ugly comments. This is a literate script. The source code is embedded in these code blocks, and tangled into the Python script using org-babel. This allows me to write a description of what I want to do, and comment on it without resorting to ~// /* */~ ugly comments.
Better yet, I can include [[Lua code generating a .csv file containing all recipes using the items in the whitelist.][links directly to places within the file]] and easily cross-reference what I'm doing with the documentation/ design. Better yet, I can include [[Lua code generating a .csv file containing all recipes using the items in the whitelist.][links directly to places within the file]] and easily cross-reference what I'm doing with the documentation/ design.
@ -88,7 +88,7 @@ There is a rough overview of the structure:
#+begin_example #+begin_example
,#+name: Name of the following source block. ,#+name: Name of the following source block.
,#+begin_src raku :tangle file.name ,#+begin_src python :tangle file.name
[code goes here] [code goes here]
,#+end_src ,#+end_src
#+end_example #+end_example
@ -97,14 +97,14 @@ There is a rough overview of the structure:
In the begging of the file, we can set global (in the scope of the file) properties, such as the default target for ~:tangle~: In the begging of the file, we can set global (in the scope of the file) properties, such as the default target for ~:tangle~:
~#+PROPERTY: header-args :tangle fra.raku~ ~#+PROPERTY: header-args :tangle fra.py~
The easiest way to generate outputs from here is to open this file in Emacs, and run ~M-x org-babel-tangle~. If you're using [[https://github.com/doomemacs/doomemacs][Doom Emacs]], the default key binding is ~C-c C-v C-t~. The easiest way to generate outputs from here is to open this file in Emacs, and run ~M-x org-babel-tangle~. If you're using [[https://github.com/doomemacs/doomemacs][Doom Emacs]], the default key binding is ~C-c C-v C-t~.
*Important note:* the files in ~./mod-recipes~ are working files. They're not intrinsic parts of the software - they're there primarily for testing and development. *Important note:* the files in ~./mod-recipes~ are working files. They're not intrinsic parts of the software - they're there primarily for testing and development.
* License * License
I don't own the source csv files generated by Factorio, nor the mods the script is pulling from. The Raku script itself is GPLv3. I don't own the source csv files generated by Factorio, nor the mods the script is pulling from. The Python script itself is GPLv3, with the exception of third-party libraries licensed otherwise.
** TODO: include GPLv3 in the repo ** TODO: include GPLv3 in the repo
** Credits: ** Credits:
The following are mods from which .csv files have been generated. The recipe .csv files are included in the ~mod-recipes~ directory. The following are mods from which .csv files have been generated. The recipe .csv files are included in the ~mod-recipes~ directory.