@ZenMethod public static void attuneItem( IIngredient itemStack ) { attune( itemStack, TunnelType.ITEM ); }
@ZenMethod public static void attuneRedstone( String modId ) { attune( modId, TunnelType.REDSTONE ); }
@ZenMethod public static void attuneIC2( String modId ) { attune( modId, TunnelType.IC2_POWER ); }
@ZenMethod public static void attuneLight( IIngredient itemStack ) { attune( itemStack, TunnelType.LIGHT ); }
@ZenMethod public static void attuneRedstone( IIngredient itemStack ) { attune( itemStack, TunnelType.REDSTONE ); }
@ZenMethod public static void attuneRF( String modId ) { attune( modId, TunnelType.FE_POWER ); }
@ZenMethod public static void attuneME( IIngredient itemStack ) { attune( itemStack, TunnelType.ME ); }
@ZenMethod public static void attuneFluid( IIngredient itemStack ) { attune( itemStack, TunnelType.FLUID ); }
@ZenMethod public static void attuneFluid( String modId ) { attune( modId, TunnelType.FLUID ); }
@ZenMethod public static void attuneIC2( IIngredient itemStack ) { attune( itemStack, TunnelType.IC2_POWER ); }
@ZenMethod public static void attuneRF( IIngredient itemStack ) { attune( itemStack, TunnelType.FE_POWER ); }
@ZenMethod public static void attuneME( String modId ) { attune( modId, TunnelType.ME ); }
@ZenMethod public static void attuneItem( String modId ) { attune( modId, TunnelType.ITEM ); }
@ZenMethod public static void attuneLight( String modId ) { attune( modId, TunnelType.LIGHT ); }
@ZenMethod public static void removeRecipe( IIngredient input ) { for( ItemStack inStack : CTModule.toStacks( input ).orElse( Collections.emptySet() ) ) { CTModule.MODIFICATIONS.add( new Remove( inStack ) ); } }
@ZenMethod public static void removeRecipe( IItemStack output ) { CTModule.MODIFICATIONS.add( new Remove( (ItemStack) output.getInternal() ) ); }
@ZenMethod public static void registerAmmo( IIngredient itemStack, double weight ) { IMatterCannonAmmoRegistry registry = AEApi.instance().registries().matterCannon(); CTModule.toStacks( itemStack ).ifPresent( c -> c.forEach( i -> registry.registerAmmo( i, weight ) ) ); } }
@ZenMethod public static void whitelistEntity( String entityClassName ) { Class<? extends TileEntity> entityClass = loadClass( entityClassName ); if( entityClass != null ) { AEApi.instance().registries().movable().whiteListTileEntity( entityClass ); } }
@ZenMethod public static void addRecipe( IItemStack output, IIngredient input, boolean inscribe, @stanhebben.zenscript.annotations.Optional IIngredient top, @stanhebben.zenscript.annotations.Optional IIngredient bottom ) { Optional<Collection<ItemStack>> inStacks = CTModule.toStacks( input ); if( !inStacks.isPresent() ) { return; } Collection<ItemStack> topList = CTModule.toStacks( top ).orElse( Collections.singleton( ItemStack.EMPTY ) ); Collection<ItemStack> bottomList = CTModule.toStacks( bottom ).orElse( Collections.singleton( ItemStack.EMPTY ) ); for( ItemStack topStack : topList ) { for( ItemStack bottomStack : bottomList ) { final IInscriberRecipeBuilder builder = AEApi.instance().registries().inscriber().builder(); builder.withProcessType( inscribe ? InscriberProcessType.INSCRIBE : InscriberProcessType.PRESS ) .withOutput( CTModule.toStack( output ) ) .withInputs( inStacks.get() ); if( !topStack.isEmpty() ) { builder.withTopOptional( topStack ); } if( !bottomStack.isEmpty() ) { builder.withBottomOptional( bottomStack ); } CTModule.MODIFICATIONS.add( new Add( builder.build() ) ); } } }
@ZenMethod public PBFRecipeBuilder duration(int duration) { this.duration = duration; return this; }