// This File has been authored by AllTheMods Staff, or a Community contributor for use in AllTheMods - AllTheMods 10. // As all AllTheMods packs are licensed under All Rights Reserved, this file is not allowed to be used in any public packs not released by the AllTheMods Team, without explicit permission. const $BuiltInRegistries = Java.loadClass("net.minecraft.core.registries.BuiltInRegistries") StartupEvents.registry('block', allthemods => { allthemods.create('magical_soil').displayName('§bMagical Soil').grassSoundType().mapColor('grass').hardness(0.6); allthemods.create('air_essence_block').displayName('Air Essence Block').stoneSoundType().mapColor('stone').hardness(0.6).renderType('translucent').notSolid(); allthemods.create('earth_essence_block').displayName('Earth Essence Block').stoneSoundType().mapColor('stone').hardness(0.6).renderType('translucent').notSolid(); allthemods.create('fire_essence_block').displayName('Fire Essence Block').stoneSoundType().mapColor('stone').hardness(0.6).renderType('translucent').notSolid(); allthemods.create('water_essence_block').displayName('Water Essence Block').stoneSoundType().mapColor('stone').hardness(0.6).renderType('translucent').notSolid(); allthemods.create('blaze_powder_block').displayName('Blaze Powder Block').stoneSoundType().mapColor('stone').hardness(1); // allthemods.create('blaze_block').displayName('Blaze Block').stoneSoundType().mapColor('stone').hardness(1); }) StartupEvents.registry('item', allthemods => { allthemods.create('starlight_prediction').displayName('Generalized Starlight Prediction'); allthemods.create('silent_allthemodium_plate').displayName('Silent Allthemodium Plate').glow(true); allthemods.create('silent_vibranium_plate').displayName('Silent Vibranium Plate').glow(true); allthemods.create('silent_unobtainium_plate').displayName('Silent Unobtainium Plate').glow(true); allthemods.create('atm_star_shard_1').displayName('ATM Star Fragment') allthemods.create('atm_star_shard_2').displayName('ATM Star Fragment') allthemods.create('atm_star_shard_3').displayName('ATM Star Fragment') allthemods.create('atm_star_shard_4').displayName('ATM Star Fragment') allthemods.create('atm_star_shard_5').displayName('ATM Star Fragment') allthemods.create('modularium_plate').color(0xe64200).texture('alltheores:item/iron_plate') allthemods.create('inferium_enchanting_base').texture('minecraft:item/enchanted_book').color(0x55FF55) allthemods.create('prudentium_enchanting_base').texture('minecraft:item/enchanted_book').color(0x00AA00) allthemods.create('tertium_enchanting_base').texture('minecraft:item/enchanted_book').color(0xEB7114) allthemods.create('imperium_enchanting_base').texture('minecraft:item/enchanted_book').color(0x5555FF) allthemods.create('supremium_enchanting_base').texture('minecraft:item/enchanted_book').color(0xFF5555) allthemods.create('fire_eye').use((level, player, hand) => global.iceAndFirePearls(level, player, hand)).texture('kubejs:item/fire_eye') allthemods.create('fire_pearl').texture('kubejs:item/fire_pearl') allthemods.create('lightning_eye').use((level, player, hand) => global.iceAndFirePearls(level, player, hand)).texture('kubejs:item/lightning_eye') allthemods.create('lightning_pearl').texture('kubejs:item/lightning_pearl') allthemods.create('ice_eye').use((level, player, hand) => global.iceAndFirePearls(level, player, hand)).texture('kubejs:item/ice_eye') allthemods.create('ice_pearl').texture('kubejs:item/ice_pearl') }) let $Stopwatch = Java.loadClass("com.google.common.base.Stopwatch") let currentStopwatch = null global.iceAndFirePearls = (/** @type {$ServerLevel_}} */ level, /** @type {$Player_}} */ player, /** @type {$InteractionHand_}} */ hand) => { let mainItemStack = player.getItemInHand(hand) if (level.clientSide) return true // currentStopwatch = $Stopwatch.createStarted() let $DragonType = Java.loadClass("com.iafenvoy.iceandfire.data.DragonType") let $EntityDragonBase = Java.loadClass("com.iafenvoy.iceandfire.entity.EntityDragonBase") let $AABB = Java.loadClass("net.minecraft.world.phys.AABB") let $Mth = Java.loadClass("net.minecraft.util.Mth") let $EyeOfEnder = Java.loadClass("net.minecraft.world.entity.projectile.EyeOfEnder") let thisType = null let structure = null if (mainItemStack.idLocation.path == "fire_eye") { thisType = $DragonType.FIRE structure = ID.of("iceandfire:fire_dragon_roost", false) } if (mainItemStack.idLocation.path == "ice_eye") { thisType = $DragonType.ICE structure = ID.of("iceandfire:ice_dragon_roost", false) } if (mainItemStack.idLocation.path == "lightning_eye") { thisType = $DragonType.LIGHTNING structure = ID.of("iceandfire:lightning_dragon_roost", false) } let radiusEntity = 32 let radiusStructure = 16 let playerPos = player.block.pos let searchAABB = new $AABB(playerPos.x - (radiusEntity * 16), level.getMinBuildHeight(), playerPos.z - (radiusEntity * 16), playerPos.x + (radiusEntity * 16), level.getMaxBuildHeight(), playerPos.z + (radiusEntity * 16)) /** @type {$List_<$EntityDragonBase_>} */ let targets = level.getEntitiesOfClass($EntityDragonBase, searchAABB) /** @type {$EntityDragonBase_} */ let closest = null let currentMinDist = 0 targets.forEach(dragon => { if (dragon.dragonType == thisType && !dragon.isModelDead() && !dragon.isTame()) { let dist = dragon.distanceToEntity(player) if (currentMinDist == 0 || dist < currentMinDist ){ closest = dragon } } }) /** @type {$Pair_<$BlockPos_,$Holder_<$Structure_>} */ let structureResult = null if (closest == null) { let holderSet = Registry.of("minecraft:worldgen/structure").registry().getHolder(structure) /** @type {$ServerChunkCache_} */ let serverChunkCache = level.getChunkSource() structureResult = serverChunkCache.getGenerator().findNearestMapStructure(level, holderSet.get(), player.block.pos, radiusStructure, false) } if (closest != null || structureResult != null) { // player.startUsingItem(hand) // console.log("Dragon: " + closest) // console.log("Structure: " + structureResult) let headPos = closest != null ? BlockPos.containing(closest.getHeadPosition()) : structureResult.getFirst() let eyeOfEnder = new $EyeOfEnder(level, player.x, player.getY(0.5), player.z) eyeOfEnder.setItem(mainItemStack) eyeOfEnder.signalTo(headPos) level.addFreshEntity(eyeOfEnder) let f = $Mth.lerp(level.random.nextFloat(), 0.33, 0.5) level["playSound(net.minecraft.world.entity.Entity,net.minecraft.core.BlockPos,net.minecraft.sounds.SoundEvent,net.minecraft.sounds.SoundSource,float,float)"](null, player.block.pos, "minecraft:entity.ender_eye.launch", "neutral", 1, f) if (!player.isCreative()) { mainItemStack.consume(1, player); } player.swing(hand, true); // console.log(`IceAndFire Pearl event took: ${currentStopwatch.elapsed("milliseconds")} ms`) return true } else { player.statusMessage = "Dragon or Dragon Roost not found nearby..." // console.log(`IceAndFire Pearl event took: ${currentStopwatch.elapsed("milliseconds")} ms`) return false } } StartupEvents.registry('fluid', allthemods => { allthemods.create('liquid_souls', 'thin') .tint(0xc9eaff) .displayName('Liquid Souls') .noBlock() allthemods.create('unrefined_liquid_souls', 'thin') .tint(0xccebff) .displayName('Unrefined Liquid Souls') .noBlock() allthemods.create('liquid_aureal', 'thin') .tint(0x7abaff) .displayName('Liquid Aureal') .noBlock() }) StartupEvents.modifyCreativeTab('ironfurnaces:ironfurnaces_tab', allthemods => { allthemods.add('ironfurnaces:allthemodium_furnace') allthemods.add('ironfurnaces:vibranium_furnace') allthemods.add('ironfurnaces:unobtainium_furnace') allthemods.add('ironfurnaces:upgrade_allthemodium') allthemods.add('ironfurnaces:upgrade_vibranium') allthemods.add('ironfurnaces:upgrade_unobtainium') }) StartupEvents.postInit((allthemods) => { $BuiltInRegistries.BLOCK.addAlias("kubejs:blaze_block", "allthecompressed:blaze_rod_block") $BuiltInRegistries.ITEM.addAlias("kubejs:blaze_block", "allthecompressed:blaze_rod_block") const colors = [ 'white', 'light_gray', 'gray', 'black', 'brown', 'red', 'orange', 'yellow', 'lime', 'green', 'cyan', 'light_blue', 'blue', 'purple', 'magenta', 'pink' ] colors.forEach(color => { $BuiltInRegistries.BLOCK.addAlias(`antiblocksrechiseled:bright_${color}`, `luminax:${color}_block`) $BuiltInRegistries.ITEM.addAlias(`antiblocksrechiseled:bright_${color}`, `luminax:${color}_block`) $BuiltInRegistries.BLOCK.addAlias(`antiblocksrechiseled:wool_${color}`, `luminax:dim_${color}_block`) $BuiltInRegistries.ITEM.addAlias(`antiblocksrechiseled:wool_${color}`, `luminax:dim_${color}_block`) $BuiltInRegistries.BLOCK.addAlias(`antiblocksrechiseled:bright_${color}_border`, `luminax:${color}_block`) $BuiltInRegistries.ITEM.addAlias(`antiblocksrechiseled:bright_${color}_border`, `luminax:${color}_block`) $BuiltInRegistries.BLOCK.addAlias(`antiblocksrechiseled:wool_${color}_border`, `luminax:dim_${color}_block`) $BuiltInRegistries.ITEM.addAlias(`antiblocksrechiseled:wool_${color}_border`, `luminax:dim_${color}_block`) $BuiltInRegistries.BLOCK.addAlias(`antiblocksrechiseled:stair_${color}`, `luminax:${color}_stairs`) $BuiltInRegistries.ITEM.addAlias(`antiblocksrechiseled:stair_${color}`, `luminax:${color}_stairs`) $BuiltInRegistries.BLOCK.addAlias(`antiblocksrechiseled:stair_${color}_bright`, `luminax:${color}_stairs`) $BuiltInRegistries.ITEM.addAlias(`antiblocksrechiseled:stair_${color}_bright`, `luminax:${color}_stairs`) $BuiltInRegistries.BLOCK.addAlias(`antiblocksrechiseled:stair_${color}_wool`, `luminax:dim_${color}_stairs`) $BuiltInRegistries.ITEM.addAlias(`antiblocksrechiseled:stair_${color}_wool`, `luminax:dim_${color}_stairs`) $BuiltInRegistries.BLOCK.addAlias(`antiblocksrechiseled:slab_${color}`, `luminax:${color}_slab`) $BuiltInRegistries.ITEM.addAlias(`antiblocksrechiseled:slab_${color}`, `luminax:${color}_slab`) $BuiltInRegistries.BLOCK.addAlias(`antiblocksrechiseled:slab_${color}_bright`, `luminax:${color}_slab`) $BuiltInRegistries.ITEM.addAlias(`antiblocksrechiseled:slab_${color}_bright`, `luminax:${color}_slab`) $BuiltInRegistries.BLOCK.addAlias(`antiblocksrechiseled:slab_${color}_wool`, `luminax:dim_${color}_slab`) $BuiltInRegistries.ITEM.addAlias(`antiblocksrechiseled:slab_${color}_wool`, `luminax:dim_${color}_slab`) $BuiltInRegistries.BLOCK.addAlias(`antiblocksrechiseled:button_bright_${color}`, `luminax:${color}_button`) $BuiltInRegistries.ITEM.addAlias(`antiblocksrechiseled:button_bright_${color}`, `luminax:${color}_button`) $BuiltInRegistries.BLOCK.addAlias(`antiblocksrechiseled:button_wool_${color}`, `luminax:dim_${color}_button`) $BuiltInRegistries.ITEM.addAlias(`antiblocksrechiseled:button_wool_${color}`, `luminax:dim_${color}_button`) $BuiltInRegistries.BLOCK.addAlias(`antiblocksrechiseled:pressure_plate_bright_${color}`, `luminax:${color}_pressure_plate`) $BuiltInRegistries.ITEM.addAlias(`antiblocksrechiseled:pressure_plate_bright_${color}`, `luminax:${color}_pressure_plate`) $BuiltInRegistries.BLOCK.addAlias(`antiblocksrechiseled:pressure_plate_wool_${color}`, `luminax:dim_${color}_pressure_plate`) $BuiltInRegistries.ITEM.addAlias(`antiblocksrechiseled:pressure_plate_wool_${color}`, `luminax:dim_${color}_pressure_plate`) }) }) // This File has been authored by AllTheMods Staff, or a Community contributor for use in AllTheMods - AllTheMods 10. // As all AllTheMods packs are licensed under All Rights Reserved, this file is not allowed to be used in any public packs not released by the AllTheMods Team, without explicit permission.