JustPaste.it

Lychee Related Things

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;
    };
});