diff --git a/eslint.config.js b/eslint.config.js index d3d620ab2..308ee087b 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -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"] } }, ]); diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index 4ba5c4bc1..038eb716c 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -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", diff --git a/kubejs/assets/tfg/lang/pt_br.json b/kubejs/assets/tfg/lang/pt_br.json index 38c2e1354..ba33104fa 100644 --- a/kubejs/assets/tfg/lang/pt_br.json +++ b/kubejs/assets/tfg/lang/pt_br.json @@ -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!!", diff --git a/kubejs/assets/tfg/models/item/progenitor_cells.json b/kubejs/assets/tfg/models/item/progenitor_cells.json new file mode 100644 index 000000000..2c664165b --- /dev/null +++ b/kubejs/assets/tfg/models/item/progenitor_cells.json @@ -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" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.crystal_violet.png b/kubejs/assets/tfg/textures/block/fluids/fluid.crystal_violet.png new file mode 100644 index 000000000..053ca4753 Binary files /dev/null and b/kubejs/assets/tfg/textures/block/fluids/fluid.crystal_violet.png differ diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.crystal_violet.png.mcmeta b/kubejs/assets/tfg/textures/block/fluids/fluid.crystal_violet.png.mcmeta new file mode 100644 index 000000000..c5d457f93 --- /dev/null +++ b/kubejs/assets/tfg/textures/block/fluids/fluid.crystal_violet.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.fibroblast_feeder_cells.png b/kubejs/assets/tfg/textures/block/fluids/fluid.fibroblast_feeder_cells.png new file mode 100644 index 000000000..bb199bbab Binary files /dev/null and b/kubejs/assets/tfg/textures/block/fluids/fluid.fibroblast_feeder_cells.png differ diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.fibroblast_feeder_cells.png.mcmeta b/kubejs/assets/tfg/textures/block/fluids/fluid.fibroblast_feeder_cells.png.mcmeta new file mode 100644 index 000000000..c5d457f93 --- /dev/null +++ b/kubejs/assets/tfg/textures/block/fluids/fluid.fibroblast_feeder_cells.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.gram_stain.png b/kubejs/assets/tfg/textures/block/fluids/fluid.gram_stain.png new file mode 100644 index 000000000..23fa15004 Binary files /dev/null and b/kubejs/assets/tfg/textures/block/fluids/fluid.gram_stain.png differ diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.gram_stain.png.mcmeta b/kubejs/assets/tfg/textures/block/fluids/fluid.gram_stain.png.mcmeta new file mode 100644 index 000000000..c5d457f93 --- /dev/null +++ b/kubejs/assets/tfg/textures/block/fluids/fluid.gram_stain.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.mutative_yeast.png b/kubejs/assets/tfg/textures/block/fluids/fluid.mutative_yeast.png new file mode 100644 index 000000000..8201e0ca1 Binary files /dev/null and b/kubejs/assets/tfg/textures/block/fluids/fluid.mutative_yeast.png differ diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.mutative_yeast.png.mcmeta b/kubejs/assets/tfg/textures/block/fluids/fluid.mutative_yeast.png.mcmeta new file mode 100644 index 000000000..c5d457f93 --- /dev/null +++ b/kubejs/assets/tfg/textures/block/fluids/fluid.mutative_yeast.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.proto_growth_medium.png b/kubejs/assets/tfg/textures/block/fluids/fluid.proto_growth_medium.png new file mode 100644 index 000000000..7172a5e9d Binary files /dev/null and b/kubejs/assets/tfg/textures/block/fluids/fluid.proto_growth_medium.png differ diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.proto_growth_medium.png.mcmeta b/kubejs/assets/tfg/textures/block/fluids/fluid.proto_growth_medium.png.mcmeta new file mode 100644 index 000000000..c5d457f93 --- /dev/null +++ b/kubejs/assets/tfg/textures/block/fluids/fluid.proto_growth_medium.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.triglyceride_oil.png b/kubejs/assets/tfg/textures/block/fluids/fluid.triglyceride_oil.png new file mode 100644 index 000000000..da48ed475 Binary files /dev/null and b/kubejs/assets/tfg/textures/block/fluids/fluid.triglyceride_oil.png differ diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.triglyceride_oil.png.mcmeta b/kubejs/assets/tfg/textures/block/fluids/fluid.triglyceride_oil.png.mcmeta new file mode 100644 index 000000000..c5d457f93 --- /dev/null +++ b/kubejs/assets/tfg/textures/block/fluids/fluid.triglyceride_oil.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/item/alpha_keratin.png b/kubejs/assets/tfg/textures/item/alpha_keratin.png new file mode 100644 index 000000000..af6c1136a Binary files /dev/null and b/kubejs/assets/tfg/textures/item/alpha_keratin.png differ diff --git a/kubejs/assets/tfg/textures/item/cellulose_matrix.png b/kubejs/assets/tfg/textures/item/cellulose_matrix.png new file mode 100644 index 000000000..d07ee3b47 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/cellulose_matrix.png differ diff --git a/kubejs/assets/tfg/textures/item/progenitor_cells_0.png b/kubejs/assets/tfg/textures/item/progenitor_cells_0.png new file mode 100644 index 000000000..0fc0e4248 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/progenitor_cells_0.png differ diff --git a/kubejs/assets/tfg/textures/item/progenitor_cells_0.png.mcmeta b/kubejs/assets/tfg/textures/item/progenitor_cells_0.png.mcmeta new file mode 100644 index 000000000..3c69a2b6a --- /dev/null +++ b/kubejs/assets/tfg/textures/item/progenitor_cells_0.png.mcmeta @@ -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]}} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/item/progenitor_cells_1.png b/kubejs/assets/tfg/textures/item/progenitor_cells_1.png new file mode 100644 index 000000000..4a16c8564 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/progenitor_cells_1.png differ diff --git a/kubejs/assets/tfg/textures/item/progenitor_cells_1.png.mcmeta b/kubejs/assets/tfg/textures/item/progenitor_cells_1.png.mcmeta new file mode 100644 index 000000000..3c69a2b6a --- /dev/null +++ b/kubejs/assets/tfg/textures/item/progenitor_cells_1.png.mcmeta @@ -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]}} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/item/progenitor_cells_2.png b/kubejs/assets/tfg/textures/item/progenitor_cells_2.png new file mode 100644 index 000000000..4682edfab Binary files /dev/null and b/kubejs/assets/tfg/textures/item/progenitor_cells_2.png differ diff --git a/kubejs/assets/tfg/textures/item/progenitor_cells_2.png.mcmeta b/kubejs/assets/tfg/textures/item/progenitor_cells_2.png.mcmeta new file mode 100644 index 000000000..3c69a2b6a --- /dev/null +++ b/kubejs/assets/tfg/textures/item/progenitor_cells_2.png.mcmeta @@ -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]}} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/item/rough_endoplasmic_reticula.png b/kubejs/assets/tfg/textures/item/rough_endoplasmic_reticula.png new file mode 100644 index 000000000..6289fefd9 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/rough_endoplasmic_reticula.png differ diff --git a/kubejs/assets/tfg/textures/item/smooth_endoplasmic_reticula.png b/kubejs/assets/tfg/textures/item/smooth_endoplasmic_reticula.png new file mode 100644 index 000000000..3d651d134 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/smooth_endoplasmic_reticula.png differ diff --git a/kubejs/server_scripts/gregtech/utility.js b/kubejs/server_scripts/gregtech/utility.js index 797d41a0e..d95f49e77 100644 --- a/kubejs/server_scripts/gregtech/utility.js +++ b/kubejs/server_scripts/gregtech/utility.js @@ -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); }; }; diff --git a/kubejs/server_scripts/tfg/data.js b/kubejs/server_scripts/tfg/data.js index 7117ad9cd..36c23c485 100644 --- a/kubejs/server_scripts/tfg/data.js +++ b/kubejs/server_scripts/tfg/data.js @@ -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") -} \ No newline at end of file +} + +//#endregion \ No newline at end of file diff --git a/kubejs/startup_scripts/main_startup_script.js b/kubejs/startup_scripts/main_startup_script.js index 3c90aa21a..e49d025ee 100644 --- a/kubejs/startup_scripts/main_startup_script.js +++ b/kubejs/startup_scripts/main_startup_script.js @@ -59,6 +59,7 @@ GTCEuStartupEvents.registry('gtceu:material', event => { registerGreateMaterials(event) registerTFGMaterials(event) registerTFGNuclearMaterials(event) + registerTFGBiolineMaterials(event) }) GTCEuStartupEvents.registry('gtceu:material_icon_set', event => { diff --git a/kubejs/startup_scripts/tfg/items.js b/kubejs/startup_scripts/tfg/items.js index f8b48c889..a862332a8 100644 --- a/kubejs/startup_scripts/tfg/items.js +++ b/kubejs/startup_scripts/tfg/items.js @@ -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 } diff --git a/kubejs/startup_scripts/tfg/materials.bioline.js b/kubejs/startup_scripts/tfg/materials.bioline.js new file mode 100644 index 000000000..593eb40a2 --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials.bioline.js @@ -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 +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials.js b/kubejs/startup_scripts/tfg/materials.js index f9d443a8e..62cd825eb 100644 --- a/kubejs/startup_scripts/tfg/materials.js +++ b/kubejs/startup_scripts/tfg/materials.js @@ -7,7 +7,7 @@ const registerTFGMaterials = (event) => { .color('0xFFFFFF') .formula('?') .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - + event.create('hardwood') .dust() .flags(GTMaterialFlags.FLAMMABLE)