Space Engineers

Space Engineers

71 ratings
Blueprint Component Requirements
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
Updated
97.146 KB
4 Mar, 2016 @ 2:40am
4 Apr, 2019 @ 3:27pm
14 Change Notes ( view )

Subscribe to download
Blueprint Component Requirements

Description
Blueprint Component Requirements
Tested for v1.189.044

This is a fork of Heisenboy's Blueprint Components

******Notice Heavy Armor, Slopes, etc. ******
Looks like the core SE code changed recently for how projectors report armor blocks. Due to this change this script can't tell the difference between armor types. If the core game is updated I'll get it to work again!

Bug report has been submitted at KSH like it or bump it maybe it'll be noticed quicker Bug Report[forum.keenswh.com]

I'm pretty sure this will be fixed so I'm holding off on doing funky armor block toggles for the time being.

*******************************************************

About:
Get a list of required components for a blueprint loaded in a projector. This is a fork of Heisenboy's Blueprint Components. It does not appear to be maintained, so I forked it! A while ago I punched out a fork so I could use it because I thought it was cool. There seemed to be requests for it to be updated so I decided to post this version. It does NOT have the item movement feature, I didn't add it because it needs to be updated that might come later if I'm up for it.

What this version does do is gets a list of all of the components for the blueprint (or a pretty good guess of it, there are still issues with it reading some blocks from the projector but many have been added since the original version was written!). It will check your inventory and give you a fancy dancy list that will auto scroll on an LCD screen.

How to use it:
1. Open your programmable block and load the "Blueprint Component Requirements" script from the workshop.
2. Set up a timer block every :01 seconds to run the programmable block and start the timer block.
3. You will need to add [BPLCD] to the name of your Display, this will work on Text panels/LCD's or any other HUD displayable terminal block.*
4. Your projector must have [BP] in it's name.*
5. Make sure your projector is on and load the blueprint you want to get the stats on. If you are running the script on a small ship you can only load small blueprints, same goes for a large ship.

Optional Scrolling:
Sometimes the list of components scrolls too fast. You can now manually control this via button panel or toolbar via programmable block arguments.
Accepted arguments
1. scrollup
2. scrolldown
3. autoscroll=on
4. autoscroll=off
5. toggleautoscroll

Example:
To Turn the scrolling off enter the following argument without quotes
"autoscroll=off"

More arguments:
  • rescanticks <int> - change rescan ticks on the fly
  • getrescanticks - echo's intRescanTicks
  • pscan - rescans projector
  • pscanon - rescans projector, projector must be on
  • pscanonloaded - rescans projector, projector must be on and loaded with a BP
  • reinit - reruns init method
  • debugon - turns debugging on
  • debugoff - turns debugging off
  • help - lists available arguments
  • settings - lists settings

Things that may be confusing:
1. This is still a work in progress, I know I'm missing a handful of blocks. I just wanted to get this cleaned up and knocked out it. WIP.
2. The data isn't accurate or it doesn't recognize all the blocks. Part of this is because of the way the blocks are getting pulled from the projector. The projector recognizes some blocks as the same, interior wall and armor block for example (this might have been fixed). The other part might be human error, yes you're welcome! :) There are a lot of blocks, I stole half the work from heisenboy! All I did was add a few dictionary entries and sorted all the blocks so they are in alphabetical order.
3. Why does it take so long on the loading screen. There is a tick saver so the program doesn't suck up as much processing power, it should also save some barfing on the display screen. Default has been changed to 10 ticks, if you need/want it shorter you can change the variable intRescanTicks to whatever you desire at the top of the code!
4. Loading saving and arguments. Lazy coder, currently not saving arguments for intRescanTicks and which projector was grabbed during init/rescans/etc. Two main reasons why are awaiting updates changes to PB and lack of knowledge/time :)


Additional Comments:

Cheers to the following for great comments and useful feature requests. I might have missed some so read the comments below!
[MFC] roj42, Thanks for getting in contanct with a hotfix while I've been MIA!
[1SC] Marneus
Xanthyn - Also check out Xanthyn's OSPREY to see this script in action!


******Notice changes for block names!!!******
version 2016040401 changes requirement of full names and using [BPCR] to [BP] for the projector and [BPLCD] for the LCD Text Panel. This was to make it easier for updates if you didn't want to change your LCD name to Text Panel, etc.
See the Change Log for more info somewhere over there --->
*******************************************************

** Note to self check out KSH Forums[forum.keenswh.com] Use RemainingBlocksPerType to gather block info instead of reading detailed info from projector. Will need to rewrite dictionaries to match.

Check out my workshop for other nifty creations!

Other Mods and scripts this goes well with
Projector Preview
Holographic Projector
Buttons for Projector Preview and Holographic Projector
Popular Discussions View All (2)
8
20 Dec, 2019 @ 10:09pm
"Block Name" is not in the dictionary, this block will not be calculated
the-phil
0
1 Apr, 2016 @ 3:00am
Troubleshooting Guide
the-phil
108 Comments
LeNi 17 Mar @ 8:11am 
Yep cant connect LCD, script dead
[KpL]MiniBoot 20 Dec, 2023 @ 6:55am 
Hi, is this script still live? I run into this problem where the script can run, but it doesnt connect to the LCD screen. Any suggestions? Currently running the revised script compiled by @Felsenuboot
Ligax 13 May, 2022 @ 8:39pm 
Hello,

The script gives me values very much lower than what is really required, does it still work ?
Felsenuboot 18 Nov, 2021 @ 2:03pm 
Also struggled with the script. I merged @John Macmillan's, @KamiKatze's and @Francis' changes to the script.

You can download it on pastebin

#######################

https://pastebin.com/bB5um7GZ

#######################

or add /bB5um7GZ
KamiKatze 27 Jun, 2021 @ 3:00pm 
This script needs some updates (Part 2/2)

Position:
"Large ship blocks from projector"

Added the following:

{"Grated Catwalk Corner", new Dictionary<string, int>{
{"Girder",4},
{"SmallTube",32},
{"Construction",24}
}},
{"Grated Catwalk Straight", new Dictionary<string, int>{
{"Girder",4},
{"SmallTube",32},
{"Construction",24}
}},
{"Sci-Fi Large Atmospheric Thruster", new Dictionary<string, int>{
{"SteelPlate",230},
{"Construction",60},
{"LargeTube",50},
{"MetalGrid",40},
{"Motor", 1100}
}},
{"Sci-Fi Atmospheric Thruster", new Dictionary<string, int>{
{"Motor",110},
{"MetalGrid",10},
{"LargeTube",8},
{"Construction",50},
{"SteelPlate",35}
}},
{"Hydrogen Engine", new Dictionary<string, int>{
{"Motor",12},
{"LargeTube",12},
{"Construction",70},
{"SteelPlate",100},
{"PowerCell",1},
{"Computer",4},
{"SmallTube",20}
}},
KamiKatze 27 Jun, 2021 @ 2:59pm 
This script needs some updates (Part 1/2)
Additionally to the already mentioned updates/bugs here are my two cents:

Position:
"DisplayBlock = DisplayBlocks[0];
// find object type
/*"
Added:
MyObjectBuilder_TextPanel/SciFiLCDPanel5x5 // Sci-Fi LCD Panel 5x5
MyObjectBuilder_TextPanel/TransparentLCD // Transparent LCD


Position:
"Large ship blocks from projector"

Added the following:

{"Control Seat", new Dictionary<string, int>{
{"InteriorPlate", 30},
{"Construction",30},
{"Motor",2},
{"Computer",100},
{"Display",6}
}},
{"Grated Catwalk", new Dictionary<string, int>{
{"Girder",4},
{"SmallTube",20},
{"Construction",16}
}},
{"Grated Catwalk Wall", new Dictionary<string, int>{
{"Girder",4},
{"SmallTube",26},
{"Construction",20}
}},
Argus von Stein 16 May, 2021 @ 11:59am 
Update please. This script is very needed.
Francis 19 Feb, 2021 @ 11:58pm 
I noticed some typos in this. For regular non-large Thruster's , each entry of [type] thruster has an 's' at the end of the string. I.E. you have "Atmospheric Thrusters" when it should be "Atmospheric Thruster". This is also true in @John Macmillan 's version.
Additionally I have noticed that large grid "Cockpit" incorrectly is labled as using Interior Plates when it uses regular steel plates. This might have just been an update change however. (Perhaps the thruster names may have also been from an update?)
I was able to make the necessary change and get it working (along with adding Sci-Fi entries for all thrusters, as well as Industrial Cockpit.)
DarkSky 19 Nov, 2020 @ 3:55pm 
a few of your links dont work can you fix them, please?
CactusCraze 19 Jun, 2020 @ 1:16pm 
Does this still work? Ive been doing things correctly and its still isnt working.