big tidying of startup scripts!

This commit is contained in:
Pyritie 2025-12-01 23:39:42 +00:00
parent bda35f7f6c
commit 0916fd2e21
50 changed files with 2767 additions and 2841 deletions

View file

@ -1,92 +0,0 @@
// priority: 0
"use strict";
const registerAdAstraMaterials = (event) => {
event.create('armalcolite')
.gem(2)
.components('1x magnesium', '1x rutile', '1x ilmenite')
.color(0x443333)
.secondaryColor(0x5e2c21)
.iconSet(GTMaterialIconSet.getByName('tfc_emerald'))
.ore()
.addOreByproducts('rutile', 'rutile', 'ilmenite')
// #region ad astra ores
// moon
event.create('desh')
.components('2x olivine', '1x rutile', '4x nitrogen')
.color(0xF39A4C)
.secondaryColor(0xF35A6C)
.iconSet(GTMaterialIconSet.getByName('tfc_hematite'))
.ore()
.addOreByproducts('olivine', 'rutile', 'rutile')
.ingot()
.liquid()
.blastTemp(2800, 'mid', GTValues.VA[GTValues.HV])
.flags(
GTMaterialFlags.FORCE_GENERATE_BLOCK,
GTMaterialFlags.GENERATE_PLATE,
GTMaterialFlags.GENERATE_ROD,
GTMaterialFlags.GENERATE_DENSE,
GTMaterialFlags.GENERATE_GEAR,
GTMaterialFlags.GENERATE_FRAME,
GTMaterialFlags.DISABLE_ALLOY_BLAST
)
// mars
event.create('ostrum')
.components('2x pitchblende', '1x tricalcium_phosphate', '1x bauxite', '1x silver', '1x beryllium')
.color(0xbd7980)
.secondaryColor(0xA66C8D)
.iconSet(GTMaterialIconSet.getByName('tfc_cassiterite'))
.ingot()
.liquid()
.blastTemp(3700, 'mid', GTValues.VA[GTValues.EV])
.flags(
GTMaterialFlags.DISABLE_DECOMPOSITION,
GTMaterialFlags.FORCE_GENERATE_BLOCK,
GTMaterialFlags.GENERATE_PLATE,
GTMaterialFlags.GENERATE_ROD,
GTMaterialFlags.GENERATE_FRAME,
GTMaterialFlags.DISABLE_ALLOY_BLAST
)
// venus?
event.create('calorite')
//.components('2x mercury', '1x tungsten', '1x rhodium', '2x sulfur')
.color(0xC94D4E)
.secondaryColor(0x9A296A)
.iconSet(GTMaterialIconSet.getByName('tfc_copper'))
.ore()
.ingot()
.flags(
GTMaterialFlags.FORCE_GENERATE_BLOCK,
GTMaterialFlags.GENERATE_PLATE
)
// ???
event.create('etrium')
//.components('1x niobium', '1x molybdenum', '1x ruthenium', '3x carbon', '1x monochloramine')
.color(0x7BFCD7)
.secondaryColor(0x3582D2)
.iconSet(GTMaterialIconSet.getByName('tfc_silver'))
.ore()
.ingot()
.flags(
GTMaterialFlags.FORCE_GENERATE_BLOCK,
GTMaterialFlags.GENERATE_PLATE,
GTMaterialFlags.GENERATE_ROD
)
// #endregion
}
const registerAdAstraMaterialModification = (event) => {
const $FLUID_PIPE_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.FluidPipeProperties')
// Ostrum fluid pipe - same flow rate as titanium, higher temp range
GTMaterials.get('ostrum').setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(3700, 150, true, false, true, false));
}

View file

@ -1,13 +0,0 @@
// priority: 0
"use strict";
const registerAE2Fluids = (event) => {
// AE2 Moon Fluix
event.create('tfg:cryogenized_fluix')
.thickTexture(0xde8cfb)
.bucketColor(0xde8cfb)
.luminosity(14)
.temperature(10)
}

View file

@ -1,17 +0,0 @@
// priority: 0
"use strict";
global.CHISEL_AND_BITS_DISABLED_ITEMS = [
'chiselsandbits:block_bit',
'chiselsandbits:chiseled_block',
'chiselsandbits:chisel_stone',
'chiselsandbits:chisel_iron',
'chiselsandbits:chisel_gold',
'chiselsandbits:chisel_netherite',
'chiselsandbits:bit_bag_dyed',
'chiselsandbits:pattern_single_use',
'chiselsandbits:pattern_multi_use',
'chiselsandbits:monocle'
];

View file

@ -1,45 +0,0 @@
// priority: 0
"use strict";
const registerGTCEuItems = (event) => {
event.create('tfg:ulv_universal_circuit')
.translationKey('item.ulv_universal_circuit')
event.create('tfg:lv_universal_circuit')
.translationKey('item.lv_universal_circuit')
event.create('tfg:mv_universal_circuit')
.translationKey('item.mv_universal_circuit')
event.create('tfg:hv_universal_circuit')
.translationKey('item.hv_universal_circuit')
event.create('tfg:ev_universal_circuit')
.translationKey('item.ev_universal_circuit')
event.create('tfg:iv_universal_circuit')
.translationKey('item.iv_universal_circuit')
event.create('tfg:luv_universal_circuit')
.translationKey('item.luv_universal_circuit')
event.create('tfg:zpm_universal_circuit')
.translationKey('item.zpm_universal_circuit')
event.create('tfg:uv_universal_circuit')
.translationKey('item.uv_universal_circuit')
event.create('tfg:uhv_universal_circuit')
.translationKey('item.uhv_universal_circuit')
event.create('tfg:chipboard_composite')
.translationKey('item.chipboard_composite')
event.create('tfg:treated_chipboard_composite')
.translationKey('item.treated_chipboard_composite')
event.create('tfg:high_density_treated_fiberboard')
.translationKey('item.high_density_treated_fiberboard')
}

View file

@ -1,10 +1,6 @@
// priority: 0
"use strict";
const registerGTCEuMaterials = (event) => {
}
const registerGTCEuMaterialModification = (event) => {
//const TFGPropertyKey = Java.loadClass('su.terrafirmagreg.core.compat.gtceu.TFGPropertyKeys')
@ -343,6 +339,8 @@ const registerGTCEuMaterialModification = (event) => {
GTMaterials.RedSteel.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(370, 75, true, false, true, false));
// Blue steel fluid pipe - same flow rate as aluminium, same temp tolerance as tungsten
GTMaterials.BlueSteel.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(4618, 75, true, false, false, false));
// Ostrum fluid pipe - same flow rate as titanium, higher temp range
TFGHelpers.getMaterial('ostrum').setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(3700, 150, true, false, true, false));
// Add some hazards back
GTMaterials.Realgar.setProperty(PropertyKey.HAZARD, new $HAZARD_PROPERTY($HAZARD_PROPERTY.HazardTrigger.INHALATION, GTMedicalConditions.ARSENICOSIS, 1, false));

View file

@ -2,14 +2,11 @@
"use strict";
StartupEvents.registry('item', event => {
registerBetterEndItems(event)
registerGTCEuItems(event)
registerTFGItems(event)
})
StartupEvents.registry('block', event => {
registerTFGBlocks(event)
registerBetterEndBlocks(event)
})
StartupEvents.registry('entity_type', event => {
@ -32,7 +29,6 @@ ItemEvents.modification(event => {
StartupEvents.registry('fluid', event => {
registerTFGFluids(event)
registerAE2Fluids(event)
})
GTCEuStartupEvents.registry('gtceu:recipe_type', event => {
@ -51,26 +47,19 @@ GTCEuStartupEvents.registry('gtceu:tag_prefix', event => {
})
GTCEuStartupEvents.registry('gtceu:material', event => {
registerAdAstraMaterials(event)
registerAE2Materials(event)
registerCreateMaterials(event)
registerTFCMaterials(event)
registerGTCEuMaterials(event)
registerGreateMaterials(event)
registerTFGMaterials(event)
registerTFGNuclearMaterials(event)
registerTFGBiolineMaterials(event)
registerTFGPowerReworkMaterials(event)
})
GTCEuStartupEvents.registry('gtceu:material_icon_set', event => {
registerTFCIconSets(event)
registerTFGIconSets(event)
})
GTCEuStartupEvents.materialModification(event => {
registerGTCEuMaterialModification(event)
registerGreateMaterialModification(event)
registerAdAstraMaterialModification(event)
})
GTCEuStartupEvents.registry('gtceu:dimension_marker', event => {

View file

@ -1,39 +0,0 @@
// priority: 0
"use strict";
function registerTFCIconSets(event) {
event.create('tfc_borax').parent('rough')
event.create('tfc_gypsum').parent('rough')
event.create('tfc_graphite').parent('rough')
event.create('tfc_saltpeter').parent('fine')
event.create('tfc_sulfur').parent('fine')
event.create('tfc_amethyst').parent('ruby')
event.create('tfc_redstone').parent('fine')
event.create('tfc_diamond').parent('diamond')
event.create('tfc_emerald').parent('emerald')
event.create('tfc_lapis').parent('lapis')
event.create('tfc_opal').parent('opal')
event.create('tfc_pyrite').parent('bright')
event.create('tfc_ruby').parent('ruby')
event.create('tfc_sapphire').parent('gem_horizontal')
event.create('tfc_topaz').parent('gem_vertical')
event.create('tfc_realgar').parent('emerald')
event.create('tfc_bismuth').parent('bright')
event.create('tfc_cassiterite').parent('bright')
event.create('tfc_garnierite').parent('bright')
event.create('tfc_hematite').parent('metallic')
event.create('tfc_limonite').parent('metallic')
event.create('tfc_magnetite').parent('dull')
event.create('tfc_malachite').parent('shiny')
event.create('tfc_copper').parent('bright')
event.create('tfc_gold').parent('shiny')
event.create('tfc_silver').parent('shiny')
event.create('tfc_sphalerite').parent('dull')
event.create('tfc_tetrahedrite').parent('dull')
event.create('tfc_chromite').parent('dull')
event.create('nether_quartz').parent('quartz')
}

View file

@ -0,0 +1,39 @@
"use strict";
function registerTFGBiotechItems(event) {
event.create('tfg:stainless_steel_needle')
.unstackable()
.maxDamage(9999)
//#region Lab Equipment
global.LAB_EQUIPMENT_CONTAINERS.forEach((item) => {
event.create(`tfg:${item.type}`, 'tfc:glass_bottle')
.fluidTagAccept('tfg:not_solid')
.capacity(item.capacity)
.translationKey(`item.tfg.lab_equipment.${item.type}`)
.tag('tfg:lab_equipment_containers')
.tag('tfc:fluid_item_ingredient_empty_containers')
.tag('tfc:glass_bottles')
})
event.create('tfg:lab_equipment')
.translationKey('item.tfg.lab_equipment.lab_equipment')
.tooltip(Text.translatable('tfg.tooltip.lab_equipment.set'))
event.create('tfg:dirty_lab_equipment')
.translationKey('item.tfg.lab_equipment.dirty_lab_equipment')
.tooltip(Text.translatable('tfg.tooltip.lab_equipment.set_dirty'))
//#endregion
//#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,69 @@
// priority: 0
"use strict";
function registerTFGMedicineItems(event) {
const pill = [
'haste',
'night_vision',
'poison',
'regeneration',
'slowness',
'speed',
'water_breathing',
'weakness'
]
const pill_names = [
'Haste',
'Night Vision',
'Poison',
'Regeneration',
'Slowness',
'Speed',
'Water Breathing',
'Weakness'
]
pill.forEach((pill_array, index) => {
const pill_names_array = pill_names[index];
event.create(`tfg:${pill_array}_pill`)
.tooltip(`§9${pill_names_array} (08:00)`)
event.create(`tfg:${pill_array}_tablet`)
.tooltip(`§9${pill_names_array} (30:00)`)
})
event.create(`tfg:antipoison_pill`)
.tooltip(`§9Cures Poison`)
event.create(`tfg:antipoison_tablet`)
.tooltip(`§9Cures All Harmful Effects`)
//salvos
const salvo = [
'absorption',
'fire_resistance',
'invisibility',
'luck',
'resistance'
]
const salvo_names = [
'Absorption',
'Fire Resistance',
'Invisibility',
'Luck',
'Resistance'
]
salvo.forEach((salvo_array, index) => {
const salvo_names_array = salvo_names[index];
event.create(`tfg:${salvo_array}_salvo`)
.tooltip(`§9${salvo_names_array} (08:00)`)
})
event.create(`tfg:instant_health_salvo`)
.tooltip(`§9Instant Health II`)
}

View file

@ -0,0 +1,121 @@
"use strict";
function registerTFGCasingBlocks(event) {
global.TFG_MACHINE_CASINGS.forEach(type => {
event.create(`tfg:casings/${type}`)
.translationKey(`block.tfg.casings.${type}`)
.model(`tfg:block/casings/${type}`)
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_light_gray')
})
event.create(`tfg:casings/machine_casing_stainless_evaporation`)
.translationKey(`block.tfg.casings.machine_casing_stainless_evaporation`)
.model(`tfg:block/casings/machine_casing_stainless_evaporation`)
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_light_gray')
event.create('tfg:casings/machine_casing_vacuum_engine_intake', 'gtceu:active')
.simple('tfg:block/casings/machine_casing_vacuum_engine_intake')
.translationKey('block.tfg.casings.machine_casing_vacuum_engine_intake')
.soundType('metal')
.resistance(6).hardness(5)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.requiresTool(true)
.mapColor('color_light_gray')
event.create('tfg:casings/machine_casing_bioculture')
.translationKey('block.tfg.casings.machine_casing_bioculture')
.model('tfg:block/casings/machine_casing_bioculture')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_red')
event.create('tfg:casings/machine_casing_bioculture_glass')
.translationKey('block.tfg.casings.machine_casing_bioculture_glass')
.model('tfg:block/casings/machine_casing_bioculture_glass')
.soundType('glass')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_orange')
.defaultTranslucent()
event.create('tfg:casings/bioculture_rotor_primary', 'tfg:active_particle_emitter')
.translationKey('block.tfg.casings.bioculture_rotor_primary')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_light_gray')
.activeOffset(1.6, 2, 1.6)
.activeVelocity(0, 0, 0)
.activeParticle('minecraft:landing_lava')
.activeCount(10)
.activeForced(false)
event.create('tfg:casings/bioculture_rotor_secondary', 'gtceu:active')
.translationKey('block.tfg.casings.bioculture_rotor_secondary')
.model('tfg:block/casings/bioculture_rotor_secondary')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_light_gray')
event.create('tfg:casings/machine_casing_ultraviolet', 'gtceu:active')
.translationKey('block.tfg.casings.machine_casing_ultraviolet')
.soundType('glass')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_light_gray')
event.create('tfg:casings/heat_pipe_casing')
.translationKey('block.tfg.casings.heat_pipe_casing')
.model('tfg:block/casings/heat_pipe_casing')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_black')
event.create('tfg:sample_rack', 'tfg:active_cardinal')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_light_gray')
.notSolid()
.renderType('cutout')
.opaque(false)
event.create('tfg:growth_monitor', 'tfg:active_cardinal')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_light_gray')
.notSolid()
.renderType('cutout')
.opaque(false)
event.create('tfg:casings/machine_casing_sterilizing_pipes', 'tfg:active_cardinal')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_brown')
}

View file

@ -310,115 +310,4 @@ const registerTFGCrops = (event) => {
.tagBlock('minecraft:mineable/hoe')
.tagBlock('tfc:can_be_snow_piled')
.tagItem('c:hidden_from_recipe_viewers')
// Mars Saplings
event.create('tfg:saplings/crimson', 'tfc:sapling')
.features('tfg:mars/tree/crimson')
.tagBoth('minecraft:saplings')
.tagBlock('tfg:do_not_destroy_in_space')
.tagBlock('tfc:can_be_snow_piled')
.growthDays(6)
.soundType('nether_wart')
.defaultCutout()
.noCollision()
event.create('tfg:saplings/warped', 'tfc:sapling')
.features('tfg:mars/tree/warped')
.tagBoth('minecraft:saplings')
.tagBlock('tfg:do_not_destroy_in_space')
.tagBlock('tfc:can_be_snow_piled')
.growthDays(6)
.soundType('nether_wart')
.defaultCutout()
.noCollision()
event.create('tfg:saplings/alphacene', 'tfc:sapling')
.features('species:alphacene_mushroom')
.tagBoth('minecraft:saplings')
.tagBlock('tfg:do_not_destroy_in_space')
.tagBlock('tfc:can_be_snow_piled')
.growthDays(3)
.soundType('nether_wart')
.defaultCutout()
.noCollision()
event.create('tfg:saplings/strophar', 'tfc:sapling')
.features('tfg:mars/tree/strophar_mini')
.tagBoth('minecraft:saplings')
.tagBlock('tfg:do_not_destroy_in_space')
.tagBlock('tfc:can_be_snow_piled')
.growthDays(7)
.soundType('nether_wart')
.defaultCutout()
.noCollision()
event.create('tfg:saplings/aeronos', 'tfc:sapling')
.features('tfg:mars/tree/aeronos_mini')
.tagBoth('minecraft:saplings')
.tagBlock('tfg:do_not_destroy_in_space')
.tagBlock('tfc:can_be_snow_piled')
.growthDays(9)
.soundType('nether_wart')
.defaultCutout()
.noCollision()
event.create('tfg:saplings/glacian', 'tfc:sapling')
.features('tfg:mars/tree/glacian_mini')
.tagBoth('minecraft:saplings')
.tagBlock('tfg:do_not_destroy_in_space')
.tagBlock('tfc:can_be_snow_piled')
.growthDays(9)
.soundType('nether_wart')
.defaultCutout()
.noCollision()
// Glacian tree stuff
event.create('tfg:glacian_leaves', 'tfc:leaves')
.soundType('azalea_leaves')
.tagBlock('minecraft:mineable/hoe')
.tagBlock('tfg:do_not_destroy_in_space')
.mapColor('snow')
.seasonalColors(false)
.fallenLeaves(leaves => {
leaves.noCollision()
leaves.notSolid()
leaves.defaultCutout()
leaves.soundType('azalea_leaves')
leaves.tagBlock('minecraft:mineable/hoe')
leaves.tagBlock('minecraft:replaceable')
leaves.noDynamicTinting()
leaves.models((modelType, generator) => {
if (modelType.layers != 8) {
generator.parent("tfc:block/groundcover/fallen_leaves_height" + modelType.height);
generator.texture("all", "ad_astra:block/glacian_leaves");
} else {
generator.parent("ad_astra:block/glacian_leaves");
}
})
})
event.create('tfg:glacian_wood', 'tfc:log')
.tagBoth('minecraft:logs')
.tagItem('minecraft:logs_that_burn')
.tagItem('ad_astra:glacian_logs')
.tagBlock('minecraft:mineable/axe')
.soundType('wood')
.stripped(stripped => {
stripped.tagBoth('minecraft:logs')
stripped.tagItem('minecraft:logs_that_burn')
stripped.tagItem('ad_astra:glacian_logs')
stripped.tagBlock('minecraft:mineable/axe')
stripped.soundType('wood')
})
event.create('tfg:glacian_log', 'tfc:log')
.tagBoth('minecraft:logs')
.tagBoth('c:hidden_from_recipe_viewers')
.soundType('wood')
.stripped(stripped => {
stripped.tagBoth('minecraft:logs')
stripped.tagBoth('c:hidden_from_recipe_viewers')
stripped.soundType('wood')
})
}

View file

@ -2,375 +2,30 @@
const registerTFGBlocks = (event) => {
registerTFGNetherBlocks(event)
registerTFGSpaceBlocks(event)
registerTFGDimensionMarkerBlocks(event)
registerTFGCrops(event)
registerTFGVaseBlocks(event)
registerTFGSupportBlocks(event)
registerTFGAqueductBlocks(event)
registerTFGCrops(event)
registerTFGRockBlocks(event)
registerTFGVanillaStoneBlocks(event)
registerTFGWorldGenTrees(event)
registerTFGWorldGenBeneathDecoBlocks(event)
registerTFGWorldGenMoonDecoBlocks(event)
registerTFGWorldGenMarsDecoBlocks(event)
registerTFGWorldGenVenusDecoBlocks(event)
registerTFGWorldGenEuropaDecoBlocks(event)
registerTFGCasingBlocks(event)
registerTFGNuclearBlocks(event)
// Temporary, remove in 0.12
event.create('gtceu:ostrum_linear_accelerator')
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.requiresTool(false)
.textureAll('tfg:item/deprecated')
event.create('tfg:titanium_exhaust_vent', 'tfg:active_particle_emitter')
.textureAll('tfg:block/titanium_exhaust_vent')
.soundType('metal')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_black')
.speedFactor(1.1)
.activeOffset(3.5, 2, 3.5)
.activeVelocity(0.0, 0.0, 0.0)
.activeParticle('tfg:cooling_steam')
.activeBase(0.0, 12.5, 0.0)
.activeCount(8)
.activeForced(false)
.hasTicker(true)
// #region Machine Casings
global.TFG_MACHINE_CASINGS.forEach(type => {
event.create(`tfg:casings/${type}`)
.translationKey(`block.tfg.casings.${type}`)
.model(`tfg:block/casings/${type}`)
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_light_gray')
})
event.create(`tfg:casings/machine_casing_stainless_evaporation`)
.translationKey(`block.tfg.casings.machine_casing_stainless_evaporation`)
.model(`tfg:block/casings/machine_casing_stainless_evaporation`)
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_light_gray')
event.create('tfg:casings/machine_casing_vacuum_engine_intake', 'gtceu:active')
.simple('tfg:block/casings/machine_casing_vacuum_engine_intake')
.translationKey('block.tfg.casings.machine_casing_vacuum_engine_intake')
.soundType('metal')
.resistance(6).hardness(5)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.requiresTool(true)
.mapColor('color_light_gray')
event.create('tfg:casings/machine_casing_bioculture')
.translationKey('block.tfg.casings.machine_casing_bioculture')
.model('tfg:block/casings/machine_casing_bioculture')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_red')
event.create('tfg:casings/machine_casing_bioculture_glass')
.translationKey('block.tfg.casings.machine_casing_bioculture_glass')
.model('tfg:block/casings/machine_casing_bioculture_glass')
.soundType('glass')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_orange')
.defaultTranslucent()
event.create('tfg:casings/bioculture_rotor_primary', 'tfg:active_particle_emitter')
.translationKey('block.tfg.casings.bioculture_rotor_primary')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_light_gray')
.activeOffset(1.6, 2, 1.6)
.activeVelocity(0, 0, 0)
.activeParticle('minecraft:landing_lava')
.activeCount(10)
.activeForced(false)
event.create('tfg:casings/bioculture_rotor_secondary', 'gtceu:active')
.translationKey('block.tfg.casings.bioculture_rotor_secondary')
.model('tfg:block/casings/bioculture_rotor_secondary')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_light_gray')
event.create('tfg:casings/machine_casing_ultraviolet', 'gtceu:active')
.translationKey('block.tfg.casings.machine_casing_ultraviolet')
.soundType('glass')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_light_gray')
event.create('tfg:casings/heat_pipe_casing')
.translationKey('block.tfg.casings.heat_pipe_casing')
.model('tfg:block/casings/heat_pipe_casing')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_black')
event.create('tfg:sample_rack', 'tfg:active_cardinal')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_light_gray')
.notSolid()
.renderType('cutout')
.opaque(false)
event.create('tfg:growth_monitor', 'tfg:active_cardinal')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_light_gray')
.notSolid()
.renderType('cutout')
.opaque(false)
event.create('tfg:casings/machine_casing_sterilizing_pipes', 'tfg:active_cardinal')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_brown')
//#endregion
event.create('tfg:titanium_concrete')
.translationKey('block.tfg.titanium_concrete')
.model('tfg:block/concrete/titanium_concrete')
.soundType('stone')
.mapColor('stone')
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.tagBoth('tfg:titanium_concrete')
event.create('tfg:polished_titanium_concrete')
.translationKey('block.tfg.polished_titanium_concrete')
.model('tfg:block/concrete/polished_titanium_concrete')
.soundType('stone')
.mapColor('stone')
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.tagBoth('tfg:titanium_concrete')
event.create('tfg:titanium_concrete_tile')
.translationKey('block.tfg.titanium_concrete_tile')
.model('tfg:block/concrete/titanium_concrete_tile')
.soundType('stone')
.mapColor('stone')
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.tagBoth('tfg:titanium_concrete')
event.create('tfg:titanium_concrete_tile_small')
.translationKey('block.tfg.titanium_concrete_tile_small')
.model('tfg:block/concrete/titanium_concrete_tile_small')
.soundType('stone')
.mapColor('stone')
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.tagBoth('tfg:titanium_concrete')
event.create('tfg:titanium_concrete_bricks')
.translationKey('block.tfg.titanium_concrete_bricks')
.model('tfg:block/concrete/titanium_concrete_bricks')
.soundType('stone')
.mapColor('stone')
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.tagBoth('tfg:titanium_concrete')
event.create('tfg:titanium_concrete_bricks_small')
.translationKey('block.tfg.titanium_concrete_bricks_small')
.model('tfg:block/concrete/titanium_concrete_bricks_small')
.soundType('stone')
.mapColor('stone')
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.tagBoth('tfg:titanium_concrete')
event.create('tfg:titanium_concrete_bricks_square')
.translationKey('block.tfg.titanium_concrete_bricks_square')
.model('tfg:block/concrete/titanium_concrete_bricks_square')
.soundType('stone')
.mapColor('stone')
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.tagBoth('tfg:titanium_concrete')
// #region insulation
event.create('tfg:glacian_wool_frame')
.soundType('copper')
.hardness(4)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
event.create('tfg:aes_insulation_frame')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
event.create('tfg:moderate_core_frame')
.soundType('copper')
.hardness(4)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
event.create('tfg:impure_moderate_core_frame')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
// Unfinished Insulation
event.create('tfg:moderate_core')
.soundType('ancient_debris')
.hardness(7)
.resistance(8)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.model('tfg:block/fission/moderate_core')
event.create('tfg:impure_moderate_core')
.soundType('ancient_debris')
.hardness(7)
.resistance(8)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.model('tfg:block/fission/impure_moderate_core')
// #region Decorative vases
global.MINECRAFT_DYE_NAMES.forEach(color => {
event.create(`tfg:decorative_vase/generated/${color}`, 'cardinal')
.model(`tfg:block/decorative_vase/loot_vase_${color}`)
.soundType('decorated_pot')
.hardness(0.7)
.tagBlock('minecraft:mineable/pickaxe')
.mapColor(`color_${color}`)
.box(2, 0, 2, 14, 20, 14)
.fullBlock(false)
.opaque(false)
.renderType('cutout')
event.create(`tfg:decorative_vase/${color}`, 'cardinal')
.model(`tfg:block/decorative_vase/vase_${color}`)
.soundType('decorated_pot')
.hardness(0.7)
.tagBlock('minecraft:mineable/pickaxe')
.mapColor(`color_${color}`)
.box(2, 0, 2, 14, 20, 14)
.fullBlock(false)
.opaque(false)
.renderType('cutout')
.blockEntity(be => {
be.attach('tfc:inventory', {
width: 9,
height: 1,
size: size => size.isSmallerThan('large')
})
be.rightClickOpensInventory()
})
event.create(`tfg:decorative_vase/unfired/${color}`, 'cardinal')
.model(`tfg:block/decorative_vase/vase_unfired_${color}`)
.soundType('decorated_pot')
.hardness(0.7)
.tagBlock('minecraft:mineable/pickaxe')
.mapColor(`color_${color}`)
.box(2, 0, 2, 14, 20, 14)
.fullBlock(false)
.opaque(false)
.renderType('cutout')
})
event.create('tfg:decorative_vase', 'cardinal')
.model('tfg:block/decorative_vase/vase')
.soundType('decorated_pot')
.hardness(0.7)
.tagBlock('minecraft:mineable/pickaxe')
.mapColor(`color_gray`)
.box(2, 0, 2, 14, 20, 14)
.fullBlock(false)
.opaque(false)
.renderType('cutout')
.blockEntity(be => {
be.attach('tfc:inventory', {
width: 9,
height: 1,
size: size => size.isSmallerThan('large')
})
be.rightClickOpensInventory()
})
event.create('tfg:decorative_vase/unfired', 'cardinal')
.model('tfg:block/decorative_vase/vase_unfired')
.soundType('decorated_pot')
.hardness(0.7)
.tagBlock('minecraft:mineable/pickaxe')
.mapColor(`color_gray`)
.box(2, 0, 2, 14, 20, 14)
.fullBlock(false)
.opaque(false)
.renderType('cutout')
// #endregion
// #region Reconstituted Stone
event.create(`tfg:rock/stone_wall`, 'wall')
.soundType(global.STONE_CHARACS.reconstituted.sound)
.textureAll('minecraft:block/stone')
.tagBoth('tfg:rock_wall')
.mapColor(global.STONE_CHARACS.reconstituted.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
let SHAPES = ['stairs', 'wall']
SHAPES.forEach(shape => {
event.create(`tfg:rock/smooth_stone_${shape}`, shape)
.soundType(global.STONE_CHARACS.reconstituted.sound)
.textureAll('minecraft:block/smooth_stone')
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.mapColor(global.STONE_CHARACS.reconstituted.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
SHAPES = ['stairs', 'slab', 'wall']
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_bricks_stone_${shape}`, shape)
.soundType(global.STONE_CHARACS.reconstituted.sound)
.textureAll('minecraft:block/cracked_stone_bricks')
.tagBoth(`tfg:brick_${shape}s`.replace(/ss/g, 's'))
.mapColor(global.STONE_CHARACS.reconstituted.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/quartz_wall', 'wall')
.soundType('stone')
.textureAll('minecraft:block/quartz_block_side')
.tagBoth('tfg:rock_wall')
.mapColor('snow')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/smooth_quartz_wall', 'wall')
.soundType('stone')
.textureAll('minecraft:block/quartz_block_bottom')
.tagBoth('tfg:rock_wall')
.mapColor('snow')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
// #endregion Reconstituted Stone
}

View file

@ -1,592 +0,0 @@
"use strict";
function registerTFGNetherBlocks(event) {
const SHAPES = ['stairs', 'slab', 'wall']
// #region Raw Stones
SHAPES.forEach(shape => {
event.create(`tfg:rock/deepslate_${shape}`, shape)
.soundType(global.STONE_CHARACS.deepslate.sound)
.textureAll('minecraft:block/deepslate')
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
SHAPES.forEach(shape => {
event.create(`tfg:rock/dripstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.dripstone.sound)
.textureAll('minecraft:block/dripstone_block')
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
SHAPES.forEach(shape => {
event.create(`tfg:rock/crackrack_${shape}`, shape)
.soundType(global.STONE_CHARACS.crackrack.sound)
.textureAll('beneath:block/crackrack')
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// #endregion Raw Stones
// #region Hardened Stones
event.create('tfg:rock/hardened_deepslate')
.soundType(global.STONE_CHARACS.deepslate.sound)
.property(BlockProperties.AXIS)
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'minecraft:item/deepslate' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/hardened_blackstone')
.soundType(global.STONE_CHARACS.blackstone.sound)
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'minecraft:item/blackstone' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/hardened_dripstone')
.soundType(global.STONE_CHARACS.dripstone.sound)
.stoneSoundType()
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'minecraft:item/dripstone_block' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
// #endregion Hardened stones
// #region Spikes
event.create('tfg:spike/deepslate_spike', 'tfc:rock_spike')
.textureAll('minecraft:block/deepslate')
.soundType(global.STONE_CHARACS.deepslate.sound)
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
event.create('tfg:spike/blackstone_spike', 'tfc:rock_spike')
.textureAll('minecraft:block/blackstone')
.soundType(global.STONE_CHARACS.blackstone.sound)
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
event.create('tfg:spike/dripstone_spike', 'tfc:rock_spike')
.textureAll('minecraft:block/dripstone_block')
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
// #endregion Spikes
// #region Loose Stones
event.create('tfg:loose/deepslate', 'tfc:loose_rock')
.soundType(global.STONE_CHARACS.deepslate.sound)
.itemTexture('tfg:item/loose/deepslate')
.rockTypeModel(global.STONE_CHARACS.deepslate.type)
.translationKey("block.tfg.loose.deepslate")
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('tfc:loose_rocks')
.tagItem('tfc:any_knapping')
.tagItem('tfc:rock_knapping')
.tagItem(`tfc:${global.STONE_CHARACS.deepslate.type}_rock`)
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.tagItem("rnr:loose_rock_items")
event.create('tfg:loose/dripstone', 'tfc:loose_rock')
.soundType(global.STONE_CHARACS.dripstone.sound)
.itemTexture('tfg:item/loose/dripstone')
.rockTypeModel(global.STONE_CHARACS.dripstone.type)
.translationKey("block.tfg.loose.dripstone")
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('tfc:loose_rocks')
.tagItem('tfc:any_knapping')
.tagItem('tfc:rock_knapping')
.tagItem(`tfc:${global.STONE_CHARACS.dripstone.type}_rock`)
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.tagItem("rnr:loose_rock_items")
event.create('tfg:loose/crackrack', 'tfc:loose_rock')
.soundType(global.STONE_CHARACS.crackrack.sound)
.itemTexture('tfg:item/loose/crackrack')
.rockTypeModel(global.STONE_CHARACS.crackrack.type)
.translationKey("block.tfg.loose.crackrack")
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('tfc:loose_rocks')
.tagItem('tfc:any_knapping')
.tagItem('tfc:rock_knapping')
.tagItem(`tfc:${global.STONE_CHARACS.crackrack.type}_rock`)
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.tagItem("rnr:loose_rock_items")
// #endregion Loose rocks
// #region Cobblestones
// Deepslate
event.create('tfg:rock/mossy_cobble_deepslate')
.soundType(global.STONE_CHARACS.deepslate.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_cobble_deepslate_${shape}`, shape)
.soundType(global.STONE_CHARACS.deepslate.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Blackstone
event.create('tfg:rock/cobble_blackstone')
.soundType(global.STONE_CHARACS.blackstone.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/cobble_blackstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.blackstone.sound)
.textureAll('minecraft:block/blackstone_top')
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_cobble_blackstone')
.soundType(global.STONE_CHARACS.blackstone.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_cobble_blackstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.blackstone.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Dripstone
event.create('tfg:rock/cobble_dripstone')
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/cobble_dripstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_cobble_dripstone')
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_cobble_dripstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Crackrack
event.create('tfg:rock/cobble_crackrack')
.soundType(global.STONE_CHARACS.crackrack.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/cobble_crackrack_${shape}`, shape)
.soundType(global.STONE_CHARACS.crackrack.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_cobble_crackrack')
.soundType(global.STONE_CHARACS.crackrack.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_cobble_crackrack_${shape}`, shape)
.soundType(global.STONE_CHARACS.crackrack.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// #region Smooth (Polished/Cut) Stones
event.create('tfg:rock/polished_crackrack')
.soundType(global.STONE_CHARACS.crackrack.sound)
.tagBoth('forge:smooth_stone')
.tagBoth('tfc:igneous_intrusive_items')
.tagBoth('tfc:rock/smooth')
.mapColor('crimson_stem')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/polished_crackrack_${shape}`, shape)
.soundType(global.STONE_CHARACS.crackrack.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// #endregion Smooth (Polished/Cut) Stones
// #region Gravels
event.create('tfg:rock/gravel_deepslate')
.soundType('gravel')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_blackstone')
.soundType('gravel')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_dripstone')
.soundType('gravel')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_crackrack')
.soundType('gravel')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
// #endregion Gravels
// #region Bricks / Decorative
// Deepslate
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_bricks_deepslate_${shape}`, shape)
.soundType(global.STONE_CHARACS.deepslate.sound)
.textureAll('minecraft:block/cracked_deepslate_bricks')
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_tiles_deepslate_${shape}`, shape)
.soundType(global.STONE_CHARACS.deepslate.sound)
.textureAll('minecraft:block/cracked_deepslate_tiles')
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_bricks_deepslate')
.soundType(global.STONE_CHARACS.deepslate.sound)
.tagBoth('minecraft:stone_bricks')
.tagBoth('forge:stone_bricks')
.tagBoth('tfc:rock/bricks')
.tagBoth('tfc:rock/mossy_bricks')
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_bricks_deepslate_${shape}`, shape)
.soundType(global.STONE_CHARACS.deepslate.sound)
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Blackstone
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_bricks_blackstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.blackstone.sound)
.textureAll('minecraft:block/cracked_polished_blackstone_bricks')
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_bricks_blackstone')
.soundType(global.STONE_CHARACS.blackstone.sound)
.tagBoth('minecraft:stone_bricks')
.tagBoth('forge:stone_bricks')
.tagBoth('tfc:rock/bricks')
.tagBoth('tfc:rock/mossy_bricks')
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_bricks_blackstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.blackstone.sound)
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Dripstone
event.create('tfg:rock/cracked_bricks_dripstone')
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth('minecraft:stone_bricks')
.tagBoth('forge:stone_bricks')
.tagBoth('tfc:rock/bricks')
.tagBoth('tfc:rock/mossy_bricks')
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_bricks_dripstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_bricks_dripstone')
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth('minecraft:stone_bricks')
.tagBoth('forge:stone_bricks')
.tagBoth('tfc:rock/bricks')
.tagBoth('tfc:rock/mossy_bricks')
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_bricks_dripstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Crackrack
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_bricks_nether_${shape}`, shape)
.soundType(global.STONE_CHARACS.nether.sound)
.textureAll('minecraft:block/cracked_nether_bricks')
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`)
.mapColor(global.STONE_CHARACS.nether.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_bricks_nether')
.soundType(global.STONE_CHARACS.nether.sound)
.tagBoth('minecraft:stone_bricks')
.tagBoth('forge:stone_bricks')
.tagBoth('tfc:rock/bricks')
.tagBoth('tfc:rock/mossy_bricks')
.tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`)
.mapColor(global.STONE_CHARACS.nether.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_bricks_nether_${shape}`, shape)
.soundType(global.STONE_CHARACS.nether.sound)
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`)
.mapColor(global.STONE_CHARACS.nether.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// #endregion Bricks / Decorative
// #region Plants
event.create('tfg:mushroom_roots', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfc:plants')
event.create('tfg:mushroom_sprouts', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfc:plants')
event.create('tfg:charred_log')
.fullBlock(true)
.woodSoundType()
.property(BlockProperties.AXIS)
.tagBoth('minecraft:mineable/axe')
.tagBoth('tfc:logs_that_log')
.tagBoth('afc:logs_that_log')
.tagBoth('minecraft:logs')
.mapColor('black')
}

View file

@ -1,6 +1,64 @@
// priority: 0
"use strict";
function registerTFGDimensionMarkerItems(event) {
event.create('tfg:marker/earth_orbit').tag('c:hidden_from_recipe_viewers')
event.create('tfg:marker/moon_orbit').tag('c:hidden_from_recipe_viewers')
event.create('tfg:marker/mars_orbit').tag('c:hidden_from_recipe_viewers')
event.create('tfg:marker/venus_orbit').tag('c:hidden_from_recipe_viewers')
event.create('tfg:marker/mercury_orbit').tag('c:hidden_from_recipe_viewers')
event.create('tfg:marker/glacio_orbit').tag('c:hidden_from_recipe_viewers')
}
function registerTFGDimensionMarkerBlocks(event) {
event.create('tfg:marker/moon')
.stoneSoundType()
.item(item => {
item.modelJson({ parent: 'tfg:block/marker/moon' })
})
.tagBlock('c:hidden_from_recipe_viewers')
.fullBlock(true)
.opaque(true)
event.create('tfg:marker/mars')
.stoneSoundType()
.item(item => {
item.modelJson({ parent: 'tfg:block/marker/mars' })
})
.tagBlock('c:hidden_from_recipe_viewers')
.fullBlock(true)
.opaque(true)
event.create('tfg:marker/venus')
.stoneSoundType()
.item(item => {
item.modelJson({ parent: 'tfg:block/marker/venus' })
})
.tagBlock('c:hidden_from_recipe_viewers')
.fullBlock(true)
.opaque(true)
event.create('tfg:marker/mercury')
.stoneSoundType()
.item(item => {
item.modelJson({ parent: 'tfg:block/marker/mercury' })
})
.tagBlock('c:hidden_from_recipe_viewers')
.fullBlock(true)
.opaque(true)
event.create('tfg:marker/glacio')
.stoneSoundType()
.item(item => {
item.modelJson({ parent: 'tfg:block/marker/glacio' })
})
.tagBlock('c:hidden_from_recipe_viewers')
.fullBlock(true)
.opaque(true)
}
function registerTFGDimensionMarkers(event) {
event.create('ad_astra:earth_orbit')

View file

@ -0,0 +1,15 @@
"use strict";
function registerTFGWeaponItems(event) {
//Tacz Helper Region
event.create('tfg:flintlock_mechanism')
event.create('tfg:advanced_clockwork_mechanism')
event.create('tfg:certus_mechanism')
event.create('tfg:small_bullet_casing')
event.create('tfg:shell_bullet_casing')
event.create('tfg:large_bullet_casing')
event.create('tfg:nitrocellulose')
}

View file

@ -0,0 +1,39 @@
"use strict";
function registerTFGWorldGenEuropaDecoBlocks(event) {
event.create('tfg:corallium_arenicolus_0', 'tfg:tall_decorative_plant')
.height(2)
.soundType('nether_wart')
.tagItem('tfg:venus_plants')
.lightLevel(0.4)
.renderType('translucent')
event.create('tfg:corallium_arenicolus_1', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfg:venus_plants')
.box(3, 0, 3, 13, 14, 13)
event.create('tfg:corallium_arenicolus_2', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfg:venus_plants')
.renderType('translucent')
.box(0, 0, 0, 16, 4, 16)
event.create('tfg:corallium_arenicolus_3', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfg:venus_plants')
.box(3, 0, 3, 13, 14, 13)
event.create('tfg:corallium_arenicolus_4', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfg:venus_plants')
.box(3, 0, 3, 13, 14, 13)
event.create('tfg:corallium_arenicolus_5', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfg:venus_plants')
.box(3, 0, 3, 13, 14, 13)
}

View file

@ -0,0 +1,18 @@
"use strict";
function registerTFGEuropaMaterials(event) {
event.create('tfg:etrium')
//.components('1x niobium', '1x molybdenum', '1x ruthenium', '3x carbon', '1x monochloramine')
.color(0x7BFCD7)
.secondaryColor(0x3582D2)
.iconSet(GTMaterialIconSet.getByName('tfc_silver'))
.ore()
.ingot()
.flags(
GTMaterialFlags.FORCE_GENERATE_BLOCK,
GTMaterialFlags.GENERATE_PLATE,
GTMaterialFlags.GENERATE_ROD
)
}

View file

@ -3,17 +3,21 @@
const registerTFGFluids = (event) => {
//#region Mars
// Moon
event.create('tfg:cryogenized_fluix')
.thickTexture(0xde8cfb)
.bucketColor(0xde8cfb)
.luminosity(14)
.temperature(10)
// Mars
event.create('tfg:heavy_ammoniacal_water')
.thinTexture(0x08733f)
.bucketColor(0x08733f)
.temperature(236)
.noBlock()
//#endregion
//#region Venus
// Venus
event.create('tfg:sulfur_fumes')
.stillTexture('tfg:block/planets/venus/sulfur_fumes_still')
.flowingTexture('tfg:block/planets/venus/sulfur_fumes_flow')
@ -29,6 +33,5 @@ const registerTFGFluids = (event) => {
.bucketColor(0xc4d984)
.temperature(1000)
.renderType('translucent')
//#endregion
}

View file

@ -1,45 +1,45 @@
// priority: 0
"use strict";
const registerTFCMaterials = (event) => {
const registerStoneMaterial = (rockType, color) =>
event.create(`tfg:${rockType}`)
.dust()
.color(color)
.iconSet(GTMaterialIconSet.ROUGH)
.flags(
GTMaterialFlags.MORTAR_GRINDABLE,
GTMaterialFlags.NO_SMASHING,
GTMaterialFlags.NO_SMELTING
)
function registerTFGIconSets(event) {
/* TFC Stone Types Materials */
registerStoneMaterial('gabbro', 0x7F8081)
registerStoneMaterial('shale', 0x686567)
registerStoneMaterial('claystone', 0xAF9377)
registerStoneMaterial('limestone', 0xA09885)
registerStoneMaterial('conglomerate', 0xA3977F)
registerStoneMaterial('dolomite', 0x515155)
registerStoneMaterial('chert', 0x7A6756)
registerStoneMaterial('chalk', 0xA4A39F)
registerStoneMaterial('rhyolite', 0x726D69)
registerStoneMaterial('dacite', 0x979797)
registerStoneMaterial('slate', 0x989287)
registerStoneMaterial('phyllite', 0x706B61)
registerStoneMaterial('schist', 0x6E735C)
registerStoneMaterial('gneiss', 0x6A6D60)
event.create('tfc_borax').parent('rough')
event.create('tfc_gypsum').parent('rough')
event.create('tfc_graphite').parent('rough')
event.create('tfc_saltpeter').parent('fine')
event.create('tfc_sulfur').parent('fine')
registerStoneMaterial('dripstone', 0x927965)
registerStoneMaterial('moon_stone', 0x506869)
registerStoneMaterial('moon_deepslate', 0x45474D)
registerStoneMaterial('mars_stone', 0xD08957)
registerStoneMaterial('venus_stone', 0xD5A664)
registerStoneMaterial('mercury_stone', 0x723E49)
registerStoneMaterial('glacio_stone', 0x9897BF)
// Specialized icon sets for TFC's own
event.create('tfc_amethyst').parent('ruby')
event.create('tfc_redstone').parent('fine')
event.create('tfc_diamond').parent('diamond')
event.create('tfc_emerald').parent('emerald')
event.create('tfc_lapis').parent('lapis')
event.create('tfc_opal').parent('opal')
event.create('tfc_pyrite').parent('bright')
event.create('tfc_ruby').parent('ruby')
event.create('tfc_sapphire').parent('gem_horizontal')
event.create('tfc_topaz').parent('gem_vertical')
event.create('tfc_realgar').parent('emerald')
event.create('tfc_bismuth').parent('bright')
event.create('tfc_cassiterite').parent('bright')
event.create('tfc_garnierite').parent('bright')
event.create('tfc_hematite').parent('metallic')
event.create('tfc_limonite').parent('metallic')
event.create('tfc_magnetite').parent('dull')
event.create('tfc_malachite').parent('shiny')
event.create('tfc_copper').parent('bright')
event.create('tfc_gold').parent('shiny')
event.create('tfc_silver').parent('shiny')
event.create('tfc_sphalerite').parent('dull')
event.create('tfc_tetrahedrite').parent('dull')
event.create('tfc_chromite').parent('dull')
event.create('nether_quartz').parent('quartz')
}
function modifyTFGIconSets(event) {
GTMaterials.Coal.setMaterialIconSet(GTMaterialIconSet.LIGNITE)
GTMaterials.Borax.setMaterialIconSet(GTMaterialIconSet.getByName('tfc_borax'))
GTMaterials.Gypsum.setMaterialIconSet(GTMaterialIconSet.getByName('tfc_gypsum'))

View file

@ -0,0 +1,41 @@
"use strict";
function registerTFGAircraftItems(event) {
event.create('tfg:scaffolding_frame')
event.create('tfg:airship_hull')
event.create('tfg:airship_balloon')
event.create('tfg:lv_aircraft_engine')
event.create('tfg:hv_aircraft_engine')
event.create('tfg:ev_aircraft_engine')
event.create('tfg:black_steel_plated_airplane_propeller')
event.create('tfg:redblu_steel_plated_airplane_propeller')
event.create('tfg:stainless_steel_plated_airplane_propeller')
event.create('tfg:titanium_plated_airplane_propeller')
event.create('tfg:redblu_steel_landing_gear')
event.create('tfg:aluminium_landing_gear')
event.create('tfg:stainless_steel_landing_gear')
event.create('tfg:titanium_landing_gear')
event.create('tfg:redblu_steel_hull_reinforcement')
event.create('tfg:aluminium_hull_reinforcement')
event.create('tfg:stainless_steel_hull_reinforcement')
event.create('tfg:titanium_hull_reinforcement')
}

View file

@ -2,55 +2,10 @@
"use strict";
function registerTFGFoodItems(event) {
event.create('tfg:food/raw_birt')
.translationKey('item.tfg.food.raw_birt')
.food(food => food.hunger(2).saturation(1)
.effect('species:birtd', 50, 0, 1)
.eaten(ctx => {
ctx.player.level.runCommandSilent(`playsound species:effect.birtd.applied player ${ctx.player.username} ${ctx.player.x} ${ctx.player.y} ${ctx.player.z} 1 1`)
}))
event.create('tfg:food/cooked_birt')
.translationKey('item.tfg.food.cooked_birt')
.food(food => food.hunger(4).saturation(2))
event.create('tfg:food/raw_limpet')
.translationKey('item.tfg.food.raw_limpet')
.food(food => food.hunger(2).saturation(1)
.effect('minecraft:hunger', 100, 0, 1))
event.create('tfg:food/cooked_limpet')
.translationKey('item.tfg.food.cooked_limpet')
.food(food => food.hunger(4).saturation(2))
event.create('tfg:food/raw_crawlermari')
.translationKey('item.tfg.food.raw_crawlermari')
.food(food => food.hunger(2).saturation(1))
event.create('tfg:food/cooked_crawlermari')
.translationKey('item.tfg.food.cooked_crawlermari')
.food(food => food.hunger(4).saturation(2))
global.FOOD_FRUIT.forEach(fruit => {
event.create(`tfg:food/freeze_dried/${fruit.name}`)
.translationKey(`item.tfg.food.freeze_dried/${fruit.name}`)
.texture(`tfg:item/food/freeze_dried_${fruit.name}`)
.tag('tfg:space_food')
.food(food => food.hunger(4).saturation(1)
.eaten(ctx => {
ctx.player.give('tfg:used_foil_pack')
}))
})
event.create('tfg:food/calorie_paste')
.translationKey('item.tfg.food.calorie_paste')
.food(food => food.hunger(8).saturation(5)
.eaten(ctx => {
ctx.player.give('tfg:used_foil_pack')
}))
.texture('tfg:item/food/calorie_paste')
.tag('tfg:space_food')
// Meal bags
event.create('tfg:foil_pack')
event.create('tfg:clean_foil_pack')
event.create('tfg:used_foil_pack')
.translationKey('item.tfg.food.used_foil_pack')
@ -68,6 +23,61 @@ function registerTFGFoodItems(event) {
.texture('tfg:item/food/meal_bag')
.tag('tfg:space_food')
// Birt
event.create('tfg:food/raw_birt')
.translationKey('item.tfg.food.raw_birt')
.food(food => food.hunger(2).saturation(1)
.effect('species:birtd', 50, 0, 1)
.eaten(ctx => {
ctx.player.level.runCommandSilent(`playsound species:effect.birtd.applied player ${ctx.player.username} ${ctx.player.x} ${ctx.player.y} ${ctx.player.z} 1 1`)
}))
event.create('tfg:food/cooked_birt')
.translationKey('item.tfg.food.cooked_birt')
.food(food => food.hunger(4).saturation(2))
// Limpet
event.create('tfg:food/raw_limpet')
.translationKey('item.tfg.food.raw_limpet')
.food(food => food.hunger(2).saturation(1)
.effect('minecraft:hunger', 100, 0, 1))
event.create('tfg:food/cooked_limpet')
.translationKey('item.tfg.food.cooked_limpet')
.food(food => food.hunger(4).saturation(2))
// Crawlermari
event.create('tfg:food/raw_crawlermari')
.translationKey('item.tfg.food.raw_crawlermari')
.food(food => food.hunger(2).saturation(1))
event.create('tfg:food/cooked_crawlermari')
.translationKey('item.tfg.food.cooked_crawlermari')
.food(food => food.hunger(4).saturation(2))
// Freeze dried fruit
global.FOOD_FRUIT.forEach(fruit => {
event.create(`tfg:food/freeze_dried/${fruit.name}`)
.translationKey(`item.tfg.food.freeze_dried/${fruit.name}`)
.texture(`tfg:item/food/freeze_dried_${fruit.name}`)
.tag('tfg:space_food')
.food(food => food.hunger(4).saturation(1)
.eaten(ctx => {
ctx.player.give('tfg:used_foil_pack')
}))
})
// Calorie paste
event.create('tfg:food/calorie_paste')
.translationKey('item.tfg.food.calorie_paste')
.food(food => food.hunger(8).saturation(5)
.eaten(ctx => {
ctx.player.give('tfg:used_foil_pack')
}))
.texture('tfg:item/food/calorie_paste')
.tag('tfg:space_food')
// Sunflower seeds
event.create('tfg:roasted_sunflower_seeds')
.translationKey('item.tfg.roasted_sunflower_seeds')
.texture('tfg:item/roasted_sunflower_seeds')
@ -486,4 +496,10 @@ function registerTFGFoodItems(event) {
.texture('tfg:item/food/allspice');
//#endregion
// Animal products
event.create('tfg:wraptor_sugar')
.tag('tfg:sugars')
.tag('tfg:haste_ingredients')
.tag('tfc:sweetener')
}

View file

@ -8,8 +8,22 @@
const registerTFGItems = (event) => {
registerTFGFoodItems(event)
registerTFGPrimitiveItems(event);
registerTFGNuclearItems(event);
registerTFGWoodItems(event);
registerTFGMedicineItems(event);
registerTFGAircraftItems(event);
registerTFGSpaceItems(event);
registerTFGMarsItems(event);
registerTFGDimensionMarkerItems(event);
registerTFGBiotechItems(event);
registerTFGWeaponItems(event);
registerTFGRockItems(event);
event.create('tfg:terra_firma_greg')
.tag('c:hidden_from_recipe_viewers')
// #region Electronics
// Electronics
event.create('tfg:unfinished_electron_tube', 'create:sequenced_assembly')
event.create('tfg:unfinished_vacuum_tube', 'create:sequenced_assembly')
event.create('tfg:unfinished_basic_electronic_circuit', 'create:sequenced_assembly')
@ -17,540 +31,22 @@ const registerTFGItems = (event) => {
event.create('tfg:unfinished_inscriber_accumulation_press')
event.create('tfg:vitrified_pearl')
event.create('tfg:cryo_fluix_pearl')
.translationKey('tfg:cryo_fluix_pearl')
// #endregion
// #region Space
// Orbit dimension markers
event.create('tfg:marker/earth_orbit').tag('c:hidden_from_recipe_viewers')
event.create('tfg:marker/moon_orbit').tag('c:hidden_from_recipe_viewers')
event.create('tfg:marker/mars_orbit').tag('c:hidden_from_recipe_viewers')
event.create('tfg:marker/venus_orbit').tag('c:hidden_from_recipe_viewers')
event.create('tfg:marker/mercury_orbit').tag('c:hidden_from_recipe_viewers')
event.create('tfg:marker/glacio_orbit').tag('c:hidden_from_recipe_viewers')
global.AD_ASTRA_WOOD.forEach(wood => {
event.create(`tfg:wood/lumber/${wood.name}`)
.translationKey(`item.tfg.${wood.name}_lumber`)
.tag('tfc:lumber')
})
// #endregion
// #region Paper making
event.create('tfg:hardwood_strip')
.translationKey('item.tfg.hardwood_strip')
event.create('tfg:soaked_hardwood_strip')
.translationKey('item.tfg.soaked_hardwood_strip')
event.create('tfg:soaked_unrefined_paper')
.translationKey('item.tfg.soaked_unrefined_paper')
event.create('tfg:terra_firma_greg')
.translationKey('item.tfg.terra_firma_greg')
.tag('c:hidden_from_recipe_viewers')
//#region chalk creation
event.create('tfg:unfired_chalk')
.translationKey('item.tfg.unfired_chalk')
Color.DYE.forEach((dyeName, dye) => {
event.create(`tfg:wet_${dyeName}_chalk`)
.translationKey(`item.tfg.wet_${dyeName}_chalk`)
.textureJson({
layer0: 'tfg:item/unfired_chalk'
})
.color(0, dye.getHexJS());
});
//#endregion
// #region Molds
global.TFG_EXTRUDER_MOLDS.forEach(id => event.create(id))
global.TFG_CASTING_MOLDS.forEach(id => event.create(id))
// #endregion
// #region Stone bricks and dusts
event.create('tfg:brick/deepslate')
.tag(`tfc:metamorphic_items`)
.translationKey('item.tfg.brick.deepslate')
event.create('tfg:brick/dripstone')
.tag(`tfc:sedimentary_items`)
.translationKey('item.tfg.brick.dripstone')
event.create('tfg:brick/moon_stone')
.tag(`tfc:igneous_intrusive_items`)
.translationKey('item.tfg.brick.moon_stone')
event.create('tfg:brick/moon_deepslate')
.tag(`tfc:igneous_intrusive_items`)
.translationKey('item.tfg.moon_deepslate')
event.create('tfg:brick/mars_stone')
.tag(`tfc:sedimentary_items`)
.translationKey('item.tfg.brick.mars_stone')
event.create('tfg:brick/venus_stone')
.tag(`tfc:igneous_extrusive_items`)
.translationKey('item.tfg.brick.venus_stone')
event.create('tfg:brick/mercury_stone')
.tag(`tfc:igneous_intrusive_items`)
.translationKey('item.tfg.brick.mercury_stone')
event.create('tfg:brick/glacio_stone')
.tag(`tfc:igneous_extrusive_items`)
.translationKey('item.tfg.brick.glacio_stone')
event.create('tfg:brick/permafrost')
.translationKey('item.tfg.brick.permafrost')
event.create('tfg:brick/red_granite')
.tag(`tfc:igneous_intrusive_items`)
.translationKey('item.tfg.red_granite')
// #endregion
// #region Primitive rubber gloves
event.create('tfg:prepared_leather_gloves')
.translationKey('item.tfg.prepared_leather_gloves')
event.create('tfg:latex_soaked_gloves')
.translationKey('item.tfg.latex_soaked_gloves')
// #endregion
//#region Medicine
const pill = [
'haste',
'night_vision',
'poison',
'regeneration',
'slowness',
'speed',
'water_breathing',
'weakness'
]
const pill_names = [
'Haste',
'Night Vision',
'Poison',
'Regeneration',
'Slowness',
'Speed',
'Water Breathing',
'Weakness'
]
pill.forEach((pill_array, index) => {
const pill_names_array = pill_names[index];
event.create(`tfg:${pill_array}_pill`)
.translationKey(`item.tfg.${pill_array}_pill`)
.tooltip(`§9${pill_names_array} (08:00)`)
event.create(`tfg:${pill_array}_tablet`)
.translationKey(`item.tfg.${pill_array}_tablet`)
.tooltip(`§9${pill_names_array} (30:00)`)
})
event.create(`tfg:antipoison_pill`)
.translationKey(`item.tfg.antipoison_pill`)
.tooltip(`§9Cures Poison`)
event.create(`tfg:antipoison_tablet`)
.translationKey(`item.tfg.antipoison_tablet`)
.tooltip(`§9Cures All Harmful Effects`)
//salvos
const salvo = [
'absorption',
'fire_resistance',
'invisibility',
'luck',
'resistance'
]
const salvo_names = [
'Absorption',
'Fire Resistance',
'Invisibility',
'Luck',
'Resistance'
]
salvo.forEach((salvo_array, index) => {
const salvo_names_array = salvo_names[index];
event.create(`tfg:${salvo_array}_salvo`)
.translationKey(`item.tfg.${salvo_array}_salvo`)
.tooltip(`§9${salvo_names_array} (08:00)`)
})
event.create(`tfg:instant_health_salvo`)
.translationKey(`item.tfg.instant_health_salvo`)
.tooltip(`§9Instant Health II`)
//#endregion
//#region Misc
event.create('tfg:paraffin_wax')
event.create('tfg:conifer_rosin')
event.create('tfg:foil_pack')
event.create('tfg:clean_foil_pack')
event.create('tfg:flint_club_head')
event.create('tfg:uv_led')
event.create('tfg:smd_uv_led')
event.create('tfg:twigs/strophar')
.tag('tfc:twigs')
.texture('tfg:item/wood/twig/strophar')
event.create('tfg:twigs/aeronos')
.tag('tfc:twigs')
.texture('tfg:item/wood/twig/aeronos')
event.create('tfg:twigs/glacian')
.tag('tfc:twigs')
.texture('tfg:item/wood/twig/glacian')
event.create('tfg:twigs/alphacene')
.tag('tfc:twigs')
.texture('tfg:item/wood/twig/alphacene')
event.create('tfg:cobalt_brass_wheel')
.translationKey('item.tfg.cobalt_brass_wheel')
//#endregion
//#region Cloth & String
event.create('tfg:polycaprolactam_fabric')
.translationKey('item.tfg.polycaprolactam_fabric')
event.create('tfg:polycaprolactam_string')
.translationKey('item.tfg.polycaprolactam_string')
event.create('tfg:phantom_silk')
.translationKey('item.tfg.phantom_silk')
event.create('tfg:phantom_thread')
.translationKey('item.tfg.phantom_thread')
event.create('tfg:space_suit_fabric')
.translationKey('item.tfg.space_suit_fabric')
//#endregion
//#region Tools
event.create('tfg:flint_arrow_head')
.translationKey('item.tfg.flint_arrow_head')
event.create('tfg:fletching')
.translationKey('item.tfg.fletching')
event.create('tfg:armor_stand_arms')
.translationKey('item.tfg.armor_stand_arms')
event.create('tfg:harvest_basket')
.translationKey('item.tfg.harvest_basket')
.parentModel('tfg:item/harvest_basket')
.maxDamage(128)
event.create('tfg:aluminium_harvest_basket')
.translationKey('item.tfg.aluminium_harvest_basket')
.parentModel('tfg:item/aluminium_harvest_basket')
.unstackable()
event.create('tfg:stainless_steel_needle')
.translationKey('item.tfg.stainless_steel_needle')
.unstackable()
.maxDamage(9999)
//Fishing Nets
event.create('tfg:fishing_net/wood')
.translationKey('item.tfg.fishing_net.wood')
.parentModel('tfg:item/fishing_nets/wood_fishing_net')
.texture('tfg:item/fishing_nets/wood_fishing_net')
.maxDamage(112)
event.create('tfg:fishing_net/brass')
.translationKey('item.tfg.fishing_net.brass')
.parentModel('tfg:item/fishing_nets/brass_fishing_net')
.texture('tfg:item/fishing_nets/brass_fishing_net')
.maxDamage(326)
event.create('tfg:fishing_net/rose_gold')
.translationKey('item.tfg.fishing_net.rose_gold')
.parentModel('tfg:item/fishing_nets/rose_gold_fishing_net')
.texture('tfg:item/fishing_nets/rose_gold_fishing_net')
.maxDamage(380)
event.create('tfg:fishing_net/sterling_silver')
.translationKey('item.tfg.fishing_net.sterling_silver')
.parentModel('tfg:item/fishing_nets/sterling_silver_fishing_net')
.texture('tfg:item/fishing_nets/sterling_silver_fishing_net')
.maxDamage(380)
event.create('tfg:fishing_net/invar')
.translationKey('item.tfg.fishing_net.invar')
.parentModel('tfg:item/fishing_nets/invar_fishing_net')
.texture('tfg:item/fishing_nets/invar_fishing_net')
.maxDamage(740)
event.create('tfg:fishing_net/tin_alloy')
.translationKey('item.tfg.fishing_net.tin_alloy')
.parentModel('tfg:item/fishing_nets/tin_alloy_fishing_net')
.texture('tfg:item/fishing_nets/tin_alloy_fishing_net')
.maxDamage(710)
event.create('tfg:fishing_net/cupronickel')
.translationKey('item.tfg.fishing_net.cupronickel')
.parentModel('tfg:item/fishing_nets/cupronickel_fishing_net')
.texture('tfg:item/fishing_nets/cupronickel_fishing_net')
.maxDamage(560)
event.create('tfg:fishing_net/magnalium')
.translationKey('item.tfg.fishing_net.magnalium')
.parentModel('tfg:item/fishing_nets/magnalium_fishing_net')
.texture('tfg:item/fishing_nets/magnalium_fishing_net')
.maxDamage(1830)
//#endregion
//#region Immersive Aircraft Impl
event.create('tfg:scaffolding_frame')
.translationKey('item.tfg.scaffolding_frame')
event.create('tfg:airship_hull')
.translationKey('item.tfg.airship_hull')
event.create('tfg:airship_balloon')
.translationKey('item.tfg.airship_balloon')
event.create('tfg:lv_aircraft_engine')
.translationKey('item.tfg.lv_aircraft_engine')
event.create('tfg:hv_aircraft_engine')
.translationKey('item.tfg.hv_aircraft_engine')
event.create('tfg:ev_aircraft_engine')
.translationKey('item.tfg.ev_aircraft_engine')
event.create('tfg:black_steel_plated_airplane_propeller')
.translationKey('item.tfg.black_steel_plated_airplane_propeller')
event.create('tfg:redblu_steel_plated_airplane_propeller')
.translationKey('item.tfg.redblu_steel_plated_airplane_propeller')
event.create('tfg:stainless_steel_plated_airplane_propeller')
.translationKey('item.tfg.stainless_steel_plated_airplane_propeller')
event.create('tfg:titanium_plated_airplane_propeller')
.translationKey('item.tfg.titanium_plated_airplane_propeller')
event.create('tfg:redblu_steel_landing_gear')
.translationKey('item.tfg.redblu_steel_landing_gear')
event.create('tfg:aluminium_landing_gear')
.translationKey('item.tfg.aluminium_landing_gear')
event.create('tfg:stainless_steel_landing_gear')
.translationKey('item.tfg.stainless_steel_landing_gear')
event.create('tfg:titanium_landing_gear')
.translationKey('item.tfg.titanium_landing_gear')
event.create('tfg:redblu_steel_hull_reinforcement')
.translationKey('item.tfg.redblu_steel_hull_reinforcement')
event.create('tfg:aluminium_hull_reinforcement')
.translationKey('item.tfg.aluminium_hull_reinforcement')
event.create('tfg:stainless_steel_hull_reinforcement')
.translationKey('item.tfg.stainless_steel_hull_reinforcement')
event.create('tfg:titanium_hull_reinforcement')
.translationKey('item.tfg.titanium_hull_reinforcement')
//#endregion
//Tacz Helper Region
event.create('tfg:flintlock_mechanism')
.translationKey('item.tfg.flintlock_mechanism')
event.create('tfg:advanced_clockwork_mechanism')
.translationKey('item.tfg.advanced_clockwork_mechanism')
event.create('tfg:certus_mechanism')
.translationKey('item.tfg.certus_mechanism')
event.create('tfg:small_bullet_casing')
.translationKey('tfg:small_bullet_casing')
event.create('tfg:shell_bullet_casing')
.translationKey('tfg:shell_bullet_casing')
event.create('tfg:large_bullet_casing')
.translationKey('tfg:large_bullet_casing')
event.create('tfg:nitrocellulose')
.translationKey('tfg:nitrocellulose')
//endregion
//Tier2 Insulation
event.create('tfg:aes_wool')
.translationKey('tfg:aes_wool')
event.create('tfg:aes_compressed_wool')
.translationKey('tfg:aes_compressed_wool')
event.create('tfg:aes_insulation_sheet')
.translationKey('tfg:aes_insulation_sheet')
event.create('tfg:aes_insulation_roll')
.translationKey('tfg:aes_insulation_roll')
//endregion
//Tier 2 Rocket Parts
event.create('tfg:rocket_fin_t2')
event.create('tfg:rocket_cone_t2')
//endregion
//Tier 3 Insulation
event.create('tfg:aes_polyurethane')
event.create('tfg:mli_shielding')
event.create('tfg:silica_aerogel')
//endregion
//Tier 3 Rocket Parts
event.create('tfg:rocket_fin_t3')
event.create('tfg:rocket_cone_t3')
event.create('tfg:elite_power_thruster')
event.create('tfg:better_space_suit_fabric')
//endregion
//#region Universal compost items
event.create('tfg:universal_compost_browns')
.tag('tfc:compost_browns_low')
event.create('tfg:universal_compost_greens')
.tag('tfc:compost_greens_low')
//#endregion
//#region Etched Diamond Etching Tip
event.create('tfg:etching_diamond_tip')
.translationKey("item.tfg.etching_diamond_tip")
//#endregion
//#region Solar Panel
event.create('tfg:photo_cell_t1')
.translationKey("item.tfg.basic.photovoltaic.cell")
.texture('tfg:item/photo_cell_t1')
//#endregion
//#region Mars Animals
event.create('tfg:wraptor_sugar')
.tag('tfg:sugars')
.tag('tfg:haste_ingredients')
.tag('tfc:sweetener')
//#endregion
//#region Flax Stuff
event.create('tfg:flax_waste')
.tag('tfc:scrapable')
event.create('tfg:flax_tow')
.tag('tfg:burlap_fiber')
.tag('tfc:compost_browns')
event.create('tfg:flax_line')
.tag('tfc:compost_browns_low')
event.create('tfg:linen_thread')
.tag('forge:string')
event.create('tfg:linen_cloth')
.tag('forge:cloth')
.tag('tfc:sewing_light_cloth')
event.create('tfg:flax_bundle')
.tag('tfc:scrapable')
.translationKey('item.tfg.flax_bundle')
.texture('tfg:item/flax_bundle')
event.create('tfg:bundled_scraped_flax')
.tag('tfc:scrapable')
.translationKey('item.tfg.bundled_scraped_flax')
.texture('tfg:item/bundled_scraped_flax')
//#region Lab Equipment
global.LAB_EQUIPMENT_CONTAINERS.forEach((item) => {
event.create(`tfg:${item.type}`, 'tfc:glass_bottle')
.fluidTagAccept('tfg:not_solid')
.capacity(item.capacity)
.translationKey(`item.tfg.lab_equipment.${item.type}`)
.tag('tfg:lab_equipment_containers')
.tag('tfc:fluid_item_ingredient_empty_containers')
.tag('tfc:glass_bottles')
})
event.create('tfg:lab_equipment')
.translationKey('item.tfg.lab_equipment.lab_equipment')
.tooltip(Text.translatable('tfg.tooltip.lab_equipment.set'))
event.create('tfg:dirty_lab_equipment')
.translationKey('item.tfg.lab_equipment.dirty_lab_equipment')
.tooltip(Text.translatable('tfg.tooltip.lab_equipment.set_dirty'))
//#endregion
// Empty Fission Rod
event.create('tfg:empty_rod')
.translationKey('item.tfg.empty_road')
.texture('tfg:item/fuel_rod_empty')
.tag('tfg:fission_rods')
event.create('tfg:refrigerant_pellet')
.translationKey('item.tfg.refrigerant_pellet')
.texture('tfg:item/refrigerant_pellet')
.tag('tfg:fission_coolant')
// Moderator Line
event.create('tfg:graphite_compound')
.translationKey('item.tfg.graphite_compound')
.texture('tfg:item/graphite_line/graphite_compound')
event.create('tfg:raw_graphite_briquette')
.translationKey('item.tfg.raw_graphite_briquette')
.texture('tfg:item/graphite_line/raw_graphite_briquette')
event.create('tfg:faulty_graphite_briquette')
.translationKey('item.tfg.faulty_graphite_briquette')
.texture('tfg:item/graphite_line/faulty_graphite_briquette')
event.create('tfg:washed_graphite_briquette')
.translationKey('item.tfg.washed_graphite_briquette')
event.create('tfg:pure_graphite_rod')
.translationKey('item.tfg.pure_graphite_rod')
.texture('tfg:item/graphite_line/pure_graphite_rod')
event.create('tfg:impure_graphite_rod')
.translationKey('item.tfg.impure_graphite_rod')
.texture('tfg:item/graphite_line/impure_graphite_rod')
event.create('tfg:annealed_graphite_rod')
.translationKey('item.tfg.annealed_graphite_rod')
event.create('tfg:impure_annealed_graphite_rod')
.translationKey('item.tfg.impure_annealed_graphite_rod')
event.create('tfg:graphite_moderator')
.translationKey('item.tfg.graphite_moderator')
.texture('tfg:item/graphite_line/graphite_moderator')
event.create('tfg:impure_graphite_moderator')
.translationKey('item.tfg.impure_graphite_moderator')
.texture('tfg:item/graphite_line/impure_graphite_moderator')
event.create('tfg:advanced_polymer_binder')
.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
// Molds
global.TFG_EXTRUDER_MOLDS.forEach(id => event.create(id))
global.TFG_CASTING_MOLDS.forEach(id => event.create(id))
// Universal Circuits
event.create('tfg:ulv_universal_circuit')
event.create('tfg:lv_universal_circuit')
event.create('tfg:mv_universal_circuit')
event.create('tfg:hv_universal_circuit')
event.create('tfg:ev_universal_circuit')
event.create('tfg:iv_universal_circuit')
event.create('tfg:luv_universal_circuit')
event.create('tfg:zpm_universal_circuit')
event.create('tfg:uv_universal_circuit')
event.create('tfg:uhv_universal_circuit')
}

View file

@ -1,31 +1,6 @@
// priority: 0
"use strict";
function registerBetterEndBlocks(event) {
// Moon
event.create('betterend:chorus_lily', 'tfc:ground_cover')
.soundType('cherry_wood')
.hardness(0.5)
.tagItem('tfg:moon_plants')
.tagBlock('minecraft:mineable/hoe')
.tagBlock('tfg:do_not_destroy_in_space')
.mapColor('terracotta_white')
.box(0, 0, 0, 16, 6, 16)
.fullBlock(false)
.opaque(false)
.notSolid()
.renderType('cutout')
// 1 block tall
createPlant(event, 'inflexia', 'moon')
createPlant(event, 'chorus_grass', 'moon')
createPlant(event, 'salteago', 'moon')
createPlant(event, 'vaiolush_fern', 'moon')
// Mars
function registerTFGWorldGenMarsDecoBlocks(event) {
// 1 block tall
createPlant(event, 'aeridium', 'mars')
@ -202,40 +177,74 @@ function registerBetterEndBlocks(event) {
.tagBlock('tfg:do_not_destroy_in_space')
.mapColor('color_orange')
// europa...?
// Ground cover
createPlant(event, 'crystal_grass', 'unused')
.box(3, 0, 3, 13, 12, 13)
createPlant(event, 'blooming_cooksonia', 'unused')
.box(3, 0, 3, 13, 12, 13)
createPlant(event, 'fracturn', 'unused')
.box(3, 0, 3, 13, 12, 13)
createPlant(event, 'jungle_grass', 'unused')
.box(3, 0, 3, 13, 12, 13)
}
/**
* @param {any} event
* @param {string} id
* @param {string} planet
*/
function createPlant(event, id, planet) {
return event.create(`betterend:${id}`, 'tfg:decorative_plant')
.tagItem(`tfg:${planet}_plants`)
.tagBlock('minecraft:replaceable')
.tagBlock('tfg:do_not_destroy_in_space')
event.create('tfg:groundcover/glider_feather', 'tfc:ground_cover')
.box(4, 0, 4, 12, 2, 12)
.soundType('wool')
.groundCoverModelShape('feather')
.withPreexistingItem('wan_ancient_beasts:glider_feather')
.textureAll('wan_ancient_beasts:item/glider_feather')
.tagBlock('tfc:can_be_snow_piled')
}
/**
* @param {any} event
* @param {string} id
* @param {string} planet
*/
function createWaterPlant(event, id, planet) {
return event.create(`betterend:${id}`, 'tfg:decorative_plant')
.tagItem(`tfg:${planet}_plants`)
.tagBlock('minecraft:replaceable')
.tagBlock('tfg:do_not_destroy_in_space')
.tagBlock('tfc:can_be_ice_piled')
event.create('tfg:groundcover/wraptor_feather', 'tfc:ground_cover')
.box(4, 0, 4, 12, 2, 12)
.soundType('wool')
.groundCoverModelShape('feather')
.withPreexistingItem('minecraft:feather')
.textureAll('tfg:item/wraptor_wool')
.tagBlock('tfc:can_be_snow_piled')
event.create('tfg:groundcover/aeronos_stick', 'tfc:ground_cover')
.box(3, 0, 3, 13, 3, 13)
.groundCoverModelShape('twig')
.withPreexistingItem('tfg:twigs/aeronos')
.tagBlock('tfc:can_be_snow_piled')
.texture('particle', 'ad_astra:block/aeronos_stem')
.texture('all', 'ad_astra:block/aeronos_stem')
.texture('top', 'ad_astra:block/aeronos_stem_inside')
event.create('tfg:groundcover/strophar_stick', 'tfc:ground_cover')
.box(3, 0, 3, 13, 3, 13)
.groundCoverModelShape('twig')
.withPreexistingItem('tfg:twigs/strophar')
.tagBlock('tfc:can_be_snow_piled')
.texture('particle', 'ad_astra:block/strophar_stem')
.texture('all', 'ad_astra:block/strophar_stem')
.texture('top', 'ad_astra:block/strophar_stem_inside')
event.create('tfg:groundcover/glacian_stick', 'tfc:ground_cover')
.box(3, 0, 3, 13, 3, 13)
.groundCoverModelShape('twig')
.withPreexistingItem('tfg:twigs/glacian')
.tagBlock('tfc:can_be_snow_piled')
.texture('particle', 'ad_astra:block/glacian_log')
.texture('all', 'ad_astra:block/glacian_log')
.texture('top', 'ad_astra:block/glacian_log_top')
event.create('tfg:groundcover/alphacene_stick', 'tfc:ground_cover')
.box(3, 0, 3, 13, 3, 13)
.groundCoverModelShape('twig')
.withPreexistingItem('tfg:twigs/alphacene')
.tagBlock('tfc:can_be_snow_piled')
.texture('particle', 'species:block/alphacene_mushroom_block')
.texture('all', 'species:block/alphacene_mushroom_block')
.texture('top', 'minecraft:block/mushroom_stem')
// Misc
event.create('tfg:spice', 'tfg:particle_emitter')
.textureAll('tfg:block/sand_spice')
.soundType('sand')
.hardness(2)
.resistance(6)
// makes it invisible on xaeros, so people can't use it to find the deposits :)
.mapColor('none')
.particleOffset(0.3, 1.5, 0.3)
.particleVelocity(0, 0.05, 0)
.particle('electric_spark')
.particleCount(2)
.particleForced(false)
.fullBlock(true)
.opaque(true)
}

View file

@ -1,11 +1,7 @@
// priority: 0
"use strict";
/**
*
* @param {Registry.Item} event
*/
function registerBetterEndItems(event) {
function registerTFGMarsItems(event) {
event.create('betterend:bolux_mushroom_cooked')
.food(food => {
food.hunger(2)
@ -35,4 +31,5 @@ function registerBetterEndItems(event) {
food.hunger(5)
food.saturation(2)
})
}

View file

@ -0,0 +1,105 @@
"use strict";
function registerTFGMarsMaterials(event) {
event.create('liquid_carbon_dioxide')
.liquid(100) //Not realistic but I want it to be cryogenic
.components('1x carbon', '2x oxygen')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0xDBFBFF)
// Mars Ore Line
event.create('lightweight_ostrum_vapor')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(760))
event.create('ostrum_vapor')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(815))
event.create('dense_ostrum_vapor')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(930))
event.create('residual_radioactive_concoction')
.liquid(new GTFluidBuilder().customStill().temperature(450))
// Atmosphere
event.create('tfg:mars_air')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(208))
.color('0xD08957')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.components('94x carbon_dioxide', '3x nitrogen', '2x argon', '1x oxygen')
// TODO: move neon and xenon somewhere else
event.create('tfg:liquid_mars_air')
.liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(58))
.color('0xD08957')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.components('80x carbon_dioxide', '7x nitrogen', '5x argon', '3x oxygen', '1x neon', '1x krypton', '1x xenon')
// Mars sap
event.create('tfg:crimsene')
.liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(220))
.gem()
.iconSet('lapis')
.flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES)
.color(0xB12727)
.secondaryColor(0x562C3E)
event.create('tfg:warpane')
.liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(220))
.gem()
.iconSet('quartz')
.flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES)
.color(0x45ABA9)
.secondaryColor(0x562C3E)
event.create('tfg:mycelienzene')
.dust()
.color(0x9E7385)
event.create('tfg:cooked_mycelienzane')
.liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(1830))
.color(0x9E7385)
event.create('tfg:iodomethane')
.liquid()
.components('1x carbon', '3x hydrogen', '1x iodine')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0xAC45C6)
event.create('tfg:trideuteroiodomethane')
.liquid()
.components('1x carbon', '3x deuterium', '1x iodine')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0xDD9DED)
// Ores
event.create('ostrum')
.components('2x pitchblende', '1x tricalcium_phosphate', '1x bauxite', '1x silver', '1x beryllium')
.color(0xbd7980)
.secondaryColor(0xA66C8D)
.iconSet(GTMaterialIconSet.getByName('tfc_cassiterite'))
.ingot()
.liquid()
.blastTemp(3700, 'mid', GTValues.VA[GTValues.EV])
.flags(
GTMaterialFlags.DISABLE_DECOMPOSITION,
GTMaterialFlags.FORCE_GENERATE_BLOCK,
GTMaterialFlags.GENERATE_PLATE,
GTMaterialFlags.GENERATE_ROD,
GTMaterialFlags.GENERATE_FRAME,
GTMaterialFlags.DISABLE_ALLOY_BLAST
)
event.create("ostrum_iodide")
.ingot()
.components('2x ostrum', 'iodine')
.blastTemp(3700, 'mid', GTValues.VA[GTValues.IV], (20*120))
.iconSet(GTMaterialIconSet.BRIGHT)
.flags(GTMaterialFlags.GENERATE_GEAR)
.color(0xc696f2)
.secondaryColor(0x9b99ff)
}

View file

@ -7,128 +7,19 @@ const registerTFGMaterials = (event) => {
.color('0xFFFFFF')
.formula('?')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
registerTFGPowerReworkMaterials(event);
registerTFGNuclearMaterials(event);
registerTFGBiolineMaterials(event);
registerTFGPrimitiveMaterials(event);
registerTFGRockMaterials(event);
event.create('hardwood')
.dust()
.flags(GTMaterialFlags.FLAMMABLE)
.iconSet(GTMaterialIconSet.WOOD)
.color('0x7a5225')
.secondaryColor('0x7a5225')
registerTFGRocketMaterials(event);
registerTFGMoonMaterials(event);
registerTFGMarsMaterials(event);
registerTFGVenusMaterials(event);
registerTFGEuropaMaterials(event);
event.create('thermochemically_treated_hardwood')
.dust()
.flags(GTMaterialFlags.FLAMMABLE)
.iconSet(GTMaterialIconSet.WOOD)
.color('0x52482c')
.secondaryColor('0x52482c')
// Important tags to add to fluids:
// tfc:usable_in_pot, tfc:usable_in_barrel, tfc:usable_in_wooden_bucket
event.create('tfg:latex')
.liquid()
.color(0xFBB982)
event.create('tfg:vulcanized_latex')
.liquid()
.color(0xc79973)
event.create('tfg:conifer_pitch')
.liquid()
.color(0xfbdf82)
.secondaryColor(0xff9d2e)
// Ores
event.create('tarkianite')
.ore()
.components('1x copper', '1x iron', '4x rhenium', '4x molybdenum', '8x sulfur')
.color(0x8bb054)
.secondaryColor(0x3d8021)
.iconSet(GTMaterialIconSet.getByName('tfc_emerald'))
.addOreByproducts('sulfur', 'rhenium', 'molybdenum')
// Cooking
event.create('lactose')
.dust()
.iconSet(GTMaterialIconSet.FINE)
.color('0xede8da')
.secondaryColor('0xeddcad')
.components('12x carbon', '22x hydrogen', '11x oxygen')
// Used as a TFC aluminium substitute so you can't make actual aluminium ingots early
event.create('aluminium_silicate')
.dust()
.ingot()
.liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(1520))
.components('2x aluminium', '1x silicon', '5x oxygen')
.iconSet('metallic')
.color(0xB6D3FF)
.secondaryColor(0x6F4AB3)
// Space Rocket Materials
event.create('rocket_alloy_t1')
.ingot()
.components('6x aluminium', '2x stainless_steel', '1x red_steel')
.color(0x333e47)
.iconSet('metallic')
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR)
.blastTemp(1760, 'low', 256, 900)
event.create('rocket_alloy_t2')
.ingot()
.components('19x titanium', '4x vanadium', '3x aluminium', '3x chromium', '3x tin')
.color(0x3c253d)
.iconSet('metallic')
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.DISABLE_ALLOY_BLAST)
.blastTemp(3200, 'mid', 1024, 1100)
.liquid()
/* event.create('rocket_alloy_t3')
.ingot()
.components('8x titanium', '9x tungsten_steel', '2x tantalum', '2x radon')
.color(0x6c678b)
//.secondaryColor(0xa59fc6)
.liquid()
.removeHazard()
.iconSet('metallic')
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR)
.blastTemp(4200, 'high', 4096, 1300)
*/
event.create('vitrified_asbestos')
.dust()
.fluid()
.iconSet('glass')
.color(0xcccccc)
// Space suit gases (these all add up to 10B of components = 1B of space suit gas)
event.create('tfg:compressed_nitrox')
.gas()
.components('8x nitrogen', '2x oxygen')
.color(0xaef5ef)
event.create('tfg:compressed_heliox')
.gas()
.components('8x helium', '2x oxygen')
.color(0xf5eeb3)
event.create('tfg:compressed_heliox_3')
.gas()
.components('8x helium_3', '2x oxygen')
.color(0xf5ea90)
event.create('tfg:compressed_trimix')
.gas()
.components('5x nitrogen', '3x oxygen', '2x helium')
.color(0xc3fab9)
event.create('tfg:compressed_trimix_3')
.gas()
.components('5x nitrogen', '3x oxygen', '2x helium_3')
.color(0xa3ed95)
// Refrigerants
@ -152,25 +43,8 @@ const registerTFGMaterials = (event) => {
.components('2x carbon', '2x hydrogen', '4x fluorine')
.color(0x46702e)
// Fission Component
event.create('tfg:tetrafluoroethane')
.fluid()
.gem()
.flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES, GTMaterialFlags.DISABLE_DECOMPOSITION)
.iconSet(GTMaterialIconSet.QUARTZ)
.components('2x carbon', '2x hydrogen', '4x fluorine')
.color(0x46702e)
// Crafting components
event.create('tfg:kaolinite')
.dust()
.components('2x aluminium', '2x silicon', '9x oxygen', '4x hydrogen')
.color(0xEEB9AD)
.secondaryColor(0xF6A797)
.formula("Al2Si2O5(OH)4")
event.create('tfg:vitrified_pearl')
.dust()
.flags(GTMaterialFlags.DECOMPOSITION_BY_CENTRIFUGING)
@ -179,250 +53,6 @@ const registerTFGMaterials = (event) => {
.secondaryColor(0x67FFE6)
.formula("(Al2Si2O5(OH)4)(BeK4N5)")
//#region Solar Panel Chemicals
event.create('tfg:chloryl_fluoride')
.gas()
.components('1x fluorine', '1x chlorine', '2x oxygen')
.color(0x8AFAF4)
event.create('tfg:chlorine_pentafluoride')
.gas()
.components('5x fluorine', '1x chlorine')
.color(0x51F7C0)
event.create('tfg:solar_coolant')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(163))
.components('8x helium_3', '11x oxygen', '11x hydrogen')
.color(0xEDFFB3)
event.create('tfg:solar_coolant_tier2')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(73))
.components('8x tfg:solar_coolant', '1x argon')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0xfeff5d)
event.create('liquid_carbon_dioxide')
.liquid(100) //Not realistic but I want it to be cryogenic
.components('1x carbon', '2x oxygen')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0xDBFBFF)
//#region Rockwool
event.create('tfg:aes_mix')
.dust()
.flags(GTMaterialFlags.DECOMPOSITION_BY_CENTRIFUGING)
.components('5x silicon_dioxide', '4x quicklime', '1x magnesia')
.hazard(HazardProperty.HazardTrigger.SKIN_CONTACT, GTMedicalConditions.CHEMICAL_BURNS)
.color(0xE0E9E4)
//.secondaryColor(0x54483d)
event.create('tfg:molten_aes')
.liquid(2900)
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.components('5x silicon_dioxide', '4x quicklime', '1x magnesia')
.color(0xe65609)
.secondaryColor(0xe65609)
//#endregion
//#region Ammonia Borane
event.create('tfg:sodium_hydride')
.dust()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING)
.components('1x sodium', '1x hydrogen')
.color(0xEDF5F3)
event.create('tfg:boric_acid')
.dust()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING)
.components('3x hydrogen', '1x boron', '3x oxygen')
.color(0xDFEDDF)
.secondaryColor(0xDFEDDF)
event.create('tfg:trimethyl_borate')
.liquid()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING)
.components('3x carbon', '9x hydrogen', '1x boron', '3x oxygen')
.color(0xF7F7F7)
event.create('tfg:sodium_borohydride')
.dust()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING)
.components('1x sodium', '1x boron', '4x hydrogen')
.color(0xE8F1FF)
.secondaryColor(0xE8F1FF)
event.create('tfg:sodium_methoxide')
.dust()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING)
.components('1x sodium', '1x oxygen', '1x carbon', '3x hydrogen')
.color(0xE8E5DF)
.secondaryColor(0xE8E5DF)
event.create('tfg:ammonia_borane')
.dust()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING, GTMaterialFlags.GENERATE_PLATE)
.components('1x ammonia', '1x boron', '3x hydrogen')
.color(0xCCE3E3)
.secondaryColor(0xCCE3E3)
//#endregion
//#region polyurethane
event.create('tfg:aniline')
.liquid()
.components('6x carbon', '5x hydrogen', '1x nitrogen', '2x hydrogen')
.color(0xBAB999)
event.create('tfg:dimethyl_carbonate')
.liquid()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING)
.components('3x formaldehyde') // CH2O
.color(0xFFFFF2)
event.create('tfg:methyl_phenylcarbamate')
.liquid()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING)
.components('8x carbon','9x hydrogen','1x nitrogen', '2x oxygen')
.color(0xB4EDB4)
event.create('tfg:methylene_diphenyl_dicarbamate')
.liquid()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING)
.components('17x carbon','18x hydrogen','2x nitrogen', '4x oxygen')
.color(0x69C2C1)
event.create('tfg:methylene_diphenyl_diisocyanate')
.dust()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING)
.components('13x carbon','10x hydrogen','2x nitrogen', '2x oxygen')
.color(0xFFFFBA)
//#endregion
//#region aerogel
event.create('tfg:tmos')
.liquid()
.formula("Si(OCH3)4")
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0xC2C6CC)
event.create('tfg:silica_gel')
.liquid()
.color(0x60BABF)
.secondaryColor(0xFFD38C)
event.create('tfg:soaked_silica_gel')
.liquid()
.color(0x9ED5D9)
//#endregion
//#region Bromine Line
event.create('raw_brine')
.fluid()
.color(0x947a11)
//.secondaryColor(0x81FFF9)
event.create('hot_brine')
.liquid(320)
.color(0x944611)
event.create('hot_chlorinated_brominated_brine')
.liquid(320)
.color(0xbf8d5a)
.components('1x unknown', '1x chlorine')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
event.create('brominated_chlorine_vapor')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(320))
.color(0xbf8d5a)
.components('1x chlorine', '1x bromine', '1x water')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
event.create('acidic_bromine_solution')
.liquid(new GTFluidBuilder().attribute(GTFluidAttributes.ACID))
.color(0xe7b989)
.components('1x chlorine', '1x bromine')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
event.create('concentrated_bromine_solution')
.liquid()
.color(0x905d29)
.components('1x bromine', '1x chlorine')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
event.create('debrominated_brine')
.liquid()
.color(0xc3874a)
event.create('acidic_bromine_exhaust')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).attribute(GTFluidAttributes.ACID).temperature(293))
.color(0xec9c4a)
.components('3x water', '1x chlorine')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
event.create('hot_alkaline_debrominated_brine')
.liquid()
.color(0xcc6a06)
.components('2x unknown', '1x chlorine')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
event.create('hot_debrominated_brine')
.liquid(320)
.color(0xb08e6b)
event.create('hydrogen_iodide')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(293))
.color(0x82a6ce)
.components('1x hydrogen', '1x iodine')
//#endregion
//#region Mars Ore Line
event.create('lightweight_ostrum_vapor')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(760))
event.create('ostrum_vapor')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(815))
event.create('dense_ostrum_vapor')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(930))
event.create('residual_radioactive_concoction')
.liquid(new GTFluidBuilder().customStill().temperature(450))
//#endregion
//#region Moon Ore Line
event.create('regolith_vapor')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(727))
event.create('tfg:certus_regolith')
.dust()
.flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES)
.iconSet(GTMaterialIconSet.CERTUS)
.color('0xc1e6e4')
.secondaryColor('0x7a5225')
event.create('tfg:goethe_regolith')
.dust()
.flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES)
.iconSet(GTMaterialIconSet.METALLIC)
.color('0xb0af5b')
.secondaryColor('0x7a5225')
event.create('tfg:bright_regolith')
.dust()
.flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES)
.iconSet(GTMaterialIconSet.SHINY)
.color('0xf0efe9')
.secondaryColor('0xffffff')
event.create('tfg:cassiterite_regolith')
.dust()
.flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES)
.iconSet(GTMaterialIconSet.METALLIC)
.color('0xbab6b7')
.secondaryColor('0x7a5225')
event.create('tfg:regolith_mush')
.dust()
.flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES)
.iconSet(GTMaterialIconSet.WOOD)
.color('0xa2cde0')
.secondaryColor('0x7a5225')
//#endregion
//#region Tungsten Line
@ -456,23 +86,6 @@ const registerTFGMaterials = (event) => {
// #endregion
// #region Atmospheres
event.create('tfg:mars_air')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(208))
.color('0xD08957')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.components('94x carbon_dioxide', '3x nitrogen', '2x argon', '1x oxygen')
// TODO: move neon and xenon somewhere else
event.create('tfg:liquid_mars_air')
.liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(58))
.color('0xD08957')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.components('80x carbon_dioxide', '7x nitrogen', '5x argon', '3x oxygen', '1x neon', '1x krypton', '1x xenon')
// #endregion
//#region New Alloy for Turbines
event.create('tfg:tungsten_bismuth_oxide_composite')
@ -495,46 +108,6 @@ const registerTFGMaterials = (event) => {
// #endregion
// #region Mars sap
event.create('tfg:crimsene')
.liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(220))
.gem()
.iconSet('lapis')
.flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES)
.color(0xB12727)
.secondaryColor(0x562C3E)
event.create('tfg:warpane')
.liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(220))
.gem()
.iconSet('quartz')
.flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES)
.color(0x45ABA9)
.secondaryColor(0x562C3E)
event.create('tfg:mycelienzene')
.dust()
.color(0x9E7385)
event.create('tfg:cooked_mycelienzane')
.liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(1830))
.color(0x9E7385)
event.create('tfg:iodomethane')
.liquid()
.components('1x carbon', '3x hydrogen', '1x iodine')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0xAC45C6)
event.create('tfg:trideuteroiodomethane')
.liquid()
.components('1x carbon', '3x deuterium', '1x iodine')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0xDD9DED)
// #endregion
// #region conductor
event.create('tfg:thermally_conductive_fluid')
.liquid()
@ -612,33 +185,4 @@ const registerTFGMaterials = (event) => {
.flags(GTMaterialFlags.GENERATE_PLATE)
// #endregion
//#region Food Materials(?)
event.create('tfg:sodium_dihydrogen_citrate')
.dust()
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.iconSet(GTMaterialIconSet.BRIGHT)
.components('6x carbon', '7x hydrogen', '1x sodium', '7x oxygen')
.color('0xE38818')
event.create('tfg:citric_acid')
.dust()
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.iconSet(GTMaterialIconSet.SHINY)
.components('6x carbon', '8x hydrogen', '7x oxygen')
.color('0xE3AD18')
// I decided to make these materials because why not?
event.create('tfg:rich_stock')
.liquid(new GTFluidBuilder().customStill().state(GTFluidState.LIQUID).temperature(360));
event.create('tfg:light_stock')
.liquid(new GTFluidBuilder().customStill().state(GTFluidState.LIQUID).temperature(360));
event.create('tfg:brown_gravy')
.liquid(new GTFluidBuilder().customStill().state(GTFluidState.LIQUID).temperature(360));
//#endregion
}

View file

@ -1,54 +1,54 @@
// priority: 0
// priority: 0
"use strict";
const registerTFGPowerReworkMaterials = (event) => {
// Syngas
event.create('tfg:syngas')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(650))
.components('11x carbon', '20x hydrogen', '12x oxygen')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0x7da6c2)
.secondaryColor(0xcfe3ee)
// Syngas
event.create('tfg:syngas')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(650))
.components('11x carbon', '20x hydrogen', '12x oxygen')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0x7da6c2)
.secondaryColor(0xcfe3ee)
// Raw Aromatic Mix
event.create('tfg:raw_aromatic_mix')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(420))
.components('137x carbon', '154x hydrogen')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0x8a4b3d)
.secondaryColor(0xd8b6ac)
// Raw Aromatic Mix
event.create('tfg:raw_aromatic_mix')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(420))
.components('137x carbon', '154x hydrogen')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0x8a4b3d)
.secondaryColor(0xd8b6ac)
// Aromatic Feedstock
event.create('tfg:aromatic_feedstock')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(450))
.components('67x carbon', '74x hydrogen')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0x915c2f)
.secondaryColor(0xe2c49b)
// Aromatic Feedstock
event.create('tfg:aromatic_feedstock')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(450))
.components('67x carbon', '74x hydrogen')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0x915c2f)
.secondaryColor(0xe2c49b)
// Reformed Aromatic Feedstock
event.create('tfg:reformed_aromatic_feedstock')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(500))
.components('133x carbon', '146x hydrogen')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0x4e6b83)
.secondaryColor(0xbacdde)
// Reformed Aromatic Feedstock
event.create('tfg:reformed_aromatic_feedstock')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(500))
.components('133x carbon', '146x hydrogen')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0x4e6b83)
.secondaryColor(0xbacdde)
// Reformate Gas
event.create('tfg:reformate_gas')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(540))
.components('13x carbon', '63x hydrogen')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0x6c7f4e)
.secondaryColor(0xc7d8b1)
// Reformate Gas
event.create('tfg:reformate_gas')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(540))
.components('13x carbon', '63x hydrogen')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0x6c7f4e)
.secondaryColor(0xc7d8b1)
// Cracker Off-Gas
event.create('tfg:cracker_off_gas')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(480))
.components('31x carbon', '128x hydrogen', '2x oxygen')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0xa36f2a)
.secondaryColor(0xecd8ae)
// Cracker Off-Gas
event.create('tfg:cracker_off_gas')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(480))
.components('31x carbon', '128x hydrogen', '2x oxygen')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0xa36f2a)
.secondaryColor(0xecd8ae)
}

View file

@ -0,0 +1,53 @@
"use strict";
function registerTFGWorldGenMoonDecoBlocks(event) {
// Moon
event.create('tfg:lunar_roots', 'tfg:decorative_plant')
.soundType('nether_wart')
.lightLevel(0.4)
.tagItem('tfg:moon_plants')
.tagBlock('minecraft:replaceable')
event.create('tfg:lunar_sprouts', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfg:moon_plants')
.tagBlock('minecraft:replaceable')
event.create('betterend:chorus_lily', 'tfc:ground_cover')
.soundType('cherry_wood')
.hardness(0.5)
.tagItem('tfg:moon_plants')
.tagBlock('minecraft:mineable/hoe')
.tagBlock('tfg:do_not_destroy_in_space')
.mapColor('terracotta_white')
.box(0, 0, 0, 16, 6, 16)
.fullBlock(false)
.opaque(false)
.notSolid()
.renderType('cutout')
// 1 block tall
createPlant(event, 'inflexia', 'moon')
createPlant(event, 'chorus_grass', 'moon')
createPlant(event, 'salteago', 'moon')
createPlant(event, 'vaiolush_fern', 'moon')
// Mars
// europa...?
createPlant(event, 'crystal_grass', 'unused')
.box(3, 0, 3, 13, 12, 13)
createPlant(event, 'blooming_cooksonia', 'unused')
.box(3, 0, 3, 13, 12, 13)
createPlant(event, 'fracturn', 'unused')
.box(3, 0, 3, 13, 12, 13)
createPlant(event, 'jungle_grass', 'unused')
.box(3, 0, 3, 13, 12, 13)
}

View file

@ -0,0 +1,98 @@
"use strict";
function registerTFGMoonMaterials(event) {
// Solar Panel Chemicals
event.create('tfg:chloryl_fluoride')
.gas()
.components('1x fluorine', '1x chlorine', '2x oxygen')
.color(0x8AFAF4)
event.create('tfg:chlorine_pentafluoride')
.gas()
.components('5x fluorine', '1x chlorine')
.color(0x51F7C0)
event.create('tfg:solar_coolant')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(163))
.components('8x helium_3', '11x oxygen', '11x hydrogen')
.color(0xEDFFB3)
event.create('tfg:solar_coolant_tier2')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(73))
.components('8x tfg:solar_coolant', '1x argon')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0xfeff5d)
// Moon Ore Line
event.create('regolith_vapor')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(727))
event.create('tfg:certus_regolith')
.dust()
.flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES)
.iconSet(GTMaterialIconSet.CERTUS)
.color('0xc1e6e4')
.secondaryColor('0x7a5225')
event.create('tfg:goethe_regolith')
.dust()
.flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES)
.iconSet(GTMaterialIconSet.METALLIC)
.color('0xb0af5b')
.secondaryColor('0x7a5225')
event.create('tfg:bright_regolith')
.dust()
.flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES)
.iconSet(GTMaterialIconSet.SHINY)
.color('0xf0efe9')
.secondaryColor('0xffffff')
event.create('tfg:cassiterite_regolith')
.dust()
.flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES)
.iconSet(GTMaterialIconSet.METALLIC)
.color('0xbab6b7')
.secondaryColor('0x7a5225')
event.create('tfg:regolith_mush')
.dust()
.flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES)
.iconSet(GTMaterialIconSet.WOOD)
.color('0xa2cde0')
.secondaryColor('0x7a5225')
// Ores
event.create('armalcolite')
.gem(2)
.components('1x magnesium', '1x rutile', '1x ilmenite')
.color(0x443333)
.secondaryColor(0x5e2c21)
.iconSet(GTMaterialIconSet.getByName('tfc_emerald'))
.ore()
.addOreByproducts('rutile', 'rutile', 'ilmenite')
event.create('desh')
.components('2x olivine', '1x rutile', '4x nitrogen')
.color(0xF39A4C)
.secondaryColor(0xF35A6C)
.iconSet(GTMaterialIconSet.getByName('tfc_hematite'))
.ore()
.addOreByproducts('olivine', 'rutile', 'rutile')
.ingot()
.liquid()
.blastTemp(2800, 'mid', GTValues.VA[GTValues.HV])
.flags(
GTMaterialFlags.FORCE_GENERATE_BLOCK,
GTMaterialFlags.GENERATE_PLATE,
GTMaterialFlags.GENERATE_ROD,
GTMaterialFlags.GENERATE_DENSE,
GTMaterialFlags.GENERATE_GEAR,
GTMaterialFlags.GENERATE_FRAME,
GTMaterialFlags.DISABLE_ALLOY_BLAST
)
}

View file

@ -0,0 +1,118 @@
"use strict";
function registerTFGNuclearBlocks(event) {
// Insulation
event.create('tfg:glacian_wool_frame')
.soundType('copper')
.hardness(4)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
event.create('tfg:aes_insulation_frame')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
event.create('tfg:moderate_core_frame')
.soundType('copper')
.hardness(4)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
event.create('tfg:impure_moderate_core_frame')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
// Unfinished Insulation
event.create('tfg:moderate_core')
.soundType('ancient_debris')
.hardness(7)
.resistance(8)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.model('tfg:block/fission/moderate_core')
event.create('tfg:impure_moderate_core')
.soundType('ancient_debris')
.hardness(7)
.resistance(8)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.model('tfg:block/fission/impure_moderate_core')
// Nuclear cooling tower
event.create('tfg:titanium_exhaust_vent', 'tfg:active_particle_emitter')
.textureAll('tfg:block/titanium_exhaust_vent')
.soundType('metal')
.hardness(5)
.resistance(6)
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.mapColor('color_black')
.speedFactor(1.1)
.activeOffset(3.5, 2, 3.5)
.activeVelocity(0.0, 0.0, 0.0)
.activeParticle('tfg:cooling_steam')
.activeBase(0.0, 12.5, 0.0)
.activeCount(8)
.activeForced(false)
.hasTicker(true)
event.create('tfg:titanium_concrete')
.translationKey('block.tfg.titanium_concrete')
.model('tfg:block/concrete/titanium_concrete')
.soundType('stone')
.mapColor('stone')
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.tagBoth('tfg:titanium_concrete')
event.create('tfg:polished_titanium_concrete')
.translationKey('block.tfg.polished_titanium_concrete')
.model('tfg:block/concrete/polished_titanium_concrete')
.soundType('stone')
.mapColor('stone')
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.tagBoth('tfg:titanium_concrete')
event.create('tfg:titanium_concrete_tile')
.translationKey('block.tfg.titanium_concrete_tile')
.model('tfg:block/concrete/titanium_concrete_tile')
.soundType('stone')
.mapColor('stone')
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.tagBoth('tfg:titanium_concrete')
event.create('tfg:titanium_concrete_tile_small')
.translationKey('block.tfg.titanium_concrete_tile_small')
.model('tfg:block/concrete/titanium_concrete_tile_small')
.soundType('stone')
.mapColor('stone')
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.tagBoth('tfg:titanium_concrete')
event.create('tfg:titanium_concrete_bricks')
.translationKey('block.tfg.titanium_concrete_bricks')
.model('tfg:block/concrete/titanium_concrete_bricks')
.soundType('stone')
.mapColor('stone')
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.tagBoth('tfg:titanium_concrete')
event.create('tfg:titanium_concrete_bricks_small')
.translationKey('block.tfg.titanium_concrete_bricks_small')
.model('tfg:block/concrete/titanium_concrete_bricks_small')
.soundType('stone')
.mapColor('stone')
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.tagBoth('tfg:titanium_concrete')
event.create('tfg:titanium_concrete_bricks_square')
.translationKey('block.tfg.titanium_concrete_bricks_square')
.model('tfg:block/concrete/titanium_concrete_bricks_square')
.soundType('stone')
.mapColor('stone')
.tagBlock('gtceu:mineable/pickaxe_or_wrench')
.tagBoth('tfg:titanium_concrete')
}

View file

@ -0,0 +1,59 @@
"use strict";
function registerTFGNuclearItems(event) {
// Empty Fission Rod
event.create('tfg:empty_rod')
.translationKey('item.tfg.empty_road')
.texture('tfg:item/fuel_rod_empty')
.tag('tfg:fission_rods')
event.create('tfg:refrigerant_pellet')
.translationKey('item.tfg.refrigerant_pellet')
.texture('tfg:item/refrigerant_pellet')
.tag('tfg:fission_coolant')
// Moderator Line
event.create('tfg:graphite_compound')
.translationKey('item.tfg.graphite_compound')
.texture('tfg:item/graphite_line/graphite_compound')
event.create('tfg:raw_graphite_briquette')
.translationKey('item.tfg.raw_graphite_briquette')
.texture('tfg:item/graphite_line/raw_graphite_briquette')
event.create('tfg:faulty_graphite_briquette')
.translationKey('item.tfg.faulty_graphite_briquette')
.texture('tfg:item/graphite_line/faulty_graphite_briquette')
event.create('tfg:washed_graphite_briquette')
.translationKey('item.tfg.washed_graphite_briquette')
event.create('tfg:pure_graphite_rod')
.translationKey('item.tfg.pure_graphite_rod')
.texture('tfg:item/graphite_line/pure_graphite_rod')
event.create('tfg:impure_graphite_rod')
.translationKey('item.tfg.impure_graphite_rod')
.texture('tfg:item/graphite_line/impure_graphite_rod')
event.create('tfg:annealed_graphite_rod')
.translationKey('item.tfg.annealed_graphite_rod')
event.create('tfg:impure_annealed_graphite_rod')
.translationKey('item.tfg.impure_annealed_graphite_rod')
event.create('tfg:graphite_moderator')
.translationKey('item.tfg.graphite_moderator')
.texture('tfg:item/graphite_line/graphite_moderator')
event.create('tfg:impure_graphite_moderator')
.translationKey('item.tfg.impure_graphite_moderator')
.texture('tfg:item/graphite_line/impure_graphite_moderator')
event.create('tfg:advanced_polymer_binder')
.translationKey('item.tfg.advanced_polymer_binder')
.texture('tfg:item/graphite_line/advanced_polymer_binder')
}

View file

@ -3,6 +3,16 @@
const registerTFGNuclearMaterials = (event) => {
// Fission Component
event.create('tfg:tetrafluoroethane')
.fluid()
.gem()
.flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES, GTMaterialFlags.DISABLE_DECOMPOSITION)
.iconSet(GTMaterialIconSet.QUARTZ)
.components('2x carbon', '2x hydrogen', '4x fluorine')
.color(0x46702e)
/* event.create('mysterious_ooze')
.fluid()
.color(0x500bbf)
@ -205,15 +215,6 @@ const registerTFGNuclearMaterials = (event) => {
.color(0x694c66)
.radioactiveHazard(1000)
event.create("ostrum_iodide")
.ingot()
.components('2x ostrum', 'iodine')
.blastTemp(3700, 'mid', GTValues.VA[GTValues.IV], (20*120))
.iconSet(GTMaterialIconSet.BRIGHT)
.flags(GTMaterialFlags.GENERATE_GEAR)
.color(0xc696f2)
.secondaryColor(0x9b99ff)
//#endregion
};

View file

@ -0,0 +1,77 @@
"use strict";
function registerTFGVaseBlocks(event) {
global.MINECRAFT_DYE_NAMES.forEach(color => {
event.create(`tfg:decorative_vase/generated/${color}`, 'cardinal')
.model(`tfg:block/decorative_vase/loot_vase_${color}`)
.soundType('decorated_pot')
.hardness(0.7)
.tagBlock('minecraft:mineable/pickaxe')
.mapColor(`color_${color}`)
.box(2, 0, 2, 14, 20, 14)
.fullBlock(false)
.opaque(false)
.renderType('cutout')
event.create(`tfg:decorative_vase/${color}`, 'cardinal')
.model(`tfg:block/decorative_vase/vase_${color}`)
.soundType('decorated_pot')
.hardness(0.7)
.tagBlock('minecraft:mineable/pickaxe')
.mapColor(`color_${color}`)
.box(2, 0, 2, 14, 20, 14)
.fullBlock(false)
.opaque(false)
.renderType('cutout')
.blockEntity(be => {
be.attach('tfc:inventory', {
width: 9,
height: 1,
size: size => size.isSmallerThan('large')
})
be.rightClickOpensInventory()
})
event.create(`tfg:decorative_vase/unfired/${color}`, 'cardinal')
.model(`tfg:block/decorative_vase/vase_unfired_${color}`)
.soundType('decorated_pot')
.hardness(0.7)
.tagBlock('minecraft:mineable/pickaxe')
.mapColor(`color_${color}`)
.box(2, 0, 2, 14, 20, 14)
.fullBlock(false)
.opaque(false)
.renderType('cutout')
})
event.create('tfg:decorative_vase', 'cardinal')
.model('tfg:block/decorative_vase/vase')
.soundType('decorated_pot')
.hardness(0.7)
.tagBlock('minecraft:mineable/pickaxe')
.mapColor(`color_gray`)
.box(2, 0, 2, 14, 20, 14)
.fullBlock(false)
.opaque(false)
.renderType('cutout')
.blockEntity(be => {
be.attach('tfc:inventory', {
width: 9,
height: 1,
size: size => size.isSmallerThan('large')
})
be.rightClickOpensInventory()
})
event.create('tfg:decorative_vase/unfired', 'cardinal')
.model('tfg:block/decorative_vase/vase_unfired')
.soundType('decorated_pot')
.hardness(0.7)
.tagBlock('minecraft:mineable/pickaxe')
.mapColor(`color_gray`)
.box(2, 0, 2, 14, 20, 14)
.fullBlock(false)
.opaque(false)
.renderType('cutout')
}

View file

@ -0,0 +1,139 @@
"use strict";
function registerTFGPrimitiveItems(event) {
// Paper making
event.create('tfg:hardwood_strip')
event.create('tfg:soaked_hardwood_strip')
event.create('tfg:soaked_unrefined_paper')
// Chalk
event.create('tfg:unfired_chalk')
Color.DYE.forEach((dyeName, dye) => {
event.create(`tfg:wet_${dyeName}_chalk`)
.textureJson({
layer0: 'tfg:item/unfired_chalk'
})
.color(0, dye.getHexJS());
});
// Primitive rubber gloves
event.create('tfg:prepared_leather_gloves')
event.create('tfg:latex_soaked_gloves')
// Chipboard
event.create('tfg:chipboard_composite')
event.create('tfg:treated_chipboard_composite')
event.create('tfg:high_density_treated_fiberboard')
// Wax
event.create('tfg:paraffin_wax')
event.create('tfg:conifer_rosin')
// Tools
event.create('tfg:flint_club_head')
event.create('tfg:flint_arrow_head')
event.create('tfg:fletching')
event.create('tfg:armor_stand_arms')
event.create('tfg:harvest_basket')
.parentModel('tfg:item/harvest_basket')
.maxDamage(128)
event.create('tfg:aluminium_harvest_basket')
.parentModel('tfg:item/aluminium_harvest_basket')
.unstackable()
// Carts
event.create('tfg:cobalt_brass_wheel')
// Fishing Nets
event.create('tfg:fishing_net/wood')
.translationKey('item.tfg.fishing_net.wood')
.parentModel('tfg:item/fishing_nets/wood_fishing_net')
.texture('tfg:item/fishing_nets/wood_fishing_net')
.maxDamage(112)
event.create('tfg:fishing_net/brass')
.translationKey('item.tfg.fishing_net.brass')
.parentModel('tfg:item/fishing_nets/brass_fishing_net')
.texture('tfg:item/fishing_nets/brass_fishing_net')
.maxDamage(326)
event.create('tfg:fishing_net/rose_gold')
.translationKey('item.tfg.fishing_net.rose_gold')
.parentModel('tfg:item/fishing_nets/rose_gold_fishing_net')
.texture('tfg:item/fishing_nets/rose_gold_fishing_net')
.maxDamage(380)
event.create('tfg:fishing_net/sterling_silver')
.translationKey('item.tfg.fishing_net.sterling_silver')
.parentModel('tfg:item/fishing_nets/sterling_silver_fishing_net')
.texture('tfg:item/fishing_nets/sterling_silver_fishing_net')
.maxDamage(380)
event.create('tfg:fishing_net/invar')
.translationKey('item.tfg.fishing_net.invar')
.parentModel('tfg:item/fishing_nets/invar_fishing_net')
.texture('tfg:item/fishing_nets/invar_fishing_net')
.maxDamage(740)
event.create('tfg:fishing_net/tin_alloy')
.translationKey('item.tfg.fishing_net.tin_alloy')
.parentModel('tfg:item/fishing_nets/tin_alloy_fishing_net')
.texture('tfg:item/fishing_nets/tin_alloy_fishing_net')
.maxDamage(710)
event.create('tfg:fishing_net/cupronickel')
.translationKey('item.tfg.fishing_net.cupronickel')
.parentModel('tfg:item/fishing_nets/cupronickel_fishing_net')
.texture('tfg:item/fishing_nets/cupronickel_fishing_net')
.maxDamage(560)
event.create('tfg:fishing_net/magnalium')
.translationKey('item.tfg.fishing_net.magnalium')
.parentModel('tfg:item/fishing_nets/magnalium_fishing_net')
.texture('tfg:item/fishing_nets/magnalium_fishing_net')
.maxDamage(1830)
// Universal compost items
event.create('tfg:universal_compost_browns')
.tag('tfc:compost_browns_low')
event.create('tfg:universal_compost_greens')
.tag('tfc:compost_greens_low')
// Etched Diamond Etching Tip
event.create('tfg:etching_diamond_tip')
// Cloth & String
event.create('tfg:polycaprolactam_fabric')
event.create('tfg:polycaprolactam_string')
event.create('tfg:phantom_silk')
event.create('tfg:phantom_thread')
// Flax Stuff
event.create('tfg:flax_waste')
.tag('tfc:scrapable')
event.create('tfg:flax_tow')
.tag('tfg:burlap_fiber')
.tag('tfc:compost_browns')
event.create('tfg:flax_line')
.tag('tfc:compost_browns_low')
event.create('tfg:linen_thread')
.tag('forge:string')
event.create('tfg:linen_cloth')
.tag('forge:cloth')
.tag('tfc:sewing_light_cloth')
event.create('tfg:flax_bundle')
.tag('tfc:scrapable')
.texture('tfg:item/flax_bundle')
event.create('tfg:bundled_scraped_flax')
.tag('tfc:scrapable')
.texture('tfg:item/bundled_scraped_flax')
}

View file

@ -0,0 +1,91 @@
"use strict";
function registerTFGPrimitiveMaterials(event) {
// Paper
event.create('hardwood')
.dust()
.flags(GTMaterialFlags.FLAMMABLE)
.iconSet(GTMaterialIconSet.WOOD)
.color('0x7a5225')
.secondaryColor('0x7a5225')
event.create('thermochemically_treated_hardwood')
.dust()
.flags(GTMaterialFlags.FLAMMABLE)
.iconSet(GTMaterialIconSet.WOOD)
.color('0x52482c')
.secondaryColor('0x52482c')
// Tree tapping
event.create('tfg:latex')
.liquid()
.color(0xFBB982)
event.create('tfg:vulcanized_latex')
.liquid()
.color(0xc79973)
event.create('tfg:conifer_pitch')
.liquid()
.color(0xfbdf82)
.secondaryColor(0xff9d2e)
// Food/Cooking
event.create('lactose')
.dust()
.iconSet(GTMaterialIconSet.FINE)
.color('0xede8da')
.secondaryColor('0xeddcad')
.components('12x carbon', '22x hydrogen', '11x oxygen')
event.create('tfg:sodium_dihydrogen_citrate')
.dust()
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.iconSet(GTMaterialIconSet.BRIGHT)
.components('6x carbon', '7x hydrogen', '1x sodium', '7x oxygen')
.color('0xE38818')
event.create('tfg:citric_acid')
.dust()
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.iconSet(GTMaterialIconSet.SHINY)
.components('6x carbon', '8x hydrogen', '7x oxygen')
.color('0xE3AD18')
// I decided to make these materials because why not?
event.create('tfg:rich_stock')
.liquid(new GTFluidBuilder().customStill().state(GTFluidState.LIQUID).temperature(360));
event.create('tfg:light_stock')
.liquid(new GTFluidBuilder().customStill().state(GTFluidState.LIQUID).temperature(360));
event.create('tfg:brown_gravy')
.liquid(new GTFluidBuilder().customStill().state(GTFluidState.LIQUID).temperature(360));
// Ores -- these need to be in the gtceu namespace for the ore tool to work
event.create('tarkianite')
.ore()
.components('1x copper', '1x iron', '4x rhenium', '4x molybdenum', '8x sulfur')
.color(0x8bb054)
.secondaryColor(0x3d8021)
.iconSet(GTMaterialIconSet.getByName('tfc_emerald'))
.addOreByproducts('sulfur', 'rhenium', 'molybdenum')
// Metals/minerals
event.create('aluminium_silicate')
.dust()
.ingot()
.liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(1520))
.components('2x aluminium', '1x silicon', '5x oxygen')
.iconSet('metallic')
.color(0xB6D3FF)
.secondaryColor(0x6F4AB3)
event.create('tfg:kaolinite')
.dust()
.components('2x aluminium', '2x silicon', '9x oxygen', '4x hydrogen')
.color(0xEEB9AD)
.secondaryColor(0xF6A797)
.formula("Al2Si2O5(OH)4")
}

View file

@ -0,0 +1,33 @@
"use strict";
function registerTFGSpaceItems(event) {
// Space suits
event.create('tfg:space_suit_fabric')
event.create('tfg:better_space_suit_fabric')
// Tier2 Insulation
event.create('tfg:aes_wool')
event.create('tfg:aes_compressed_wool')
event.create('tfg:aes_insulation_sheet')
event.create('tfg:aes_insulation_roll')
//Tier 2 Rocket Parts
event.create('tfg:rocket_fin_t2')
event.create('tfg:rocket_cone_t2')
//Tier 3 Insulation
event.create('tfg:aes_polyurethane')
event.create('tfg:mli_shielding')
event.create('tfg:silica_aerogel')
//Tier 3 Rocket Parts
event.create('tfg:rocket_fin_t3')
event.create('tfg:rocket_cone_t3')
event.create('tfg:elite_power_thruster')
// Solar Panel
event.create('tfg:photo_cell_t1')
.translationKey("item.tfg.basic.photovoltaic.cell")
.texture('tfg:item/photo_cell_t1')
}

View file

@ -0,0 +1,162 @@
"use strict";
function registerTFGRocketMaterials(event) {
// Space Rocket Materials
event.create('rocket_alloy_t1')
.ingot()
.components('6x aluminium', '2x stainless_steel', '1x red_steel')
.color(0x333e47)
.iconSet('metallic')
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR)
.blastTemp(1760, 'low', 256, 900)
event.create('rocket_alloy_t2')
.ingot()
.components('19x titanium', '4x vanadium', '3x aluminium', '3x chromium', '3x tin')
.color(0x3c253d)
.iconSet('metallic')
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.DISABLE_ALLOY_BLAST)
.blastTemp(3200, 'mid', 1024, 1100)
.liquid()
/* event.create('rocket_alloy_t3')
.ingot()
.components('8x titanium', '9x tungsten_steel', '2x tantalum', '2x radon')
.color(0x6c678b)
//.secondaryColor(0xa59fc6)
.liquid()
.removeHazard()
.iconSet('metallic')
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR)
.blastTemp(4200, 'high', 4096, 1300)
*/
// Insulation
event.create('vitrified_asbestos')
.dust()
.fluid()
.iconSet('glass')
.color(0xcccccc)
event.create('tfg:aes_mix')
.dust()
.flags(GTMaterialFlags.DECOMPOSITION_BY_CENTRIFUGING)
.components('5x silicon_dioxide', '4x quicklime', '1x magnesia')
.hazard(HazardProperty.HazardTrigger.SKIN_CONTACT, GTMedicalConditions.CHEMICAL_BURNS)
.color(0xE0E9E4)
event.create('tfg:molten_aes')
.liquid(2900)
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.components('5x silicon_dioxide', '4x quicklime', '1x magnesia')
.color(0xe65609)
.secondaryColor(0xe65609)
//#region Ammonia Borane
event.create('tfg:sodium_hydride')
.dust()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING)
.components('1x sodium', '1x hydrogen')
.color(0xEDF5F3)
event.create('tfg:boric_acid')
.dust()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING)
.components('3x hydrogen', '1x boron', '3x oxygen')
.color(0xDFEDDF)
.secondaryColor(0xDFEDDF)
event.create('tfg:trimethyl_borate')
.liquid()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING)
.components('3x carbon', '9x hydrogen', '1x boron', '3x oxygen')
.color(0xF7F7F7)
event.create('tfg:sodium_borohydride')
.dust()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING)
.components('1x sodium', '1x boron', '4x hydrogen')
.color(0xE8F1FF)
.secondaryColor(0xE8F1FF)
event.create('tfg:sodium_methoxide')
.dust()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING)
.components('1x sodium', '1x oxygen', '1x carbon', '3x hydrogen')
.color(0xE8E5DF)
.secondaryColor(0xE8E5DF)
event.create('tfg:ammonia_borane')
.dust()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING, GTMaterialFlags.GENERATE_PLATE)
.components('1x ammonia', '1x boron', '3x hydrogen')
.color(0xCCE3E3)
.secondaryColor(0xCCE3E3)
//#endregion
//#region polyurethane
event.create('tfg:aniline')
.liquid()
.components('6x carbon', '5x hydrogen', '1x nitrogen', '2x hydrogen')
.color(0xBAB999)
event.create('tfg:dimethyl_carbonate')
.liquid()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING)
.components('3x formaldehyde') // CH2O
.color(0xFFFFF2)
event.create('tfg:methyl_phenylcarbamate')
.liquid()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING)
.components('8x carbon','9x hydrogen','1x nitrogen', '2x oxygen')
.color(0xB4EDB4)
event.create('tfg:methylene_diphenyl_dicarbamate')
.liquid()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING)
.components('17x carbon','18x hydrogen','2x nitrogen', '4x oxygen')
.color(0x69C2C1)
event.create('tfg:methylene_diphenyl_diisocyanate')
.dust()
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING)
.components('13x carbon','10x hydrogen','2x nitrogen', '2x oxygen')
.color(0xFFFFBA)
//#endregion
//#region aerogel
event.create('tfg:tmos')
.liquid()
.formula("Si(OCH3)4")
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
.color(0xC2C6CC)
event.create('tfg:silica_gel')
.liquid()
.color(0x60BABF)
.secondaryColor(0xFFD38C)
event.create('tfg:soaked_silica_gel')
.liquid()
.color(0x9ED5D9)
//#endregion
// Space suit gases (these all add up to 10B of components = 1B of space suit gas)
event.create('tfg:compressed_nitrox')
.gas()
.components('8x nitrogen', '2x oxygen')
.color(0xaef5ef)
event.create('tfg:compressed_heliox')
.gas()
.components('8x helium', '2x oxygen')
.color(0xf5eeb3)
event.create('tfg:compressed_heliox_3')
.gas()
.components('8x helium_3', '2x oxygen')
.color(0xf5ea90)
event.create('tfg:compressed_trimix')
.gas()
.components('5x nitrogen', '3x oxygen', '2x helium')
.color(0xc3fab9)
event.create('tfg:compressed_trimix_3')
.gas()
.components('5x nitrogen', '3x oxygen', '2x helium_3')
.color(0xa3ed95)
}

View file

@ -1,60 +1,49 @@
"use strict";
function registerTFGSpaceBlocks(event) {
// #region Dimension markers
event.create('tfg:marker/moon')
.stoneSoundType()
.item(item => {
item.modelJson({ parent: 'tfg:block/marker/moon' })
})
.tagBlock('c:hidden_from_recipe_viewers')
.fullBlock(true)
.opaque(true)
event.create('tfg:marker/mars')
.stoneSoundType()
.item(item => {
item.modelJson({ parent: 'tfg:block/marker/mars' })
})
.tagBlock('c:hidden_from_recipe_viewers')
.fullBlock(true)
.opaque(true)
event.create('tfg:marker/venus')
.stoneSoundType()
.item(item => {
item.modelJson({ parent: 'tfg:block/marker/venus' })
})
.tagBlock('c:hidden_from_recipe_viewers')
.fullBlock(true)
.opaque(true)
event.create('tfg:marker/mercury')
.stoneSoundType()
.item(item => {
item.modelJson({ parent: 'tfg:block/marker/mercury' })
})
.tagBlock('c:hidden_from_recipe_viewers')
.fullBlock(true)
.opaque(true)
event.create('tfg:marker/glacio')
.stoneSoundType()
.item(item => {
item.modelJson({ parent: 'tfg:block/marker/glacio' })
})
.tagBlock('c:hidden_from_recipe_viewers')
.fullBlock(true)
.opaque(true)
// #endregion Dimension markers
function registerTFGRockBlocks(event) {
const SHAPES = ['stairs', 'slab', 'wall']
const AA_REGULAR_STONES = ['moon', 'mars', 'venus', 'mercury', 'glacio']
// #region Raw Stones
SHAPES.forEach(shape => {
event.create(`tfg:rock/deepslate_${shape}`, shape)
.soundType(global.STONE_CHARACS.deepslate.sound)
.textureAll('minecraft:block/deepslate')
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
SHAPES.forEach(shape => {
event.create(`tfg:rock/dripstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.dripstone.sound)
.textureAll('minecraft:block/dripstone_block')
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
SHAPES.forEach(shape => {
event.create(`tfg:rock/crackrack_${shape}`, shape)
.soundType(global.STONE_CHARACS.crackrack.sound)
.textureAll('beneath:block/crackrack')
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/moon_stone_wall', 'wall')
.soundType(global.STONE_CHARACS.moon.sound)
.textureAll('ad_astra:block/moon_stone')
@ -139,10 +128,57 @@ function registerTFGSpaceBlocks(event) {
.fullBlock(true)
.opaque(true)
})
// #endregion Raw Stones
// #region Hardened Stones
event.create('tfg:rock/hardened_deepslate')
.soundType(global.STONE_CHARACS.deepslate.sound)
.property(BlockProperties.AXIS)
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'minecraft:item/deepslate' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/hardened_blackstone')
.soundType(global.STONE_CHARACS.blackstone.sound)
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'minecraft:item/blackstone' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/hardened_dripstone')
.soundType(global.STONE_CHARACS.dripstone.sound)
.stoneSoundType()
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'minecraft:item/dripstone_block' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/hardened_moon_stone')
.soundType(global.STONE_CHARACS.moon.sound)
.requiresTool(true)
@ -251,6 +287,45 @@ function registerTFGSpaceBlocks(event) {
// #endregion Hardened Stones
// #region Loose Stones
event.create('tfg:loose/deepslate', 'tfc:loose_rock')
.soundType(global.STONE_CHARACS.deepslate.sound)
.itemTexture('tfg:item/loose/deepslate')
.rockTypeModel(global.STONE_CHARACS.deepslate.type)
.translationKey("block.tfg.loose.deepslate")
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('tfc:loose_rocks')
.tagItem('tfc:any_knapping')
.tagItem('tfc:rock_knapping')
.tagItem(`tfc:${global.STONE_CHARACS.deepslate.type}_rock`)
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.tagItem("rnr:loose_rock_items")
event.create('tfg:loose/dripstone', 'tfc:loose_rock')
.soundType(global.STONE_CHARACS.dripstone.sound)
.itemTexture('tfg:item/loose/dripstone')
.rockTypeModel(global.STONE_CHARACS.dripstone.type)
.translationKey("block.tfg.loose.dripstone")
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('tfc:loose_rocks')
.tagItem('tfc:any_knapping')
.tagItem('tfc:rock_knapping')
.tagItem(`tfc:${global.STONE_CHARACS.dripstone.type}_rock`)
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.tagItem("rnr:loose_rock_items")
event.create('tfg:loose/crackrack', 'tfc:loose_rock')
.soundType(global.STONE_CHARACS.crackrack.sound)
.itemTexture('tfg:item/loose/crackrack')
.rockTypeModel(global.STONE_CHARACS.crackrack.type)
.translationKey("block.tfg.loose.crackrack")
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('tfc:loose_rocks')
.tagItem('tfc:any_knapping')
.tagItem('tfc:rock_knapping')
.tagItem(`tfc:${global.STONE_CHARACS.crackrack.type}_rock`)
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.tagItem("rnr:loose_rock_items")
event.create('tfg:loose/moon_stone', 'tfc:loose_rock')
.soundType(global.STONE_CHARACS.moon.sound)
.itemTexture('tfg:item/loose/moon_stone')
@ -340,6 +415,37 @@ function registerTFGSpaceBlocks(event) {
// #endregion Loose stones
// #region Spikes
event.create('tfg:spike/deepslate_spike', 'tfc:rock_spike')
.textureAll('minecraft:block/deepslate')
.soundType(global.STONE_CHARACS.deepslate.sound)
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
event.create('tfg:spike/blackstone_spike', 'tfc:rock_spike')
.textureAll('minecraft:block/blackstone')
.soundType(global.STONE_CHARACS.blackstone.sound)
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
event.create('tfg:spike/dripstone_spike', 'tfc:rock_spike')
.textureAll('minecraft:block/dripstone_block')
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
event.create('tfg:spike/moon_stone_spike', 'tfc:rock_spike')
.textureAll('ad_astra:block/moon_stone')
.soundType(global.STONE_CHARACS.moon.sound)
@ -407,6 +513,166 @@ function registerTFGSpaceBlocks(event) {
// #endregion Spikes
// #region Cobblestones
// Deepslate
event.create('tfg:rock/mossy_cobble_deepslate')
.soundType(global.STONE_CHARACS.deepslate.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_cobble_deepslate_${shape}`, shape)
.soundType(global.STONE_CHARACS.deepslate.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Blackstone
event.create('tfg:rock/cobble_blackstone')
.soundType(global.STONE_CHARACS.blackstone.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/cobble_blackstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.blackstone.sound)
.textureAll('minecraft:block/blackstone_top')
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_cobble_blackstone')
.soundType(global.STONE_CHARACS.blackstone.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_cobble_blackstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.blackstone.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Dripstone
event.create('tfg:rock/cobble_dripstone')
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/cobble_dripstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_cobble_dripstone')
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_cobble_dripstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Crackrack
event.create('tfg:rock/cobble_crackrack')
.soundType(global.STONE_CHARACS.crackrack.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/cobble_crackrack_${shape}`, shape)
.soundType(global.STONE_CHARACS.crackrack.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_cobble_crackrack')
.soundType(global.STONE_CHARACS.crackrack.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_cobble_crackrack_${shape}`, shape)
.soundType(global.STONE_CHARACS.crackrack.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Moon
event.create('tfg:rock/cobble_moon_wall', 'wall')
.soundType(global.STONE_CHARACS.moon.sound)
@ -685,6 +951,50 @@ function registerTFGSpaceBlocks(event) {
// #endregion Cobblestones
// #region Gravels
event.create('tfg:rock/gravel_deepslate')
.soundType('gravel')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_blackstone')
.soundType('gravel')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_dripstone')
.soundType('gravel')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_crackrack')
.soundType('gravel')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_moon')
.soundType('gravel')
.tagBoth('forge:gravel')
@ -775,6 +1085,28 @@ function registerTFGSpaceBlocks(event) {
// #endregion Gravels
// #region Smooth (Polished/Cut) Stones
event.create('tfg:rock/polished_crackrack')
.soundType(global.STONE_CHARACS.crackrack.sound)
.tagBoth('forge:smooth_stone')
.tagBoth('tfc:igneous_intrusive_items')
.tagBoth('tfc:rock/smooth')
.mapColor('crimson_stem')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/polished_crackrack_${shape}`, shape)
.soundType(global.STONE_CHARACS.crackrack.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/polished_moon_wall', 'wall')
.soundType(global.STONE_CHARACS.moon.sound)
.textureAll('ad_astra:block/polished_moon_stone')
@ -871,6 +1203,174 @@ function registerTFGSpaceBlocks(event) {
// #endregion Smooth (Polished/Cut) Stones
// #region Bricks / Decorative
// Deepslate
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_bricks_deepslate_${shape}`, shape)
.soundType(global.STONE_CHARACS.deepslate.sound)
.textureAll('minecraft:block/cracked_deepslate_bricks')
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_tiles_deepslate_${shape}`, shape)
.soundType(global.STONE_CHARACS.deepslate.sound)
.textureAll('minecraft:block/cracked_deepslate_tiles')
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_bricks_deepslate')
.soundType(global.STONE_CHARACS.deepslate.sound)
.tagBoth('minecraft:stone_bricks')
.tagBoth('forge:stone_bricks')
.tagBoth('tfc:rock/bricks')
.tagBoth('tfc:rock/mossy_bricks')
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_bricks_deepslate_${shape}`, shape)
.soundType(global.STONE_CHARACS.deepslate.sound)
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Blackstone
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_bricks_blackstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.blackstone.sound)
.textureAll('minecraft:block/cracked_polished_blackstone_bricks')
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_bricks_blackstone')
.soundType(global.STONE_CHARACS.blackstone.sound)
.tagBoth('minecraft:stone_bricks')
.tagBoth('forge:stone_bricks')
.tagBoth('tfc:rock/bricks')
.tagBoth('tfc:rock/mossy_bricks')
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_bricks_blackstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.blackstone.sound)
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Dripstone
event.create('tfg:rock/cracked_bricks_dripstone')
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth('minecraft:stone_bricks')
.tagBoth('forge:stone_bricks')
.tagBoth('tfc:rock/bricks')
.tagBoth('tfc:rock/mossy_bricks')
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_bricks_dripstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_bricks_dripstone')
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth('minecraft:stone_bricks')
.tagBoth('forge:stone_bricks')
.tagBoth('tfc:rock/bricks')
.tagBoth('tfc:rock/mossy_bricks')
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_bricks_dripstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Crackrack
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_bricks_nether_${shape}`, shape)
.soundType(global.STONE_CHARACS.nether.sound)
.textureAll('minecraft:block/cracked_nether_bricks')
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`)
.mapColor(global.STONE_CHARACS.nether.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_bricks_nether')
.soundType(global.STONE_CHARACS.nether.sound)
.tagBoth('minecraft:stone_bricks')
.tagBoth('forge:stone_bricks')
.tagBoth('tfc:rock/bricks')
.tagBoth('tfc:rock/mossy_bricks')
.tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`)
.mapColor(global.STONE_CHARACS.nether.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_bricks_nether_${shape}`, shape)
.soundType(global.STONE_CHARACS.nether.sound)
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`)
.mapColor(global.STONE_CHARACS.nether.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Moon Stone
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_bricks_moon_${shape}`, shape)
@ -1332,300 +1832,4 @@ function registerTFGSpaceBlocks(event) {
// #endregion Sandstone
// #region Plants
/*
Custom TFG Builder information https://github.com/TerraFirmaGreg-Team/Modpack-Modern/wiki/%5BEN%5D-TFG-Custom-Kubejs-Scripts
*/
event.create('tfg:lunar_roots', 'tfg:decorative_plant')
.soundType('nether_wart')
.lightLevel(0.4)
.tagItem('tfg:moon_plants')
.tagBlock('minecraft:replaceable')
event.create('tfg:lunar_sprouts', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfg:moon_plants')
.tagBlock('minecraft:replaceable')
event.create('tfg:corallium_arenicolus_0', 'tfg:tall_decorative_plant')
.height(2)
.soundType('nether_wart')
.tagItem('tfg:venus_plants')
.lightLevel(0.4)
.renderType('translucent')
event.create('tfg:corallium_arenicolus_1', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfg:venus_plants')
.box(3, 0, 3, 13, 14, 13)
event.create('tfg:corallium_arenicolus_2', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfg:venus_plants')
.renderType('translucent')
.box(0, 0, 0, 16, 4, 16)
event.create('tfg:corallium_arenicolus_3', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfg:venus_plants')
.box(3, 0, 3, 13, 14, 13)
event.create('tfg:corallium_arenicolus_4', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfg:venus_plants')
.box(3, 0, 3, 13, 14, 13)
event.create('tfg:corallium_arenicolus_5', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfg:venus_plants')
.box(3, 0, 3, 13, 14, 13)
event.create('tfg:geyser_source', 'tfg:particle_emitter_decoration')
.soundType('dripstone_block')
.mapColor('color_white')
.resistance(6)
.hardness(1.5)
.particleOffset(0.3, 1, 0.3)
.particleVelocity(0, 0.1, 0)
.particle('minecraft:campfire_signal_smoke')
.particleCount(5)
.particleForced(true)
event.create('tfg:geyser_source_small', 'tfg:particle_emitter_decoration')
.soundType('dripstone_block')
.mapColor('color_white')
.resistance(6)
.hardness(1.5)
.particleOffset(0.3, 1, 0.3)
.particleVelocity(0, 0.05, 0)
.particle('minecraft:campfire_cosy_smoke')
.particleCount(2)
.particleForced(false)
event.create('tfg:stromatolite_cluster_small', 'tfg:decorative_plant')
.soundType('dripstone_block')
.mapColor('color_brown')
.box(3, 0, 3, 13, 6, 13)
event.create('tfg:stromatolite_cluster_medium', 'tfg:decorative_plant')
.soundType('dripstone_block')
.mapColor('color_brown')
.box(3, 0, 3, 13, 14, 13)
// #endregion
// #region Mars Blocks
event.create('tfg:spice', 'tfg:particle_emitter')
.textureAll('tfg:block/sand_spice')
.soundType('sand')
.hardness(2)
.resistance(6)
// makes it invisible on xaeros, so people can't use it to find the deposits :)
.mapColor('none')
.particleOffset(0.3, 1.5, 0.3)
.particleVelocity(0, 0.05, 0)
.particle('electric_spark')
.particleCount(2)
.particleForced(false)
.fullBlock(true)
.opaque(true)
event.create('tfg:groundcover/glider_feather', 'tfc:ground_cover')
.box(4, 0, 4, 12, 2, 12)
.soundType('wool')
.groundCoverModelShape('feather')
.withPreexistingItem('wan_ancient_beasts:glider_feather')
.textureAll('wan_ancient_beasts:item/glider_feather')
.tagBlock('tfc:can_be_snow_piled')
event.create('tfg:groundcover/wraptor_feather', 'tfc:ground_cover')
.box(4, 0, 4, 12, 2, 12)
.soundType('wool')
.groundCoverModelShape('feather')
.withPreexistingItem('minecraft:feather')
.textureAll('tfg:item/wraptor_wool')
.tagBlock('tfc:can_be_snow_piled')
event.create('tfg:groundcover/aeronos_stick', 'tfc:ground_cover')
.box(3, 0, 3, 13, 3, 13)
.groundCoverModelShape('twig')
.withPreexistingItem('tfg:twigs/aeronos')
.tagBlock('tfc:can_be_snow_piled')
.texture('particle', 'ad_astra:block/aeronos_stem')
.texture('all', 'ad_astra:block/aeronos_stem')
.texture('top', 'ad_astra:block/aeronos_stem_inside')
event.create('tfg:groundcover/strophar_stick', 'tfc:ground_cover')
.box(3, 0, 3, 13, 3, 13)
.groundCoverModelShape('twig')
.withPreexistingItem('tfg:twigs/strophar')
.tagBlock('tfc:can_be_snow_piled')
.texture('particle', 'ad_astra:block/strophar_stem')
.texture('all', 'ad_astra:block/strophar_stem')
.texture('top', 'ad_astra:block/strophar_stem_inside')
event.create('tfg:groundcover/glacian_stick', 'tfc:ground_cover')
.box(3, 0, 3, 13, 3, 13)
.groundCoverModelShape('twig')
.withPreexistingItem('tfg:twigs/glacian')
.tagBlock('tfc:can_be_snow_piled')
.texture('particle', 'ad_astra:block/glacian_log')
.texture('all', 'ad_astra:block/glacian_log')
.texture('top', 'ad_astra:block/glacian_log_top')
event.create('tfg:groundcover/alphacene_stick', 'tfc:ground_cover')
.box(3, 0, 3, 13, 3, 13)
.groundCoverModelShape('twig')
.withPreexistingItem('tfg:twigs/alphacene')
.tagBlock('tfc:can_be_snow_piled')
.texture('particle', 'species:block/alphacene_mushroom_block')
.texture('all', 'species:block/alphacene_mushroom_block')
.texture('top', 'minecraft:block/mushroom_stem')
// #endregion
//#region Venus Blocks
//Fluorapatite
const fluorapatite_colors = ['blue', 'green', 'brown', 'orange', 'white', 'yellow'];
fluorapatite_colors.forEach(color => {
const mapColor = color === 'white' ? 'quartz' : `color_${color}`;
//Sand
event.create(`tfg:sand/fluorapatite/${color}`, 'falling')
.textureAll(`tfg:block/planets/venus/sand_fluorapatite_${color}`)
.soundType('sand')
.requiresTool(false)
.tagBoth('forge:sand')
.tagItem('forge:sand/fluorapatite')
.tagBlock('minecraft:mineable/shovel')
.mapColor(mapColor)
.fullBlock(true)
.opaque(true)
//Raw Sandstone
event.create(`tfg:sandstone/raw/fluorapatite/${color}`)
.textureAll(`tfg:block/planets/venus/sandstone_bottom_fluorapatite_${color}`)
.texture('up', `tfg:block/planets/venus/sandstone_top_fluorapatite_${color}`)
.hardness(0.8)
.resistance(0.8)
.soundType('stone')
.requiresTool(true)
.tagBoth('forge:sandstone')
.tagItem('forge:sandstone/fluorapatite')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor(mapColor)
.fullBlock(true)
.opaque(true)
//Smooth Sandstone
event.create(`tfg:sandstone/smooth/fluorapatite/${color}`)
.textureAll(`tfg:block/planets/venus/sandstone_top_fluorapatite_${color}`)
.hardness(0.8)
.resistance(0.8)
.soundType('stone')
.requiresTool(true)
.tagBoth('forge:sandstone')
.tagItem('forge:sandstone/fluorapatite')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor(mapColor)
.fullBlock(true)
.opaque(true)
//Chiseled Sandstone
event.create(`tfg:sandstone/smooth/chiseled/fluorapatite/${color}`)
.textureAll(`tfg:block/planets/venus/sandstone_chiseled_fluorapatite_${color}`)
.texture('up', `tfg:block/planets/venus/sandstone_top_fluorapatite_${color}`)
.texture('down', `tfg:block/planets/venus/sandstone_bottom_fluorapatite_${color}`)
.hardness(0.8)
.resistance(0.8)
.soundType('stone')
.requiresTool(true)
.tagBoth('forge:sandstone')
.tagItem('forge:sandstone/fluorapatite')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor(mapColor)
.fullBlock(true)
.opaque(true)
//Sandstone
event.create(`tfg:sandstone/fluorapatite/${color}`)
.textureAll(`tfg:block/planets/venus/sandstone_fluorapatite_${color}`)
.texture('down', `tfg:block/planets/venus/sandstone_bottom_fluorapatite_${color}`)
.texture('up', `tfg:block/planets/venus/sandstone_top_fluorapatite_${color}`)
.hardness(0.8)
.resistance(0.8)
.soundType('stone')
.requiresTool(true)
.tagBoth('forge:sandstone')
.tagItem('forge:sandstone/fluorapatite')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor(mapColor)
.fullBlock(true)
.opaque(true)
})
//#region Venus Stone
//Stromatolite
event.create('tfg:rock/raw/stromatolite', 'tfc:raw_rock')
.textureAll('tfg:block/planets/venus/stromatolite_spike')
.model('tfg:block/rock/stromatolite_block')
.rockTypeTooltip(Text.translatable('tooltip.tfg.sedimentary'))
.naturallySupported(true)
.sedimentary()
.renderType('cutout')
.soundType('dripstone_block')
.requiresTool(true)
.hardness(0.8)
.resistance(0.8)
.tagBlock('minecraft:mineable/pickaxe')
event.create('tfg:rock/spike/stromatolite', 'tfc:rock_spike')
.textureAll('tfg:block/planets/venus/stromatolite_spike')
.soundType('dripstone_block')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
//Geyserite
event.create('tfg:rock/raw/geyserite', 'tfc:raw_rock')
.textureAll('tfg:block/planets/venus/geyserite')
.rockTypeTooltip(Text.translatable('tooltip.tfg.sedimentary'))
.naturallySupported(true)
.mapColor('quartz')
.sedimentary()
.soundType('dripstone_block')
.requiresTool(true)
.hardness(0.8)
.resistance(0.8)
.tagBlock('minecraft:mineable/pickaxe')
event.create('tfg:rock/spike/geyserite', 'tfc:rock_spike')
.textureAll('tfg:block/planets/venus/geyserite')
.soundType('dripstone_block')
.mapColor('quartz')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
// Halite
event.create('tfg:rock/halite')
.mapColor('quartz')
.soundType('deepslate')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/halite2')
.mapColor('snow')
.soundType('deepslate')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
}

View file

@ -0,0 +1,56 @@
"use strict";
function registerTFGVanillaStoneBlocks(event) {
event.create(`tfg:rock/stone_wall`, 'wall')
.soundType(global.STONE_CHARACS.reconstituted.sound)
.textureAll('minecraft:block/stone')
.tagBoth('tfg:rock_wall')
.mapColor(global.STONE_CHARACS.reconstituted.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
let SHAPES = ['stairs', 'wall']
SHAPES.forEach(shape => {
event.create(`tfg:rock/smooth_stone_${shape}`, shape)
.soundType(global.STONE_CHARACS.reconstituted.sound)
.textureAll('minecraft:block/smooth_stone')
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.mapColor(global.STONE_CHARACS.reconstituted.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
SHAPES = ['stairs', 'slab', 'wall']
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_bricks_stone_${shape}`, shape)
.soundType(global.STONE_CHARACS.reconstituted.sound)
.textureAll('minecraft:block/cracked_stone_bricks')
.tagBoth(`tfg:brick_${shape}s`.replace(/ss/g, 's'))
.mapColor(global.STONE_CHARACS.reconstituted.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/quartz_wall', 'wall')
.soundType('stone')
.textureAll('minecraft:block/quartz_block_side')
.tagBoth('tfg:rock_wall')
.mapColor('snow')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/smooth_quartz_wall', 'wall')
.soundType('stone')
.textureAll('minecraft:block/quartz_block_bottom')
.tagBoth('tfg:rock_wall')
.mapColor('snow')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
}

View file

@ -0,0 +1,43 @@
"use strict";
function registerTFGRockItems(event) {
event.create('tfg:brick/deepslate')
.tag(`tfc:metamorphic_items`)
.translationKey('item.tfg.brick.deepslate')
event.create('tfg:brick/dripstone')
.tag(`tfc:sedimentary_items`)
.translationKey('item.tfg.brick.dripstone')
event.create('tfg:brick/moon_stone')
.tag(`tfc:igneous_intrusive_items`)
.translationKey('item.tfg.brick.moon_stone')
event.create('tfg:brick/moon_deepslate')
.tag(`tfc:igneous_intrusive_items`)
.translationKey('item.tfg.moon_deepslate')
event.create('tfg:brick/mars_stone')
.tag(`tfc:sedimentary_items`)
.translationKey('item.tfg.brick.mars_stone')
event.create('tfg:brick/venus_stone')
.tag(`tfc:igneous_extrusive_items`)
.translationKey('item.tfg.brick.venus_stone')
event.create('tfg:brick/mercury_stone')
.tag(`tfc:igneous_intrusive_items`)
.translationKey('item.tfg.brick.mercury_stone')
event.create('tfg:brick/glacio_stone')
.tag(`tfc:igneous_extrusive_items`)
.translationKey('item.tfg.brick.glacio_stone')
event.create('tfg:brick/permafrost')
.translationKey('item.tfg.brick.permafrost')
event.create('tfg:brick/red_granite')
.tag(`tfc:igneous_intrusive_items`)
.translationKey('item.tfg.red_granite')
}

View file

@ -0,0 +1,43 @@
// priority: 0
"use strict";
const registerTFGRockMaterials = (event) => {
const registerStoneMaterial = (rockType, color) =>
event.create(`tfg:${rockType}`)
.dust()
.color(color)
.iconSet(GTMaterialIconSet.ROUGH)
.flags(
GTMaterialFlags.MORTAR_GRINDABLE,
GTMaterialFlags.NO_SMASHING,
GTMaterialFlags.NO_SMELTING
)
/* TFC Stone Types Materials */
registerStoneMaterial('gabbro', 0x7F8081)
registerStoneMaterial('shale', 0x686567)
registerStoneMaterial('claystone', 0xAF9377)
registerStoneMaterial('limestone', 0xA09885)
registerStoneMaterial('conglomerate', 0xA3977F)
registerStoneMaterial('dolomite', 0x515155)
registerStoneMaterial('chert', 0x7A6756)
registerStoneMaterial('chalk', 0xA4A39F)
registerStoneMaterial('rhyolite', 0x726D69)
registerStoneMaterial('dacite', 0x979797)
registerStoneMaterial('slate', 0x989287)
registerStoneMaterial('phyllite', 0x706B61)
registerStoneMaterial('schist', 0x6E735C)
registerStoneMaterial('gneiss', 0x6A6D60)
registerStoneMaterial('dripstone', 0x927965)
registerStoneMaterial('moon_stone', 0x506869)
registerStoneMaterial('moon_deepslate', 0x45474D)
registerStoneMaterial('mars_stone', 0xD08957)
registerStoneMaterial('venus_stone', 0xD5A664)
registerStoneMaterial('mercury_stone', 0x723E49)
registerStoneMaterial('glacio_stone', 0x9897BF)
// Specialized icon sets for TFC's own
modifyTFGIconSets(event)
}

View file

@ -0,0 +1,176 @@
"use strict";
function registerTFGWorldGenVenusDecoBlocks(event) {
event.create('tfg:geyser_source', 'tfg:particle_emitter_decoration')
.soundType('dripstone_block')
.mapColor('color_white')
.resistance(6)
.hardness(1.5)
.particleOffset(0.3, 1, 0.3)
.particleVelocity(0, 0.1, 0)
.particle('minecraft:campfire_signal_smoke')
.particleCount(5)
.particleForced(true)
event.create('tfg:geyser_source_small', 'tfg:particle_emitter_decoration')
.soundType('dripstone_block')
.mapColor('color_white')
.resistance(6)
.hardness(1.5)
.particleOffset(0.3, 1, 0.3)
.particleVelocity(0, 0.05, 0)
.particle('minecraft:campfire_cosy_smoke')
.particleCount(2)
.particleForced(false)
//Geyserite
event.create('tfg:rock/raw/geyserite', 'tfc:raw_rock')
.textureAll('tfg:block/planets/venus/geyserite')
.rockTypeTooltip(Text.translatable('tooltip.tfg.sedimentary'))
.naturallySupported(true)
.mapColor('quartz')
.sedimentary()
.soundType('dripstone_block')
.requiresTool(true)
.hardness(0.8)
.resistance(0.8)
.tagBlock('minecraft:mineable/pickaxe')
event.create('tfg:rock/spike/geyserite', 'tfc:rock_spike')
.textureAll('tfg:block/planets/venus/geyserite')
.soundType('dripstone_block')
.mapColor('quartz')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
// Halite
event.create('tfg:rock/halite')
.mapColor('quartz')
.soundType('deepslate')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/halite2')
.mapColor('snow')
.soundType('deepslate')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
//Stromatolite
event.create('tfg:rock/raw/stromatolite', 'tfc:raw_rock')
.textureAll('tfg:block/planets/venus/stromatolite_spike')
.model('tfg:block/rock/stromatolite_block')
.rockTypeTooltip(Text.translatable('tooltip.tfg.sedimentary'))
.naturallySupported(true)
.sedimentary()
.renderType('cutout')
.soundType('dripstone_block')
.requiresTool(true)
.hardness(0.8)
.resistance(0.8)
.tagBlock('minecraft:mineable/pickaxe')
event.create('tfg:rock/spike/stromatolite', 'tfc:rock_spike')
.textureAll('tfg:block/planets/venus/stromatolite_spike')
.soundType('dripstone_block')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
event.create('tfg:stromatolite_cluster_small', 'tfg:decorative_plant')
.soundType('dripstone_block')
.mapColor('color_brown')
.box(3, 0, 3, 13, 6, 13)
event.create('tfg:stromatolite_cluster_medium', 'tfg:decorative_plant')
.soundType('dripstone_block')
.mapColor('color_brown')
.box(3, 0, 3, 13, 14, 13)
//#region Fluorapatite
const fluorapatite_colors = ['blue', 'green', 'brown', 'orange', 'white', 'yellow'];
fluorapatite_colors.forEach(color => {
const mapColor = color === 'white' ? 'quartz' : `color_${color}`;
//Sand
event.create(`tfg:sand/fluorapatite/${color}`, 'falling')
.textureAll(`tfg:block/planets/venus/sand_fluorapatite_${color}`)
.soundType('sand')
.requiresTool(false)
.tagBoth('forge:sand')
.tagItem('forge:sand/fluorapatite')
.tagBlock('minecraft:mineable/shovel')
.mapColor(mapColor)
.fullBlock(true)
.opaque(true)
//Raw Sandstone
event.create(`tfg:sandstone/raw/fluorapatite/${color}`)
.textureAll(`tfg:block/planets/venus/sandstone_bottom_fluorapatite_${color}`)
.texture('up', `tfg:block/planets/venus/sandstone_top_fluorapatite_${color}`)
.hardness(0.8)
.resistance(0.8)
.soundType('stone')
.requiresTool(true)
.tagBoth('forge:sandstone')
.tagItem('forge:sandstone/fluorapatite')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor(mapColor)
.fullBlock(true)
.opaque(true)
//Smooth Sandstone
event.create(`tfg:sandstone/smooth/fluorapatite/${color}`)
.textureAll(`tfg:block/planets/venus/sandstone_top_fluorapatite_${color}`)
.hardness(0.8)
.resistance(0.8)
.soundType('stone')
.requiresTool(true)
.tagBoth('forge:sandstone')
.tagItem('forge:sandstone/fluorapatite')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor(mapColor)
.fullBlock(true)
.opaque(true)
//Chiseled Sandstone
event.create(`tfg:sandstone/smooth/chiseled/fluorapatite/${color}`)
.textureAll(`tfg:block/planets/venus/sandstone_chiseled_fluorapatite_${color}`)
.texture('up', `tfg:block/planets/venus/sandstone_top_fluorapatite_${color}`)
.texture('down', `tfg:block/planets/venus/sandstone_bottom_fluorapatite_${color}`)
.hardness(0.8)
.resistance(0.8)
.soundType('stone')
.requiresTool(true)
.tagBoth('forge:sandstone')
.tagItem('forge:sandstone/fluorapatite')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor(mapColor)
.fullBlock(true)
.opaque(true)
//Sandstone
event.create(`tfg:sandstone/fluorapatite/${color}`)
.textureAll(`tfg:block/planets/venus/sandstone_fluorapatite_${color}`)
.texture('down', `tfg:block/planets/venus/sandstone_bottom_fluorapatite_${color}`)
.texture('up', `tfg:block/planets/venus/sandstone_top_fluorapatite_${color}`)
.hardness(0.8)
.resistance(0.8)
.soundType('stone')
.requiresTool(true)
.tagBoth('forge:sandstone')
.tagItem('forge:sandstone/fluorapatite')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor(mapColor)
.fullBlock(true)
.opaque(true)
})
//#endregion
}

View file

@ -0,0 +1,80 @@
"use strict";
function registerTFGVenusMaterials(event) {
// Ores
event.create('tfg:calorite')
//.components('2x mercury', '1x tungsten', '1x rhodium', '2x sulfur')
.color(0xC94D4E)
.secondaryColor(0x9A296A)
.iconSet(GTMaterialIconSet.getByName('tfc_copper'))
.ore()
.ingot()
.flags(
GTMaterialFlags.FORCE_GENERATE_BLOCK,
GTMaterialFlags.GENERATE_PLATE
)
//#region Bromine Line
event.create('raw_brine')
.fluid()
.color(0x947a11)
//.secondaryColor(0x81FFF9)
event.create('hot_brine')
.liquid(320)
.color(0x944611)
event.create('hot_chlorinated_brominated_brine')
.liquid(320)
.color(0xbf8d5a)
.components('1x unknown', '1x chlorine')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
event.create('brominated_chlorine_vapor')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(320))
.color(0xbf8d5a)
.components('1x chlorine', '1x bromine', '1x water')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
event.create('acidic_bromine_solution')
.liquid(new GTFluidBuilder().attribute(GTFluidAttributes.ACID))
.color(0xe7b989)
.components('1x chlorine', '1x bromine')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
event.create('concentrated_bromine_solution')
.liquid()
.color(0x905d29)
.components('1x bromine', '1x chlorine')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
event.create('debrominated_brine')
.liquid()
.color(0xc3874a)
event.create('acidic_bromine_exhaust')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).attribute(GTFluidAttributes.ACID).temperature(293))
.color(0xec9c4a)
.components('3x water', '1x chlorine')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
event.create('hot_alkaline_debrominated_brine')
.liquid()
.color(0xcc6a06)
.components('2x unknown', '1x chlorine')
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
event.create('hot_debrominated_brine')
.liquid(320)
.color(0xb08e6b)
event.create('hydrogen_iodide')
.gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(293))
.color(0x82a6ce)
.components('1x hydrogen', '1x iodine')
//#endregion
}

View file

@ -0,0 +1,22 @@
"use strict";
function registerTFGWorldGenBeneathDecoBlocks(event) {
event.create('tfg:mushroom_roots', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfc:plants')
event.create('tfg:mushroom_sprouts', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfc:plants')
event.create('tfg:charred_log')
.fullBlock(true)
.woodSoundType()
.property(BlockProperties.AXIS)
.tagBoth('minecraft:mineable/axe')
.tagBoth('tfc:logs_that_log')
.tagBoth('afc:logs_that_log')
.tagBoth('minecraft:logs')
.mapColor('black')
}

View file

@ -0,0 +1,115 @@
"use strict";
function registerTFGWorldGenTrees(event) {
// Mars Saplings
event.create('tfg:saplings/crimson', 'tfc:sapling')
.features('tfg:mars/tree/crimson')
.tagBoth('minecraft:saplings')
.tagBlock('tfg:do_not_destroy_in_space')
.tagBlock('tfc:can_be_snow_piled')
.growthDays(6)
.soundType('nether_wart')
.defaultCutout()
.noCollision()
event.create('tfg:saplings/warped', 'tfc:sapling')
.features('tfg:mars/tree/warped')
.tagBoth('minecraft:saplings')
.tagBlock('tfg:do_not_destroy_in_space')
.tagBlock('tfc:can_be_snow_piled')
.growthDays(6)
.soundType('nether_wart')
.defaultCutout()
.noCollision()
event.create('tfg:saplings/alphacene', 'tfc:sapling')
.features('species:alphacene_mushroom')
.tagBoth('minecraft:saplings')
.tagBlock('tfg:do_not_destroy_in_space')
.tagBlock('tfc:can_be_snow_piled')
.growthDays(3)
.soundType('nether_wart')
.defaultCutout()
.noCollision()
event.create('tfg:saplings/strophar', 'tfc:sapling')
.features('tfg:mars/tree/strophar_mini')
.tagBoth('minecraft:saplings')
.tagBlock('tfg:do_not_destroy_in_space')
.tagBlock('tfc:can_be_snow_piled')
.growthDays(7)
.soundType('nether_wart')
.defaultCutout()
.noCollision()
event.create('tfg:saplings/aeronos', 'tfc:sapling')
.features('tfg:mars/tree/aeronos_mini')
.tagBoth('minecraft:saplings')
.tagBlock('tfg:do_not_destroy_in_space')
.tagBlock('tfc:can_be_snow_piled')
.growthDays(9)
.soundType('nether_wart')
.defaultCutout()
.noCollision()
event.create('tfg:saplings/glacian', 'tfc:sapling')
.features('tfg:mars/tree/glacian_mini')
.tagBoth('minecraft:saplings')
.tagBlock('tfg:do_not_destroy_in_space')
.tagBlock('tfc:can_be_snow_piled')
.growthDays(9)
.soundType('nether_wart')
.defaultCutout()
.noCollision()
// Glacian tree stuff
event.create('tfg:glacian_leaves', 'tfc:leaves')
.soundType('azalea_leaves')
.tagBlock('minecraft:mineable/hoe')
.tagBlock('tfg:do_not_destroy_in_space')
.mapColor('snow')
.seasonalColors(false)
.fallenLeaves(leaves => {
leaves.noCollision()
leaves.notSolid()
leaves.defaultCutout()
leaves.soundType('azalea_leaves')
leaves.tagBlock('minecraft:mineable/hoe')
leaves.tagBlock('minecraft:replaceable')
leaves.noDynamicTinting()
leaves.models((modelType, generator) => {
if (modelType.layers != 8) {
generator.parent("tfc:block/groundcover/fallen_leaves_height" + modelType.height);
generator.texture("all", "ad_astra:block/glacian_leaves");
} else {
generator.parent("ad_astra:block/glacian_leaves");
}
})
})
event.create('tfg:glacian_wood', 'tfc:log')
.tagBoth('minecraft:logs')
.tagItem('minecraft:logs_that_burn')
.tagItem('ad_astra:glacian_logs')
.tagBlock('minecraft:mineable/axe')
.soundType('wood')
.stripped(stripped => {
stripped.tagBoth('minecraft:logs')
stripped.tagItem('minecraft:logs_that_burn')
stripped.tagItem('ad_astra:glacian_logs')
stripped.tagBlock('minecraft:mineable/axe')
stripped.soundType('wood')
})
event.create('tfg:glacian_log', 'tfc:log')
.tagBoth('minecraft:logs')
.tagBoth('c:hidden_from_recipe_viewers')
.soundType('wood')
.stripped(stripped => {
stripped.tagBoth('minecraft:logs')
stripped.tagBoth('c:hidden_from_recipe_viewers')
stripped.soundType('wood')
})
}

View file

@ -0,0 +1,24 @@
"use strict";
function registerTFGWoodItems(event) {
global.AD_ASTRA_WOOD.forEach(wood => {
event.create(`tfg:wood/lumber/${wood.name}`)
.translationKey(`item.tfg.${wood.name}_lumber`)
.tag('tfc:lumber')
})
event.create('tfg:twigs/strophar')
.tag('tfc:twigs')
.texture('tfg:item/wood/twig/strophar')
event.create('tfg:twigs/aeronos')
.tag('tfc:twigs')
.texture('tfg:item/wood/twig/aeronos')
event.create('tfg:twigs/glacian')
.tag('tfc:twigs')
.texture('tfg:item/wood/twig/glacian')
event.create('tfg:twigs/alphacene')
.tag('tfc:twigs')
.texture('tfg:item/wood/twig/alphacene')
}

View file

@ -0,0 +1,29 @@
// priority: 0
"use strict";
/**
* @param {any} event
* @param {string} id
* @param {string} planet
*/
function createPlant(event, id, planet) {
return event.create(`betterend:${id}`, 'tfg:decorative_plant')
.tagItem(`tfg:${planet}_plants`)
.tagBlock('minecraft:replaceable')
.tagBlock('tfg:do_not_destroy_in_space')
.tagBlock('tfc:can_be_snow_piled')
}
/**
* @param {any} event
* @param {string} id
* @param {string} planet
*/
function createWaterPlant(event, id, planet) {
return event.create(`betterend:${id}`, 'tfg:decorative_plant')
.tagItem(`tfg:${planet}_plants`)
.tagBlock('minecraft:replaceable')
.tagBlock('tfg:do_not_destroy_in_space')
.tagBlock('tfc:can_be_ice_piled')
}