Merging space stuff from my own fork into the main repo (#935)

* ignore .vs

* initial commit of ~space~

* fixed planets in config

* adding ore blocks to anorthite, renamed moon deepslate to dunite

* added moon ore veins, adjusted earth ones, added separate rock blocks

* added new buds for the new minerals, adjusted veins again

* forgot to add titanium to the moon!

* added moon zombies

* adjusted veins + added endermites

* first step to the moon

Signed-off-by: SverhRazum-Nah <leon.trol@mail.ru>

* change sky colors back to black

* added ad astra ores

* add desh veins to the moon

* added missing certus clusters

* adding desh veins/loc

* adding meteors + rabbit houses

* cheeeeeeese

* replaced meteor concrete with sky stone

* burying the meteors a little more

* initial commit of ores to field guide tool

* updated mineral data with new space ores

* fixed trapdoor orientation

* added anorthite rocks/bricks, changed names of cut deepslate, made cut deepslate + asurine visible

* changed average moon temp

* First Push

* split 'for' value into arrays, added russian

* pillars are stone, not metal

* adjusting spawns (again)

* oh so that's how charge and energy budget work

* added recipes for the create decoration blocks

* bricks and rocks

* remove ad astra recipes

* added limpets to the moon

* Landing on Mars

Signed-off-by: SverhRazum-Nah <leon.trol@mail.ru>

* Man thats a lot

* added translations for vein types, rock types, and added ukranium

* rabbit adjustments

* removed cooking anorthite cobble into raw

* Pushin P

* Parity

* Move translation tokens to the language tokens JSON

* Remove bin and obj

* Update .gitignore

* Update .gitignore

Signed-off-by: Pyritie <pyritie@gmail.com>

* moon mobs again

* Ore Index being Written

* More PRogress

* Improve string formatting

* toned down realgar

* structures! shulkers! oh my!

* Some progress on the vein index writing

* replace obsidian with scorchia in meteors

* meteor adjustments

* Actual vein index

* add globes to loot table

* Project Completed

* added solar power values

* adjusted ad astra recipes, hid some of the items, added bedrock ores

* more fiddling with structures

* made the rover a bit cheaper

* comply with review

* anorthite dust

* retextured shulkers

* disabled stuff from species/endermanoverhaul

* texture tweak

* recipe tweak

* fixed space rocks being invisible on the map for some reason

* removed earth bauxite vein

* mars rock

* mars stuff

* starting work on mars biome generation

* put biomes in folders

* climate stuff

* more mars worldgen

* added carve tag to space blocks

* move to correct folder

* removed veins

* added armalcolite to the moon

* anorthite -> anorthosite

* plagioclase -> syenite

* dunite -> basanite

* what is climate

* climates again

* mars rock layers

* fixed the temps!

* Update tags.js

Signed-off-by: Pyritie <pyritie@gmail.com>

* Add a Solution file

* adding this back

* remove tools folder since it was moved to a different repo

* some stuff that didn't merge

* updates

* merges

* merges

---------

Signed-off-by: SverhRazum-Nah <leon.trol@mail.ru>
Signed-off-by: Pyritie <pyritie@gmail.com>
Co-authored-by: SverhRazum-Nah <leon.trol@mail.ru>
Co-authored-by: Nebby1999 <nebby131999@gmail.com>
This commit is contained in:
Pyritie 2025-04-29 19:38:01 +01:00 committed by GitHub
parent 7606ee85c6
commit 7c86ce53c0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
227 changed files with 214667 additions and 753 deletions

View file

@ -0,0 +1,445 @@
// priority: 0
const registerAdAstraRecipes = (event) => {
event.remove({ mod: 'ad_astra' })
event.remove({ mod: 'ad_astra_giselle_addon' })
//#region Rocket parts
event.shaped('ad_astra:launch_pad', [
'BAB',
'AAA',
'BAB'
], {
A: '#forge:plates/steel',
B: '#forge:rods/steel'
}).id('tfg:launch_pad')
event.recipes.gtceu.assembler('tfg:rocket_nose_cone')
.itemInputs(
'minecraft:lightning_rod',
'1x #forge:double_plates/stainless_steel',
'3x #forge:plates/stainless_steel')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 720))
.itemOutputs('ad_astra:rocket_nose_cone')
.duration(600)
.EUt(480)
event.shaped('2x ad_astra:rocket_fin', [
' A ',
'AAA',
'A A'
], {
A: '#forge:plates/aluminium',
}).id('tfg:rocket_fin')
//#region Tier 1 rocket
event.recipes.gtceu.assembler('tfg:steel_engine')
.itemInputs(
'2x #forge:double_plates/stainless_steel',
'2x #gtceu:circuits/hv',
'gtceu:hv_electric_pump',
'2x gtceu:power_thruster',
'#forge:rotors/stainless_steel')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 720))
.itemOutputs('ad_astra:steel_engine')
.duration(600)
.EUt(480)
event.custom({
type: 'ad_astra:nasa_workbench',
ingredients: [
{ item: 'ad_astra:rocket_nose_cone' },
{ item: 'gtceu:clean_machine_casing' },
{ item: 'gtceu:clean_machine_casing' },
{ item: 'gtceu:mv_sensor' },
{ item: 'gtceu:mv_emitter' },
{ item: 'gtceu:stainless_steel_crate' },
{ item: 'gtceu:hv_machine_hull' },
{ item: 'ad_astra:rocket_fin' },
{ item: 'gtceu:stainless_steel_drum' },
{ item: 'gtceu:stainless_steel_drum' },
{ item: 'ad_astra:rocket_fin' },
{ item: 'ad_astra:rocket_fin' },
{ item: 'ad_astra:steel_engine' },
{ item: 'ad_astra:rocket_fin' }
],
result: {
count: 1,
id: 'ad_astra:tier_1_rocket'
}
})
//#endregion
//#region Tier 2 rocket
event.recipes.gtceu.assembler('tfg:desh_engine')
.itemInputs(
'2x #forge:double_plates/titanium',
'2x #gtceu:circuits/iv',
'gtceu:ev_electric_pump',
'2x gtceu:advanced_power_thruster',
'#forge:rotors/titanium')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 720))
.itemOutputs('ad_astra:desh_engine')
.duration(600)
.EUt(1920)
event.custom({
type: 'ad_astra:nasa_workbench',
ingredients: [
{ item: 'ad_astra:rocket_nose_cone' },
{ item: 'gtceu:stable_machine_casing' },
{ item: 'gtceu:stable_machine_casing' },
{ item: 'gtceu:ev_sensor' },
{ item: 'gtceu:ev_emitter' },
{ item: 'gtceu:titanium_crate' },
{ item: 'gtceu:ev_machine_hull' },
{ item: 'ad_astra:rocket_fin' },
{ item: 'gtceu:titanium_drum' },
{ item: 'gtceu:titanium_drum' },
{ item: 'ad_astra:rocket_fin' },
{ item: 'ad_astra:rocket_fin' },
{ item: 'ad_astra:desh_engine' },
{ item: 'ad_astra:rocket_fin' }
],
result: {
count: 1,
id: 'ad_astra:tier_2_rocket'
}
})
//#endregion
//#endregion
//#region space suits
event.shaped('ad_astra:space_helmet', [
'AAA',
'ADA',
'BCB'
], {
A: 'gtceu:tempered_glass',
B: 'gtceu:carbon_fiber_plate',
C: '#forge:plates/polycaprolactam',
D: '#forge:small_fluid_pipes/polyethylene'
}).id('tfg:space_helmet')
event.shaped('ad_astra:netherite_space_helmet', [
'AAA',
'ADA',
'BCB'
], {
A: 'gtceu:laminated_glass',
B: '#forge:plates/titanium_tungsten_carbide',
C: '#forge:plates/polyphenylene_sulfide',
D: '#forge:small_fluid_pipes/polytetrafluoroethylene'
}).id('tfg:netherite_space_helmet')
event.shaped('ad_astra:space_suit', [
'B B',
'ADA',
'BCB'
], {
A: 'ad_astra_giselle_addon:oxygen_can',
B: 'gtceu:carbon_fiber_plate',
C: '#forge:plates/polycaprolactam',
D: 'ad_astra:oxygen_gear'
}).id('tfg:space_suit')
event.shaped('ad_astra:netherite_space_suit', [
'B B',
'ADA',
'BCB'
], {
A: 'ad_astra_giselle_addon:netherite_oxygen_can',
B: '#forge:plates/titanium_tungsten_carbide',
C: '#forge:plates/polyphenylene_sulfide',
D: 'ad_astra:oxygen_gear'
}).id('tfg:netherite_space_suit')
event.shaped('ad_astra:space_pants', [
'BAB',
'C C',
'B B'
], {
A: 'gtceu:hv_electric_motor',
B: 'gtceu:carbon_fiber_plate',
C: '#forge:plates/polycaprolactam'
}).id('tfg:space_pants')
event.shaped('ad_astra:netherite_space_pants', [
'BAB',
'C C',
'B B'
], {
A: 'gtceu:ev_electric_motor',
B: '#forge:plates/titanium_tungsten_carbide',
C: '#forge:plates/polyphenylene_sulfide'
}).id('tfg:netherite_space_pants')
event.shaped('ad_astra:space_boots', [
' ',
'C C',
'B B'
], {
B: 'gtceu:carbon_fiber_plate',
C: '#forge:plates/polycaprolactam'
}).id('tfg:space_boots')
event.shaped('ad_astra:netherite_space_boots', [
' ',
'C C',
'B B'
], {
B: '#forge:plates/titanium_tungsten_carbide',
C: '#forge:plates/polyphenylene_sulfide'
}).id('tfg:netherite_space_boots')
event.shaped('ad_astra:oxygen_gear', [
' A ',
'BCB',
'BDB'
], {
A: '#forge:small_fluid_pipes/stainless_steel',
B: '#forge:tiny_fluid_pipes/stainless_steel',
C: 'gtceu:hv_electric_pump',
D: 'gtceu:fluid_detector_cover'
}).id('tfg:oxygen_gear')
//#endregion
//#region Gas tanks
event.shaped('ad_astra:gas_tank', [
'ABA',
'ACA',
'AAA'
], {
A: '#forge:foils/polyethylene',
B: '#forge:tiny_fluid_pipes/polyethylene',
C: 'gtceu:aluminium_fluid_cell'
}).id('tfg:gas_tank')
event.shaped('ad_astra:large_gas_tank', [
'ABA',
'ACA',
'AAA'
], {
A: '#forge:sheets/polyethylene',
B: '#forge:small_fluid_pipes/polyethylene',
C: 'gtceu:stainless_steel_fluid_cell'
}).id('tfg:large_gas_tank')
event.shapeless('ad_astra_giselle_addon:oxygen_can', ['#forge:tiny_fluid_pipes/polyethylene', 'ad_astra:gas_tank'])
.id('tfg:oxygen_can')
event.shaped('ad_astra_giselle_addon:netherite_oxygen_can', [
'DBD',
'ACA',
'AAA'
], {
A: '#forge:plates/titanium_tungsten_carbide',
B: '#forge:tiny_fluid_pipes/titanium',
C: 'gtceu:titanium_fluid_cell',
D: '#forge:plates/polyphenylene_sulfide'
}).id('tfg:netherite_oxygen_can')
//#endregion
//#region Machines
event.recipes.gtceu.assembler('tfg:nasa_workbench')
.itemInputs(
'gtceu:hv_machine_hull',
'3x gtceu:hv_robot_arm',
'3x #gtceu:circuits/hv',
'gtceu:hv_conveyor_module',
'gtceu:computer_monitor_cover',
'#forge:screwdriver_tips')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 864))
.itemOutputs('ad_astra:nasa_workbench')
.duration(1200)
.EUt(480)
event.shaped('ad_astra:oxygen_distributor', [
'ABA',
'ACA',
'DED'
], {
A: '#forge:rotors/stainless_steel',
B: 'gtceu:aluminium_fluid_cell',
C: 'ad_astra:oxygen_gear',
D: 'gtceu:filter_casing',
E: 'gtceu:mv_canner'
}).id('tfg:oxygen_distributor')
event.shaped('ad_astra:gravity_normalizer', [
'A A',
'ABA',
'CDC'
], {
A: '#forge:rods/magnetic_neodymium',
B: 'gtceu:hv_field_generator',
C: 'gtceu:stainless_steel_block',
D: 'gtceu:hv_polarizer',
}).id('tfg:gravity_normalizer')
event.shaped('ad_astra:oxygen_sensor', [
'AAA',
'ABA',
'ACA'
], {
A: '#forge:plates/red_alloy',
B: 'gtceu:activity_detector_cover',
C: 'gtceu:fluid_detector_cover',
}).id('tfg:oxygen_sensor')
event.shaped('ad_astra:solar_panel', [
'AAA',
'BCE',
' F '
], {
A: 'gtceu:solar_panel',
B: 'minecraft:daylight_detector',
C: '#forge:rods/long',
E: '#gtceu:circuits/mv',
F: 'gtceu:mv_machine_hull'
}).id('tfg:solar_panel')
//#endregion
//#region TI-69 (ручной детектор кислорода хз)
event.shaped('ad_astra:ti_69', [
'DBC',
'AE '
], {
A: '#forge:screwdrivers',
B: '#forge:plates/steel',
C: 'gtceu:lv_sensor',
D: 'gtceu:computer_monitor_cover',
E: '#gtceu:batteries/lv'
}).id('tfg:ti_69')
//#endregion
//#region Радио
event.shaped('ad_astra:radio', [
'AB ',
'CDC',
'CCC'
], {
A: 'gtceu:lv_sensor',
B: '#forge:tools/screwdrivers',
C: '#forge:plates/iron',
D: '#gtceu:circuits/lv'
}).damageIngredient('#forge:tools/screwdrivers', '1')
.id('tfg:radio')
//#endregion
//#region Rover
event.shaped('ad_astra:wheel', [
' A ',
'ABA',
' A '
], {
A: '#forge:plates/polyphenylene_sulfide',
B: '#forge:rings/titanium',
}).id('tfg:ad_astra_wheel')
event.recipes.gtceu.assembler('tfg:tier_1_rover')
.itemInputs(
'gtceu:mv_sensor',
'ad_astra:radio',
'ad_astra:gas_tank',
'4x ad_astra:wheel',
'2x gtceu:hv_electric_motor',
'4x #forge:plates/stainless_steel',
'4x #forge:frames/stainless_steel')
.itemOutputs('ad_astra:tier_1_rover')
.duration(2000)
.EUt(1920)
//#endregion
//#region Стальной FE кабель т1
event.recipes.gtceu.assembler('tfg:ad_astra_steel_cable')
.itemInputs('4x #forge:single_wires/manganese_phosphide', '#forge:plates/steel')
.inputFluids(Fluid.of('gtceu:polyethylene', 36))
.itemOutputs('4x ad_astra:steel_cable')
.duration(60)
.EUt(120)
//#endregion
//#region FE кабель т2
event.recipes.gtceu.assembler('tfg:ad_astra_desh_cable')
.itemInputs('4x #forge:single_wires/magnesium_diboride', '#forge:plates/desh')
.inputFluids(Fluid.of('gtceu:polyethylene', 72))
.itemOutputs('4x ad_astra:desh_cable')
.duration(60)
.EUt(480)
//#endregion
//#region Колесо
event.shaped('ad_astra:white_flag', [
'ABB',
'ABB',
'A '
], {
A: '#forge:rods/long/steel',
B: '#tfc:high_quality_cloth',
}).id('tfg:white_flag')
global.MINECRAFT_DYE_NAMES.forEach(color => {
event.shapeless(`ad_astra:${color}_flag`, ['#ad_astra:flags', `#forge:dyes/${color}`])
})
//#endregion
//#region Воздушный пистолет
event.shaped('ad_astra:zip_gun', [
'ACC',
'DB ',
' '
], {
A: 'gtceu:lv_electric_pump',
B: '#forge:bolts/steel',
C: '#forge:tiny_fluid_pipes/steel',
D: 'ad_astra:gas_tank',
}).id('tfg:zip_gun')
//#endregion
//#region Космо картина
event.shaped('ad_astra:space_painting', [
'ABA',
'BCB',
'ABA'
], {
A: '#forge:nuggets/desh',
B: '#forge:ingots/desh',
C: '#tfc:high_quality_cloth',
}).id('tfg:space_painting')
//#endregion
}

View file

@ -0,0 +1,155 @@
// priority: 0
const registerAdAstraFluidTags = (event) => {
global.AD_ASTRA_DISABLED_FLUIDS.forEach(fluid => {
event.removeAllTagsFrom(fluid)
event.add('c:hidden_from_recipe_viewers', fluid)
})
event.removeAll('ad_astra:fuel')
event.removeAll('ad_astra:efficient_fuel')
event.add('ad_astra:tier_1_rocket_fuel', 'gtceu:rocket_fuel')
event.add('ad_astra:tier_2_rocket_fuel', 'gtceu:rocket_fuel')
event.add('ad_astra:tier_3_rocket_fuel', 'gtceu:rocket_fuel')
event.add('ad_astra:tier_4_rocket_fuel', 'gtceu:rocket_fuel')
event.add('ad_astra:tier_5_rocket_fuel', 'gtceu:rocket_fuel')
event.add('ad_astra:tier_1_rover_fuel', 'gtceu:rocket_fuel')
event.add('ad_astra:tier_1_rover_fuel', 'gtceu:diesel')
event.add('ad_astra:tier_1_rover_fuel', 'gtceu:cetane_boosted_diesel')
event.add('ad_astra:tier_1_rover_fuel', 'gtceu:gasoline')
event.add('ad_astra:tier_1_rover_fuel', 'gtceu:high_octane_gasoline')
}
const registerAdAstraItemTags = (event) => {
global.AD_ASTRA_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
event.add('forge:cobblestone', 'ad_astra:moon_cobblestone')
}
const registerAdAstraBlockTags = (event) => {
global.AD_ASTRA_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
// All new stones
global.EXTRATERRESTRIAL_RAW_ROCKS.forEach(rock => {
event.add('forge:stone', rock)
event.add('tfc:breaks_when_isolated', rock)
event.add('tfc:rock/raw', rock)
event.add('minecraft:mineable/pickaxe', rock)
// Collapse tags also require a collapse recipe to work.
// Don't add the recipe if you don't want them to actually collapse!
event.add('tfc:can_collapse', rock)
event.add('tfc:can_trigger_collapse', rock)
event.add('tfc:can_start_collapse', rock)
event.add('tfc:powderkeg_breaking_blocks', rock)
event.add('tfc:bloomery_insulation', rock)
event.add('firmalife:oven_insulation', rock)
event.add('tfc:forge_insulation', rock)
})
global.EXTRATERRESTRIAL_HARDENED_ROCKS.forEach(rock => {
event.add('minecraft:mineable/pickaxe', rock)
event.add('tfc:can_collapse', rock)
event.add('tfc:can_trigger_collapse', rock)
event.add('tfc:powderkeg_breaking_blocks', rock)
event.add('tfc:bloomery_insulation', rock)
event.add('firmalife:oven_insulation', rock)
event.add('tfc:forge_insulation', rock)
})
// Moon
event.add('minecraft:rabbits_spawnable_on', 'tfg:raw_anorthosite')
event.add('minecraft:rabbits_spawnable_on', 'tfg:hardened_anorthosite')
event.add('minecraft:rabbits_spawnable_on', 'tfg:raw_basanite')
event.add('minecraft:rabbits_spawnable_on', 'ad_astra:moon_sand')
event.add('minecraft:rabbits_spawnable_on', 'tfc:sand/black')
event.add('minecraft:rabbits_spawnable_on', 'tfc:sand/white')
event.add('minecraft:rabbits_spawnable_on', 'tfc:rock/raw/diorite')
event.add('minecraft:rabbits_spawnable_on', 'tfc:rock/raw/gabbro')
event.add('minecraft:rabbits_spawnable_on', 'tfc:rock/raw/basalt')
event.add('minecraft:rabbits_spawnable_on', 'tfc:rock/gravel/diorite')
event.add('minecraft:rabbits_spawnable_on', 'tfc:rock/gravel/gabbro')
event.add('minecraft:rabbits_spawnable_on', 'tfc:rock/gravel/basalt')
event.add('ad_astra:moon_stone_replaceables', 'tfg:raw_basanite')
event.add('ad_astra:moon_stone_replaceables', 'tfg:raw_anorthosite')
event.add('ad_astra:moon_stone_replaceables', 'tfg:hardened_anorthosite')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/basalt')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/basalt')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/gabbro')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/gabbro')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/diorite')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/diorite')
event.add('tfc:can_landslide', 'ad_astra:moon_sand')
event.add('tfc:can_landslide', 'ad_astra:moon_cobblestone')
event.add('tfc:can_landslide', 'ad_astra:moon_cobblestone_slab')
event.add('forge:cobblestone', 'ad_astra:moon_cobblestone')
event.add('tfc:can_start_collapse', 'ad_astra:moon_cobblestone_slab')
event.add('tfg:rock_slabs', 'ad_astra:moon_cobblestone_slab')
}
const registerAdAstraBiomeTags = (event) => {
event.removeAll('ad_astra:has_structure/oil_well')
global.MOON_BIOMES.forEach(biome => {
event.add('tfg:moon_biomes', biome)
event.add('tfg:has_structure/meteors', biome)
event.add('tfg:has_structure/cheese_ores', biome)
event.add('tfg:has_structure/moonbase', biome)
event.add('minecraft:spawns_gold_rabbits', biome)
event.add('minecraft:spawns_white_rabbits', biome)
})
event.add('tfg:has_structure/moon_rabbit_houses', 'tfg:lunar_plains')
}
const registerAdAstraEntityTypeTags = (event) => {
// moon
const MOON_ENTITIES = [
'tfc:rat',
'minecraft:rabbit',
'minecraft:enderman',
'minecraft:endermite',
'minecraft:shulker',
'minecraft:shulker_bullet',
'species:limpet',
'endermanoverhaul:windswept_hills_enderman',
'endermanoverhaul:soulsand_valley_enderman',
'endermanoverhaul:spirit'
]
MOON_ENTITIES.forEach(entity => {
event.add('ad_astra:can_survive_extreme_cold', entity)
event.add('ad_astra:lives_without_oxygen', entity)
})
event.add('tfc:deals_crushing_damage', 'minecraft:enderman')
event.add('tfc:deals_crushing_damage', 'endermanoverhaul:windswept_hills_enderman')
event.add('tfc:deals_crushing_damage', 'endermanoverhaul:soulsand_valley_enderman')
event.add('tfc:deals_piercing_damage', 'minecraft:endermite')
event.add('tfc:deals_crushing_damage', 'ad_astra:star_crawler')
}
const registerAdAstraPlacedFeatures = (event) => {
global.MOON_VEINS.forEach(vein => {
event.add('tfg:moon_veins', vein)
event.add('tfc:in_biome/veins', vein)
})
}

View file

@ -263,6 +263,16 @@ const registerAE2Recipes = (event) => {
D: '#forge:plates/titanium',
}).id('tfg:crafting/wireless_booster')
event.shaped('ae2:wireless_booster', [
'ABC',
'DDD',
], {
A: '#forge:dusts/fluix',
B: '#forge:gems/certus_quartz',
C: '#forge:plates/ender_pearl',
D: 'minecraft:shulker_shell',
}).id('tfg:crafting/wireless_booster_shulker')
// Memory Card
event.shaped('ae2:memory_card', [
'ABB',
@ -348,30 +358,42 @@ const registerAE2Recipes = (event) => {
E: 'ae2:terminal'
}).id('tfg:crafting/me_chest')
// ME Drive
event.shaped('ae2:drive', [
'ABA',
'CDC',
'EBE'
], {
A: '#forge:plates/steel',
B: 'ae2:engineering_processor',
C: '#ae2:glass_cable',
D: '#gtceu:circuits/lv',
E: '#forge:plates/titanium'
}).id('tfg:crafting/drive')
// ME Drive
event.shaped('ae2:drive', [
'ABA',
'CDC',
'EBE'
], {
A: '#forge:plates/steel',
B: 'ae2:engineering_processor',
C: '#ae2:glass_cable',
D: '#gtceu:circuits/mv',
E: '#forge:plates/titanium'
}).id('tfg:crafting/drive')
// Spatial Pylon
event.shaped('ae2:spatial_pylon', [
'ABA',
'CDC',
'ABA'
], {
A: '#forge:plates/glass',
B: '#ae2:glass_cable',
C: '#forge:dusts/fluix',
D: '#forge:gems/fluix',
}).id('tfg:crafting/spatial_pylon')
event.shaped('ae2:drive', [
'ABA',
'CDC',
'EBE'
], {
A: '#forge:plates/steel',
B: 'ae2:engineering_processor',
C: '#ae2:glass_cable',
D: '#gtceu:circuits/mv',
E: 'minecraft:shulker_shell'
}).id('tfg:crafting/drive_shulker')
// Spatial Pylon
event.shaped('ae2:spatial_pylon', [
'ABA',
'CDC',
'ABA'
], {
A: '#forge:plates/glass',
B: '#ae2:glass_cable',
C: '#forge:dusts/fluix',
D: '#forge:gems/fluix',
}).id('tfg:crafting/spatial_pylon')
// IO Port
event.shaped('ae2:io_port', [
@ -386,28 +408,52 @@ const registerAE2Recipes = (event) => {
E: 'ae2:engineering_processor'
}).id('tfg:crafting/io_port')
// Spatial IO Port
event.shaped('ae2:spatial_io_port', [
'AAA',
'BCB',
'DED'
], {
A: '#forge:plates/glass',
B: '#ae2:glass_cable',
C: 'ae2:io_port',
D: '#forge:plates/titanium',
E: 'ae2:engineering_processor'
}).id('tfg:crafting/spatial_io_port')
event.shaped('ae2:io_port', [
'AAA',
'BCB',
'DED'
], {
A: '#forge:plates/glass',
B: 'ae2:drive',
C: '#ae2:glass_cable',
D: 'minecraft:shulker_shell',
E: 'ae2:engineering_processor'
}).id('tfg:crafting/io_port_shulker')
// Monitors
event.shapeless('ae2:semi_dark_monitor', ['ae2:dark_monitor'])
.id('tfg:crafting/semi_dark_monitor_2')
// Spatial IO Port
event.shaped('ae2:spatial_io_port', [
'AAA',
'BCB',
'DED'
], {
A: '#forge:plates/glass',
B: '#ae2:glass_cable',
C: 'ae2:io_port',
D: '#forge:plates/titanium',
E: 'ae2:engineering_processor'
}).id('tfg:crafting/spatial_io_port')
event.shapeless('ae2:dark_monitor', ['ae2:monitor'])
.id('tfg:crafting/dark_monitor')
event.shaped('ae2:spatial_io_port', [
'AAA',
'BCB',
'DED'
], {
A: '#forge:plates/glass',
B: '#ae2:glass_cable',
C: 'ae2:io_port',
D: 'minecraft:shulker_shell',
E: 'ae2:engineering_processor'
}).id('tfg:crafting/spatial_io_port_shulker')
event.shapeless('ae2:monitor', ['ae2:semi_dark_monitor'])
.id('tfg:crafting/monitor')
// Monitors
event.shapeless('ae2:semi_dark_monitor', ['ae2:dark_monitor'])
.id('tfg:crafting/semi_dark_monitor_2')
event.shapeless('ae2:dark_monitor', ['ae2:monitor'])
.id('tfg:crafting/dark_monitor')
event.shapeless('ae2:monitor', ['ae2:semi_dark_monitor'])
.id('tfg:crafting/monitor')
// Cell Workbench
event.shaped('ae2:cell_workbench', [
@ -854,29 +900,41 @@ const registerAE2Recipes = (event) => {
.duration(200)
.EUt(480)
// 4k storage components
event.recipes.gtceu.assembler('ae2:cell_component_4k')
.itemInputs(
'4x #gtceu:circuits/ev',
'4x #forge:plates/titanium',
'4x #forge:dusts/certus_quartz',
'ae2:logic_processor')
.inputFluids(Fluid.of('gtceu:steel', 144))
.itemOutputs('ae2:cell_component_4k')
.duration(200)
.EUt(1920)
.cleanroom(CleanroomType.CLEANROOM)
// 4k storage components
event.recipes.gtceu.assembler('ae2:cell_component_4k')
.itemInputs(
'4x #gtceu:circuits/ev',
'4x #forge:plates/titanium',
'4x #forge:dusts/certus_quartz',
'ae2:logic_processor')
.inputFluids(Fluid.of('gtceu:steel', 144))
.itemOutputs('ae2:cell_component_4k')
.duration(200)
.EUt(1920)
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembler('ae2:cell_component_4k_1k')
.itemInputs(
'ae2:logic_processor',
'2x #gtceu:circuits/ev',
'4x ae2:cell_component_1k')
.inputFluids(Fluid.of('gtceu:steel', 144))
.itemOutputs('ae2:cell_component_4k')
.duration(400)
.EUt(1920)
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembler('ae2:cell_component_4k_shulker')
.itemInputs(
'4x #gtceu:circuits/ev',
'4x minecraft:shulker_shell',
'4x #forge:dusts/certus_quartz',
'ae2:logic_processor')
.inputFluids(Fluid.of('gtceu:steel', 144))
.itemOutputs('ae2:cell_component_4k')
.duration(200)
.EUt(1920)
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembler('ae2:cell_component_4k_1k')
.itemInputs(
'ae2:logic_processor',
'2x #gtceu:circuits/ev',
'4x ae2:cell_component_1k')
.inputFluids(Fluid.of('gtceu:steel', 144))
.itemOutputs('ae2:cell_component_4k')
.duration(400)
.EUt(1920)
.cleanroom(CleanroomType.CLEANROOM)
// 16k storage components
event.recipes.gtceu.assembler('ae2:cell_component_16k')
@ -1154,18 +1212,30 @@ const registerAE2Recipes = (event) => {
// ME Контроллер
event.recipes.gtceu.assembler('ae2:controller')
.itemInputs(
'2x ae2:engineering_processor',
'2x #gtceu:circuits/hv',
'2x #forge:plates/titanium',
'ae2:fluix_block')
.inputFluids(Fluid.of('gtceu:polyethylene', 144))
.itemOutputs('ae2:controller')
.duration(200)
.EUt(480)
.cleanroom(CleanroomType.CLEANROOM)
.itemInputs(
'2x ae2:engineering_processor',
'2x #gtceu:circuits/hv',
'2x #forge:plates/titanium',
'ae2:fluix_block')
.inputFluids(Fluid.of('gtceu:polyethylene', 144))
.itemOutputs('ae2:controller')
.duration(200)
.EUt(480)
.cleanroom(CleanroomType.CLEANROOM)
//#region ME Interfaces
event.recipes.gtceu.assembler('ae2:controller_shulker')
.itemInputs(
'2x ae2:engineering_processor',
'2x #gtceu:circuits/hv',
'2x minecraft:shulker_shell',
'ae2:fluix_block')
.inputFluids(Fluid.of('gtceu:polyethylene', 144))
.itemOutputs('ae2:controller')
.duration(200)
.EUt(480)
.cleanroom(CleanroomType.CLEANROOM)
//#region ME Interfaces
// MV
event.recipes.gtceu.assembler('ae2:interface_mv')
@ -1636,65 +1706,37 @@ const registerAE2Recipes = (event) => {
.category(GTRecipeCategories.CHEM_DYES)
};
// Inscriber Silicon Press
event.recipes.gtceu.laser_engraver('ae2:silicon_press_iron')
.itemInputs('#forge:plates/cast_iron')
.notConsumable('#forge:lenses/white')
.itemOutputs('ae2:silicon_press')
.duration(12000)
.EUt(116)
// Inscriber Silicon Press
event.recipes.gtceu.forming_press('ae2:silicon_press_stainless_steel')
.itemInputs('#forge:plates/stainless_steel')
.notConsumable('ae2:silicon_press')
.itemOutputs('ae2:silicon_press')
.duration(100)
.EUt(480)
event.recipes.gtceu.laser_engraver('ae2:silicon_press_wrought_iron')
.itemInputs('#forge:plates/wrought_iron')
.notConsumable('#forge:lenses/white')
.itemOutputs('ae2:silicon_press')
.duration(8000)
.EUt(116)
// Inscriber logic Press
event.recipes.gtceu.forming_press('ae2:logic_processor_press_stainless_steel')
.itemInputs('#forge:plates/stainless_steel')
.notConsumable('ae2:logic_processor_press')
.itemOutputs('ae2:logic_processor_press')
.duration(100)
.EUt(480)
// Inscriber logic Press
event.recipes.gtceu.laser_engraver('ae2:logic_processor_press_iron')
.itemInputs('#forge:plates/cast_iron')
.notConsumable('#forge:lenses/green')
.itemOutputs('ae2:logic_processor_press')
.duration(12000)
.EUt(116)
// Inscriber engineering Press
event.recipes.gtceu.forming_press('ae2:engineering_press_stainless_steel')
.itemInputs('#forge:plates/stainless_steel')
.notConsumable('ae2:engineering_processor_press')
.itemOutputs('ae2:engineering_processor_press')
.duration(100)
.EUt(480)
event.recipes.gtceu.laser_engraver('ae2:logic_processor_press_wrought_iron')
.itemInputs('#forge:plates/wrought_iron')
.notConsumable('#forge:lenses/green')
.itemOutputs('ae2:logic_processor_press')
.duration(8000)
.EUt(116)
// Inscriber engineering Press
event.recipes.gtceu.laser_engraver('ae2:engineering_press_iron')
.itemInputs('#forge:plates/cast_iron')
.notConsumable('#forge:lenses/light_blue')
.itemOutputs('ae2:engineering_processor_press')
.duration(12000)
.EUt(116)
event.recipes.gtceu.laser_engraver('ae2:engineering_press_wrought_iron')
.itemInputs('#forge:plates/wrought_iron')
.notConsumable('#forge:lenses/light_blue')
.itemOutputs('ae2:engineering_processor_press')
.duration(8000)
.EUt(116)
// Inscriber calculation Press
event.recipes.gtceu.laser_engraver('ae2:calculation_press_iron')
.itemInputs('#forge:plates/cast_iron')
.notConsumable('#forge:lenses/blue')
.itemOutputs('ae2:calculation_processor_press')
.duration(12000)
.EUt(116)
event.recipes.gtceu.laser_engraver('ae2:calculation_press_wrought_iron')
.itemInputs('#forge:plates/wrought_iron')
.notConsumable('#forge:lenses/blue')
.itemOutputs('ae2:calculation_processor_press')
.duration(8000)
.EUt(116)
// Inscriber calculation Press
event.recipes.gtceu.forming_press('ae2:calculation_press_stainless_steel')
.itemInputs('#forge:plates/stainless_steel')
.notConsumable('ae2:calculation_processor_press')
.itemOutputs('ae2:calculation_processor_press')
.duration(100)
.EUt(480)
// Quartz Fiber
event.recipes.gtceu.wiremill('ae2:quartz_fiber_certus')

View file

@ -15,4 +15,43 @@ const registerTFCDataForGTCEU = (event) => {
*/
const registerGTCEUHeats = (event) => {
event.itemHeat('gtceu:compressed_coke_clay', 0.1242, null, null)
}
const registerGTCEUBedrockOreVeins = (event) => {
event.add('tfg:bedrock_olivine_vein', vein => {
vein.dimensions('ad_astra:moon')
vein.material(GTMaterials.Olivine, 100)
vein.weight(1000)
vein.yield(30)
vein.depletedYield(1)
vein.depletionChance(2)
vein.depletionAmount(1)
})
event.add('tfg:bedrock_magnetite_vein', vein => {
vein.dimensions('ad_astra:moon')
vein.material(GTMaterials.Magnetite, 100)
vein.weight(500)
vein.yield(20)
vein.depletedYield(1)
vein.depletionChance(2)
vein.depletionAmount(1)
})
event.add('tfg:bedrock_asbestos_vein', vein => {
vein.dimensions('ad_astra:moon')
vein.material(GTMaterials.Asbestos, 100)
vein.weight(800)
vein.yield(20)
vein.depletedYield(1)
vein.depletionChance(2)
vein.depletionAmount(1)
})
// TODO: helium ore
}

View file

@ -4,6 +4,7 @@
* Событие регистрации предмет-тэгов.
*/
ServerEvents.tags('item', event => {
registerAdAstraItemTags(event)
registerAdvancedPeripheralsItemTags(event)
registerAE2ItemTags(event)
registerAFCItemTags(event)
@ -38,6 +39,7 @@ ServerEvents.tags('item', event => {
registerRailWaysItemTags(event)
registerRnrItemTags(event)
registerSophisticatedBackpacksItemTags(event)
registerSpeciesItemTags(event)
registerTFCAmbientalItemTags(event)
registerTFCItemTags(event)
registerTFCTextileItemTags(event)
@ -49,6 +51,7 @@ ServerEvents.tags('item', event => {
* Событие регистрации блок-тэгов.
*/
ServerEvents.tags('block', event => {
registerAdAstraBlockTags(event)
registerAE2BlockTags(event)
registerAFCBlockTags(event)
registerAsticorCartsBlockTags(event)
@ -72,6 +75,7 @@ ServerEvents.tags('block', event => {
registerHotOrNotBlockTags(event)
registerRailWaysBlockTags(event)
registerSophisticatedBackpacksBlockTags(event)
registerSpeciesBlockTags(event)
registerTFCBlockTags(event)
registerTFGBlockTags(event)
registerVintageImprovementsBlockTags(event)
@ -82,6 +86,7 @@ ServerEvents.tags('block', event => {
*/
ServerEvents.tags('fluid', event => {
registerAFCFluidTags(event)
registerAdAstraFluidTags(event)
registerCreateFluidTags(event)
registerCreateAdditionsFluidTags(event)
registerGTCEUFluidTags(event)
@ -96,6 +101,7 @@ ServerEvents.tags('fluid', event => {
* Событие регистрации тегов структур.
*/
ServerEvents.tags('worldgen/placed_feature', event => {
registerAdAstraPlacedFeatures(event)
registerFirmaLifePlacedFeatures(event)
registerTFCPlacedFeatures(event)
registerTFGPlacedFeatures(event)
@ -106,6 +112,14 @@ ServerEvents.tags('worldgen/biome', event => {
registerTFGBiomeTags(event)
})
ServerEvents.tags('worldgen/biome', event => {
registerAdAstraBiomeTags(event)
})
ServerEvents.tags('entity_type', event => {
registerAdAstraEntityTypeTags(event)
})
/**
* Событие регистрации датапаков (Здесь можно регистрировать теги, данные, рецепты, общий метод короче).
* Срабатывает до инициализации рецептов, но после тегов.
@ -147,11 +161,16 @@ GTCEuServerEvents.oreVeins(event => {
event.removeAll()
})
GTCEuServerEvents.bedrockOreVeins(event => {
registerGTCEUBedrockOreVeins(event)
})
/**
* Событие регистрации рецептов.
* Срабатывает после инициализации датапаков и тегов.
*/
ServerEvents.recipes(event => {
registerAdAstraRecipes(event)
registerAdvancedPeripheralsRecipes(event)
registerAlekishipsRecipes(event)
registerAE2Recipes(event)
@ -202,8 +221,8 @@ ServerEvents.recipes(event => {
registerTfceaRecipes(event)
registerTFCRecipes(event)
registerTFCBetterBFRecipes(event)
registerTFGRecipes(event)
registerTFCGroomingStationRecipes(event)
registerTFGRecipes(event)
registerToolBeltRecipes(event)
registerTreeTapRecipes(event)
registerVintageImprovementsRecipes(event)

View file

@ -0,0 +1,11 @@
PlayerEvents.tick(event => {
// make levitation last shorter, so shulkers aren't so deadly on the moon
if (event.player.hasEffect('minecraft:levitation')) {
event.server.scheduleInTicks(0, () => { })
event.server.scheduleInTicks(40, () => {
event.player.removeEffect('minecraft:levitation')
})
}
});

View file

@ -307,13 +307,13 @@ const registerMinecraftRecipes = (event) => {
.duration(50)
.EUt(30)
event.recipes.gtceu.large_chemical_reactor('golden_apple_1')
.itemInputs('tfc:food/red_apple', '8x #forge:ingots/gold')
.itemOutputs('minecraft:golden_apple')
.duration(50)
.EUt(30)
event.recipes.gtceu.large_chemical_reactor('golden_apple_1')
.itemInputs('tfc:food/red_apple', '8x #forge:ingots/gold')
.itemOutputs('minecraft:golden_apple')
.duration(50)
.EUt(30)
//#endregion
//#endregion
//#region Выход: Компаратор

View file

@ -0,0 +1,47 @@
const registerSpeciesBlockTags = (event) => {
const DISABLED_BLOCKS = [
'species:birt_dwelling',
'species:red_suspicious_sand',
'species:bone_bark',
'species:bone_vertebra',
'species:bone_spike',
'species:alphacene_moss_block',
'species:alphacene_moss_carpet',
'species:alphacene_grass_block',
'species:alphacene_mushroom_block',
'species:alphacene_mushroom_growth',
'species:cruncher_pellet',
'species:frozen_meat',
'species:frozen_hair'
]
DISABLED_BLOCKS.forEach(block => {
event.removeAllTagsFrom(block)
event.add('c:hidden_from_recipe_viewers', block)
})
}
const registerSpeciesItemTags = (event) => {
const DISABLED_ITEMS = [
'species:deepfish_bucket',
'species:birt_egg',
'species:bone_spike',
'species:ancient_pinecone',
'species:petrified_egg',
'species:alphacene_grass',
'species:alphacene_tall_grass',
'species:alphacene_mushroom',
'species:cruncher_egg',
'species:ichor_bottle',
'species:youth_potion',
'species:springling_egg'
]
DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
}

View file

@ -221,10 +221,22 @@ const registerTFCFoodData = (event) => {
food.decayModifier(0.6)
})
// treasure
event.foodItem('minecraft:enchanted_golden_apple', food => {
food.hunger(3)
food.fruit(2)
food.decayModifier(0.2)
food.hunger(10)
food.saturation(10)
food.fruit(5)
food.water(20)
food.decayModifier(0)
})
event.foodItem('minecraft:golden_carrot', food => {
food.hunger(5)
food.saturation(5)
food.vegetables(3)
food.water(20)
food.decayModifier(0)
})
event.foodItem('minecraft:glow_berries', food => {

View file

@ -4,7 +4,7 @@ TFCEvents.selectClimateModel(event => {
switch (location) {
/*case 'ad_astra:moon':
case 'ad_astra:moon':
event.setModel('tfg:moon_climate');
break;
@ -16,7 +16,7 @@ TFCEvents.selectClimateModel(event => {
case 'ad_astra:moon_orbit':
case 'ad_astra:mars_orbit':
event.setModel('tfg:orbit_climate');
break;*/
break;
case 'minecraft:the_nether':
event.setModel('tfg:nether_climate');

View file

@ -2,6 +2,7 @@
function registerTFGCollapseRecipes(event) {
// #region Nether
event.recipes.tfc.collapse('minecraft:cobbled_deepslate', 'minecraft:deepslate')
event.recipes.tfc.collapse('minecraft:cobbled_deepslate', 'tfg:rock/hardened_deepslate')
event.recipes.tfc.collapse('minecraft:blackstone', 'minecraft:blackstone')
@ -13,8 +14,23 @@ function registerTFGCollapseRecipes(event) {
event.recipes.tfc.collapse('minecraft:cobbled_deepslate', '#forge:ores_in_ground/deepslate')
event.recipes.tfc.collapse('minecraft:blackstone', '#forge:ores_in_ground/pyroxenite')
event.recipes.tfc.collapse('minecraft:dripstone_block', '#forge:ores_in_ground/dripstone')
event.recipes.tfc.landslide('tfg:ash_pile', 'tfg:ash_pile')
event.recipes.tfc.landslide('minecraft:cobbled_deepslate', 'minecraft:cobbled_deepslate')
// #endregion Nether
// #region Space
event.recipes.tfc.collapse('ad_astra:moon_cobblestone', 'tfg:raw_anorthosite')
event.recipes.tfc.collapse('ad_astra:moon_cobblestone', 'tfg:hardened_anorthosite')
event.recipes.tfc.collapse('tfg:raw_basanite', 'tfg:raw_basanite')
event.recipes.tfc.landslide('ad_astra:moon_cobblestone', 'ad_astra:moon_cobblestone')
event.recipes.tfc.landslide('ad_astra:moon_sand', 'ad_astra:moon_sand')
event.recipes.tfc.collapse('ad_astra:mars_cobblestone', 'tfg:raw_syenite')
event.recipes.tfc.collapse('ad_astra:mars_cobblestone', 'tfg:hardened_syenite')
event.recipes.tfc.landslide('ad_astra:mars_cobblestone', 'ad_astra:mars_cobblestone')
event.recipes.tfc.landslide('ad_astra:mars_sand', 'ad_astra:mars_sand')
// #endregion
}

View file

@ -10,7 +10,9 @@ function registerTFGRockRecipes(event) {
{ loose: 'tfg:loose/deepslate', block: 'minecraft:cobbled_deepslate' },
{ loose: 'beneath:blackstone_pebble', block: 'minecraft:blackstone' },
{ loose: 'tfg:brick/deepslate', block: '4x minecraft:deepslate_bricks' },
{ loose: 'tfg:loose/dripstone', block: 'minecraft:dripstone_block' }
{ loose: 'tfg:loose/dripstone', block: 'minecraft:dripstone_block' },
{ loose: 'tfg:loose/anorthosite', block: 'ad_astra:moon_cobblestone' },
{ loose: 'tfg:loose/syenite', block: 'ad_astra:mars_cobblestone' }
]
GLUEING_TOGETHER.forEach(x => {
@ -35,7 +37,9 @@ function registerTFGRockRecipes(event) {
// loose to bricks
const LOOSE_TO_BRICKS = [
{ loose: 'tfg:loose/deepslate', brick: 'tfg:brick/deepslate' }
{ loose: 'tfg:loose/deepslate', brick: 'tfg:brick/deepslate' },
{ loose: 'tfg:loose/anorthosite', brick: 'tfg:brick/anorthosite' },
{ loose: 'tfg:loose/syenite', brick: 'tfg:brick/syenite' }
]
LOOSE_TO_BRICKS.forEach(x => {
@ -109,7 +113,10 @@ function registerTFGRockRecipes(event) {
{ raw: 'minecraft:cobbled_deepslate', hammered: 'tfc:sand/black' },
{ raw: 'minecraft:blackstone', hammered: 'tfc:sand/black' },
{ raw: 'beneath:crackrack', hammered: 'tfc:sand/pink' },
{ raw: 'minecraft:dripstone_block', hammered: 'tfc:sand/brown' }
{ raw: 'minecraft:dripstone_block', hammered: 'tfc:sand/brown' },
{ raw: 'tfg:raw_anorthosite', hammered: 'ad_astra:moon_cobblestone' },
{ raw: 'tfg:hardened_anorthosite', hammered: 'ad_astra:moon_cobblestone' },
{ raw: 'ad_astra:moon_cobblestone', hammered: 'tfc:sand/white' }
]
HAMMERING.forEach(x => {
@ -255,5 +262,20 @@ function registerTFGRockRecipes(event) {
.EUt(7)
})
event.recipes.gtceu.rock_breaker('tfg:raw_anorthosite')
.notConsumable('tfg:raw_anorthosite')
.itemOutputs('tfg:raw_anorthosite')
.duration(16)
.EUt(7)
.dimension('ad_astra:moon')
event.recipes.gtceu.rock_breaker('tfg:raw_basanite')
.notConsumable('tfg:raw_basanite')
.itemOutputs('tfg:raw_basanite')
.duration(16)
.EUt(7)
.dimension('ad_astra:moon')
// #endregion
}