modded7/overrides/scripts/multiblock_dml.zs

161 lines
5.2 KiB
Plaintext
Raw Normal View History

2022-03-24 23:11:34 +08:00
#packmode normal
2022-02-01 19:10:40 +08:00
#modloaded deepmoblearning
import mods.gregtech.multiblock.Builder;
import mods.gregtech.multiblock.FactoryBlockPattern;
import mods.gregtech.multiblock.RelativeDirection;
import mods.gregtech.multiblock.functions.IPatternBuilderFunction;
import mods.gregtech.IControllerTile;
import mods.gregtech.multiblock.CTPredicate;
import mods.gregtech.multiblock.IBlockPattern;
import mods.gregtech.recipe.FactoryRecipeMap;
import mods.gregtech.recipe.RecipeMap;
import crafttweaker.data.IData;
import crafttweaker.world.IFacing;
import crafttweaker.item.IItemStack;
import crafttweaker.item.IItemCondition;
import scripts.common.makeShaped as makeShaped;
// from DML's config
val mobs as int[string] = {
// mob RF/t
"zombie": 64,
"skeleton": 64,
"creeper": 64,
"spider": 64,
"slime": 64,
"witch": 512,
"blaze": 1024,
"ghast": 1024,
"wither_skeleton": 1024,
"enderman": 2048,
"wither": 6666,
"dragon": 6666,
"shulker": 512,
"guardian": 1024,
"thermal_elemental": 1024
};
val pristine_types as IItemStack[string] = {
// mob pristine type
"zombie": <deepmoblearning:living_matter_overworldian>,
"skeleton": <deepmoblearning:living_matter_overworldian>,
"creeper": <deepmoblearning:living_matter_overworldian>,
"spider": <deepmoblearning:living_matter_overworldian>,
"slime": <deepmoblearning:living_matter_overworldian>,
"witch": <deepmoblearning:living_matter_overworldian>,
"blaze": <deepmoblearning:living_matter_hellish>,
"ghast": <deepmoblearning:living_matter_hellish>,
"wither_skeleton": <deepmoblearning:living_matter_hellish>,
"enderman": <deepmoblearning:living_matter_extraterrestrial>,
"wither": <deepmoblearning:living_matter_extraterrestrial>,
"dragon": <deepmoblearning:living_matter_extraterrestrial>,
"shulker": <deepmoblearning:living_matter_extraterrestrial>,
"guardian": <deepmoblearning:living_matter_overworldian>,
"thermal_elemental": <deepmoblearning:living_matter_overworldian>
};
val model_prefix = "deepmoblearning:data_model_";
val pristine_prefix = "deepmoblearning:pristine_matter_";
//// from DML's config
//val pristine_chances as int[] = [
// 5,
// 10,
// 20,
// 30
//];
//
//// from DML's config
//val maxExperience as int[] = [
// 0,
// 50,
// 250,
// 500
//];
val name as string = "dml_sim_chamber";
val dml_sim_chamber = Builder.start("dml_sim_chamber", 3100)
.withPattern(function(controller as IControllerTile) as IBlockPattern {
return FactoryBlockPattern.start()
.aisle(
"CCCCC",
"DEEED",
"DEEED",
"DEEED",
"CCCCC"
)
.aisle(
"CCCCC",
"GOOOG",
"DOOOD",
"GOOOG",
"CGGGC"
)
.aisle(
"CCCCC",
"GOOOG",
"DO-OD",
"GOOOG",
"CGGGC"
)
.aisle(
"CCCCC",
"GOOOG",
"DOOOD",
"GOOOG",
"CGGGC"
)
.aisle(
"CCSCC",
"DEGED",
"DGGGD",
"DEGED",
"CCCCC"
)
.where('S', controller.self())
.where('D', <metastate:gcym:large_multiblock_casing:5>)
.where('E', <metastate:gregtech:meta_block_compressed_2001:2>) // enderium
.where('G', <metastate:appliedenergistics2:quartz_vibrant_glass:0>)
.where('O', <metastate:extendedcrafting:storage:4> /* omnium */)
2022-08-19 15:12:45 +08:00
.where('-', CTPredicate.getAny())
Fix and Improve Custom Multis (#483) Adds Front Overlays back Fix Muffler Hatch not being allowed everywhere (multiverse) Adds Maintenance and Min Casing Requirements to all multis Add distinct mode to some multis Note: the HM crafting recipe for naq reactors has been removed, as the new assembly line recipe added applies to both NM and HM. Fixes #504 Fixes #505 Fixes #513 [EXPAND] [[messages]] messageTitle = "Improve Custom Multis" messageBody = """ [COMBINE] commits = [\"bd58b9072f45d647734ae66168cbd27bf9b2f220\"] [COMBINE] """ [[messages]] messageTitle = "Fix Custom Multis" messageBody = """ [BUG] [IGNORE] checks = { compareNot = \"1.7-alpha-1\" } [IGNORE] [DETAILS] details = [ \"Fixes Multiverse Projector Muffler Hatch Issues\", \"Fixes Naquadah Reactors\" ] [DETAILS] """ [EXPAND] [FIXUP] [[fixes]] sha = "bd58b9072f45d647734ae66168cbd27bf9b2f220" newTitle = "Update GT and Related Mods for 1.7" newBody = """ [EXPAND] [[messages]] messageTitle = \"Update GT to 2.7.4\" messageBody = \"\"\" [BREAKING] [DETAILS] details = [ \\"**Lots of Recipes have been moved to the Assembly Line, and now require Assembly Line Research.**\\", \\"Adds Assembly Line Research\\", \\"Adds ME Hatches and Buses, for combining Multiblocks with AE Networks\\", \\"Adds Filtered Output Hatches\\", \\"Adds EU Multiblock Power Storage\\", \\"Adds Multiblock Transformer and Laser Power Transfer\\", \\"Adds Long Distance Pipes\\", \\"Creating Waypoints in the Prospector\\", \\"Fixing many bugs\\", \\"And many more!\\" ] [DETAILS] \"\"\" [[messages]] messageTitle = \"Multiblock Changes\" messageBody = \"\"\" [BREAKING] [DETAILS] details = [ \\"Multiblocks accept a new **maximum** of 2 Energy Hatches.\\", \\"All Custom Multiblocks, such as Naquadah Reactors and Multiverse Projectors, now have **minimum casing requirements** and a **maintenance hatch**.\\", \\"Some Custom Multiblocks now have Distinct Mode\\", \\"All Custom Multiblocks now have custom Front Overlays\\", \\"Reworked & Improved Multiblock UIs\\" ] [DETAILS] \"\"\" [EXPAND] """ [FIXUP]
2023-11-09 09:21:58 +11:00
.where('C', CTPredicate.states(<metastate:gcym:large_multiblock_casing:11>).setMinGlobalLimited(30)
| controller.autoAbilities(true, true, true, true, false, false, false))
2022-02-01 19:10:40 +08:00
.build();
} as IPatternBuilderFunction)
.withRecipeMap(
FactoryRecipeMap.start("dml_sim_chamber")
.minInputs(2)
.maxInputs(2)
.minOutputs(2)
.maxOutputs(2)
.build())
.withBaseTexture(<metastate:gcym:large_multiblock_casing:11>)
.buildAndRegister();
Fix and Improve Custom Multis (#483) Adds Front Overlays back Fix Muffler Hatch not being allowed everywhere (multiverse) Adds Maintenance and Min Casing Requirements to all multis Add distinct mode to some multis Note: the HM crafting recipe for naq reactors has been removed, as the new assembly line recipe added applies to both NM and HM. Fixes #504 Fixes #505 Fixes #513 [EXPAND] [[messages]] messageTitle = "Improve Custom Multis" messageBody = """ [COMBINE] commits = [\"bd58b9072f45d647734ae66168cbd27bf9b2f220\"] [COMBINE] """ [[messages]] messageTitle = "Fix Custom Multis" messageBody = """ [BUG] [IGNORE] checks = { compareNot = \"1.7-alpha-1\" } [IGNORE] [DETAILS] details = [ \"Fixes Multiverse Projector Muffler Hatch Issues\", \"Fixes Naquadah Reactors\" ] [DETAILS] """ [EXPAND] [FIXUP] [[fixes]] sha = "bd58b9072f45d647734ae66168cbd27bf9b2f220" newTitle = "Update GT and Related Mods for 1.7" newBody = """ [EXPAND] [[messages]] messageTitle = \"Update GT to 2.7.4\" messageBody = \"\"\" [BREAKING] [DETAILS] details = [ \\"**Lots of Recipes have been moved to the Assembly Line, and now require Assembly Line Research.**\\", \\"Adds Assembly Line Research\\", \\"Adds ME Hatches and Buses, for combining Multiblocks with AE Networks\\", \\"Adds Filtered Output Hatches\\", \\"Adds EU Multiblock Power Storage\\", \\"Adds Multiblock Transformer and Laser Power Transfer\\", \\"Adds Long Distance Pipes\\", \\"Creating Waypoints in the Prospector\\", \\"Fixing many bugs\\", \\"And many more!\\" ] [DETAILS] \"\"\" [[messages]] messageTitle = \"Multiblock Changes\" messageBody = \"\"\" [BREAKING] [DETAILS] details = [ \\"Multiblocks accept a new **maximum** of 2 Energy Hatches.\\", \\"All Custom Multiblocks, such as Naquadah Reactors and Multiverse Projectors, now have **minimum casing requirements** and a **maintenance hatch**.\\", \\"Some Custom Multiblocks now have Distinct Mode\\", \\"All Custom Multiblocks now have custom Front Overlays\\", \\"Reworked & Improved Multiblock UIs\\" ] [DETAILS] \"\"\" [EXPAND] """ [FIXUP]
2023-11-09 09:21:58 +11:00
dml_sim_chamber.hasMaintenanceMechanics = true;
2022-02-01 19:10:40 +08:00
dml_sim_chamber.hasMufflerMechanics = false;
Fix and Improve Custom Multis (#483) Adds Front Overlays back Fix Muffler Hatch not being allowed everywhere (multiverse) Adds Maintenance and Min Casing Requirements to all multis Add distinct mode to some multis Note: the HM crafting recipe for naq reactors has been removed, as the new assembly line recipe added applies to both NM and HM. Fixes #504 Fixes #505 Fixes #513 [EXPAND] [[messages]] messageTitle = "Improve Custom Multis" messageBody = """ [COMBINE] commits = [\"bd58b9072f45d647734ae66168cbd27bf9b2f220\"] [COMBINE] """ [[messages]] messageTitle = "Fix Custom Multis" messageBody = """ [BUG] [IGNORE] checks = { compareNot = \"1.7-alpha-1\" } [IGNORE] [DETAILS] details = [ \"Fixes Multiverse Projector Muffler Hatch Issues\", \"Fixes Naquadah Reactors\" ] [DETAILS] """ [EXPAND] [FIXUP] [[fixes]] sha = "bd58b9072f45d647734ae66168cbd27bf9b2f220" newTitle = "Update GT and Related Mods for 1.7" newBody = """ [EXPAND] [[messages]] messageTitle = \"Update GT to 2.7.4\" messageBody = \"\"\" [BREAKING] [DETAILS] details = [ \\"**Lots of Recipes have been moved to the Assembly Line, and now require Assembly Line Research.**\\", \\"Adds Assembly Line Research\\", \\"Adds ME Hatches and Buses, for combining Multiblocks with AE Networks\\", \\"Adds Filtered Output Hatches\\", \\"Adds EU Multiblock Power Storage\\", \\"Adds Multiblock Transformer and Laser Power Transfer\\", \\"Adds Long Distance Pipes\\", \\"Creating Waypoints in the Prospector\\", \\"Fixing many bugs\\", \\"And many more!\\" ] [DETAILS] \"\"\" [[messages]] messageTitle = \"Multiblock Changes\" messageBody = \"\"\" [BREAKING] [DETAILS] details = [ \\"Multiblocks accept a new **maximum** of 2 Energy Hatches.\\", \\"All Custom Multiblocks, such as Naquadah Reactors and Multiverse Projectors, now have **minimum casing requirements** and a **maintenance hatch**.\\", \\"Some Custom Multiblocks now have Distinct Mode\\", \\"All Custom Multiblocks now have custom Front Overlays\\", \\"Reworked & Improved Multiblock UIs\\" ] [DETAILS] \"\"\" [EXPAND] """ [FIXUP]
2023-11-09 09:21:58 +11:00
dml_sim_chamber.canBeDistinct = true;
dml_sim_chamber.frontOverlay = <cube_renderer:FUSION_REACTOR_OVERLAY>;
2022-02-01 19:10:40 +08:00
//Recipe for Controller
// Moved to Groovy
2022-02-01 19:10:40 +08:00
val DATA_MODEL_MAXIMUM_TIER = 4;
val PRISTINE_CHANCE_FIXED = 30; // in %
for mob, cost in mobs {
dml_sim_chamber.recipeMap.recipeBuilder()
.duration(301)
.EUt(cost / 4 as int)
.inputs(<deepmoblearning:polymer_clay>)
2023-08-29 13:18:59 +10:00
.notConsumable(itemUtils.getItem(model_prefix + mob).withEmptyTag())
2022-02-01 19:10:40 +08:00
.outputs(pristine_types[mob])
.chancedOutput(itemUtils.getItem(pristine_prefix + mob), PRISTINE_CHANCE_FIXED * 100, 0)
.buildAndRegister();
}