neuralgia/kubejs/startup_scripts/tfg/blocks.js
Pyritie 189f5aebce
Alpha Release: additions 0.9.0 (#880)
Signed-off-by: Pyritie <pyritie@gmail.com>
Signed-off-by: TomPlop <tomdidome@gmail.com>
Signed-off-by: Adora <adoradyne.58@gmail.com>
Signed-off-by: MetenBouldry <94766011+MetenBouldry@users.noreply.github.com>
Signed-off-by: CaitlynMC <135169224+CaitlynMC@users.noreply.github.com>
Signed-off-by: SverhRazum-Nah <leon.trol@mail.ru>
Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com>
Signed-off-by: Xikaro <55663835+Xikaro@users.noreply.github.com>
Co-authored-by: Xikaro <os.valerievich@ya.ru>
Co-authored-by: Nebby <78170922+Nebby1999@users.noreply.github.com>
Co-authored-by: Redeix <brayden.j.m.ford@gmail.com>
Co-authored-by: TomPlop <tomdidome@gmail.com>
Co-authored-by: aidie8 <aidenvanzuilen@gmail.com>
Co-authored-by: Xikaro <55663835+Xikaro@users.noreply.github.com>
Co-authored-by: Zleub <debray.arnaud@gmail.com>
Co-authored-by: Adora <adoradyne.58@gmail.com>
Co-authored-by: Curtis Merrill <curtis.r.merrill@gmail.com>
Co-authored-by: julia <97713533+juliakity@users.noreply.github.com>
Co-authored-by: GamerDadDave <gamerdaddave@gmail.com>
Co-authored-by: MetenBouldry <94766011+MetenBouldry@users.noreply.github.com>
Co-authored-by: CaitlynMC <135169224+CaitlynMC@users.noreply.github.com>
Co-authored-by: SverhRazum-Nah <leon.trol@mail.ru>
Co-authored-by: Redeix <59435925+Redeix@users.noreply.github.com>
Co-authored-by: Nebby1999 <nebby131999@gmail.com>
2025-04-18 14:49:56 +05:00

331 lines
9.6 KiB
JavaScript

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
}