详细使用方法:
https://shimo.im/docs/2wAlXL71R5SwWBAP
简单使用方法:
下载Artifex把文件放到scripts即可复制代码
文件版本:http://cc.csor.cn:1150/d/%E5%BC% ... 4%E6%BA%90/Test.kts
https://shimo.im/docs/2wAlXL71R5SwWBAP
简单使用方法:
下载Artifex把文件放到scripts即可
- @file:Import("Slimefun:io.github.thebusybiscuit.slimefun4")
- @file:Import("Slimefun:me.mrCookieSlime")
- @file:Import("RaySlimefunAddon:ray.mintcat.rayslimefunaddon")
- object API {
- val mainGroup = {
- val categoryId = NamespacedKey("testmain", "test_main")
- val categoryItem = CustomItemStack(Material.APPLE, "&f测试脚本")
- NestedItemGroup(categoryId, categoryItem)
- }.invoke()
- val itemGroup = {
- val categoryId = NamespacedKey("testmain", "test_block")
- val categoryItem = CustomItemStack(Material.GLASS, "&e物品")
- SubItemGroup(categoryId, mainGroup, categoryItem)
- }.invoke()
- }
- class TestGoldPan constructor(
- itemGroup: ItemGroup,
- item: SlimefunItemStack,
- recipeType: RecipeType,
- recipe: Array<ItemStack?>
- ) : AContainer(itemGroup, item, recipeType, recipe), RecipeDisplayItem {
- private val goldPan = SlimefunItems.GOLD_PAN.getItem(GoldPan::class.java)
- private val netherGoldPan = SlimefunItems.NETHER_GOLD_PAN.getItem(GoldPan::class.java)
- private val gravel = ItemStack(Material.GRAVEL)
- private val soulSand = ItemStack(Material.SOUL_SAND)
- override fun getMachineIdentifier(): String {
- return "TEST_GOLD_PAN"
- }
- override fun getDisplayRecipes(): List<ItemStack> {
- val recipes: MutableList<ItemStack> = java.util.ArrayList()
- recipes.addAll(goldPan!!.displayRecipes)
- recipes.addAll(netherGoldPan!!.displayRecipes)
- return recipes
- }
- override fun getProgressBar(): ItemStack {
- return ItemStack(Material.DIAMOND_SHOVEL)
- }
- override fun findNextRecipe(menu: BlockMenu): MachineRecipe? {
- if (!hasFreeSlot(menu)) {
- return null
- }
- for (slot in inputSlots) {
- val item = menu.getItemInSlot(slot)
- if (SlimefunUtils.isItemSimilar(item, gravel, true, false)) {
- val output = goldPan!!.randomOutput
- val recipe = MachineRecipe(3 / speed, arrayOf(gravel), arrayOf(output))
- if (output.type != Material.AIR && menu.fits(output, *outputSlots)) {
- menu.consumeItem(slot)
- return recipe
- }
- } else if (SlimefunUtils.isItemSimilar(item, soulSand, true, false)) {
- val output = netherGoldPan!!.randomOutput
- val recipe = MachineRecipe(4 / speed, arrayOf(soulSand), arrayOf(output))
- if (output.type != Material.AIR && menu.fits(output, *outputSlots)) {
- menu.consumeItem(slot)
- return recipe
- }
- }
- }
- return null
- }
- private fun hasFreeSlot(menu: BlockMenu): Boolean {
- for (slot in outputSlots) {
- if (menu.getItemInSlot(slot) == null) {
- return true
- }
- }
- return false
- }
- }
- object TestGoldPanAPI {
- fun register() {
- AddonAPI.register(
- TestGoldPan(
- API.itemGroup,
- SlimefunItemStack("TEST_GOLD_PAN", Material.STONE, "测试电动淘金盘"),
- RecipeType.ENHANCED_CRAFTING_TABLE,
- arrayOf(
- null, SlimefunItems.GOLD_PAN, null,
- ItemStack(Material.FLINT), SlimefunItems.ELECTRIC_MOTOR, ItemStack(Material.FLINT),
- SlimefunItems.ALUMINUM_INGOT, SlimefunItems.ALUMINUM_INGOT, SlimefunItems.ALUMINUM_INGOT
- )
- ).apply {
- capacity = 128
- setProcessingSpeed(1)
- setEnergyProduction(10)
- }
- )
- }
- }
- submit(delay = 20) {
- TestGoldPanAPI.register()
- }
文件版本:http://cc.csor.cn:1150/d/%E5%BC% ... 4%E6%BA%90/Test.kts