From 0916fd2e211d14f2de11b0cc79cd872872e11cbd Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 1 Dec 2025 23:39:42 +0000 Subject: [PATCH] big tidying of startup scripts! --- kubejs/startup_scripts/ad_astra/materials.js | 92 -- kubejs/startup_scripts/ae2/fluids.js | 13 - .../chisel_and_bits/constants.js | 17 - kubejs/startup_scripts/gtceu/items.js | 45 - ...{materials.js => material_modification.js} | 6 +- kubejs/startup_scripts/main_startup_script.js | 13 +- kubejs/startup_scripts/tfc/icon_sets.js | 39 - .../tfg/biotech/items.biotech.js | 39 + .../tfg/biotech/items.medicine.js | 69 ++ .../tfg/{ => biotech}/materials.bioline.js | 0 kubejs/startup_scripts/tfg/blocks.casings.js | 121 +++ .../tfg/{blocks.plants.js => blocks.crops.js} | 111 --- kubejs/startup_scripts/tfg/blocks.js | 379 +------- kubejs/startup_scripts/tfg/blocks.nether.js | 592 ------------ .../startup_scripts/tfg/dimension_markers.js | 58 ++ .../tfg/equipment/items.weapons.js | 15 + .../tfg/europa/blocks.europa_deco.js | 39 + .../tfg/europa/materials.europa.js | 18 + kubejs/startup_scripts/tfg/fluids.js | 13 +- .../{tfc/materials.js => tfg/icon_sets.js} | 72 +- kubejs/startup_scripts/tfg/items.aircraft.js | 41 + kubejs/startup_scripts/tfg/items.food.js | 114 ++- kubejs/startup_scripts/tfg/items.js | 564 +---------- .../mars/blocks.mars_deco.js} | 127 +-- .../items.js => tfg/mars/items.mars.js} | 9 +- .../tfg/mars/materials.mars.js | 105 ++ kubejs/startup_scripts/tfg/materials.js | 478 +--------- .../tfg/materials.power_rework.js | 86 +- .../tfg/moon/blocks.moon_deco.js | 53 ++ .../tfg/moon/materials.moon.js | 98 ++ .../tfg/nuclear/blocks.nuclear.js | 118 +++ .../tfg/nuclear/items.nuclear.js | 59 ++ .../tfg/nuclear/materials.nuclear.js | 19 +- .../tfg/{ => primitive}/blocks.supports.js | 0 .../tfg/primitive/blocks.vases.js | 77 ++ .../tfg/primitive/items.primitive.js | 139 +++ .../tfg/primitive/materials.primitive.js | 91 ++ .../tfg/space_general/items.space.js | 33 + .../tfg/space_general/materials.rockets.js | 162 ++++ .../tfg/{ => stone_types}/blocks.aqueducts.js | 0 .../blocks.rocks.js} | 896 +++++++++++------- .../tfg/stone_types/blocks.vanilla_stone.js | 56 ++ .../tfg/stone_types/items.rocks.js | 43 + .../tfg/stone_types/materials.rocks.js | 43 + .../tfg/venus/blocks.venus_deco.js | 176 ++++ .../tfg/venus/materials.venus.js | 80 ++ .../tfg/worldgen/blocks.beneath_deco.js | 22 + .../tfg/worldgen/blocks.trees.js | 115 +++ .../tfg/worldgen/items.wood.js | 24 + .../startup_scripts/tfg/worldgen/utility.js | 29 + 50 files changed, 2767 insertions(+), 2841 deletions(-) delete mode 100644 kubejs/startup_scripts/ad_astra/materials.js delete mode 100644 kubejs/startup_scripts/ae2/fluids.js delete mode 100644 kubejs/startup_scripts/chisel_and_bits/constants.js delete mode 100644 kubejs/startup_scripts/gtceu/items.js rename kubejs/startup_scripts/gtceu/{materials.js => material_modification.js} (99%) delete mode 100644 kubejs/startup_scripts/tfc/icon_sets.js create mode 100644 kubejs/startup_scripts/tfg/biotech/items.biotech.js create mode 100644 kubejs/startup_scripts/tfg/biotech/items.medicine.js rename kubejs/startup_scripts/tfg/{ => biotech}/materials.bioline.js (100%) create mode 100644 kubejs/startup_scripts/tfg/blocks.casings.js rename kubejs/startup_scripts/tfg/{blocks.plants.js => blocks.crops.js} (71%) delete mode 100644 kubejs/startup_scripts/tfg/blocks.nether.js create mode 100644 kubejs/startup_scripts/tfg/equipment/items.weapons.js create mode 100644 kubejs/startup_scripts/tfg/europa/blocks.europa_deco.js create mode 100644 kubejs/startup_scripts/tfg/europa/materials.europa.js rename kubejs/startup_scripts/{tfc/materials.js => tfg/icon_sets.js} (84%) create mode 100644 kubejs/startup_scripts/tfg/items.aircraft.js rename kubejs/startup_scripts/{betterend/blocks.js => tfg/mars/blocks.mars_deco.js} (69%) rename kubejs/startup_scripts/{betterend/items.js => tfg/mars/items.mars.js} (88%) create mode 100644 kubejs/startup_scripts/tfg/mars/materials.mars.js create mode 100644 kubejs/startup_scripts/tfg/moon/blocks.moon_deco.js create mode 100644 kubejs/startup_scripts/tfg/moon/materials.moon.js create mode 100644 kubejs/startup_scripts/tfg/nuclear/blocks.nuclear.js create mode 100644 kubejs/startup_scripts/tfg/nuclear/items.nuclear.js rename kubejs/startup_scripts/tfg/{ => primitive}/blocks.supports.js (100%) create mode 100644 kubejs/startup_scripts/tfg/primitive/blocks.vases.js create mode 100644 kubejs/startup_scripts/tfg/primitive/items.primitive.js create mode 100644 kubejs/startup_scripts/tfg/primitive/materials.primitive.js create mode 100644 kubejs/startup_scripts/tfg/space_general/items.space.js create mode 100644 kubejs/startup_scripts/tfg/space_general/materials.rockets.js rename kubejs/startup_scripts/tfg/{ => stone_types}/blocks.aqueducts.js (100%) rename kubejs/startup_scripts/tfg/{blocks.space.js => stone_types/blocks.rocks.js} (71%) create mode 100644 kubejs/startup_scripts/tfg/stone_types/blocks.vanilla_stone.js create mode 100644 kubejs/startup_scripts/tfg/stone_types/items.rocks.js create mode 100644 kubejs/startup_scripts/tfg/stone_types/materials.rocks.js create mode 100644 kubejs/startup_scripts/tfg/venus/blocks.venus_deco.js create mode 100644 kubejs/startup_scripts/tfg/venus/materials.venus.js create mode 100644 kubejs/startup_scripts/tfg/worldgen/blocks.beneath_deco.js create mode 100644 kubejs/startup_scripts/tfg/worldgen/blocks.trees.js create mode 100644 kubejs/startup_scripts/tfg/worldgen/items.wood.js create mode 100644 kubejs/startup_scripts/tfg/worldgen/utility.js diff --git a/kubejs/startup_scripts/ad_astra/materials.js b/kubejs/startup_scripts/ad_astra/materials.js deleted file mode 100644 index 98d9d69f3..000000000 --- a/kubejs/startup_scripts/ad_astra/materials.js +++ /dev/null @@ -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)); -} \ No newline at end of file diff --git a/kubejs/startup_scripts/ae2/fluids.js b/kubejs/startup_scripts/ae2/fluids.js deleted file mode 100644 index 60038bb0b..000000000 --- a/kubejs/startup_scripts/ae2/fluids.js +++ /dev/null @@ -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) -} \ No newline at end of file diff --git a/kubejs/startup_scripts/chisel_and_bits/constants.js b/kubejs/startup_scripts/chisel_and_bits/constants.js deleted file mode 100644 index 5c8a9ee0f..000000000 --- a/kubejs/startup_scripts/chisel_and_bits/constants.js +++ /dev/null @@ -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' -]; \ No newline at end of file diff --git a/kubejs/startup_scripts/gtceu/items.js b/kubejs/startup_scripts/gtceu/items.js deleted file mode 100644 index 6b29ca59f..000000000 --- a/kubejs/startup_scripts/gtceu/items.js +++ /dev/null @@ -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') - -} diff --git a/kubejs/startup_scripts/gtceu/materials.js b/kubejs/startup_scripts/gtceu/material_modification.js similarity index 99% rename from kubejs/startup_scripts/gtceu/materials.js rename to kubejs/startup_scripts/gtceu/material_modification.js index 3bdcf75d5..aba518db4 100644 --- a/kubejs/startup_scripts/gtceu/materials.js +++ b/kubejs/startup_scripts/gtceu/material_modification.js @@ -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)); diff --git a/kubejs/startup_scripts/main_startup_script.js b/kubejs/startup_scripts/main_startup_script.js index 27c4287d5..94f249b16 100644 --- a/kubejs/startup_scripts/main_startup_script.js +++ b/kubejs/startup_scripts/main_startup_script.js @@ -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 => { diff --git a/kubejs/startup_scripts/tfc/icon_sets.js b/kubejs/startup_scripts/tfc/icon_sets.js deleted file mode 100644 index 7a90f7027..000000000 --- a/kubejs/startup_scripts/tfc/icon_sets.js +++ /dev/null @@ -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') -} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/biotech/items.biotech.js b/kubejs/startup_scripts/tfg/biotech/items.biotech.js new file mode 100644 index 000000000..681f12e91 --- /dev/null +++ b/kubejs/startup_scripts/tfg/biotech/items.biotech.js @@ -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 +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/biotech/items.medicine.js b/kubejs/startup_scripts/tfg/biotech/items.medicine.js new file mode 100644 index 000000000..a3584c88f --- /dev/null +++ b/kubejs/startup_scripts/tfg/biotech/items.medicine.js @@ -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`) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials.bioline.js b/kubejs/startup_scripts/tfg/biotech/materials.bioline.js similarity index 100% rename from kubejs/startup_scripts/tfg/materials.bioline.js rename to kubejs/startup_scripts/tfg/biotech/materials.bioline.js diff --git a/kubejs/startup_scripts/tfg/blocks.casings.js b/kubejs/startup_scripts/tfg/blocks.casings.js new file mode 100644 index 000000000..b11f03bdd --- /dev/null +++ b/kubejs/startup_scripts/tfg/blocks.casings.js @@ -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') + + + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/blocks.plants.js b/kubejs/startup_scripts/tfg/blocks.crops.js similarity index 71% rename from kubejs/startup_scripts/tfg/blocks.plants.js rename to kubejs/startup_scripts/tfg/blocks.crops.js index 47208d86b..289eee7d1 100644 --- a/kubejs/startup_scripts/tfg/blocks.plants.js +++ b/kubejs/startup_scripts/tfg/blocks.crops.js @@ -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') - }) } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/blocks.js b/kubejs/startup_scripts/tfg/blocks.js index 013f7fac1..85b9d9286 100644 --- a/kubejs/startup_scripts/tfg/blocks.js +++ b/kubejs/startup_scripts/tfg/blocks.js @@ -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 } diff --git a/kubejs/startup_scripts/tfg/blocks.nether.js b/kubejs/startup_scripts/tfg/blocks.nether.js deleted file mode 100644 index 765b3b6e2..000000000 --- a/kubejs/startup_scripts/tfg/blocks.nether.js +++ /dev/null @@ -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') -} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/dimension_markers.js b/kubejs/startup_scripts/tfg/dimension_markers.js index 053035b80..51301a50b 100644 --- a/kubejs/startup_scripts/tfg/dimension_markers.js +++ b/kubejs/startup_scripts/tfg/dimension_markers.js @@ -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') diff --git a/kubejs/startup_scripts/tfg/equipment/items.weapons.js b/kubejs/startup_scripts/tfg/equipment/items.weapons.js new file mode 100644 index 000000000..8ad88500c --- /dev/null +++ b/kubejs/startup_scripts/tfg/equipment/items.weapons.js @@ -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') + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/europa/blocks.europa_deco.js b/kubejs/startup_scripts/tfg/europa/blocks.europa_deco.js new file mode 100644 index 000000000..e71f03cab --- /dev/null +++ b/kubejs/startup_scripts/tfg/europa/blocks.europa_deco.js @@ -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) + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/europa/materials.europa.js b/kubejs/startup_scripts/tfg/europa/materials.europa.js new file mode 100644 index 000000000..a4fb06ddd --- /dev/null +++ b/kubejs/startup_scripts/tfg/europa/materials.europa.js @@ -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 + ) + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/fluids.js b/kubejs/startup_scripts/tfg/fluids.js index 0133e5b7d..287f1dd0d 100644 --- a/kubejs/startup_scripts/tfg/fluids.js +++ b/kubejs/startup_scripts/tfg/fluids.js @@ -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 } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfc/materials.js b/kubejs/startup_scripts/tfg/icon_sets.js similarity index 84% rename from kubejs/startup_scripts/tfc/materials.js rename to kubejs/startup_scripts/tfg/icon_sets.js index 16e9dc540..4730d201a 100644 --- a/kubejs/startup_scripts/tfc/materials.js +++ b/kubejs/startup_scripts/tfg/icon_sets.js @@ -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')) diff --git a/kubejs/startup_scripts/tfg/items.aircraft.js b/kubejs/startup_scripts/tfg/items.aircraft.js new file mode 100644 index 000000000..651171046 --- /dev/null +++ b/kubejs/startup_scripts/tfg/items.aircraft.js @@ -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') + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/items.food.js b/kubejs/startup_scripts/tfg/items.food.js index 5a6b9888d..2ff882c35 100644 --- a/kubejs/startup_scripts/tfg/items.food.js +++ b/kubejs/startup_scripts/tfg/items.food.js @@ -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') } diff --git a/kubejs/startup_scripts/tfg/items.js b/kubejs/startup_scripts/tfg/items.js index 3c18ddc84..4183c56a8 100644 --- a/kubejs/startup_scripts/tfg/items.js +++ b/kubejs/startup_scripts/tfg/items.js @@ -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') } diff --git a/kubejs/startup_scripts/betterend/blocks.js b/kubejs/startup_scripts/tfg/mars/blocks.mars_deco.js similarity index 69% rename from kubejs/startup_scripts/betterend/blocks.js rename to kubejs/startup_scripts/tfg/mars/blocks.mars_deco.js index 49d5cf1fe..3043fc2ef 100644 --- a/kubejs/startup_scripts/betterend/blocks.js +++ b/kubejs/startup_scripts/tfg/mars/blocks.mars_deco.js @@ -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) } \ No newline at end of file diff --git a/kubejs/startup_scripts/betterend/items.js b/kubejs/startup_scripts/tfg/mars/items.mars.js similarity index 88% rename from kubejs/startup_scripts/betterend/items.js rename to kubejs/startup_scripts/tfg/mars/items.mars.js index 3c23730ef..5460fe4f6 100644 --- a/kubejs/startup_scripts/betterend/items.js +++ b/kubejs/startup_scripts/tfg/mars/items.mars.js @@ -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) }) + } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/mars/materials.mars.js b/kubejs/startup_scripts/tfg/mars/materials.mars.js new file mode 100644 index 000000000..e03e5dc76 --- /dev/null +++ b/kubejs/startup_scripts/tfg/mars/materials.mars.js @@ -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) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials.js b/kubejs/startup_scripts/tfg/materials.js index b3cf42ebb..0682eee71 100644 --- a/kubejs/startup_scripts/tfg/materials.js +++ b/kubejs/startup_scripts/tfg/materials.js @@ -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 - } diff --git a/kubejs/startup_scripts/tfg/materials.power_rework.js b/kubejs/startup_scripts/tfg/materials.power_rework.js index bace22a6d..254efef25 100644 --- a/kubejs/startup_scripts/tfg/materials.power_rework.js +++ b/kubejs/startup_scripts/tfg/materials.power_rework.js @@ -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) } diff --git a/kubejs/startup_scripts/tfg/moon/blocks.moon_deco.js b/kubejs/startup_scripts/tfg/moon/blocks.moon_deco.js new file mode 100644 index 000000000..0cd4d8935 --- /dev/null +++ b/kubejs/startup_scripts/tfg/moon/blocks.moon_deco.js @@ -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) +} + diff --git a/kubejs/startup_scripts/tfg/moon/materials.moon.js b/kubejs/startup_scripts/tfg/moon/materials.moon.js new file mode 100644 index 000000000..24722152d --- /dev/null +++ b/kubejs/startup_scripts/tfg/moon/materials.moon.js @@ -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 + ) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/nuclear/blocks.nuclear.js b/kubejs/startup_scripts/tfg/nuclear/blocks.nuclear.js new file mode 100644 index 000000000..e1a5954ae --- /dev/null +++ b/kubejs/startup_scripts/tfg/nuclear/blocks.nuclear.js @@ -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') + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/nuclear/items.nuclear.js b/kubejs/startup_scripts/tfg/nuclear/items.nuclear.js new file mode 100644 index 000000000..33d19dcb9 --- /dev/null +++ b/kubejs/startup_scripts/tfg/nuclear/items.nuclear.js @@ -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') +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/nuclear/materials.nuclear.js b/kubejs/startup_scripts/tfg/nuclear/materials.nuclear.js index ac65b1ab0..6fd163157 100644 --- a/kubejs/startup_scripts/tfg/nuclear/materials.nuclear.js +++ b/kubejs/startup_scripts/tfg/nuclear/materials.nuclear.js @@ -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 }; diff --git a/kubejs/startup_scripts/tfg/blocks.supports.js b/kubejs/startup_scripts/tfg/primitive/blocks.supports.js similarity index 100% rename from kubejs/startup_scripts/tfg/blocks.supports.js rename to kubejs/startup_scripts/tfg/primitive/blocks.supports.js diff --git a/kubejs/startup_scripts/tfg/primitive/blocks.vases.js b/kubejs/startup_scripts/tfg/primitive/blocks.vases.js new file mode 100644 index 000000000..9cd41569e --- /dev/null +++ b/kubejs/startup_scripts/tfg/primitive/blocks.vases.js @@ -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') + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/primitive/items.primitive.js b/kubejs/startup_scripts/tfg/primitive/items.primitive.js new file mode 100644 index 000000000..35b0a78d1 --- /dev/null +++ b/kubejs/startup_scripts/tfg/primitive/items.primitive.js @@ -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') +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/primitive/materials.primitive.js b/kubejs/startup_scripts/tfg/primitive/materials.primitive.js new file mode 100644 index 000000000..c5230e941 --- /dev/null +++ b/kubejs/startup_scripts/tfg/primitive/materials.primitive.js @@ -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") +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/space_general/items.space.js b/kubejs/startup_scripts/tfg/space_general/items.space.js new file mode 100644 index 000000000..a13727058 --- /dev/null +++ b/kubejs/startup_scripts/tfg/space_general/items.space.js @@ -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') +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/space_general/materials.rockets.js b/kubejs/startup_scripts/tfg/space_general/materials.rockets.js new file mode 100644 index 000000000..49ffd7665 --- /dev/null +++ b/kubejs/startup_scripts/tfg/space_general/materials.rockets.js @@ -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) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/blocks.aqueducts.js b/kubejs/startup_scripts/tfg/stone_types/blocks.aqueducts.js similarity index 100% rename from kubejs/startup_scripts/tfg/blocks.aqueducts.js rename to kubejs/startup_scripts/tfg/stone_types/blocks.aqueducts.js diff --git a/kubejs/startup_scripts/tfg/blocks.space.js b/kubejs/startup_scripts/tfg/stone_types/blocks.rocks.js similarity index 71% rename from kubejs/startup_scripts/tfg/blocks.space.js rename to kubejs/startup_scripts/tfg/stone_types/blocks.rocks.js index d9ce73696..be5727415 100644 --- a/kubejs/startup_scripts/tfg/blocks.space.js +++ b/kubejs/startup_scripts/tfg/stone_types/blocks.rocks.js @@ -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) } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/stone_types/blocks.vanilla_stone.js b/kubejs/startup_scripts/tfg/stone_types/blocks.vanilla_stone.js new file mode 100644 index 000000000..98d0e933a --- /dev/null +++ b/kubejs/startup_scripts/tfg/stone_types/blocks.vanilla_stone.js @@ -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) + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/stone_types/items.rocks.js b/kubejs/startup_scripts/tfg/stone_types/items.rocks.js new file mode 100644 index 000000000..8cf86dbb8 --- /dev/null +++ b/kubejs/startup_scripts/tfg/stone_types/items.rocks.js @@ -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') +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/stone_types/materials.rocks.js b/kubejs/startup_scripts/tfg/stone_types/materials.rocks.js new file mode 100644 index 000000000..ee90eda0a --- /dev/null +++ b/kubejs/startup_scripts/tfg/stone_types/materials.rocks.js @@ -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) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/venus/blocks.venus_deco.js b/kubejs/startup_scripts/tfg/venus/blocks.venus_deco.js new file mode 100644 index 000000000..4e6961652 --- /dev/null +++ b/kubejs/startup_scripts/tfg/venus/blocks.venus_deco.js @@ -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 +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/venus/materials.venus.js b/kubejs/startup_scripts/tfg/venus/materials.venus.js new file mode 100644 index 000000000..124fa9c6e --- /dev/null +++ b/kubejs/startup_scripts/tfg/venus/materials.venus.js @@ -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 +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/worldgen/blocks.beneath_deco.js b/kubejs/startup_scripts/tfg/worldgen/blocks.beneath_deco.js new file mode 100644 index 000000000..963c68a77 --- /dev/null +++ b/kubejs/startup_scripts/tfg/worldgen/blocks.beneath_deco.js @@ -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') +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/worldgen/blocks.trees.js b/kubejs/startup_scripts/tfg/worldgen/blocks.trees.js new file mode 100644 index 000000000..b5142d066 --- /dev/null +++ b/kubejs/startup_scripts/tfg/worldgen/blocks.trees.js @@ -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') + }) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/worldgen/items.wood.js b/kubejs/startup_scripts/tfg/worldgen/items.wood.js new file mode 100644 index 000000000..db87b70c9 --- /dev/null +++ b/kubejs/startup_scripts/tfg/worldgen/items.wood.js @@ -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') +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/worldgen/utility.js b/kubejs/startup_scripts/tfg/worldgen/utility.js new file mode 100644 index 000000000..83e19c2f5 --- /dev/null +++ b/kubejs/startup_scripts/tfg/worldgen/utility.js @@ -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') +} \ No newline at end of file