diff --git a/config/betterquesting/DefaultQuests/Quests/11/1032295143.json b/config/betterquesting/DefaultQuests/Quests/11/1032295143.json index 45ae548f..80fc6f63 100644 --- a/config/betterquesting/DefaultQuests/Quests/11/1032295143.json +++ b/config/betterquesting/DefaultQuests/Quests/11/1032295143.json @@ -18,7 +18,7 @@ "Lore:9": { "0:8": "§d§o极・超限附魔§r" }, - "Name:8": "§6§oThe Lightbringer§r" + "Name:8": "§6§o裂光者§r" }, "ench:9": { "0:10": { @@ -28,7 +28,7 @@ } } }, - "name:8": "Lightbringer" + "name:8": "裂光者" } }, "questID:3": 1032295143, @@ -44,7 +44,7 @@ "Lore:9": { "0:8": "§d§o极・超限附魔§r" }, - "Name:8": "§6§oThe Lightbringer§r" + "Name:8": "§6§o裂光者§r" }, "ench:9": { "0:10": { diff --git a/scripts/AOAGating.zs b/scripts/AOAGating.zs index 12593acf..80ff9f09 100644 --- a/scripts/AOAGating.zs +++ b/scripts/AOAGating.zs @@ -127,3 +127,26 @@ recipes.addShaped(, [[, , ], [, , ], [null, , null]]); + + + +recipes.addShaped(, +[[, , ], +[, , ], +[, , ]]); + +recipes.addShaped(, +[[, , ], +[, , ], +[, , ]]); + +recipes.addShaped(, +[[, , ], +[, , ], +[, , ]]); + + +recipes.addShaped(, +[[, , ], +[, , ], +[, , ]]); \ No newline at end of file diff --git a/scripts/Callstones.zs b/scripts/Callstones.zs index 077f17a3..dc727e0a 100644 --- a/scripts/Callstones.zs +++ b/scripts/Callstones.zs @@ -5631,3 +5631,156 @@ tearofarcanacallstone.itemRightClick = function(stack, world, player, hand) { }; tearofarcanacallstone.register(); + +var alchemicalsparkcallstonesingle = VanillaFactory.createItem("alchemical_spark_callstone_single"); +alchemicalsparkcallstonesingle.maxStackSize = 1; +alchemicalsparkcallstonesingle.itemRightClick = function(stack, world, player, hand) { + if(world.remote) { + return "FAIL"; + } + + Commands.call("pillar-spawn alchemicalore_callstone_single", player, world, false, true); + + + stack.shrink(1); + return "PASS"; + +}; +alchemicalsparkcallstonesingle.register(); + + +var alchemicalsparkcallstonecompressed = VanillaFactory.createItem("alchemical_spark_callstone_compressed"); +alchemicalsparkcallstonecompressed.maxStackSize = 1; +alchemicalsparkcallstonecompressed.itemRightClick = function(stack, world, player, hand) { + if(world.remote) { + return "FAIL"; + } + + Commands.call("pillar-spawn alchemicalore_callstone_compressed", player, world, false, true); + + + stack.shrink(1); + return "PASS"; + +}; +alchemicalsparkcallstonecompressed.register(); + + +var alchemicalsparkcallstonedouble = VanillaFactory.createItem("alchemical_spark_callstone_double"); +alchemicalsparkcallstonedouble.maxStackSize = 1; +alchemicalsparkcallstonedouble.itemRightClick = function(stack, world, player, hand) { + if(world.remote) { + return "FAIL"; + } + + Commands.call("pillar-spawn alchemicalore_callstone_double", player, world, false, true); + + + stack.shrink(1); + return "PASS"; + +}; +alchemicalsparkcallstonedouble.register(); + + +var alchemicalsparkcallstonetriple = VanillaFactory.createItem("alchemical_spark_callstone_triple"); +alchemicalsparkcallstonetriple.maxStackSize = 1; +alchemicalsparkcallstonetriple.itemRightClick = function(stack, world, player, hand) { + if(world.remote) { + return "FAIL"; + } + + Commands.call("pillar-spawn alchemicalore_callstone_triple", player, world, false, true); + + + stack.shrink(1); + return "PASS"; + +}; +alchemicalsparkcallstonetriple.register(); + +var alchemicalsparkcallstonequadruple = VanillaFactory.createItem("alchemical_spark_callstone_quadruple"); +alchemicalsparkcallstonequadruple.maxStackSize = 1; +alchemicalsparkcallstonequadruple.itemRightClick = function(stack, world, player, hand) { + if(world.remote) { + return "FAIL"; + } + + Commands.call("pillar-spawn alchemicalore_callstone_quadruple", player, world, false, true); + + + stack.shrink(1); + return "PASS"; + +}; +alchemicalsparkcallstonequadruple.register(); + + +var alchemicalsparkcallstonequintuple = VanillaFactory.createItem("alchemical_spark_callstone_quintuple"); +alchemicalsparkcallstonequintuple.maxStackSize = 1; +alchemicalsparkcallstonequintuple.itemRightClick = function(stack, world, player, hand) { + if(world.remote) { + return "FAIL"; + } + + Commands.call("pillar-spawn alchemicalore_callstone_quintuple", player, world, false, true); + + + stack.shrink(1); + return "PASS"; + +}; +alchemicalsparkcallstonequintuple.register(); + + +var alchemicalsparkcallstonesextuple = VanillaFactory.createItem("alchemical_spark_callstone_sextuple"); +alchemicalsparkcallstonesextuple.maxStackSize = 1; +alchemicalsparkcallstonesextuple.itemRightClick = function(stack, world, player, hand) { + if(world.remote) { + return "FAIL"; + } + + Commands.call("pillar-spawn alchemicalore_callstone_sextuple", player, world, false, true); + + + stack.shrink(1); + return "PASS"; + +}; +alchemicalsparkcallstonesextuple.register(); + + + +var alchemicalsparkcallstoneseptuple = VanillaFactory.createItem("alchemical_spark_callstone_septuple"); +alchemicalsparkcallstoneseptuple.maxStackSize = 1; +alchemicalsparkcallstoneseptuple.itemRightClick = function(stack, world, player, hand) { + if(world.remote) { + return "FAIL"; + } + + Commands.call("pillar-spawn alchemicalore_callstone_septuple", player, world, false, true); + + + stack.shrink(1); + return "PASS"; + +}; +alchemicalsparkcallstoneseptuple.register(); + + +var alchemicalsparkcallstoneoctuple = VanillaFactory.createItem("alchemical_spark_callstone_octuple"); +alchemicalsparkcallstoneoctuple.maxStackSize = 1; +alchemicalsparkcallstoneoctuple.itemRightClick = function(stack, world, player, hand) { + if(world.remote) { + return "FAIL"; + } + + Commands.call("pillar-spawn alchemicalore_callstone_octuple", player, world, false, true); + + + stack.shrink(1); + return "PASS"; + +}; +alchemicalsparkcallstoneoctuple.register(); + diff --git a/scripts/CustomBlocks.zs b/scripts/CustomBlocks.zs index 722ee1b6..0f071aed 100644 --- a/scripts/CustomBlocks.zs +++ b/scripts/CustomBlocks.zs @@ -3000,6 +3000,13 @@ septuplecompressedaeternalisfuel.setToolClass("pickaxe"); septuplecompressedaeternalisfuel.setToolLevel(3); septuplecompressedaeternalisfuel.register(); +var octuplecompressedaeternalisfuel = VanillaFactory.createBlock("octuple_compressed_aeternalis_fuel", ); +octuplecompressedaeternalisfuel.setBlockHardness(1.0); +octuplecompressedaeternalisfuel.setBlockResistance(2.5); +octuplecompressedaeternalisfuel.setToolClass("pickaxe"); +octuplecompressedaeternalisfuel.setToolLevel(3); +octuplecompressedaeternalisfuel.register(); + var catasterismiore = VanillaFactory.createBlock("catasterismetal_ore", ); catasterismiore.setBlockHardness(1.0); catasterismiore.setBlockResistance(2.5); diff --git a/scripts/CustomClickerPebbleWither.zs b/scripts/CustomClickerPebbleWither.zs new file mode 100644 index 00000000..31cddd0a --- /dev/null +++ b/scripts/CustomClickerPebbleWither.zs @@ -0,0 +1,65 @@ +#modloaded iceandfire + +import crafttweaker.damage.IDamageSource; +import crafttweaker.entity.IEntityLivingBase; +import crafttweaker.event.PlayerInteractEntityEvent; + + +import mods.contenttweaker.VanillaFactory; +import mods.contenttweaker.Item; +import mods.contenttweaker.IItemRightClick; +import mods.contenttweaker.Commands; +import mods.contenttweaker.ItemFood; +import mods.contenttweaker.IItemFoodEaten; +import mods.contenttweaker.MutableItemStack; +import mods.contenttweaker.Hand; +import mods.contenttweaker.World; +import mods.contenttweaker.IItemUpdate; +import mods.contenttweaker.Player; +import crafttweaker.player.IPlayer; +import crafttweaker.block.IBlock; +import crafttweaker.data.IData; +import crafttweaker.entity.IEntityEquipmentSlot; + + + +events.onPlayerInteractEntity(function(event as PlayerInteractEntityEvent) { + if (event.world.isRemote()) { + return; + } + val heldItem = event.item; + // [edit item name in the bracket handler] + if (!isNull(heldItem) && heldItem.definition.id.matches(.definition.id)) { + if (!event.target instanceof IEntityLivingBase) { + return; + } + val target as IEntityLivingBase = event.target; + if ((target.definition.id != "minecraft:wither_skeleton") || !target.isAlive()) { + return; + } + // [edit damage here] + val DAMAGE = 2000000000.0f; + // [can remove this var if reusuable] + val oldHealth = target.health; + // Handle kill as if by player + if (target.health <= DAMAGE) { + target.onDeath(IDamageSource.createPlayerDamage(event.player)); + // Allows for proper death + target.health = 0; + + } else { + target.attackEntityFrom(, DAMAGE); + + } + // [remove this clause if reusuable] + if (target.health < oldHealth) { + // [add anything here to handle on each successful use] + Commands.call("summon minecraft:wither_skeleton ~ ~1 ~ {PersistenceRequired:1,HandItems:[{},{Count:1,id:\"contenttweaker:medallion_of_undead_repellence\"}],HandDropChances:[0.0f,1.0f],ActiveEffects:[{Id:14,Amplifier:0,Duration:999999,ShowParticles:0b},{Id:24,Amplifier:0,Duration:999999,ShowParticles:0b}],Attributes:[{Name:generic.maxHealth, Base:1000.0},{Name:generic.attackDamage, Base:30.0}],Health:1000f,CustomName:\"被驱逐的凋灵之魂\"}", event.player, event.world, true, true); + heldItem.mutable().shrink(1); + } + } +}); + + + + diff --git a/scripts/CustomItems2.zs b/scripts/CustomItems2.zs index 2c5644ad..8f790410 100644 --- a/scripts/CustomItems2.zs +++ b/scripts/CustomItems2.zs @@ -3786,6 +3786,16 @@ palemetaldust.maxStackSize = 64; palemetaldust.beaconPayment = false; palemetaldust.register(); +var medallionofundeathrepellence = VanillaFactory.createItem("medallion_of_undead_repellence"); +medallionofundeathrepellence.maxStackSize = 64; +medallionofundeathrepellence.beaconPayment = false; +medallionofundeathrepellence.register(); + +var fleshoftheorb = VanillaFactory.createItem("flesh_of_the_orb"); +fleshoftheorb.maxStackSize = 64; +fleshoftheorb.beaconPayment = false; +fleshoftheorb.register(); + diff --git a/scripts/CustomItemsAOL.zs b/scripts/CustomItemsAOL.zs index 64802236..dd27a322 100644 --- a/scripts/CustomItemsAOL.zs +++ b/scripts/CustomItemsAOL.zs @@ -520,3 +520,240 @@ septuplecompressedalchemicalgilding.register(); + + + +var alchemicalrefraction = VanillaFactory.createItem("alchemical_refraction"); +alchemicalrefraction.maxStackSize = 64; +alchemicalrefraction.beaconPayment = false; +alchemicalrefraction.register(); + +var compressedalchemicalrefraction = VanillaFactory.createItem("compressed_alchemical_refraction"); +compressedalchemicalrefraction.maxStackSize = 64; +compressedalchemicalrefraction.beaconPayment = false; +compressedalchemicalrefraction.register(); + +var doublecompressedalchemicalrefraction = VanillaFactory.createItem("double_compressed_alchemical_refraction"); +doublecompressedalchemicalrefraction.maxStackSize = 64; +doublecompressedalchemicalrefraction.beaconPayment = false; +doublecompressedalchemicalrefraction.register(); + +var triplecompressedalchemicalrefraction = VanillaFactory.createItem("triple_compressed_alchemical_refraction"); +triplecompressedalchemicalrefraction.maxStackSize = 64; +triplecompressedalchemicalrefraction.beaconPayment = false; +triplecompressedalchemicalrefraction.register(); + +var quadruplecompressedalchemicalrefraction = VanillaFactory.createItem("quadruple_compressed_alchemical_refraction"); +quadruplecompressedalchemicalrefraction.maxStackSize = 64; +quadruplecompressedalchemicalrefraction.beaconPayment = false; +quadruplecompressedalchemicalrefraction.register(); + +var quintuplecompressedalchemicalrefraction = VanillaFactory.createItem("quintuple_compressed_alchemical_refraction"); +quintuplecompressedalchemicalrefraction.maxStackSize = 64; +quintuplecompressedalchemicalrefraction.beaconPayment = false; +quintuplecompressedalchemicalrefraction.register(); + +var sextuplecompressedalchemicalrefraction = VanillaFactory.createItem("sextuple_compressed_alchemical_refraction"); +sextuplecompressedalchemicalrefraction.maxStackSize = 64; +sextuplecompressedalchemicalrefraction.beaconPayment = false; +sextuplecompressedalchemicalrefraction.register(); + +var septuplecompressedalchemicalrefraction = VanillaFactory.createItem("septuple_compressed_alchemical_refraction"); +septuplecompressedalchemicalrefraction.maxStackSize = 64; +septuplecompressedalchemicalrefraction.beaconPayment = false; +septuplecompressedalchemicalrefraction.register(); + + + + + + + +var alchemicalparticulate = VanillaFactory.createItem("alchemical_particulate"); +alchemicalparticulate.maxStackSize = 64; +alchemicalparticulate.beaconPayment = false; +alchemicalparticulate.register(); + +var compressedalchemicalparticulate = VanillaFactory.createItem("compressed_alchemical_particulate"); +compressedalchemicalparticulate.maxStackSize = 64; +compressedalchemicalparticulate.beaconPayment = false; +compressedalchemicalparticulate.register(); + +var doublecompressedalchemicalparticulate = VanillaFactory.createItem("double_compressed_alchemical_particulate"); +doublecompressedalchemicalparticulate.maxStackSize = 64; +doublecompressedalchemicalparticulate.beaconPayment = false; +doublecompressedalchemicalparticulate.register(); + +var triplecompressedalchemicalparticulate = VanillaFactory.createItem("triple_compressed_alchemical_particulate"); +triplecompressedalchemicalparticulate.maxStackSize = 64; +triplecompressedalchemicalparticulate.beaconPayment = false; +triplecompressedalchemicalparticulate.register(); + +var quadruplecompressedalchemicalparticulate = VanillaFactory.createItem("quadruple_compressed_alchemical_particulate"); +quadruplecompressedalchemicalparticulate.maxStackSize = 64; +quadruplecompressedalchemicalparticulate.beaconPayment = false; +quadruplecompressedalchemicalparticulate.register(); + +var quintuplecompressedalchemicalparticulate = VanillaFactory.createItem("quintuple_compressed_alchemical_particulate"); +quintuplecompressedalchemicalparticulate.maxStackSize = 64; +quintuplecompressedalchemicalparticulate.beaconPayment = false; +quintuplecompressedalchemicalparticulate.register(); + +var sextuplecompressedalchemicalparticulate = VanillaFactory.createItem("sextuple_compressed_alchemical_particulate"); +sextuplecompressedalchemicalparticulate.maxStackSize = 64; +sextuplecompressedalchemicalparticulate.beaconPayment = false; +sextuplecompressedalchemicalparticulate.register(); + +var septuplecompressedalchemicalparticulate = VanillaFactory.createItem("septuple_compressed_alchemical_particulate"); +septuplecompressedalchemicalparticulate.maxStackSize = 64; +septuplecompressedalchemicalparticulate.beaconPayment = false; +septuplecompressedalchemicalparticulate.register(); + + + + + + +var alchemicalsand = VanillaFactory.createItem("alchemical_sand"); +alchemicalsand.maxStackSize = 64; +alchemicalsand.beaconPayment = false; +alchemicalsand.register(); + +var compressedalchemicalsand = VanillaFactory.createItem("compressed_alchemical_sand"); +compressedalchemicalsand.maxStackSize = 64; +compressedalchemicalsand.beaconPayment = false; +compressedalchemicalsand.register(); + +var doublecompressedalchemicalsand = VanillaFactory.createItem("double_compressed_alchemical_sand"); +doublecompressedalchemicalsand.maxStackSize = 64; +doublecompressedalchemicalsand.beaconPayment = false; +doublecompressedalchemicalsand.register(); + +var triplecompressedalchemicalsand = VanillaFactory.createItem("triple_compressed_alchemical_sand"); +triplecompressedalchemicalsand.maxStackSize = 64; +triplecompressedalchemicalsand.beaconPayment = false; +triplecompressedalchemicalsand.register(); + +var quadruplecompressedalchemicalsand = VanillaFactory.createItem("quadruple_compressed_alchemical_sand"); +quadruplecompressedalchemicalsand.maxStackSize = 64; +quadruplecompressedalchemicalsand.beaconPayment = false; +quadruplecompressedalchemicalsand.register(); + +var quintuplecompressedalchemicalsand = VanillaFactory.createItem("quintuple_compressed_alchemical_sand"); +quintuplecompressedalchemicalsand.maxStackSize = 64; +quintuplecompressedalchemicalsand.beaconPayment = false; +quintuplecompressedalchemicalsand.register(); + +var sextuplecompressedalchemicalsand = VanillaFactory.createItem("sextuple_compressed_alchemical_sand"); +sextuplecompressedalchemicalsand.maxStackSize = 64; +sextuplecompressedalchemicalsand.beaconPayment = false; +sextuplecompressedalchemicalsand.register(); + +var septuplecompressedalchemicalsand = VanillaFactory.createItem("septuple_compressed_alchemical_sand"); +septuplecompressedalchemicalsand.maxStackSize = 64; +septuplecompressedalchemicalsand.beaconPayment = false; +septuplecompressedalchemicalsand.register(); + +var octuplecompressedalchemicalsand = VanillaFactory.createItem("octuple_compressed_alchemical_sand"); +octuplecompressedalchemicalsand.maxStackSize = 64; +octuplecompressedalchemicalsand.beaconPayment = false; +octuplecompressedalchemicalsand.register(); + + + + + + + + +var alchemicalspark = VanillaFactory.createItem("alchemical_spark"); +alchemicalspark.maxStackSize = 64; +alchemicalspark.beaconPayment = false; +alchemicalspark.register(); + +var compressedalchemicalspark = VanillaFactory.createItem("compressed_alchemical_spark"); +compressedalchemicalspark.maxStackSize = 64; +compressedalchemicalspark.beaconPayment = false; +compressedalchemicalspark.register(); + +var doublecompressedalchemicalspark = VanillaFactory.createItem("double_compressed_alchemical_spark"); +doublecompressedalchemicalspark.maxStackSize = 64; +doublecompressedalchemicalspark.beaconPayment = false; +doublecompressedalchemicalspark.register(); + +var triplecompressedalchemicalspark = VanillaFactory.createItem("triple_compressed_alchemical_spark"); +triplecompressedalchemicalspark.maxStackSize = 64; +triplecompressedalchemicalspark.beaconPayment = false; +triplecompressedalchemicalspark.register(); + +var quadruplecompressedalchemicalspark = VanillaFactory.createItem("quadruple_compressed_alchemical_spark"); +quadruplecompressedalchemicalspark.maxStackSize = 64; +quadruplecompressedalchemicalspark.beaconPayment = false; +quadruplecompressedalchemicalspark.register(); + +var quintuplecompressedalchemicalspark = VanillaFactory.createItem("quintuple_compressed_alchemical_spark"); +quintuplecompressedalchemicalspark.maxStackSize = 64; +quintuplecompressedalchemicalspark.beaconPayment = false; +quintuplecompressedalchemicalspark.register(); + +var sextuplecompressedalchemicalspark = VanillaFactory.createItem("sextuple_compressed_alchemical_spark"); +sextuplecompressedalchemicalspark.maxStackSize = 64; +sextuplecompressedalchemicalspark.beaconPayment = false; +sextuplecompressedalchemicalspark.register(); + +var septuplecompressedalchemicalspark = VanillaFactory.createItem("septuple_compressed_alchemical_spark"); +septuplecompressedalchemicalspark.maxStackSize = 64; +septuplecompressedalchemicalspark.beaconPayment = false; +septuplecompressedalchemicalspark.register(); + +var octuplecompressedalchemicalspark = VanillaFactory.createItem("octuple_compressed_alchemical_spark"); +octuplecompressedalchemicalspark.maxStackSize = 64; +octuplecompressedalchemicalspark.beaconPayment = false; +octuplecompressedalchemicalspark.register(); + + + +var alchemicalclathrate = VanillaFactory.createItem("alchemical_clathrate"); +alchemicalclathrate.maxStackSize = 64; +alchemicalclathrate.beaconPayment = false; +alchemicalclathrate.register(); + +var compressedalchemicalclathrate = VanillaFactory.createItem("compressed_alchemical_clathrate"); +compressedalchemicalclathrate.maxStackSize = 64; +compressedalchemicalclathrate.beaconPayment = false; +compressedalchemicalclathrate.register(); + +var doublecompressedalchemicalclathrate = VanillaFactory.createItem("double_compressed_alchemical_clathrate"); +doublecompressedalchemicalclathrate.maxStackSize = 64; +doublecompressedalchemicalclathrate.beaconPayment = false; +doublecompressedalchemicalclathrate.register(); + +var triplecompressedalchemicalclathrate = VanillaFactory.createItem("triple_compressed_alchemical_clathrate"); +triplecompressedalchemicalclathrate.maxStackSize = 64; +triplecompressedalchemicalclathrate.beaconPayment = false; +triplecompressedalchemicalclathrate.register(); + +var quadruplecompressedalchemicalclathrate = VanillaFactory.createItem("quadruple_compressed_alchemical_clathrate"); +quadruplecompressedalchemicalclathrate.maxStackSize = 64; +quadruplecompressedalchemicalclathrate.beaconPayment = false; +quadruplecompressedalchemicalclathrate.register(); + +var quintuplecompressedalchemicalclathrate = VanillaFactory.createItem("quintuple_compressed_alchemical_clathrate"); +quintuplecompressedalchemicalclathrate.maxStackSize = 64; +quintuplecompressedalchemicalclathrate.beaconPayment = false; +quintuplecompressedalchemicalclathrate.register(); + +var sextuplecompressedalchemicalclathrate = VanillaFactory.createItem("sextuple_compressed_alchemical_clathrate"); +sextuplecompressedalchemicalclathrate.maxStackSize = 64; +sextuplecompressedalchemicalclathrate.beaconPayment = false; +sextuplecompressedalchemicalclathrate.register(); + +var septuplecompressedalchemicalclathrate = VanillaFactory.createItem("septuple_compressed_alchemical_clathrate"); +septuplecompressedalchemicalclathrate.maxStackSize = 64; +septuplecompressedalchemicalclathrate.beaconPayment = false; +septuplecompressedalchemicalclathrate.register(); + +var octuplecompressedalchemicalclathrate = VanillaFactory.createItem("octuple_compressed_alchemical_clathrate"); +octuplecompressedalchemicalclathrate.maxStackSize = 64; +octuplecompressedalchemicalclathrate.beaconPayment = false; +octuplecompressedalchemicalclathrate.register(); \ No newline at end of file diff --git a/scripts/CustomLoot.zs b/scripts/CustomLoot.zs index 653e2e91..a4fdd356 100644 --- a/scripts/CustomLoot.zs +++ b/scripts/CustomLoot.zs @@ -60,6 +60,9 @@ nethengeicroll.addItemEntry(*3, 5); nethengeicroll.addItemEntry(, 5); val nethengeicbone = nethengeicwither.addPool("nethengeicbone", 1, 1, 0, 0); nethengeicbone.addItemEntry(, 5); +val nethengeicwitherrares = nethengeicwither.getPool("rares"); +nethengeicwitherrares.removeEntry("aoa3:nethengeic_slugger"); +nethengeicwitherrares.removeEntry("aoa3:withers_wrath"); val nethegeicbeast = LootTweaker.getTable("aoa3:entities/mobs/nether/nethengeic_beast"); @@ -229,6 +232,12 @@ clunkheadbrick.addItemEntry(, 5); val clunkheadrares = clunkhead.getPool("rares"); clunkheadrares.removeEntry("aoa3:runic_sword"); +val enderdragonaoa = LootTweaker.getTable("aoa3:entities/bosses/ender_dragon"); +val enderdragonaoaextra = enderdragonaoa.getPool("aoa_loot"); +enderdragonaoaextra.removeEntry("aoa3:flaming_fury"); + + + val coniferon = LootTweaker.getTable("aoa3:entities/bosses/coniferon"); val coniferonbark = coniferon.addPool("coniferonbark", 1, 1, 0, 0); coniferonbark.addItemEntry(, 5); @@ -547,6 +556,8 @@ val amphibiyte = LootTweaker.getTable("aoa3:entities/mobs/overworld/amphibiyte") val amphibiytegoodies = amphibiyte.addPool("amphibiytegoodies", 1, 1, 0, 0); amphibiytegoodies.addItemEntry(, 15); amphibiytegoodies.addItemEntry(, 15); +val amphibiyteextra = amphibiyte.getPool("mob_specific_loot"); +amphibiyteextra.removeEntry("aoa3:dart_gun"); val bonecreeper = LootTweaker.getTable("aoa3:entities/mobs/creeponia/bone_creeper"); val bonecreepergunpow = bonecreeper.addPool("bonecreepergunpow", 1, 1, 0, 0); diff --git a/scripts/EMCless.zs b/scripts/EMCless.zs index d6eb80d6..543a847c 100644 --- a/scripts/EMCless.zs +++ b/scripts/EMCless.zs @@ -645,3 +645,431 @@ recipes.addShapeless(, [, [, ]); recipes.addShapeless(, [, ]); recipes.addShapeless(, [, ]); + + + +// 17 + +mods.botania.RuneAltar.addRecipe(*2, [, ], 3); +mods.botania.RuneAltar.addRecipe(*2, [, , ], 3); +mods.botania.RuneAltar.addRecipe(*2, [, , , ], 3); +mods.botania.RuneAltar.addRecipe(*2, [, , , , ], 3); +mods.botania.RuneAltar.addRecipe(*2, [, , , , , ], 3); +mods.botania.RuneAltar.addRecipe(*2, [, , , , , , ], 3); +mods.botania.RuneAltar.addRecipe(*2, [, , , , , , , ], 3); +mods.botania.RuneAltar.addRecipe(*2, [, , , , , , , , ], 3); + + +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); + + +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); + + +// 18 + +val loomemcless1 = RecipeBuilder.newBuilder("loomemcless1","sparkled_spinning_wheel",2); +loomemcless1.addFluidInput(*1); +loomemcless1.addFluidInput(*10); +loomemcless1.addItemInput(); +loomemcless1.addItemInput(*1); +loomemcless1.addItemInput(*1); +loomemcless1.addItemInput(*1); +loomemcless1.addItemOutput(*2); +loomemcless1.build(); + +val loomemcless2 = RecipeBuilder.newBuilder("loomemcless2","sparkled_spinning_wheel",2); +loomemcless2.addFluidInput(*2); +loomemcless2.addFluidInput(*20); +loomemcless2.addItemInput(); +loomemcless2.addItemInput(*2); +loomemcless2.addItemInput(*2); +loomemcless2.addItemInput(*2); +loomemcless2.addItemOutput(*2); +loomemcless2.build(); + +val loomemcless3 = RecipeBuilder.newBuilder("loomemcless3","sparkled_spinning_wheel",2); +loomemcless3.addFluidInput(*3); +loomemcless3.addFluidInput(*30); +loomemcless3.addItemInput(); +loomemcless3.addItemInput(*3); +loomemcless3.addItemInput(*3); +loomemcless3.addItemInput(*3); +loomemcless3.addItemOutput(*2); +loomemcless3.build(); + +val loomemcless4 = RecipeBuilder.newBuilder("loomemcless4","sparkled_spinning_wheel",2); +loomemcless4.addFluidInput(*4); +loomemcless4.addFluidInput(*40); +loomemcless4.addItemInput(); +loomemcless4.addItemInput(*4); +loomemcless4.addItemInput(*4); +loomemcless4.addItemInput(*4); +loomemcless4.addItemOutput(*2); +loomemcless4.build(); + +val loomemcless5 = RecipeBuilder.newBuilder("loomemcless5","sparkled_spinning_wheel",2); +loomemcless5.addFluidInput(*5); +loomemcless5.addFluidInput(*50); +loomemcless5.addItemInput(); +loomemcless5.addItemInput(*5); +loomemcless5.addItemInput(*5); +loomemcless5.addItemInput(*5); +loomemcless5.addItemOutput(*2); +loomemcless5.build(); + +val loomemcless6 = RecipeBuilder.newBuilder("loomemcless6","sparkled_spinning_wheel",2); +loomemcless6.addFluidInput(*6); +loomemcless6.addFluidInput(*60); +loomemcless6.addItemInput(); +loomemcless6.addItemInput(*6); +loomemcless6.addItemInput(*6); +loomemcless6.addItemInput(*6); +loomemcless6.addItemOutput(*2); +loomemcless6.build(); + +val loomemcless7 = RecipeBuilder.newBuilder("loomemcless7","sparkled_spinning_wheel",2); +loomemcless7.addFluidInput(*7); +loomemcless7.addFluidInput(*70); +loomemcless7.addItemInput(); +loomemcless7.addItemInput(*7); +loomemcless7.addItemInput(*7); +loomemcless7.addItemInput(*7); +loomemcless7.addItemOutput(*2); +loomemcless7.build(); + +val loomemcless8 = RecipeBuilder.newBuilder("loomemcless8","sparkled_spinning_wheel",2); +loomemcless8.addFluidInput(*8); +loomemcless8.addFluidInput(*80); +loomemcless8.addItemInput(); +loomemcless8.addItemInput(*8); +loomemcless8.addItemInput(*8); +loomemcless8.addItemInput(*8); +loomemcless8.addItemOutput(*2); +loomemcless8.build(); + + + +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); + + +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); + + + + +// 19 + +val mythpulvemcless1 = RecipeBuilder.newBuilder("mythpulvemcless1","mythic_processor_pulverizer",2); +mythpulvemcless1.addEnergyPerTickInput(1000000); +mythpulvemcless1.addItemInput(); +mythpulvemcless1.addItemInput(); +mythpulvemcless1.addItemOutput(*2); +mythpulvemcless1.build(); + +val mythpulvemcless2 = RecipeBuilder.newBuilder("mythpulvemcless2","mythic_processor_pulverizer",2); +mythpulvemcless2.addEnergyPerTickInput(1000000); +mythpulvemcless2.addItemInput(); +mythpulvemcless2.addItemInput(*2); +mythpulvemcless2.addItemOutput(*2); +mythpulvemcless2.build(); + +val mythpulvemcless3 = RecipeBuilder.newBuilder("mythpulvemcless3","mythic_processor_pulverizer",2); +mythpulvemcless3.addEnergyPerTickInput(1000000); +mythpulvemcless3.addItemInput(); +mythpulvemcless3.addItemInput(*3); +mythpulvemcless3.addItemOutput(*2); +mythpulvemcless3.build(); + +val mythpulvemcless4 = RecipeBuilder.newBuilder("mythpulvemcless4","mythic_processor_pulverizer",2); +mythpulvemcless4.addEnergyPerTickInput(1000000); +mythpulvemcless4.addItemInput(); +mythpulvemcless4.addItemInput(*4); +mythpulvemcless4.addItemOutput(*2); +mythpulvemcless4.build(); + +val mythpulvemcless5 = RecipeBuilder.newBuilder("mythpulvemcless5","mythic_processor_pulverizer",2); +mythpulvemcless5.addEnergyPerTickInput(1000000); +mythpulvemcless5.addItemInput(); +mythpulvemcless5.addItemInput(*5); +mythpulvemcless5.addItemOutput(*2); +mythpulvemcless5.build(); + +val mythpulvemcless6 = RecipeBuilder.newBuilder("mythpulvemcless6","mythic_processor_pulverizer",2); +mythpulvemcless6.addEnergyPerTickInput(1000000); +mythpulvemcless6.addItemInput(); +mythpulvemcless6.addItemInput(*6); +mythpulvemcless6.addItemOutput(*2); +mythpulvemcless6.build(); + +val mythpulvemcless7 = RecipeBuilder.newBuilder("mythpulvemcless7","mythic_processor_pulverizer",2); +mythpulvemcless7.addEnergyPerTickInput(1000000); +mythpulvemcless7.addItemInput(); +mythpulvemcless7.addItemInput(*7); +mythpulvemcless7.addItemOutput(*2); +mythpulvemcless7.build(); + +val mythpulvemcless8 = RecipeBuilder.newBuilder("mythpulvemcless8","mythic_processor_pulverizer",2); +mythpulvemcless8.addEnergyPerTickInput(1000000); +mythpulvemcless8.addItemInput(); +mythpulvemcless8.addItemInput(*8); +mythpulvemcless8.addItemOutput(*2); +mythpulvemcless8.build(); + + +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); + + +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); + +// 20 + +val arcautowemcless1 = RecipeBuilder.newBuilder("arcautowemcless1","arcane_autoworkbench",2); +arcautowemcless1.addEnergyPerTickInput(1000000); +arcautowemcless1.addItemInput(.withTag({Aspects: [{amount: 1, key: "sol"}]})*5); +arcautowemcless1.addItemInput(.withTag({Aspects: [{amount: 1, key: "luna"}]})*5); +arcautowemcless1.addItemInput(.withTag({Aspects: [{amount: 1, key: "humanus"}]})*5); +arcautowemcless1.addItemInput(.withTag({Aspects: [{amount: 1, key: "bestia"}]})*5); +arcautowemcless1.addItemInput(.withTag({Aspects: [{amount: 1, key: "caeles"}]})*5); +arcautowemcless1.addItemInput(.withTag({Aspects: [{amount: 1, key: "infernum"}]})*5); +arcautowemcless1.addItemInput(*1); +arcautowemcless1.addItemInput(*1); +arcautowemcless1.addItemInput(); +arcautowemcless1.addItemOutput(*2); +arcautowemcless1.build(); + +val arcautowemcless2 = RecipeBuilder.newBuilder("arcautowemcless2","arcane_autoworkbench",2); +arcautowemcless2.addEnergyPerTickInput(1000000); +arcautowemcless2.addItemInput(.withTag({Aspects: [{amount: 1, key: "sol"}]})*10); +arcautowemcless2.addItemInput(.withTag({Aspects: [{amount: 1, key: "luna"}]})*10); +arcautowemcless2.addItemInput(.withTag({Aspects: [{amount: 1, key: "humanus"}]})*10); +arcautowemcless2.addItemInput(.withTag({Aspects: [{amount: 1, key: "bestia"}]})*10); +arcautowemcless2.addItemInput(.withTag({Aspects: [{amount: 1, key: "caeles"}]})*10); +arcautowemcless2.addItemInput(.withTag({Aspects: [{amount: 1, key: "infernum"}]})*10); +arcautowemcless2.addItemInput(*2); +arcautowemcless2.addItemInput(*2); +arcautowemcless2.addItemInput(); +arcautowemcless2.addItemOutput(*2); +arcautowemcless2.build(); + +val arcautowemcless3 = RecipeBuilder.newBuilder("arcautowemcless3","arcane_autoworkbench",2); +arcautowemcless3.addEnergyPerTickInput(1000000); +arcautowemcless3.addItemInput(.withTag({Aspects: [{amount: 1, key: "sol"}]})*15); +arcautowemcless3.addItemInput(.withTag({Aspects: [{amount: 1, key: "luna"}]})*15); +arcautowemcless3.addItemInput(.withTag({Aspects: [{amount: 1, key: "humanus"}]})*15); +arcautowemcless3.addItemInput(.withTag({Aspects: [{amount: 1, key: "bestia"}]})*15); +arcautowemcless3.addItemInput(.withTag({Aspects: [{amount: 1, key: "caeles"}]})*15); +arcautowemcless3.addItemInput(.withTag({Aspects: [{amount: 1, key: "infernum"}]})*15); +arcautowemcless3.addItemInput(*3); +arcautowemcless3.addItemInput(*3); +arcautowemcless3.addItemInput(); +arcautowemcless3.addItemOutput(*2); +arcautowemcless3.build(); + +val arcautowemcless4 = RecipeBuilder.newBuilder("arcautowemcless4","arcane_autoworkbench",2); +arcautowemcless4.addEnergyPerTickInput(1000000); +arcautowemcless4.addItemInput(.withTag({Aspects: [{amount: 1, key: "sol"}]})*20); +arcautowemcless4.addItemInput(.withTag({Aspects: [{amount: 1, key: "luna"}]})*20); +arcautowemcless4.addItemInput(.withTag({Aspects: [{amount: 1, key: "humanus"}]})*20); +arcautowemcless4.addItemInput(.withTag({Aspects: [{amount: 1, key: "bestia"}]})*20); +arcautowemcless4.addItemInput(.withTag({Aspects: [{amount: 1, key: "caeles"}]})*20); +arcautowemcless4.addItemInput(.withTag({Aspects: [{amount: 1, key: "infernum"}]})*20); +arcautowemcless4.addItemInput(*4); +arcautowemcless4.addItemInput(*4); +arcautowemcless4.addItemInput(); +arcautowemcless4.addItemOutput(*2); +arcautowemcless4.build(); + +val arcautowemcless5 = RecipeBuilder.newBuilder("arcautowemcless5","arcane_autoworkbench",2); +arcautowemcless5.addEnergyPerTickInput(1000000); +arcautowemcless5.addItemInput(.withTag({Aspects: [{amount: 1, key: "sol"}]})*25); +arcautowemcless5.addItemInput(.withTag({Aspects: [{amount: 1, key: "luna"}]})*25); +arcautowemcless5.addItemInput(.withTag({Aspects: [{amount: 1, key: "humanus"}]})*25); +arcautowemcless5.addItemInput(.withTag({Aspects: [{amount: 1, key: "bestia"}]})*25); +arcautowemcless5.addItemInput(.withTag({Aspects: [{amount: 1, key: "caeles"}]})*25); +arcautowemcless5.addItemInput(.withTag({Aspects: [{amount: 1, key: "infernum"}]})*25); +arcautowemcless5.addItemInput(*5); +arcautowemcless5.addItemInput(*5); +arcautowemcless5.addItemInput(); +arcautowemcless5.addItemOutput(*2); +arcautowemcless5.build(); + +val arcautowemcless6 = RecipeBuilder.newBuilder("arcautowemcless6","arcane_autoworkbench",2); +arcautowemcless6.addEnergyPerTickInput(1000000); +arcautowemcless6.addItemInput(.withTag({Aspects: [{amount: 1, key: "sol"}]})*30); +arcautowemcless6.addItemInput(.withTag({Aspects: [{amount: 1, key: "luna"}]})*30); +arcautowemcless6.addItemInput(.withTag({Aspects: [{amount: 1, key: "humanus"}]})*30); +arcautowemcless6.addItemInput(.withTag({Aspects: [{amount: 1, key: "bestia"}]})*30); +arcautowemcless6.addItemInput(.withTag({Aspects: [{amount: 1, key: "caeles"}]})*30); +arcautowemcless6.addItemInput(.withTag({Aspects: [{amount: 1, key: "infernum"}]})*30); +arcautowemcless6.addItemInput(*6); +arcautowemcless6.addItemInput(*6); +arcautowemcless6.addItemInput(); +arcautowemcless6.addItemOutput(*2); +arcautowemcless6.build(); + +val arcautowemcless7 = RecipeBuilder.newBuilder("arcautowemcless7","arcane_autoworkbench",2); +arcautowemcless7.addEnergyPerTickInput(1000000); +arcautowemcless7.addItemInput(.withTag({Aspects: [{amount: 1, key: "sol"}]})*35); +arcautowemcless7.addItemInput(.withTag({Aspects: [{amount: 1, key: "luna"}]})*35); +arcautowemcless7.addItemInput(.withTag({Aspects: [{amount: 1, key: "humanus"}]})*35); +arcautowemcless7.addItemInput(.withTag({Aspects: [{amount: 1, key: "bestia"}]})*35); +arcautowemcless7.addItemInput(.withTag({Aspects: [{amount: 1, key: "caeles"}]})*35); +arcautowemcless7.addItemInput(.withTag({Aspects: [{amount: 1, key: "infernum"}]})*35); +arcautowemcless7.addItemInput(*7); +arcautowemcless7.addItemInput(*7); +arcautowemcless7.addItemInput(); +arcautowemcless7.addItemOutput(*2); +arcautowemcless7.build(); + +val arcautowemcless8 = RecipeBuilder.newBuilder("arcautowemcless8","arcane_autoworkbench",2); +arcautowemcless8.addEnergyPerTickInput(1000000); +arcautowemcless8.addItemInput(.withTag({Aspects: [{amount: 1, key: "sol"}]})*40); +arcautowemcless8.addItemInput(.withTag({Aspects: [{amount: 1, key: "luna"}]})*40); +arcautowemcless8.addItemInput(.withTag({Aspects: [{amount: 1, key: "humanus"}]})*40); +arcautowemcless8.addItemInput(.withTag({Aspects: [{amount: 1, key: "bestia"}]})*40); +arcautowemcless8.addItemInput(.withTag({Aspects: [{amount: 1, key: "caeles"}]})*40); +arcautowemcless8.addItemInput(.withTag({Aspects: [{amount: 1, key: "infernum"}]})*40); +arcautowemcless8.addItemInput(*8); +arcautowemcless8.addItemInput(*8); +arcautowemcless8.addItemInput(); +arcautowemcless8.addItemOutput(*2); +arcautowemcless8.build(); + +val arcautowemcless9 = RecipeBuilder.newBuilder("arcautowemcless9","arcane_autoworkbench",2); +arcautowemcless9.addEnergyPerTickInput(1000000); +arcautowemcless9.addItemInput(.withTag({Aspects: [{amount: 1, key: "sol"}]})*45); +arcautowemcless9.addItemInput(.withTag({Aspects: [{amount: 1, key: "luna"}]})*45); +arcautowemcless9.addItemInput(.withTag({Aspects: [{amount: 1, key: "humanus"}]})*45); +arcautowemcless9.addItemInput(.withTag({Aspects: [{amount: 1, key: "bestia"}]})*45); +arcautowemcless9.addItemInput(.withTag({Aspects: [{amount: 1, key: "caeles"}]})*45); +arcautowemcless9.addItemInput(.withTag({Aspects: [{amount: 1, key: "infernum"}]})*45); +arcautowemcless9.addItemInput(*9); +arcautowemcless9.addItemInput(*9); +arcautowemcless9.addItemInput(); +arcautowemcless9.addItemOutput(*2); +arcautowemcless9.build(); + +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); + + + +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); + + +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); + + +// 21 + +mods.extendedcrafting.CombinationCrafting.addRecipe(*2, 10, , [, ]); +mods.extendedcrafting.CombinationCrafting.addRecipe(*2, 10, , [, , ]); +mods.extendedcrafting.CombinationCrafting.addRecipe(*2, 10, , [, , , ]); +mods.extendedcrafting.CombinationCrafting.addRecipe(*2, 10, , [, , , , ]); +mods.extendedcrafting.CombinationCrafting.addRecipe(*2, 10, , [, , , , , ]); +mods.extendedcrafting.CombinationCrafting.addRecipe(*2, 10, , [, , , , , , ]); +mods.extendedcrafting.CombinationCrafting.addRecipe(*2, 10, , [, , , , , , , ]); +mods.extendedcrafting.CombinationCrafting.addRecipe(*2, 10, , [, , , , , , , , ]); +mods.extendedcrafting.CombinationCrafting.addRecipe(*2, 10, , [, , , , , , , , , ]); + + +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); +mods.storagedrawers.Compaction.add(, , 9); + + +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); +recipes.addShapeless(, [, ]); + + + + + + + + + + + + + + + + + diff --git a/scripts/LostCities.zs b/scripts/LostCities.zs index 0e8f15c6..d329849a 100644 --- a/scripts/LostCities.zs +++ b/scripts/LostCities.zs @@ -1,5 +1,8 @@ import mods.modularmachinery.RecipeBuilder; import mods.thaumcraft.Infusion; +import mods.thaumicwonders.MeatyOrb; + +mods.thaumicwonders.MeatyOrb.add(, 15); recipes.addShaped(, @@ -19,9 +22,9 @@ recipes.addShaped(*16, mods.extendedcrafting.TableCrafting.addShaped(*64, [[, , , , ], -[, <>, , <>, ], +[, null, , null, ], [, , , , ], -[, <>, , <>, ], +[, null, , null, ], [, , , , ]]); @@ -57,9 +60,9 @@ mods.avaritia.ExtremeCrafting.addShaped("returningpointdire", , , , , , ], -[, , , +[, , , , , , -, , ], +, , ], [, , , , , , diff --git a/scripts/ModularVoidMythical.zs b/scripts/ModularVoidMythical.zs index b83c3b09..ca5a5d6c 100644 --- a/scripts/ModularVoidMythical.zs +++ b/scripts/ModularVoidMythical.zs @@ -126,6 +126,10 @@ mith2.addItemOutput(); mith2.setChance(0.05); mith2.addItemOutput(); mith2.setChance(0.5); +mith2.addItemOutput(*64); +mith2.setChance(0.5); +mith2.addItemOutput(*64); +mith2.setChance(0.5); mith2.addItemOutput(); mith2.build(); @@ -167,6 +171,10 @@ mith3.addItemOutput(); mith3.setChance(0.05); mith3.addItemOutput(*15); mith3.setChance(0.25); +mith3.addItemOutput(*64); +mith3.setChance(0.7); +mith3.addItemOutput(*64); +mith3.setChance(0.7); mith3.addItemOutput(); mith3.build(); @@ -514,6 +522,10 @@ mith6.addItemOutput(*15); mith6.setChance(0.6); mith6.addItemOutput(*4); mith6.setChance(0.3); +mith6.addItemOutput(*64); +mith6.setChance(0.9); +mith6.addItemOutput(*64); +mith6.setChance(0.9); mith6.addItemOutput(); mith6.build(); diff --git a/scripts/MythicPowerful.zs b/scripts/MythicPowerful.zs index 56c6c671..fd2f2a9d 100644 --- a/scripts/MythicPowerful.zs +++ b/scripts/MythicPowerful.zs @@ -1829,7 +1829,7 @@ import crafttweaker.enchantments.IEnchantmentDefinition; .add("cofhcore:smelting",20000) .add("enchantment:openblocks:flim_flam",10000); - mods.extendedcrafting.TableCrafting.addShaped(SuperEnchantedItem(.withTag({display: {Name:"§6§oThe Lightbringer§r",Lore:["§d§o极・超限附魔§r"]}}), enchlistLightbringer).getItem(), + mods.extendedcrafting.TableCrafting.addShaped(SuperEnchantedItem(.withTag({display: {Name:"§6§o裂光者§r",Lore:["§d§o极・超限附魔§r"]}}), enchlistLightbringer).getItem(), [[, , , , ], [, , , , ], [, , , , ], diff --git a/scripts/ThaumcraftGating.zs b/scripts/ThaumcraftGating.zs index c804c3e9..74539402 100644 --- a/scripts/ThaumcraftGating.zs +++ b/scripts/ThaumcraftGating.zs @@ -1,4 +1,11 @@ import mods.modularmachinery.RecipeBuilder; +import mods.thaumcraft.Infusion; +import mods.thaumcraft.Crucible; + +mods.thaumcraft.Crucible.registerRecipe("crucibledupeimpetus", "", *7, , [*10, *20, *5]); +mods.thaumcraft.Crucible.registerRecipe("crucibledupeprimordialgrains", "", *7, , [*5, *5, *5, *5, *5, *5]); + + recipes.removeShaped(); @@ -137,4 +144,5 @@ recipes.addShaped(, val makefluxcontrolled = RecipeBuilder.newBuilder("makefluxcontrolled","vibrating_flux_crucible",40); makefluxcontrolled.addItemInput(); makefluxcontrolled.addFluxOutput(10.0); -makefluxcontrolled.build(); \ No newline at end of file +makefluxcontrolled.build(); + diff --git a/scripts/ToolTips.zs b/scripts/ToolTips.zs index d6f7db42..eb65a613 100644 --- a/scripts/ToolTips.zs +++ b/scripts/ToolTips.zs @@ -3014,6 +3014,8 @@ .addTooltip(format.red("Chaika_In_Paanic, rfhb21, Nezer_Stra (团队)")); .addTooltip(format.red("迪奥-布兰多 & 0160 (团队)")); .addTooltip(format.red("zalee (单人)")); +.addTooltip(format.red("Sømêøne (基本无EMC) (单人)")); +.addTooltip(format.red("KawaiiPotatoKing & RandTheGrayMan (团队)")); .addTooltip(format.red("在卡尚的远古神殿(Ancient Cavern)群系使用")); @@ -3144,12 +3146,20 @@ .addTooltip(format.red("可施加超限附魔")); -.addTooltip(format.red("蚁狮巢穴召唤石会生成一只不属于其的生物")); +.addTooltip(format.red("蚁狮巢穴召唤石会生成某种不属于其的生物")); .addTooltip(format.red("使用特定石子右击此种生物(生成方式不限)")); -.addTooltip(format.red("莫测监狱中会生成某只生物")); +.addTooltip(format.red("莫测监狱中会生成某种特定生物")); .addTooltip(format.red("使用特定石子右击此种生物(生成方式不限)")); +.addTooltip(format.red("下界要塞中会生成某种特定生物")); +.addTooltip(format.red("使用特定石子右击此种生物(生成方式不限)")); + +.addTooltip(format.red("你有没有用过某些特定的跃迁器??")); + +.addTooltip(format.red("通过嗜肉之球获得")); +.addTooltip(format.red("需要Victus、Aqua、Alienis源质各250点来启动")); + @@ -3163,42 +3173,37 @@ +.addTooltip(format.red("要加快充能速度,可使用与多个通量接出点相连的凛冰固化能量管道为注入合成装置供能")); + +.addTooltip(format.red("KurryCat不会被奇怪的数字格式搞晕")); + + + + +.addTooltip(format.red("匠魂锤材料:混沌核心坚韧手柄、无尽锤头、振金合金左大板、飞升神龙合金右大板")); + +.addTooltip(format.red("匠魂锤材料:混沌核心坚韧手柄、无尽锤头、振金合金左大板、飞升神龙合金右大板")); + .addTooltip(format.red("匠魂锤材料:混沌核心坚韧手柄、无尽锤头、振金合金左大板、飞升神龙合金右大板")); -.addTooltip(format.red("匠魂锤材料:混沌核心坚韧手柄、无尽锤头、振金合金左大板、飞升神龙合金右大板")); - .addTooltip(format.red("匠魂锤材料:混沌核心坚韧手柄、无尽锤头、振金合金左大板、飞升神龙合金右大板")); - .addTooltip(format.red("匠魂锤材料:混沌核心坚韧手柄、无尽锤头、振金合金左大板、飞升神龙合金右大板")); .addTooltip(format.red("匠魂锤材料:混沌核心坚韧手柄、无尽锤头、振金合金左大板、飞升神龙合金右大板")); - - - -.addTooltip(format.red("匠魂锤材料:混沌核心坚韧手柄、无尽锤头、振金合金左大板、飞升神龙合金右大板")); .addTooltip(format.red("匠魂锤材料:混沌核心坚韧手柄、无尽锤头、振金合金左大板、飞升神龙合金右大板")); .addTooltip(format.red("匠魂锤材料:混沌核心坚韧手柄、无尽锤头、振金合金左大板、飞升神龙合金右大板")); .addTooltip(format.red("匠魂锤材料:混沌核心坚韧手柄、无尽锤头、振金合金左大板、飞升神龙合金右大板")); - -.addTooltip(format.red("匠魂锤材料:混沌核心坚韧手柄、无尽锤头、振金合金左大板、飞升神龙合金右大板")); - - - .addTooltip(format.red("匠魂锤材料:混沌核心坚韧手柄、无尽锤头、振金合金左大板、飞升神龙合金右大板")); - -.addTooltip(format.red("匠魂锤材料:混沌核心坚韧手柄、无尽锤头、振金合金左大板、飞升神龙合金右大板")); - - .addTooltip(format.red("匠魂锤材料:混沌核心坚韧手柄、无尽锤头、振金合金左大板、飞升神龙合金右大板")); .addTooltip(format.red("匠魂锤材料:混沌核心坚韧手柄、无尽锤头、振金合金左大板、飞升神龙合金右大板")); diff --git a/scripts/ToolTips2.zs b/scripts/ToolTips2.zs index 87508499..c11cc53c 100644 --- a/scripts/ToolTips2.zs +++ b/scripts/ToolTips2.zs @@ -786,11 +786,11 @@ import crafttweaker.item.IItemCondition; .addTooltip(format.red("在配方中使用时需先清空物品!!")); -.addTooltip(format.red("不要直接与存储总线连接(会导致卡顿)。用抽屉或Dank替代!")); +.addTooltip(format.red("Dallagen让它们没那么卡了!")); -.addTooltip(format.red("不要直接与存储总线连接(会导致卡顿)。用抽屉或Dank替代!")); +.addTooltip(format.red("Dallagen让它们没那么卡了!")); -.addTooltip(format.red("不要直接与存储总线连接(会导致卡顿)。用抽屉或Dank替代!")); +.addTooltip(format.red("Dallagen让它们没那么卡了!")); .addTooltip(format.red("现在更快了,感谢Supernodap的牺牲!")); @@ -2299,6 +2299,9 @@ import crafttweaker.item.IItemCondition; .addTooltip(format.red("从玩家网络中抽取EMC,无限制造单个物品!")); .addTooltip(format.red("从玩家网络中抽取EMC,无限制造最多9种物品!")); .addTooltip(format.red("从玩家网络中抽取EMC,无限制造最多54种物品!")); +.addTooltip(format.red("可直接与存储总线连接!")); +.addTooltip(format.red("可直接与存储总线连接!")); +.addTooltip(format.red("可直接与存储总线连接!")); .withTag({Aspect: "mythus"}).addTooltip(format.red("仅适用与有机灌注器!")); @@ -3115,9 +3118,9 @@ import crafttweaker.item.IItemCondition; .addTooltip(format.red("使用蕴能石追踪器寻找!")); -.addTooltip(format.red("警告:穿戴该装备可能造成大量卡顿")); -.addTooltip(format.red("警告:穿戴该装备可能造成大量卡顿")); -.addTooltip(format.red("警告:穿戴该装备可能造成大量卡顿")); +// .addTooltip(format.red("警告:穿戴该装备可能造成大量卡顿")); +// .addTooltip(format.red("警告:穿戴该装备可能造成大量卡顿")); +// .addTooltip(format.red("警告:穿戴该装备可能造成大量卡顿")); .addTooltip(format.red("警告:不要将背包放进额外物品栏,可能会造成内存泄漏")); .addTooltip(format.red("警告:不要将背包放进额外物品栏,可能会造成内存泄漏")); diff --git a/scripts/customJEItabs/PrimordialAcceleratorJEI.zs b/scripts/customJEItabs/PrimordialAcceleratorJEI.zs index 0fa3799f..58fc199b 100644 --- a/scripts/customJEItabs/PrimordialAcceleratorJEI.zs +++ b/scripts/customJEItabs/PrimordialAcceleratorJEI.zs @@ -6,10 +6,10 @@ import mods.jei.JEI; import mods.randomtweaker.jei.IJeiPanel; import mods.randomtweaker.jei.IJeiUtils; -var primordialacceleratorJEI as IJeiPanel = JEI.createJei("primordial_accelerator", "元始加速器"); -primordialacceleratorJEI.setModid("Bewitchment"); -primordialacceleratorJEI.setIcon(); -primordialacceleratorJEI.addRecipeCatalyst(); +var primordialacceleratorJEI as IJeiPanel = JEI.createJei("primordial_accelerator", "元始虹吸器"); +primordialacceleratorJEI.setModid("Thaumic Wonders"); +primordialacceleratorJEI.setIcon(); +primordialacceleratorJEI.addRecipeCatalyst(); primordialacceleratorJEI.setBackground(IJeiUtils.createBackground(150, 55)); primordialacceleratorJEI.addSlot(IJeiUtils.createItemSlot(40, 25, true)); // input primordialacceleratorJEI.addSlot(IJeiUtils.createItemSlot(95, 25, false)); // output @@ -17,7 +17,7 @@ primordialacceleratorJEI.addElement(IJeiUtils.createArrowElement(64, 25, 0)); primordialacceleratorJEI.addElement(IJeiUtils.createImageElement("primordialsymbol", 68, 6, 16, 16, 0, 0, "contenttweaker:textures/gui/primordial_accelerator.png", 16, 16)); primordialacceleratorJEI.onTooltip(function(mouseX, mouseY) as string[]{ if (mouseX <= 81 && mouseX >= 68 && mouseY <= 22 && mouseY >= 6) { - return ["使用红石脉冲启动加速器"]; + return ["消耗周围神秘时代模组的裂隙,概率产出晶粒"]; } return []; }); @@ -25,7 +25,7 @@ primordialacceleratorJEI.register(); val rightclick1 = JEI.createJeiRecipe("primordial_accelerator"); -rightclick1.addInput(); +rightclick1.addInput(); rightclick1.setOutputs([]); rightclick1.build(); diff --git a/scripts/mixin/BetterP2P.zs b/scripts/mixin/BetterP2P.zs new file mode 100644 index 00000000..1572eb80 --- /dev/null +++ b/scripts/mixin/BetterP2P.zs @@ -0,0 +1,65 @@ +#loader mixin + +import native.java.util.UUID; + +import native.net.minecraftforge.fml.common.network.simpleimpl.IMessage; +import native.net.minecraftforge.fml.common.network.simpleimpl.MessageContext; +import native.com.projecturanus.betterp2p.network.ModNetwork; +import native.com.projecturanus.betterp2p.network.PlayerRequest; +import native.com.projecturanus.betterp2p.network.packet.C2SLinkP2P; +import native.com.projecturanus.betterp2p.network.packet.C2SUnlinkP2P; +import native.com.projecturanus.betterp2p.network.packet.S2COpenGui; + +#mixin {value: "com.projecturanus.betterp2p.network.packet.ServerLinkP2PHandler"} +zenClass MixinServerLinkP2PHandler { + #mixin Overwrite + function onMessage(message as C2SLinkP2P, ctx as MessageContext) as IMessage { + if (isNull(message.input) || isNull(message.output)) { + return null; + } + + var player = ctx.serverHandler.player; + var states as PlayerRequest[UUID] = ModNetwork.INSTANCE.getPlayerState(); + var state = states[player.uniqueID]; + if (isNull(state)) { + return null; + } + + if (!isNull(player.server)) { + player.server.addScheduledTask(function() { + var result = state.gridCache.linkP2P(message.input, message.output); + if (!isNull(result)) { + ModNetwork.INSTANCE.requestP2PUpdate(player); + } + }); + } + + return null; + } +} + +#mixin {value: "com.projecturanus.betterp2p.network.packet.ServerUnlinkP2PHandler"} +zenClass MixinServerUnlinkP2PHandler { + #mixin Overwrite + function onMessage(message as C2SUnlinkP2P, ctx as MessageContext) as S2COpenGui { + if (isNull(message.p2p)) { + return null; + } + + var player = ctx.serverHandler.player; + var states as PlayerRequest[UUID] = ModNetwork.INSTANCE.getPlayerState(); + var state = states[player.uniqueID]; + if (isNull(state)) { + return null; + } + + if (!isNull(player.server)) { + player.server.addScheduledTask(function() { + state.gridCache.unlinkP2P(message.p2p); + ModNetwork.INSTANCE.requestP2PUpdate(player); + }); + } + + return null; + } +} diff --git a/scripts/mixin/BetweenlandsValoniteShowckwaveBuff.zs b/scripts/mixin/BetweenlandsValoniteShowckwaveBuff.zs new file mode 100644 index 00000000..cc97db0a --- /dev/null +++ b/scripts/mixin/BetweenlandsValoniteShowckwaveBuff.zs @@ -0,0 +1,21 @@ +#modloaded thebetweenlands +#loader mixin + +import mixin.CallbackInfo; +import native.thebetweenlands.common.item.BLMaterialRegistry; + +#mixin Mixin +#{targets: "thebetweenlands.common.item.BLMaterialRegistry"} +zenClass MixinBLMaterialRegistry { + #mixin Static + #mixin ModifyConstant + #{ + # method: "BLMaterialRegistry", + # constant: {floatValue: 8.0F} + #} + function modifyValoniteShockwaveDamage(original as float) as float { + return 27.0F; + } +} + + diff --git a/scripts/mixin/FixMachineryFluidOutputBuses.zs b/scripts/mixin/FixMachineryFluidOutputBuses.zs deleted file mode 100644 index 383c5c4f..00000000 --- a/scripts/mixin/FixMachineryFluidOutputBuses.zs +++ /dev/null @@ -1,20 +0,0 @@ -#loader mixin - -/* - Bandaid fix to prevent voiding of fluids when using fluid machinery output buses -*/ -#mixin Mixin -#{targets: "github.kasuminova.mmce.common.tile.MEFluidOutputBus"} -zenClass MixinFluidMachinery { - #mixin ModifyArg - #{ - # method: "Lgithub/kasuminova/mmce/common/tile/MEFluidOutputBus;()V", - # at: { - # value: "INVOKE", - # target: "Lgithub/kasuminova/mmce/common/util/AEFluidInventoryUpgradeable;setOneFluidOneSlot(Z)V" - # } - #} - function mbc_fixFluidMachinery(toYeet as bool) as bool { - return false; - } -} \ No newline at end of file diff --git a/scripts/mixin/LazyAe2.zs b/scripts/mixin/LazyAe2.zs new file mode 100644 index 00000000..84c2ac90 --- /dev/null +++ b/scripts/mixin/LazyAe2.zs @@ -0,0 +1,20 @@ +#modloaded threng +#loader mixin + +import mixin.CallbackInfo; + +#mixin {value: "io.github.phantamanta44.threng.tile.TileLevelMaintainer"} +zenClass MixinTileLevelMaintainer { + #mixin ModifyArg + #{ + # method: "lambda$tick$1", + # at: { + # value: "INVOKE", + # target: "Lio/github/phantamanta44/threng/tile/TileLevelMaintainer$InventoryRequest;computeDelta(IJ)J" + # }, + # index: 1 + #} + function allowOvercraft(existing as long) as long { + return 0 as long; + } +} diff --git a/scripts/mixin/LazyAe2OvercraftLevelMaintainer.zs b/scripts/mixin/LazyAe2OvercraftLevelMaintainer.zs deleted file mode 100644 index 43e59555..00000000 --- a/scripts/mixin/LazyAe2OvercraftLevelMaintainer.zs +++ /dev/null @@ -1,17 +0,0 @@ -#loader mixin - -import mixin.CallbackInfo; - -#mixin Mixin -#{targets: "io.github.phantamanta44.threng.tile.TileLevelMaintainer"} -zenClass MixinTileLevelMaintainer { - #mixin ModifyArg - #{ - # method: "tick", - # at: {value: "INVOKE", target: "Lio/github/phantamanta44/threng/tile/TileLevelMaintainer$InventoryRequest;computeDelta(IJ)J"}, - # index: 1 - #} - function allowOvercraft(existing as long) as long { - return 0 as long; - } -} diff --git a/scripts/mixin/aoa3/aoa3DartGunBuff.zs b/scripts/mixin/aoa3/aoa3DartGunBuff.zs new file mode 100644 index 00000000..d4511f91 --- /dev/null +++ b/scripts/mixin/aoa3/aoa3DartGunBuff.zs @@ -0,0 +1,17 @@ +#modloaded aoa3 +#loader mixin + +#mixin Mixin +#{targets: "net.tslat.aoa3.common.registration.WeaponRegister"} +zenClass MixinWeaponRegister { + #mixin Static + #mixin ModifyConstant + #{ + # method: "registerWeapon", + # slice: {from: {value: "NEW", target: "net/tslat/aoa3/item/weapon/gun/DartGun"}}, + # constant: {doubleValue: 10.0f, ordinal: 0} + #} + function modifyDartGunDamage(original as double) as double { + return 100.0; + } +} \ No newline at end of file diff --git a/scripts/mixin/aoa3/aoa3FlamingFuryBuff.zs b/scripts/mixin/aoa3/aoa3FlamingFuryBuff.zs index 94981779..5c0214b6 100644 --- a/scripts/mixin/aoa3/aoa3FlamingFuryBuff.zs +++ b/scripts/mixin/aoa3/aoa3FlamingFuryBuff.zs @@ -1,24 +1,17 @@ #modloaded aoa3 #loader mixin -import mixin.CallbackInfo; -import native.net.tslat.aoa3.common.registration.WeaponRegister; - #mixin Mixin #{targets: "net.tslat.aoa3.common.registration.WeaponRegister"} zenClass MixinWeaponRegister { + #mixin Static #mixin ModifyConstant #{ - # method: "WeaponRegister", - # constant: {floatValue: 20.5f}, - # slice: { - # from: {value: "INVOKE", target: "Lnet/tslat/aoa3/common/registration/WeaponRegister;registerMauls(Lnet/minecraftforge/registries/IForgeRegistry;[Lnet/tslat/aoa3/item/weapon/maul/BaseMaul;)V"}, - # to: {value: "INVOKE", target: "Lnet/tslat/aoa3/common/registration/WeaponRegister;registerGuns(Lnet/minecraftforge/registries/IForgeRegistry;[Lnet/tslat/aoa3/item/weapon/gun/BaseGun;)V"} - # } + # method: "registerWeapon", + # slice: {from: {value: "NEW", target: "net/tslat/aoa3/item/weapon/gun/FlamingFury"}}, + # constant: {doubleValue: 20.5f, ordinal: 0} #} - function modifyFlamingFuryDamage(original as float) as float { - return 100.0f; + function modifyFlamingFuryDamage(original as double) as double { + return 200.0; } -} - - +} \ No newline at end of file diff --git a/scripts/mixin/aoa3/aoa3NethengeicSluggerBuff.zs b/scripts/mixin/aoa3/aoa3NethengeicSluggerBuff.zs new file mode 100644 index 00000000..89be33e5 --- /dev/null +++ b/scripts/mixin/aoa3/aoa3NethengeicSluggerBuff.zs @@ -0,0 +1,17 @@ +#modloaded aoa3 +#loader mixin + +#mixin Mixin +#{targets: "net.tslat.aoa3.common.registration.WeaponRegister"} +zenClass MixinWeaponRegister { + #mixin Static + #mixin ModifyConstant + #{ + # method: "registerWeapon", + # slice: {from: {value: "NEW", target: "net/tslat/aoa3/item/weapon/gun/NethengeicSlugger"}}, + # constant: {doubleValue: 22.5f, ordinal: 0} + #} + function modifyNethengeicSluggerDamage(original as double) as double { + return 240.0; + } +} \ No newline at end of file diff --git a/scripts/mixin/aoa3/aoa3WitherWrathBuff.zs b/scripts/mixin/aoa3/aoa3WitherWrathBuff.zs new file mode 100644 index 00000000..5ec19ab6 --- /dev/null +++ b/scripts/mixin/aoa3/aoa3WitherWrathBuff.zs @@ -0,0 +1,19 @@ +#modloaded aoa3 +#loader mixin + +#mixin Mixin +#{targets: "net.tslat.aoa3.common.registration.WeaponRegister"} +zenClass MixinWeaponRegister { + #mixin Static + #mixin ModifyConstant + #{ + # method: "registerWeapon", + # slice: {from: {value: "NEW", target: "net/tslat/aoa3/item/weapon/blaster/WithersWrath"}}, + # constant: {doubleValue: 7.5f, ordinal: 0} + #} + function modifyWitherWrathDamage(original as double) as double { + return 100.0; + } +} + + diff --git a/scripts/mixin/aoa3/aoa3WitherWrathBuff2.zs b/scripts/mixin/aoa3/aoa3WitherWrathBuff2.zs new file mode 100644 index 00000000..7b1fbb3f --- /dev/null +++ b/scripts/mixin/aoa3/aoa3WitherWrathBuff2.zs @@ -0,0 +1,17 @@ +#modloaded aoa3 +#loader mixin + +#mixin Mixin +#{targets: "net.tslat.aoa3.common.registration.WeaponRegister"} +zenClass MixinWeaponRegister { + #mixin Static + #mixin ModifyConstant + #{ + # method: "registerWeapon", + # slice: {from: {value: "NEW", target: "net/tslat/aoa3/item/weapon/blaster/WithersWrath"}}, + # constant: {doubleValue: 21f, ordinal: 0} + #} + function modifyWitherWrathDamage(original as double) as double { + return 8.0; + } +} \ No newline at end of file diff --git a/scripts/mixin/astralperks/vorux1.zs b/scripts/mixin/astralperks/vorux1.zs index ee223a58..1d180298 100644 --- a/scripts/mixin/astralperks/vorux1.zs +++ b/scripts/mixin/astralperks/vorux1.zs @@ -2,6 +2,8 @@ #loader mixin import mixin.CallbackInfo; +import native.java.util.UUID; + import native.hellfirepvp.astralsorcery.common.registry.RegistryPerks; #mixin Mixin diff --git a/scripts/mixin/astralperks/vorux2.zs b/scripts/mixin/astralperks/vorux2.zs index a7b01a01..b0f0dc3f 100644 --- a/scripts/mixin/astralperks/vorux2.zs +++ b/scripts/mixin/astralperks/vorux2.zs @@ -2,6 +2,7 @@ #loader mixin import mixin.CallbackInfo; +import native.java.util.UUID; import native.hellfirepvp.astralsorcery.common.registry.RegistryPerks; #mixin Mixin