LycheeEvents.customAction('place_aether_portal', (event) => {
event.action.applyFunc = (recipe, ctx, times) => {
let itemEntity = ctx.getParam('this_entity');
const { level, block } = itemEntity;
$PortalPlacer.attemptPortalLight(level, block.pos, $PortalIgnitionSource.ItemUseSource('debug_stick'));
let lightningBoltEntity = block.createEntity('lightning_bolt');
lightningBoltEntity.setVisualOnly(true);
lightningBoltEntity.moveTo(Vec3d.atCenterOf(block.pos));
lightningBoltEntity.spawn();
};
});
LycheeEvents.customCondition('validate_aether_portal', (event) => {
event.condition.testFunc = (recipe, ctx, times) => {
let itemEntity = ctx.getParam('this_entity');
const { level, block } = itemEntity;
const multiblocks = [
$PatchouliAPI.getMultiblock('kubejs:aether_portal_1'),
$PatchouliAPI.getMultiblock('kubejs:aether_portal_2'),
$PatchouliAPI.getMultiblock('kubejs:aether_portal_3'),
$PatchouliAPI.getMultiblock('kubejs:aether_portal_4'),
];
for (let multiblock of multiblocks) {
if (multiblock.validate(level, block.pos, 'none')) {
return times;
}
}
return 0;
};
});