167 lines
5.4 KiB
Plaintext
167 lines
5.4 KiB
Plaintext
#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 */)
|
|
.where('-', <blockstate:deepmoblearning:simulation_chamber>)
|
|
.where('C', CTPredicate.states(<metastate:gcym:large_multiblock_casing:11>)
|
|
| controller.autoAbilities(true, false, true, true, false, false, false))
|
|
.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();
|
|
dml_sim_chamber.hasMaintenanceMechanics = false;
|
|
dml_sim_chamber.hasMufflerMechanics = false;
|
|
|
|
//Recipe for Controller
|
|
makeShaped("simulation_controller", <metaitem:multiblocktweaker:dml_sim_chamber>,
|
|
["MHM",
|
|
"RCR",
|
|
"MEM"],
|
|
{ M : <metaitem:circuit.wetware_mainframe>,
|
|
R : <metaitem:robot.arm.uv>,
|
|
C : <gcym:large_multiblock_casing:11>,
|
|
E : <draconicevolution:draconic_energy_core>,
|
|
H : <contenttweaker:heartofauniverse>
|
|
});
|
|
|
|
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>)
|
|
.notConsumable(itemUtils.getItem(model_prefix + mob))
|
|
.outputs(pristine_types[mob])
|
|
.chancedOutput(itemUtils.getItem(pristine_prefix + mob), PRISTINE_CHANCE_FIXED * 100, 0)
|
|
.buildAndRegister();
|
|
}
|
|
|
|
|