Unify thaumcraft plates

This commit is contained in:
jchung01
2025-05-20 20:21:53 -07:00
parent e51f3aa8ba
commit e8aa75b05b
6 changed files with 168 additions and 14 deletions
+11 -14
View File
@@ -45,12 +45,15 @@ recipes.addShapeless(<techreborn:ingot:1>*9, [<ore:blockBrass>]);
val brassplate = <ore:plateBrass>;
brassplate.remove(<railcraft:plate:11>);
brassplate.remove(<thaumcraft:plate:0>);
recipes.removeByRecipeName("thaumcraft:brassplate");
mods.immersiveengineering.MetalPress.removeRecipe(<railcraft:plate:11>);
mods.immersiveengineering.MetalPress.addRecipe(<techreborn:plates:18>, <ore:ingotBrass>, <immersiveengineering:mold:0>, 2000);
recipes.removeShapeless(<techreborn:plates:18>, [<immersiveengineering:tool:0>], true);
recipes.addShapeless(<techreborn:plates:18>,
recipes.removeShapeless(<thaumcraft:plate:0>, [<immersiveengineering:tool:0>], true);
recipes.addShapeless("plate_brass_ie", <techreborn:plates:18>,
[<immersiveengineering:tool:0>,
<ore:ingotBrass>]);
@@ -68,8 +71,6 @@ recipes.addShaped(<techreborn:ingot:1>,
mods.immersiveengineering.ArcFurnace.removeRecipe(<railcraft:ingot:9>);
mods.immersiveengineering.ArcFurnace.addRecipe(<techreborn:ingot:1>, <ore:ingotZinc>, null, 100, 512, [<ore:dustCopper>*3]);
mods.immersiveengineering.ArcFurnace.addRecipe(<techreborn:ingot:1>, <ore:dustZinc>, null, 100, 512, [<ore:ingotCopper>*3]);
mods.immersiveengineering.ArcFurnace.addRecipe(<techreborn:ingot:1>, <ore:dustZinc>, null, 100, 512, [<ore:dustCopper>*3]);
mods.immersiveengineering.ArcFurnace.addRecipe(<techreborn:ingot:1>, <ore:ingotZinc>, null, 100, 512, [<ore:ingotCopper>*3]);
//==================================================================
@@ -286,11 +287,13 @@ silverplate.remove(<bewitchment:silver_plate>);
silverplate.remove(<immersiveengineering:metal:33>);
silverplate.remove(<railcraft:plate:5>);
recipes.removeByRecipeName("bewitchment:compat/silver_plate");
mods.immersiveengineering.MetalPress.removeRecipe(<immersiveengineering:metal:33>);
mods.immersiveengineering.MetalPress.addRecipe(<thermalfoundation:material:322>, <ore:ingotSilver>, <immersiveengineering:mold:0>, 2000);
recipes.removeShapeless(<immersiveengineering:metal:33>, [<immersiveengineering:tool:0>], true);
recipes.addShapeless(<thermalfoundation:material:322>,
recipes.addShapeless("plate_silver_ie", <thermalfoundation:material:322>,
[<immersiveengineering:tool:0>,
<ore:ingotSilver>]);
@@ -691,26 +694,20 @@ irondust.remove(<careerbees:ingredients:4>);
val ironplate = <ore:plateIron>;
ironplate.remove(<immersiveengineering:metal:39>);
ironplate.remove(<railcraft:plate:0>);
// ironplate.remove(<techreborn:plates:0>);
ironplate.remove(<thaumcraft:plate:1>);
ironplate.remove(<libvulpes:productplate:1>);
recipes.remove(<thaumcraft:plate:1>);
recipes.addShaped(<thermalfoundation:material:32>*3,
[[<ore:ingotIron>,<ore:ingotIron>,<ore:ingotIron>]]);
recipes.removeByRecipeName("thaumcraft:ironplate");
mods.immersiveengineering.MetalPress.removeRecipe(<immersiveengineering:metal:39>);
mods.immersiveengineering.MetalPress.addRecipe(<thermalfoundation:material:32>, <ore:ingotIron>, <immersiveengineering:mold:0>, 2000);
recipes.removeShapeless(<immersiveengineering:metal:39>, [<immersiveengineering:tool:0>], true);
recipes.addShapeless(<thermalfoundation:material:32>,
recipes.addShapeless("plate_iron_ie", <thermalfoundation:material:32>,
[<immersiveengineering:tool:0>,
<ore:ingotIron>]);
recipes.addShapeless(<thaumcraft:plate:1>*3,
[<ore:plateIron>,
<ore:plateIron>,
<ore:plateIron>]);
mods.immersiveengineering.Crusher.removeRecipe(<immersiveengineering:metal:18>);
mods.immersiveengineering.Crusher.addRecipe(<thermalfoundation:material:0>*2, <ore:oreIron>, 2048, <thermalfoundation:material:69>, 0.1);
mods.immersiveengineering.Crusher.addRecipe(<thermalfoundation:material:0>, <ore:ingotIron>, 2048);
+28
View File
@@ -0,0 +1,28 @@
#modloaded thaumcraft techreborn
#loader mixin
import native.net.minecraft.item.Item;
import native.net.minecraft.item.ItemStack;
import native.techreborn.items.ingredients.ItemPlates as TRPlates;
/*
Unify plate drops for arcane bore.
Created by ChaosStrikez for Thaumcraft v6.1.BETA-26.
*/
#mixin {targets: "thaumcraft.common.entities.construct.EntityArcaneBore"}
zenClass mixinEntityArcaneBore {
#mixin Redirect
#{
# method: "func_70628_a",
# at: {
# value: "NEW",
# target: "(Lnet/minecraft/item/Item;)Lnet/minecraft/item/ItemStack;",
# ordinal: 5
# }
#}
function mbc_unifyBrassPlate(original as Item) as ItemStack {
return TRPlates.getPlateByName("brass");
}
}
@@ -0,0 +1,55 @@
#modloaded thaumcraft techreborn thermalfoundation
#loader mixin
import native.net.minecraft.item.Item;
import native.net.minecraft.item.ItemStack;
import native.cofh.thermalfoundation.item.ItemMaterial as ThermalPlates;
import native.techreborn.items.ingredients.ItemPlates as TRPlates;
/*
Unify plate drops for advanced crossbow turret.
Created by ChaosStrikez for Thaumcraft v6.1.BETA-26.
*/
#mixin {targets: "thaumcraft.common.entities.construct.EntityTurretCrossbowAdvanced"}
zenClass MixinEntityTurretCrossbowAdvanced {
#mixin Redirect
#{
# method: "func_70628_a",
# at: {
# value: "NEW",
# target: "(Lnet/minecraft/item/Item;II)Lnet/minecraft/item/ItemStack;",
# ordinal: 4
# }
#}
function mbc_unifyBrassPlate(original as Item, amount as int, meta as int) as ItemStack {
return TRPlates.getPlateByName("brass");
}
#mixin Redirect
#{
# method: "func_70628_a",
# at: {
# value: "NEW",
# target: "(Lnet/minecraft/item/Item;II)Lnet/minecraft/item/ItemStack;",
# ordinal: 5
# }
#}
function mbc_unifyIronPlate1(original as Item, amount as int, meta as int) as ItemStack {
return ThermalPlates.plateIron.copy();
}
#mixin Redirect
#{
# method: "func_70628_a",
# at: {
# value: "NEW",
# target: "(Lnet/minecraft/item/Item;II)Lnet/minecraft/item/ItemStack;",
# ordinal: 6
# }
#}
function mbc_unifyIronPlate2(original as Item, amount as int, meta as int) as ItemStack {
return ThermalPlates.plateIron.copy();
}
}
+60
View File
@@ -0,0 +1,60 @@
#modloaded thaumcraft
#loader lateAddTC
import native.net.minecraft.item.ItemStack;
import native.thaumcraft.api.golems.parts.GolemMaterial;
import native.thaumcraft.api.golems.parts.GolemHead;
import native.thaumcraft.api.golems.parts.GolemLeg;
import crafttweaker.item.IItemStack;
/*
Unify plates visually shown in the golem press.
*/
var unifiedPlates = {
<thaumcraft:plate:0>: <techreborn:plates:18>, // brass
<thaumcraft:plate:1>: <thermalfoundation:material:32>, // iron
<bewitchment:silver_plate>: <thermalfoundation:material:322>, // silver
} as IItemStack[IItemStack];
# Materials
for material in GolemMaterial.getMaterials() {
if (isStackValid(material.componentBase)) {
var baseComponent as IItemStack = material.componentBase.wrapper;
material.componentBase = unifyStack(baseComponent, unifiedPlates);
}
}
# Head
for head in GolemHead.getHeads() {
var components = head.components;
for i in 0 to components.length {
var component = components[i];
if (component instanceof ItemStack && isStackValid(component as ItemStack)) {
var stack as IItemStack = (component as ItemStack).wrapper;
components[i] = unifyStack(stack, unifiedPlates);
}
}
}
# Leg
for leg in GolemLeg.getLegs() {
var components = leg.components;
for i in 0 to components.length {
var component = components[i];
if (component instanceof ItemStack && isStackValid(component as ItemStack)) {
var stack as IItemStack = (component as ItemStack).wrapper;
components[i] = unifyStack(stack, unifiedPlates);
}
}
}
function isStackValid(stack as ItemStack) as bool {
return !(isNull(stack) || stack.isEmpty());
}
function unifyStack(stackIn as ItemStack, unifiedDict as IItemStack[IItemStack]) as ItemStack {
var stack as IItemStack = stackIn.wrapper;
for original, unified in unifiedDict {
if (stack.anyAmount().matches(original)) {
return (unified * stack.amount).native;
}
}
return stackIn;
}
@@ -92,6 +92,19 @@ registerInfusionRecipeFromAddon(`${tcAdditions}:crystal_crusher`, "TAR_CRYSTAL_C
]
);
# Unify brass plates
registerInfusionRecipeFromAddon(`${tcAdditions}:crystal_bore`, "TAR_CRYSTAL_BORE",
<thaumadditions:crystal_bore>, 5,
[
<aspect:exitium> * 20, <aspect:terra> * 10, <aspect:perditio> * 30
],
<thaumcraft:morphic_resonator>,
[
<thaumcraft:stone_arcane>, <techreborn:plates:18>, <thaumcraft:stone_arcane>,
<techreborn:plates:18>, <thaumcraft:stone_arcane>, <thaumcraft:mechanism_complex>
]
);
/*
The same as Infusion.registerRecipe(), but allows a namespace in the resource location.
ModTweaker only allows infusion recipes with the "thaumcraft" namespace, this allows any namespace.