Mod Feedback [1.7.10] Thermal Recycling Info/Support

  • The FTB Forum is now read-only, and is here as an archive. To participate in our community discussions, please join our Discord! https://ftb.team/discord

OreCruncher

Well-Known Member
Mod Developer
May 22, 2013
312
217
73
My Chair
Welcome to Recycling, Thermally!
Reduce! Reuse! Recycle!

in_action.png


Tired of accidentally creating 1e64 Pneumatic Servos when building machines in an Applied Energistics crafting grid? Have a bunch of iron and diamond armor looted from dungeon chests that you wish you can break apart? Have a bunch of metal blocks you want to combine to make new alloys, but don't want to break them into ingots, first? Well, this mod is for you!

Thermal Recycling is a Thermal Expansion 4.x add-on mod that adds several machines that can process all that extra stuff to produce raw materials and do useful things:
  • Thermal Recycler - breaks an item down into it's component parts, or converts them to scrap which can be used for other things.
  • Scrap Assessor - allows you to see how an item will be processed based on the processing core installed.
  • Composter - takes green and brown material as input and accelerates crop growth around the block.
  • Vending Machine - trade those items you don't need to other players.
  • Battery Rack - use RF charged devices to energize your power grid.
ComposterWorking.png


For a lot of basic items additional Redstone Furnace, Pulverizer, Sawmill, and Induction Smelter recipes are added so that ingredients can be recovered. For example, pulverizing an Iron Door will give back 6 Iron Dust. These recipes show up in the normal fashion with NEI.

The recipes for Thermal Recycler are not available via NEI because of the high variability of what it can produce.To get these recipes use the Scrap Assessor with the corresponding upgrade.

vending_setup.png


Some other highlights for Thermal Recycling:
pile_of_rubble.png


Further information about Thermal Recycling can be found on the Wiki. A complete list of supported mods can be found here.

I would like to hear from you! Feel free to PM any comments. Also, if you have a suggestion for improving the mod go to the projects Issue page and create an entry.

If you find a bug the best place to get let me know about it is the Issue tracker. This allows others from different sites to see the problem and allows me to track it in a better way.

Downloads
You can find official downloads on the CurseForge page for the mod.

Donations
I am fortunate in life and I believe in paying it forward. Instead of asking for donations, I ask that you give to causes that improve the world, or to volunteer locally.
 
Last edited:

OreCruncher

Well-Known Member
Mod Developer
May 22, 2013
312
217
73
My Chair
Version v0.4.1.3 is out! It adds:
  • Village Structure generation - find Vending Machines that will allow you to trade for items!
  • Manicured Grass - get that fancy grass look for your Minecraft mansion!
Find the release on CurseForge.
 

Golrith

Over-Achiever
Trusted User
Nov 11, 2012
3,834
2,137
248
Looks interesting, does the mod cope with minetweaked recipes, and multiple crafting recipes for an item (for example (crazy example), if block A could be crafted from string+paper, or from Enderium Blocks, what do you get from recycling block A)?
 

OreCruncher

Well-Known Member
Mod Developer
May 22, 2013
312
217
73
My Chair
MineTweaked recipes - good question. Thermal Recycling scans the crafting recipe list inside Forge during the postInit() phase. I guess my answer would be it depends on which mod gets invoked first: Thermal Recycling or MineTweaker. I will add this to my list of things to look at.

Multiple recipes - it depends. If two or more recipes have the same exact output the first recipe it comes across will be used because the assumption is the recipes are equivalent. If the recipes have different quantities, such as the Phyto-grow recipes from Thermal Expansion, it will use the recipe with the highest quantity output. The assumption here is that the recipe with the higher quantity output is the more expensive one and reduces the chance of some sort of resource "breeding" loop. All this being said, if there is a situation that just can't be made to work in an automated way I can handcraft a recipe to work around the issue. I had to do this for BuildCraft when ExtraTiC is installed because the gear recipes from ExtraTiC are cheaper and Thermal Recycling wants to use the recipes from BuildCraft.

EDIT: I should also mention that by default if a mod is not on the "supported" list Thermal Recycling will not attempt to reverse engineer recipes from that mod, and all items from that mod will have a Scrap Value of "none". If there is enough demand I can add additional mods to the supported list by creating a mod specific support plugin.

EDIT2: Took a look at MineTweaker operation. Based on what I see it will not get the tweaked recipes. MineTweaker waits until server start to apply the scripts which is after the point Thermal Recycling reverse engineers the recipes. I have some ideas for handling.

EDIT3: Here is a link to an ALPHA build that contains the changes to support tweaked recipes. At the moment I am not going to place out on CurseForge because I don't want someone pulling it down because it is "new and shiny".
 
Last edited:
  • Like
Reactions: Yusunoha

OreCruncher

Well-Known Member
Mod Developer
May 22, 2013
312
217
73
My Chair
For any that are interested I just posted an ALPHA release on CurseForge that provides MineTweaker3 scripting support. With tweaker scripts you can modify item attributes (scrap values, compost type, etc.) as well as manipulate recipes for the Thermal Recycler. With scripts you can do quite a bit in providing support for mods that I do not have plugins for not to mention hotfixing Recycler recipes that somehow turn themselves into a continuous resource stream.

I would appreciate thoughts and commentary on the usability of the API I provide. Because this is an ALPHA release the API is subject to change based on feedback. Also, do not include in any public packs. Though I think these changes are stable I have not done all the due diligence I think is required.

Anyhow, happy scripting and scrapping. :) I look forward to your feedback.
 
  • Like
Reactions: Yusunoha

OreCruncher

Well-Known Member
Mod Developer
May 22, 2013
312
217
73
My Chair
Current version is v0.4.2.5. Updates contain a collection of bug fixes reported from players and OpenEye:

NEW:
  • Ability to blacklist a Thermal Recycling recipe by specifying specific ItemStack signatures that would show up in output. An example (and the default value) is ProjectE's Philosophers stone. Keep in mind that for a given item there may be multiple recipes - this only affects recipes that have output components that match one or more of the blacklist items.
FIXES:
  • OpenEye: Abstract method exception trying to resolve name of a Forestry like backpack. Seen once, and it isn't a Thermal Recycling bug. The change is a defensive measure - no sense bringing down the server/client over a lousy name. :)
  • Automatically scrub reusable items from Thermal Recycling recipe output. An example is ProjectE's Philosophers Stone. Other items that could fall into this category are reusable tools from IC2 and such.
  • OpenEye: Worldgen crash when other mods break Pile of Rubble (Tinkers Ore berry bushes)
  • Pile of Rubble world gen now takes into account sea level of a world when generating. Twilight forest should no longer look like a xorn used it as it's personal restroom.
Mod authors: if you have a mod check out OpenEye.
 
  • Like
Reactions: Lethosos

OreCruncher

Well-Known Member
Mod Developer
May 22, 2013
312
217
73
My Chair
Current version is v0.4.2.7. Update summaries since v0.4.2.5:

NEW:
The Vending Machine is now a multiblock like structure. When placed into the world the top block will be filled out with a "gag" block automatically. Interacting with the top block will have the same behavior as if a player interacted with the bottom block. The Waila HUD will show the block as a Vending Machine, and the "gag" block is hidden from NEI.

Existing Vending Machines in a saved world will not have this upper block. A players interaction with the Vending Machine will be as it was - e.g. opening the Vending Machine by clicking the bottom block. To get this upper block the Vending Machine needs to be replaced. (This behavior is intentional. Because there wasn't an actual upper block for the Vending Machine it was possible to place a real block into that space. I decided it was safer to preserve the existing world state than to outright replacing the top block.)

FIXES:
  • [OpenEye] Defensive code in vending machine render logic for mods that do not handle null world objects in EntityItem
  • [OpenEye] Defensive code for when TileEntity meta data is somehow incorrect
  • [FIX] Thaumium boots now smelt to 4 ingots
If you have ideas or suggestions make an entry in the Issue tracker. Thanks!
 
  • Like
Reactions: mattp_12

RedBoss

New Member
Jul 29, 2019
3,300
0
0
Is there a way to limit the rubble to spawning in specific dimensions. For example, using RR3, rubble litters even the treetops of the Twilight Forest. I presume its due to TF having a lower y level to accommodate the trees, but due to that Ribble is everywhere. I like having it in the over world caves, but I've had to disable it period due to the TF dimensional litter.
 

OreCruncher

Well-Known Member
Mod Developer
May 22, 2013
312
217
73
My Chair
Is there a way to limit the rubble to spawning in specific dimensions. For example, using RR3, rubble litters even the treetops of the Twilight Forest. I presume its due to TF having a lower y level to accommodate the trees, but due to that Ribble is everywhere. I like having it in the over world caves, but I've had to disable it period due to the TF dimensional litter.

What version do you have installed? Starting with v0.4.2.5 the biome decorator takes into account the "sea level" of the dimension (getAverageGroundLevel()). The specific bug report was against Twilight Forest. Note that the density of the rubble piles in a given chunk is based on sea level being 64 (default for Overworld). The density will automatically scale up/down based on the world sea level as compared to 64: higher than 64 the higher the density; less than 64 the density is less.

As for whether there is dimension control - there isn't. The actual generation of rubble piles occurs during "flower" generation. So if a world supports flowers it will have rubble piles.

(I don't think RR has updated to a newer version of Thermal Recycling as of yet. Nero is aware.)
 
  • Like
Reactions: RedBoss

Pip69

New Member
Jul 29, 2019
286
0
0
I'm having trouble Tweaking the recipes. I may be doing this entirely wrong, and if there is some kind of instructions out there, my google-fu failed me

Using version 1.7.10-0.4.2.7 I get:
ERROR: Recycling.zs:6 > No such member: ExtractionDataRegistry
ERROR: Recycling.zs:6 > Not a valid type

The entirety of that file is:
// ================================================================================
//
//Recycling
import mods.recycling.ItemDataRegistry;
import mods.recycling.RecipeDataRegistry;
import mods.recycling.ExtractionDataRegistry;
ItemDataRegistry.setScrapValue(<customnpcs:npcPhone>, SCRAPVALUE_SUPERIOR);
//RecipeDataRegistry.add(<customnpcs:npcPhone>, <minecraft:gold_nugget>);
 

OreCruncher

Well-Known Member
Mod Developer
May 22, 2013
312
217
73
My Chair
I'm having trouble Tweaking the recipes. I may be doing this entirely wrong, and if there is some kind of instructions out there, my google-fu failed me

Using version 1.7.10-0.4.2.7 I get:
ERROR: Recycling.zs:6 > No such member: ExtractionDataRegistry
ERROR: Recycling.zs:6 > Not a valid type

The entirety of that file is:
// ================================================================================
//
//Recycling
import mods.recycling.ItemDataRegistry;
import mods.recycling.RecipeDataRegistry;
import mods.recycling.ExtractionDataRegistry;
ItemDataRegistry.setScrapValue(<customnpcs:npcPhone>, SCRAPVALUE_SUPERIOR);
//RecipeDataRegistry.add(<customnpcs:npcPhone>, <minecraft:gold_nugget>);

That is correct - you will get that error. Extraction recipe support is in the v0.4.3.0ALPHA+ releases.
 

OreCruncher

Well-Known Member
Mod Developer
May 22, 2013
312
217
73
My Chair
Thermal Recycling v0.4.3.3 is published!

Release Summary


NEW:
  • Changed internal workings of the extraction process so that it can be extended
  • Minetweaker 3 support so that other extraction recipes can be added
  • Added ability to extract Soulsand, Netherrack, End Stone, Pumpkins, Melon blocks, and Wheat into other resources
  • Thaumcraft infused stone can now be extracted to obtain 3 shards of the applicable type. Can extract amber and cinnibar ore as well.
  • Can white/black list dimensions for Pile of Rubble generation by changing configuration settings. Defaults for these settings essentially match current world gen behavior.
  • Soylent Green can now drop as a result of PvP player death (i.e. one player killing another).
CHANGES:
  • Process Vanilla recipes *first* before modded recipes. A Vanilla Recipe is one that has a Vanilla result and uses Vanilla components to construct. This should eliminate strange things like an Iron Pickaxe giving Wither Iron if Progressive Automation is installed. Note that Minetweaker scripts will have first crack at inserting recipes before the internal automated recipe processing.
FIXES:
  • Minor error in weight table selection logic. Prior to the change the statistical selection would have been slightly off.
  • Fixed issue with Thermal Expansion machine recipes. It was possible to have an incorrect decomp recipe if the recipe scanning logic encountered an upgrade or security recipe first before the machine recipe.
 

OreCruncher

Well-Known Member
Mod Developer
May 22, 2013
312
217
73
My Chair
Thermal Recycling v0.4.3.4 is released!

Release Summary

NEW:
  • Immersive Engineering support
FIXES:
  • Diamond sword pulverizer recipe now gives two diamonds instead of 1
  • Scrapboxes are again extractable. Was a derp on my part.
 

OreCruncher

Well-Known Member
Mod Developer
May 22, 2013
312
217
73
My Chair
Thermal Recycling v0.4.3.5 released!

Release Summary
NEW:
  • Soylent Yellow/Red made from extracting food items
  • Dutch-Belgian translations (thanks Joscrama)
  • Support for AgriCraft
FIXES:
  • OpenEye: Crate registrations with older versions of Forestry were failing
  • "Bent" ItemStacks in Forge recipe output causing recipe scanning to error
CHANGES:
  • Add Soylent Yellow/Red to Pile of Rubble drops
  • Register Fertile Land as a default soil block in AgriCraft 1.4.x+. This means you can put crop sticks on them. Note that AgriCraft 1.4.x is in BETA and may change. This feature was tested against BETA2. Existing AgriCraft 1.3.x will work but Fertile Land cannot be used as a soil block.
  • Updated library dependencies for dependent APIs.
 

OreCruncher

Well-Known Member
Mod Developer
May 22, 2013
312
217
73
My Chair
Thermal Recycling v1.0.1 RETAIL is released!

It's been a fun and interesting process to get the mod to this point. Learned a lot about Minecraft and Forge modding during this process. Thanks to those that have installed the mod, and to those that provided feedback.
 

Golrith

Over-Achiever
Trusted User
Nov 11, 2012
3,834
2,137
248
Using Thermal Recycling in a mod pack I'm working on. The rubble is great especially with the wasteland scavenging theme. How does the mod work out scrap values and what scrap boxes produce?
 

OreCruncher

Well-Known Member
Mod Developer
May 22, 2013
312
217
73
My Chair
Using Thermal Recycling in a mod pack I'm working on. The rubble is great especially with the wasteland scavenging theme. How does the mod work out scrap values and what scrap boxes produce?

If the mod is not directly supported by Thermal Recycling the scrap value for an item is "NONE". If the mod is directly supported the default scrap value is "STANDARD". Thermal Recycling has special logic that sets specific values for items if it is different from "STANDARD". As part of putting in mod support I review the items within a mod and decide what values to set. It is possible to change these values for all items by using MineTweaker scripts.

In terms of what scrap boxes produce there are two main category of things:
  • Using a scrap box by right click. Right now I have "hard coded" weight tables that determine what effects they will have. The chest loot effect uses the Minecraft chest loot tables to determine what drops. It's on my TODO list to make these effect tables accessible from MineTweaker. If you can read Java code the tables are set in this source file.
  • Using the Extraction core in the Thermal Recycler. Each type of scrap (the dust looking ones) have an extraction recipe. The potential results are coded in the mod itself. These recipes can be altered by using MineTweaker. Extraction of a scrap box is handled as a special case within the mod. The scrap box is counted as N pieces of scrap of the corresponding type. For example, a "Box of Superior Scrap" counts as 9 "Superior Scrap" when extracted.
EDIT: In the next release I am putting in Forge OreDictionary support. If a mod introduces a dust, ingot, block, ore, etc. and aliases the item to the applicable Forge OreDictionary name it will have an appropriate scrap level. For example, since Copper Ore has a scrap value of Standard, any ore registered to "oreCopper" will also be STANDARD.
 
Last edited:

Golrith

Over-Achiever
Trusted User
Nov 11, 2012
3,834
2,137
248
Very nice. I was thinking of putting scrap boxes as loot in another mods chests, the fact they they can link to the vanilla lists is great, as these lists will contain mod content. That actually solves an headache I was going to have.
 

OreCruncher

Well-Known Member
Mod Developer
May 22, 2013
312
217
73
My Chair
Thermal Recycling v1.0.2.2 is now available!

NEW:
  • Added Tinker and Dyer villager professions for village vending machine world gen
  • Use Forge OreDictionary to set scrap values for ores, dusts, nuggets, gems, and ingots for non-whitelist mods. For example, mods that define copper ores, ingots, dust, blocks, and nuggets and alias them to "oreCopper", "ingotCopper", "dustCopper", "blockCopper", and "nuggetCopper" will have their scrap value set appropriately.
FIXED:
  • OpenEye: NPE when handling Composter fluid sync between client and server
CHANGES:
  • More code refactor and alignment.
 
  • Like
Reactions: Golrith