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,86 @@
// priority: 0
global.AD_ASTRA_DISABLED_ITEMS =
[
// Always disabled
'ad_astra:etrionic_capacitor',
'ad_astra:etrionic_core',
'ad_astra:energizer',
'ad_astra:desh_fluid_pipe',
'ad_astra:ostrum_fluid_pipe',
'ad_astra:coal_generator',
'ad_astra:compressor',
'ad_astra:etrionic_blast_furnace',
'ad_astra:fuel_refinery',
'ad_astra:oxygen_loader',
'ad_astra:water_pump',
'ad_astra:cryo_freezer',
'ad_astra:wrench',
'ad_astra:cheese',
'ad_astra:iron_plate',
'ad_astra:iron_rod',
'ad_astra:steel_ingot',
'ad_astra:steel_nugget',
'ad_astra:steel_plate',
'ad_astra:steel_rod',
'ad_astra:raw_desh',
'ad_astra:raw_ostrum',
'ad_astra:raw_calorite',
'ad_astra:photovoltaic_etrium_cell',
'ad_astra:photovoltaic_vesnium_cell',
'ad_astra:engine_frame',
'ad_astra:fan',
'ad_astra:steel_tank',
'ad_astra:desh_tank',
'ad_astra:ostrum_tank',
'ad_astra:calorite_tank',
'ad_astra:ice_shard',
'ad_astra:oxygen_bucket',
'ad_astra:hydrogen_bucket',
'ad_astra:oil_bucket',
'ad_astra:fuel_bucket',
'ad_astra:cryo_fuel_bucket',
'ad_astra:moon_stone',
'ad_astra:moon_deepslate',
'ad_astra:mars_stone',
'ad_astra_giselle_addon:gravity_normalizer',
'ad_astra:steel_block',
'ad_astra:raw_desh_block',
'ad_astra:raw_ostrum_block',
'ad_astra:raw_calorite_block',
'ad_astra:glacio_globe',
// Disabled until IV planets
'ad_astra:tier_3_rocket',
'ad_astra:mercury_globe',
'ad_astra:venus_globe',
'ad_astra:netherite_space_helmet',
'ad_astra:netherite_space_suit',
'ad_astra:netherite_space_pants',
'ad_astra:netherite_space_boots',
'ad_astra:ostrum_engine',
// Disabled until LuV planet
'ad_astra:tier_4_rocket',
'ad_astra:jet_suit_helmet',
'ad_astra:jet_suit',
'ad_astra:jet_suit_pants',
'ad_astra:jet_suit_boots',
'ad_astra:calorite_engine'
];
global.AD_ASTRA_DISABLED_FLUIDS =
[
'ad_astra:oxygen',
'ad_astra:hydrogen',
'ad_astra:oil',
'ad_astra:fuel',
'ad_astra:cryo_fuel'
];

View file

@ -0,0 +1,80 @@
// priority: 0
const registerAdAstraMaterials = (event) => {
// #region moon ores
event.create('tfg:diopside')
.gem(2)
.components('1x magnesium', '1x calcium', '2x silicon', '6x oxygen')
.color(0xb7cca1)
.iconSet(GTMaterialIconSet.GEM_VERTICAL)
.ore()
.addOreByproducts('magnesium', 'magnetite', 'olivine')
event.create('tfg:enstatite')
.gem(2)
.components('2x magnesium', '2x silicon', '6x oxygen')
.color(0x595813)
.iconSet(GTMaterialIconSet.GEM_VERTICAL)
.ore()
.addOreByproducts('olivine', 'olivine', 'magnetite')
event.create('tfg:fayalite')
.gem(2)
.components('2x iron', '1x silicon', '4x oxygen')
.color(0x421209)
.iconSet(GTMaterialIconSet.LAPIS)
.ore()
.addOreByproducts('olivine', 'magnetite', 'magnetite')
event.create('tfg:armalcolite')
.gem(2)
.components('1x magnesium', '1x rutile', '1x ilmenite')
.color(0x443333)
.iconSet(GTMaterialIconSet.GEM_HORIZONTAL)
.ore()
.addOreByproducts('rutile', 'rutile', 'ilmenite')
// #endregion
// #region ad astra ores
// moon
// TODO: add smelting recipe for this
event.create('ad_astra:desh')
.components('2x olivine', '1x rutile', '4x nitrogen')
.color(0xd38b4c)
.secondaryColor(0xa90936)
.iconSet(GTMaterialIconSet.METALLIC)
.ore()
// TODO: still need to balance these
// mars
event.create('ad_astra:ostrum')
.components('2x scheelite', '1x hematite', '1x rutile', '4x oxygen')
.color(0xbd7980)
.secondaryColor(0x543d4a)
.iconSet(GTMaterialIconSet.BRIGHT)
.ore()
// mercury
event.create('ad_astra:calorite')
.components('2x mercury', '1x tungsten', '1x rhodium', '2x sulfur')
.color(0xcf223c)
.secondaryColor(0x691533)
.iconSet(GTMaterialIconSet.METALLIC)
.ore()
// venus
event.create('ad_astra:etrium')
.components('1x niobium', '1x molybdenum', '1x ruthenium', '3x carbon', '1x monochloramine')
.color(0x58b1a1)
.secondaryColor(0xbafcf6)
.iconSet(GTMaterialIconSet.SHINY)
.ore()
// #endregion
}

View file

@ -56,15 +56,12 @@ global.AE2_DISABLED_ITEMS = [
'ae2:chiseled_quartz_wall',
'ae2:quartz_pillar_wall',
'ae2:fluix_wall',
'ae2:sky_stone_block',
'ae2:smooth_sky_stone_block',
'ae2:sky_stone_brick',
'ae2:sky_stone_small_brick',
'ae2:sky_stone_chest',
'ae2:smooth_sky_stone_chest',
'ae2:sky_stone_tank',
'ae2:mysterious_cube',
'ae2:not_so_mysterious_cube',
'ae2:sky_stone_stairs',
'ae2:smooth_sky_stone_stairs',
'ae2:sky_stone_brick_stairs',

View file

@ -43,27 +43,6 @@ global.CREATE_DISABLED_ITEMS = [
'create:layered_veridium',
'create:veridium_pillar',
// Scorchia
'create:scorchia',
'create:cut_scorchia',
'create:cut_scorchia_stairs',
'create:cut_scorchia_slab',
'create:cut_scorchia_wall',
'create:polished_cut_scorchia',
'create:polished_cut_scorchia_stairs',
'create:polished_cut_scorchia_slab',
'create:polished_cut_scorchia_wall',
'create:cut_scorchia_bricks',
'create:cut_scorchia_brick_stairs',
'create:cut_scorchia_brick_slab',
'create:cut_scorchia_brick_wall',
'create:small_scorchia_bricks',
'create:small_scorchia_brick_stairs',
'create:small_scorchia_brick_slab',
'create:small_scorchia_brick_wall',
'create:layered_scorchia',
'create:scorchia_pillar',
// Scoria
'create:scoria',
'create:cut_scoria',
@ -127,27 +106,6 @@ global.CREATE_DISABLED_ITEMS = [
'create:layered_crimsite',
'create:crimsite_pillar',
// Kingdom of Asura (Mushoku Tensei)
'create:asurine',
'create:cut_asurine',
'create:cut_asurine_stairs',
'create:cut_asurine_slab',
'create:cut_asurine_wall',
'create:polished_cut_asurine',
'create:polished_cut_asurine_stairs',
'create:polished_cut_asurine_slab',
'create:polished_cut_asurine_wall',
'create:cut_asurine_bricks',
'create:cut_asurine_brick_stairs',
'create:cut_asurine_brick_slab',
'create:cut_asurine_brick_wall',
'create:small_asurine_bricks',
'create:small_asurine_brick_stairs',
'create:small_asurine_brick_slab',
'create:small_asurine_brick_wall',
'create:layered_asurine',
'create:asurine_pillar',
// Tuff
'create:cut_tuff',
'create:cut_tuff_stairs',

View file

@ -1,3 +1,5 @@
// priority: 0
const registerGTCEuMaterials = (event) => {
}

View file

@ -1,4 +1,4 @@
// priority: 0
// priority: 0
const registerGTCEuTagPrefixes = (event) => {

View file

@ -61,6 +61,7 @@ GTCEuStartupEvents.registry('gtceu:tag_prefix', event => {
})
GTCEuStartupEvents.registry('gtceu:material', event => {
registerAdAstraMaterials(event)
registerAE2Materials(event)
registerTFCMaterials(event)
registerGTCEuMaterials(event)

View file

@ -588,7 +588,6 @@ global.MINECRAFT_DISABLED_ITEMS = [
'minecraft:beetroot_soup',
'minecraft:cocoa_beans',
'minecraft:experience_bottle',
'minecraft:shulker_shell',
'minecraft:rabbit_stew',
'minecraft:recovery_compass',
'minecraft:chorus_plant',

View file

@ -1,331 +1,100 @@
const registerTFGBlocks = (event) => {
event.create('tfg:artificial_end_portal_frame')
.stoneSoundType()
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
.fullBlock(true)
.item(item => {
item.modelJson({ parent: 'minecraft:block/end_portal_frame' })
})
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')
const $Blocks = Java.loadClass('net.minecraft.world.level.block.Blocks')
const $Properties = Java.loadClass('net.minecraft.world.level.block.state.BlockBehaviour$Properties')
// #region Deprecated tree tap
event.create('treetap:tap')
.requiresTool(false)
.textureAll('tfg:item/deprecated')
// #endregion
// #region Nether blocks
event.create('tfg:rock/hardened_deepslate')
.soundType('deepslate')
.property(BlockProperties.AXIS)
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'minecraft:item/deepslate' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor('terracotta_grey')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/hardened_blackstone')
.stoneSoundType()
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'minecraft:item/blackstone' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.mapColor('terracotta_grey')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/hardened_dripstone')
.soundType('dripstone_block')
.stoneSoundType()
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'minecraft:item/dripstone_block' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.mapColor('terracotta')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:spike/dripstone_spike', 'tfc:rock_spike')
.soundType('dripstone_block')
.noItem()
event.create('tfg:spike/deepslate_spike', 'tfc:rock_spike')
.soundType('deepslate')
.noItem()
event.create('tfg:spike/blackstone_spike', 'tfc:rock_spike')
.stoneSoundType()
.noItem()
event.create('tfg:loose/deepslate', 'tfc:loose_rock')
.itemTexture('tfg:item/loose/deepslate')
.rockTypeModel('metamorphic')
.soundType('deepslate')
.translationKey("block.tfg.loose.deepslate")
.tagBlock('tfc:loose_rocks')
.tagItem('tfc:any_knapping')
.tagItem('tfc:rock_knapping')
.tagItem('tfc:metamorphic_rock')
event.create('tfg:loose/dripstone', 'tfc:loose_rock')
.itemTexture('tfg:item/loose/dripstone')
.rockTypeModel('sedimentary')
.soundType('dripstone_block')
.translationKey("block.tfg.loose.dripstone")
.tagBlock('tfc:loose_rocks')
.tagItem('tfc:any_knapping')
.tagItem('tfc:rock_knapping')
.tagItem('tfc:sedimentary_rock')
const $SproutsBlock = Java.loadClass('net.minecraft.world.level.block.NetherSproutsBlock')
event.createCustom('tfg:mushroom_roots', () => new $SproutsBlock($Properties.copy($Blocks.WARPED_ROOTS)))
event.createCustom('tfg:mushroom_sprouts', () => new $SproutsBlock($Properties.copy($Blocks.NETHER_SPROUTS)))
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')
// #endregion
//#region Custom Supports
event.create('tfg:light_concrete_support', 'tfc:support')
.textureAll('tfg:block/support/light_concrete_support')
.horizontal(horizontal => {
horizontal.textureAll('tfg:block/support/light_concrete_support')
horizontal.soundType('stone')
horizontal.hardness(5)
horizontal.resistance(16)
horizontal.mapColor('color_light_gray')
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType('stone')
.hardness(5)
.resistance(16)
.mapColor('color_light_gray')
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create('tfg:dark_concrete_support', 'tfc:support')
.textureAll('tfg:block/support/dark_concrete_support')
.horizontal(horizontal => {
horizontal.textureAll('tfg:block/support/dark_concrete_support')
horizontal.soundType('stone')
horizontal.hardness(5)
horizontal.resistance(16)
horizontal.mapColor('color_gray')
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType('stone')
.hardness(5)
.resistance(16)
.mapColor('color_gray')
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create('tfg:reinforced_light_concrete_support', 'tfc:support')
.textureAll('tfg:block/support/reinforced_light_concrete_support')
.horizontal(horizontal => {
horizontal.textureAll('tfg:block/support/reinforced_light_concrete_support')
horizontal.soundType('stone')
horizontal.hardness(5)
horizontal.resistance(64)
horizontal.mapColor('color_light_gray')
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType('stone')
.hardness(5)
.resistance(64)
.mapColor('color_light_gray')
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create('tfg:reinforced_dark_concrete_support', 'tfc:support')
.textureAll('tfg:block/support/reinforced_dark_concrete_support')
.horizontal(horizontal => {
horizontal.textureAll('tfg:block/support/reinforced_dark_concrete_support')
horizontal.soundType('stone')
horizontal.hardness(5)
horizontal.resistance(64)
horizontal.mapColor('color_gray')
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType('stone')
.hardness(5)
.resistance(64)
.mapColor('color_gray')
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create('tfg:rebar_support', 'tfc:support')
.textureAll('tfg:block/support/rebar_support')
.horizontal(horizontal => {
horizontal.textureAll('tfg:block/support/rebar_support')
horizontal.soundType('chain')
horizontal.hardness(3)
horizontal.resistance(16)
horizontal.mapColor('color_orange')
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.tagBlock('minecraft:climbable')
horizontal.requiresTool(true)
horizontal.renderType('cutout')
horizontal.opaque(false)
})
.soundType('chain')
.hardness(3)
.resistance(16)
.mapColor('color_orange')
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('minecraft:climbable')
.requiresTool(true)
.renderType('cutout')
.opaque(false)
event.create('tfg:steel_support', 'tfc:support')
.textureAll('tfg:block/support/steel_support')
.horizontal(horizontal => {
horizontal.textureAll('tfg:block/support/steel_support')
horizontal.soundType('metal')
horizontal.hardness(5)
horizontal.resistance(64)
horizontal.mapColor('color_gray')
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType('metal')
.hardness(5)
.resistance(64)
.mapColor('color_gray')
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
const other_stone = ['pyroxenite', 'migmatite', 'travertine']
const stone_types = global.TFC_STONE_TYPES.concat(other_stone)
stone_types.forEach(stone => {
event.create(`tfg:${stone}_support`, 'tfc:support')
.textureAll(`tfg:block/support/${stone}_support`)
.horizontal(horizontal => {
horizontal.textureAll(`tfg:block/support/${stone}_support`)
horizontal.soundType('stone')
horizontal.hardness(5)
horizontal.resistance(8)
horizontal.mapColor('color_gray')
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType('stone')
.hardness(5)
.resistance(8)
.mapColor('color_gray')
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
})
//#endregion
}
const registerTFGBlocks = (event) => {
registerTFGNetherBlocks(event)
registerTFGSpaceBlocks(event)
registerTFGSupportBlocks(event)
event.create('tfg:artificial_end_portal_frame')
.stoneSoundType()
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
.fullBlock(true)
.item(item => {
item.modelJson({ parent: 'minecraft:block/end_portal_frame' })
})
// #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 Deprecated tree tap
event.create('treetap:tap')
.requiresTool(false)
.textureAll('tfg:item/deprecated')
// #endregion
}

View file

@ -0,0 +1,95 @@
function registerTFGNetherBlocks(event) {
event.create('tfg:rock/hardened_deepslate')
.soundType('deepslate')
.property(BlockProperties.AXIS)
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'minecraft:item/deepslate' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor('terracotta_grey')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/hardened_blackstone')
.stoneSoundType()
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'minecraft:item/blackstone' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.mapColor('terracotta_grey')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/hardened_dripstone')
.soundType('dripstone_block')
.stoneSoundType()
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'minecraft:item/dripstone_block' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.mapColor('terracotta')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:spike/dripstone_spike', 'tfc:rock_spike')
.soundType('dripstone_block')
.noItem()
event.create('tfg:spike/deepslate_spike', 'tfc:rock_spike')
.soundType('deepslate')
.noItem()
event.create('tfg:spike/blackstone_spike', 'tfc:rock_spike')
.stoneSoundType()
.noItem()
event.create('tfg:loose/deepslate', 'tfc:loose_rock')
.itemTexture('tfg:item/loose/deepslate')
.rockTypeModel('metamorphic')
.soundType('deepslate')
.translationKey("block.tfg.loose.deepslate")
.tagBlock('tfc:loose_rocks')
.tagItem('tfc:any_knapping')
.tagItem('tfc:rock_knapping')
.tagItem('tfc:metamorphic_rock')
event.create('tfg:loose/dripstone', 'tfc:loose_rock')
.itemTexture('tfg:item/loose/dripstone')
.rockTypeModel('sedimentary')
.soundType('dripstone_block')
.translationKey("block.tfg.loose.dripstone")
.tagBlock('tfc:loose_rocks')
.tagItem('tfc:any_knapping')
.tagItem('tfc:rock_knapping')
.tagItem('tfc:sedimentary_rock')
const $Blocks = Java.loadClass('net.minecraft.world.level.block.Blocks')
const $Properties = Java.loadClass('net.minecraft.world.level.block.state.BlockBehaviour$Properties')
const $SproutsBlock = Java.loadClass('net.minecraft.world.level.block.NetherSproutsBlock')
event.createCustom('tfg:mushroom_roots', () => new $SproutsBlock($Properties.copy($Blocks.WARPED_ROOTS)))
event.createCustom('tfg:mushroom_sprouts', () => new $SproutsBlock($Properties.copy($Blocks.NETHER_SPROUTS)))
event.create('tfg:charred_log')
.fullBlock(true)
.woodSoundType()
.property(BlockProperties.AXIS)
.tagBoth('minecraft:mineable/axe')
.tagBoth('tfc:logs_that_log')
.tagBoth('afc:logs_that_log')
.tagBoth('minecraft:logs')
.mapColor('black')
}

View file

@ -0,0 +1,94 @@
function registerTFGSpaceBlocks(event) {
const $Blocks = Java.loadClass('net.minecraft.world.level.block.Blocks')
const $Properties = Java.loadClass('net.minecraft.world.level.block.state.BlockBehaviour$Properties')
const $SproutsBlock = Java.loadClass('net.minecraft.world.level.block.NetherSproutsBlock')
// #region Moon blocks
event.createCustom(`tfg:lunar_warped_roots`, () => new $SproutsBlock($Properties.copy($Blocks.DEAD_TUBE_CORAL_BLOCK)))
event.createCustom(`tfg:lunar_sprouts`, () => new $SproutsBlock( $Properties.copy($Blocks.DEAD_TUBE_CORAL_BLOCK)))
event.create('tfg:rock/raw_anorthosite')
.stoneSoundType()
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'ad_astra:item/moon_stone' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/raw')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor('terracotta_cyan')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/hardened_anorthosite')
.stoneSoundType()
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'ad_astra:item/moon_stone' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor('terracotta_cyan')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/raw_basanite')
.stoneSoundType()
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'ad_astra:item/moon_deepslate' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/raw')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor('terracotta_cyan')
.fullBlock(true)
.opaque(true)
event.create('tfg:loose/anorthosite', 'tfc:loose_rock')
.itemTexture('tfg:item/loose_anorthosite')
.rockTypeModel('igneous_intrusive')
// #endregion
// #region Mars blocks
event.create('tfg:rock/raw_syenite')
.stoneSoundType()
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'ad_astra:item/mars_stone' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/raw')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor('terracotta_orange')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/hardened_syenite')
.stoneSoundType()
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'ad_astra:item/mars_stone' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor('terracotta_orange')
.fullBlock(true)
.opaque(true)
event.create('tfg:loose/syenite', 'tfc:loose_rock')
.itemTexture('tfg:item/loose_syenite')
.rockTypeModel('igneous_intrusive')
}

View file

@ -0,0 +1,141 @@
function registerTFGSupportBlocks(event) {
event.create('tfg:light_concrete_support', 'tfc:support')
.textureAll('tfg:block/support/light_concrete_support')
.horizontal(horizontal => {
horizontal.textureAll('tfg:block/support/light_concrete_support')
horizontal.soundType('stone')
horizontal.hardness(5)
horizontal.resistance(16)
horizontal.mapColor('color_light_gray')
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType('stone')
.hardness(5)
.resistance(16)
.mapColor('color_light_gray')
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create('tfg:dark_concrete_support', 'tfc:support')
.textureAll('tfg:block/support/dark_concrete_support')
.horizontal(horizontal => {
horizontal.textureAll('tfg:block/support/dark_concrete_support')
horizontal.soundType('stone')
horizontal.hardness(5)
horizontal.resistance(16)
horizontal.mapColor('color_gray')
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType('stone')
.hardness(5)
.resistance(16)
.mapColor('color_gray')
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create('tfg:reinforced_light_concrete_support', 'tfc:support')
.textureAll('tfg:block/support/reinforced_light_concrete_support')
.horizontal(horizontal => {
horizontal.textureAll('tfg:block/support/reinforced_light_concrete_support')
horizontal.soundType('stone')
horizontal.hardness(5)
horizontal.resistance(64)
horizontal.mapColor('color_light_gray')
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType('stone')
.hardness(5)
.resistance(64)
.mapColor('color_light_gray')
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create('tfg:reinforced_dark_concrete_support', 'tfc:support')
.textureAll('tfg:block/support/reinforced_dark_concrete_support')
.horizontal(horizontal => {
horizontal.textureAll('tfg:block/support/reinforced_dark_concrete_support')
horizontal.soundType('stone')
horizontal.hardness(5)
horizontal.resistance(64)
horizontal.mapColor('color_gray')
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType('stone')
.hardness(5)
.resistance(64)
.mapColor('color_gray')
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create('tfg:rebar_support', 'tfc:support')
.textureAll('tfg:block/support/rebar_support')
.horizontal(horizontal => {
horizontal.textureAll('tfg:block/support/rebar_support')
horizontal.soundType('chain')
horizontal.hardness(3)
horizontal.resistance(16)
horizontal.mapColor('color_orange')
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.tagBlock('minecraft:climbable')
horizontal.requiresTool(true)
horizontal.renderType('cutout')
horizontal.opaque(false)
})
.soundType('chain')
.hardness(3)
.resistance(16)
.mapColor('color_orange')
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('minecraft:climbable')
.requiresTool(true)
.renderType('cutout')
.opaque(false)
event.create('tfg:steel_support', 'tfc:support')
.textureAll('tfg:block/support/steel_support')
.horizontal(horizontal => {
horizontal.textureAll('tfg:block/support/steel_support')
horizontal.soundType('metal')
horizontal.hardness(5)
horizontal.resistance(64)
horizontal.mapColor('color_gray')
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType('metal')
.hardness(5)
.resistance(64)
.mapColor('color_gray')
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
const other_stone = ['pyroxenite', 'migmatite', 'travertine']
const stone_types = global.TFC_STONE_TYPES.concat(other_stone)
stone_types.forEach(stone => {
event.create(`tfg:${stone}_support`, 'tfc:support')
.textureAll(`tfg:block/support/${stone}_support`)
.horizontal(horizontal => {
horizontal.textureAll(`tfg:block/support/${stone}_support`)
horizontal.soundType('stone')
horizontal.hardness(5)
horizontal.resistance(8)
horizontal.mapColor('color_gray')
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType('stone')
.hardness(5)
.resistance(8)
.mapColor('color_gray')
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
})
}

View file

@ -1,22 +1,72 @@
global.AIRCRAFT_UPGRADES = [
"lv_aircraft_engine",
"hv_aircraft_engine",
"ev_aircraft_engine",
"lv_aircraft_engine",
"hv_aircraft_engine",
"ev_aircraft_engine",
"black_steel_plated_airplane_propeller",
"redblu_steel_plated_airplane_propeller",
"stainless_steel_plated_airplane_propeller",
"titanium_plated_airplane_propeller",
"black_steel_plated_airplane_propeller",
"redblu_steel_plated_airplane_propeller",
"stainless_steel_plated_airplane_propeller",
"titanium_plated_airplane_propeller",
"redblu_steel_landing_gear",
"aluminium_landing_gear",
"stainless_steel_landing_gear",
"titanium_landing_gear",
"redblu_steel_landing_gear",
"aluminium_landing_gear",
"stainless_steel_landing_gear",
"titanium_landing_gear",
"redblu_steel_hull_reinforcement",
"aluminium_hull_reinforcement",
"stainless_steel_hull_reinforcement",
"titanium_hull_reinforcement"
"redblu_steel_hull_reinforcement",
"aluminium_hull_reinforcement",
"stainless_steel_hull_reinforcement",
"titanium_hull_reinforcement"
]
global.EXTRATERRESTRIAL_RAW_ROCKS = [
'tfg:raw_anorthosite',
'tfg:raw_basanite',
'tfg:raw_syenite'
]
global.EXTRATERRESTRIAL_HARDENED_ROCKS = [
'tfg:hardened_anorthosite',
'tfg:hardened_syenite'
]
global.MOON_BIOMES = [
'tfg:moon/lunar_plains',
'tfg:moon/lunar_basalt_maria',
'tfg:moon/lunar_gabbro_uplift',
'tfg:moon/lunar_diorite_delta'
]
global.MARS_BIOMES = [
'tfg:mars/martian_plains',
'tfg:mars/martian_riverbed',
'tfg:mars/martian_mountains'
]
global.MOON_VEINS = [
'tfg:moon/vein/deep_magnetite',
'tfg:moon/vein/deep_molybdenum',
'tfg:moon/vein/deep_olivine',
'tfg:moon/vein/deep_plutonium',
'tfg:moon/vein/deep_sapphire',
'tfg:moon/vein/deep_scheelite',
'tfg:moon/vein/deep_sheldonite',
'tfg:moon/vein/normal_apatite',
'tfg:moon/vein/normal_bauxite',
'tfg:moon/vein/normal_beryllium',
'tfg:moon/vein/normal_certus_quartz',
'tfg:moon/vein/normal_desh',
'tfg:moon/vein/normal_diopside',
'tfg:moon/vein/normal_enstatite',
'tfg:moon/vein/normal_fayalite',
'tfg:moon/vein/normal_garnierite',
'tfg:moon/vein/normal_magnetite',
'tfg:moon/vein/normal_mica',
'tfg:moon/vein/normal_monazite',
'tfg:moon/vein/normal_olivine',
'tfg:moon/vein/normal_redstone',
'tfg:moon/vein/normal_saltpeter',
'tfg:moon/vein/normal_silver'
]
global.UNIVERSAL_CIRCUIT_TIERS = ["ulv", "lv", "mv", "hv", "ev", "iv", "luv", "zpm", "uv", "uhv"];

View file

@ -49,6 +49,18 @@ const registerTFGItems = (event) => {
// #region Stone bricks and dusts
event.create('tfg:brick/deepslate')
.translationKey('item.tfg.brick.deepslate')
event.create('tfg:brick/anorthosite')
.translationKey('item.tfg.brick.anorthosite')
event.create('tfg:brick/syenite')
.translationKey('item.tfg.brick.syenite')
event.create('tfg:dust/anorthosite_dust')
.translationKey('item.tfg.dust.anorthosite')
event.create('tfg:dust/syenite')
.translationKey('item.tfg.dust.syenite')
// #endregion
// #region Primitive rubber gloves