Space Engineers

Space Engineers

Taleden's Inventory Manager
Better Stone Mod + TIM
I have been using the better stone mod, but it has made the refinery [TIM AUTO] useless for me. The only way I can get TIM to alternate which ores to refine is to type in [TIM Ore:5]. That makes it so TIM gets through a couple stacks of Ore before replenishing the refineries.

The better stone mod changes the original name of the ores but gives you different types or vanilla ingots when refined. Is there a way to tell Tim which new ores produce which Ingots so he can go back to managing my Ingot quota properly.
< >
Showing 1-12 of 12 comments
LexisDark 6 Jul, 2017 @ 1:25pm 
that's something of interest for me too.
thought about a ranking system depending on not achieved quotas....
Although i realy don't see it coming ......
Spite 17 Jul, 2017 @ 2:10am 
I just set my Refineries to [TIM AUTO Ore] or change the name of the refinery to eg. [TIM Glaucodot] if i want them to focus a specific ore.
LexisDark 21 Jul, 2017 @ 3:23am 
true....possible....but that way u are only abe to process them thruogh TIM, but not able to use them for Ingots in relation to their components.
I was aiming for them to work depending on my quotas.
As there are no Ingots for the new ores there can't be any corrsponding quotas.
LexisDark 21 Jul, 2017 @ 3:40am 
i presume
DarkThemes 7 Oct, 2017 @ 5:22pm 
For now I've found a temporary workaround.

In taleden's code, there's a section which allows ores to be added which don't correspond to the ingots they produce. It is a dictionary called ORE_PRODUCT. By adding new entries for each item, you can get tim to recognize how to process new ores.

Here's an example that adds Better Stone ores, which I'm using quite happily so far. Paste it into the spot where ORE_PRODUCT is, and make sure to delete the comment above in order to fit within the character limit.

static readonly Dictionary<string,string> ORE_PRODUCT = new Dictionary<string,string> { {"ICE", ""}, {"ORGANIC", ""}, {"SCRAP", "IRON"}, {"DENSE IRON", "IRON"}, {"ICY IRON", "IRON"}, {"HEAZLEWOODITE", "NICKEL"}, {"CATTIERITE", "COBALT"}, {"PYRITE", "GOLD"}, {"TAENITE", "NICKEL"}, {"COHENITE", "NICKEL"}, {"KAMACITE", "NICKEL"}, {"GLAUCODOT", "COBALT"}, {"ELECTRUM", "GOLD"}, {"PORPHYRY", "GOLD"}, {"SPERRYLITE", "PLATINUM"}, {"NIGGLIITE", "PLATINUM"}, {"GALENA", "SILVER"}, {"CHLORARGYRITE", "SILVER"}, {"COOPERITE", "NICKEL"}, {"PETZITE", "SILVER"}, {"HAPKEITE", "IRON"}, {"DOLOMITE", "MAGNESIUM"}, {"SINOITE", "SILICON"}, {"OLIVINE", "SILICON"}, {"QUARTZ", "SILICON"}, {"AKIMOTOITE", "SILICON"}, {"WADSLEYITE", "SILICON"}, {"CARNOTITE", "URANIUM"}, {"AUTUNITE", "URANIUM"}, {"URANIAURITE", "GOLD"} };

You can add as many as you'd like, but unfortunately TIM assumes that each ore only produces 1 product.

To support the ores which have multiple ingot products, I would need to rewrite a section of the code to understand that there are ores which produce multiple ingots. Then it would need to know that some of those ores are better to use than others when you need a particular ingot.
Last edited by DarkThemes; 7 Oct, 2017 @ 5:34pm
LexisDark 11 Oct, 2017 @ 2:15pm 
So.. this way at least TIM refines the new ore for one Ingot-type only. And understanding, that TIM basic programming stucture is not capable of multiple ingots per ore is good to know in and of itself......Well, hopping for mod support in a another mod ( script= quasi-mod) is kind of hopeless ^^. But thanks for the reply/workaround ;-P
LexisDark 11 Oct, 2017 @ 2:26pm 
Double entries are not possible ? If Icy Iron lists Iron and Ice in two sperate entrys, then ''slots'' for Iron as well as Ice would be used for Icy Iron seperately.........There are multiple listings for ingots so the problem is multiple listings of ore only, huh....Maybe time to play a little bit around an ''fresh up'' on coding, because i was just looking for the right occasion ;-P
DarkThemes 12 Oct, 2017 @ 8:20pm 
Yeah, at the moment the code iterates over ores, assuming their ingots will have the same name. It also assumes that each ore produces one object, because ORE_PRODUCTS was not designed to be a dictionary of lists. And it saves the "oreLevel" (a percentage of ingot quota fulfilment) instead of the relative value of refining a particular ore (change in fulfilment of pooled quotas for ingredients produced). The first place you'd rewrite would be the section right after "// scan inventory levels".

Frankly TIM is written in spaghetti paradigm so cleaning it up will be a few hours of work. There's a lot of abstraction it simply doesn't make, so things are repeated in many places. If the quota fulfilment sections were written as a constrain solving problem, it'd be a lot easier to change.
DranKof 1 Dec, 2017 @ 12:43pm 
Hello everyone, I am the author of Better Stone. Someone on said mod's page just directed me to this thread, I will try to somehow inform everyone of how to add the workaround in and if I can add this or any other workaround directly into my mod I'll do just that. Thanks for your posted block of code, @Kitsunay .
DranKof 2 Dec, 2017 @ 6:23pm 
I have been looking through it and considered changing the orders in the blueprints...but any other efforts would be kinda overkill. I can confirm the method provided above by Kitsunay works, only under the current version of TIM, it takes too many lines and the program refuses to save, so use this version instead!

// Item types which may have quantities which are not whole numbers. static readonly HashSet<string> FRACTIONAL_TYPES = new HashSet<string> { "INGOT", "ORE" }; static readonly Dictionary<string,string> ORE_PRODUCT = new Dictionary<string,string> { {"ICE", ""}, {"ORGANIC", ""}, {"SCRAP", "IRON"}, {"DENSE IRON", "IRON"}, {"ICY IRON", "IRON"}, {"HEAZLEWOODITE", "NICKEL"}, {"CATTIERITE", "COBALT"}, {"PYRITE", "GOLD"}, {"TAENITE", "NICKEL"}, {"COHENITE", "COBALT"}, {"KAMACITE", "NICKEL"}, {"GLAUCODOT", "COBALT"}, {"ELECTRUM", "GOLD"}, {"PORPHYRY", "GOLD"}, {"SPERRYLITE", "PLATINUM"}, {"NIGGLIITE", "PLATINUM"}, {"GALENA", "SILVER"}, {"CHLORARGYRITE", "SILVER"}, {"COOPERITE", "PLATINUM"}, {"PETZITE", "SILVER"}, {"HAPKEITE", "SILICON"}, {"DOLOMITE", "MAGNESIUM"}, {"SINOITE", "SILICON"}, {"OLIVINE", "MAGNESIUM"}, {"QUARTZ", "SILICON"}, {"AKIMOTOITE", "MAGNESIUM"}, {"WADSLEYITE", "MAGNESIUM"}, {"CARNOTITE", "URANIUM"}, {"AUTUNITE", "URANIUM"}, {"URANIAURITE", "GOLD"} };
valdindor 20 Feb, 2018 @ 3:42am 
Originally posted by DranKof:
I have been looking through it and considered changing the orders in the blueprints...but any other efforts would be kinda overkill. I can confirm the method provided above by Kitsunay works, only under the current version of TIM, it takes too many lines and the program refuses to save, so use this version instead!

// Item types which may have quantities which are not whole numbers. static readonly HashSet<string> FRACTIONAL_TYPES = new HashSet<string> { "INGOT", "ORE" }; static readonly Dictionary<string,string> ORE_PRODUCT = new Dictionary<string,string> { {"ICE", ""}, {"ORGANIC", ""}, {"SCRAP", "IRON"}, {"DENSE IRON", "IRON"}, {"ICY IRON", "IRON"}, {"HEAZLEWOODITE", "NICKEL"}, {"CATTIERITE", "COBALT"}, {"PYRITE", "GOLD"}, {"TAENITE", "NICKEL"}, {"COHENITE", "COBALT"}, {"KAMACITE", "NICKEL"}, {"GLAUCODOT", "COBALT"}, {"ELECTRUM", "GOLD"}, {"PORPHYRY", "GOLD"}, {"SPERRYLITE", "PLATINUM"}, {"NIGGLIITE", "PLATINUM"}, {"GALENA", "SILVER"}, {"CHLORARGYRITE", "SILVER"}, {"COOPERITE", "PLATINUM"}, {"PETZITE", "SILVER"}, {"HAPKEITE", "SILICON"}, {"DOLOMITE", "MAGNESIUM"}, {"SINOITE", "SILICON"}, {"OLIVINE", "MAGNESIUM"}, {"QUARTZ", "SILICON"}, {"AKIMOTOITE", "MAGNESIUM"}, {"WADSLEYITE", "MAGNESIUM"}, {"CARNOTITE", "URANIUM"}, {"AUTUNITE", "URANIUM"}, {"URANIAURITE", "GOLD"} };


For me it says I am 143 lines over the limit. Did you remove some things?
valdindor 20 Feb, 2018 @ 3:43am 
nvm i was reading it long. Just had to delete a empty line
< >
Showing 1-12 of 12 comments
Per page: 1530 50