0.5
This commit is contained in:
parent
0792b5bf1c
commit
b92b5a2bfb
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
|||||||
# Configuration file
|
# Configuration file
|
||||||
|
|
||||||
cache {
|
cache {
|
||||||
S:digest=a81acec191074d19bdef4e39ef9289ca
|
S:digest=a7a871e15321750d16fc5ea401c38803
|
||||||
|
|
||||||
# Caching can save processing time, if there are a lot of items. [default: true]
|
# Caching can save processing time, if there are a lot of items. [default: true]
|
||||||
B:enableCache=true
|
B:enableCache=true
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
cache {
|
cache {
|
||||||
# Waits as many hours, until it checks again. [range: 0 ~ 168, default: 24]
|
# Waits as many hours, until it checks again. [range: 0 ~ 168, default: 24]
|
||||||
I:interval=24
|
I:interval=24
|
||||||
S:lastCheck=1643795346482
|
S:lastCheck=1643885211648
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
|||||||
#Inventory Tweaks Configuration
|
#Inventory Tweaks Configuration
|
||||||
#(Regarding shortcuts, all key names can be found at: http://legacy.lwjgl.org/javadoc/org/lwjgl/input/Keyboard.html)
|
#(Regarding shortcuts, all key names can be found at: http://legacy.lwjgl.org/javadoc/org/lwjgl/input/Keyboard.html)
|
||||||
#Wed Feb 02 17:50:12 SGT 2022
|
#Thu Feb 03 18:48:21 SGT 2022
|
||||||
enableMiddleClick=true
|
enableMiddleClick=true
|
||||||
showChestButtons=true
|
showChestButtons=true
|
||||||
enableSortingOnPickup=false
|
enableSortingOnPickup=false
|
||||||
|
@ -16,10 +16,6 @@ global {
|
|||||||
|
|
||||||
|
|
||||||
lavapickaxe {
|
lavapickaxe {
|
||||||
# Add blocks to the smelting blacklist of "Infused Lava Pickaxe"
|
|
||||||
# If You add want to add an item to the blacklist
|
|
||||||
# Add it in the following format: "<namespace>:<name>"
|
|
||||||
# Examples can be found inside the list itself
|
|
||||||
S:blacklist <
|
S:blacklist <
|
||||||
minecraft:wet_sponge
|
minecraft:wet_sponge
|
||||||
minecraft:sponge
|
minecraft:sponge
|
||||||
@ -29,7 +25,6 @@ lavapickaxe {
|
|||||||
|
|
||||||
|
|
||||||
maps {
|
maps {
|
||||||
# Enable/Disable the ability of the maps to spawn bosses, suck as the "Skeletal King" from the "Map of Sacrifice"
|
|
||||||
B:allowSpawnOfBosses=true
|
B:allowSpawnOfBosses=true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,12 +3,12 @@
|
|||||||
dimensions {
|
dimensions {
|
||||||
# The numeral id of the armorplus:arena dimension
|
# The numeral id of the armorplus:arena dimension
|
||||||
I:arenaDimensionID=120
|
I:arenaDimensionID=120
|
||||||
|
|
||||||
|
# Too unstable, unfinished to be enabled by default.
|
||||||
B:enableArenaDimension=false
|
B:enableArenaDimension=false
|
||||||
|
|
||||||
# Enable/Disable the realm of insanity
|
# Enable/Disable the realm of insanity
|
||||||
B:enableRealmOfInsanity=false
|
B:enableRealmOfInsanity=false
|
||||||
|
|
||||||
# Too unstable, unfinished to be enabled by default.
|
|
||||||
B:enableTheArenaDimension=false
|
B:enableTheArenaDimension=false
|
||||||
|
|
||||||
# The numeral id of the armorplus:realm_of_insanity dimension
|
# The numeral id of the armorplus:realm_of_insanity dimension
|
||||||
|
@ -70,7 +70,6 @@ mob_drops {
|
|||||||
}
|
}
|
||||||
|
|
||||||
skeletal_king {
|
skeletal_king {
|
||||||
# Enable/Disable the drops from the Skeletal King
|
|
||||||
B:skeletalKingDrop=true
|
B:skeletalKingDrop=true
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,20 +77,10 @@ mob_drops {
|
|||||||
|
|
||||||
|
|
||||||
skeletal_king {
|
skeletal_king {
|
||||||
# Set the Skeletal King's Armor
|
|
||||||
D:armor=8.0
|
D:armor=8.0
|
||||||
|
|
||||||
# Set the Skeletal King's Health
|
|
||||||
# Max value 1024
|
|
||||||
D:bossHealth=1024.0
|
D:bossHealth=1024.0
|
||||||
|
|
||||||
# Enable/Disable the Skeletal King's resistance buff effect
|
|
||||||
B:enableResistance=true
|
B:enableResistance=true
|
||||||
|
|
||||||
# Set the Skeletal King's Movement Speed
|
|
||||||
D:movementSpeed=0.6000000238418579
|
D:movementSpeed=0.6000000238418579
|
||||||
|
|
||||||
# Set the Skeletal King's resistance effect Level (0 = lvl 1)
|
|
||||||
I:resistanceAmplifier=0
|
I:resistanceAmplifier=0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,13 +22,8 @@ integrations {
|
|||||||
B:ultimateChaosImmunity=true
|
B:ultimateChaosImmunity=true
|
||||||
|
|
||||||
tconstruct {
|
tconstruct {
|
||||||
# Enable/Disable ender dragon scale material.
|
|
||||||
B:enableEnderDragonMaterial=true
|
B:enableEnderDragonMaterial=true
|
||||||
|
|
||||||
# Enable/Disable guardian scale material.
|
|
||||||
B:enableGuardianScaleMaterial=true
|
B:enableGuardianScaleMaterial=true
|
||||||
|
|
||||||
# Enable/Disable wither bone material.
|
|
||||||
B:enableWitherBoneMaterial=true
|
B:enableWitherBoneMaterial=true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1715,8 +1715,6 @@ recipes {
|
|||||||
|
|
||||||
# Enable/Disable The Cobalt armor Recipes
|
# Enable/Disable The Cobalt armor Recipes
|
||||||
B:enableCobaltArmorRecipes=true
|
B:enableCobaltArmorRecipes=true
|
||||||
|
|
||||||
# Enable/Disable The Electrical Ingot Recipes
|
|
||||||
B:enableElectricalIngotRecipes=true
|
B:enableElectricalIngotRecipes=true
|
||||||
|
|
||||||
# Enable/Disable The Elytra Recipe
|
# Enable/Disable The Elytra Recipe
|
||||||
@ -1760,8 +1758,6 @@ recipes {
|
|||||||
|
|
||||||
# Enable/Disable The Slime armor Recipes
|
# Enable/Disable The Slime armor Recipes
|
||||||
B:enableSlimeArmorRecipes=true
|
B:enableSlimeArmorRecipes=true
|
||||||
|
|
||||||
# Enable/Disable The Steel Ingot Recipes
|
|
||||||
B:enableSteelIngotRecipes=true
|
B:enableSteelIngotRecipes=true
|
||||||
|
|
||||||
# Enable/Disable The Super Star armor Recipes
|
# Enable/Disable The Super Star armor Recipes
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -237,14 +237,22 @@ general {
|
|||||||
##########################################################################################################
|
##########################################################################################################
|
||||||
|
|
||||||
"energy compat options" {
|
"energy compat options" {
|
||||||
# Enable Native GTEU to Forge Energy (RF and alike) on GT Cables and Wires.
|
# GTEU to Forge Energy ratio for converting EU to FE. Affects native conversion and Converters.
|
||||||
# Default: true
|
# Default: 4 FE == 1 EU
|
||||||
B:nativeEUToFE=true
|
|
||||||
|
|
||||||
# GTEU to Forge Energy (RF and alike) ratio.
|
|
||||||
# Default: 4 FE to 1 EU
|
|
||||||
# Min: 4.9E-324
|
# Min: 4.9E-324
|
||||||
# Max: 1.7976931348623157E308
|
# Max: 1.7976931348623157E308
|
||||||
|
D:euToFeRatio=4.0
|
||||||
|
|
||||||
|
# Forge Energy to GTEU ratio for converting FE to EU. Only affects converters.
|
||||||
|
# Default: 4 FE == 1 EU
|
||||||
|
# Min: 4.9E-324
|
||||||
|
# Max: 1.7976931348623157E308
|
||||||
|
D:feToEuRatio=4.0
|
||||||
|
|
||||||
|
# Enable Native GTEU to Forge Energy (RF and alike) on GT Cables and Wires.
|
||||||
|
# This does not disable Converters.
|
||||||
|
# Default: true
|
||||||
|
B:nativeEUToFE=true
|
||||||
D:rfRatio=4.0
|
D:rfRatio=4.0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ search {
|
|||||||
# Search mode for Colors (prefix: ^)
|
# Search mode for Colors (prefix: ^)
|
||||||
# [Default: disabled]
|
# [Default: disabled]
|
||||||
# [Valid: [enabled, require_prefix, disabled]]
|
# [Valid: [enabled, require_prefix, disabled]]
|
||||||
S:colorSearchMode=require_prefix
|
S:colorSearchMode=disabled
|
||||||
|
|
||||||
# Search mode for Creative Tab Names (prefix: %)
|
# Search mode for Creative Tab Names (prefix: %)
|
||||||
# [Default: disabled]
|
# [Default: disabled]
|
||||||
|
@ -43,7 +43,7 @@ world1855637915 {
|
|||||||
|
|
||||||
# Hide and unhide ingredients by clicking them in the list.
|
# Hide and unhide ingredients by clicking them in the list.
|
||||||
B:editEnabled=false
|
B:editEnabled=false
|
||||||
S:filterText=omni
|
S:filterText=black bronz
|
||||||
|
|
||||||
# Show the list of ingredients next to open GUIs.
|
# Show the list of ingredients next to open GUIs.
|
||||||
B:overlayEnabled=true
|
B:overlayEnabled=true
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#Splash screen properties
|
#Splash screen properties
|
||||||
#Wed Feb 02 17:48:52 SGT 2022
|
#Thu Feb 03 18:46:36 SGT 2022
|
||||||
background=0x837793
|
background=0x837793
|
||||||
memoryGood=0x78CB34
|
memoryGood=0x78CB34
|
||||||
font=0x0
|
font=0x0
|
||||||
|
BIN
overrides/mods/gregtech-1.12.2-2.1.1-beta.jar
Normal file
BIN
overrides/mods/gregtech-1.12.2-2.1.1-beta.jar
Normal file
Binary file not shown.
@ -1,3 +1,5 @@
|
|||||||
|
item.material.oreprefix.gemPerfect=Perfect %s
|
||||||
|
|
||||||
material.conductive_iron=Conductive Iron
|
material.conductive_iron=Conductive Iron
|
||||||
material.pulsating_iron=Pulsating Iron
|
material.pulsating_iron=Pulsating Iron
|
||||||
material.energetic_alloy=Energetic Alloy
|
material.energetic_alloy=Energetic Alloy
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "gregtech:items/material_sets/diamond/gem_perfect"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "gregtech:items/material_sets/emerald/gem_perfect"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "gregtech:items/material_sets/ruby/gem_perfect"
|
||||||
|
}
|
||||||
|
}
|
BIN
overrides/resources/gregtech/textures/items/gem_perfect.png
Normal file
BIN
overrides/resources/gregtech/textures/items/gem_perfect.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 273 B |
@ -0,0 +1,3 @@
|
|||||||
|
items=minecraft:skull
|
||||||
|
model=gem_perfect
|
||||||
|
nbt.SkullOwner.Properties.textures.0.Value=ewogICJ0aW1lc3RhbXAiIDogMTYxODA4MzU3MzU0NywKICAicHJvZmlsZUlkIiA6ICJmZDQ3Y2I4YjgzNjQ0YmY3YWIyYmUxODZkYjI1ZmMwZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJDVUNGTDEyIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzkyNmEyNDhmYmJjMDZjZjA2ZTJjOTIwZWNhMWNhYzhhMmM5NjE2NGQzMjYwNDk0YmVkMTQyZDU1MzAyNmNjNiIKICAgIH0KICB9Cn0
|
Binary file not shown.
After Width: | Height: | Size: 273 B |
Binary file not shown.
After Width: | Height: | Size: 273 B |
Binary file not shown.
After Width: | Height: | Size: 273 B |
@ -310,6 +310,9 @@ recipes.addShaped(<appliedenergistics2:quantum_ring>, [
|
|||||||
[<appliedenergistics2:material:24>, <metaitem:quantumstar>, <appliedenergistics2:material:24>],
|
[<appliedenergistics2:material:24>, <metaitem:quantumstar>, <appliedenergistics2:material:24>],
|
||||||
[<metaitem:plateStainlessSteel>, <appliedenergistics2:material:23>,<metaitem:plateStainlessSteel>]]);
|
[<metaitem:plateStainlessSteel>, <appliedenergistics2:material:23>,<metaitem:plateStainlessSteel>]]);
|
||||||
|
|
||||||
|
// Network Tool
|
||||||
|
recipes.addShapeless(<appliedenergistics2:network_tool>, [<ore:itemIlluminatedPanel>, <actuallyadditions:item_laser_wrench>]);
|
||||||
|
|
||||||
|
|
||||||
recipes.removeByRecipeName("appliedenergistics2:network/cells/storage_cell_1k");
|
recipes.removeByRecipeName("appliedenergistics2:network/cells/storage_cell_1k");
|
||||||
recipes.removeByRecipeName("appliedenergistics2:network/cells/storage_cell_4k");
|
recipes.removeByRecipeName("appliedenergistics2:network/cells/storage_cell_4k");
|
||||||
|
@ -328,8 +328,8 @@ blast_furnace.recipeBuilder().inputs([<metaitem:dustDraconium>]).fluidInputs([<l
|
|||||||
blast_furnace.recipeBuilder().inputs([<armorplus:material:3> * 4]).fluidInputs([<liquid:nitro_fuel>*8000]).outputs([<metaitem:ingotHotDraconium> * 2]).property("temperature", 6800).duration(20000).EUt(120).buildAndRegister();
|
blast_furnace.recipeBuilder().inputs([<armorplus:material:3> * 4]).fluidInputs([<liquid:nitro_fuel>*8000]).outputs([<metaitem:ingotHotDraconium> * 2]).property("temperature", 6800).duration(20000).EUt(120).buildAndRegister();
|
||||||
blast_furnace.recipeBuilder().inputs([<metaitem:dustDraconium>]).fluidInputs([<liquid:gasoline>*2000]).outputs(<metaitem:ingotHotDraconium>).property("temperature", 6800).duration(10000).EUt(120).buildAndRegister();
|
blast_furnace.recipeBuilder().inputs([<metaitem:dustDraconium>]).fluidInputs([<liquid:gasoline>*2000]).outputs(<metaitem:ingotHotDraconium>).property("temperature", 6800).duration(10000).EUt(120).buildAndRegister();
|
||||||
blast_furnace.recipeBuilder().inputs([<armorplus:material:3> * 4]).fluidInputs([<liquid:gasoline>*8000]).outputs([<metaitem:ingotHotDraconium> * 2]).property("temperature", 6800).duration(20000).EUt(120).buildAndRegister();
|
blast_furnace.recipeBuilder().inputs([<armorplus:material:3> * 4]).fluidInputs([<liquid:gasoline>*8000]).outputs([<metaitem:ingotHotDraconium> * 2]).property("temperature", 6800).duration(20000).EUt(120).buildAndRegister();
|
||||||
blast_furnace.recipeBuilder().inputs([<metaitem:dustDraconium>]).fluidInputs([<liquid:gasoline_premium>*800]).outputs(<metaitem:ingotHotDraconium>).property("temperature", 6800).duration(10000).EUt(120).buildAndRegister();
|
blast_furnace.recipeBuilder().inputs([<metaitem:dustDraconium>]).fluidInputs([<liquid:gasoline_premium>*500]).outputs(<metaitem:ingotHotDraconium>).property("temperature", 6800).duration(10000).EUt(120).buildAndRegister();
|
||||||
blast_furnace.recipeBuilder().inputs([<armorplus:material:3> * 4]).fluidInputs([<liquid:gasoline_premium>*3200]).outputs([<metaitem:ingotHotDraconium> * 2]).property("temperature", 6800).duration(20000).EUt(120).buildAndRegister();
|
blast_furnace.recipeBuilder().inputs([<armorplus:material:3> * 4]).fluidInputs([<liquid:gasoline_premium>*2000]).outputs([<metaitem:ingotHotDraconium> * 2]).property("temperature", 6800).duration(20000).EUt(120).buildAndRegister();
|
||||||
|
|
||||||
//Naquadah Alloy [tier 15] DISABLED IN FAVOR OF VANILLA RECIPE
|
//Naquadah Alloy [tier 15] DISABLED IN FAVOR OF VANILLA RECIPE
|
||||||
//blast_furnace.findRecipe(120, [<metaitem:dustNaquadahAlloy>], [null]).remove();
|
//blast_furnace.findRecipe(120, [<metaitem:dustNaquadahAlloy>], [null]).remove();
|
||||||
|
@ -1,206 +0,0 @@
|
|||||||
import crafttweaker.item.IItemStack;
|
|
||||||
import crafttweaker.item.IIngredient;
|
|
||||||
import crafttweaker.item.ITooltipFunction;
|
|
||||||
import crafttweaker.recipes.IRecipeFunction;
|
|
||||||
import crafttweaker.recipes.ICraftingInfo;
|
|
||||||
import crafttweaker.data.IData;
|
|
||||||
import crafttweaker.formatting.IFormattedText;
|
|
||||||
import mods.jei.JEI;
|
|
||||||
|
|
||||||
val framingMaterial as IIngredient = <*>.only(function(stack as IItemStack) as bool {
|
|
||||||
if(!stack.isItemBlock) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return stack.asBlock().definition.getStateFromMeta(stack.metadata).opaqueCube;
|
|
||||||
});
|
|
||||||
|
|
||||||
val sideIngredient = (<xtones:zane> | framingMaterial).marked("MatS");
|
|
||||||
val trimIngredient = (<extendedcrafting:storage:4> | framingMaterial).marked("MatT");
|
|
||||||
val frontIngredient = (<xtones:zane:15> | framingMaterial).marked("MatF");
|
|
||||||
|
|
||||||
<ore:handFramedThree>.add(<storagedrawers:customdrawers:*>,
|
|
||||||
<framedcompactdrawers:framed_drawer_controller>,
|
|
||||||
<framedcompactdrawers:framed_compact_drawer>,
|
|
||||||
<framedcompactdrawers:framed_slave>,
|
|
||||||
<contenttweaker:hand_framing_tool>);
|
|
||||||
|
|
||||||
<ore:handFramed>.addAll(<ore:handFramedThree>);
|
|
||||||
<ore:handFramed>.add(<storagedrawers:customtrim>);
|
|
||||||
|
|
||||||
function addInfo(stack as IItemStack) as IItemStack {
|
|
||||||
return stack.withDisplayName("Frame your drawers by hand!")
|
|
||||||
.withLore([
|
|
||||||
"Top left: sides",
|
|
||||||
"Top right: trim",
|
|
||||||
"Middle left: front"
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
function asData(stack as IItemStack) as IData {
|
|
||||||
return {
|
|
||||||
id: stack.definition.id,
|
|
||||||
Count: 1 as byte,
|
|
||||||
Damage: stack.metadata
|
|
||||||
} as IData;
|
|
||||||
}
|
|
||||||
|
|
||||||
static matKeys as string[] = [
|
|
||||||
"MatS",
|
|
||||||
"MatF",
|
|
||||||
"MatT",
|
|
||||||
] as string[];
|
|
||||||
|
|
||||||
function getRecipeOutput(out as IItemStack,
|
|
||||||
ins as IItemStack[string],
|
|
||||||
cInfo as ICraftingInfo) as IItemStack
|
|
||||||
{
|
|
||||||
val fromTag as IData[string] =
|
|
||||||
isNull(ins.drawer.tag) ?
|
|
||||||
{} as IData[string] :
|
|
||||||
ins.drawer.tag.asMap();
|
|
||||||
|
|
||||||
val tag = {} as IData[string];
|
|
||||||
for key, value in fromTag {
|
|
||||||
if !(matKeys has key) {
|
|
||||||
// it's not enough to just transfer the data as-is:
|
|
||||||
// taped drawers preserve the block's framing rather
|
|
||||||
// than taking on the new frame, so replace that too.
|
|
||||||
if (key == "tile") {
|
|
||||||
val tileTag = {} as IData[string];
|
|
||||||
for tileKey, tileVal in value.asMap() {
|
|
||||||
if !(matKeys has tileKey) {
|
|
||||||
tileTag[tileKey] = tileVal;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for matKey in matKeys {
|
|
||||||
if (ins has matKey) {
|
|
||||||
tileTag[matKey] = asData(ins[matKey]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
val tileData as any[any] = tileTag;
|
|
||||||
tag[key] = tileData as IData;
|
|
||||||
} else {
|
|
||||||
tag[key] = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for key in matKeys {
|
|
||||||
if (ins has key) {
|
|
||||||
tag[key] = asData(ins[key]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val ret as any[any] = tag;
|
|
||||||
return ins.drawer.withTag(ret as IData) * 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
val recipeFunction = function(out, ins, cinfo) { return getRecipeOutput(out, ins, cinfo); } as IRecipeFunction;
|
|
||||||
|
|
||||||
for front in [true, false] as bool[] {
|
|
||||||
for trim in [true, false] as bool[] {
|
|
||||||
val ingredients as IIngredient[][] = [
|
|
||||||
[
|
|
||||||
sideIngredient,
|
|
||||||
trim ? trimIngredient : null
|
|
||||||
],
|
|
||||||
[
|
|
||||||
front ? frontIngredient : null,
|
|
||||||
(front ? <ore:handFramedThree> : <ore:handFramed>).marked("drawer")
|
|
||||||
]
|
|
||||||
];
|
|
||||||
|
|
||||||
val ins as IItemStack[string] = {
|
|
||||||
MatS: sideIngredient.items[0],
|
|
||||||
drawer: <framedcompactdrawers:framed_compact_drawer>
|
|
||||||
};
|
|
||||||
|
|
||||||
if (front) {
|
|
||||||
ins["MatF"] = frontIngredient.items[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (trim) {
|
|
||||||
ins["MatT"] = trimIngredient.items[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
recipes.addShaped(
|
|
||||||
"hand_framing_" + (trim ? "trim_" : "") + (front ? "front_" : "") + "side",
|
|
||||||
addInfo(getRecipeOutput(null, ins, null)),
|
|
||||||
ingredients,
|
|
||||||
recipeFunction
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function getNested(inTag as IData, keys as string[], alt as IData) as IData {
|
|
||||||
var tag = inTag;
|
|
||||||
for key in keys {
|
|
||||||
if isNull(tag) return alt;
|
|
||||||
tag = tag.memberGet(key);
|
|
||||||
}
|
|
||||||
return isNull(tag) ? alt : tag;
|
|
||||||
}
|
|
||||||
|
|
||||||
val sticksIngredient = <ore:stickWood>.transformConsume(64);
|
|
||||||
val sticksRecipeFunction = function(out, ins, cinfo) {
|
|
||||||
var sticks as int = getNested(ins.hft.tag, ["sticks"], 0) as int;
|
|
||||||
for k, v in ins {
|
|
||||||
if k != "hft" {
|
|
||||||
sticks += v.amount;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ins.hft.updateTag({ "sticks": sticks });
|
|
||||||
} as IRecipeFunction;
|
|
||||||
val hftIngredient = <contenttweaker:hand_framing_tool>.marked("hft");
|
|
||||||
|
|
||||||
for stickStacks in 1 .. 9 {
|
|
||||||
var ingredients = [hftIngredient] as IIngredient[];
|
|
||||||
for i in 0 .. stickStacks {
|
|
||||||
ingredients += sticksIngredient.marked("stick" + i);
|
|
||||||
}
|
|
||||||
recipes.addShapeless(
|
|
||||||
"hand_framing_tool_sticks_" + stickStacks,
|
|
||||||
<contenttweaker:hand_framing_tool>.withTag({sticks: stickStacks}),
|
|
||||||
ingredients,
|
|
||||||
sticksRecipeFunction
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
<contenttweaker:hand_framing_tool>.addAdvancedTooltip(
|
|
||||||
function(stack as IItemStack) {
|
|
||||||
return "Sticks: " + (isNull(stack) ? "0" : getNested(stack.tag, ["sticks"], 0));
|
|
||||||
} as ITooltipFunction
|
|
||||||
);
|
|
||||||
|
|
||||||
function makeTagFunc(name as string) as ITooltipFunction {
|
|
||||||
val matTag = "Mat" + name[0];
|
|
||||||
return function(stack as IItemStack) as string {
|
|
||||||
val item as IItemStack =
|
|
||||||
isNull(stack) ?
|
|
||||||
null :
|
|
||||||
itemUtils.getItem(getNested(stack.tag, [matTag, "id"], "-"),
|
|
||||||
getNested(stack.tag, [matTag, "Damage"], 0));
|
|
||||||
return name + ": " + (isNull(item) ? "-" : item.displayName);
|
|
||||||
} as ITooltipFunction;
|
|
||||||
}
|
|
||||||
|
|
||||||
<contenttweaker:hand_framing_tool>.addAdvancedTooltip(makeTagFunc("Side"));
|
|
||||||
<contenttweaker:hand_framing_tool>.addAdvancedTooltip(makeTagFunc("Front"));
|
|
||||||
<contenttweaker:hand_framing_tool>.addAdvancedTooltip(makeTagFunc("Trim"));
|
|
||||||
|
|
||||||
recipes.addShaped(
|
|
||||||
"hand_framing_tool",
|
|
||||||
<contenttweaker:hand_framing_tool>,
|
|
||||||
[[null, null, <storagedrawers:framingtable>],
|
|
||||||
[null, <ore:stickWood>, null],
|
|
||||||
[<ore:stickWood>, null, null]]
|
|
||||||
);
|
|
||||||
|
|
||||||
JEI.addDescription(
|
|
||||||
<contenttweaker:hand_framing_tool>,
|
|
||||||
"item.contenttweaker.hand_framing_tool.desc1",
|
|
||||||
"item.contenttweaker.hand_framing_tool.desc2",
|
|
||||||
"item.contenttweaker.hand_framing_tool.desc3",
|
|
||||||
"item.contenttweaker.hand_framing_tool.desc4",
|
|
||||||
"item.contenttweaker.hand_framing_tool.desc5",
|
|
||||||
"item.contenttweaker.hand_framing_tool.desc6"
|
|
||||||
);
|
|
@ -1,129 +0,0 @@
|
|||||||
#loader contenttweaker
|
|
||||||
import mods.contenttweaker.VanillaFactory.createItem;
|
|
||||||
import mods.contenttweaker.IItemUse;
|
|
||||||
import mods.contenttweaker.MutableItemStack;
|
|
||||||
import mods.contenttweaker.World;
|
|
||||||
import mods.contenttweaker.Player;
|
|
||||||
import mods.contenttweaker.BlockPos;
|
|
||||||
import mods.contenttweaker.Hand;
|
|
||||||
import mods.contenttweaker.Facing;
|
|
||||||
import mods.contenttweaker.ActionResult;
|
|
||||||
|
|
||||||
import crafttweaker.util.Position3f;
|
|
||||||
import crafttweaker.block.IBlockDefinition;
|
|
||||||
import crafttweaker.block.IBlockState;
|
|
||||||
import crafttweaker.block.IBlock;
|
|
||||||
import crafttweaker.data.IData;
|
|
||||||
import crafttweaker.entity.IEntityEquipmentSlot;
|
|
||||||
|
|
||||||
function isFrameable(block as IBlockDefinition) as bool {
|
|
||||||
if (isNull(block) || isNull(block.id)) return false; // how
|
|
||||||
return block.id.startsWith("framedcompactdrawers")
|
|
||||||
|
|
||||||
|| block.id == "storagedrawers:customdrawers"
|
|
||||||
|| block.id == "storagedrawers:customtrim"
|
|
||||||
|
|
||||||
|| block.id == "storagedrawers:basicdrawers"
|
|
||||||
|| block.id == "storagedrawers:trim"
|
|
||||||
|
|
||||||
|| block.id == "storagedrawers:compdrawers"
|
|
||||||
|| block.id == "storagedrawers:controller"
|
|
||||||
|| block.id == "storagedrawers:controllerslave";
|
|
||||||
}
|
|
||||||
|
|
||||||
function isReframing(block as IBlockDefinition) as bool {
|
|
||||||
if (isNull(block) || isNull(block.id)) return false; // how
|
|
||||||
return block.id.startsWith("framedcompactdrawers")
|
|
||||||
|| block.id == "storagedrawers:customdrawers"
|
|
||||||
|| block.id == "storagedrawers:customtrim";
|
|
||||||
}
|
|
||||||
|
|
||||||
function orElse(tag as IData, other as IData) as IData {
|
|
||||||
return isNull(tag) ? other : tag;
|
|
||||||
}
|
|
||||||
|
|
||||||
function makeFramedState(state as IBlockState) as IBlockState {
|
|
||||||
val id as string = state.block.definition.id;
|
|
||||||
if id == "storagedrawers:trim" {
|
|
||||||
return <block:storagedrawers:customtrim>.block.definition.defaultState;
|
|
||||||
}
|
|
||||||
return (id == "storagedrawers:basicdrawers" ? <block:storagedrawers:customdrawers> :
|
|
||||||
id == "storagedrawers:compdrawers" ? <block:framedcompactdrawers:framed_compact_drawer> :
|
|
||||||
id == "storagedrawers:controllerslave" ? <block:framedcompactdrawers:framed_slave> :
|
|
||||||
<block:framedcompactdrawers:framed_drawer_controller>)
|
|
||||||
.block.definition.getStateFromMeta(id == "storagedrawers:controller" ?
|
|
||||||
state.meta - 2 :
|
|
||||||
state.meta);
|
|
||||||
}
|
|
||||||
|
|
||||||
function overrideData(data as IData) as IData {
|
|
||||||
if isNull(data) return data;
|
|
||||||
|
|
||||||
if !isNull(data as IData[string]) {
|
|
||||||
val dataMap = data as IData[string];
|
|
||||||
val built as IData[string] = {};
|
|
||||||
// because for some reason strings as maps convert to
|
|
||||||
// a singleton map mapping themselves to themselves.
|
|
||||||
val dataString = data as string;
|
|
||||||
if (dataMap has dataString && dataMap[dataString] as string == dataString) {
|
|
||||||
return 0 as IData;
|
|
||||||
}
|
|
||||||
for k, v in dataMap {
|
|
||||||
built[k] = overrideData(v);
|
|
||||||
}
|
|
||||||
val ret as any[any] = built;
|
|
||||||
return ret as IData;
|
|
||||||
}
|
|
||||||
|
|
||||||
if !isNull(data as [IData]) {
|
|
||||||
var built = [] as IData;
|
|
||||||
for v in data as [IData] {
|
|
||||||
built += [overrideData(v)];
|
|
||||||
}
|
|
||||||
return built;
|
|
||||||
}
|
|
||||||
|
|
||||||
return "" as IData;
|
|
||||||
}
|
|
||||||
|
|
||||||
val hft = createItem("hand_framing_tool");
|
|
||||||
hft.maxStackSize = 1;
|
|
||||||
hft.onItemUse = function(player as Player,
|
|
||||||
world as World,
|
|
||||||
pos as BlockPos,
|
|
||||||
hand as Hand,
|
|
||||||
facing as Facing,
|
|
||||||
blockHit as Position3f) {
|
|
||||||
val ctstate = world.getBlockState(pos);
|
|
||||||
val definition as IBlockDefinition = ctstate.block.definition;
|
|
||||||
if isFrameable(definition) {
|
|
||||||
var state as IBlockState = definition.getStateFromMeta(ctstate.meta);
|
|
||||||
var tag as IData = player.currentItem.tag;
|
|
||||||
if (isNull(tag) || isNull(tag.MatS)) return ActionResult.fail();
|
|
||||||
|
|
||||||
if !isReframing(definition) {
|
|
||||||
val stickCount = orElse(tag.sticks, 0) as int;
|
|
||||||
if (stickCount < 8) return ActionResult.fail();
|
|
||||||
tag += { "sticks": stickCount - 8 } as IData;
|
|
||||||
state = makeFramedState(state);
|
|
||||||
}
|
|
||||||
|
|
||||||
val block as IBlock = world.getBlock(pos);
|
|
||||||
var blockTag as IData = orElse(block.data, {}) + {
|
|
||||||
"MatS": tag.MatS,
|
|
||||||
"MatF": orElse(tag.MatF, ""),
|
|
||||||
"MatT": orElse(tag.MatT, "")
|
|
||||||
};
|
|
||||||
|
|
||||||
world.setBlockState(definition.getStateFromMeta(ctstate.meta), overrideData(block.data), pos); // clear storage
|
|
||||||
world.setBlockState(<block:minecraft:air>, pos); // ensure re-render
|
|
||||||
world.setBlockState(state, blockTag, pos);
|
|
||||||
player.setItemToSlot(hand == Hand.main() ?
|
|
||||||
IEntityEquipmentSlot.mainHand() :
|
|
||||||
IEntityEquipmentSlot.offhand(),
|
|
||||||
player.currentItem.withTag(tag));
|
|
||||||
return ActionResult.success();
|
|
||||||
}
|
|
||||||
return ActionResult.pass();
|
|
||||||
} as IItemUse;
|
|
||||||
hft.register();
|
|
@ -333,7 +333,7 @@ recipes.removeByRecipeName("thermalexpansion:augment_25");
|
|||||||
recipes.addShaped(<thermalexpansion:augment:576>, [
|
recipes.addShaped(<thermalexpansion:augment:576>, [
|
||||||
[null, <ore:gearIron>, null],
|
[null, <ore:gearIron>, null],
|
||||||
[<ore:plateCopper>, <minecraft:bucket>, <ore:plateCopper>],
|
[<ore:plateCopper>, <minecraft:bucket>, <ore:plateCopper>],
|
||||||
[null, <ore:blockGlass>, null]
|
[null, <ore:blockGlassHardened>, null]
|
||||||
]);
|
]);
|
||||||
|
|
||||||
recipes.addShaped(<thermalfoundation:material:515>, [
|
recipes.addShaped(<thermalfoundation:material:515>, [
|
||||||
|
@ -2456,6 +2456,16 @@ recipes.addShapeless(<metaitem:ingotRedAlloy>, [<enderio:item_alloy_ingot:3>]);
|
|||||||
<ore:questbookSifter>.add(<metaitem:sifter.lv>);
|
<ore:questbookSifter>.add(<metaitem:sifter.lv>);
|
||||||
<ore:questbookSifter>.add(<metaitem:sifter.mv>);
|
<ore:questbookSifter>.add(<metaitem:sifter.mv>);
|
||||||
|
|
||||||
|
<ore:questbookLvCef>.add(<metaitem:energy_converter.lv.1>);
|
||||||
|
<ore:questbookLvCef>.add(<metaitem:energy_converter.lv.4>);
|
||||||
|
<ore:questbookLvCef>.add(<metaitem:energy_converter.lv.8>);
|
||||||
|
<ore:questbookLvCef>.add(<metaitem:energy_converter.lv.16>);
|
||||||
|
|
||||||
|
<ore:questbookMvCef>.add(<metaitem:energy_converter.mv.1>);
|
||||||
|
<ore:questbookMvCef>.add(<metaitem:energy_converter.mv.4>);
|
||||||
|
<ore:questbookMvCef>.add(<metaitem:energy_converter.mv.8>);
|
||||||
|
<ore:questbookMvCef>.add(<metaitem:energy_converter.mv.16>);
|
||||||
|
|
||||||
//<ore:questbookFluidExtractor>.add(<meta_tile_entity:fluid_extractor.lv>); // LV Fluid Extractor
|
//<ore:questbookFluidExtractor>.add(<meta_tile_entity:fluid_extractor.lv>); // LV Fluid Extractor
|
||||||
//<ore:questbookFluidExtractor>.add(<meta_tile_entity:fluid_extractor.mv>); // MV Fluid Extractor
|
//<ore:questbookFluidExtractor>.add(<meta_tile_entity:fluid_extractor.mv>); // MV Fluid Extractor
|
||||||
//<ore:questbookFluidExtractor>.add(<meta_tile_entity:fluid_extractor.hv>); // HV Fluid Extractor
|
//<ore:questbookFluidExtractor>.add(<meta_tile_entity:fluid_extractor.hv>); // HV Fluid Extractor
|
||||||
|
@ -448,7 +448,7 @@ makeExtremeRecipe9(<metaitem:ingotCrystalMatrix>,
|
|||||||
recipes.remove(<avaritia:resource>);
|
recipes.remove(<avaritia:resource>);
|
||||||
recipes.addShaped(<avaritia:resource>, [
|
recipes.addShaped(<avaritia:resource>, [
|
||||||
[<metaitem:plateDiamond>, <minecraft:diamond_block>, <metaitem:plateDiamond>],
|
[<metaitem:plateDiamond>, <minecraft:diamond_block>, <metaitem:plateDiamond>],
|
||||||
[<minecraft:diamond_block>, <metaitem:gemExquisiteDiamond>, <minecraft:diamond_block>],
|
[<minecraft:diamond_block>, <metaitem:gemPerfectDiamond>, <minecraft:diamond_block>],
|
||||||
[<metaitem:plateDiamond>, <minecraft:diamond_block>, <metaitem:plateDiamond>]]);
|
[<metaitem:plateDiamond>, <minecraft:diamond_block>, <metaitem:plateDiamond>]]);
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,8 +3,14 @@
|
|||||||
|
|
||||||
import mods.gregtech.material.MaterialBuilder;
|
import mods.gregtech.material.MaterialBuilder;
|
||||||
import mods.gregtech.material.MaterialRegistry;
|
import mods.gregtech.material.MaterialRegistry;
|
||||||
|
import mods.gregtech.material.IMaterialPredicate;
|
||||||
import mods.gregtech.material.Material;
|
import mods.gregtech.material.Material;
|
||||||
import mods.gregtech.material.Elements;
|
import mods.gregtech.material.Elements;
|
||||||
|
import mods.gregtech.ore.OrePrefix;
|
||||||
|
|
||||||
|
val gemPerfect as OrePrefix = OrePrefix.registerOrePrefix("gemPerfect", 8, "gemPerfect", 1);
|
||||||
|
gemPerfect.setGenerationPredicate(IMaterialPredicate.hasGem);
|
||||||
|
gemPerfect.createMaterialItem();
|
||||||
|
|
||||||
var element_omnium = Elements.add(130, 234, -1, null, "Omnium", "Nm", false);
|
var element_omnium = Elements.add(130, 234, -1, null, "Omnium", "Nm", false);
|
||||||
var element_draconium = Elements.add(149, 264, -1, null, "Draconium", "Dc", false);
|
var element_draconium = Elements.add(149, 264, -1, null, "Draconium", "Dc", false);
|
||||||
@ -165,7 +171,7 @@ var crystal_matrix = MaterialBuilder(32023, "crystal_matrix")
|
|||||||
.ingot().fluid()
|
.ingot().fluid()
|
||||||
.color(0x70ecff).iconSet("shiny")
|
.color(0x70ecff).iconSet("shiny")
|
||||||
.flags("generate_plate")
|
.flags("generate_plate")
|
||||||
.components([<material:diamond> * 504, <material:nether_star> * 10])
|
// .components([<material:diamond> * 504, <material:nether_star> * 10])
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
var soularium = MaterialBuilder(32024, "soularium")
|
var soularium = MaterialBuilder(32024, "soularium")
|
||||||
|
@ -1,191 +0,0 @@
|
|||||||
#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(
|
|
||||||
"CGGGC", "GOOOG", "DOOOD", "GOOOG", "CCCCC"
|
|
||||||
)
|
|
||||||
.aisle(
|
|
||||||
"CGGGC", "GOOOG", "DO-OD", "GOOOG", "CCCCC"
|
|
||||||
)
|
|
||||||
.aisle(
|
|
||||||
"CGGGC", "GOOOG", "DOOOD", "GOOOG", "CCCCC"
|
|
||||||
)
|
|
||||||
.aisle(
|
|
||||||
"CCCCC", "DGGGD", "DGGGD", "DGGGD", "CCSCC"
|
|
||||||
)
|
|
||||||
.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:enderio:block_fused_glass:0>)
|
|
||||||
.where('O', <metastate:extendedcrafting:storage:4> /* omnium */)
|
|
||||||
.where('C', <metastate:gcym:large_multiblock_casing:11>
|
|
||||||
| CTPredicate.autoAbilities(true, false, true, true, false, false, false))
|
|
||||||
.build();
|
|
||||||
} as IPatternBuilderFunction)
|
|
||||||
.withRecipeMap(
|
|
||||||
FactoryRecipeMap.start("dml_recipe_map")
|
|
||||||
.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 asInt = function(data as IData) as int {
|
|
||||||
return isNull(data) ? 0 : data as int;
|
|
||||||
};
|
|
||||||
|
|
||||||
dml_sim_chamber.completeRecipe = function(logic as IRecipeLogic) {
|
|
||||||
for slot, stack in logic.inputInventory {
|
|
||||||
if(!isNull(stack) && stack.definition.id.startsWith(model_prefix)) {
|
|
||||||
var tier = asInt(stack.tag.tier);
|
|
||||||
var simulationCount = asInt(stack.tag.simulationCount) + 1;
|
|
||||||
var killCount = asInt(stack.tag.killCount);
|
|
||||||
|
|
||||||
if(tier < DATA_MODEL_MAXIMUM_TIER) {
|
|
||||||
val roof = maxExperience[tier];
|
|
||||||
|
|
||||||
if(simulationCount + 1 >= roof) {
|
|
||||||
killCount = 0;
|
|
||||||
simulationCount = 0;
|
|
||||||
tier += 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
logic.inputInventory.setStackInSlot(
|
|
||||||
slot,
|
|
||||||
stack.withTag(
|
|
||||||
stack.tag + ({
|
|
||||||
tier: tier,
|
|
||||||
simulationCount: simulationCount,
|
|
||||||
totalSimulationCount: asInt(stack.tag.totalSimulationCount) + 1,
|
|
||||||
killCount: killCount
|
|
||||||
} as IData)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} as ICompleteRecipeFunction;
|
|
||||||
|
|
||||||
val withTier = function(tier as int) as IItemCondition {
|
|
||||||
return function(stack as IItemStack) as bool {
|
|
||||||
return asInt(stack.tag.tier) == tier;
|
|
||||||
} as IItemCondition;
|
|
||||||
};
|
|
||||||
|
|
||||||
for mob, cost in mobs {
|
|
||||||
for tier, pristine_chance in pristine_chances {
|
|
||||||
dml_recipe_map.recipeBuilder()
|
|
||||||
.duration(301)
|
|
||||||
.EUt(cost / 4 as int)
|
|
||||||
.inputs(<deepmoblearning:polymer_clay>)
|
|
||||||
.notConsumable(itemUtils.getItem(model_prefix + mob).withTag({tier: tier + 1}, false).only(withTier(tier + 1)))
|
|
||||||
.outputs(pristine_types[mob])
|
|
||||||
.chancedOutput(itemUtils.getItem(pristine_prefix + mob), pristine_chance * 100, 0)
|
|
||||||
.buildAndRegister();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -588,10 +588,7 @@ microverse_projector_basic.recipeMap
|
|||||||
<contenttweaker:quantumflux>,
|
<contenttweaker:quantumflux>,
|
||||||
<contenttweaker:gemsensor>)
|
<contenttweaker:gemsensor>)
|
||||||
.fluidInputs(<liquid:rocket_fuel> * 8000)
|
.fluidInputs(<liquid:rocket_fuel> * 8000)
|
||||||
.outputs(<metaitem:gemExquisiteDiamond> * 16,
|
.outputs(<metaitem:gemPerfectDiamond> * 64,
|
||||||
<metaitem:gemExquisiteDiamond> * 16,
|
|
||||||
<metaitem:gemExquisiteDiamond> * 16,
|
|
||||||
<metaitem:gemExquisiteDiamond> * 16,
|
|
||||||
<gregtech:ore_apatite_0> * 64,
|
<gregtech:ore_apatite_0> * 64,
|
||||||
<gregtech:ore_tricalcium_phosphate_0> * 64,
|
<gregtech:ore_tricalcium_phosphate_0> * 64,
|
||||||
<gregtech:ore_quartzite_0> * 64)
|
<gregtech:ore_quartzite_0> * 64)
|
||||||
@ -662,18 +659,10 @@ microverse_projector_basic.recipeMap
|
|||||||
<contenttweaker:quantumflux> * 4,
|
<contenttweaker:quantumflux> * 4,
|
||||||
<contenttweaker:gemsensor>)
|
<contenttweaker:gemsensor>)
|
||||||
.fluidInputs(<liquid:rocket_fuel> * 20000)
|
.fluidInputs(<liquid:rocket_fuel> * 20000)
|
||||||
.outputs(<metaitem:gemExquisiteEmerald> * 16,
|
.outputs(<metaitem:gemPerfectDiamond> * 64,
|
||||||
<metaitem:gemExquisiteEmerald> * 16,
|
<metaitem:gemPerfectDiamond> * 32,
|
||||||
<metaitem:gemExquisiteDiamond> * 16,
|
<metaitem:gemPerfectEmerald> * 32,
|
||||||
<metaitem:gemExquisiteDiamond> * 16,
|
<metaitem:gemPerfectRuby> * 64,
|
||||||
<metaitem:gemExquisiteDiamond> * 16,
|
|
||||||
<metaitem:gemExquisiteDiamond> * 16,
|
|
||||||
<metaitem:gemExquisiteDiamond> * 16,
|
|
||||||
<metaitem:gemExquisiteDiamond> * 16,
|
|
||||||
<metaitem:gemExquisiteRuby> * 16,
|
|
||||||
<metaitem:gemExquisiteRuby> * 16,
|
|
||||||
<metaitem:gemExquisiteRuby> * 16,
|
|
||||||
<metaitem:gemExquisiteRuby> * 16,
|
|
||||||
<gregtech:ore_sapphire_0:1> * 64,
|
<gregtech:ore_sapphire_0:1> * 64,
|
||||||
<gregtech:ore_gold_0:1> * 64,
|
<gregtech:ore_gold_0:1> * 64,
|
||||||
<gregtech:ore_silver_0:1> * 64,
|
<gregtech:ore_silver_0:1> * 64,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user