bioline materials (#2191)

* materials

* lang

* materials

* utility linting

* data and linting

* lang
This commit is contained in:
Redeix 2025-11-08 03:40:26 -06:00 committed by GitHub
parent 324847ccde
commit 7ee6ff2c04
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
32 changed files with 346 additions and 59 deletions

View file

@ -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"]
}
},
]);

View file

@ -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",

View file

@ -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!!",

View 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"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

View file

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View file

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

View file

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

View file

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

View file

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 595 B

View file

@ -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]}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -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]}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 B

View file

@ -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]}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 575 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 B

View file

@ -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);
};
};

View file

@ -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

View file

@ -59,6 +59,7 @@ GTCEuStartupEvents.registry('gtceu:material', event => {
registerGreateMaterials(event)
registerTFGMaterials(event)
registerTFGNuclearMaterials(event)
registerTFGBiolineMaterials(event)
})
GTCEuStartupEvents.registry('gtceu:material_icon_set', event => {

View file

@ -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
}

View 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
}

View file

@ -7,7 +7,7 @@ const registerTFGMaterials = (event) => {
.color('0xFFFFFF')
.formula('?')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
event.create('hardwood')
.dust()
.flags(GTMaterialFlags.FLAMMABLE)