Space Engineers

Space Engineers

123 ratings
Projector2LCD
2
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
Updated
491.007 KB
1 Sep, 2018 @ 9:21am
14 Oct, 2024 @ 12:00pm
37 Change Notes ( view )

Subscribe to download
Projector2LCD

Description
Show info about missing components, ingots and ores for your blueprint.

-----------

Projector2LCD by Juggernaut93

With some code by nihilus from here:
https://forum.keenswh.com/threads/adding-needed-projector-bp-components-to-assembler.7396730/#post-1287067721

CHECK ALSO: Projector2Assembler to queue blueprint components to an assembler.
Link: https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=1488278599

AND Assembler Needs Calculator to show info about missing materials for assemblers.
Link: https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=1501171322

MODS COMPATIBILITY
  • By default the script is not compatible with mods adding new blocks or modifying their needed components.
  • The script can be made compatible with mods that modify or add new block definitions (but without adding new kinds of components to be assembled in an Assembler) running the following app: https://github.com/Juggernaut93/Projector2Assembler/releases
  • Run the .exe file and follow the instructions on screen. A file will be created with the line of text that needs to be added to the script.
  • The app should be runnable on Windows 10 without additional dependencies.
  • On older versions of Windows this package might be needed: https://www.microsoft.com/en-US/download/details.aspx?id=48145
  • If you have problems running the .exe app, you can run the .py executable using Python on the command line.
  • The script will ignore non-vanilla types of ores/ingots too and these won't be shown on the LCDs.

SETUP
  • You need a programming block, a projector and up to 3 LCD screens. Text panels, small and wide LCD panels are supported. The use of Monospace font is RECOMMENDED (but not mandatory).
  • Run the script with this argument: ProjectorName;LCDName1;LCDName2;LCDName3;lightArmor;yieldPorts
    • All parameters are optional and can be left empty.
    • ProjectorName is the name of the projector with the blueprint you want to show info about. If you don't specify a projector, the script will continuously search for a currently active projector and show the related info
    • LCDName1 is the name of the LCD that will show info about which components are needed to build the blueprint (see HOW IT WORKS)
    • LCDName2 is the name of the LCD that will show info about which ingots/refined ores are needed to build the blueprint (see HOW IT WORKS)
    • LCDName3 is the name of the LCD that will show info about which ores are needed to build the blueprint (see HOW IT WORKS). If no valid third LCD is specified, the script will try to fit the info on the second LCD (if specified) (see ADDITIONAL CONFIGURATION)
    • lightArmor is true (default) or false and tells the script to assume all the armor blocks listed by the projector are respectively Light Armor Blocks or Heavy Armor Blocks
    • yieldPorts is an integer between 0 and 8 and specifies how many ports of your refineries should be considered as covered by a Yield Module. This value will affect calculations regarding how much of each ore is needed for your blueprint. If you don't specify yieldPorts, the script will use the average effectiveness of the ENABLED refineries on your grid. Note that the script will also account for available Basic Refineries if there are no Refineries available.
  • IMPORTANT: you HAVE to set the ASSEMBLER_EFFICIENCY variable at the top of the script according to your world settings: if you have set the assembler efficiency to realistic, set the variable to 1; if you have set it to 3x, then set the variable to 3; if you have set it to 10x, then set the variable to 10;
  • The script will run indefinitely with the specified settings. To change settings, just re-run the script with the different parameters.

ADDITIONAL CONFIGURATION
The script has a number of hardcoded parameters that you can change. The parameters are in the section "CONFIGURATION" at the top of the script and control various settings: text auto-resize and formatting, whether to use blocks on subgrids, and so on. For an explanation of such parameters, refer to the in-game script Readme section (Steam description field limits the number of characters and this section of the readme can't be posted here).

HOW IT WORKS
  • The script gets from the projector the remaining blocks to build. Unfortunately, the projector is not precise about the type of armor blocks to build and only gives a generic "armor blocks". You can then specify if you want to assume all the blocks are light or heavy armor blocks, but keep in mind that the script will overproduce if you specify heavy blocks but not all your blocks are full cubes and/or you also have light blocks; it will (probably) underproduce if you specify light blocks but you have many heavy armor blocks.
  • The script then checks if the specified projector is available, otherwise it will search for one that is currently projecting.
  • The script then proceeds to compute the various components, ingots and ore needed, using the average refinery effectiveness at transforming ores to ingots (or the one you have manually specified with the yieldPorts parameter).
  • The computed info are then shown on the available LCDs. If one of the LCDs is not found or is not specified, the script will simply ignore it, except for when fitOn2IfPossible is true: as explained before, in this case the content of the third LCD can be shown on the second one, if the third LCD is not available and the second one is. Each LCD will show the name of the chosen projector. Also, each LCD will highlight with a ">>" the missing materials.
  • COMPONENT LCD CONTENT:
    • AVAILABLE column: the amount of each component that is currently in inventory
    • NEEDED column: the amount needed to build the blocks of the blueprint that still have to be built
    • MISSING column: the difference between NEEDED and AVAILABLE. Not shown if 0.
  • INGOT LCD CONTENT:
    • AVAILABLE column: the amount of each ingot type that is currently in inventory
    • NEEDED NOW/TOTAL column: the amount of ingots needed to build the MISSING components vs. the amount of ingots needed to build NEEDED components (i.e. all the remaining blocks)
    • MISSING column: the difference between NEEDED NOW and AVAILABLE. Not shown if 0. It represents how many additional ingots have to be produced to build the missing components
  • ORE LCD CONTENT:
    • AVAILABLE column: the amount of each ore that is currently in inventory
    • NEEDED NOW/TOTAL column: the amount of ores needed to build the MISSING ingots vs. the amount of ores needed to build NEEDED TOTAL ingots, aka NEEDED components
      (i.e. all the remaining blocks)
    • MISSING column: the difference between NEEDED NOW and AVAILABLE. Not shown if 0. It represents how many additional ores have to be mined to build the missing ingots.
    The panel will also show how much iron ore the available scrap metal (if any) can save you and the refinery effectiveness percentage used to compute the needed ores (together with the equivalent amount of ports covered by yield modules - exact if specified, averaged if the effectiveness has been averaged). Moreover, ores that can be refined on a Basic Refinery, in case there is no Refinery available, will be marked with a '^' and will use the Basic Refineries specs for resource calculation.
Popular Discussions View All (2)
16
10 May, 2019 @ 11:19am
Error On Projektor
Nuros
3
2 Apr, 2021 @ 5:11pm
LCD Text Issue
dnvm84
205 Comments
Juggernaut93  [author] 13 Dec, 2024 @ 3:21pm 
I don't own the DLCs, but for many (all?) of the DLCs the block definitions were included in the base game, so I was able to build the list of recipes without owning them. However, I can't really tell if it works or not, sorry.
Doombad 8 Dec, 2024 @ 12:50pm 
Does this support all DLCs? (and thank you for making this)
Juggernaut93  [author] 8 Dec, 2024 @ 10:08am 
If you are using mods with custom components, they are not supported.
Dormant 23 Nov, 2024 @ 4:13pm 
i ran the block definition xtractor that you had mentioned but it says not supported. is there a updated version
Juggernaut93  [author] 9 Oct, 2024 @ 10:53am 
For example:
pname;lcd1;lcd2;;false;
if you have a projector called pname, two LCDs called lcd1 and lcd2, no third lcd, no light armor and want to use the average grid yield ports
Juggernaut93  [author] 9 Oct, 2024 @ 10:49am 
No, just write false
Eevee 1 Oct, 2024 @ 8:44pm 
so it would be something like the augment would be ;LCD1;LCD2;lightarmor:false; to set it to heavy armor? i ended up just modifying the script to use heavy armor by default instead of light armor.
Juggernaut93  [author] 1 Oct, 2024 @ 10:08am 
If you want light armor: true, if you wnt heavy armor, false
Eevee 30 Sep, 2024 @ 6:50am 
what do i need to type to enable heavy armor instead of light becuase i dont think i understand the instructions on how todo it ive tried putting lightarmor, heavyarmor ,lightarmorfalse ,lightarmor1 , lightarmor0 because the instructions seem as clear as mud about that for me.
Juggernaut93  [author] 29 Sep, 2024 @ 6:00am 
The problem is that, depending on the mod, you might get very wrong calculations if the new components are heavily used in the blueprint. I could just do it and send a warning about it, but I honestly don't have time to do these changes right now