bioline materials (#2191)
* materials * lang * materials * utility linting * data and linting * lang
|
|
@ -26,14 +26,41 @@ export default defineConfig([
|
|||
"no-template-curly-in-string": "error",
|
||||
"no-unmodified-loop-condition": "warn",
|
||||
"eqeqeq": "warn",
|
||||
"no-constant-condition": "warn",
|
||||
"no-duplicate-case": "error",
|
||||
"no-empty": "warn",
|
||||
"no-empty-pattern": "warn",
|
||||
"no-ex-assign": "error",
|
||||
"no-fallthrough": "warn",
|
||||
"no-irregular-whitespace": "error",
|
||||
"no-loss-of-precision": "error",
|
||||
"no-unsafe-negation": "error",
|
||||
"no-useless-catch": "warn",
|
||||
"no-useless-escape": "warn",
|
||||
"use-isnan": "error",
|
||||
"valid-typeof": "error",
|
||||
"curly": ["warn", "multi-line"],
|
||||
"default-case-last": "warn",
|
||||
"no-else-return": "warn",
|
||||
"no-eval": "error",
|
||||
"no-implied-eval": "error",
|
||||
"no-lone-blocks": "warn",
|
||||
"no-multi-spaces": "warn",
|
||||
"no-return-assign": "warn",
|
||||
"no-useless-return": "warn",
|
||||
"no-with": "error",
|
||||
"prefer-const": "warn",
|
||||
"prefer-arrow-callback": "warn",
|
||||
"no-useless-concat": "warn",
|
||||
"yoda": ["warn", "never"],
|
||||
|
||||
"@stylistic/comma-style": [1, "last"],
|
||||
"@stylistic/brace-style": [1, "1tbs"],
|
||||
"@stylistic/function-call-spacing": [1, "never"],
|
||||
"@stylistic/no-floating-decimal": "error",
|
||||
"@stylistic/arrow-spacing": [1, { "before": true, "after": true }],
|
||||
"@stylistic/block-spacing": [1, "always"],
|
||||
"@stylistic/keyword-spacing": [1, { "before": true, "after": true }],
|
||||
"@stylistic/dot-location": [1, "property"]
|
||||
"@stylistic/dot-location": [1, "property"],
|
||||
"@stylistic/comma-dangle": [1, "never"]
|
||||
}
|
||||
},
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -1015,6 +1015,11 @@
|
|||
"item.tfg.bell_casting_mold": "Bell Casting Mold",
|
||||
"item.tfg.rnr_plow": "Paving Cart",
|
||||
"item.tfg.cobalt_brass_wheel": "Cobalt Brass Wheel",
|
||||
"item.tfg.cellulose_matrix": "Cellulose Matrix",
|
||||
"item.tfg.smooth_endoplasmic_reticula": "Smooth Endoplasmic Reticula",
|
||||
"item.tfg.rough_endoplasmic_reticula": "Rough Endoplasmic Reticula",
|
||||
"item.tfg.alpha_keratin": "α-Keratin",
|
||||
"item.tfg.progenitor_cells": "Progenitor Cells",
|
||||
"material.tfg.latex": "Latex",
|
||||
"material.tfg.vulcanized_latex": "Vulcanized Latex",
|
||||
"material.tfg.fluix": "Fluix",
|
||||
|
|
@ -1104,6 +1109,19 @@
|
|||
"material.tfg.cooked_mycelienzane": "1,3-Mycelienzane",
|
||||
"material.tfg.iodomethane": "Iodomethane",
|
||||
"material.tfg.trideuteroiodomethane": "Trideuteroiodomethane",
|
||||
"material.tfg.lauryl_alcohol": "Lauryl Alcohol",
|
||||
"material.tfg.chlorosulfuric_acid": "Chlorosulfuric Acid",
|
||||
"material.tfg.sodium_dodecyl_sulfate": "Sodium Dodecyl Sulfate",
|
||||
"material.tfg.sodium_hypochlorite": "Sodium Hypochlorite",
|
||||
"material.tfg.mutative_yeast": "Mutative Yeast",
|
||||
"material.tfg.proto_growth_medium": "Proto Growth Medium",
|
||||
"material.tfg.fibroblast_feeder_cells": "Fibroblast Feeder Cells",
|
||||
"material.tfg.gram_stain": "Gram Stain",
|
||||
"material.tfg.crystal_violet": "Crystal Violet",
|
||||
"material.tfg.n_n_dimethylaniline": "N,N-Dimethylaniline",
|
||||
"material.tfg.triglyceride_oil": "Triglyceride Oil",
|
||||
"material.tfg.cholesterol": "Cholesterol",
|
||||
"material.tfg.butyric_acid": "Butyric Acid",
|
||||
"ore_vein.tfg.deep_sheldonite": "Cooperite & Bornite",
|
||||
"ore_vein.tfg.deep_garnet_amethyst": "Amethyst & Garnet",
|
||||
"ore_vein.tfg.deep_garnet_opal": "Opal & Garnet",
|
||||
|
|
@ -1416,6 +1434,7 @@
|
|||
"tfg.tooltip.component.refrigerant_pellet": "Can be used as an input in the Fission Reactor to cool it down, requires a Material Holder",
|
||||
"tfg.tooltip.component.nuclear_turbine_1": "§eBase Production:§r 4096 EU/t",
|
||||
"tfg.tooltip.component.nuclear_turbine_2": "Each Rotor Holder above §5EV§r §7adds§r 10% efficiency and multiplies EU/t by 2.",
|
||||
"tfg.tooltip.progenitor_cells.mob": "Animal culture: ",
|
||||
"tfg.gui.refrigerator.unify_dates.enabled": "Expiration Date Unification is: §aOn",
|
||||
"tfg.gui.refrigerator.unify_dates.disabled": "Expiration Date Unification is: §cOff",
|
||||
"tfg.machine.food_refrigerator_power_usage": "§7Consumes§r %s EU/t §7while active to keep your food fresh.§r",
|
||||
|
|
|
|||
|
|
@ -678,6 +678,11 @@
|
|||
"item.tfg.smd_uv_led": "§fLED §dUltravioleta §fSMD",
|
||||
"item.tfg.rnr_plow": "Carrinho Pavimentador",
|
||||
"item.tfg.cobalt_brass_wheel": "Roda de Latão Cobalto",
|
||||
"item.tfg.cellulose_matrix": "Matriz de Celulose",
|
||||
"item.tfg.smooth_endoplasmic_reticula": "Retículo Endoplasmático Liso",
|
||||
"item.tfg.rough_endoplasmic_reticula": "Retículo Endoplasmático Rugoso",
|
||||
"item.tfg.alpha_keratin": "α-Queratina",
|
||||
"item.tfg.progenitor_cells": "Células Progenitoras",
|
||||
"material.tfg.latex": "Látex",
|
||||
"material.tfg.vulcanized_latex": "Látex Vulcanizado",
|
||||
"material.tfg.fluix": "Fluix",
|
||||
|
|
@ -745,6 +750,19 @@
|
|||
"material.tfg.bright_regolith": "Rególito Brilhante",
|
||||
"material.tfg.cassiterite_regolith": "Rególito Cassiterita",
|
||||
"material.tfg.regolith_mush": "Massa de Rególito",
|
||||
"material.tfg.lauryl_alcohol": "Álcool Laurílico",
|
||||
"material.tfg.chlorosulfuric_acid": "Ácido Clorossulfúrico",
|
||||
"material.tfg.sodium_dodecyl_sulfate": "Dodecil Sulfato de Sódio",
|
||||
"material.tfg.sodium_hypochlorite": "Hipoclorito de Sódio",
|
||||
"material.tfg.mutative_yeast": "Levedura Mutativa",
|
||||
"material.tfg.proto_growth_medium": "Meio de Crescimento Proto",
|
||||
"material.tfg.fibroblast_feeder_cells": "Células Alimentadoras de Fibroblastos",
|
||||
"material.tfg.gram_stain": "Coloração de Gram",
|
||||
"material.tfg.crystal_violet": "Cristal Violeta",
|
||||
"material.tfg.n_n_dimethylaniline": "N,N-Dimetilanilina",
|
||||
"material.tfg.triglyceride_oil": "Óleo de Triglicerídeos",
|
||||
"material.tfg.cholesterol": "Colesterol",
|
||||
"material.tfg.butyric_acid": "Ácido Butírico",
|
||||
"ore_vein.tfg.deep_sheldonite": "Cooperita e Bornita",
|
||||
"ore_vein.tfg.deep_garnet_amethyst": "Ametista e Granada",
|
||||
"ore_vein.tfg.deep_garnet_opal": "Opala e Granada",
|
||||
|
|
@ -1006,6 +1024,7 @@
|
|||
"tfg.tooltip.wraptor_wool": "§7Colhido das penas de um Distráptor",
|
||||
"tfg.tooltip.wraptor_sugar": "§7Não pense muito a respeito disso",
|
||||
"tfg.tooltip.obsolete.depreciated": "§cObsoleto, não pode mais ser criado",
|
||||
"tfg.tooltip.progenitor_cells.mob": "Cultura animal: ",
|
||||
"tfg.gui.rnr_plow.random_mode": "Aleatorizar Materiais",
|
||||
"tfg.gui.rnr_plow.width": "Largura do Caminho: %d Blocos",
|
||||
"tfg.gui.rnr_plow.empty_crushed_base_course": "§cFalta Camada Base Triturada!!",
|
||||
|
|
|
|||
8
kubejs/assets/tfg/models/item/progenitor_cells.json
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "tfg:item/progenitor_cells_0",
|
||||
"layer1": "tfg:item/progenitor_cells_1",
|
||||
"layer2": "tfg:item/progenitor_cells_2"
|
||||
}
|
||||
}
|
||||
BIN
kubejs/assets/tfg/textures/block/fluids/fluid.crystal_violet.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"animation": {
|
||||
"frametime": 1
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 46 KiB |
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"animation": {
|
||||
"frametime": 1
|
||||
}
|
||||
}
|
||||
BIN
kubejs/assets/tfg/textures/block/fluids/fluid.gram_stain.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"animation": {
|
||||
"frametime": 1
|
||||
}
|
||||
}
|
||||
BIN
kubejs/assets/tfg/textures/block/fluids/fluid.mutative_yeast.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"animation": {
|
||||
"frametime": 1
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 6.5 KiB |
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"animation": {
|
||||
"frametime": 1
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 18 KiB |
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"animation": {
|
||||
"frametime": 1
|
||||
}
|
||||
}
|
||||
BIN
kubejs/assets/tfg/textures/item/alpha_keratin.png
Normal file
|
After Width: | Height: | Size: 391 B |
BIN
kubejs/assets/tfg/textures/item/cellulose_matrix.png
Normal file
|
After Width: | Height: | Size: 394 B |
BIN
kubejs/assets/tfg/textures/item/progenitor_cells_0.png
Normal file
|
After Width: | Height: | Size: 595 B |
|
|
@ -0,0 +1 @@
|
|||
{"animation": {"frametime": 2, "frames": [{"index": 0, "time":40}, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]}}
|
||||
BIN
kubejs/assets/tfg/textures/item/progenitor_cells_1.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
|
|
@ -0,0 +1 @@
|
|||
{"animation": {"frametime": 2, "frames": [{"index": 0, "time":40}, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]}}
|
||||
BIN
kubejs/assets/tfg/textures/item/progenitor_cells_2.png
Normal file
|
After Width: | Height: | Size: 257 B |
|
|
@ -0,0 +1 @@
|
|||
{"animation": {"frametime": 2, "frames": [{"index": 0, "time":40}, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]}}
|
||||
BIN
kubejs/assets/tfg/textures/item/rough_endoplasmic_reticula.png
Normal file
|
After Width: | Height: | Size: 575 B |
BIN
kubejs/assets/tfg/textures/item/smooth_endoplasmic_reticula.png
Normal file
|
After Width: | Height: | Size: 548 B |
|
|
@ -85,10 +85,12 @@ function generateGreenHouseRecipe(event, input, fluid, fluid_amount, output, id,
|
|||
.duration(36000) // 30 mins
|
||||
.EUt(EUt)
|
||||
|
||||
if (dimension !== null)
|
||||
if (dimension !== null) {
|
||||
r.dimension(dimension)
|
||||
if (output_secondary !== null)
|
||||
}
|
||||
if (output_secondary !== null) {
|
||||
r.chancedOutput(output_secondary, 750, 0)
|
||||
}
|
||||
|
||||
|
||||
// С удобрением (With fertilizer)
|
||||
|
|
@ -103,10 +105,12 @@ function generateGreenHouseRecipe(event, input, fluid, fluid_amount, output, id,
|
|||
.duration(12000) // 10 mins
|
||||
.EUt(EUt)
|
||||
|
||||
if (dimension !== null)
|
||||
if (dimension !== null) {
|
||||
r.dimension(dimension)
|
||||
if (output_secondary !== null)
|
||||
}
|
||||
if (output_secondary !== null) {
|
||||
r.chancedOutput(output_secondary, 4000, 0)
|
||||
}
|
||||
}
|
||||
//#endregion
|
||||
|
||||
|
|
@ -137,21 +141,21 @@ const getFillingNBT = (material, amount) => {
|
|||
*/
|
||||
function generatePlatedBlockRecipe(event, material) {
|
||||
// firmaciv plated blocks don't have this property
|
||||
let tfcProperty = material.getProperty(TFGPropertyKey.TFC_PROPERTY)
|
||||
let outputMaterial = (tfcProperty === null || tfcProperty.getOutputMaterial() === null) ? material : tfcProperty.getOutputMaterial()
|
||||
const tfcProperty = material.getProperty(TFGPropertyKey.TFC_PROPERTY)
|
||||
const outputMaterial = (tfcProperty === null || tfcProperty.getOutputMaterial() === null) ? material : tfcProperty.getOutputMaterial()
|
||||
|
||||
let plateItem = ChemicalHelper.get(TagPrefix.plate, material, 1);
|
||||
const plateItem = ChemicalHelper.get(TagPrefix.plate, material, 1);
|
||||
|
||||
let platedBlock = ChemicalHelper.get(TFGTagPrefix.blockPlated, material, 1);
|
||||
let platedSlab = ChemicalHelper.get(TFGTagPrefix.slabPlated, material, 1);
|
||||
let platedStair = ChemicalHelper.get(TFGTagPrefix.stairPlated, material, 1);
|
||||
const platedBlock = ChemicalHelper.get(TFGTagPrefix.blockPlated, material, 1);
|
||||
const platedSlab = ChemicalHelper.get(TFGTagPrefix.slabPlated, material, 1);
|
||||
const platedStair = ChemicalHelper.get(TFGTagPrefix.stairPlated, material, 1);
|
||||
|
||||
if (platedBlock === null)
|
||||
return
|
||||
if (platedBlock === null) return;
|
||||
|
||||
let tfcMetalName = material.getName();
|
||||
if (tfcMetalName === "iron")
|
||||
if (tfcMetalName === "iron") {
|
||||
tfcMetalName = "cast_iron";
|
||||
}
|
||||
|
||||
event.shapeless(platedBlock, ['#forge:stone_bricks', plateItem, '#forge:tools/hammers'])
|
||||
.id(`tfg:shapeless/${material.getName()}_plated_block`)
|
||||
|
|
@ -247,7 +251,7 @@ function generatePlatedBlockRecipe(event, material) {
|
|||
* @param {(material: com.gregtechceu.gtceu.api.data.chemical.material.Material_) => void} iterator
|
||||
*/
|
||||
function forEachMaterial(iterator) {
|
||||
for (let material of GTCEuAPI.materialManager.getRegisteredMaterials()) {
|
||||
for (const material of GTCEuAPI.materialManager.getRegisteredMaterials()) {
|
||||
iterator(material)
|
||||
}
|
||||
}
|
||||
|
|
@ -280,7 +284,7 @@ function addCircuitToRecipe(event, recipeId, circuitNumber) {
|
|||
};
|
||||
|
||||
event.findRecipes({ id: recipeId }).forEach(recipe => {
|
||||
let inputsEl = recipe.json.get("inputs");
|
||||
const inputsEl = recipe.json.get("inputs");
|
||||
let inputsObj;
|
||||
if (inputsEl === null || inputsEl.isJsonNull()) {
|
||||
inputsObj = new JsonObject();
|
||||
|
|
@ -291,7 +295,7 @@ function addCircuitToRecipe(event, recipeId, circuitNumber) {
|
|||
}
|
||||
|
||||
// Cache existing item inputs.
|
||||
let itemEl = inputsObj.get("item");
|
||||
const itemEl = inputsObj.get("item");
|
||||
let itemArray;
|
||||
if (itemEl === null || itemEl === undefined || itemEl.isJsonNull()) {
|
||||
itemArray = new JsonArray();
|
||||
|
|
@ -317,7 +321,7 @@ function addCircuitToRecipe(event, recipeId, circuitNumber) {
|
|||
let hasCircuit = false;
|
||||
for (let i = 0; i < itemArray.size(); i++) {
|
||||
const el = itemArray.get(i);
|
||||
if (!el.isJsonObject()) continue;
|
||||
if (!el.isJsonObject()) {continue;}
|
||||
const obj = el.getAsJsonObject();
|
||||
const content = obj.get("content");
|
||||
if (content && content.isJsonObject()) {
|
||||
|
|
@ -383,7 +387,7 @@ function woodBuilder(event, name, lumber, logs, log, stripped_log, plank, stair,
|
|||
}
|
||||
|
||||
if (logs && lumber && name) {
|
||||
event.shapeless(`8x ${lumber}`,
|
||||
event.shapeless(`8x ${lumber}`,
|
||||
[logs, '#forge:tools/saws']
|
||||
).id(`tfg:shapeless/${name}_lumber_from_log`)
|
||||
|
||||
|
|
@ -391,7 +395,7 @@ function woodBuilder(event, name, lumber, logs, log, stripped_log, plank, stair,
|
|||
}
|
||||
|
||||
if (plank && lumber && name) {
|
||||
event.shapeless(`4x ${lumber}`,
|
||||
event.shapeless(`4x ${lumber}`,
|
||||
[plank, '#forge:tools/saws']
|
||||
).id(`tfg:shapeless/${name}_lumber_from_plank`)
|
||||
|
||||
|
|
@ -401,15 +405,15 @@ function woodBuilder(event, name, lumber, logs, log, stripped_log, plank, stair,
|
|||
'AA',
|
||||
'AA'
|
||||
], {
|
||||
A: lumber,
|
||||
A: lumber
|
||||
}).id(`tfg:shaped/${name}_plank_from_lumber`)
|
||||
}
|
||||
|
||||
if (slab && lumber && name) {
|
||||
event.shapeless(`2x ${lumber}`,
|
||||
event.shapeless(`2x ${lumber}`,
|
||||
[slab, '#forge:tools/saws']
|
||||
).id(`tfg:shapeless/${name}_lumber_from_slab`)
|
||||
|
||||
|
||||
generateCutterRecipe(event, slab, `2x ${lumber}`, 50, 7, `cutter_${name}_lumber_from_slab`)
|
||||
}
|
||||
|
||||
|
|
@ -417,12 +421,12 @@ function woodBuilder(event, name, lumber, logs, log, stripped_log, plank, stair,
|
|||
event.shaped(`6x ${slab}`, [
|
||||
'AAA'
|
||||
], {
|
||||
A: plank,
|
||||
A: plank
|
||||
}).id(`tfg:shaped/${name}_slab_from_plank`)
|
||||
}
|
||||
|
||||
if (stair && lumber && name) {
|
||||
event.shapeless(`3x ${lumber}`,
|
||||
event.shapeless(`3x ${lumber}`,
|
||||
[stair, '#forge:tools/saws']
|
||||
).id(`tfg:shapeless/${name}_lumber_from_stair`)
|
||||
|
||||
|
|
@ -435,51 +439,51 @@ function woodBuilder(event, name, lumber, logs, log, stripped_log, plank, stair,
|
|||
'AA ',
|
||||
'AAA'
|
||||
], {
|
||||
A: plank,
|
||||
A: plank
|
||||
}).id(`tfg:shaped/${name}_stair_from_plank`)
|
||||
}
|
||||
|
||||
|
||||
if (door && lumber && name) {
|
||||
event.shaped(`2x ${door}`, [
|
||||
'AA',
|
||||
'AA',
|
||||
'AA'
|
||||
], {
|
||||
A: lumber,
|
||||
A: lumber
|
||||
}).id(`tfg:shaped/${name}_door_from_lumber`)
|
||||
}
|
||||
|
||||
|
||||
if (trapdoor && lumber && name) {
|
||||
event.shaped(`3x ${trapdoor}`, [
|
||||
'AAA',
|
||||
'AAA'
|
||||
], {
|
||||
A: lumber,
|
||||
A: lumber
|
||||
}).id(`tfg:shaped/${name}_trapdoor_from_lumber_and_plank`)
|
||||
}
|
||||
|
||||
|
||||
if (fence && lumber && plank && name) {
|
||||
event.shaped(`8x ${fence}`, [
|
||||
'ABA',
|
||||
'ABA'
|
||||
], {
|
||||
A: lumber,
|
||||
B: plank,
|
||||
B: plank
|
||||
}).id(`tfg:shaped/${name}_fence_from_lumber_and_plank`)
|
||||
}
|
||||
|
||||
|
||||
if (fence_gate && lumber && plank && name) {
|
||||
event.shaped(`2x ${fence_gate}`, [
|
||||
'ABA',
|
||||
'ABA'
|
||||
], {
|
||||
A: plank,
|
||||
B: lumber,
|
||||
B: lumber
|
||||
}).id(`tfg:shaped/${name}_fence_gate_from_lumber_and_plank`)
|
||||
}
|
||||
|
||||
|
||||
if (support && logs && name) {
|
||||
event.shapeless(`8x ${support}`,
|
||||
event.shapeless(`8x ${support}`,
|
||||
[`2x ${logs}`, '#forge:tools/saws']
|
||||
).id(`tfg:shapeless/${name}_support_from_logs`)
|
||||
|
||||
|
|
@ -490,7 +494,7 @@ function woodBuilder(event, name, lumber, logs, log, stripped_log, plank, stair,
|
|||
.circuit(4)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
}
|
||||
|
||||
|
||||
if (pressure_plate && slab && name) {
|
||||
event.shaped(pressure_plate, [
|
||||
' B ',
|
||||
|
|
@ -500,7 +504,7 @@ function woodBuilder(event, name, lumber, logs, log, stripped_log, plank, stair,
|
|||
A: slab,
|
||||
B: '#forge:tools/hammers',
|
||||
C: '#forge:springs',
|
||||
D: '#forge:tools/screwdrivers',
|
||||
D: '#forge:tools/screwdrivers'
|
||||
}).id(`tfg:shaped/${name}_pressure_plate`)
|
||||
|
||||
event.recipes.gtceu.assembler(`tfg:assembler/${name}_pressure_plate`)
|
||||
|
|
@ -546,30 +550,39 @@ function sterilizeItem(event, input, output, multiplier, cleanroom) {
|
|||
|
||||
// If there are any errors, log them all and throw once.
|
||||
if (errors.length > 0) {
|
||||
const message = "sterilizeItem errors:\n - " + errors.join("\n - ");
|
||||
const message = `sterilizeItem errors:\n - ${ errors.join("\n - ")}`;
|
||||
throw new TypeError(message);
|
||||
};
|
||||
|
||||
// Set default multiplier.
|
||||
let recipe_multiplier = 1;
|
||||
if (multiplier !== undefined) recipe_multiplier = multiplier;
|
||||
if (multiplier !== undefined) {
|
||||
recipe_multiplier = multiplier;
|
||||
}
|
||||
|
||||
// Create recipes.
|
||||
let ethanol_recipe = event.recipes.gtceu.chemical_bath(`tfg:ethanol_cleaning/${input.replace(':', '_')}_to_${output.replace(':', '_')}`)
|
||||
const ethanol_recipe = event.recipes.gtceu.chemical_bath(`tfg:ethanol_cleaning/${input.replace(':', '_')}_to_${output.replace(':', '_')}`)
|
||||
.itemInputs(input)
|
||||
.inputFluids(Fluid.of('gtceu:ethanol', 500*recipe_multiplier))
|
||||
.itemOutputs(output)
|
||||
.duration(10*20*recipe_multiplier)
|
||||
.EUt(GTValues.VA[GTValues.MV]);
|
||||
|
||||
let hydrogen_peroxide_recipe = event.recipes.gtceu.chemical_bath(`tfg:hydrogen_peroxide_cleaning/${input.replace(':', '_')}_to_${output.replace(':', '_')}`)
|
||||
const hydrogen_peroxide_recipe = event.recipes.gtceu.chemical_bath(`tfg:hydrogen_peroxide_cleaning/${input.replace(':', '_')}_to_${output.replace(':', '_')}`)
|
||||
.itemInputs(input)
|
||||
.inputFluids(Fluid.of('gtceu:hydrogen_peroxide', 200*recipe_multiplier))
|
||||
.itemOutputs(output)
|
||||
.duration(10*20*recipe_multiplier)
|
||||
.EUt(GTValues.VA[GTValues.MV]);
|
||||
|
||||
let autoclave_recipe = event.recipes.gtceu.autoclave(`tfg:autoclave_cleaning/${input.replace(':', '_')}_to_${output.replace(':', '_')}`)
|
||||
const sodium_dodecyl_sulfate_recipe = event.recipes.gtceu.chemical_bath(`tfg:sodium_dodecyl_sulfate_cleaning/${input.replace(':', '_')}_to_${output.replace(':', '_')}`)
|
||||
.itemInputs(input)
|
||||
.inputFluids(Fluid.of('tfg:sodium_dodecyl_sulfate', 50*recipe_multiplier))
|
||||
.itemOutputs(output)
|
||||
.duration(10*20*recipe_multiplier)
|
||||
.EUt(GTValues.VA[GTValues.MV]);
|
||||
|
||||
const autoclave_recipe = event.recipes.gtceu.autoclave(`tfg:autoclave_cleaning/${input.replace(':', '_')}_to_${output.replace(':', '_')}`)
|
||||
.itemInputs(input)
|
||||
.perTick(true)
|
||||
.inputFluids(Fluid.of('gtceu:steam', 100*recipe_multiplier))
|
||||
|
|
@ -581,6 +594,7 @@ function sterilizeItem(event, input, output, multiplier, cleanroom) {
|
|||
if (cleanroom) {
|
||||
ethanol_recipe.cleanroom(cleanroom);
|
||||
hydrogen_peroxide_recipe.cleanroom(cleanroom);
|
||||
sodium_dodecyl_sulfate_recipe.cleanroom(cleanroom);
|
||||
autoclave_recipe.cleanroom(cleanroom);
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@ function registerTFCDataForTFG(event) {
|
|||
registerTFGFauna(event);
|
||||
}
|
||||
|
||||
//#region Heat Data
|
||||
|
||||
/** @param {Internal.TFCDataEventJS} event */
|
||||
function registerTFGHeatData(event) {
|
||||
event.itemHeat("tfg:latex_soaked_gloves", 1, null, null);
|
||||
|
|
@ -40,6 +42,9 @@ function registerTFGHeatData(event) {
|
|||
event.itemHeat('betterend:cave_pumpkin_pie', 1.0, null, null);
|
||||
}
|
||||
|
||||
//#endregion
|
||||
//#region Item Size
|
||||
|
||||
/** @param {Internal.TFCDataEventJS} event */
|
||||
function registerTFGItemSize(event) {
|
||||
/**
|
||||
|
|
@ -139,7 +144,7 @@ function registerTFGItemSize(event) {
|
|||
"gtceu:red_granite",
|
||||
"gtceu:light_concrete",
|
||||
"gtceu:dark_concrete",
|
||||
"create:cardboard_block",
|
||||
"create:cardboard_block"
|
||||
])
|
||||
),
|
||||
"large",
|
||||
|
|
@ -228,7 +233,7 @@ function registerTFGItemSize(event) {
|
|||
"ae2:cable_anchor",
|
||||
"ae2:level_emitter",
|
||||
"ae2:energy_level_emitter",
|
||||
"expatternprovider:threshold_level_emitter",
|
||||
"expatternprovider:threshold_level_emitter"
|
||||
]),
|
||||
"tiny",
|
||||
"very_light",
|
||||
|
|
@ -271,7 +276,7 @@ function registerTFGItemSize(event) {
|
|||
"expatternprovider:precise_export_bus",
|
||||
"expatternprovider:precise_storage_bus",
|
||||
"expatternprovider:threshold_export_bus",
|
||||
"expatternprovider:oversize_interface_part",
|
||||
"expatternprovider:oversize_interface_part"
|
||||
]),
|
||||
"very_small",
|
||||
"very_light",
|
||||
|
|
@ -289,6 +294,9 @@ function registerTFGItemSize(event) {
|
|||
event.itemSize("tfg:vial", "tiny", "light", "tfg/vial");
|
||||
}
|
||||
|
||||
//#endregion
|
||||
//#region Support Data
|
||||
|
||||
//up, down, horizontal
|
||||
/** @param {Internal.TFCDataEventJS} event */
|
||||
function registerTFGSupportData(event) {
|
||||
|
|
@ -310,6 +318,10 @@ function registerTFGSupportData(event) {
|
|||
event.support(`tfg:${wood.name}_support_horizontal`, 2, 2, 4, `${wood.name}_support`);
|
||||
});
|
||||
}
|
||||
|
||||
//#endregion
|
||||
//#region Food Data
|
||||
|
||||
/** @param {Internal.TFCDataEventJS} event */
|
||||
function registerTFGFoodData(event) {
|
||||
// meats
|
||||
|
|
@ -705,8 +717,34 @@ function registerTFGFoodData(event) {
|
|||
effect.duration(200);
|
||||
});
|
||||
});
|
||||
|
||||
event.foodItem("tfg:progenitor_cells", (food) => {
|
||||
food.decayModifier(1);
|
||||
});
|
||||
event.foodItem("tfg:rough_endoplasmic_reticula", (food) => {
|
||||
food.decayModifier(0.5);
|
||||
});
|
||||
event.foodItem("tfg:smooth_endoplasmic_reticula", (food) => {
|
||||
food.decayModifier(0.5);
|
||||
});
|
||||
|
||||
event.drinkable("tfg:proto_growth_medium", (data) => {
|
||||
data.thirst(10);
|
||||
data.food(food => {
|
||||
food.dairy(5);
|
||||
food.protein(1);
|
||||
});
|
||||
data.effect("minecraft:absorption", (effect) => {
|
||||
effect.amplifier(2);
|
||||
effect.chance(0.25);
|
||||
effect.duration(1200);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
//#endregion
|
||||
//#region Crop Data
|
||||
|
||||
/** @param {Internal.TFCDataEventJS} event */
|
||||
function registerTFGCropRanges(event) {
|
||||
// Earth
|
||||
|
|
@ -793,6 +831,9 @@ function registerTFGCropRanges(event) {
|
|||
}, "betterend:shadow_berry");
|
||||
}
|
||||
|
||||
//#endregion
|
||||
//#region Planter Data
|
||||
|
||||
/** @param {Internal.TFCDataEventJS} event */
|
||||
function registerTFGFLPlanters(event) {
|
||||
event.firmalifePlantable(
|
||||
|
|
@ -808,7 +849,7 @@ function registerTFGFLPlanters(event) {
|
|||
"tfg:block/crop/sunflower_greenhouse_0",
|
||||
"tfg:block/crop/sunflower_greenhouse_1",
|
||||
"tfg:block/crop/sunflower_greenhouse_2",
|
||||
"tfg:block/crop/sunflower_greenhouse_3",
|
||||
"tfg:block/crop/sunflower_greenhouse_3"
|
||||
],
|
||||
null
|
||||
);
|
||||
|
|
@ -826,7 +867,7 @@ function registerTFGFLPlanters(event) {
|
|||
"tfg:block/crop/rapeseed_greenhouse_0",
|
||||
"tfg:block/crop/rapeseed_greenhouse_1",
|
||||
"tfg:block/crop/rapeseed_greenhouse_2",
|
||||
"tfg:block/crop/rapeseed_greenhouse_3",
|
||||
"tfg:block/crop/rapeseed_greenhouse_3"
|
||||
],
|
||||
null
|
||||
);
|
||||
|
|
@ -844,7 +885,7 @@ function registerTFGFLPlanters(event) {
|
|||
"tfg:block/crop/flax_age_0",
|
||||
"tfg:block/crop/flax_age_1",
|
||||
"tfg:block/crop/flax_age_5_top",
|
||||
"tfg:block/crop/flax_age_6_top",
|
||||
"tfg:block/crop/flax_age_6_top"
|
||||
],
|
||||
null
|
||||
);
|
||||
|
|
@ -862,7 +903,7 @@ function registerTFGFLPlanters(event) {
|
|||
"betterend:block/amber_root_0",
|
||||
"betterend:block/amber_root_1",
|
||||
"betterend:block/amber_root_2",
|
||||
"betterend:block/amber_root_3",
|
||||
"betterend:block/amber_root_3"
|
||||
],
|
||||
null
|
||||
);
|
||||
|
|
@ -880,7 +921,7 @@ function registerTFGFLPlanters(event) {
|
|||
"betterend:block/blossom_berry_seed_0",
|
||||
"betterend:block/blossom_berry_seed_1",
|
||||
"betterend:block/blossom_berry_seed_2",
|
||||
"betterend:block/blossom_berry_seed_3",
|
||||
"betterend:block/blossom_berry_seed_3"
|
||||
],
|
||||
null
|
||||
);
|
||||
|
|
@ -898,7 +939,7 @@ function registerTFGFLPlanters(event) {
|
|||
"betterend:block/bolux_mushroom_greenhouse_0",
|
||||
"betterend:block/bolux_mushroom_greenhouse_1",
|
||||
"betterend:block/bolux_mushroom_greenhouse_2",
|
||||
"betterend:block/bolux_mushroom_greenhouse_3",
|
||||
"betterend:block/bolux_mushroom_greenhouse_3"
|
||||
],
|
||||
null
|
||||
);
|
||||
|
|
@ -916,7 +957,7 @@ function registerTFGFLPlanters(event) {
|
|||
"betterend:block/chorus_mushroom_0",
|
||||
"betterend:block/chorus_mushroom_1",
|
||||
"betterend:block/chorus_mushroom_2",
|
||||
"betterend:block/chorus_mushroom_3",
|
||||
"betterend:block/chorus_mushroom_3"
|
||||
],
|
||||
null
|
||||
);
|
||||
|
|
@ -934,7 +975,7 @@ function registerTFGFLPlanters(event) {
|
|||
"betterend:block/cave_pumpkin_greenhouse_0",
|
||||
"betterend:block/cave_pumpkin_greenhouse_1",
|
||||
"betterend:block/cave_pumpkin_greenhouse_2",
|
||||
"betterend:block/cave_pumpkin_greenhouse_3",
|
||||
"betterend:block/cave_pumpkin_greenhouse_3"
|
||||
],
|
||||
"betterend:block/cave_pumpkin_top"
|
||||
);
|
||||
|
|
@ -952,12 +993,14 @@ function registerTFGFLPlanters(event) {
|
|||
"betterend:block/shadow_berry_greenhouse_0",
|
||||
"betterend:block/shadow_berry_greenhouse_1",
|
||||
"betterend:block/shadow_berry_greenhouse_2",
|
||||
"betterend:block/shadow_berry_greenhouse_3",
|
||||
"betterend:block/shadow_berry_greenhouse_3"
|
||||
],
|
||||
null
|
||||
);
|
||||
}
|
||||
|
||||
//#endregion
|
||||
//#region Fauna Data
|
||||
|
||||
/** @param {Internal.TFCDataEventJS} event */
|
||||
function registerTFGFauna(event) {
|
||||
|
|
@ -1063,4 +1106,6 @@ function registerTFGFauna(event) {
|
|||
faunaData.solidGround(true)
|
||||
},
|
||||
"wan_ancient_beasts:glider")
|
||||
}
|
||||
}
|
||||
|
||||
//#endregion
|
||||
|
|
@ -59,6 +59,7 @@ GTCEuStartupEvents.registry('gtceu:material', event => {
|
|||
registerGreateMaterials(event)
|
||||
registerTFGMaterials(event)
|
||||
registerTFGNuclearMaterials(event)
|
||||
registerTFGBiolineMaterials(event)
|
||||
})
|
||||
|
||||
GTCEuStartupEvents.registry('gtceu:material_icon_set', event => {
|
||||
|
|
|
|||
|
|
@ -545,4 +545,12 @@ const registerTFGItems = (event) => {
|
|||
.translationKey('item.tfg.advanced_polymer_binder')
|
||||
.texture('tfg:item/graphite_line/advanced_polymer_binder')
|
||||
|
||||
//#region Bioline
|
||||
|
||||
event.create('tfg:cellulose_matrix')
|
||||
event.create('tfg:smooth_endoplasmic_reticula')
|
||||
event.create('tfg:rough_endoplasmic_reticula')
|
||||
event.create('tfg:alpha_keratin')
|
||||
|
||||
//#endregion
|
||||
}
|
||||
|
|
|
|||
113
kubejs/startup_scripts/tfg/materials.bioline.js
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
// priority: 0
|
||||
"use strict";
|
||||
|
||||
const registerTFGBiolineMaterials = (event) => {
|
||||
|
||||
/* event.create('mysterious_ooze')
|
||||
.liquid(new GTFluidBuilder().temperature(293))
|
||||
.gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(293))
|
||||
.color(0x500bbf)
|
||||
.fluidTemp(69420)
|
||||
.dust()
|
||||
.cableProperties(GTValues.V[GTValues.LV], 69, 0, true) // Voltage, Amperage, EU loss, Is Superconductor.
|
||||
.gem(2, 4000)
|
||||
.element(GTElements.C)
|
||||
.ore(2, 3)
|
||||
.color(0x7D2DDB)
|
||||
.iconSet(GTMaterialIconSet.LIGNITE)
|
||||
.ingot()
|
||||
.components('1x andesite', '1x iron')
|
||||
.color(0x839689)
|
||||
.iconSet(GTMaterialIconSet.DULL)
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_SMALL_GEAR)
|
||||
*/
|
||||
|
||||
//#region Decellularization
|
||||
|
||||
event.create('tfg:lauryl_alcohol')
|
||||
.liquid(new GTFluidBuilder().temperature(293))
|
||||
.components('12x carbon', '26x hydrogen', '1x oxygen')
|
||||
.iconSet(GTMaterialIconSet.FINE)
|
||||
.color(0x9C734E)
|
||||
.secondaryColor(0xA12727)
|
||||
|
||||
event.create('tfg:chlorosulfuric_acid')
|
||||
.liquid(new GTFluidBuilder().temperature(293).attribute(GTFluidAttributes.ACID))
|
||||
.components('1x hydrogen', '1x sulfur', '3x oxygen', '1x chlorine')
|
||||
.iconSet(GTMaterialIconSet.FINE)
|
||||
.color(0xAA8772)
|
||||
.secondaryColor(0xF0D5CE)
|
||||
|
||||
event.create('tfg:sodium_dodecyl_sulfate')
|
||||
.liquid(new GTFluidBuilder().temperature(293))
|
||||
.components('12x carbon', '25x hydrogen', '1x sodium', '1x sulfur', '4x oxygen')
|
||||
.iconSet(GTMaterialIconSet.FINE)
|
||||
.color(0xCA9851)
|
||||
.secondaryColor(0xF0D5CE)
|
||||
|
||||
event.create('tfg:sodium_hypochlorite')
|
||||
.liquid(new GTFluidBuilder().temperature(293))
|
||||
.components('1x sodium', '1x oxygen', '1x chlorine')
|
||||
.iconSet(GTMaterialIconSet.FINE)
|
||||
.color(0x64995B)
|
||||
.secondaryColor(0xE5EEAE)
|
||||
|
||||
//#endregion
|
||||
//#region Basic Feeder Cells
|
||||
|
||||
event.create('tfg:mutative_yeast')
|
||||
.liquid(new GTFluidBuilder().customStill().temperature(310))
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create('tfg:proto_growth_medium')
|
||||
.liquid(new GTFluidBuilder().customStill().temperature(293))
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create('tfg:fibroblast_feeder_cells')
|
||||
.liquid(new GTFluidBuilder().customStill().temperature(310))
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
//#endregion
|
||||
//#region Gram Stain
|
||||
|
||||
event.create('tfg:gram_stain')
|
||||
.liquid(new GTFluidBuilder().customStill().temperature(293))
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create('tfg:crystal_violet')
|
||||
.liquid(new GTFluidBuilder().customStill().temperature(293))
|
||||
.components('25x carbon', '30x hydrogen', '1x chlorine', '3x nitrogen')
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create('tfg:n_n_dimethylaniline')
|
||||
.liquid(new GTFluidBuilder().temperature(293))
|
||||
.components('8x carbon', '11x hydrogen', '1x nitrogen')
|
||||
.iconSet(GTMaterialIconSet.FINE)
|
||||
.color(0x525467)
|
||||
.secondaryColor(0x6B81A1)
|
||||
|
||||
//#endregion
|
||||
//#region Triglycerides
|
||||
|
||||
event.create('tfg:triglyceride_oil')
|
||||
.liquid(new GTFluidBuilder().customStill().temperature(293))
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create('tfg:cholesterol')
|
||||
.dust()
|
||||
.components('27x carbon', '46x hydrogen', '1x oxygen')
|
||||
.iconSet(GTMaterialIconSet.FINE)
|
||||
.color(0x7F86C2)
|
||||
.secondaryColor(0xE1E7F0)
|
||||
|
||||
event.create('tfg:butyric_acid')
|
||||
.liquid(new GTFluidBuilder().temperature(293).attribute(GTFluidAttributes.ACID))
|
||||
.components('4x carbon', '8x hydrogen', '2x oxygen')
|
||||
.formula('C3H7COOH')
|
||||
.iconSet(GTMaterialIconSet.FINE)
|
||||
.color(0x3F3E3E)
|
||||
.secondaryColor(0x8E4949)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
//#endregion
|
||||
}
|
||||
|
|
@ -7,7 +7,7 @@ const registerTFGMaterials = (event) => {
|
|||
.color('0xFFFFFF')
|
||||
.formula('?')
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
|
||||
event.create('hardwood')
|
||||
.dust()
|
||||
.flags(GTMaterialFlags.FLAMMABLE)
|
||||
|
|
|
|||