neuralgia/kubejs/startup_scripts/tfg/blocks.js
2025-09-28 00:12:32 +01:00

293 lines
8.6 KiB
JavaScript

"use strict";
const registerTFGBlocks = (event) => {
registerTFGNetherBlocks(event)
registerTFGSpaceBlocks(event)
registerTFGSupportBlocks(event)
registerTFGCrops(event)
event.create('tfg:dry_ice', 'tfg:particle_emitter')
.textureAll('tfg:block/dry_ice')
.soundType('bone_block')
.hardness(1)
.resistance(1)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfcambiental:cold_stuff')
.defaultTranslucent()
.mapColor('color_white')
.speedFactor(1.2)
.particleOffset(1, 1, 1)
.particleVelocity(0.05, 0, 0.05)
.particle('minecraft:campfire_cosy_smoke')
.particleCount(2)
.particleForced(false)
event.create('tfg:exhaust_vent_particle', 'tfg:particle_emitter')
.textureAll('tfg:block/titanium_concrete')
.soundType('metal')
.hardness(5)
.resistance(6)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('minecraft:mineable/wrench')
.mapColor('color_black')
.speedFactor(1.1)
.particleOffset(5, 1, 5)
.particleVelocity(0.0, 0.1, 0.0)
.particle('minecraft:campfire_signal_smoke')
.particleCount(50)
.particleForced(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('minecraft:mineable/pickaxe')
.tagBlock('minecraft:mineable/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('minecraft:mineable/pickaxe')
.tagBlock('minecraft:mineable/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('mineable/pickaxe')
.tagBlock('forge:mineable/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('minecraft:mineable/pickaxe')
.tagBlock('minecraft:mineable/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('minecraft:mineable/pickaxe')
.tagBlock('minecraft:mineable/wrench')
.mapColor('color_orange')
.defaultTranslucent()
event.create('tfg:casings/bioculture_rotor_primary', 'gtceu:active')
.translationKey('block.tfg.casings.bioculture_rotor_primary')
.model('tfg:block/casings/bioculture_rotor_primary')
.soundType('copper')
.hardness(5)
.resistance(6)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('minecraft:mineable/wrench')
.mapColor('color_light_gray')
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('minecraft:mineable/pickaxe')
.tagBlock('minecraft:mineable/wrench')
.mapColor('color_light_gray')
event.create('tfg:casings/machine_casing_ultraviolet', 'gtceu:active')
.translationKey('block.tfg.casings.machine_casing_ultraviolet')
.bloom('tfg:block/casings/machine_casing_ultraviolet')
.soundType('glass')
.hardness(5)
.resistance(6)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('minecraft:mineable/wrench')
.mapColor('color_light_gray')
//#endregion
event.create('tfg:titanium_concrete')
.translationKey('block.tfg.titanium_concrete')
.model('tfg:block/concrete/titanium_concrete')
.soundType('stone')
.mapColor('stone')
.tagBlock('minecraft:mineable/pickaxe')
event.create('tfg:polished_titanium_concrete')
.translationKey('block.tfg.polidhed_titanium_concrete')
.model('tfg:block/concrete/polished_titanium_concrete')
.soundType('stone')
.mapColor('stone')
.tagBlock('minecraft:mineable/pickaxe')
// #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 Layer blocks
event.create('tfg:ash_pile', 'tfg:layer_block')
.existingItem('tfc:powder/wood_ash')
.mapColor('color_light_gray')
event.create('tfg:pile/black_sand', 'tfg:layer_block')
.existingItem('tfc:sand/black')
event.create('tfg:pile/brown_sand', 'tfg:layer_block')
.existingItem('tfc:sand/brown')
event.create('tfg:pile/green_sand', 'tfg:layer_block')
.existingItem('tfc:sand/green')
event.create('tfg:pile/pink_sand', 'tfg:layer_block')
.existingItem('tfc:sand/pink')
event.create('tfg:pile/red_sand', 'tfg:layer_block')
.existingItem('tfc:sand/red')
event.create('tfg:pile/white_sand', 'tfg:layer_block')
.existingItem('tfc:sand/white')
event.create('tfg:pile/yellow_sand', 'tfg:layer_block')
.existingItem('tfc:sand/yellow')
event.create('tfg:pile/mars_sand', 'tfg:layer_block')
.existingItem('ad_astra:mars_sand')
event.create('tfg:pile/moon_sand', 'tfg:layer_block')
.existingItem('ad_astra:moon_sand')
event.create('tfg:pile/venus_sand', 'tfg:layer_block')
.existingItem('ad_astra:venus_sand')
// #endregion
// #region Reconstructed Stone
event.create(`tfg:rock/stone_wall`, 'wall')
.soundType('stone')
.textureAll('minecraft:block/stone')
.tagBoth('tfg:rock_wall')
.mapColor('stone')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
let SHAPES = ['stairs', 'wall']
SHAPES.forEach(shape => {
event.create(`tfg:rock/smooth_stone_${shape}`, shape)
.soundType('stone')
.textureAll('minecraft:block/smooth_stone')
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.mapColor('stone')
.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('stone')
.textureAll('minecraft:block/cracked_stone_bricks')
.tagBoth(`tfg:brick_${shape}s`.replace(/ss/g, 's'))
.mapColor('stone')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// #endregion Reconstructed Stone
}