From 0e09a6a8c8d818684e3ff4bcc55d00307f1aa28a Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Wed, 29 Jun 2022 00:35:26 +0200 Subject: [PATCH 01/53] CC: Tweaked Quest [WIP] First commit --- .../chapters/computercraft_tweaked.snbt | 744 ++++++++++++++++++ 1 file changed, 744 insertions(+) create mode 100644 config/ftbquests/quests/chapters/computercraft_tweaked.snbt diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt new file mode 100644 index 0000000000..606e7107be --- /dev/null +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -0,0 +1,744 @@ +{ + id: "5E2F0BAE050252A8" + group: "72A9465344128AF9" + order_index: 8 + filename: "computercraft_tweaked" + title: "ComputerCraft: Tweaked" + icon: "computercraft:computer_advanced" + default_quest_shape: "" + default_hide_dependency_lines: false + quests: [ + { + title: "Lets have some fun with Computers!" + x: 0.0d + y: 0.0d + shape: "square" + subtitle: "Wait there are Computers in Minecraft?!" + description: [ + "Welcome to the crazy world of programming! ComputerCraft: Tweaked is mod entirely focused about that one thing, giving you access to amazing Lua Programming language inside of Minecraft!" + "" + "Its incredible how compact and complicated stuff you can do with this mod. Think about automating Create Mechanical Crafter with only 1 block!?! Or doing complex operating system controlling everything you have in your base. " + "" + "Think about anything, this mod can do it!" + "" + "Those quests are meant to showcase the mod, and teach you, fellow Player, Basics of Basics with Lua and how to start learning more!" + "" + "~~Kanzio" + "" + "PS: This chapter has few section: Peripherals, Lua Basics and Challenges! Most of them work on \"honor\" system, so please don't just do them all by once without even trying ^^\"" + ] + size: 2.0d + optional: true + min_width: 250 + id: "2D79E4D126EE389E" + tasks: [{ + id: "300A40F0F0E6E4B2" + type: "item" + item: "computercraft:computer_normal" + }] + rewards: [{ + id: "7CB6B1E6983607A6" + type: "xp" + xp: 100 + }] + } + { + title: "Advanced Computer" + x: -0.5d + y: -2.5d + subtitle: "Shiny!" + description: [ + "This fancy gold plated computer has a tiny bit more to offer than his old gray ancestor." + "" + "Except the fact it looks nicer, it has more disk space available for you and has colors support!" + "" + "Colors doesn't matter for us however, as we aren't gonna do OS in this tutorial, but its good to know its a thing right?" + ] + dependencies: ["2D79E4D126EE389E"] + dependency_requirement: "all_started" + id: "5E9975407F07DBCE" + tasks: [{ + id: "2C0D62579BA499E8" + type: "item" + item: "computercraft:computer_advanced" + }] + } + { + title: "Peripherals" + icon: { + id: "computercraft:disk" + Count: 1b + tag: { + Color: 14605932 + } + } + x: -3.0d + y: 0.0d + subtitle: "There is something more than Computers?!" + description: [ + "CC: Tweaked has a lot peripherals that are really useful for doing anything!" + "" + "This section will show you all peripherals available and how to use them!" + ] + dependencies: ["2D79E4D126EE389E"] + size: 1.25d + id: "378BEFB62C4F98BF" + tasks: [{ + id: "4231A52D1EB86805" + type: "checkmark" + title: "Got it!" + }] + rewards: [{ + id: "40472804F00CBB98" + type: "xp" + xp: 100 + }] + } + { + title: "Advanced Peripherals" + x: -4.5d + y: -4.5d + subtitle: "Stuff you need for any sort of automation!" + description: [ + "Advanced Peripherals is an addon for CC: Tweaked that adds massive amount of functionality to it with just few simple blocks!" + "" + "Check individual quests for any peripheral from this mod to see what it's doing and how to use it!" + "TODO: Link to official Advanced Peripherals WIKI" + ] + dependencies: ["378BEFB62C4F98BF"] + id: "6AA1236C9946F569" + tasks: [{ + id: "56A45A4FCA54436D" + type: "item" + item: "advancedperipherals:peripheral_casing" + }] + rewards: [ + { + id: "19528216C1F29F94" + type: "item" + item: { + id: "patchouli:guide_book" + Count: 1b + tag: { + "patchouli:book": "advancedperipherals:manual" + } + } + } + { + id: "6A25D30D59AEE169" + type: "item" + item: "advancedperipherals:peripheral_casing" + } + ] + } + { + x: -2.5d + y: -4.0d + subtitle: "Lua Basics: Enviroment Detector API" + dependencies: ["6AA1236C9946F569"] + id: "643882E2974E1FC4" + tasks: [{ + id: "5E945D7A74276756" + type: "item" + item: "advancedperipherals:environment_detector" + }] + } + { + x: -3.0d + y: -3.0d + subtitle: "Lua Basics: Chat API" + dependencies: ["6AA1236C9946F569"] + id: "69538FA96C5DB66F" + tasks: [{ + id: "5BDA5C07EECA1E62" + type: "item" + item: "advancedperipherals:chat_box" + }] + } + { + x: -4.0d + y: -6.5d + subtitle: "Lua Basics: Player Detector API" + dependencies: ["6AA1236C9946F569"] + id: "1FF23101B4AE771A" + tasks: [{ + id: "21D3EBCD9EE314C8" + type: "item" + item: "advancedperipherals:player_detector" + }] + } + { + x: -6.0d + y: -3.0d + subtitle: "Lua Basics: RS Bridge API" + dependencies: ["6AA1236C9946F569"] + id: "29391D18C88CE860" + tasks: [{ + id: "0936AC03B35A6BC1" + type: "item" + item: "advancedperipherals:rs_bridge" + }] + } + { + x: -6.5d + y: -4.0d + subtitle: "Lua Basics: Energy Detector API" + dependencies: ["6AA1236C9946F569"] + id: "5A981BAE9C143E66" + tasks: [{ + id: "7190E44C0775FA32" + type: "item" + item: "advancedperipherals:energy_detector" + }] + } + { + icon: "advancedperipherals:ar_controller" + x: -5.0d + y: -6.5d + subtitle: "Lua Basics: AR Controller API" + dependencies: ["6AA1236C9946F569"] + id: "0CA53F24B5D6FAC7" + tasks: [ + { + id: "2B4D966DC13F3779" + type: "item" + item: "advancedperipherals:ar_controller" + } + { + id: "1A7C3F19B5A0DFBD" + type: "item" + item: { + id: "advancedperipherals:ar_goggles" + Count: 1b + tag: { + Damage: 0 + } + } + } + ] + } + { + x: -6.5d + y: -5.0d + subtitle: "Lua Basics: Inventory Manager API" + dependencies: ["6AA1236C9946F569"] + id: "63E3AF5B3F755AAB" + tasks: [{ + id: "4C86ADCC2F1F1AF0" + type: "item" + item: "advancedperipherals:inventory_manager" + }] + } + { + x: -5.0d + y: -2.5d + subtitle: "Lua Basics: Redstone API" + dependencies: ["6AA1236C9946F569"] + id: "78DDFBC9534A6310" + tasks: [{ + id: "2F43BBCBD9F69B8F" + type: "item" + item: "advancedperipherals:redstone_integrator" + }] + } + { + x: -2.5d + y: -5.0d + subtitle: "Lua Basics: Block Reader API" + dependencies: ["6AA1236C9946F569"] + id: "44A95D62FE28D5A4" + tasks: [{ + id: "0A711582592CA015" + type: "item" + item: "advancedperipherals:block_reader" + }] + } + { + x: -3.0d + y: -6.0d + subtitle: "Lua Basics: Geo Scanner API" + dependencies: ["6AA1236C9946F569"] + id: "3C2ED0224A637626" + tasks: [{ + id: "28460122A0E940ED" + type: "item" + item: "advancedperipherals:geo_scanner" + }] + } + { + x: -6.0d + y: -6.0d + dependencies: ["6AA1236C9946F569"] + id: "064DB44EB6A2DF89" + tasks: [{ + id: "7C219A8F15FC0AC0" + type: "item" + item: "advancedperipherals:nbt_storage" + }] + } + { + title: "Pocket Computers" + x: 0.5d + y: -2.5d + subtitle: "Cookie Clicker in your Pocket all the time!" + description: [ + "There are item version of those computers as well! Maybe they aren't so useful with automating stuff, but with some knowledge you can do, for example, a pocket Cookie Clicker game!" + "" + "They are really useful for remote access to your systems, or for playing games all the time you have to build stuff." + ] + dependencies: ["2D79E4D126EE389E"] + id: "52933D3422727EB3" + tasks: [{ + id: "7169C85D653C1F03" + type: "item" + title: "Pocket Computers" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "computercraft:pocket_computer_normal" + Count: 1b + } + { + id: "computercraft:pocket_computer_advanced" + Count: 1b + } + ] + } + } + }] + } + { + title: "About Peripherals in General" + icon: "minecraft:chest" + x: -5.5d + y: 0.0d + shape: "circle" + subtitle: "Lua Basics: Peripheral API" + description: [ + "In general, Peripheral is any block you could think of. Classic Minecraft Chest or Furnace, Drawer, Mekanism Metallurgic Infuser, anything!" + "" + "In ComputerCraft, to use any peripheral you need to wrap / find it first. You could set it to a local variable to be able to just use name you gave it in the code." + "" + "Functions:" + "peripheral.wrap(\"#1\")" + "#1 -> side of the PC or name of the peripheral you want to wrap!" + "It returns a table with all functions for that specific peripheral. Thanks to that you can use peripheral specific commands on peripheral you just wrapped." + "" + "peripheral.find(\"#1\",\"#2\")" + "#1 -> The type of peripheral you are looking for." + "#2 -> Filter [Optional]. Requires function to work." + "It returns a table with all founded peripherals, that pass Filter requirements. Filter needs function that returns True/False for it to filter, but can also be used to run commands on every peripheral that was founded!" + "" + "peripheral.getName(#1)" + "#1 -> Peripheral you want to get name of." + "getName is really useful command used a lot in CC, a lot of commands (mostly for moving stuff from one inventory to another) requires you to give then \"Name\" of the peripheral, and not a table that wrap / find gives you. This take what wrap / find returns and gives the Name of that peripheral!" + ] + dependencies: ["378BEFB62C4F98BF"] + min_width: 350 + id: "55493D823F7403DA" + tasks: [{ + id: "0F3C08C74B6E61C1" + type: "checkmark" + title: "Got it!" + }] + rewards: [{ + id: "1FEB3FACFB702936" + type: "xp" + xp: 100 + }] + } + { + title: "Inventory API" + icon: "minecraft:barrel" + x: -7.5d + y: -1.0d + subtitle: "Lua Basics: Global Block Inventory API" + description: [""] + dependencies: ["55493D823F7403DA"] + id: "4D55FB33758DEF7D" + tasks: [{ + id: "3AB4C5F3F3B2CE51" + type: "checkmark" + title: "Inventory API" + }] + } + { + title: "Liquid API" + icon: "minecraft:water_bucket" + x: -7.5d + y: 0.0d + subtitle: "Lua Basics: Global Liquid API" + dependencies: ["55493D823F7403DA"] + id: "18C25A983C4831B7" + tasks: [{ + id: "0B5412C79BD9E639" + type: "checkmark" + title: "Fluid API" + }] + } + { + title: "Energy API" + icon: "mekanism:basic_energy_cube" + x: -7.5d + y: 1.0d + subtitle: "Lua Basics: Global Energy API" + dependencies: ["55493D823F7403DA"] + id: "7CD446B77ACA29F7" + tasks: [{ + id: "1718C0A07EBBF170" + type: "checkmark" + title: "Energy API" + }] + } + { + title: "CC Peripherals" + icon: "computercraft:pocket_computer_normal" + x: -4.5d + y: 4.5d + dependencies: ["378BEFB62C4F98BF"] + id: "1580D9FD06937ABB" + tasks: [{ + id: "4816E5D3E5C6E0D2" + type: "checkmark" + title: "Got it!" + }] + } + { + x: -5.0d + y: 6.0d + dependencies: ["1580D9FD06937ABB"] + id: "54E1A1FE032B1363" + tasks: [{ + id: "5472E9F8815DEF4E" + type: "item" + title: "Monitors" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "computercraft:monitor_advanced" + Count: 1b + } + { + id: "computercraft:monitor_normal" + Count: 1b + } + ] + } + } + }] + } + { + x: -5.5d + y: 3.0d + dependencies: ["1580D9FD06937ABB"] + id: "582FF2D81252AC77" + tasks: [{ + id: "0BB37782A3276ACB" + type: "item" + item: "computercraft:speaker" + }] + } + { + x: -6.0d + y: 4.0d + description: ["TODO: Add different colors into the quest."] + dependencies: ["1580D9FD06937ABB"] + id: "0C3CF3165304BB22" + tasks: [ + { + id: "4210C15D0320BE3E" + type: "item" + item: "computercraft:disk_drive" + } + { + id: "679CA9A8D8852B7A" + type: "item" + item: { + id: "computercraft:disk" + Count: 1b + tag: { } + } + } + ] + } + { + icon: "computercraft:printer" + x: -4.0d + y: 6.0d + dependencies: ["1580D9FD06937ABB"] + id: "181772F6C62A4EEF" + tasks: [ + { + id: "1DCFA115E667AFAE" + type: "item" + item: "computercraft:printer" + } + { + id: "6ADDB5B991464F08" + type: "item" + item: "minecraft:paper" + count: 8L + } + ] + } + { + x: -3.0d + y: 5.5d + dependencies: ["1580D9FD06937ABB"] + id: "229E3C141CF5DCA7" + tasks: [{ + id: "348DDB1AB24A6234" + type: "item" + title: "Turtles" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "computercraft:turtle_advanced" + Count: 1b + } + { + id: "computercraft:turtle_normal" + Count: 1b + } + ] + } + } + }] + } + { + x: -6.0d + y: 5.0d + dependencies: ["1580D9FD06937ABB"] + id: "162927942501A25B" + tasks: [ + { + id: "2F30CD36EFF93C50" + type: "item" + title: "Wired Modem" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "computercraft:wired_modem" + Count: 1b + } + { + id: "computercraft:wired_modem_full" + Count: 1b + } + ] + } + } + } + { + id: "64A1A1464DB5212B" + type: "item" + item: "computercraft:cable" + } + ] + rewards: [ + { + id: "313128DA796725C5" + type: "item" + item: "computercraft:cable" + count: 16 + } + { + id: "64EBD65FFC3C660D" + type: "item" + item: "computercraft:wired_modem_full" + count: 2 + } + ] + } + { + x: -7.5d + y: 4.5d + subtitle: "No More Cables!" + description: [""] + dependencies: ["162927942501A25B"] + id: "4CD43BE714CAE6D8" + tasks: [{ + id: "0FF6E410A7B9EE4D" + type: "item" + title: "Wireless Modem" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "computercraft:wireless_modem_advanced" + Count: 1b + } + { + id: "computercraft:wireless_modem_normal" + Count: 1b + } + ] + } + } + }] + } + { + title: "Documentation" + icon: "computercraft:printed_pages" + x: 2.5d + y: 1.25d + shape: "pentagon" + subtitle: "Official Wikis for everything!" + description: [ + "If you want to learn even more, or need something that isn't here, check out those links!" + "" + "Those are official docs to Lua Programming Languae, as well as to CC: Tweaked Wiki and Mekanism integration." + "TODO: clickable links or message on chat" + ] + dependencies: ["2D79E4D126EE389E"] + size: 1.25d + id: "508989B512DBB2A2" + tasks: [{ + id: "0ED4FB7A29E8557D" + type: "checkmark" + title: "Got it!" + }] + rewards: [{ + id: "6585C24F9B348B68" + type: "xp" + xp: 100 + }] + } + { + title: "Challenges" + icon: "computercraft:computer_command" + x: 0.0d + y: 2.25d + shape: "hexagon" + subtitle: "Try it for yourself!" + description: [ + "Here are some easy challenges you could try completing to test what you learned so far ^^ For every challenge you will get a small prize :wink:" + "" + "However at the end, there are few challenges you could not be able to finish without deeper understanding of Lua, so don't care too much about those if you aren't able to finish. There are here for those handful of people that know what there are doing ^^\"" + ] + dependencies: ["2D79E4D126EE389E"] + size: 1.5d + min_width: 250 + id: "777349A29491AE4C" + tasks: [{ + id: "695699FD194967F9" + type: "checkmark" + title: "Got it!" + }] + rewards: [{ + id: "4E84EC1B07DF8EA7" + type: "xp" + xp: 100 + }] + } + { + title: "Your first program!" + x: -0.5d + y: 3.5d + subtitle: "Challenge #1" + description: ["Do program that will type on the monitor every 5 seconds phrase \"My First Program!\""] + id: "7F980AC22498FE44" + tasks: [{ + id: "194470FBF6D30D4B" + type: "checkmark" + title: "Got it working!" + }] + rewards: [{ + id: "2F6F8FDD1C50F2A4" + type: "xp" + xp: 100 + }] + } + { + title: "Item Transfer!" + x: 1.0d + y: 4.0d + subtitle: "Challenge #2" + description: ["Make a program that will transfer items from inventory on the left to inventory on the right!"] + id: "06A8B69F9385388B" + tasks: [{ + id: "1DD8D1520D86E71D" + type: "checkmark" + title: "Got it working!" + }] + } + { + title: "Using Peripherals to interract with RS" + x: 0.0d + y: 5.0d + subtitle: "Challenge #3" + description: ["Use Advanced Peripherals to import some items from RS into a chest!"] + id: "0F004D494E6114E8" + tasks: [{ + id: "7F89261D56AFCC98" + type: "checkmark" + title: "Got it working!" + }] + } + { + title: "Coding Tips" + icon: "create:wrench" + x: 2.5d + y: -1.25d + shape: "gear" + subtitle: "Enough of in-game coding? There is a solution!" + description: [ + "I think after a while of editing in game, you know it's really annoying to use it, but don't worry fellow player, you don't need to use it anymore!" + "" + "You can just drag\\&drop files into minecraft itself! " + "You just have to create a file on your desktop, code in it and rename it onto [your_name].lua, drop it into in-game Computer and run! It's that easy ^^" + "" + "If you want to have proper Lua support and checking, you can install Visual Studio Code and ComputerCraft: Tweaked Plugin for full CC Lua support! Link to that Plugin is in wiki of that quest :stuck_out_tongue:" + "TODO: Reward with link to CC: Tweaked Plugin for Visual Studio Code" + ] + dependencies: ["2D79E4D126EE389E"] + size: 1.25d + id: "5D796A237D7164E5" + tasks: [{ + id: "3FF05242E21A33DF" + type: "checkmark" + title: "Got it!" + }] + } + { + title: "Introduction to Lua" + icon: "computercraft:printed_book" + x: 3.0d + y: 0.0d + shape: "octagon" + subtitle: "Lua Basics #0 - Introduction" + description: [ + "Welcome to Lua fellow Player!" + "" + "Lua is one of many coding languages out there, but its one of the easiest ones. Don't think that it means its worse than others :stuck_out_tongue:" + "Its pretty powerful, but simple language, so simple it can be implemented into other games!" + "That doesn't meen that its only use in this application. There are a lot of games coded on Lua, that are pretty neat and popular (The Binding of Isaac for example)." + "" + "In this tutorial I'll try to teach you basics of basics of Lua, so you can try doing your own automation projects with it!" + "PS: Thx (Put anyone that helped here) for helping ^^\"" + ] + dependencies: ["2D79E4D126EE389E"] + size: 1.5d + id: "44029061DB640AE2" + tasks: [{ + id: "6A987EA5C795264E" + type: "checkmark" + title: "Got it!" + }] + } + ] +} From e3f13e546d98b562978a4c98d8ff5475d8ad8d05 Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Wed, 29 Jun 2022 08:07:27 +0200 Subject: [PATCH 02/53] Removed a lot of unnecessary explanation marks and emojis. Fixed few typos --- .../chapters/computercraft_tweaked.snbt | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 606e7107be..d356c8f3a3 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -62,6 +62,12 @@ type: "item" item: "computercraft:computer_advanced" }] + rewards: [{ + id: "72295CD458441BE8" + type: "item" + item: "computercraft:monitor_advanced" + count: 9 + }] } { title: "Peripherals" @@ -282,9 +288,9 @@ y: -2.5d subtitle: "Cookie Clicker in your Pocket all the time!" description: [ - "There are item version of those computers as well! Maybe they aren't so useful with automating stuff, but with some knowledge you can do, for example, a pocket Cookie Clicker game!" + "There are item version of those computers as well. Maybe they aren't so useful with automating stuff, but with some knowledge you can do, for example, a pocket Cookie Clicker game!" "" - "They are really useful for remote access to your systems, or for playing games all the time you have to build stuff." + "However they are really useful for remote access to your systems, or for playing games all the time you have to build stuff." ] dependencies: ["2D79E4D126EE389E"] id: "52933D3422727EB3" @@ -309,6 +315,11 @@ } } }] + rewards: [{ + id: "5E5F846DAF5BCE71" + type: "xp" + xp: 100 + }] } { title: "About Peripherals in General" @@ -334,7 +345,7 @@ "" "peripheral.getName(#1)" "#1 -> Peripheral you want to get name of." - "getName is really useful command used a lot in CC, a lot of commands (mostly for moving stuff from one inventory to another) requires you to give then \"Name\" of the peripheral, and not a table that wrap / find gives you. This take what wrap / find returns and gives the Name of that peripheral!" + "getName is really useful command used a lot in CC, a lot of commands (mostly for moving stuff from one inventory to another) requires you to give them \"Name\" of the peripheral, and not a table that wrap / find gives you. This takes what wrap / find returns and gives the Name of that peripheral!" ] dependencies: ["378BEFB62C4F98BF"] min_width: 350 @@ -398,6 +409,8 @@ icon: "computercraft:pocket_computer_normal" x: -4.5d y: 4.5d + subtitle: "Wait there is even more?" + description: ["ComputerCraft itself adds a few unique peripherals. Some of them aren't as useful as others, but all of them are worth attention ^^"] dependencies: ["378BEFB62C4F98BF"] id: "1580D9FD06937ABB" tasks: [{ @@ -405,6 +418,11 @@ type: "checkmark" title: "Got it!" }] + rewards: [{ + id: "3D0E9BD8DB101174" + type: "xp" + xp: 100 + }] } { x: -5.0d @@ -702,8 +720,8 @@ "You can just drag\\&drop files into minecraft itself! " "You just have to create a file on your desktop, code in it and rename it onto [your_name].lua, drop it into in-game Computer and run! It's that easy ^^" "" - "If you want to have proper Lua support and checking, you can install Visual Studio Code and ComputerCraft: Tweaked Plugin for full CC Lua support! Link to that Plugin is in wiki of that quest :stuck_out_tongue:" - "TODO: Reward with link to CC: Tweaked Plugin for Visual Studio Code" + "If you want to have proper Lua support and checking, you can install Visual Studio Code and ComputerCraft: Tweaked Plugin for full CC Lua support! Link to that Plugin is in wiki of that quest" + "TODO: some sort of link to CC: Tweaked Plugin for Visual Studio Code " ] dependencies: ["2D79E4D126EE389E"] size: 1.25d @@ -729,7 +747,6 @@ "That doesn't meen that its only use in this application. There are a lot of games coded on Lua, that are pretty neat and popular (The Binding of Isaac for example)." "" "In this tutorial I'll try to teach you basics of basics of Lua, so you can try doing your own automation projects with it!" - "PS: Thx (Put anyone that helped here) for helping ^^\"" ] dependencies: ["2D79E4D126EE389E"] size: 1.5d From 528710331120eca136f42dc06e0371fdf5fe6c8e Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Wed, 29 Jun 2022 09:39:19 +0200 Subject: [PATCH 03/53] Finished already added Challenges, fixed more typos --- .../chapters/computercraft_tweaked.snbt | 53 +++++++++++++++---- 1 file changed, 43 insertions(+), 10 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index d356c8f3a3..38354c36ad 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -37,9 +37,10 @@ item: "computercraft:computer_normal" }] rewards: [{ - id: "7CB6B1E6983607A6" - type: "xp" - xp: 100 + id: "7CFA1D5619B10CC1" + type: "item" + item: "computercraft:monitor_normal" + count: 9 }] } { @@ -84,7 +85,7 @@ description: [ "CC: Tweaked has a lot peripherals that are really useful for doing anything!" "" - "This section will show you all peripherals available and how to use them!" + "This section will show you all peripherals available and how to use them." ] dependencies: ["2D79E4D126EE389E"] size: 1.25d @@ -153,7 +154,18 @@ x: -3.0d y: -3.0d subtitle: "Lua Basics: Chat API" + description: [ + "The Chat Box is used to read and write messages to the in-game chat. You can even choose if you want to send it to everyone or just one/few people!" + "" + "ProTip: If you prefix your message with \"$\" it will be invisible in game, but chatbox will still be able to see it." + "" + "Functions:" + "sendMessage(#1, #2)" + "#1 -> String message you wanna send" + "#2 -> String Nickname. Its gonna add [your_input] before message" + ] dependencies: ["6AA1236C9946F569"] + min_width: 350 id: "69538FA96C5DB66F" tasks: [{ id: "5BDA5C07EECA1E62" @@ -410,7 +422,7 @@ x: -4.5d y: 4.5d subtitle: "Wait there is even more?" - description: ["ComputerCraft itself adds a few unique peripherals. Some of them aren't as useful as others, but all of them are worth attention ^^"] + description: ["ComputerCraft itself adds a few unique peripherals. Some of them aren't as useful as others, but all of them are worth attention."] dependencies: ["378BEFB62C4F98BF"] id: "1580D9FD06937ABB" tasks: [{ @@ -644,7 +656,7 @@ shape: "hexagon" subtitle: "Try it for yourself!" description: [ - "Here are some easy challenges you could try completing to test what you learned so far ^^ For every challenge you will get a small prize :wink:" + "Here are some easy challenges you could try completing to test what you learned so far. For every challenge you will get a small prize :wink:" "" "However at the end, there are few challenges you could not be able to finish without deeper understanding of Lua, so don't care too much about those if you aren't able to finish. There are here for those handful of people that know what there are doing ^^\"" ] @@ -665,10 +677,12 @@ } { title: "Your first program!" + icon: "computercraft:printed_page" x: -0.5d - y: 3.5d + y: 4.0d subtitle: "Challenge #1" description: ["Do program that will type on the monitor every 5 seconds phrase \"My First Program!\""] + dependencies: ["777349A29491AE4C"] id: "7F980AC22498FE44" tasks: [{ id: "194470FBF6D30D4B" @@ -683,10 +697,12 @@ } { title: "Item Transfer!" - x: 1.0d - y: 4.0d + icon: "mekanism:basic_mechanical_pipe" + x: 1.5d + y: 4.5d subtitle: "Challenge #2" description: ["Make a program that will transfer items from inventory on the left to inventory on the right!"] + dependencies: ["7F980AC22498FE44"] id: "06A8B69F9385388B" tasks: [{ id: "1DD8D1520D86E71D" @@ -696,10 +712,12 @@ } { title: "Using Peripherals to interract with RS" + icon: "refinedstorage:disk_drive" x: 0.0d - y: 5.0d + y: 6.0d subtitle: "Challenge #3" description: ["Use Advanced Peripherals to import some items from RS into a chest!"] + dependencies: ["06A8B69F9385388B"] id: "0F004D494E6114E8" tasks: [{ id: "7F89261D56AFCC98" @@ -757,5 +775,20 @@ title: "Got it!" }] } + { + title: "Modem action!" + icon: "computercraft:wired_modem_full" + x: 2.0d + y: 6.5d + subtitle: "Challenge #4" + description: ["Use a wired Modem to interract with barrel, and print in the monitor list of items in it."] + dependencies: ["0F004D494E6114E8"] + id: "44A7E0342E80526D" + tasks: [{ + id: "0F44049652DDBB03" + type: "checkmark" + title: "Got it working!" + }] + } ] } From d81d0254f2557269725e3b18a55e596f4d2e82e1 Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Wed, 29 Jun 2022 10:02:08 +0200 Subject: [PATCH 04/53] Fine tuned existing challenges, fixed even more typos --- .../chapters/computercraft_tweaked.snbt | 368 ++++++++++++++++-- 1 file changed, 337 insertions(+), 31 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 38354c36ad..72f238532a 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -383,9 +383,14 @@ dependencies: ["55493D823F7403DA"] id: "4D55FB33758DEF7D" tasks: [{ - id: "3AB4C5F3F3B2CE51" - type: "checkmark" - title: "Inventory API" + id: "3EC51CC783415B4A" + type: "item" + item: "minecraft:barrel" + }] + rewards: [{ + id: "76AFEDBB3D2A3334" + type: "xp" + xp: 100 }] } { @@ -397,9 +402,42 @@ dependencies: ["55493D823F7403DA"] id: "18C25A983C4831B7" tasks: [{ - id: "0B5412C79BD9E639" - type: "checkmark" - title: "Fluid API" + id: "7C6525BE6C8CA991" + type: "item" + title: "Black Hole Tanks" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "industrialforegoing:common_black_hole_tank" + Count: 1b + } + { + id: "industrialforegoing:pity_black_hole_tank" + Count: 1b + } + { + id: "industrialforegoing:simple_black_hole_tank" + Count: 1b + } + { + id: "industrialforegoing:advanced_black_hole_tank" + Count: 1b + } + { + id: "industrialforegoing:supreme_black_hole_tank" + Count: 1b + } + ] + } + } + }] + rewards: [{ + id: "6F5EDC40C986AE57" + type: "xp" + xp: 100 }] } { @@ -411,9 +449,41 @@ dependencies: ["55493D823F7403DA"] id: "7CD446B77ACA29F7" tasks: [{ - id: "1718C0A07EBBF170" - type: "checkmark" - title: "Energy API" + id: "0085C0BFFF01C3DD" + type: "item" + title: "Energy Cells" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "powah:energy_cell_basic" + Count: 1b + } + { + id: "powah:energy_cell_hardened" + Count: 1b + } + { + id: "powah:energy_cell_blazing" + Count: 1b + } + { + id: "powah:energy_cell_spirited" + Count: 1b + } + { + id: "powah:energy_cell_niotic" + Count: 1b + } + { + id: "powah:energy_cell_nitro" + Count: 1b + } + ] + } + } }] } { @@ -422,7 +492,7 @@ x: -4.5d y: 4.5d subtitle: "Wait there is even more?" - description: ["ComputerCraft itself adds a few unique peripherals. Some of them aren't as useful as others, but all of them are worth attention."] + description: ["ComputerCraft itself adds a few unique peripherals. Some of them aren't as useful as others, but all of them are worth attention."] dependencies: ["378BEFB62C4F98BF"] id: "1580D9FD06937ABB" tasks: [{ @@ -684,11 +754,55 @@ description: ["Do program that will type on the monitor every 5 seconds phrase \"My First Program!\""] dependencies: ["777349A29491AE4C"] id: "7F980AC22498FE44" - tasks: [{ - id: "194470FBF6D30D4B" - type: "checkmark" - title: "Got it working!" - }] + tasks: [ + { + id: "194470FBF6D30D4B" + type: "checkmark" + title: "Got it working!" + } + { + id: "37AC0AFD18F38CF9" + type: "item" + title: "Computer" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "computercraft:computer_normal" + Count: 1b + } + { + id: "computercraft:computer_advanced" + Count: 1b + } + ] + } + } + } + { + id: "131814BA2E6573DB" + type: "item" + title: "Monitor" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "computercraft:monitor_normal" + Count: 1b + } + { + id: "computercraft:monitor_advanced" + Count: 1b + } + ] + } + } + } + ] rewards: [{ id: "2F6F8FDD1C50F2A4" type: "xp" @@ -701,14 +815,59 @@ x: 1.5d y: 4.5d subtitle: "Challenge #2" - description: ["Make a program that will transfer items from inventory on the left to inventory on the right!"] + description: ["Make a program that will transfer items from inventory on the left to inventory on the right."] dependencies: ["7F980AC22498FE44"] id: "06A8B69F9385388B" - tasks: [{ - id: "1DD8D1520D86E71D" - type: "checkmark" - title: "Got it working!" - }] + tasks: [ + { + id: "1DD8D1520D86E71D" + type: "checkmark" + title: "Got it working!" + } + { + id: "29E0DE505929241E" + type: "item" + title: "Computer" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "computercraft:computer_normal" + Count: 1b + } + { + id: "computercraft:computer_advanced" + Count: 1b + } + ] + } + } + } + { + id: "5C9E09235719EFE2" + type: "item" + title: "Inventory" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "minecraft:chest" + Count: 1b + } + { + id: "minecraft:barrel" + Count: 1b + } + ] + } + } + count: 2L + } + ] } { title: "Using Peripherals to interract with RS" @@ -716,14 +875,76 @@ x: 0.0d y: 6.0d subtitle: "Challenge #3" - description: ["Use Advanced Peripherals to import some items from RS into a chest!"] + description: ["Use Advanced Peripherals to import some items from RS into a chest."] dependencies: ["06A8B69F9385388B"] id: "0F004D494E6114E8" - tasks: [{ - id: "7F89261D56AFCC98" - type: "checkmark" - title: "Got it working!" - }] + tasks: [ + { + id: "7F89261D56AFCC98" + type: "checkmark" + title: "Got it working!" + } + { + id: "6375843352BB76C2" + type: "item" + title: "Computer" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "computercraft:computer_normal" + Count: 1b + } + { + id: "computercraft:computer_advanced" + Count: 1b + } + ] + } + } + } + { + id: "5299FCDEF5D01998" + type: "item" + item: "advancedperipherals:rs_bridge" + } + { + id: "325807DC4DDF3807" + type: "item" + title: "Inventory" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "minecraft:chest" + Count: 1b + } + { + id: "minecraft:barrel" + Count: 1b + } + ] + } + } + } + ] + rewards: [ + { + id: "09A23C581CD60BAE" + type: "item" + item: "refinedstorage:cable" + count: 8 + } + { + id: "3F3E6C99F3DCDB19" + type: "item" + item: "refinedstorage:exporter" + } + ] } { title: "Coding Tips" @@ -735,8 +956,8 @@ description: [ "I think after a while of editing in game, you know it's really annoying to use it, but don't worry fellow player, you don't need to use it anymore!" "" - "You can just drag\\&drop files into minecraft itself! " - "You just have to create a file on your desktop, code in it and rename it onto [your_name].lua, drop it into in-game Computer and run! It's that easy ^^" + "You can just drag\\&drop files into minecraft itself!" + "You just have to create a file on your desktop, code in it and rename it onto [your_name].lua, drop it into in-game Computer and run it. It's that easy ^^" "" "If you want to have proper Lua support and checking, you can install Visual Studio Code and ComputerCraft: Tweaked Plugin for full CC Lua support! Link to that Plugin is in wiki of that quest" "TODO: some sort of link to CC: Tweaked Plugin for Visual Studio Code " @@ -781,11 +1002,96 @@ x: 2.0d y: 6.5d subtitle: "Challenge #4" - description: ["Use a wired Modem to interract with barrel, and print in the monitor list of items in it."] + description: ["Use a wired Modem to interract with barrel, and print on the monitor list of items in it."] dependencies: ["0F004D494E6114E8"] id: "44A7E0342E80526D" + tasks: [ + { + id: "0F44049652DDBB03" + type: "checkmark" + title: "Got it working!" + } + { + id: "2A24265C5169E9C8" + type: "item" + title: "Computer" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "computercraft:computer_normal" + Count: 1b + } + { + id: "computercraft:computer_advanced" + Count: 1b + } + ] + } + } + } + { + id: "7466E2D8E41A02F5" + type: "item" + item: "minecraft:barrel" + } + { + id: "7141C9C70784F055" + type: "item" + title: "Wired Modem" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "computercraft:wired_modem" + Count: 1b + } + { + id: "computercraft:wired_modem_full" + Count: 1b + } + ] + } + } + count: 2L + } + { + id: "3BAA23CEA19F1FC1" + type: "item" + item: "computercraft:cable" + count: 8L + } + ] + rewards: [ + { + id: "673964E9361F0DF7" + type: "item" + item: "computercraft:wired_modem_full" + count: 2 + } + { + id: "5A2D6DA14896628E" + type: "item" + item: "computercraft:cable" + count: 16 + } + ] + } + { + title: "Wireless communications!" + icon: "computercraft:wireless_modem_normal" + x: 3.5d + y: 5.5d + subtitle: "Challenge #4.2" + description: [""] + dependencies: ["44A7E0342E80526D"] + id: "70C1723A18F89BD9" tasks: [{ - id: "0F44049652DDBB03" + id: "0F69F5424C241DC3" type: "checkmark" title: "Got it working!" }] From d72d198236b5dd79efa2176ed8bdbdd2810cee27 Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Wed, 29 Jun 2022 10:42:39 +0200 Subject: [PATCH 05/53] Added another node for Lua Basics I'm gonna finish it later on, lets fix everything else for now --- .../chapters/computercraft_tweaked.snbt | 100 ++++++++++++++++-- 1 file changed, 89 insertions(+), 11 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 72f238532a..4cb66a86b6 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -509,6 +509,7 @@ { x: -5.0d y: 6.0d + subtitle: "Lua Basics: Monitor \\& term functions" dependencies: ["1580D9FD06937ABB"] id: "54E1A1FE032B1363" tasks: [{ @@ -724,7 +725,7 @@ x: 0.0d y: 2.25d shape: "hexagon" - subtitle: "Try it for yourself!" + subtitle: "Try yourself!" description: [ "Here are some easy challenges you could try completing to test what you learned so far. For every challenge you will get a small prize :wink:" "" @@ -748,8 +749,8 @@ { title: "Your first program!" icon: "computercraft:printed_page" - x: -0.5d - y: 4.0d + x: -1.0d + y: 4.5d subtitle: "Challenge #1" description: ["Do program that will type on the monitor every 5 seconds phrase \"My First Program!\""] dependencies: ["777349A29491AE4C"] @@ -812,8 +813,8 @@ { title: "Item Transfer!" icon: "mekanism:basic_mechanical_pipe" - x: 1.5d - y: 4.5d + x: 0.5d + y: 5.5d subtitle: "Challenge #2" description: ["Make a program that will transfer items from inventory on the left to inventory on the right."] dependencies: ["7F980AC22498FE44"] @@ -872,8 +873,8 @@ { title: "Using Peripherals to interract with RS" icon: "refinedstorage:disk_drive" - x: 0.0d - y: 6.0d + x: 2.0d + y: 5.5d subtitle: "Challenge #3" description: ["Use Advanced Peripherals to import some items from RS into a chest."] dependencies: ["06A8B69F9385388B"] @@ -964,6 +965,7 @@ ] dependencies: ["2D79E4D126EE389E"] size: 1.25d + min_width: 275 id: "5D796A237D7164E5" tasks: [{ id: "3FF05242E21A33DF" @@ -982,6 +984,7 @@ "Welcome to Lua fellow Player!" "" "Lua is one of many coding languages out there, but its one of the easiest ones. Don't think that it means its worse than others :stuck_out_tongue:" + "" "Its pretty powerful, but simple language, so simple it can be implemented into other games!" "That doesn't meen that its only use in this application. There are a lot of games coded on Lua, that are pretty neat and popular (The Binding of Isaac for example)." "" @@ -989,6 +992,7 @@ ] dependencies: ["2D79E4D126EE389E"] size: 1.5d + min_width: 275 id: "44029061DB640AE2" tasks: [{ id: "6A987EA5C795264E" @@ -999,7 +1003,7 @@ { title: "Modem action!" icon: "computercraft:wired_modem_full" - x: 2.0d + x: 2.5d y: 6.5d subtitle: "Challenge #4" description: ["Use a wired Modem to interract with barrel, and print on the monitor list of items in it."] @@ -1084,10 +1088,13 @@ { title: "Wireless communications!" icon: "computercraft:wireless_modem_normal" - x: 3.5d - y: 5.5d + x: -0.5d + y: 9.0d subtitle: "Challenge #4.2" - description: [""] + description: [ + "" + "TODO: Learn actually how to use Wireless modems in they intended use, then do that challenge" + ] dependencies: ["44A7E0342E80526D"] id: "70C1723A18F89BD9" tasks: [{ @@ -1096,5 +1103,76 @@ title: "Got it working!" }] } + { + title: "Variables and their types" + icon: "computercraft:printed_pages" + x: 7.5d + y: -1.25d + shape: "diamond" + subtitle: "Lua Basics #1 - Variables" + dependencies: ["44029061DB640AE2"] + size: 1.25d + id: "29C780353E7FB720" + tasks: [{ + id: "282439D423FAC52F" + type: "checkmark" + title: "Got it!" + }] + } + { + title: "Type: Table" + x: 5.5d + y: -3.0d + id: "152F6E8D35D2069A" + tasks: [{ + id: "124F45AFAA7A0206" + type: "checkmark" + title: "Got it!" + }] + } + { + title: "Type: Boolean" + x: 6.5d + y: -3.5d + id: "182654F933DE1815" + tasks: [{ + id: "32D28AB681CE8601" + type: "checkmark" + title: "Got it!" + }] + } + { + title: "Type: Function" + x: 7.5d + y: -4.0d + id: "7B00ECCC48DA0445" + tasks: [{ + id: "20F5794B8753B648" + type: "checkmark" + title: "Got it!" + }] + } + { + title: "Type: String" + x: 9.5d + y: -3.0d + id: "32B8B586F03321A7" + tasks: [{ + id: "32E1201F35F1A394" + type: "checkmark" + title: "Got it!" + }] + } + { + title: "Type: Number" + x: 8.5d + y: -3.5d + id: "08E925A9223FC1BF" + tasks: [{ + id: "56800F53C736541F" + type: "checkmark" + title: "Got it!" + }] + } ] } From 30fd7a0c8c64df2922610e05f2a2c5cf50660fe8 Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Wed, 29 Jun 2022 10:51:34 +0200 Subject: [PATCH 06/53] Changed Quest Line Icon to Normal Computer --- .../quests/chapters/computercraft_tweaked.snbt | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 4cb66a86b6..6c8780083b 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -749,8 +749,8 @@ { title: "Your first program!" icon: "computercraft:printed_page" - x: -1.0d - y: 4.5d + x: -0.5d + y: 4.0d subtitle: "Challenge #1" description: ["Do program that will type on the monitor every 5 seconds phrase \"My First Program!\""] dependencies: ["777349A29491AE4C"] @@ -813,8 +813,8 @@ { title: "Item Transfer!" icon: "mekanism:basic_mechanical_pipe" - x: 0.5d - y: 5.5d + x: 1.5d + y: 4.5d subtitle: "Challenge #2" description: ["Make a program that will transfer items from inventory on the left to inventory on the right."] dependencies: ["7F980AC22498FE44"] @@ -873,8 +873,8 @@ { title: "Using Peripherals to interract with RS" icon: "refinedstorage:disk_drive" - x: 2.0d - y: 5.5d + x: 0.0d + y: 6.0d subtitle: "Challenge #3" description: ["Use Advanced Peripherals to import some items from RS into a chest."] dependencies: ["06A8B69F9385388B"] @@ -1088,8 +1088,8 @@ { title: "Wireless communications!" icon: "computercraft:wireless_modem_normal" - x: -0.5d - y: 9.0d + x: 4.5d + y: 6.0d subtitle: "Challenge #4.2" description: [ "" @@ -1110,6 +1110,7 @@ y: -1.25d shape: "diamond" subtitle: "Lua Basics #1 - Variables" + description: ["I will finish this after fixing everything else ^^\""] dependencies: ["44029061DB640AE2"] size: 1.25d id: "29C780353E7FB720" From 61f1c227b8a32e4fc5f3228db22ddcfff22dd89d Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Wed, 29 Jun 2022 10:56:11 +0200 Subject: [PATCH 07/53] Another batch of fixed Typos --- config/ftbquests/quests/chapters/computercraft_tweaked.snbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 6c8780083b..cb0c050611 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -4,7 +4,7 @@ order_index: 8 filename: "computercraft_tweaked" title: "ComputerCraft: Tweaked" - icon: "computercraft:computer_advanced" + icon: "computercraft:computer_normal" default_quest_shape: "" default_hide_dependency_lines: false quests: [ @@ -15,7 +15,7 @@ shape: "square" subtitle: "Wait there are Computers in Minecraft?!" description: [ - "Welcome to the crazy world of programming! ComputerCraft: Tweaked is mod entirely focused about that one thing, giving you access to amazing Lua Programming language inside of Minecraft!" + "Welcome to the crazy world of programming! ComputerCraft: Tweaked is a mod entirely focused about that one thing, giving you access to amazing Lua Programming language inside of Minecraft!" "" "Its incredible how compact and complicated stuff you can do with this mod. Think about automating Create Mechanical Crafter with only 1 block!?! Or doing complex operating system controlling everything you have in your base. " "" @@ -752,7 +752,7 @@ x: -0.5d y: 4.0d subtitle: "Challenge #1" - description: ["Do program that will type on the monitor every 5 seconds phrase \"My First Program!\""] + description: ["Make a program that will type on the monitor every 5 seconds phrase \"My First Program!\""] dependencies: ["777349A29491AE4C"] id: "7F980AC22498FE44" tasks: [ From e80d0b040b32488fd0f22ec668cdf23dbd7fc313 Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Wed, 29 Jun 2022 10:56:40 +0200 Subject: [PATCH 08/53] Deleted Advanced Peripherals Book from quest Reward --- config/ftbquests/quests/chapters/computercraft_tweaked.snbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index cb0c050611..9ca938fc2b 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -341,7 +341,7 @@ shape: "circle" subtitle: "Lua Basics: Peripheral API" description: [ - "In general, Peripheral is any block you could think of. Classic Minecraft Chest or Furnace, Drawer, Mekanism Metallurgic Infuser, anything!" + "In general, a Peripheral is any block you could think of. Classic Minecraft Chest or Furnace, Drawer, Mekanism Metallurgic Infuser, anything!" "" "In ComputerCraft, to use any peripheral you need to wrap / find it first. You could set it to a local variable to be able to just use name you gave it in the code." "" @@ -876,7 +876,7 @@ x: 0.0d y: 6.0d subtitle: "Challenge #3" - description: ["Use Advanced Peripherals to import some items from RS into a chest."] + description: ["Use Advanced Peripherals to export some items from RS into a chest."] dependencies: ["06A8B69F9385388B"] id: "0F004D494E6114E8" tasks: [ @@ -957,7 +957,7 @@ description: [ "I think after a while of editing in game, you know it's really annoying to use it, but don't worry fellow player, you don't need to use it anymore!" "" - "You can just drag\\&drop files into minecraft itself!" + "You can just drag \\& drop files into minecraft itself!" "You just have to create a file on your desktop, code in it and rename it onto [your_name].lua, drop it into in-game Computer and run it. It's that easy ^^" "" "If you want to have proper Lua support and checking, you can install Visual Studio Code and ComputerCraft: Tweaked Plugin for full CC Lua support! Link to that Plugin is in wiki of that quest" From 0a672897638fb88db9ce1c72a1970a7374a88e0b Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Wed, 29 Jun 2022 11:05:53 +0200 Subject: [PATCH 09/53] Added colored Floppys for Disk Drive Quest --- .../chapters/computercraft_tweaked.snbt | 23 ++++--------------- 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 9ca938fc2b..4fc7f4d505 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -119,24 +119,11 @@ type: "item" item: "advancedperipherals:peripheral_casing" }] - rewards: [ - { - id: "19528216C1F29F94" - type: "item" - item: { - id: "patchouli:guide_book" - Count: 1b - tag: { - "patchouli:book": "advancedperipherals:manual" - } - } - } - { - id: "6A25D30D59AEE169" - type: "item" - item: "advancedperipherals:peripheral_casing" - } - ] + rewards: [{ + id: "6A25D30D59AEE169" + type: "item" + item: "advancedperipherals:peripheral_casing" + }] } { x: -2.5d From a86d28abc1742095967c7f744210d803481330b6 Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Wed, 29 Jun 2022 11:10:58 +0200 Subject: [PATCH 10/53] Ok this one should fix what I've messed up I think it should... --- .../quests/chapters/computercraft_tweaked.snbt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 4fc7f4d505..d42a4c422c 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -365,7 +365,7 @@ icon: "minecraft:barrel" x: -7.5d y: -1.0d - subtitle: "Lua Basics: Global Block Inventory API" + subtitle: "Lua Basics: Global Inventory API" description: [""] dependencies: ["55493D823F7403DA"] id: "4D55FB33758DEF7D" @@ -535,7 +535,6 @@ { x: -6.0d y: 4.0d - description: ["TODO: Add different colors into the quest."] dependencies: ["1580D9FD06937ABB"] id: "0C3CF3165304BB22" tasks: [ @@ -547,10 +546,13 @@ { id: "679CA9A8D8852B7A" type: "item" + title: "Floppy Disk" item: { - id: "computercraft:disk" + id: "itemfilters:id_regex" Count: 1b - tag: { } + tag: { + value: "computercraft:disk$" + } } } ] From 3324ad276949fec51e026abf27a22aa806093e69 Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Wed, 29 Jun 2022 11:22:26 +0200 Subject: [PATCH 11/53] ComputerCraft: Tweaked usage fix Fixed using CC:Tweaked and ComputerCraft and ComputerCraft:Tweaked randomly, now there is mostly ComputerCraft: Tweaked everywhere and in few places ComputerCraft because Tweaked didn't look great there. --- .../quests/chapters/computercraft_tweaked.snbt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index d42a4c422c..41e47de950 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -83,7 +83,7 @@ y: 0.0d subtitle: "There is something more than Computers?!" description: [ - "CC: Tweaked has a lot peripherals that are really useful for doing anything!" + "ComputerCraft: Tweaked has a lot peripherals that are really useful for doing anything!" "" "This section will show you all peripherals available and how to use them." ] @@ -107,7 +107,7 @@ y: -4.5d subtitle: "Stuff you need for any sort of automation!" description: [ - "Advanced Peripherals is an addon for CC: Tweaked that adds massive amount of functionality to it with just few simple blocks!" + "Advanced Peripherals is an addon for ComputerCraft: Tweaked that adds massive amount of functionality to it with just few simple blocks!" "" "Check individual quests for any peripheral from this mod to see what it's doing and how to use it!" "TODO: Link to official Advanced Peripherals WIKI" @@ -330,7 +330,7 @@ description: [ "In general, a Peripheral is any block you could think of. Classic Minecraft Chest or Furnace, Drawer, Mekanism Metallurgic Infuser, anything!" "" - "In ComputerCraft, to use any peripheral you need to wrap / find it first. You could set it to a local variable to be able to just use name you gave it in the code." + "In ComputerCraft: Tweaked, to use any peripheral you need to wrap / find it first. You could set it to a local variable to be able to just use name you gave it in the code." "" "Functions:" "peripheral.wrap(\"#1\")" @@ -344,7 +344,7 @@ "" "peripheral.getName(#1)" "#1 -> Peripheral you want to get name of." - "getName is really useful command used a lot in CC, a lot of commands (mostly for moving stuff from one inventory to another) requires you to give them \"Name\" of the peripheral, and not a table that wrap / find gives you. This takes what wrap / find returns and gives the Name of that peripheral!" + "getName is really useful command used a lot in ComputerCraft, a lot of commands (mostly for moving stuff from one inventory to another) requires you to give them \"Name\" of the peripheral, and not a table that wrap / find gives you. This takes what wrap / find returns and gives the Name of that peripheral!" ] dependencies: ["378BEFB62C4F98BF"] min_width: 350 @@ -474,12 +474,12 @@ }] } { - title: "CC Peripherals" + title: "ComputerCraft Peripherals" icon: "computercraft:pocket_computer_normal" x: -4.5d y: 4.5d subtitle: "Wait there is even more?" - description: ["ComputerCraft itself adds a few unique peripherals. Some of them aren't as useful as others, but all of them are worth attention."] + description: ["ComputerCraft: Tweaked adds on its own a few unique peripherals. Some of them aren't as useful as others, but all of them are worth attention."] dependencies: ["378BEFB62C4F98BF"] id: "1580D9FD06937ABB" tasks: [{ @@ -691,7 +691,7 @@ description: [ "If you want to learn even more, or need something that isn't here, check out those links!" "" - "Those are official docs to Lua Programming Languae, as well as to CC: Tweaked Wiki and Mekanism integration." + "Those are official docs to Lua Programming Languae, as well as to ComputerCraft: Tweaked Wiki and Mekanism integration." "TODO: clickable links or message on chat" ] dependencies: ["2D79E4D126EE389E"] @@ -949,7 +949,7 @@ "You can just drag \\& drop files into minecraft itself!" "You just have to create a file on your desktop, code in it and rename it onto [your_name].lua, drop it into in-game Computer and run it. It's that easy ^^" "" - "If you want to have proper Lua support and checking, you can install Visual Studio Code and ComputerCraft: Tweaked Plugin for full CC Lua support! Link to that Plugin is in wiki of that quest" + "If you want to have proper Lua support and checking, you can install Visual Studio Code and ComputerCraft: Tweaked Plugin for full ComputerCraft Lua support! Link to that Plugin is in wiki of that quest" "TODO: some sort of link to CC: Tweaked Plugin for Visual Studio Code " ] dependencies: ["2D79E4D126EE389E"] From c13f81512acf640d93bd03b9c8f0e88e6ff60e3f Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Fri, 1 Jul 2022 00:56:51 +0200 Subject: [PATCH 12/53] Massie progress and changes Added new section - Tasks! It will be few quests that will show basic programs to people to write, like printing something on terminal, wrapging monitor, moving items beetween chests etc. Progress on Lua Basics - Added what is Variable, and few of its types and some tips Already Existing Challenges are probably gonna be tasks. Changed node positions. More Fixed Typos and deleted unnecessary ! and ^^ Ideas: Before reading everything from Lua Basics (or at least till the moment you will understand what is API, and what is a function etc) all peripheral quests will be hidden, so people will not get confused if they will read them first --- .../chapters/computercraft_tweaked.snbt | 329 ++++++++++++++---- 1 file changed, 262 insertions(+), 67 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 41e47de950..cbf62462bf 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -24,8 +24,6 @@ "Those quests are meant to showcase the mod, and teach you, fellow Player, Basics of Basics with Lua and how to start learning more!" "" "~~Kanzio" - "" - "PS: This chapter has few section: Peripherals, Lua Basics and Challenges! Most of them work on \"honor\" system, so please don't just do them all by once without even trying ^^\"" ] size: 2.0d optional: true @@ -45,9 +43,9 @@ } { title: "Advanced Computer" - x: -0.5d - y: -2.5d - subtitle: "Shiny!" + x: -2.5d + y: -1.0d + subtitle: "Shiny." description: [ "This fancy gold plated computer has a tiny bit more to offer than his old gray ancestor." "" @@ -79,7 +77,7 @@ Color: 14605932 } } - x: -3.0d + x: -5.0d y: 0.0d subtitle: "There is something more than Computers?!" description: [ @@ -103,7 +101,7 @@ } { title: "Advanced Peripherals" - x: -4.5d + x: -6.5d y: -4.5d subtitle: "Stuff you need for any sort of automation!" description: [ @@ -126,7 +124,7 @@ }] } { - x: -2.5d + x: -4.5d y: -4.0d subtitle: "Lua Basics: Enviroment Detector API" dependencies: ["6AA1236C9946F569"] @@ -138,7 +136,7 @@ }] } { - x: -3.0d + x: -5.0d y: -3.0d subtitle: "Lua Basics: Chat API" description: [ @@ -161,7 +159,7 @@ }] } { - x: -4.0d + x: -6.0d y: -6.5d subtitle: "Lua Basics: Player Detector API" dependencies: ["6AA1236C9946F569"] @@ -173,7 +171,7 @@ }] } { - x: -6.0d + x: -8.0d y: -3.0d subtitle: "Lua Basics: RS Bridge API" dependencies: ["6AA1236C9946F569"] @@ -185,7 +183,7 @@ }] } { - x: -6.5d + x: -8.5d y: -4.0d subtitle: "Lua Basics: Energy Detector API" dependencies: ["6AA1236C9946F569"] @@ -198,7 +196,7 @@ } { icon: "advancedperipherals:ar_controller" - x: -5.0d + x: -7.0d y: -6.5d subtitle: "Lua Basics: AR Controller API" dependencies: ["6AA1236C9946F569"] @@ -223,7 +221,7 @@ ] } { - x: -6.5d + x: -8.5d y: -5.0d subtitle: "Lua Basics: Inventory Manager API" dependencies: ["6AA1236C9946F569"] @@ -235,9 +233,15 @@ }] } { - x: -5.0d + x: -7.0d y: -2.5d subtitle: "Lua Basics: Redstone API" + description: [ + "The Redstone Integrator is used to Emit / Read redstone signals in the world." + "" + "Functions:" + "TODO: Add better Function explenation" + ] dependencies: ["6AA1236C9946F569"] id: "78DDFBC9534A6310" tasks: [{ @@ -247,7 +251,7 @@ }] } { - x: -2.5d + x: -4.5d y: -5.0d subtitle: "Lua Basics: Block Reader API" dependencies: ["6AA1236C9946F569"] @@ -259,7 +263,7 @@ }] } { - x: -3.0d + x: -5.0d y: -6.0d subtitle: "Lua Basics: Geo Scanner API" dependencies: ["6AA1236C9946F569"] @@ -271,7 +275,7 @@ }] } { - x: -6.0d + x: -8.0d y: -6.0d dependencies: ["6AA1236C9946F569"] id: "064DB44EB6A2DF89" @@ -283,8 +287,8 @@ } { title: "Pocket Computers" - x: 0.5d - y: -2.5d + x: -2.5d + y: 1.0d subtitle: "Cookie Clicker in your Pocket all the time!" description: [ "There are item version of those computers as well. Maybe they aren't so useful with automating stuff, but with some knowledge you can do, for example, a pocket Cookie Clicker game!" @@ -323,7 +327,7 @@ { title: "About Peripherals in General" icon: "minecraft:chest" - x: -5.5d + x: -7.5d y: 0.0d shape: "circle" subtitle: "Lua Basics: Peripheral API" @@ -345,6 +349,8 @@ "peripheral.getName(#1)" "#1 -> Peripheral you want to get name of." "getName is really useful command used a lot in ComputerCraft, a lot of commands (mostly for moving stuff from one inventory to another) requires you to give them \"Name\" of the peripheral, and not a table that wrap / find gives you. This takes what wrap / find returns and gives the Name of that peripheral!" + "" + "For more information look up ComputerCraft: Tweaked Wiki!" ] dependencies: ["378BEFB62C4F98BF"] min_width: 350 @@ -363,7 +369,7 @@ { title: "Inventory API" icon: "minecraft:barrel" - x: -7.5d + x: -9.5d y: -1.0d subtitle: "Lua Basics: Global Inventory API" description: [""] @@ -383,7 +389,7 @@ { title: "Liquid API" icon: "minecraft:water_bucket" - x: -7.5d + x: -9.5d y: 0.0d subtitle: "Lua Basics: Global Liquid API" dependencies: ["55493D823F7403DA"] @@ -430,7 +436,7 @@ { title: "Energy API" icon: "mekanism:basic_energy_cube" - x: -7.5d + x: -9.5d y: 1.0d subtitle: "Lua Basics: Global Energy API" dependencies: ["55493D823F7403DA"] @@ -476,7 +482,7 @@ { title: "ComputerCraft Peripherals" icon: "computercraft:pocket_computer_normal" - x: -4.5d + x: -6.5d y: 4.5d subtitle: "Wait there is even more?" description: ["ComputerCraft: Tweaked adds on its own a few unique peripherals. Some of them aren't as useful as others, but all of them are worth attention."] @@ -494,7 +500,7 @@ }] } { - x: -5.0d + x: -7.0d y: 6.0d subtitle: "Lua Basics: Monitor \\& term functions" dependencies: ["1580D9FD06937ABB"] @@ -522,7 +528,7 @@ }] } { - x: -5.5d + x: -7.5d y: 3.0d dependencies: ["1580D9FD06937ABB"] id: "582FF2D81252AC77" @@ -533,7 +539,7 @@ }] } { - x: -6.0d + x: -8.0d y: 4.0d dependencies: ["1580D9FD06937ABB"] id: "0C3CF3165304BB22" @@ -559,7 +565,7 @@ } { icon: "computercraft:printer" - x: -4.0d + x: -6.0d y: 6.0d dependencies: ["1580D9FD06937ABB"] id: "181772F6C62A4EEF" @@ -578,7 +584,7 @@ ] } { - x: -3.0d + x: -5.0d y: 5.5d dependencies: ["1580D9FD06937ABB"] id: "229E3C141CF5DCA7" @@ -605,7 +611,7 @@ }] } { - x: -6.0d + x: -8.0d y: 5.0d dependencies: ["1580D9FD06937ABB"] id: "162927942501A25B" @@ -653,7 +659,7 @@ ] } { - x: -7.5d + x: -9.5d y: 4.5d subtitle: "No More Cables!" description: [""] @@ -683,19 +689,19 @@ } { title: "Documentation" - icon: "computercraft:printed_pages" - x: 2.5d - y: 1.25d + icon: "akashictome:tome" + x: 2.25d + y: 2.25d shape: "pentagon" - subtitle: "Official Wikis for everything!" + subtitle: "Official Wikis for everything." description: [ - "If you want to learn even more, or need something that isn't here, check out those links!" + "If you want to learn even more, or need something that isn't here, check out those links." "" "Those are official docs to Lua Programming Languae, as well as to ComputerCraft: Tweaked Wiki and Mekanism integration." "TODO: clickable links or message on chat" ] dependencies: ["2D79E4D126EE389E"] - size: 1.25d + size: 1.5d id: "508989B512DBB2A2" tasks: [{ id: "0ED4FB7A29E8557D" @@ -712,8 +718,8 @@ title: "Challenges" icon: "computercraft:computer_command" x: 0.0d - y: 2.25d - shape: "hexagon" + y: 3.0d + shape: "gear" subtitle: "Try yourself!" description: [ "Here are some easy challenges you could try completing to test what you learned so far. For every challenge you will get a small prize :wink:" @@ -738,8 +744,8 @@ { title: "Your first program!" icon: "computercraft:printed_page" - x: -0.5d - y: 4.0d + x: -2.0d + y: 4.5d subtitle: "Challenge #1" description: ["Make a program that will type on the monitor every 5 seconds phrase \"My First Program!\""] dependencies: ["777349A29491AE4C"] @@ -802,8 +808,8 @@ { title: "Item Transfer!" icon: "mekanism:basic_mechanical_pipe" - x: 1.5d - y: 4.5d + x: -1.5d + y: 6.0d subtitle: "Challenge #2" description: ["Make a program that will transfer items from inventory on the left to inventory on the right."] dependencies: ["7F980AC22498FE44"] @@ -862,8 +868,8 @@ { title: "Using Peripherals to interract with RS" icon: "refinedstorage:disk_drive" - x: 0.0d - y: 6.0d + x: 0.5d + y: 6.5d subtitle: "Challenge #3" description: ["Use Advanced Peripherals to export some items from RS into a chest."] dependencies: ["06A8B69F9385388B"] @@ -939,8 +945,8 @@ { title: "Coding Tips" icon: "create:wrench" - x: 2.5d - y: -1.25d + x: 3.125d + y: 0.0d shape: "gear" subtitle: "Enough of in-game coding? There is a solution!" description: [ @@ -965,16 +971,16 @@ { title: "Introduction to Lua" icon: "computercraft:printed_book" - x: 3.0d - y: 0.0d - shape: "octagon" + x: 2.25d + y: -2.25d + shape: "hexagon" subtitle: "Lua Basics #0 - Introduction" description: [ "Welcome to Lua fellow Player!" "" "Lua is one of many coding languages out there, but its one of the easiest ones. Don't think that it means its worse than others :stuck_out_tongue:" "" - "Its pretty powerful, but simple language, so simple it can be implemented into other games!" + "Its pretty powerful, but simple language, so simple it can be implemented into other games." "That doesn't meen that its only use in this application. There are a lot of games coded on Lua, that are pretty neat and popular (The Binding of Isaac for example)." "" "In this tutorial I'll try to teach you basics of basics of Lua, so you can try doing your own automation projects with it!" @@ -1077,8 +1083,8 @@ { title: "Wireless communications!" icon: "computercraft:wireless_modem_normal" - x: 4.5d - y: 6.0d + x: 2.5d + y: 4.5d subtitle: "Challenge #4.2" description: [ "" @@ -1095,13 +1101,34 @@ { title: "Variables and their types" icon: "computercraft:printed_pages" - x: 7.5d - y: -1.25d + x: 5.5d + y: -3.5d shape: "diamond" subtitle: "Lua Basics #1 - Variables" - description: ["I will finish this after fixing everything else ^^\""] + description: [ + "Lets start out with basics of basics shall we?" + "" + "Variables are a place in the memory, where you can store data. Like a file, they have their own name, that you can use to interract with them. This is the most important thing in every programming language, because without those, you wouldn't be able to store and use any data at all in the program!" + "" + "The way variables work is pretty simple, you set the name for it, and optionally you set what data it stores." + "" + "-> local My_First_Variable = 0" + "" + "● \"local\" is a function for creating new variables. \"My_First_Variable\" is the variable's name, that is first argument! Get used to that word, because every function has one or more of them." + "● Second \"argument\" is a data you want to store in that variable. Its optional, that means you can just leave it empty and variable still be created, but when you are gonna try reading it, it will return \"nil\"." + "(Important note: You can't type \"local x =\" when you aren't gonna store anything in that variable. You need to use \"local x\" or \"local x = nil\")" + "" + "Now to read your variable, you simply use the name of your variable. It will give to the function data it contains (value). You can't read variables in any other place than function argument!" + "" + "Only time it will function differently is when you want to change data it stores. Lets say we don't want our variable to store 0, we want it to store E6, how we can do that? To change value of variable, you simply type its name and set new data you want it to store." + "" + "-> My_First_Variable = \"E6\"" + "" + "\"But Kanzio, what does \"nil\" mean and why did you use quotation marks with E6?\" - So there is few types of variables, and every of them have its own unique rules. Check \"Lua Basics #1 - Variable types\" above this quest for more information about those." + ] dependencies: ["44029061DB640AE2"] size: 1.25d + min_width: 400 id: "29C780353E7FB720" tasks: [{ id: "282439D423FAC52F" @@ -1111,8 +1138,11 @@ } { title: "Type: Table" - x: 5.5d - y: -3.0d + icon: "computercraft:printed_page" + x: 3.65d + y: -4.8d + subtitle: "Lua Basics #1 - Variable types" + dependencies: ["29C780353E7FB720"] id: "152F6E8D35D2069A" tasks: [{ id: "124F45AFAA7A0206" @@ -1122,8 +1152,20 @@ } { title: "Type: Boolean" - x: 6.5d - y: -3.5d + icon: "computercraft:printed_page" + x: 3.0d + y: -4.0d + subtitle: "Lua Basics #1 - Variable types" + description: [ + "Boolean is the easiest type in every programming language. It can have 2 states, \"True\" and \"False\"." + "" + "Its really useful in situations you need to check if something is True, or False. Example:" + "-> You need to know if on the left from the PC is chest. If there is chest, its \"True\", if there is not, \"False\"" + "" + "A lot of functions are returning boolean variable after they ended they work, it is useful to check for that output to see if what you wanted to do was actually done." + ] + dependencies: ["29C780353E7FB720"] + min_width: 250 id: "182654F933DE1815" tasks: [{ id: "32D28AB681CE8601" @@ -1133,8 +1175,11 @@ } { title: "Type: Function" - x: 7.5d - y: -4.0d + icon: "computercraft:printed_page" + x: 4.5d + y: -5.4d + subtitle: "Lua Basics #1 - Variable types" + dependencies: ["29C780353E7FB720"] id: "7B00ECCC48DA0445" tasks: [{ id: "20F5794B8753B648" @@ -1144,8 +1189,18 @@ } { title: "Type: String" - x: 9.5d - y: -3.0d + icon: "computercraft:printed_page" + disable_toast: true + x: 7.35d + y: -4.8d + subtitle: "Lua Basics #1 - Variable types" + description: [ + "String is a type of variable that stores a sequence of characters. You can type here anything, binary code (Binary - Code using ones and zeros), your name, entire address or your homework :wink:" + "" + "Strings can not be modified, but you can do a copy of it with a modification you want to do." + ] + dependencies: ["29C780353E7FB720"] + min_width: 300 id: "32B8B586F03321A7" tasks: [{ id: "32E1201F35F1A394" @@ -1155,8 +1210,11 @@ } { title: "Type: Number" - x: 8.5d - y: -3.5d + icon: "computercraft:printed_page" + x: 6.5d + y: -5.4d + subtitle: "Lua Basics #1 - Variable types" + dependencies: ["29C780353E7FB720"] id: "08E925A9223FC1BF" tasks: [{ id: "56800F53C736541F" @@ -1164,5 +1222,142 @@ title: "Got it!" }] } + { + title: "Variable Tips \\& Tricks" + icon: "computercraft:printed_page" + x: 5.5d + y: -2.0d + subtitle: "Lua Basics #1.2 - Variable naming" + description: [ + "Variable naming:" + "For setting variable's name, its important to know few things:" + "" + "● Lua is \"capital sensitive\". It means that variables with name \"test\" and \"TEST\" are two different variables! " + "" + "● Variable's name can't be longer than 64 characters" + "" + "● Variable's name can't start with an number and can't have any spaces:" + "local test_1 -> Variable named correctly" + "local 1_test -> Variable named incorrectly, will not work" + "local test 1 -> Variable named incorrectly, will not work" + "" + "● You should name variables in a way that they represent theirs use:" + "local day = \"Monday\"" + "local x123 = \"Monday\"" + "Both of those are used by me to store day of the week, but first one is named with its purpose in mind, other one is just random thing. They both will work, however if you are trying to do more advanced program, random names like x123 are gonna mess with you really quickly." + "" + "General tips \\& tricks:" + "" + "● You can create few variables at the same time! You just simply type two or more names after \"local\" and seperate them with comma. You can even set in the same way unique value for every variable." + "-> local x, y, z = 1, 2, 3" + "x -> 1 / y -> 2 / z -> 3" + "" + "Dev Note: Remember to check this out later on and think if you didn't forget anything important ^^\"" + ] + dependencies: ["29C780353E7FB720"] + min_width: 400 + id: "0944D4C1A4E3C8F3" + tasks: [{ + id: "00E1D2866C886632" + type: "checkmark" + title: "Got it!" + }] + rewards: [{ + id: "5BC935817892D231" + type: "xp" + xp: 100 + }] + } + { + icon: "minecraft:writable_book" + x: 0.5d + y: 5.0d + description: [ + "Challenges are gonna change a lot. Those that are here right now, are gonna be in new section: Tasks! It will give a tutorial how to do a program so people can see how to write code" + "" + "Challenges are gonna be hard from the beggining. Probably I will do 2 types of them: " + "basic -> Can be done w/o knowledge from somewhere else " + "advanced -> For advanced Users only, Requires usage of Wiki and Lua Docs, and probably experience for few of them" + "" + "PS: For anyone that sees this. If you have any idea for quest requiremt for completion or better icon, I would aprreciate that ^^\"" + "" + "And about lua basics. I'm planing to add few more quests, talking about loops, function IF and searching for functions at wikis etc. Shouldn't be more than 10 quests (without those ones that have Variables Types) for entire Lua Basics" + ] + min_width: 350 + id: "422379AAF05456FC" + tasks: [{ + id: "347BE76BC944769F" + type: "custom" + title: "Note" + }] + } + { + icon: "minecraft:writable_book" + x: 0.0d + y: -3.0d + shape: "octagon" + subtitle: "Lua Basics - Coding practice" + dependencies: ["2D79E4D126EE389E"] + size: 1.5d + id: "4B5728FBD119B4B7" + tasks: [{ + id: "3E2B04698DC03A84" + type: "checkmark" + title: "Tasks!" + }] + } + { + title: "Variables Types - In General" + icon: "computercraft:printed_page" + x: 5.5d + y: -5.75d + subtitle: "Lua Basics #1 - Variable types" + description: [ + "Every variable has its own type that determines what it stores and what you can do to it." + "" + "In Lua there is 8 variable types, however I will cover only 6 because 2 of them aren't that useful in ComputerCraft, and require much more knowledge." + "" + "Lua, whenever you are trying to do something that is designed for different type of variable, will try to convert variable you use to the type it needs to be. Of course it will not success 100%, because sometimes its impossible to convert. In this case it will crash the program and give error about illegal function on that type of the variable." + "" + "There are few ways to convert manually one type to another, but its not that useful in stuff we are gonna do, and can be found in Official Lua Docs." + "" + "Note: If you already know Integrated Dynamics' variable types, a lot of ComputerCraft ones are really similiar. On the last line of every type quest there is a note saying what type of Variable is that in ID :wink: -- need feedback about this, should I add this or its kinda pointless?" + "TODO: Link to the site with convert Functions" + ] + dependencies: ["29C780353E7FB720"] + min_width: 375 + id: "356E3B812A576EF7" + tasks: [{ + id: "01B3465E67E41884" + type: "checkmark" + title: "Got it!" + }] + } + { + title: "Type: Nil" + icon: "computercraft:printed_page" + x: 8.0d + y: -4.0d + subtitle: "Lua Basics #1 - Variable types" + description: [ + "Nil is a variable type and variable value. It means literally \"nothing\" in code. Variable with type nil, asked for their type and value, will return nil." + "" + "Nil is useful when you need to clear some variable after use." + "" + "x = nil" + "" + "● This will set type and value of x as nil, setting it like it was just created in that line." + "" + "Also some functions, when they don't find anything you asked for, they will return nil." + ] + dependencies: ["29C780353E7FB720"] + min_width: 400 + id: "1BFF3074E9708917" + tasks: [{ + id: "401DE5F2E19708E0" + type: "checkmark" + title: "Got it!" + }] + } ] } From 3f4e5aeb39d6d34ff9dd49963b65c4720d63ae84 Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Fri, 1 Jul 2022 13:36:38 +0200 Subject: [PATCH 13/53] Changed a bit Lua Basics #1 --- .../quests/chapters/computercraft_tweaked.snbt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index cbf62462bf..50cdcfbc2f 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -1115,16 +1115,16 @@ "-> local My_First_Variable = 0" "" "● \"local\" is a function for creating new variables. \"My_First_Variable\" is the variable's name, that is first argument! Get used to that word, because every function has one or more of them." - "● Second \"argument\" is a data you want to store in that variable. Its optional, that means you can just leave it empty and variable still be created, but when you are gonna try reading it, it will return \"nil\"." - "(Important note: You can't type \"local x =\" when you aren't gonna store anything in that variable. You need to use \"local x\" or \"local x = nil\")" + "● Second \"argument\" is a data you want to store in that variable. Its optional, that means you can just leave it empty and variable will still be created, but when you are gonna try reading it, it will return \"nil\"." + "(Important note: You can't write \"local x =\" when you want to create empty variable. You need to use \"local x\" or \"local x = nil\")" "" - "Now to read your variable, you simply use the name of your variable. It will give to the function data it contains (value). You can't read variables in any other place than function argument!" + "Now to read your variable, you just simply use the name of your variable. It will give to the function data it contains (value). You can't read variables in any other place than function's argument!" "" - "Only time it will function differently is when you want to change data it stores. Lets say we don't want our variable to store 0, we want it to store E6, how we can do that? To change value of variable, you simply type its name and set new data you want it to store." + "Only time it will function differently is when you want to change data it stores. Lets say we don't want our variable to store 0, we want it to store Enigmatica 6, how we can do that? To change value of variable, you simply type its name and set new data you want it to store." "" - "-> My_First_Variable = \"E6\"" + "-> My_First_Variable = \"Enigmatica 6\"" "" - "\"But Kanzio, what does \"nil\" mean and why did you use quotation marks with E6?\" - So there is few types of variables, and every of them have its own unique rules. Check \"Lua Basics #1 - Variable types\" above this quest for more information about those." + "\"But Kanzio, what does \"nil\" mean and why did you use quotation marks with Enigmatica 6?\" - So there is few types of variables, and every of them have its own unique rules. Check \"Lua Basics #1 - Variable types\" above this quest for more information about those." ] dependencies: ["44029061DB640AE2"] size: 1.25d From 998f0964c7ed81b282991c9105e295ab7fecb58f Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Sat, 2 Jul 2022 00:26:40 +0200 Subject: [PATCH 14/53] Lua Basics 1 Progress Finished String Type Added Number Type Fixed few typos --- .../chapters/computercraft_tweaked.snbt | 46 ++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 50cdcfbc2f..1ed5f4382f 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -1197,10 +1197,30 @@ description: [ "String is a type of variable that stores a sequence of characters. You can type here anything, binary code (Binary - Code using ones and zeros), your name, entire address or your homework :wink:" "" + "Strings need to be written between double quotes to be valid, otherwise program will think its the name of variable!" + "" + "local my_first_string = \"Hello Player\" -> Valid" + "local my_first_string = Hello Player -> Not valid, program will think those are two variables" + "" "Strings can not be modified, but you can do a copy of it with a modification you want to do." + "local test_string = \"This is a test\"" + "local test_string_edited = string.gsub(test_string, \"test\", \"Test!\", 1)" + "test_string_edited -> \"This is a Test!\"" + "" + "string.gsub is one of few ways you can edit your strings. First argument takes the string / variable you want to edit, second one what \"characters\" you want to change, and third one takes what you want to put in that place." + "There is fourth argument (Optional) that tells the program which occurance of those characters to change. If, for example, we would have 2 \"test\" in our string, with number you can set which one to edit! In our case it would edit the first one." + "" + "There is also a way to add some text at the end of your string. This time you can \"edit\" the initial string by overwriting it, but its sometimes useful to have it as seperate variables." + "To add some text at the end of your string, you use 2 dots between 2 strings you want to add together:" + "local string_1 = \"Hello \"" + "local string_2 = \"there!\"" + "local full_string = string_1 .. string_2" + "full_string -> \"Hello there!\"" + "" + "There is also a few different ways to modify your strings, and to format them, however those can be found in Lua docs!" ] dependencies: ["29C780353E7FB720"] - min_width: 300 + min_width: 400 id: "32B8B586F03321A7" tasks: [{ id: "32E1201F35F1A394" @@ -1214,7 +1234,31 @@ x: 6.5d y: -5.4d subtitle: "Lua Basics #1 - Variable types" + description: [ + "Number is a type of variable to store numbers. Yes literally :sweat_smile:" + "" + "Numbers should be written without any other characters to be valid and recognised as number:" + "local my_first_number = 6" + "my_first_number -> 6" + "" + "● There are few exceptions however, as you can do single and double precision numbers as well. For that you just use a dot:" + "local some_number = 1.54" + "● You can also write numbers in scientific notation (example: 5e20), but personally I wouldn't recommend that unless you know what you are doing." + "" + "Lua supports the usual arithemitcs operators:" + "+ -> Addition" + "- -> Substraction" + "* -> Multiplication" + "/ -> Division" + "" + "Its really simple to use them, you just write between two numbers operator you want to use:" + "local add = 6 + 10" + "add -> 16" + "" + "Unfortunately Lua doesn't support anything else that those 4 basic operators, for anything else that you will need to write the function yourself. For creating functions check out Function type in Lua Basics #1" + ] dependencies: ["29C780353E7FB720"] + min_width: 400 id: "08E925A9223FC1BF" tasks: [{ id: "56800F53C736541F" From 613b62effcb7e7af084acd6226e779fdd16b945c Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Sat, 2 Jul 2022 23:49:33 +0200 Subject: [PATCH 15/53] Lua Basics 1 Finished & other changes Finished (kinda) Lua Basics 1, added first coding task! Note: Dear fricking god those quests are taking me over hour / 2 for only one! Its harder than I thought :sweat_smile: Tbh I like it, its a challenge for me :smile: --- .../chapters/computercraft_tweaked.snbt | 139 +++++++++++++++--- 1 file changed, 122 insertions(+), 17 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 1ed5f4382f..ec8ae3df20 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -83,7 +83,7 @@ description: [ "ComputerCraft: Tweaked has a lot peripherals that are really useful for doing anything!" "" - "This section will show you all peripherals available and how to use them." + "This section will show you all peripherals available and how to use their APIs." ] dependencies: ["2D79E4D126EE389E"] size: 1.25d @@ -1112,17 +1112,20 @@ "" "The way variables work is pretty simple, you set the name for it, and optionally you set what data it stores." "" - "-> local My_First_Variable = 0" + "> local My_First_Variable = 0" "" "● \"local\" is a function for creating new variables. \"My_First_Variable\" is the variable's name, that is first argument! Get used to that word, because every function has one or more of them." "● Second \"argument\" is a data you want to store in that variable. Its optional, that means you can just leave it empty and variable will still be created, but when you are gonna try reading it, it will return \"nil\"." - "(Important note: You can't write \"local x =\" when you want to create empty variable. You need to use \"local x\" or \"local x = nil\")" + "(Important note: You can't write \"local x =\" when you want to create empty variable. You need to use \"local x\" or \"local x = nil\" where x is your's variable name)" "" - "Now to read your variable, you just simply use the name of your variable. It will give to the function data it contains (value). You can't read variables in any other place than function's argument!" + "Now to read your variable, you just simply use the name of your variable. It will give to the function data it contains (value). You can't read variables in any other place than function's argument! However for demonstration purposes, I will showcase variable's value like that:" "" - "Only time it will function differently is when you want to change data it stores. Lets say we don't want our variable to store 0, we want it to store Enigmatica 6, how we can do that? To change value of variable, you simply type its name and set new data you want it to store." + "> My_First_Variable -> 0" "" - "-> My_First_Variable = \"Enigmatica 6\"" + "Only time it will function differently is when you want to change data it stores. Lets say we don't want our variable to store 0, we want it to store Enigmatica 6, how we can do that? To change value of variable, you simply overwrite it. That means you are deleting old value of variable, and putting new data in its place. To do that, you just simply use variable's name and set new value!" + "" + "> My_First_Variable = \"Enigmatica 6\"" + "> My_First_Variable -> \"Enigmatica 6\"" "" "\"But Kanzio, what does \"nil\" mean and why did you use quotation marks with Enigmatica 6?\" - So there is few types of variables, and every of them have its own unique rules. Check \"Lua Basics #1 - Variable types\" above this quest for more information about those." ] @@ -1142,6 +1145,7 @@ x: 3.65d y: -4.8d subtitle: "Lua Basics #1 - Variable types" + description: ["TODO: Do it actually ^^\" Tables are actually hard to explain, so thats off for later"] dependencies: ["29C780353E7FB720"] id: "152F6E8D35D2069A" tasks: [{ @@ -1179,7 +1183,32 @@ x: 4.5d y: -5.4d subtitle: "Lua Basics #1 - Variable types" + description: [ + "You heard already few times a function word in this quest line, but did you know its also a one of variable types?" + "Function is a variable that doesn't store data, it stores other functions and variables in it, that you can use in other place with just the name of that function. Pretty convenient isn't it?" + "" + "As every variable, you can change its value later on to whatever you want. Yes that means you can edit some of Lua Functions and other APIs, but it will break stuff most of the time :sweat_smile:" + "API is set of functions you can use to interract with stuff that uses that API. For example to interract with monitor of the PC, you need to use API that has functions to do that. How to use APIs will be later." + "" + "Now lets see how to use functions." + "For you to call (In other words, use) function, you need to simply type its name with 2 brackets. Between those are function's arguments." + "" + "> print(string) -> Basic function to write text on the screen. Has one argument." + "" + "In my case I called print(). Some of the functions doesn't require you to give them arguments, they can even don't have any of them, but there can be functions that require from you even 10 arguments. Crazy isn't it?!" + "In our case, print() requires as it's first and only argument some string (Read \"Type: String\" quest to know what string is)" + "So example usage of print() would look like this:" + "" + "> print(\"This is a test!\") -> Writes on the screen --> This is a test!" + "" + "As you can use variables in place of function's arguments, you can use functions as argument as well! Most of the functions return something, if its a table with stuff they found, or just boolean if they were able to do what they need to. They can even return other function! To use function as the argument, you just write it as you would normally, but in the argument of other function." + "" + "> print(my_function(1)) -> It will print what my_function will return." + "" + "For more about Functions, and how to create them, check Lua Basics #2, Creating Functions and Usage of API" + ] dependencies: ["29C780353E7FB720"] + min_width: 450 id: "7B00ECCC48DA0445" tasks: [{ id: "20F5794B8753B648" @@ -1199,7 +1228,7 @@ "" "Strings need to be written between double quotes to be valid, otherwise program will think its the name of variable!" "" - "local my_first_string = \"Hello Player\" -> Valid" + "local my_first_string = \"Hello Player\" -> Valid string" "local my_first_string = Hello Player -> Not valid, program will think those are two variables" "" "Strings can not be modified, but you can do a copy of it with a modification you want to do." @@ -1214,10 +1243,11 @@ "To add some text at the end of your string, you use 2 dots between 2 strings you want to add together:" "local string_1 = \"Hello \"" "local string_2 = \"there!\"" - "local full_string = string_1 .. string_2" - "full_string -> \"Hello there!\"" + "string_1 = string_1 .. string_2" + "(Note: string_2 can be replaced by non-string variable if it can be converted to string)" + "string_1 -> \"Hello there!\"" "" - "There is also a few different ways to modify your strings, and to format them, however those can be found in Lua docs!" + "There is also a few different ways to modify your strings, and to format them, however those aren't as useful, and can be found in Lua docs!" ] dependencies: ["29C780353E7FB720"] min_width: 400 @@ -1238,11 +1268,11 @@ "Number is a type of variable to store numbers. Yes literally :sweat_smile:" "" "Numbers should be written without any other characters to be valid and recognised as number:" - "local my_first_number = 6" - "my_first_number -> 6" + "> local my_first_number = 6" + "> my_first_number -> 6" "" "● There are few exceptions however, as you can do single and double precision numbers as well. For that you just use a dot:" - "local some_number = 1.54" + "> local some_number = 1.54" "● You can also write numbers in scientific notation (example: 5e20), but personally I wouldn't recommend that unless you know what you are doing." "" "Lua supports the usual arithemitcs operators:" @@ -1252,10 +1282,10 @@ "/ -> Division" "" "Its really simple to use them, you just write between two numbers operator you want to use:" - "local add = 6 + 10" - "add -> 16" + "> local add = 6 + 10" + "> add -> 16" "" - "Unfortunately Lua doesn't support anything else that those 4 basic operators, for anything else that you will need to write the function yourself. For creating functions check out Function type in Lua Basics #1" + "Unfortunately Lua doesn't support anything else than those 4 basic operators, for anything else that you want, you will need to write the function yourself. For creating functions check out Function type in Lua Basics #1" ] dependencies: ["29C780353E7FB720"] min_width: 400 @@ -1341,6 +1371,11 @@ y: -3.0d shape: "octagon" subtitle: "Lua Basics - Coding practice" + description: [ + "Here are few easy tasks that will show you simple programs, to teach you practically how to do some stuff." + "" + "More tasks will get unlocked, the more you go in Lua Basics! Its recommended to do them as soon as possible, so you will practice stuff you learned as you go :D" + ] dependencies: ["2D79E4D126EE389E"] size: 1.5d id: "4B5728FBD119B4B7" @@ -1384,7 +1419,7 @@ y: -4.0d subtitle: "Lua Basics #1 - Variable types" description: [ - "Nil is a variable type and variable value. It means literally \"nothing\" in code. Variable with type nil, asked for their type and value, will return nil." + "Nil is a variable type and variable value. It means literally \"nothing\" in code. Variable with type nil, asked for their type and what they're storing, will return nil." "" "Nil is useful when you need to clear some variable after use." "" @@ -1403,5 +1438,75 @@ title: "Got it!" }] } + { + title: "Creating your own functions" + icon: "computercraft:printed_pages" + x: 8.0d + y: -2.0d + subtitle: "Lua Basics #2 - Creating Functions" + id: "5056B0737A8A8D64" + tasks: [{ + id: "0C2F459BCB9222EC" + type: "checkmark" + title: "Got it!" + }] + } + { + title: "Your first program!" + icon: "computercraft:computer_normal" + x: -1.0d + y: -5.0d + subtitle: "Practice: Variables" + description: [ + "Lets create our first program!" + "Main goal of task: Create a program that will use print() function to print few variables, before that lets edit few of them." + "" + "First thing we would like to do, is to create 2 strings, 2 numbers, a boolean and nil variables. Name of them is up to you :smile:" + "" + "Now as you know, print() function is to write some text on the screen, lets use it then! But first, we will add those two strings together." + "Another thing we would like to print are those numbers. Lets print first one, second one, and at the end we want to add them and print result." + "Now lets get our nil variable. As you know its empty, but that isn't efficient. Let's store \"Enigmatica 6 is great\" in it and print it!" + "Lastly we would like to know if our boolean variable is True or False. Print it!" + "" + "Final results should be 6 lines of text, with stuff you stored in the variables!" + "" + "Pro Tip: You don't need to do another variable in few cases like adding 2 variables together. You can do that in the functions argument!" + "" + "> local number_1, number_2 = 1, 5" + "> print(number_1 + number_2) -> Writes results on the screen -> 6" + ] + dependencies: ["4B5728FBD119B4B7"] + min_width: 400 + id: "5E591D65A5014852" + tasks: [ + { + id: "0829D34C8A1B13FA" + type: "checkmark" + title: "Got it working!" + disable_toast: true + } + { + id: "7981535031476D38" + type: "item" + title: "Computer" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "computercraft:computer_normal" + Count: 1b + } + { + id: "computercraft:computer_advanced" + Count: 1b + } + ] + } + } + } + ] + } ] } From 88f6e8ed460d7e84ed4e1cab76945fbcdb13326f Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Sat, 2 Jul 2022 23:59:42 +0200 Subject: [PATCH 16/53] Fast Function Quest fix Changed few things in Lua Basics 1 - Type Function quest as I forgot to write something there and change name on Lua Basics 2 --- config/ftbquests/quests/chapters/computercraft_tweaked.snbt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index ec8ae3df20..4025f917ba 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -1205,7 +1205,9 @@ "" "> print(my_function(1)) -> It will print what my_function will return." "" - "For more about Functions, and how to create them, check Lua Basics #2, Creating Functions and Usage of API" + "There is also a way to pass the function, that is useful sometimes and should be used with functions that doesn't require any arguments. To pass a function, you simply write its name but without brackets! However its not that useful in our usage, and until you will not go deeper into Lua coding, you will probably never use it." + "" + "For more about Functions, and how to create them, check Lua Basics #2." ] dependencies: ["29C780353E7FB720"] min_width: 450 From b6c60d5b07b4e9923336417d7499f537ca0074ce Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Sun, 3 Jul 2022 00:51:08 +0200 Subject: [PATCH 17/53] Changed all quests to be hidden until dependencies are visible This is to ensure that people will ready Lua Basics first, so they will not get lost reading the quests they shouldn't. Also changed a bit task 1, but I will probably rework it a bit later on because imo its not that great. Any opinions on that? --- .../chapters/computercraft_tweaked.snbt | 123 ++++++++++++++++-- 1 file changed, 111 insertions(+), 12 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 4025f917ba..d4575c1f9a 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -5,6 +5,7 @@ filename: "computercraft_tweaked" title: "ComputerCraft: Tweaked" icon: "computercraft:computer_normal" + subtitle: ["Lua Tutorial \\& Introduction to the mod!"] default_quest_shape: "" default_hide_dependency_lines: false quests: [ @@ -86,6 +87,7 @@ "This section will show you all peripherals available and how to use their APIs." ] dependencies: ["2D79E4D126EE389E"] + hide: true size: 1.25d id: "378BEFB62C4F98BF" tasks: [{ @@ -111,6 +113,7 @@ "TODO: Link to official Advanced Peripherals WIKI" ] dependencies: ["378BEFB62C4F98BF"] + hide: true id: "6AA1236C9946F569" tasks: [{ id: "56A45A4FCA54436D" @@ -353,6 +356,7 @@ "For more information look up ComputerCraft: Tweaked Wiki!" ] dependencies: ["378BEFB62C4F98BF"] + hide: true min_width: 350 id: "55493D823F7403DA" tasks: [{ @@ -374,6 +378,7 @@ subtitle: "Lua Basics: Global Inventory API" description: [""] dependencies: ["55493D823F7403DA"] + hide: true id: "4D55FB33758DEF7D" tasks: [{ id: "3EC51CC783415B4A" @@ -393,6 +398,7 @@ y: 0.0d subtitle: "Lua Basics: Global Liquid API" dependencies: ["55493D823F7403DA"] + hide: true id: "18C25A983C4831B7" tasks: [{ id: "7C6525BE6C8CA991" @@ -440,6 +446,7 @@ y: 1.0d subtitle: "Lua Basics: Global Energy API" dependencies: ["55493D823F7403DA"] + hide: true id: "7CD446B77ACA29F7" tasks: [{ id: "0085C0BFFF01C3DD" @@ -487,6 +494,7 @@ subtitle: "Wait there is even more?" description: ["ComputerCraft: Tweaked adds on its own a few unique peripherals. Some of them aren't as useful as others, but all of them are worth attention."] dependencies: ["378BEFB62C4F98BF"] + hide: true id: "1580D9FD06937ABB" tasks: [{ id: "4816E5D3E5C6E0D2" @@ -727,6 +735,7 @@ "However at the end, there are few challenges you could not be able to finish without deeper understanding of Lua, so don't care too much about those if you aren't able to finish. There are here for those handful of people that know what there are doing ^^\"" ] dependencies: ["2D79E4D126EE389E"] + hide: true size: 1.5d min_width: 250 id: "777349A29491AE4C" @@ -749,6 +758,7 @@ subtitle: "Challenge #1" description: ["Make a program that will type on the monitor every 5 seconds phrase \"My First Program!\""] dependencies: ["777349A29491AE4C"] + hide: true id: "7F980AC22498FE44" tasks: [ { @@ -813,6 +823,7 @@ subtitle: "Challenge #2" description: ["Make a program that will transfer items from inventory on the left to inventory on the right."] dependencies: ["7F980AC22498FE44"] + hide: true id: "06A8B69F9385388B" tasks: [ { @@ -873,6 +884,7 @@ subtitle: "Challenge #3" description: ["Use Advanced Peripherals to export some items from RS into a chest."] dependencies: ["06A8B69F9385388B"] + hide: true id: "0F004D494E6114E8" tasks: [ { @@ -956,16 +968,26 @@ "You just have to create a file on your desktop, code in it and rename it onto [your_name].lua, drop it into in-game Computer and run it. It's that easy ^^" "" "If you want to have proper Lua support and checking, you can install Visual Studio Code and ComputerCraft: Tweaked Plugin for full ComputerCraft Lua support! Link to that Plugin is in wiki of that quest" - "TODO: some sort of link to CC: Tweaked Plugin for Visual Studio Code " + "TODO: some sort of link to CC: Tweaked Plugin for Visual Studio Code and mention of the Directiories etc" ] - dependencies: ["2D79E4D126EE389E"] + dependencies: [ + "2D79E4D126EE389E" + "0829D34C8A1B13FA" + ] + hide: true size: 1.25d min_width: 275 id: "5D796A237D7164E5" tasks: [{ - id: "3FF05242E21A33DF" - type: "checkmark" - title: "Got it!" + id: "77723B672ED12F16" + type: "item" + item: "emendatusenigmatica:iron_gear" + consume_items: true + }] + rewards: [{ + id: "2545BD1A22D53A17" + type: "custom" + title: "Links to Wikis [Not working yet]" }] } { @@ -994,6 +1016,20 @@ type: "checkmark" title: "Got it!" }] + rewards: [ + { + id: "57B6FB2AFCE06284" + type: "command" + auto: "invisible" + command: "/tellraw @p {\"text\":\"Have fun with Lua fellow player! ~~Kanzio\",\"color\":\"green\"}" + player_command: false + } + { + id: "18992EE31345E7F5" + type: "xp" + xp: 100 + } + ] } { title: "Modem action!" @@ -1003,6 +1039,7 @@ subtitle: "Challenge #4" description: ["Use a wired Modem to interract with barrel, and print on the monitor list of items in it."] dependencies: ["0F004D494E6114E8"] + hide: true id: "44A7E0342E80526D" tasks: [ { @@ -1091,6 +1128,7 @@ "TODO: Learn actually how to use Wireless modems in they intended use, then do that challenge" ] dependencies: ["44A7E0342E80526D"] + hide: true id: "70C1723A18F89BD9" tasks: [{ id: "0F69F5424C241DC3" @@ -1130,6 +1168,7 @@ "\"But Kanzio, what does \"nil\" mean and why did you use quotation marks with Enigmatica 6?\" - So there is few types of variables, and every of them have its own unique rules. Check \"Lua Basics #1 - Variable types\" above this quest for more information about those." ] dependencies: ["44029061DB640AE2"] + hide: true size: 1.25d min_width: 400 id: "29C780353E7FB720" @@ -1138,6 +1177,11 @@ type: "checkmark" title: "Got it!" }] + rewards: [{ + id: "5FC3C88315F15ABA" + type: "xp" + xp: 100 + }] } { title: "Type: Table" @@ -1346,7 +1390,7 @@ } { icon: "minecraft:writable_book" - x: 0.5d + x: -0.5d y: 5.0d description: [ "Challenges are gonna change a lot. Those that are here right now, are gonna be in new section: Tasks! It will give a tutorial how to do a program so people can see how to write code" @@ -1378,7 +1422,11 @@ "" "More tasks will get unlocked, the more you go in Lua Basics! Its recommended to do them as soon as possible, so you will practice stuff you learned as you go :D" ] - dependencies: ["2D79E4D126EE389E"] + dependencies: [ + "2D79E4D126EE389E" + "6A987EA5C795264E" + ] + hide: true size: 1.5d id: "4B5728FBD119B4B7" tasks: [{ @@ -1446,6 +1494,18 @@ x: 8.0d y: -2.0d subtitle: "Lua Basics #2 - Creating Functions" + dependencies: [ + "29C780353E7FB720" + "401DE5F2E19708E0" + "32E1201F35F1A394" + "32D28AB681CE8601" + "00E1D2866C886632" + "56800F53C736541F" + "20F5794B8753B648" + "124F45AFAA7A0206" + "401DE5F2E19708E0" + ] + hide: true id: "5056B0737A8A8D64" tasks: [{ id: "0C2F459BCB9222EC" @@ -1465,19 +1525,31 @@ "" "First thing we would like to do, is to create 2 strings, 2 numbers, a boolean and nil variables. Name of them is up to you :smile:" "" - "Now as you know, print() function is to write some text on the screen, lets use it then! But first, we will add those two strings together." - "Another thing we would like to print are those numbers. Lets print first one, second one, and at the end we want to add them and print result." + "Now as you know, print() function is to write some text on the screen, lets use it then! But first, we will add those two strings together and print the result." + "Another thing we would like to print are those numbers. At first lets show first one, then second one, and at the end we want to add them and show the result." "Now lets get our nil variable. As you know its empty, but that isn't efficient. Let's store \"Enigmatica 6 is great\" in it and print it!" - "Lastly we would like to know if our boolean variable is True or False. Print it!" + "Lastly we would like to know if our boolean variable is True or False. Show it on the screen and lets see what we got." "" - "Final results should be 6 lines of text, with stuff you stored in the variables!" + "Final results should be 6 lines of text, with first one being the first string and second one after it. 2nd and 3rd would be two numbers, and 4th sum of those. 5th line the value of boolean variable and 6th line should say: Enigmatica 6 is great!" "" "Pro Tip: You don't need to do another variable in few cases like adding 2 variables together. You can do that in the functions argument!" "" "> local number_1, number_2 = 1, 5" "> print(number_1 + number_2) -> Writes results on the screen -> 6" ] - dependencies: ["4B5728FBD119B4B7"] + dependencies: [ + "4B5728FBD119B4B7" + "32E1201F35F1A394" + "282439D423FAC52F" + "32D28AB681CE8601" + "00E1D2866C886632" + "56800F53C736541F" + "20F5794B8753B648" + "124F45AFAA7A0206" + "01B3465E67E41884" + "401DE5F2E19708E0" + ] + hide: true min_width: 400 id: "5E591D65A5014852" tasks: [ @@ -1509,6 +1581,33 @@ } } ] + rewards: [{ + id: "79B2F88657227DB2" + type: "xp" + xp: 100 + }] + } + { + x: 1.0d + y: 5.0d + description: [ + "Progression visibility:" + "Introduction to Lua / Advanced PC \\& Pocket PC / Wikis - Stage 0" + "Introduction to Lua unlocks Tasks and Lua Basics 1 with its types" + "Finishing every Lua Basics #1 Unlocks Lua Basics #2 and first task." + "Finishing Task #1 unlocks coding tips" + "Lua Basics #2 unlocks Lua Basics #3 and Task #2." + "Lua Basics #3 Unlocks #4 and Task #3, as well as all Peripherals" + "And it goes like that until last Lua Basic quest and Task, what unlocks challenges!" + ] + min_width: 500 + id: "3FBB6584FA19A1D9" + tasks: [{ + id: "4A951C0D263C371E" + type: "custom" + title: "Note 2" + icon: "computercraft:printed_book" + }] } ] } From 109362a37fee3d7bd13790f66549d72d97121ffd Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Mon, 4 Jul 2022 00:30:09 +0200 Subject: [PATCH 18/53] Changed CC quest in Automation Chapter --- config/ftbquests/quests/chapters/automation.snbt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/config/ftbquests/quests/chapters/automation.snbt b/config/ftbquests/quests/chapters/automation.snbt index bf5bc8e26c..f4d647a5d4 100644 --- a/config/ftbquests/quests/chapters/automation.snbt +++ b/config/ftbquests/quests/chapters/automation.snbt @@ -2574,15 +2574,15 @@ } { title: "Computer Craft: Tweaked" - icon: "computercraft:computer_advanced" + icon: "computercraft:computer_normal" x: -0.5d y: 2.5d subtitle: "A Computer within a Game within a Computer" description: [ - "Use the LUA programming language to interact with the world." + "Use the Lua programming language to interact with the world." "" - "" - "When you claim this reward, a link will be posted in chat to a video playlist for a basic tutorial on CC. While for an old version, it should still be relevant." + "With the power of computer and Lua, you can create amazing automation system. They could be massive, or compact as just one block!" + "If you are curious what you can do with that power, after completion of that quest, you will see on the chat a link to a video that shows few projects created by Enigmatica Community!" "Unfortunately repeatable quests aren't yet implemented so the command will only run once, so be sure to save the link somewhere!" ] dependencies: [ @@ -2590,6 +2590,7 @@ "3468E652B4FE85FA" ] optional: true + min_width: 250 id: "77F743435F64DFEC" tasks: [{ id: "4B7B9611F1294D2B" @@ -2598,9 +2599,9 @@ rewards: [{ id: "20E531EBA4E9DA87" type: "command" - title: "CC Tutorial Link" + title: "CC Introduction Video" icon: "pneumaticcraft:tag_filter" - command: "/tellraw @p {\"text\":\"CC Tutorial Link\",\"bold\":true,\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://youtube.com/playlist?list=PLaiPn4ewcbkHYflo2jl0OuNaHK6Mj-koG\"}}" + command: "/tellraw @p {\"text\":\"ComputerCraft Introduction Video\",\"bold\":true,\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://google.com\"}}" player_command: false }] } From 36849fe35df6006c2bf04c2f2a8f92c5f61a7d83 Mon Sep 17 00:00:00 2001 From: Kanzaji Date: Mon, 4 Jul 2022 00:32:30 +0200 Subject: [PATCH 19/53] Another Batch of progress, tweaks, Fixed typos etc Changed entire Task 1 quest Made a lot of looks finishing on Lua Basics 1 Fixed few typos Fixed few errors in explenatioon Added 'How to use Computer' Quest --- .../chapters/computercraft_tweaked.snbt | 206 +++++++++++------- 1 file changed, 127 insertions(+), 79 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index d4575c1f9a..22f5a2e3c5 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -71,13 +71,7 @@ } { title: "Peripherals" - icon: { - id: "computercraft:disk" - Count: 1b - tag: { - Color: 14605932 - } - } + icon: "rftoolscontrol:graphics_card" x: -5.0d y: 0.0d subtitle: "There is something more than Computers?!" @@ -113,7 +107,6 @@ "TODO: Link to official Advanced Peripherals WIKI" ] dependencies: ["378BEFB62C4F98BF"] - hide: true id: "6AA1236C9946F569" tasks: [{ id: "56A45A4FCA54436D" @@ -354,6 +347,7 @@ "getName is really useful command used a lot in ComputerCraft, a lot of commands (mostly for moving stuff from one inventory to another) requires you to give them \"Name\" of the peripheral, and not a table that wrap / find gives you. This takes what wrap / find returns and gives the Name of that peripheral!" "" "For more information look up ComputerCraft: Tweaked Wiki!" + "TODO: Rewrite this API Usage." ] dependencies: ["378BEFB62C4F98BF"] hide: true @@ -494,7 +488,6 @@ subtitle: "Wait there is even more?" description: ["ComputerCraft: Tweaked adds on its own a few unique peripherals. Some of them aren't as useful as others, but all of them are worth attention."] dependencies: ["378BEFB62C4F98BF"] - hide: true id: "1580D9FD06937ABB" tasks: [{ id: "4816E5D3E5C6E0D2" @@ -725,16 +718,15 @@ { title: "Challenges" icon: "computercraft:computer_command" - x: 0.0d - y: 3.0d + x: 9.0d + y: 3.75d shape: "gear" subtitle: "Try yourself!" description: [ - "Here are some easy challenges you could try completing to test what you learned so far. For every challenge you will get a small prize :wink:" + "Here are some easy challenges you could try completing to test what you learned so far. For every challenge you will get a small prize :D" "" "However at the end, there are few challenges you could not be able to finish without deeper understanding of Lua, so don't care too much about those if you aren't able to finish. There are here for those handful of people that know what there are doing ^^\"" ] - dependencies: ["2D79E4D126EE389E"] hide: true size: 1.5d min_width: 250 @@ -753,8 +745,8 @@ { title: "Your first program!" icon: "computercraft:printed_page" - x: -2.0d - y: 4.5d + x: 9.0d + y: 5.0d subtitle: "Challenge #1" description: ["Make a program that will type on the monitor every 5 seconds phrase \"My First Program!\""] dependencies: ["777349A29491AE4C"] @@ -818,7 +810,7 @@ { title: "Item Transfer!" icon: "mekanism:basic_mechanical_pipe" - x: -1.5d + x: 8.5d y: 6.0d subtitle: "Challenge #2" description: ["Make a program that will transfer items from inventory on the left to inventory on the right."] @@ -879,8 +871,8 @@ { title: "Using Peripherals to interract with RS" icon: "refinedstorage:disk_drive" - x: 0.5d - y: 6.5d + x: 6.5d + y: 6.0d subtitle: "Challenge #3" description: ["Use Advanced Peripherals to export some items from RS into a chest."] dependencies: ["06A8B69F9385388B"] @@ -1000,12 +992,12 @@ description: [ "Welcome to Lua fellow Player!" "" - "Lua is one of many coding languages out there, but its one of the easiest ones. Don't think that it means its worse than others :stuck_out_tongue:" + "Lua is one of many coding languages out there, but its one of the easiest ones. Don't think that it means its worse than others!" "" "Its pretty powerful, but simple language, so simple it can be implemented into other games." "That doesn't meen that its only use in this application. There are a lot of games coded on Lua, that are pretty neat and popular (The Binding of Isaac for example)." "" - "In this tutorial I'll try to teach you basics of basics of Lua, so you can try doing your own automation projects with it!" + "In this tutorial I'll try to teach you basics of basics of Lua, so you can try doing your own automation projects with it." ] dependencies: ["2D79E4D126EE389E"] size: 1.5d @@ -1034,8 +1026,8 @@ { title: "Modem action!" icon: "computercraft:wired_modem_full" - x: 2.5d - y: 6.5d + x: 7.5d + y: 6.0d subtitle: "Challenge #4" description: ["Use a wired Modem to interract with barrel, and print on the monitor list of items in it."] dependencies: ["0F004D494E6114E8"] @@ -1120,8 +1112,8 @@ { title: "Wireless communications!" icon: "computercraft:wireless_modem_normal" - x: 2.5d - y: 4.5d + x: 8.0d + y: 7.0d subtitle: "Challenge #4.2" description: [ "" @@ -1150,7 +1142,7 @@ "" "The way variables work is pretty simple, you set the name for it, and optionally you set what data it stores." "" - "> local My_First_Variable = 0" + "> local my_first_variable = 0" "" "● \"local\" is a function for creating new variables. \"My_First_Variable\" is the variable's name, that is first argument! Get used to that word, because every function has one or more of them." "● Second \"argument\" is a data you want to store in that variable. Its optional, that means you can just leave it empty and variable will still be created, but when you are gonna try reading it, it will return \"nil\"." @@ -1158,14 +1150,14 @@ "" "Now to read your variable, you just simply use the name of your variable. It will give to the function data it contains (value). You can't read variables in any other place than function's argument! However for demonstration purposes, I will showcase variable's value like that:" "" - "> My_First_Variable -> 0" + "> 0 -> my_first_variable" "" "Only time it will function differently is when you want to change data it stores. Lets say we don't want our variable to store 0, we want it to store Enigmatica 6, how we can do that? To change value of variable, you simply overwrite it. That means you are deleting old value of variable, and putting new data in its place. To do that, you just simply use variable's name and set new value!" "" - "> My_First_Variable = \"Enigmatica 6\"" - "> My_First_Variable -> \"Enigmatica 6\"" + "> my_first_variable = \"Enigmatica 6\"" + "> \"Enigmatica 6\" -> my_first_variable" "" - "\"But Kanzio, what does \"nil\" mean and why did you use quotation marks with Enigmatica 6?\" - So there is few types of variables, and every of them have its own unique rules. Check \"Lua Basics #1 - Variable types\" above this quest for more information about those." + "\"But what does \"nil\" mean and why there are quotation marks near Enigmatica 6?\" - So there are few types of variables, and every of them have its own unique rules. Check \"Lua Basics #1 - Variable types\" above this quest for more information about those." ] dependencies: ["44029061DB640AE2"] hide: true @@ -1208,7 +1200,7 @@ "Boolean is the easiest type in every programming language. It can have 2 states, \"True\" and \"False\"." "" "Its really useful in situations you need to check if something is True, or False. Example:" - "-> You need to know if on the left from the PC is chest. If there is chest, its \"True\", if there is not, \"False\"" + "● You need to know if on the left from the PC is chest. If there is chest, its \"True\", if there is not, \"False\"" "" "A lot of functions are returning boolean variable after they ended they work, it is useful to check for that output to see if what you wanted to do was actually done." ] @@ -1237,17 +1229,17 @@ "Now lets see how to use functions." "For you to call (In other words, use) function, you need to simply type its name with 2 brackets. Between those are function's arguments." "" - "> print(string) -> Basic function to write text on the screen. Has one argument." + "> print(string) -- Basic function to write text on the screen. Has one argument." "" "In my case I called print(). Some of the functions doesn't require you to give them arguments, they can even don't have any of them, but there can be functions that require from you even 10 arguments. Crazy isn't it?!" "In our case, print() requires as it's first and only argument some string (Read \"Type: String\" quest to know what string is)" "So example usage of print() would look like this:" "" - "> print(\"This is a test!\") -> Writes on the screen --> This is a test!" + "> print(\"This is a test!\") -- Writes on the screen --> This is a test!" "" "As you can use variables in place of function's arguments, you can use functions as argument as well! Most of the functions return something, if its a table with stuff they found, or just boolean if they were able to do what they need to. They can even return other function! To use function as the argument, you just write it as you would normally, but in the argument of other function." "" - "> print(my_function(1)) -> It will print what my_function will return." + "> print(my_function(1)) -- It will print what my_function will return." "" "There is also a way to pass the function, that is useful sometimes and should be used with functions that doesn't require any arguments. To pass a function, you simply write its name but without brackets! However its not that useful in our usage, and until you will not go deeper into Lua coding, you will probably never use it." "" @@ -1272,26 +1264,26 @@ description: [ "String is a type of variable that stores a sequence of characters. You can type here anything, binary code (Binary - Code using ones and zeros), your name, entire address or your homework :wink:" "" - "Strings need to be written between double quotes to be valid, otherwise program will think its the name of variable!" + "● Strings need to be written between double quotes to be valid, otherwise program will think its the name of variable!" "" - "local my_first_string = \"Hello Player\" -> Valid string" - "local my_first_string = Hello Player -> Not valid, program will think those are two variables" + "> local my_first_string = \"Hello Player\" -- Valid string" + "> local my_first_string = Hello Player -- Not valid, program will think those are two variables" "" - "Strings can not be modified, but you can do a copy of it with a modification you want to do." - "local test_string = \"This is a test\"" - "local test_string_edited = string.gsub(test_string, \"test\", \"Test!\", 1)" - "test_string_edited -> \"This is a Test!\"" + "● Strings can not be modified, but you can do a copy of them with a modification you want to do." + "> local test_string = \"This is a test\"" + "> local test_string_edited = string.gsub(test_string, \"test\", \"Test!\", 1)" + "> \"This is a Test!\" -> test_string_edited" "" - "string.gsub is one of few ways you can edit your strings. First argument takes the string / variable you want to edit, second one what \"characters\" you want to change, and third one takes what you want to put in that place." + "● string.gsub is one of few ways you can edit your strings. First argument takes the string / variable you want to edit, second one what \"characters\" you want to change, and third one takes what you want to put in that place." "There is fourth argument (Optional) that tells the program which occurance of those characters to change. If, for example, we would have 2 \"test\" in our string, with number you can set which one to edit! In our case it would edit the first one." "" - "There is also a way to add some text at the end of your string. This time you can \"edit\" the initial string by overwriting it, but its sometimes useful to have it as seperate variables." + "● There is also a way to add some text at the end of your string. This time you can \"edit\" the initial string by overwriting it, but its sometimes useful to have it as seperate variables." "To add some text at the end of your string, you use 2 dots between 2 strings you want to add together:" - "local string_1 = \"Hello \"" - "local string_2 = \"there!\"" - "string_1 = string_1 .. string_2" + "> local string_1 = \"Hello \"" + "> local string_2 = \"there!\"" + "> string_1 = string_1 .. string_2" "(Note: string_2 can be replaced by non-string variable if it can be converted to string)" - "string_1 -> \"Hello there!\"" + "> \"Hello there!\" -> string_1" "" "There is also a few different ways to modify your strings, and to format them, however those aren't as useful, and can be found in Lua docs!" ] @@ -1315,7 +1307,7 @@ "" "Numbers should be written without any other characters to be valid and recognised as number:" "> local my_first_number = 6" - "> my_first_number -> 6" + "> 6 -> my_first_number" "" "● There are few exceptions however, as you can do single and double precision numbers as well. For that you just use a dot:" "> local some_number = 1.54" @@ -1329,7 +1321,7 @@ "" "Its really simple to use them, you just write between two numbers operator you want to use:" "> local add = 6 + 10" - "> add -> 16" + "> 16 -> add" "" "Unfortunately Lua doesn't support anything else than those 4 basic operators, for anything else that you want, you will need to write the function yourself. For creating functions check out Function type in Lua Basics #1" ] @@ -1347,7 +1339,7 @@ icon: "computercraft:printed_page" x: 5.5d y: -2.0d - subtitle: "Lua Basics #1.2 - Variable naming" + subtitle: "Lua Basics #1 - Variable tips \\& tricks" description: [ "Variable naming:" "For setting variable's name, its important to know few things:" @@ -1356,21 +1348,21 @@ "" "● Variable's name can't be longer than 64 characters" "" - "● Variable's name can't start with an number and can't have any spaces:" - "local test_1 -> Variable named correctly" - "local 1_test -> Variable named incorrectly, will not work" - "local test 1 -> Variable named incorrectly, will not work" + "● Variable's name can't start with a number and can't have any spaces:" + "> local test_1 -- Variable named correctly" + "> local 1_test -- Variable named incorrectly, will not work" + "> local test 1 -- Variable named incorrectly, will not work" "" "● You should name variables in a way that they represent theirs use:" - "local day = \"Monday\"" - "local x123 = \"Monday\"" + "> local day = \"Monday\"" + "> local x123 = \"Monday\"" "Both of those are used by me to store day of the week, but first one is named with its purpose in mind, other one is just random thing. They both will work, however if you are trying to do more advanced program, random names like x123 are gonna mess with you really quickly." "" "General tips \\& tricks:" "" "● You can create few variables at the same time! You just simply type two or more names after \"local\" and seperate them with comma. You can even set in the same way unique value for every variable." - "-> local x, y, z = 1, 2, 3" - "x -> 1 / y -> 2 / z -> 3" + "> local x, y, z = 1, 2, 3" + "> 1 -> x / 2 -> y / 3 -> z" "" "Dev Note: Remember to check this out later on and think if you didn't forget anything important ^^\"" ] @@ -1390,7 +1382,7 @@ } { icon: "minecraft:writable_book" - x: -0.5d + x: 6.5d y: 5.0d description: [ "Challenges are gonna change a lot. Those that are here right now, are gonna be in new section: Tasks! It will give a tutorial how to do a program so people can see how to write code" @@ -1428,6 +1420,7 @@ ] hide: true size: 1.5d + min_width: 250 id: "4B5728FBD119B4B7" tasks: [{ id: "3E2B04698DC03A84" @@ -1471,9 +1464,9 @@ description: [ "Nil is a variable type and variable value. It means literally \"nothing\" in code. Variable with type nil, asked for their type and what they're storing, will return nil." "" - "Nil is useful when you need to clear some variable after use." + "● Nil is useful when you need to clear some variable after use." "" - "x = nil" + "> x = nil" "" "● This will set type and value of x as nil, setting it like it was just created in that line." "" @@ -1493,7 +1486,7 @@ icon: "computercraft:printed_pages" x: 8.0d y: -2.0d - subtitle: "Lua Basics #2 - Creating Functions" + subtitle: "Lua Basics #2 - Creating functions" dependencies: [ "29C780353E7FB720" "401DE5F2E19708E0" @@ -1515,27 +1508,29 @@ } { title: "Your first program!" - icon: "computercraft:computer_normal" - x: -1.0d - y: -5.0d + icon: "rftoolscontrol:program_card" + x: -1.5d + y: -4.5d subtitle: "Practice: Variables" description: [ - "Lets create our first program!" - "Main goal of task: Create a program that will use print() function to print few variables, before that lets edit few of them." + "Its time. We are gonna actually code something!" + "The program we will create, will use print() function to write some variable's values on the screen. Of course after we modify them :D" "" - "First thing we would like to do, is to create 2 strings, 2 numbers, a boolean and nil variables. Name of them is up to you :smile:" + "● First thing we need to do, is to create 2 strings, 2 numbers, a boolean and nil variable. Name for each of them is up to you." "" - "Now as you know, print() function is to write some text on the screen, lets use it then! But first, we will add those two strings together and print the result." - "Another thing we would like to print are those numbers. At first lets show first one, then second one, and at the end we want to add them and show the result." - "Now lets get our nil variable. As you know its empty, but that isn't efficient. Let's store \"Enigmatica 6 is great\" in it and print it!" - "Lastly we would like to know if our boolean variable is True or False. Show it on the screen and lets see what we got." + "● Now lets use print() function to write some text on the screen. However first, we will add one of those strings to the end of the other. Now we can print what we got." "" - "Final results should be 6 lines of text, with first one being the first string and second one after it. 2nd and 3rd would be two numbers, and 4th sum of those. 5th line the value of boolean variable and 6th line should say: Enigmatica 6 is great!" + "● Next thing we would like to print are those numbers. Lets show one of them first, after it second one, and lastly, lets add them together and print that as well." "" - "Pro Tip: You don't need to do another variable in few cases like adding 2 variables together. You can do that in the functions argument!" + "● Now lets get our nil variable. As you know its empty, but that isn't efficient. Let's store \"Enigmatica 6 is great!\" in it and print it as well." "" + "● Lastly lets see the value of our boolean." + "" + "If everything was done correctly, the screen should have 6 lines printed on it. First one are two strings. Second and third are numbers. Fourth is the sum of them. 5th line should be \"Enigmatica 6 is great!\" and last line should show value of your boolean (True/False) If thats what you see, congratulations! :smile: You did create your first program!" + "" + "Pro Tip: You don't need to do another variable in few cases like adding 2 variables together. You can do that in the functions argument!" "> local number_1, number_2 = 1, 5" - "> print(number_1 + number_2) -> Writes results on the screen -> 6" + "> print(number_1 + number_2) -- Writes results on the screen --> 6" ] dependencies: [ "4B5728FBD119B4B7" @@ -1550,7 +1545,7 @@ "401DE5F2E19708E0" ] hide: true - min_width: 400 + min_width: 425 id: "5E591D65A5014852" tasks: [ { @@ -1582,13 +1577,13 @@ } ] rewards: [{ - id: "79B2F88657227DB2" - type: "xp" - xp: 100 + id: "2FB3304315BB5F48" + type: "custom" + title: "I think about giving here one of the scavenging bags. What do you think?" }] } { - x: 1.0d + x: 7.5d y: 5.0d description: [ "Progression visibility:" @@ -1609,5 +1604,58 @@ icon: "computercraft:printed_book" }] } + { + title: "How to use your Computer" + icon: "computercraft:computer_normal" + x: 0.0d + y: 3.0d + shape: "rsquare" + subtitle: "It is simpler than you think!" + description: [ + "Your computer you just created, is actually really similiar to your real PC! It has a screen, main directory, programs, files and console." + "" + "In ComputerCraft, directory doesn't exist, until something isn't saved in it. That means you can't have empty folders on your computer. However you can have empty files. To see what programs you have on your computer, run \"programs' command. It will print a list of all programs avaiable! Of course you can make your own programs, and thats what, technically, we are gonna do later on." + "" + "To use any program, you just write its name to the console. Here is few basic programs you need to know to use your computer and learn more:" + "> cd *directory* -- Changes what folder you are in. Your main directory is root." + "> mv *file* *file or directory* -- Used to rename and move files on the disk." + "> copy *file or directory* *directory* -- Used to copy file/files to other directory" + "> delete *file or directory* -- Deletes file or directory" + "> edit -- Runs edit program. This is code editor we will use to code!" + "> help *program* -- Most useful program on your computer. Gives more detailed information about specified program." + ] + dependencies: ["2D79E4D126EE389E"] + size: 1.5d + min_width: 450 + id: "1FF283A30B6E415C" + tasks: [ + { + id: "2F2D30981A0D12B6" + type: "checkmark" + title: "Got it!" + } + { + id: "2F63D341529F3534" + type: "item" + title: "Computer" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "computercraft:computer_normal" + Count: 1b + } + { + id: "computercraft:computer_advanced" + Count: 1b + } + ] + } + } + } + ] + } ] } From e0ee31587a51481898d7d6096f94276612b5c9e6 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Mon, 4 Jul 2022 09:33:52 +0200 Subject: [PATCH 20/53] Added mention of CC quest line in automation quest --- config/ftbquests/quests/chapters/automation.snbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/ftbquests/quests/chapters/automation.snbt b/config/ftbquests/quests/chapters/automation.snbt index f4d647a5d4..b55b93bd12 100644 --- a/config/ftbquests/quests/chapters/automation.snbt +++ b/config/ftbquests/quests/chapters/automation.snbt @@ -2581,7 +2581,7 @@ description: [ "Use the Lua programming language to interact with the world." "" - "With the power of computer and Lua, you can create amazing automation system. They could be massive, or compact as just one block!" + "With the power of computer and Lua, you can create amazing automation system. They could be massive, or compact as just one block! For more information, check out ComputerCraft: Tweaked quest line." "If you are curious what you can do with that power, after completion of that quest, you will see on the chat a link to a video that shows few projects created by Enigmatica Community!" "Unfortunately repeatable quests aren't yet implemented so the command will only run once, so be sure to save the link somewhere!" ] From bd2db776e8acdf3f1cfec9565307940de2ce29a0 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Tue, 5 Jul 2022 22:15:11 +0200 Subject: [PATCH 21/53] Fixed a lot more Typos Thx Soul#5886 for helping with catching them and a review of the quest line :D --- .../chapters/computercraft_tweaked.snbt | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 22f5a2e3c5..db9ac26bbb 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -18,7 +18,7 @@ description: [ "Welcome to the crazy world of programming! ComputerCraft: Tweaked is a mod entirely focused about that one thing, giving you access to amazing Lua Programming language inside of Minecraft!" "" - "Its incredible how compact and complicated stuff you can do with this mod. Think about automating Create Mechanical Crafter with only 1 block!?! Or doing complex operating system controlling everything you have in your base. " + "It's incredible how compact and complicated stuff you can do with this mod. Think about automating Create Mechanical Crafter with only 1 block!?! Or doing complex operating system controlling everything you have in your base. " "" "Think about anything, this mod can do it!" "" @@ -50,9 +50,9 @@ description: [ "This fancy gold plated computer has a tiny bit more to offer than his old gray ancestor." "" - "Except the fact it looks nicer, it has more disk space available for you and has colors support!" + "Except for the fact that it looks nicer, it has more disk space available for you and has color support!" "" - "Colors doesn't matter for us however, as we aren't gonna do OS in this tutorial, but its good to know its a thing right?" + "Colors don't matter for us however, as we aren't gonna do OS in this tutorial, but it's good to know its a thing right?" ] dependencies: ["2D79E4D126EE389E"] dependency_requirement: "all_started" @@ -287,7 +287,7 @@ y: 1.0d subtitle: "Cookie Clicker in your Pocket all the time!" description: [ - "There are item version of those computers as well. Maybe they aren't so useful with automating stuff, but with some knowledge you can do, for example, a pocket Cookie Clicker game!" + "There are item versions of computers as well. Maybe they aren't so useful with automating stuff, but with some knowledge you can create a pocket Cookie Clicker game for example!" "" "However they are really useful for remote access to your systems, or for playing games all the time you have to build stuff." ] @@ -698,7 +698,7 @@ description: [ "If you want to learn even more, or need something that isn't here, check out those links." "" - "Those are official docs to Lua Programming Languae, as well as to ComputerCraft: Tweaked Wiki and Mekanism integration." + "These are official docs to the Lua Programming Language, as well as to ComputerCraft: Tweaked Wiki and Mekanism integration." "TODO: clickable links or message on chat" ] dependencies: ["2D79E4D126EE389E"] @@ -992,12 +992,12 @@ description: [ "Welcome to Lua fellow Player!" "" - "Lua is one of many coding languages out there, but its one of the easiest ones. Don't think that it means its worse than others!" + "Lua is one of many coding languages out there, but it's one of the easiest ones. Don't think that it means that it is worse than others!" "" - "Its pretty powerful, but simple language, so simple it can be implemented into other games." - "That doesn't meen that its only use in this application. There are a lot of games coded on Lua, that are pretty neat and popular (The Binding of Isaac for example)." + "Its a pretty powerful, but simple language, so simple that it can be implemented into other games." + "That doesn't mean that it's only used in this application. There are a lot of games coded on Lua, that are pretty neat and popular (The Binding of Isaac for example)." "" - "In this tutorial I'll try to teach you basics of basics of Lua, so you can try doing your own automation projects with it." + "In this tutorial I'll try to teach you the basics of basics of Lua, so you can try doing your own automation projects with it." ] dependencies: ["2D79E4D126EE389E"] size: 1.5d @@ -1199,10 +1199,10 @@ description: [ "Boolean is the easiest type in every programming language. It can have 2 states, \"True\" and \"False\"." "" - "Its really useful in situations you need to check if something is True, or False. Example:" - "● You need to know if on the left from the PC is chest. If there is chest, its \"True\", if there is not, \"False\"" + "Its really useful in situations where you need to check if something is True, or False. Example:" + "● You need to know if there is a chest on the left of the PC. If there is a chest, it's \"True\", if there is not, it's \"False\"" "" - "A lot of functions are returning boolean variable after they ended they work, it is useful to check for that output to see if what you wanted to do was actually done." + "A lot of functions are returning a boolean variable after they ended they work, it is useful to check for that output to see if what you wanted to do was actually done." ] dependencies: ["29C780353E7FB720"] min_width: 250 @@ -1220,7 +1220,7 @@ y: -5.4d subtitle: "Lua Basics #1 - Variable types" description: [ - "You heard already few times a function word in this quest line, but did you know its also a one of variable types?" + "You already heard of the word \"function\" a few times in this quest line, but did you know its also one of the variable types?" "Function is a variable that doesn't store data, it stores other functions and variables in it, that you can use in other place with just the name of that function. Pretty convenient isn't it?" "" "As every variable, you can change its value later on to whatever you want. Yes that means you can edit some of Lua Functions and other APIs, but it will break stuff most of the time :sweat_smile:" @@ -1410,9 +1410,9 @@ shape: "octagon" subtitle: "Lua Basics - Coding practice" description: [ - "Here are few easy tasks that will show you simple programs, to teach you practically how to do some stuff." + "Here are a few easy tasks that will show you simple programs, to teach you practically how to do some stuff." "" - "More tasks will get unlocked, the more you go in Lua Basics! Its recommended to do them as soon as possible, so you will practice stuff you learned as you go :D" + "More tasks will get unlocked, the more you advance in Lua Basics! It's recommended to do them as soon as possible, so you will practice stuff you learned as you go :D" ] dependencies: [ "2D79E4D126EE389E" @@ -1513,22 +1513,22 @@ y: -4.5d subtitle: "Practice: Variables" description: [ - "Its time. We are gonna actually code something!" - "The program we will create, will use print() function to write some variable's values on the screen. Of course after we modify them :D" + "It's time. We are gonna actually code something!" + "The program we will create, will use the print() function to write some variable's values on the screen after we modify them." "" "● First thing we need to do, is to create 2 strings, 2 numbers, a boolean and nil variable. Name for each of them is up to you." "" - "● Now lets use print() function to write some text on the screen. However first, we will add one of those strings to the end of the other. Now we can print what we got." + "● Now let's use the print() function to write some text on the screen. However first, we will add one of those strings to the end of the other. Now we can print what we got." "" - "● Next thing we would like to print are those numbers. Lets show one of them first, after it second one, and lastly, lets add them together and print that as well." + "● Next thing we would like to print are those numbers. Let's show one of them first, after it the second one, and lastly, let's add them together and print that as well." "" - "● Now lets get our nil variable. As you know its empty, but that isn't efficient. Let's store \"Enigmatica 6 is great!\" in it and print it as well." + "● Now let's get our nil variable. As you know its empty, but that isn't efficient. Let's store \"Enigmatica 6 is great!\" in it and print it as well." "" - "● Lastly lets see the value of our boolean." + "● Lastly let's see the value of our boolean." "" - "If everything was done correctly, the screen should have 6 lines printed on it. First one are two strings. Second and third are numbers. Fourth is the sum of them. 5th line should be \"Enigmatica 6 is great!\" and last line should show value of your boolean (True/False) If thats what you see, congratulations! :smile: You did create your first program!" + "If everything was done correctly, the screen should have 6 lines printed on it. The first one is two strings. The second and third are numbers with the fourth being the sum of them. The fifth line should be \"Enigmatica 6 is great!\" and the last line should show the value of your boolean (True/False) If thats what you see, congratulations! You created your first program!" "" - "Pro Tip: You don't need to do another variable in few cases like adding 2 variables together. You can do that in the functions argument!" + "Pro Tip: You don't need to do another variable in a few cases like adding 2 variables together. You can do that in the functions argument!" "> local number_1, number_2 = 1, 5" "> print(number_1 + number_2) -- Writes results on the screen --> 6" ] @@ -1612,11 +1612,11 @@ shape: "rsquare" subtitle: "It is simpler than you think!" description: [ - "Your computer you just created, is actually really similiar to your real PC! It has a screen, main directory, programs, files and console." + "The computer that you just created, is actually really similiar to your real PC! It has a screen, main directory, programs, files and console." "" - "In ComputerCraft, directory doesn't exist, until something isn't saved in it. That means you can't have empty folders on your computer. However you can have empty files. To see what programs you have on your computer, run \"programs' command. It will print a list of all programs avaiable! Of course you can make your own programs, and thats what, technically, we are gonna do later on." + "In ComputerCraft, directory doesn't exist, until something isn't saved in it. That means you can't have empty folders on your computer. However you can have empty files. To see what programs you have on your computer, run \"programs' command. It will print a list of all programs avaiable! Of course you can make your own programs, and that's what, technically, we are gonna do later on." "" - "To use any program, you just write its name to the console. Here is few basic programs you need to know to use your computer and learn more:" + "To use any program, you just write its name to the console. Here is a few basic programs you need to know to use your computer and learn more:" "> cd *directory* -- Changes what folder you are in. Your main directory is root." "> mv *file* *file or directory* -- Used to rename and move files on the disk." "> copy *file or directory* *directory* -- Used to copy file/files to other directory" From ad3aabdf4090402bb4ee0e22223d519112f4f754 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Wed, 6 Jul 2022 00:13:13 +0200 Subject: [PATCH 22/53] Lua Basics 2 Done Creating your own functions in Lua! Probably gonna change it a bit tmr when I will not be tired, however for now it looks good :D --- .../chapters/computercraft_tweaked.snbt | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index db9ac26bbb..124556e24a 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -1487,6 +1487,35 @@ x: 8.0d y: -2.0d subtitle: "Lua Basics #2 - Creating functions" + description: [ + "Creating functions is a little different and more complicated than creating a normal variable. One of main differences is a function you use to create it. To create your own function variable, you use \"function\" command!" + "" + "> function my_first_function(argument_1,argument_2)" + "" + "● First argument is a name of your function. Important thing is to add brackets, as you would do while calling a normal one. They have the same purpose here, between them, you put your function's arguments!" + "" + "You can add as many arguments as you want, and to separate them you use commas. Arguments work like normal variables. However if you call a function and not give it argument it needs, Lua will default that argument to \"nil\" variable. " + "" + "● Variables that you just created for your function's arguments are temporary, they can not be used in any other place than that one function! Otherwise you use them like normal variables." + "" + "● Everything you write after brackets is a code that will run when you call your function. There isn't anything more special here except two commands:" + "" + "> return argument_1 + argument_2" + "> end" + "" + "● It was mentioned in few quests that functions can return some variables, and command \"return\" is used to do exactly that. It's arguments are returned to other variable, that is set to have a value of a function." + "" + "> local x = my_first_function(1,2)" + "> 3 -> x -- Return added both our arguments (1 and 2) and returned it to variable x." + "" + "● \"end\" command is to set the end of your function. It is used after the last line of your function's code. To show this, here is our function we just created:" + "" + "> function my_first_function(argument_1,argument_2)" + "> return argument_1 + argument_2" + "> end -- End of function." + "" + "Important note is that you can use other functions in your function, even if there are created by you! However those need to be written before function that uses them, as Lua reads code from 1st line to last one, so if it sees a function that is created later, it will not know what is it." + ] dependencies: [ "29C780353E7FB720" "401DE5F2E19708E0" @@ -1499,6 +1528,7 @@ "401DE5F2E19708E0" ] hide: true + min_width: 450 id: "5056B0737A8A8D64" tasks: [{ id: "0C2F459BCB9222EC" From 2e1b10c4f9620f51e0dbab0a8057cfcd620484bc Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Wed, 6 Jul 2022 00:29:53 +0200 Subject: [PATCH 23/53] Start of Lua Basics 3 - IF I'm gonna finish this tmr, but its pretty nice start to have for another day! --- .../chapters/computercraft_tweaked.snbt | 57 +++++++++++++------ 1 file changed, 41 insertions(+), 16 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 124556e24a..8d9b485d67 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -718,8 +718,8 @@ { title: "Challenges" icon: "computercraft:computer_command" - x: 9.0d - y: 3.75d + x: 2.0d + y: 4.75d shape: "gear" subtitle: "Try yourself!" description: [ @@ -745,8 +745,8 @@ { title: "Your first program!" icon: "computercraft:printed_page" - x: 9.0d - y: 5.0d + x: 2.0d + y: 6.0d subtitle: "Challenge #1" description: ["Make a program that will type on the monitor every 5 seconds phrase \"My First Program!\""] dependencies: ["777349A29491AE4C"] @@ -810,8 +810,8 @@ { title: "Item Transfer!" icon: "mekanism:basic_mechanical_pipe" - x: 8.5d - y: 6.0d + x: 1.5d + y: 7.0d subtitle: "Challenge #2" description: ["Make a program that will transfer items from inventory on the left to inventory on the right."] dependencies: ["7F980AC22498FE44"] @@ -871,8 +871,8 @@ { title: "Using Peripherals to interract with RS" icon: "refinedstorage:disk_drive" - x: 6.5d - y: 6.0d + x: -0.5d + y: 7.0d subtitle: "Challenge #3" description: ["Use Advanced Peripherals to export some items from RS into a chest."] dependencies: ["06A8B69F9385388B"] @@ -1026,8 +1026,8 @@ { title: "Modem action!" icon: "computercraft:wired_modem_full" - x: 7.5d - y: 6.0d + x: 0.5d + y: 7.0d subtitle: "Challenge #4" description: ["Use a wired Modem to interract with barrel, and print on the monitor list of items in it."] dependencies: ["0F004D494E6114E8"] @@ -1112,8 +1112,8 @@ { title: "Wireless communications!" icon: "computercraft:wireless_modem_normal" - x: 8.0d - y: 7.0d + x: 1.0d + y: 8.0d subtitle: "Challenge #4.2" description: [ "" @@ -1382,8 +1382,8 @@ } { icon: "minecraft:writable_book" - x: 6.5d - y: 5.0d + x: -0.5d + y: 6.0d description: [ "Challenges are gonna change a lot. Those that are here right now, are gonna be in new section: Tasks! It will give a tutorial how to do a program so people can see how to write code" "" @@ -1613,8 +1613,8 @@ }] } { - x: 7.5d - y: 5.0d + x: 0.5d + y: 6.0d description: [ "Progression visibility:" "Introduction to Lua / Advanced PC \\& Pocket PC / Wikis - Stage 0" @@ -1687,5 +1687,30 @@ } ] } + { + title: "If this is equal 0, then true!" + icon: "computercraft:printed_pages" + x: 9.0d + y: -0.5d + subtitle: "Lua Basics #3 - If and logic operators" + description: [ + "\"if\" is another one of most important things in coding. Without it we couldn't be able to create any decisions! \"if\" is used to check if variable is equal, bigger, smaller etc than other variable / value." + "" + "Usage of \"if\" is actually really similiar to function, but you aren't doing a variable this time! To start creating your decision, you do something like this:" + "" + "> if (variable_1 == variable_2) then" + "" + "You could realise that I didn't use single \"=\" sign, and that's not a mistake! You can not use single equal sign in this case, as it is used to assing value to variable, and not to check value! Here is the list of logic operators you can use in Lua:" + ] + dependencies: ["5056B0737A8A8D64"] + hide: true + min_width: 450 + id: "6DF4A8FB92121573" + tasks: [{ + id: "76DA4E58186F04A0" + type: "checkmark" + title: "Got it!" + }] + } ] } From 5a9b164b3c8985e581000c4b3a7e61de7d173bd1 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Wed, 6 Jul 2022 16:48:57 +0200 Subject: [PATCH 24/53] Another batch of fixed Typos etc Thx again Soul#5886 for help with fixing typos. Note: For another few days I will not be in my house so there will be no progress made probably. --- .../chapters/computercraft_tweaked.snbt | 100 +++++++++--------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 8d9b485d67..16103424c3 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -22,7 +22,7 @@ "" "Think about anything, this mod can do it!" "" - "Those quests are meant to showcase the mod, and teach you, fellow Player, Basics of Basics with Lua and how to start learning more!" + "These quests are meant to showcase the mod, and teach you, fellow Player, Basics of Basics with Lua and how to start learning more!" "" "~~Kanzio" ] @@ -76,7 +76,7 @@ y: 0.0d subtitle: "There is something more than Computers?!" description: [ - "ComputerCraft: Tweaked has a lot peripherals that are really useful for doing anything!" + "ComputerCraft: Tweaked has a lot of peripherals that are really useful for doing anything!" "" "This section will show you all peripherals available and how to use their APIs." ] @@ -486,7 +486,7 @@ x: -6.5d y: 4.5d subtitle: "Wait there is even more?" - description: ["ComputerCraft: Tweaked adds on its own a few unique peripherals. Some of them aren't as useful as others, but all of them are worth attention."] + description: ["ComputerCraft: Tweaked adds a few unique peripherals on its own. Some of them aren't as useful as others, but all of them are worth to look at."] dependencies: ["378BEFB62C4F98BF"] id: "1580D9FD06937ABB" tasks: [{ @@ -696,7 +696,7 @@ shape: "pentagon" subtitle: "Official Wikis for everything." description: [ - "If you want to learn even more, or need something that isn't here, check out those links." + "If you want to learn even more, or need something that isn't here, check out these links." "" "These are official docs to the Lua Programming Language, as well as to ComputerCraft: Tweaked Wiki and Mekanism integration." "TODO: clickable links or message on chat" @@ -1199,7 +1199,7 @@ description: [ "Boolean is the easiest type in every programming language. It can have 2 states, \"True\" and \"False\"." "" - "Its really useful in situations where you need to check if something is True, or False. Example:" + "A Boolean is really useful in situations where you need to check if something is True, or False. Example:" "● You need to know if there is a chest on the left of the PC. If there is a chest, it's \"True\", if there is not, it's \"False\"" "" "A lot of functions are returning a boolean variable after they ended they work, it is useful to check for that output to see if what you wanted to do was actually done." @@ -1220,30 +1220,30 @@ y: -5.4d subtitle: "Lua Basics #1 - Variable types" description: [ - "You already heard of the word \"function\" a few times in this quest line, but did you know its also one of the variable types?" - "Function is a variable that doesn't store data, it stores other functions and variables in it, that you can use in other place with just the name of that function. Pretty convenient isn't it?" + "You already heard of the word \"function\" a few times in this quest line, but did you know it's also one of the variable types?" + "Function is a variable that doesn't store data, it stores other functions and variables in it, which you can then use in another place with just the name of that function. Pretty convenient isn't it?" "" - "As every variable, you can change its value later on to whatever you want. Yes that means you can edit some of Lua Functions and other APIs, but it will break stuff most of the time :sweat_smile:" - "API is set of functions you can use to interract with stuff that uses that API. For example to interract with monitor of the PC, you need to use API that has functions to do that. How to use APIs will be later." + "As every variable, you can change its value later on to whatever you want. Yes that means you can edit some of the Lua Functions and other APIs, but it will break stuff most of the time." + "APIs are sets of functions you can use to interract with stuff that uses a given API. For example to interact with the monitor of the PC, you need to use API that has functions to do that. How to use APIs will be explained later." "" "Now lets see how to use functions." - "For you to call (In other words, use) function, you need to simply type its name with 2 brackets. Between those are function's arguments." + "For you to call (In other words, use) a function, you need to simply type its name with 2 brackets. Between those are the function's arguments." "" "> print(string) -- Basic function to write text on the screen. Has one argument." "" - "In my case I called print(). Some of the functions doesn't require you to give them arguments, they can even don't have any of them, but there can be functions that require from you even 10 arguments. Crazy isn't it?!" - "In our case, print() requires as it's first and only argument some string (Read \"Type: String\" quest to know what string is)" - "So example usage of print() would look like this:" + "In my case I called print(). Some of the functions don't require you to give them arguments, they can even not have any of them, but there can also be functions that require even 10 arguments. Crazy isn't it?!" + "In my case, print() requires as its first and only argument some string (Read \"Type: String\" quest to know what a string is)" + "Example usage of print() looks like this:" "" "> print(\"This is a test!\") -- Writes on the screen --> This is a test!" "" - "As you can use variables in place of function's arguments, you can use functions as argument as well! Most of the functions return something, if its a table with stuff they found, or just boolean if they were able to do what they need to. They can even return other function! To use function as the argument, you just write it as you would normally, but in the argument of other function." + "You already know that function arguments require variable, but did you know that you can use a function as an argument as well? Most of the functions return something, if its a table with stuff they found, or just a boolean if they were able to do what they need to. They can even return other functions. To use functions as the arguments, you just write it as you would normally, just in this case it would be in the argument of your function." "" - "> print(my_function(1)) -- It will print what my_function will return." + "> print(my_function(1)) -- This will print what my_function will return." "" - "There is also a way to pass the function, that is useful sometimes and should be used with functions that doesn't require any arguments. To pass a function, you simply write its name but without brackets! However its not that useful in our usage, and until you will not go deeper into Lua coding, you will probably never use it." + "There is also a way to pass the function, this is sometimes useful and should be used with functions that don't require any arguments. To pass a function, you simply write its name without brackets. However its not that useful in our use case, and until you will not go deeper into Lua coding, you will probably never use it." "" - "For more about Functions, and how to create them, check Lua Basics #2." + "For more information about functions and how to create them, check Lua Basics #2." ] dependencies: ["29C780353E7FB720"] min_width: 450 @@ -1262,30 +1262,30 @@ y: -4.8d subtitle: "Lua Basics #1 - Variable types" description: [ - "String is a type of variable that stores a sequence of characters. You can type here anything, binary code (Binary - Code using ones and zeros), your name, entire address or your homework :wink:" + "String is a type of variable that stores a sequence of characters. You can type here anything, binary code (Binary - Code using ones and zeros), your name, entire address or your homework if you so desire." "" - "● Strings need to be written between double quotes to be valid, otherwise program will think its the name of variable!" + "● Strings need to be written between double quotes to be valid, otherwise the program will think its the name of variable!" "" "> local my_first_string = \"Hello Player\" -- Valid string" - "> local my_first_string = Hello Player -- Not valid, program will think those are two variables" + "> local my_first_string = Hello Player -- Not valid, Lua will think those are two variables" "" "● Strings can not be modified, but you can do a copy of them with a modification you want to do." "> local test_string = \"This is a test\"" "> local test_string_edited = string.gsub(test_string, \"test\", \"Test!\", 1)" "> \"This is a Test!\" -> test_string_edited" "" - "● string.gsub is one of few ways you can edit your strings. First argument takes the string / variable you want to edit, second one what \"characters\" you want to change, and third one takes what you want to put in that place." - "There is fourth argument (Optional) that tells the program which occurance of those characters to change. If, for example, we would have 2 \"test\" in our string, with number you can set which one to edit! In our case it would edit the first one." + "● string.gsub is one of the few ways with which you can edit your strings. First argument takes the string / variable you want to edit, second one what \"characters\" you want to change, and the third one takes what you want to put in its place." + "There is a fourth argument (Optional) that tells the program which occurance of those characters to change. If, for example, we would have 2 \"test\" in our string, with number you can set which one to edit! In our case it would edit the first one." "" - "● There is also a way to add some text at the end of your string. This time you can \"edit\" the initial string by overwriting it, but its sometimes useful to have it as seperate variables." + "● There is also a way to add some text at the end of your string. This time you can \"edit\" the initial string by overwriting it, but it's sometimes useful to have it as seperate variables." "To add some text at the end of your string, you use 2 dots between 2 strings you want to add together:" "> local string_1 = \"Hello \"" "> local string_2 = \"there!\"" "> string_1 = string_1 .. string_2" - "(Note: string_2 can be replaced by non-string variable if it can be converted to string)" + "(Note: string_2 can be replaced by a non-string variable if it can be converted to a string)" "> \"Hello there!\" -> string_1" "" - "There is also a few different ways to modify your strings, and to format them, however those aren't as useful, and can be found in Lua docs!" + "There is also a few different ways to modify your strings and to format them, however those aren't as useful and can be found in Lua docs." ] dependencies: ["29C780353E7FB720"] min_width: 400 @@ -1303,13 +1303,13 @@ y: -5.4d subtitle: "Lua Basics #1 - Variable types" description: [ - "Number is a type of variable to store numbers. Yes literally :sweat_smile:" + "Number is a type of variable to store numbers." "" - "Numbers should be written without any other characters to be valid and recognised as number:" + "Numbers should be written without any other characters to be valid and recognised as such:" "> local my_first_number = 6" "> 6 -> my_first_number" "" - "● There are few exceptions however, as you can do single and double precision numbers as well. For that you just use a dot:" + "● There are a few exceptions however, as you can do single and double precision numbers as well. For that you just use a dot:" "> local some_number = 1.54" "● You can also write numbers in scientific notation (example: 5e20), but personally I wouldn't recommend that unless you know what you are doing." "" @@ -1319,11 +1319,11 @@ "* -> Multiplication" "/ -> Division" "" - "Its really simple to use them, you just write between two numbers operator you want to use:" + "It's really simple to use them, you just write the operator you want to use between two numbers:" "> local add = 6 + 10" "> 16 -> add" "" - "Unfortunately Lua doesn't support anything else than those 4 basic operators, for anything else that you want, you will need to write the function yourself. For creating functions check out Function type in Lua Basics #1" + "Unfortunately Lua doesn't support anything else than those 4 basic operators. If you want to do anything else you will need to write the function yourself. For creating functions check out Function type in Lua Basics #1" ] dependencies: ["29C780353E7FB720"] min_width: 400 @@ -1342,25 +1342,25 @@ subtitle: "Lua Basics #1 - Variable tips \\& tricks" description: [ "Variable naming:" - "For setting variable's name, its important to know few things:" + "For setting a variable's name, it's important to know a few things:" "" "● Lua is \"capital sensitive\". It means that variables with name \"test\" and \"TEST\" are two different variables! " "" - "● Variable's name can't be longer than 64 characters" + "● Variable names can't be longer than 64 characters" "" - "● Variable's name can't start with a number and can't have any spaces:" + "● Variable names can't start with a number and can't have any spaces:" "> local test_1 -- Variable named correctly" "> local 1_test -- Variable named incorrectly, will not work" "> local test 1 -- Variable named incorrectly, will not work" "" - "● You should name variables in a way that they represent theirs use:" + "● You should name variables in a way that they represent their use:" "> local day = \"Monday\"" "> local x123 = \"Monday\"" - "Both of those are used by me to store day of the week, but first one is named with its purpose in mind, other one is just random thing. They both will work, however if you are trying to do more advanced program, random names like x123 are gonna mess with you really quickly." + "Both of these are used by me to store a day of the week, but the first one is named with its purpose in mind, the other one is just a random thing. They both will work, however if you are trying to do more advanced programming, random names like x123 are gonna make a mess really quick." "" "General tips \\& tricks:" "" - "● You can create few variables at the same time! You just simply type two or more names after \"local\" and seperate them with comma. You can even set in the same way unique value for every variable." + "● You can create multiple variables at the same time! You just simply type two or more names after \"local\" and seperate them with a comma. You can even set a unique value for each variable." "> local x, y, z = 1, 2, 3" "> 1 -> x / 2 -> y / 3 -> z" "" @@ -1439,11 +1439,11 @@ "" "In Lua there is 8 variable types, however I will cover only 6 because 2 of them aren't that useful in ComputerCraft, and require much more knowledge." "" - "Lua, whenever you are trying to do something that is designed for different type of variable, will try to convert variable you use to the type it needs to be. Of course it will not success 100%, because sometimes its impossible to convert. In this case it will crash the program and give error about illegal function on that type of the variable." + "Lua, whenever you are trying to do something that is designed for a different type of variable, will try to convert the variable you use to the type it needs to be. Of course it will not success 100%, because sometimes its impossible to convert. In this case it will crash the program and give an error about a illegal function on that type of the variable." "" - "There are few ways to convert manually one type to another, but its not that useful in stuff we are gonna do, and can be found in Official Lua Docs." + "There are few ways to convert one type to another manually, but it's not that useful in stuff we are gonna do, and can be found in Official Lua Docs." "" - "Note: If you already know Integrated Dynamics' variable types, a lot of ComputerCraft ones are really similiar. On the last line of every type quest there is a note saying what type of Variable is that in ID :wink: -- need feedback about this, should I add this or its kinda pointless?" + "Note: If you already know Integrated Dynamics' variable types, a lot of ComputerCraft ones are really similiar. On the last line of every type quest there is a note saying what type of Variable that is in ID -- need feedback about this, should I add this or its kinda pointless?" "TODO: Link to the site with convert Functions" ] dependencies: ["29C780353E7FB720"] @@ -1462,7 +1462,7 @@ y: -4.0d subtitle: "Lua Basics #1 - Variable types" description: [ - "Nil is a variable type and variable value. It means literally \"nothing\" in code. Variable with type nil, asked for their type and what they're storing, will return nil." + "Nil is a variable type and variable value. It means literally \"nothing\" in code. Variables with type nil, asked for their type and what they're storing, will return nil." "" "● Nil is useful when you need to clear some variable after use." "" @@ -1470,7 +1470,7 @@ "" "● This will set type and value of x as nil, setting it like it was just created in that line." "" - "Also some functions, when they don't find anything you asked for, they will return nil." + "Some functions will return nil when they don't find anything you asked for." ] dependencies: ["29C780353E7FB720"] min_width: 400 @@ -1488,13 +1488,13 @@ y: -2.0d subtitle: "Lua Basics #2 - Creating functions" description: [ - "Creating functions is a little different and more complicated than creating a normal variable. One of main differences is a function you use to create it. To create your own function variable, you use \"function\" command!" + "Creating functions is a little different and more complicated than creating a normal variable. One of the main differences is the function you use to create it. To create your own function variable, you use the \"function\" command!" "" "> function my_first_function(argument_1,argument_2)" "" - "● First argument is a name of your function. Important thing is to add brackets, as you would do while calling a normal one. They have the same purpose here, between them, you put your function's arguments!" + "● First you enter the name of your function. Important thing to add is brackets as you would do while calling a normal one. They have the same purpose here, between them, you put your function's arguments!" "" - "You can add as many arguments as you want, and to separate them you use commas. Arguments work like normal variables. However if you call a function and not give it argument it needs, Lua will default that argument to \"nil\" variable. " + "You can add as many arguments as you want, and to separate them you use commas. Arguments work like normal variables. However if you call a function and not give it the argument that it needs, Lua will default that argument to the variable \"nil\". " "" "● Variables that you just created for your function's arguments are temporary, they can not be used in any other place than that one function! Otherwise you use them like normal variables." "" @@ -1503,18 +1503,18 @@ "> return argument_1 + argument_2" "> end" "" - "● It was mentioned in few quests that functions can return some variables, and command \"return\" is used to do exactly that. It's arguments are returned to other variable, that is set to have a value of a function." + "● It was mentioned in a few quests that functions can return some variables, and the command \"return\" is used to do exactly that. Its arguments are returned to another variable, that is set to have a value of a function." "" "> local x = my_first_function(1,2)" "> 3 -> x -- Return added both our arguments (1 and 2) and returned it to variable x." "" - "● \"end\" command is to set the end of your function. It is used after the last line of your function's code. To show this, here is our function we just created:" + "● The \"end\" command is to set the end of your function. It is used after the last line of your function's code. To showcase this, here is our function we just created:" "" "> function my_first_function(argument_1,argument_2)" "> return argument_1 + argument_2" "> end -- End of function." "" - "Important note is that you can use other functions in your function, even if there are created by you! However those need to be written before function that uses them, as Lua reads code from 1st line to last one, so if it sees a function that is created later, it will not know what is it." + "Important note is that you can use other functions in your function, even if they are created by you! However those need to be written before the function that uses them, as Lua reads code from 1st line to last one, so if it sees a function that is created later, it will not know what it is." ] dependencies: [ "29C780353E7FB720" @@ -1694,13 +1694,13 @@ y: -0.5d subtitle: "Lua Basics #3 - If and logic operators" description: [ - "\"if\" is another one of most important things in coding. Without it we couldn't be able to create any decisions! \"if\" is used to check if variable is equal, bigger, smaller etc than other variable / value." + "\"if\" is another one of the most important things in coding. Without it we wouldn't be able to create any decisions! \"if\" is used to check if a variable is equal, bigger, smaller etc than another variable / value." "" - "Usage of \"if\" is actually really similiar to function, but you aren't doing a variable this time! To start creating your decision, you do something like this:" + "Usage of \"if\" is actually really similiar to a function, but you aren't doing a variable this time! To start creating your decision, you do something like this:" "" "> if (variable_1 == variable_2) then" "" - "You could realise that I didn't use single \"=\" sign, and that's not a mistake! You can not use single equal sign in this case, as it is used to assing value to variable, and not to check value! Here is the list of logic operators you can use in Lua:" + "You probably realized that I didn't use single \"=\" sign, and that's not a mistake! You can not use a single equal sign in this case, as it is used to asign a value to a variable, and not to check its value! Here is the list of logic operators you can use in Lua:" ] dependencies: ["5056B0737A8A8D64"] hide: true From 320c22a77c30ad291454a96fa2dbf56609a0652b Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Wed, 6 Jul 2022 16:49:23 +0200 Subject: [PATCH 25/53] Revert "Merge branch 'develop' of https://github.com/Kanzaji/Enigmatica6 into pr/5041" This reverts commit 46199f9e933abe317c4f4f9c9f044e9bd3a4759c, reversing changes made to 5a9b164b3c8985e581000c4b3a7e61de7d173bd1. --- config/ftbquests/quests/chapters/tech_t3.snbt | 2 - kubejs/assets/kubejs/lang/en_us.json | 13 - .../item_modifiers/jei_descriptions.js | 43 -- .../base/recipetypes/tconstruct/melting.js | 14 - .../ars_nouveau/enchanting_apparatus.js | 229 +++++----- .../astralsorcery/altar/altar_2_celestial.js | 2 +- .../expert/recipetypes/bloodmagic/altar.js | 51 +-- .../recipetypes/create/mechanical_crafting.js | 6 +- .../recipetypes/create/sequenced_assembly.js | 97 ----- .../expert/recipetypes/kubejs/shapeless.js | 76 ---- .../auto_iridescent_altar.js | 405 ------------------ .../enigmatic_tree_of_life.js | 92 ++-- .../expert/recipetypes/mekanism/sawing.js | 4 +- .../expert/recipetypes/naturesaura/altar.js | 4 +- .../recipetypes/naturesaura/tree_ritual.js | 19 +- .../pneumaticcraft/pressure_chamber.js | 65 +-- .../recipetypes/thermal/machine/sawmill.js | 4 +- kubejs/startup_scripts/item_registry.js | 188 ++++---- 18 files changed, 285 insertions(+), 1029 deletions(-) diff --git a/config/ftbquests/quests/chapters/tech_t3.snbt b/config/ftbquests/quests/chapters/tech_t3.snbt index a2eb25e97f..a577d174c5 100644 --- a/config/ftbquests/quests/chapters/tech_t3.snbt +++ b/config/ftbquests/quests/chapters/tech_t3.snbt @@ -372,8 +372,6 @@ description: [ "A fusion of technology and magic, the Stellar Neutron Activator is capable of producing enormous quantities of Tritium continuously, though the process requires enormous quantities of mana and energy to extract it from water." "" - "This machine operates for 4000 ticks every time it consumes mana." - "" "=================================================================" "" "Note that the recipes shown in JEI don't accurately display whether any given input is per tick or all at once. For simplicity, all recipes for all Masterful Machines have been standardized under the following rule set:" diff --git a/kubejs/assets/kubejs/lang/en_us.json b/kubejs/assets/kubejs/lang/en_us.json index 50fd6a1e77..a029432edf 100644 --- a/kubejs/assets/kubejs/lang/en_us.json +++ b/kubejs/assets/kubejs/lang/en_us.json @@ -84,13 +84,6 @@ "item.kubejs.artisinal_ritual_kit": "Artisinal Occult Ritual Kit", "item.kubejs.artisinal_chalk_set": "Artisinal Chalk Set", "item.kubejs.diy_pressure_chamber": "DIY Pressure Chamber Kit", - "item.kubejs.diy_drone_kit": "DIY Drone Kit", - "item.kubejs.assorted_router_kit": "Assorted Router Kit", - "item.kubejs.altar_of_birthing_kit": "All Natural Altar of Birthing Kit", - "item.kubejs.diy_furnace_engine_kit": "DIY Furnace Engine Kit", - "item.kubejs.imaharas_indelible_electrodes": "Imahara's Indelible Electrodes", - "item.kubejs.bright_constellation_box": "Bright Constellation Box", - "item.kubejs.dim_constellation_box": "Dim Constellation Box", "item.kubejs.engineers_school_project": "Engineer's School Project", "item.kubejs.partial_engineers_school_project": "Partial Engineer's School Project", @@ -110,12 +103,6 @@ "item.kubejs.partial_engineers_school_upgrades": "Partial Engineering School Upgrades", "item.kubejs.building_materials": "Building Materials", "item.kubejs.partial_building_materials": "Partial Building Materials", - "item.kubejs.big_box_o_boom": "Big Box O'Boom™", - "item.kubejs.partial_big_box_o_boom": "Partial Big Box O'Boom™", - "item.kubejs.mimirs_memory_box": "Mimir's Memory Box™", - "item.kubejs.partial_mimirs_memory_box": "Partial Mimir's Memory Box™", - "item.kubejs.box_of_thankful_dinners": "Box of Thankful Dinners", - "item.kubejs.partial_box_of_thankful_dinners": "Partial Box of Thankful Dinners", "block.kubejs.firmament": "Firmament", "item.kubejs.partial_alloybrick": "Partial Kiln Brick", diff --git a/kubejs/client_scripts/item_modifiers/jei_descriptions.js b/kubejs/client_scripts/item_modifiers/jei_descriptions.js index db757a8bde..0564197666 100644 --- a/kubejs/client_scripts/item_modifiers/jei_descriptions.js +++ b/kubejs/client_scripts/item_modifiers/jei_descriptions.js @@ -551,51 +551,9 @@ onEvent('jei.information', (event) => { `● Enderslime`, `● Skyslime` ] - }, - { - items: ['farmersdelight:honey_glazed_ham'], - text: [`Obtained by right-clicking a placed Honey Glazed Ham with a Bowl.`] - }, - { - items: ['farmersdelight:stuffed_pumpkin'], - text: [`Obtained by right-clicking a placed Stuffed Pumpkin with a Bowl.`] - }, - { - items: ['farmersdelight:roast_chicken'], - text: [`Obtained by right-clicking a placed Roast Chicken with a Bowl.`] - }, - { - items: ['simplefarming:brewing_barrel'], - text: [`Used for brewing various alcoholic beverages.`, ` `, `● Beer`, `● Cauim`, `● Cider`, `● Mead`] - }, - { - items: ['simplefarming:brewing_barrel'], - text: [`● Sake`, `● Tiswin`, `● Vodka`, `● Whiskey`, `● Wine`] } ]; - const simplefarming_beverages = [ - { type: 'beer', ingredient: 'Barley', effect: 'Strength' }, - { type: 'cauim', ingredient: 'Cassava', effect: 'Jump Boost' }, - { type: 'cider', ingredient: 'Apples', effect: 'Luck' }, - { type: 'mead', ingredient: 'Honeycomb', effect: 'Haste' }, - { type: 'sake', ingredient: 'Rice', effect: 'Speed' }, - { type: 'tiswin', ingredient: 'Cactus Fruit', effect: 'a Health Boost' }, - { type: 'vodka', ingredient: 'Potatoes', effect: 'Resistance' }, - { type: 'whiskey', ingredient: 'Wheat', effect: 'Absorption' }, - { type: 'wine', ingredient: 'Grapes', effect: 'Regeneration' } - ]; - - simplefarming_beverages.forEach((beverage) => { - recipes.push({ - items: [`simplefarming:${beverage.type}`], - text: [ - `Brewed by right-clicking ${beverage.ingredient} into a Brewing Barrel.`, - `Grants the imbiber ${beverage.effect}.` - ] - }); - }); - recipes.forEach((recipe) => { recipe.items.forEach((item) => { event.add(item, recipe.text); @@ -639,7 +597,6 @@ onEvent('jei.information', (event) => { 'half_two', 'half_four' ]; - framedDrawers.forEach((drawer) => { event.add('framedcompactdrawers:framed_' + drawer, [ 'Must be painted with any block to be used. To paint, put in any crafting grid with one block directly above and to its left diagonally.', diff --git a/kubejs/server_scripts/enigmatica/kubejs/base/recipetypes/tconstruct/melting.js b/kubejs/server_scripts/enigmatica/kubejs/base/recipetypes/tconstruct/melting.js index 0264c472cf..7a349ff539 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/base/recipetypes/tconstruct/melting.js +++ b/kubejs/server_scripts/enigmatica/kubejs/base/recipetypes/tconstruct/melting.js @@ -156,20 +156,6 @@ onEvent('recipes', (event) => { time: 20 * 22, byproducts: [{ fluid: 'materialis:molten_starmetal', amount: 48 }], id: 'materialis:smeltery/melting/metal/starmetal/ore' - }, - { - ingredient: { tag: 'forge:storage_blocks/glowstone' }, - result: { fluid: 'thermal:glowstone', amount: 1000 }, - temperature: 825, - time: 64 * 4, - id: `${id_prefix}energized_glowstone_from_glowstone_block` - }, - { - ingredient: { tag: 'forge:dusts/glowstone' }, - result: { fluid: 'thermal:glowstone', amount: 250 }, - temperature: 825, - time: 64, - id: `${id_prefix}energized_glowstone_from_glowstone_dust` } ]; diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/ars_nouveau/enchanting_apparatus.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/ars_nouveau/enchanting_apparatus.js index 50096aa37e..6bb5ec3b4b 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/ars_nouveau/enchanting_apparatus.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/ars_nouveau/enchanting_apparatus.js @@ -7,7 +7,7 @@ onEvent('recipes', (event) => { { inputs: ['#forge:dusts/silver', '#forge:dusts/silver', '#forge:dusts/silver', '#forge:dusts/silver'], reagent: '#forge:dusts/sulfur', - sourceCost: 100, + sourceCost: 1000, output: Item.of('4x architects_palette:sunmetal_blend'), id: 'architects_palette:sunmetal_blend' }, @@ -51,7 +51,7 @@ onEvent('recipes', (event) => { 'architects_palette:sunmetal_blend' ], reagent: 'betterendforge:silk_fiber', - sourceCost: 100, + sourceCost: 1000, output: Item.of('4x naturesaura:gold_fiber'), id: `${id_prefix}gold_fiber` }, @@ -233,7 +233,7 @@ onEvent('recipes', (event) => { 'astralsorcery:illumination_powder' ], reagent: 'ars_nouveau:potion_jar', - sourceCost: 10, + sourceCost: 100, output: 'ars_nouveau:potion_melder', id: 'ars_nouveau:potion_melder' }, @@ -278,7 +278,7 @@ onEvent('recipes', (event) => { '#forge:ingots/terminite' ], reagent: '#atum:relic_non_dirty/ring', - sourceCost: 300, + sourceCost: 6000, output: 'ars_nouveau:ring_of_lesser_discount', id: 'ars_nouveau:ring_of_lesser_discount' }, @@ -294,7 +294,7 @@ onEvent('recipes', (event) => { '#forge:ingots/thallasium' ], reagent: 'ars_nouveau:ring_of_lesser_discount', - sourceCost: 100, + sourceCost: 6000, output: 'ars_nouveau:ring_of_greater_discount', id: 'ars_nouveau:ring_of_greater_discount' }, @@ -310,7 +310,7 @@ onEvent('recipes', (event) => { '#forge:gems/mana' ], reagent: '#atum:relic_non_dirty/necklace', - sourceCost: 500, + sourceCost: 6000, output: 'ars_nouveau:amulet_of_mana_regen', id: 'ars_nouveau:amulet_of_mana_regen' }, @@ -326,7 +326,7 @@ onEvent('recipes', (event) => { '#forge:gems/mana' ], reagent: '#atum:relic_non_dirty/necklace', - sourceCost: 500, + sourceCost: 6000, output: 'ars_nouveau:amulet_of_mana_boost', id: 'ars_nouveau:amulet_of_mana_boost' }, @@ -342,7 +342,7 @@ onEvent('recipes', (event) => { 'quark:bottled_cloud' ], reagent: 'eidolon:basic_belt', - sourceCost: 500, + sourceCost: 6000, output: 'ars_nouveau:belt_of_levitation', id: 'ars_nouveau:belt_of_levitation' }, @@ -358,7 +358,7 @@ onEvent('recipes', (event) => { '#forge:feathers' ], reagent: 'eidolon:basic_belt', - sourceCost: 500, + sourceCost: 6000, output: 'ars_nouveau:belt_of_unstable_gifts', id: 'ars_nouveau:belt_of_unstable_gifts' }, @@ -374,7 +374,7 @@ onEvent('recipes', (event) => { 'botania:livingrock' ], reagent: '#botania:runes/mana', - sourceCost: 300, + sourceCost: 6000, output: 'botania:mana_tablet', id: 'botania:mana_tablet' }, @@ -422,7 +422,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/attack', id: 'pedestals:upgrades/attack' }, @@ -438,7 +438,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/turret', id: 'pedestals:upgrades/turret' }, @@ -454,7 +454,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/sawmill', id: 'pedestals:upgrades/sawmill' }, @@ -470,7 +470,7 @@ onEvent('recipes', (event) => { 'powah:capacitor_spirited' ], reagent: 'pedestals:coin/sawmill', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/rfsawmill', id: 'pedestals:upgrades/rfsawmill' }, @@ -486,7 +486,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/chopper', id: 'pedestals:upgrades/chopper' }, @@ -502,7 +502,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/breaker', id: 'pedestals:upgrades/breaker' }, @@ -518,7 +518,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/cobble', id: 'pedestals:upgrades/cobblegen' }, @@ -534,7 +534,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/compactor2', id: 'pedestals:upgrades/compactor2' }, @@ -550,7 +550,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/crafter1', id: 'pedestals:upgrades/crafter1' }, @@ -566,7 +566,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/placer', id: 'pedestals:upgrades/placer' }, @@ -582,7 +582,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/smelter', id: 'pedestals:upgrades/smelter' }, @@ -598,7 +598,7 @@ onEvent('recipes', (event) => { 'powah:capacitor_spirited' ], reagent: 'pedestals:coin/smelter', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/rfsmelter', id: 'pedestals:upgrades/rfsmelter' }, @@ -614,7 +614,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/import', id: 'pedestals:upgrades/import' }, @@ -630,7 +630,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, // Not a typo, items are misnamed. output: 'pedestals:coin/enderexport', id: 'pedestals:upgrades/enderimport' @@ -647,7 +647,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/harvester', id: 'pedestals:upgrades/harvester' }, @@ -663,7 +663,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/breaker', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/quarry', id: 'pedestals:upgrades/quarry' }, @@ -679,7 +679,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/grower', id: 'pedestals:upgrades/grower' }, @@ -695,7 +695,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/planter', id: 'pedestals:upgrades/planter' }, @@ -711,7 +711,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/harvesterhives', id: 'pedestals:upgrades/harvesterhives' }, @@ -727,7 +727,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/babymaker', id: 'pedestals:upgrades/babymaker' }, @@ -743,7 +743,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/crusher', id: 'pedestals:upgrades/crusher' }, @@ -759,7 +759,7 @@ onEvent('recipes', (event) => { 'powah:capacitor_spirited' ], reagent: 'pedestals:coin/crusher', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/rfcrusher', id: 'pedestals:upgrades/rfcrusher' }, @@ -775,7 +775,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/dropper', id: 'pedestals:upgrades/dropper' }, @@ -791,7 +791,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/fan', id: 'pedestals:upgrades/fan' }, @@ -807,7 +807,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/effect', id: 'pedestals:upgrades/effect' }, @@ -823,7 +823,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/itemtank', id: 'pedestals:upgrades/itemtank' }, @@ -839,7 +839,7 @@ onEvent('recipes', (event) => { 'astralsorcery:resonating_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/milker', id: 'pedestals:upgrades/milker' }, @@ -855,7 +855,7 @@ onEvent('recipes', (event) => { 'astralsorcery:resonating_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/fluidtank', id: 'pedestals:upgrades/fluidtank' }, @@ -871,7 +871,7 @@ onEvent('recipes', (event) => { 'astralsorcery:resonating_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/fluidrelay', id: 'pedestals:upgrades/fluidrelay' }, @@ -887,7 +887,7 @@ onEvent('recipes', (event) => { 'powah:capacitor_spirited' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/rfrelay', id: 'pedestals:upgrades/rfrelay' }, @@ -903,7 +903,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:greater_experience_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/xprelay', id: 'pedestals:upgrades/xprelay' }, @@ -919,7 +919,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/teleporter', id: 'pedestals:upgrades/teleporter' }, @@ -935,7 +935,7 @@ onEvent('recipes', (event) => { 'quark:basalt' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/void', id: 'pedestals:upgrades/void' }, @@ -951,7 +951,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/magnet', id: 'pedestals:upgrades/magnet' }, @@ -967,7 +967,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/shearer', id: 'pedestals:upgrades/shearer' }, @@ -983,7 +983,7 @@ onEvent('recipes', (event) => { 'powah:capacitor_spirited' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/rfimport', id: 'pedestals:upgrades/rfimport' }, @@ -999,7 +999,7 @@ onEvent('recipes', (event) => { 'powah:capacitor_nitro' ], reagent: 'pedestals:coin/rfexport', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/rffield', id: 'pedestals:upgrades/rffield' }, @@ -1015,7 +1015,7 @@ onEvent('recipes', (event) => { 'powah:capacitor_spirited' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/rftank', id: 'pedestals:upgrades/rftank' }, @@ -1031,7 +1031,7 @@ onEvent('recipes', (event) => { 'astralsorcery:resonating_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/fluidcrafter1', id: 'pedestals:upgrades/fluidcrafter1' }, @@ -1047,7 +1047,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:greater_experience_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/xpgrindstone', id: 'pedestals:upgrades/xpgrindstone' }, @@ -1063,7 +1063,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:greater_experience_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/xpbottler', id: 'pedestals:upgrades/xpbottler' }, @@ -1079,7 +1079,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:greater_experience_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/xpmagnet', id: 'pedestals:upgrades/xpmagnet' }, @@ -1095,7 +1095,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:greater_experience_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/fluidxpconverter', id: 'pedestals:upgrades/fluidxpconverter' }, @@ -1111,7 +1111,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:greater_experience_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/xptank', id: 'pedestals:upgrades/xptank' }, @@ -1127,7 +1127,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:greater_experience_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/xpdropper', id: 'pedestals:upgrades/xpdropper' }, @@ -1143,7 +1143,7 @@ onEvent('recipes', (event) => { 'astralsorcery:resonating_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/fluidimport', id: 'pedestals:upgrades/fluidimport' }, @@ -1159,7 +1159,7 @@ onEvent('recipes', (event) => { 'astralsorcery:resonating_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 500, + sourceCost: 2000, output: 'pedestals:coin/fluidpump', id: 'pedestals:upgrades/fluidpump' }, @@ -1188,7 +1188,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:mana_fiber' ], reagent: Item.of('atum:wanderer_helmet', '{Damage:0}').weakNBT(), - sourceCost: 50, + sourceCost: 100, output: 'ars_nouveau:novice_hood', id: `${id_prefix}novice_hood` }, @@ -1204,7 +1204,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:mana_fiber' ], reagent: Item.of('atum:wanderer_chest', '{Damage:0}').weakNBT(), - sourceCost: 50, + sourceCost: 100, output: 'ars_nouveau:novice_robes', id: `${id_prefix}novice_robes` }, @@ -1220,7 +1220,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:mana_fiber' ], reagent: Item.of('atum:wanderer_legs', '{Damage:0}').weakNBT(), - sourceCost: 50, + sourceCost: 100, output: 'ars_nouveau:novice_leggings', id: `${id_prefix}novice_leggings` }, @@ -1236,7 +1236,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:mana_fiber' ], reagent: Item.of('atum:wanderer_boots', '{Damage:0}').weakNBT(), - sourceCost: 50, + sourceCost: 100, output: 'ars_nouveau:novice_boots', id: `${id_prefix}novice_boots` }, @@ -1253,7 +1253,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:blaze_fiber' ], reagent: Item.of('atum:wanderer_helmet', '{Damage:0}').weakNBT(), - sourceCost: 1500, + sourceCost: 3000, output: 'ars_nouveau:apprentice_hood', id: `${id_prefix}apprentice_hood` }, @@ -1269,7 +1269,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:blaze_fiber' ], reagent: Item.of('atum:wanderer_chest', '{Damage:0}').weakNBT(), - sourceCost: 1500, + sourceCost: 3000, output: 'ars_nouveau:apprentice_robes', id: `${id_prefix}apprentice_robes` }, @@ -1285,7 +1285,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:blaze_fiber' ], reagent: Item.of('atum:wanderer_legs', '{Damage:0}').weakNBT(), - sourceCost: 1500, + sourceCost: 3000, output: 'ars_nouveau:apprentice_leggings', id: `${id_prefix}apprentice_leggings` }, @@ -1301,7 +1301,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:blaze_fiber' ], reagent: Item.of('atum:wanderer_boots', '{Damage:0}').weakNBT(), - sourceCost: 1500, + sourceCost: 3000, output: 'ars_nouveau:apprentice_boots', id: `${id_prefix}apprentice_boots` }, @@ -1318,7 +1318,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:end_fiber' ], reagent: Item.of('botania:manaweave_helmet', '{Damage:0}').weakNBT(), - sourceCost: 5000, + sourceCost: 10000, output: 'ars_nouveau:archmage_hood', id: `${id_prefix}archmage_hood` }, @@ -1334,7 +1334,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:end_fiber' ], reagent: Item.of('botania:manaweave_chestplate', '{Damage:0}').weakNBT(), - sourceCost: 5000, + sourceCost: 10000, output: 'ars_nouveau:archmage_robes', id: `${id_prefix}archmage_robes` }, @@ -1350,7 +1350,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:end_fiber' ], reagent: Item.of('botania:manaweave_leggings', '{Damage:0}').weakNBT(), - sourceCost: 5000, + sourceCost: 10000, output: 'ars_nouveau:archmage_leggings', id: `${id_prefix}archmage_leggings` }, @@ -1366,7 +1366,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:end_fiber' ], reagent: Item.of('botania:manaweave_boots', '{Damage:0}').weakNBT(), - sourceCost: 5000, + sourceCost: 10000, output: 'ars_nouveau:archmage_boots', id: `${id_prefix}archmage_boots` }, @@ -1446,7 +1446,7 @@ onEvent('recipes', (event) => { '#forge:storage_blocks/mana' ], reagent: 'ars_nouveau:drygmy_shard', - sourceCost: 100, + sourceCost: 1000, output: 'ars_nouveau:drygmy_charm', id: `ars_nouveau:drygmy_charm` }, @@ -1462,7 +1462,7 @@ onEvent('recipes', (event) => { '#forge:gems/mana' ], reagent: 'ars_nouveau:sylph_shards', - sourceCost: 100, + sourceCost: 1000, output: 'ars_nouveau:sylph_charm', id: `ars_nouveau:sylph_charm` }, @@ -1474,7 +1474,7 @@ onEvent('recipes', (event) => { 'naturesaura:token_fear' ], reagent: '#atum:relic_non_dirty/ring', - sourceCost: 100, + sourceCost: 5000, output: 'naturesaura:death_ring', id: `${id_prefix}death_ring` }, @@ -1490,7 +1490,7 @@ onEvent('recipes', (event) => { '#forge:nuggets/nebu' ], reagent: 'occultism:otherstone_frame', - sourceCost: 10, + sourceCost: 100, output: 'occultism:wormhole_frame', id: 'occultism:crafting/wormhole_frame' }, @@ -1506,7 +1506,7 @@ onEvent('recipes', (event) => { 'fluxnetworks:flux_dust' ], reagent: '#forge:gems/mana', - sourceCost: 100, + sourceCost: 500, output: Item.of('4x occultism:otherstone_tablet'), id: 'occultism:crafting/otherstone_tablet' }, @@ -1522,7 +1522,7 @@ onEvent('recipes', (event) => { '#forge:plates/electrum' ], reagent: 'betterendforge:eternal_crystal', - sourceCost: 500, + sourceCost: 2000, output: 'botania:mana_pylon', id: `${id_prefix}mana_pylon` }, @@ -1538,7 +1538,7 @@ onEvent('recipes', (event) => { 'botania:glimmering_livingwood' ], reagent: 'botania:mana_pylon', - sourceCost: 1000, + sourceCost: 4000, output: 'botania:natura_pylon', id: `${id_prefix}natura_pylon` }, @@ -1554,7 +1554,7 @@ onEvent('recipes', (event) => { '#forge:ingots/elementium' ], reagent: 'botania:natura_pylon', - sourceCost: 2000, + sourceCost: 8000, output: 'botania:gaia_pylon', id: `${id_prefix}gaia_pylon` }, @@ -1570,7 +1570,7 @@ onEvent('recipes', (event) => { '#chipped:crying_obsidian' ], reagent: 'botania:gaia_pylon', - sourceCost: 4000, + sourceCost: 10000, output: 'mythicbotany:alfsteel_pylon', id: `${id_prefix}alfsteel_pylon` }, @@ -1588,7 +1588,7 @@ onEvent('recipes', (event) => { }, { reagent: '#forge:ingots/terrasteel', - output: Item.of('2x botania:gaia_ingot'), + output: 'botania:gaia_ingot', inputs: [ 'botania:life_essence', 'atum:seth_godshard', @@ -1599,7 +1599,7 @@ onEvent('recipes', (event) => { 'atum:seth_godshard', 'botania:life_essence' ], - sourceCost: 100, + sourceCost: 9000, id: `${id_prefix}gaia_ingot` }, { @@ -1725,7 +1725,7 @@ onEvent('recipes', (event) => { '#forge:shards/aurora', '#forge:shards/ender' ], - sourceCost: 500, + sourceCost: 5000, id: 'betterendforge:eternal_crystal' }, { @@ -1741,7 +1741,7 @@ onEvent('recipes', (event) => { '#forge:shards/aurora', '#forge:dusts/starmetal' ], - sourceCost: 100, + sourceCost: 500, id: 'betterendforge:enchanted_petal' }, @@ -1811,21 +1811,21 @@ onEvent('recipes', (event) => { }, { inputs: ['#forge:storage_blocks/mana', 'ars_nouveau:glyph_split'], - sourceCost: 10, + sourceCost: 100, reagent: 'kubejs:scented_stick', output: Item.of('32x ars_nouveau:split_arrow'), id: 'ars_nouveau:split_arrow' }, { inputs: ['#forge:storage_blocks/mana', 'ars_nouveau:glyph_amplify'], - sourceCost: 10, + sourceCost: 100, reagent: 'kubejs:scented_stick', output: Item.of('32x ars_nouveau:amplify_arrow'), id: 'ars_nouveau:amplify_arrow' }, { inputs: ['#forge:storage_blocks/mana', 'ars_nouveau:glyph_pierce'], - sourceCost: 10, + sourceCost: 100, reagent: 'kubejs:scented_stick', output: Item.of('32x ars_nouveau:pierce_arrow'), id: 'ars_nouveau:pierce_arrow' @@ -1857,7 +1857,7 @@ onEvent('recipes', (event) => { '#forge:nuggets/gold', '#forge:nuggets/gold' ], - sourceCost: 50, + sourceCost: 1000, reagent: 'ars_nouveau:carbuncle_shards', output: 'ars_nouveau:carbuncle_charm', id: 'ars_nouveau:carbuncle_charm' @@ -1886,7 +1886,7 @@ onEvent('recipes', (event) => { '#forge:gems/fluorite', 'botania:quartz_lavender' ], - sourceCost: 500, + sourceCost: 1000, reagent: 'ars_nouveau:arcane_relay', output: 'ars_nouveau:arcane_relay_splitter', id: 'ars_nouveau:arcane_relay_splitter' @@ -1902,7 +1902,7 @@ onEvent('recipes', (event) => { '#forge:gems/apatite', 'botania:quartz_lavender' ], - sourceCost: 500, + sourceCost: 1000, reagent: 'ars_nouveau:arcane_relay', output: 'ars_nouveau:relay_deposit', id: 'ars_nouveau:relay_deposit' @@ -1918,7 +1918,7 @@ onEvent('recipes', (event) => { '#forge:gems/mana', '#forge:gems/prismarine' ], - sourceCost: 500, + sourceCost: 1000, reagent: 'ars_nouveau:mana_jar', output: 'ars_nouveau:arcane_relay', id: 'ars_nouveau:arcane_relay' @@ -1934,7 +1934,7 @@ onEvent('recipes', (event) => { '#forge:gems/ender', 'waystones:warp_dust' ], - sourceCost: 500, + sourceCost: 5000, reagent: 'ars_nouveau:arcane_relay', output: 'ars_nouveau:relay_warp', id: 'ars_nouveau:relay_warp' @@ -1950,7 +1950,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:novice_spell_book', '#forge:ingots/osmium' ], - sourceCost: 50, + sourceCost: 5000, reagent: '#forge:eggs', output: 'ars_nouveau:whelp_charm', id: 'ars_nouveau:whelp_charm' @@ -1966,7 +1966,7 @@ onEvent('recipes', (event) => { 'create:polished_rose_quartz', '#forge:nuggets/arcane_gold' ], - sourceCost: 100, + sourceCost: 500, reagent: 'ars_nouveau:basic_spell_turret', output: 'ars_nouveau:spell_turret', id: 'ars_nouveau:spell_turret' @@ -1982,7 +1982,7 @@ onEvent('recipes', (event) => { 'create:polished_rose_quartz', '#forge:nuggets/tinkers_bronze' ], - sourceCost: 100, + sourceCost: 500, reagent: 'ars_nouveau:basic_spell_turret', output: 'ars_nouveau:timer_spell_turret', id: 'ars_nouveau:timer_spell_turret' @@ -1998,7 +1998,7 @@ onEvent('recipes', (event) => { '#forge:storage_blocks/mana', '#forge:inlays/arcane_gold' ], - sourceCost: 500, + sourceCost: 5000, reagent: Item.of('mekanismtools:osmium_shield', '{Damage:0}').weakNBT(), output: Item.of('ars_nouveau:enchanters_shield', '{Damage:0}').weakNBT(), id: 'ars_nouveau:enchanters_shield' @@ -2014,7 +2014,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:purple_archwood_log', '#forge:gems/mana' ], - sourceCost: 1000, + sourceCost: 5000, reagent: '#forge:plates/silver', output: 'ars_nouveau:enchanters_mirror', id: 'ars_nouveau:enchanters_mirror' @@ -2026,6 +2026,7 @@ onEvent('recipes', (event) => { 'resourcefulbees:carbee_honeycomb_block', 'resourcefulbees:carbee_honeycomb_block' ], + sourceCost: 75, reagent: 'kubejs:scented_stick', output: Item.of('48x ars_nouveau:split_arrow'), id: `${id_prefix}split_arrow` @@ -2037,6 +2038,7 @@ onEvent('recipes', (event) => { 'resourcefulbees:carbee_honeycomb_block', 'resourcefulbees:carbee_honeycomb_block' ], + sourceCost: 75, reagent: 'kubejs:scented_stick', output: Item.of('48x ars_nouveau:amplify_arrow'), id: `${id_prefix}amplify_arrow` @@ -2048,6 +2050,7 @@ onEvent('recipes', (event) => { 'resourcefulbees:carbee_honeycomb_block', 'resourcefulbees:carbee_honeycomb_block' ], + sourceCost: 75, reagent: 'kubejs:scented_stick', output: Item.of('48x ars_nouveau:pierce_arrow'), id: `${id_prefix}pierce_arrow` @@ -2079,7 +2082,7 @@ onEvent('recipes', (event) => { '#forge:coins/electrum', '#forge:nuggets/arcane_gold' ], - sourceCost: 50, + sourceCost: 100, reagent: 'ars_nouveau:wixie_shards', output: 'ars_nouveau:wixie_charm', id: 'ars_nouveau:wixie_charm' @@ -2095,7 +2098,7 @@ onEvent('recipes', (event) => { '#forge:ingots/tinkers_bronze', 'ars_nouveau:mana_fiber' ], - sourceCost: 50, + sourceCost: 200, reagent: Item.of('naturesaura:aura_bottle', '{stored_type:"naturesaura:end"}'), output: 'ars_nouveau:potion_flask', id: 'ars_nouveau:potion_flask' @@ -2112,7 +2115,7 @@ onEvent('recipes', (event) => { '#forge:gems/mana', 'ars_nouveau:glyph_extend_time' ], - sourceCost: 50, + sourceCost: 500, reagent: 'ars_nouveau:potion_flask', output: 'ars_nouveau:potion_flask_extend_time', id: 'ars_nouveau:potion_flask_extend_time' @@ -2128,7 +2131,7 @@ onEvent('recipes', (event) => { '#forge:gems/mana', 'ars_nouveau:glyph_amplify' ], - sourceCost: 50, + sourceCost: 500, reagent: 'ars_nouveau:potion_flask', output: 'ars_nouveau:potion_flask_amplify', id: 'ars_nouveau:potion_flask_amplify' @@ -2157,7 +2160,7 @@ onEvent('recipes', (event) => { '#forge:dusts/redstone', '#forge:dusts/redstone' ], - sourceCost: 50, + sourceCost: 500, reagent: 'eidolon:soul_shard', output: Item.of('2x eidolon:arcane_gold_ingot'), id: `${id_prefix}arcane_gold_ingot` @@ -2185,7 +2188,7 @@ onEvent('recipes', (event) => { 'eidolon:ender_calx', 'bloodmagic:blankslate' ], - sourceCost: 50, + sourceCost: 1000, reagent: 'botania:livingwood', output: Item.of('2x bloodmagic:blankrune'), id: `${id_prefix}blood_rune_blank` @@ -2201,7 +2204,7 @@ onEvent('recipes', (event) => { Item.of('naturesaura:aura_bottle', '{stored_type:"naturesaura:overworld"}'), 'ars_nouveau:greater_experience_gem' ], - sourceCost: 500, + sourceCost: 10000, reagent: 'atum:isis_godshard', output: 'thermal:xp_crystal', id: 'thermal:tools/xp_crystal' @@ -2243,7 +2246,7 @@ onEvent('recipes', (event) => { 'botania:corporea_spark', '#forge:nuggets/arcane_gold' ], - sourceCost: 200, + sourceCost: 2000, reagent: '#sophisticatedbackpacks:upgrades/crafting', output: 'sophisticatedbackpacks:compacting_upgrade', id: 'sophisticatedbackpacks:compacting_upgrade' @@ -2259,7 +2262,7 @@ onEvent('recipes', (event) => { 'botania:red_string', 'botania:corporea_block' ], - sourceCost: 500, + sourceCost: 10000, reagent: 'botania:corporea_index', output: 'interactive_corporea:requesting_halo', id: 'interactive_corporea:requesting_halo' @@ -2275,7 +2278,7 @@ onEvent('recipes', (event) => { 'botania:corporea_funnel', 'botania:corporea_block' ], - sourceCost: 500, + sourceCost: 10000, reagent: 'botania:light_relay', output: 'interactive_corporea:item_quantization_device', id: 'interactive_corporea:item_quantization_device' @@ -2291,7 +2294,7 @@ onEvent('recipes', (event) => { '#forge:dusts/lumium', 'botania:red_string' ], - sourceCost: 10, + sourceCost: 500, reagent: '#forge:gems/mana', output: Item.of('4x botania:light_relay'), id: 'botania:light_relay' @@ -2371,7 +2374,7 @@ onEvent('recipes', (event) => { Item.of('naturesaura:aura_bottle', '{stored_type:"naturesaura:end"}'), 'occultism:otherstone_tablet' ], - sourceCost: 50, + sourceCost: 500, reagent: 'ars_nouveau:archwood_chest', output: 'naturesaura:ender_crate', id: `${id_prefix}ender_crate` @@ -2387,7 +2390,7 @@ onEvent('recipes', (event) => { Item.of('naturesaura:aura_bottle', '{stored_type:"naturesaura:end"}'), 'occultism:otherstone_tablet' ], - sourceCost: 50, + sourceCost: 500, reagent: 'thermal:satchel', output: 'naturesaura:ender_access', id: `${id_prefix}ender_access` @@ -2467,7 +2470,7 @@ onEvent('recipes', (event) => { 'eidolon:soul_shard', 'eidolon:wicked_weave' ], - sourceCost: 100, + sourceCost: 3000, reagent: 'atum:wanderer_boots', output: 'eidolon:warlock_boots', id: `${id_prefix}warlock_boots` @@ -2483,7 +2486,7 @@ onEvent('recipes', (event) => { 'eidolon:soul_shard', 'eidolon:wicked_weave' ], - sourceCost: 100, + sourceCost: 3000, reagent: 'atum:wanderer_chest', output: 'eidolon:warlock_cloak', id: `${id_prefix}warlock_cloak` @@ -2499,7 +2502,7 @@ onEvent('recipes', (event) => { 'eidolon:soul_shard', 'eidolon:wicked_weave' ], - sourceCost: 100, + sourceCost: 3000, reagent: 'atum:wanderer_helmet', output: 'eidolon:warlock_hat', id: `${id_prefix}warlock_hat` @@ -2515,7 +2518,7 @@ onEvent('recipes', (event) => { 'naturesaura:break_prevention', 'bloodmagic:etherealslate' ], - sourceCost: 5000, + sourceCost: 10000, reagent: Item.of('immersiveengineering:graphite_electrode', '{graphDmg:0}'), output: Item.of('immersiveengineering:graphite_electrode', '{graphDmg:0,Unbreakable:1}'), id: `${id_prefix}unbreakable_graphite_electrode` @@ -2532,7 +2535,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: '#forge:gems/mana_diamond', - sourceCost: 300, + sourceCost: 5000, output: 'integrateddynamics:logic_director', id: `${id_prefix}logic_director` } diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/astralsorcery/altar/altar_2_celestial.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/astralsorcery/altar/altar_2_celestial.js index 04a55cf527..7003deb8e1 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/astralsorcery/altar/altar_2_celestial.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/astralsorcery/altar/altar_2_celestial.js @@ -110,7 +110,7 @@ onEvent('recipes', (event) => { hasToBeAttuned: true, hasToBeCelestial: false, canBeAttuned: true, - canBeCelestialCrystal: true + canBeCelestialCrystal: false }, B: { item: 'botania:life_essence' }, C: { tag: 'botania:runes/mana' }, diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/bloodmagic/altar.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/bloodmagic/altar.js index c95feb4f34..523b41558a 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/bloodmagic/altar.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/bloodmagic/altar.js @@ -46,46 +46,10 @@ onEvent('recipes', (event) => { output: 'bloodmagic:blankslate', syphon: 1000, altarLevel: 0, - consumptionRate: 50, + consumptionRate: 5, drainRate: 5, id: 'bloodmagic:altar/slate' }, - { - input: 'bloodmagic:blankslate', - output: 'bloodmagic:reinforcedslate', - syphon: 2000, - altarLevel: 1, - consumptionRate: 100, - drainRate: 5, - id: 'bloodmagic:altar/reinforcedslate' - }, - { - input: 'bloodmagic:reinforcedslate', - output: 'bloodmagic:infusedslate', - syphon: 5000, - altarLevel: 2, - consumptionRate: 250, - drainRate: 10, - id: 'bloodmagic:altar/imbuedslate' - }, - { - input: 'bloodmagic:infusedslate', - output: 'bloodmagic:demonslate', - syphon: 15000, - altarLevel: 3, - consumptionRate: 750, - drainRate: 20, - id: 'bloodmagic:altar/demonicslate' - }, - { - input: 'bloodmagic:demonslate', - output: 'bloodmagic:etherealslate', - syphon: 200000, - altarLevel: 4, - consumptionRate: 1000, - drainRate: 1000, - id: `${id_prefix}etherealslate` - }, { input: 'occultism:chalk_white_impure', output: 'occultism:chalk_white', @@ -134,9 +98,9 @@ onEvent('recipes', (event) => { { input: 'kubejs:firmament', output: 'architects_palette:moonstone', - syphon: 5000, + syphon: 7000, altarLevel: 0, - consumptionRate: 250, + consumptionRate: 5, drainRate: 1, id: `${id_prefix}moonstone` }, @@ -238,6 +202,15 @@ onEvent('recipes', (event) => { consumptionRate: 5, drainRate: 5, id: `${id_prefix}blood_pendant` + }, + { + input: 'bloodmagic:demonslate', + output: 'bloodmagic:etherealslate', + syphon: 200000, + altarLevel: 4, + consumptionRate: 1000, + drainRate: 1000, + id: `${id_prefix}etherealslate` } ]; diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/create/mechanical_crafting.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/create/mechanical_crafting.js index a5c17a5fc7..f8d35e9633 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/create/mechanical_crafting.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/create/mechanical_crafting.js @@ -702,7 +702,7 @@ onEvent('recipes', (event) => { }, { output: 'masterfulmachinery:auto_iridescent_altar_controller', - pattern: ['ABCBA', 'BDEDB', 'CJFKC', 'BGHGB', 'ABIBA'], + pattern: ['ABCBA', 'BDEDB', 'CDFDC', 'BGHGB', 'ABIBA'], key: { A: 'thermal:enderium_glass', B: '#forge:plates/steel', @@ -712,9 +712,7 @@ onEvent('recipes', (event) => { F: '#industrialforegoing:machine_frame/supreme', G: 'xnet:netcable_red', H: '#forge:circuits/ultimate', - I: 'xnet:advanced_connector_red', - J: 'kubejs:bright_constellation_box', - K: 'kubejs:dim_constellation_box' + I: 'xnet:advanced_connector_red' }, id: `${id_prefix}auto_iridescent_altar_controller` }, diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/create/sequenced_assembly.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/create/sequenced_assembly.js index 67c22dab7f..65f89841e7 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/create/sequenced_assembly.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/create/sequenced_assembly.js @@ -463,103 +463,6 @@ onEvent('recipes', (event) => { } ], id: `${id_prefix}computer_package` - }, - { - input: 'mekanism:cardboard_box', - outputs: ['kubejs:big_box_o_boom'], - transitionalItem: 'kubejs:partial_big_box_o_boom', - loops: 64, - sequence: [ - { - type: 'deploying', - input: ['kubejs:partial_big_box_o_boom', 'minecraft:firework_rocket'], - output: 'kubejs:partial_big_box_o_boom' - }, - { - type: 'deploying', - input: ['kubejs:partial_big_box_o_boom', 'minecraft:firework_rocket'], - output: 'kubejs:partial_big_box_o_boom' - }, - { - type: 'deploying', - input: ['kubejs:partial_big_box_o_boom', 'minecraft:firework_rocket'], - output: 'kubejs:partial_big_box_o_boom' - }, - { - type: 'deploying', - input: ['kubejs:partial_big_box_o_boom', 'minecraft:firework_rocket'], - output: 'kubejs:partial_big_box_o_boom' - } - ], - id: `${id_prefix}big_box_o_boom` - }, - { - input: 'mekanism:cardboard_box', - outputs: ['kubejs:mimirs_memory_box'], - transitionalItem: 'kubejs:partial_mimirs_memory_box', - loops: 64, - sequence: [ - { - type: 'deploying', - input: ['kubejs:partial_mimirs_memory_box', 'minecraft:experience_bottle'], - output: 'kubejs:partial_mimirs_memory_box' - }, - { - type: 'deploying', - input: ['kubejs:partial_mimirs_memory_box', 'minecraft:experience_bottle'], - output: 'kubejs:partial_mimirs_memory_box' - }, - { - type: 'deploying', - input: ['kubejs:partial_mimirs_memory_box', 'minecraft:experience_bottle'], - output: 'kubejs:partial_mimirs_memory_box' - }, - { - type: 'deploying', - input: ['kubejs:partial_mimirs_memory_box', 'minecraft:experience_bottle'], - output: 'kubejs:partial_mimirs_memory_box' - } - ], - id: `${id_prefix}mimirs_memory_box` - }, - { - input: 'mekanism:cardboard_box', - outputs: ['kubejs:box_of_thankful_dinners'], - transitionalItem: 'kubejs:partial_box_of_thankful_dinners', - loops: 60, - sequence: [ - { - type: 'deploying', - input: ['kubejs:partial_box_of_thankful_dinners', 'farmersdelight:roast_chicken'], - output: 'kubejs:partial_box_of_thankful_dinners' - }, - { - type: 'deploying', - input: ['kubejs:partial_box_of_thankful_dinners', 'farmersdelight:stuffed_pumpkin'], - output: 'kubejs:partial_box_of_thankful_dinners' - }, - { - type: 'deploying', - input: ['kubejs:partial_box_of_thankful_dinners', 'simpledelights:summer_salad'], - output: 'kubejs:partial_box_of_thankful_dinners' - }, - { - type: 'deploying', - input: ['kubejs:partial_box_of_thankful_dinners', 'simpledelights:sweet_potato_casserole'], - output: 'kubejs:partial_box_of_thankful_dinners' - }, - { - type: 'deploying', - input: ['kubejs:partial_box_of_thankful_dinners', 'minecraft:pumpkin_pie'], - output: 'kubejs:partial_box_of_thankful_dinners' - }, - { - type: 'deploying', - input: ['kubejs:partial_box_of_thankful_dinners', 'farmersdelight:apple_cider'], - output: 'kubejs:partial_box_of_thankful_dinners' - } - ], - id: `${id_prefix}box_of_thankful_dinners` } ]; diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/kubejs/shapeless.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/kubejs/shapeless.js index 5d2230c604..e97ad940b4 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/kubejs/shapeless.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/kubejs/shapeless.js @@ -53,82 +53,6 @@ onEvent('recipes', (event) => { output: 'rftoolscontrol:cpu_core_2000', inputs: ['kubejs:cpu_core_as_81221'], id: `${id_prefix}cpu_tier_three_reversion` - }, - { - output: 'kubejs:imaharas_indelible_electrodes', - inputs: [ - Item.of('immersiveengineering:graphite_electrode', '{graphDmg:0,Unbreakable:1}'), - Item.of('immersiveengineering:graphite_electrode', '{graphDmg:0,Unbreakable:1}'), - Item.of('immersiveengineering:graphite_electrode', '{graphDmg:0,Unbreakable:1}'), - 'mekanism:cardboard_box' - ], - id: `${id_prefix}imaharas_indelible_electrodes` - }, - { - output: 'kubejs:bright_constellation_box', - inputs: [ - 'mekanism:cardboard_box', - Item.of( - 'astralsorcery:attuned_celestial_crystal', - '{astralsorcery:{constellationName:"astralsorcery:aevitas"}}' - ).weakNBT(), - Item.of( - 'astralsorcery:attuned_celestial_crystal', - '{astralsorcery:{constellationName:"astralsorcery:armara"}}' - ).weakNBT(), - Item.of( - 'astralsorcery:attuned_celestial_crystal', - '{astralsorcery:{constellationName:"astralsorcery:discidia"}}' - ).weakNBT(), - Item.of( - 'astralsorcery:attuned_celestial_crystal', - '{astralsorcery:{constellationName:"astralsorcery:evorsio"}}' - ).weakNBT(), - Item.of( - 'astralsorcery:attuned_celestial_crystal', - '{astralsorcery:{constellationName:"astralsorcery:vicio"}}' - ).weakNBT() - ], - id: `${id_prefix}bright_constellation_box` - }, - { - output: 'kubejs:dim_constellation_box', - inputs: [ - 'mekanism:cardboard_box', - Item.of( - 'astralsorcery:attuned_celestial_crystal', - '{astralsorcery:{constellationName:"naturesstarlight:naritis"}}' - ).weakNBT(), - Item.of( - 'astralsorcery:attuned_celestial_crystal', - '{astralsorcery:{constellationName:"astralsorcery:octans"}}' - ).weakNBT(), - Item.of( - 'astralsorcery:attuned_celestial_crystal', - '{astralsorcery:{constellationName:"astralsorcery:horologium"}}' - ).weakNBT(), - Item.of( - 'astralsorcery:attuned_celestial_crystal', - '{astralsorcery:{constellationName:"astralsorcery:lucerna"}}' - ).weakNBT(), - Item.of( - 'astralsorcery:attuned_celestial_crystal', - '{astralsorcery:{constellationName:"astralsorcery:mineralis"}}' - ).weakNBT(), - Item.of( - 'astralsorcery:attuned_celestial_crystal', - '{astralsorcery:{constellationName:"astralsorcery:bootes"}}' - ).weakNBT(), - Item.of( - 'astralsorcery:attuned_celestial_crystal', - '{astralsorcery:{constellationName:"astralsorcery:fornax"}}' - ).weakNBT(), - Item.of( - 'astralsorcery:attuned_celestial_crystal', - '{astralsorcery:{constellationName:"astralsorcery:pelotrio"}}' - ).weakNBT() - ], - id: `${id_prefix}dim_constellation_box` } ]; diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/masterful_machinery/auto_iridescent_altar.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/masterful_machinery/auto_iridescent_altar.js index e93bb4e7e0..78df0bc2db 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/masterful_machinery/auto_iridescent_altar.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/masterful_machinery/auto_iridescent_altar.js @@ -556,411 +556,6 @@ onEvent('recipes', (event) => { ], ticks: 400, id: `${id_prefix}chalice` - }, - { - outputs: [ - { - type: 'masterfulmachinery:items', - chance: 1.0, - data: { item: 'astralsorcery:shifting_star_vicio', count: 1 } - } - ], - inputs: [ - { - type: 'masterfulmachinery:items', - data: { item: 'astralsorcery:shifting_star', count: 1 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:ingots/starmetal', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:dusts/starmetal', count: 6 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'astralsorcery:illumination_powder', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'bloodmagic:defaultcrystal', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'bloodmagic:reagentair', count: 2 } - }, - - { type: 'masterfulmachinery:energy', perTick: true, data: { amount: 500000 } }, - { type: 'masterfulmachinery:astral_starlight', perTick: true, data: { amount: 50 } } - ], - ticks: 400, - id: `${id_prefix}shifting_star_vicio` - }, - { - outputs: [ - { - type: 'masterfulmachinery:items', - chance: 1.0, - data: { item: 'astralsorcery:shifting_star_evorsio', count: 1 } - } - ], - inputs: [ - { - type: 'masterfulmachinery:items', - data: { item: 'astralsorcery:shifting_star', count: 1 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:ingots/starmetal', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:dusts/starmetal', count: 6 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'astralsorcery:illumination_powder', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'bloodmagic:destructivecrystal', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'bloodmagic:reagentfastminer', count: 2 } - }, - - { type: 'masterfulmachinery:energy', perTick: true, data: { amount: 500000 } }, - { type: 'masterfulmachinery:astral_starlight', perTick: true, data: { amount: 50 } } - ], - ticks: 400, - id: `${id_prefix}shifting_star_evorsio` - }, - { - outputs: [ - { - type: 'masterfulmachinery:items', - chance: 1.0, - data: { item: 'astralsorcery:shifting_star_discidia', count: 1 } - } - ], - inputs: [ - { - type: 'masterfulmachinery:items', - data: { item: 'astralsorcery:shifting_star', count: 1 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:ingots/starmetal', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:dusts/starmetal', count: 6 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'astralsorcery:illumination_powder', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'bloodmagic:vengefulcrystal', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'bloodmagic:reagentlava', count: 2 } - }, - - { type: 'masterfulmachinery:energy', perTick: true, data: { amount: 500000 } }, - { type: 'masterfulmachinery:astral_starlight', perTick: true, data: { amount: 50 } } - ], - ticks: 400, - id: `${id_prefix}shifting_star_discidia` - }, - { - outputs: [ - { - type: 'masterfulmachinery:items', - chance: 1.0, - data: { item: 'astralsorcery:shifting_star_armara', count: 1 } - } - ], - inputs: [ - { - type: 'masterfulmachinery:items', - data: { item: 'astralsorcery:shifting_star', count: 1 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:ingots/starmetal', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:dusts/starmetal', count: 6 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'astralsorcery:illumination_powder', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'bloodmagic:steadfastcrystal', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'bloodmagic:reagentbinding', count: 2 } - }, - - { type: 'masterfulmachinery:energy', perTick: true, data: { amount: 500000 } }, - { type: 'masterfulmachinery:astral_starlight', perTick: true, data: { amount: 50 } } - ], - ticks: 400, - id: `${id_prefix}shifting_star_armara` - }, - { - outputs: [ - { - type: 'masterfulmachinery:items', - chance: 1.0, - data: { item: 'astralsorcery:shifting_star_aevitas', count: 1 } - } - ], - inputs: [ - { - type: 'masterfulmachinery:items', - data: { item: 'astralsorcery:shifting_star', count: 1 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:ingots/starmetal', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:dusts/starmetal', count: 6 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'astralsorcery:illumination_powder', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'bloodmagic:corrosivecrystal', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'bloodmagic:reagentgrowth', count: 2 } - }, - - { type: 'masterfulmachinery:energy', perTick: true, data: { amount: 500000 } }, - { type: 'masterfulmachinery:astral_starlight', perTick: true, data: { amount: 50 } } - ], - ticks: 400, - id: `${id_prefix}shifting_star_aevitas` - }, - { - outputs: [ - { - type: 'masterfulmachinery:items', - chance: 1.0, - data: { item: 'astralsorcery:mantle', count: 1 } - } - ], - inputs: [ - { - type: 'masterfulmachinery:items', - data: { item: 'botania:balance_cloak', count: 1 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'astralsorcery:celestial_crystal', count: 1 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'magicfeather:magicfeather', count: 1 } - }, - - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:dusts/starmetal', count: 4 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'astralsorcery:illumination_powder', count: 4 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'astralsorcery:resonating_gem', count: 4 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'botania:runes/mana', count: 1 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'botania:runes/pride', count: 1 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'botania:runes/envy', count: 1 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:storage_blocks/starmetal', count: 1 } - }, - - { type: 'masterfulmachinery:energy', perTick: true, data: { amount: 500000 } }, - { type: 'masterfulmachinery:astral_starlight', perTick: true, data: { amount: 50 } } - ], - ticks: 400, - id: `${id_prefix}mantle` - }, - { - outputs: [ - { - type: 'masterfulmachinery:items', - chance: 1.0, - data: { item: 'pedestals:coin/xpenchanter', count: 1 } - } - ], - inputs: [ - { - type: 'masterfulmachinery:items', - data: { item: 'pedestals:coin/default', count: 1 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'botania:gaia_pylon', count: 1 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'ars_nouveau:glyph_pickup', count: 1 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'botania:runes/mana', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'botania:runes/vanaheim', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'ars_nouveau:greater_experience_gem', count: 12 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:inlays/arcane_gold', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'eidolon:shadow_gem', count: 1 } - }, - - { type: 'masterfulmachinery:energy', perTick: true, data: { amount: 500000 } }, - { type: 'masterfulmachinery:astral_starlight', perTick: true, data: { amount: 50 } } - ], - ticks: 400, - id: `${id_prefix}coin_xpenchanter` - }, - { - outputs: [ - { - type: 'masterfulmachinery:items', - chance: 1.0, - data: { item: 'pedestals:coin/xpanvil', count: 1 } - } - ], - inputs: [ - { - type: 'masterfulmachinery:items', - data: { item: 'pedestals:coin/default', count: 1 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'mythicbotany:alfsteel_pylon', count: 1 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'ars_nouveau:glyph_pickup', count: 1 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'botania:runes/mana', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'botania:runes/vanaheim', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'ars_nouveau:greater_experience_gem', count: 12 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:ingots/netherite', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'betterendforge:aeternium_hammer', count: 1 } - }, - - { type: 'masterfulmachinery:energy', perTick: true, data: { amount: 500000 } }, - { type: 'masterfulmachinery:astral_starlight', perTick: true, data: { amount: 50 } } - ], - ticks: 400, - id: `${id_prefix}coin_xpanvil` - }, - { - outputs: [ - { - type: 'masterfulmachinery:items', - chance: 1.0, - data: { item: 'mekanism:solar_neutron_activator', count: 2 } - } - ], - inputs: [ - { - type: 'masterfulmachinery:items', - data: { item: 'kubejs:observatory_lens', count: 5 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'powah:solar_panel_niotic', count: 5 } - }, - { - type: 'masterfulmachinery:items', - data: { item: 'mekanism:hdpe_sheet', count: 5 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'industrialforegoing:machine_frame/advanced', count: 1 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:circuits/elite', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:plates/enderium', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:dusts/iesnium', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:dusts/starmetal', count: 2 } - }, - { - type: 'masterfulmachinery:items', - data: { tag: 'forge:dusts/end_stone', count: 2 } - }, - - { type: 'masterfulmachinery:energy', perTick: true, data: { amount: 500000 } }, - { type: 'masterfulmachinery:astral_starlight', perTick: true, data: { amount: 50 } } - ], - ticks: 400, - id: `${id_prefix}solar_neutron_activator` } ]; diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/masterful_machinery/enigmatic_tree_of_life.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/masterful_machinery/enigmatic_tree_of_life.js index feb30e0b13..4b99c0130d 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/masterful_machinery/enigmatic_tree_of_life.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/masterful_machinery/enigmatic_tree_of_life.js @@ -6,17 +6,16 @@ onEvent('recipes', (event) => { const id_prefix = 'enigmatica:expert/masterful_machinery/enigmatic_tree_of_life/'; const recipes = [ { - outputs: [{ type: 'masterfulmachinery:items', data: { item: 'kubejs:botanical_mastery_shard', count: 2 } }], + outputs: [{ type: 'masterfulmachinery:items', data: { item: 'kubejs:botanical_mastery_shard', count: 1 } }], inputs: [ { type: 'masterfulmachinery:items', data: { item: 'mythicbotany:mana_collector', count: 4 } }, - { type: 'masterfulmachinery:items', data: { item: 'botania:spark', count: 16 } }, - { type: 'masterfulmachinery:items', data: { item: 'botania:spark_upgrade_recessive', count: 8 } }, - { type: 'masterfulmachinery:items', data: { item: 'botania:mana_ring_greater', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'botania:spark', count: 12 } }, + { type: 'masterfulmachinery:items', data: { item: 'botania:mana_ring_greater', count: 2 } }, { type: 'masterfulmachinery:items', data: { item: 'botania:fabulous_pool', count: 8 } }, - { type: 'masterfulmachinery:items', data: { item: 'botania:kekimurus', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'botania:shulk_me_not', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'botania:rosa_arcana', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'botania:dandelifeon', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'botania:kekimurus', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'botania:shulk_me_not', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'botania:rosa_arcana', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'botania:dandelifeon', count: 4 } }, { type: 'masterfulmachinery:botania_mana', consumeInstantly: true, data: { amount: 500 * 60 } } ], ticks: 60, @@ -26,13 +25,15 @@ onEvent('recipes', (event) => { outputs: [{ type: 'masterfulmachinery:items', data: { item: 'kubejs:astronomy_mastery_shard', count: 1 } }], inputs: [ { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:observatory', count: 1 } }, - { type: 'masterfulmachinery:items', data: { tag: 'astralsorcery:crystals/attuned', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:mantle', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:marble_raw', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'thermal:device_rock_gen', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'create:mechanical_saw', count: 1 } }, - { type: 'masterfulmachinery:items', data: { tag: 'astralsorcery:stars/irradiant', count: 1 } }, - + { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:altar_radiance', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:marble_chiseled', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:marble_raw', count: 12 } }, + { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:marble_pillar', count: 8 } }, + { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:marble_bricks', count: 64 } }, + { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:marble_runed', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:black_marble_arch', count: 49 } }, + { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:marble_bricks', count: 4 } }, + { type: 'masterfulmachinery:items', data: { tag: 'astralsorcery:crystals/attuned', count: 10 } }, { type: 'masterfulmachinery:fluids', perTick: true, @@ -93,17 +94,15 @@ onEvent('recipes', (event) => { outputs: [{ type: 'masterfulmachinery:items', data: { item: 'kubejs:aura_mastery_shard', count: 1 } }], inputs: [ { type: 'masterfulmachinery:items', data: { item: 'naturesaura:aura_trove', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'naturesaura:firework_generator', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'kubejs:big_box_o_boom', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'naturesaura:generator_limit_remover', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'naturesaura:projectile_generator', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'kubejs:mimirs_memory_box', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'kubejs:altar_of_birthing_kit', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'naturesaura:aura_detector', count: 8 } }, + { type: 'masterfulmachinery:items', data: { item: 'naturesaura:firework_generator', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'minecraft:firework_rocket', count: 64 } }, + { type: 'masterfulmachinery:items', data: { item: 'naturesaura:ancient_sapling', count: 8 } }, { type: 'masterfulmachinery:items', data: { item: 'naturesaura:mover_cart', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'minecraft:powered_rail', count: 64 } }, - { type: 'masterfulmachinery:items', data: { item: 'minecraft:rail', count: 32 } }, + { type: 'masterfulmachinery:items', data: { item: 'minecraft:powered_rail', count: 32 } }, + { type: 'masterfulmachinery:items', data: { item: 'minecraft:rail', count: 64 } }, { type: 'masterfulmachinery:items', data: { item: 'minecraft:activator_rail', count: 8 } }, + { type: 'masterfulmachinery:items', data: { item: 'naturesaura:aura_detector', count: 8 } }, { type: 'masterfulmachinery:botania_mana', consumeInstantly: true, data: { amount: 500 * 60 } } ], ticks: 60, @@ -111,9 +110,15 @@ onEvent('recipes', (event) => { }, { outputs: [ - { type: 'masterfulmachinery:items', data: { item: 'kubejs:engineering_mastery_shard', count: 2 } } + { type: 'masterfulmachinery:items', data: { item: 'kubejs:engineering_mastery_shard', count: 1 } } ], inputs: [ + { type: 'masterfulmachinery:items', data: { item: 'create:flywheel', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'create:furnace_engine', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'minecraft:blast_furnace', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'pneumaticcraft:heat_pipe', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'pneumaticcraft:vortex_tube', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'pneumaticcraft:heat_sink', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'pneumaticcraft:advanced_pressure_tube', count: 64 } @@ -128,11 +133,9 @@ onEvent('recipes', (event) => { { type: 'masterfulmachinery:items', data: { item: 'create:encased_chain_drive', count: 32 } }, { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_arc_furnace', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'kubejs:imaharas_indelible_electrodes', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_pumpjack', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_distillation_tower', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_pressure_chamber', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_furnace_engine_kit', count: 1 } }, { type: 'masterfulmachinery:fluids', perTick: true, @@ -204,19 +207,17 @@ onEvent('recipes', (event) => { { type: 'masterfulmachinery:items', data: { item: 'kubejs:dimensional_mastery_shard', count: 1 } } ], inputs: [ - { type: 'masterfulmachinery:items', data: { item: 'extrastorage:block_4096k', count: 2 } }, + { type: 'masterfulmachinery:items', data: { item: 'extrastorage:disk_4096k', count: 4 } }, { type: 'masterfulmachinery:items', - data: { item: 'extrastorage:block_262144k_fluid', count: 2 } + data: { item: 'extrastorage:disk_262144k_fluid', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:disk_drive', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'mekanism:quantum_entangloporter', count: 4 } }, { type: 'masterfulmachinery:items', data: { item: 'rsinfinitybooster:dimension_card', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:network_receiver', count: 4 } }, { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:network_transmitter', count: 4 } }, { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:network_card', count: 4 } }, - { type: 'masterfulmachinery:items', data: { item: 'mekanism:teleporter', count: 5 } }, - { type: 'masterfulmachinery:items', data: { item: 'mekanism:portable_teleporter', count: 1 } }, - { type: 'masterfulmachinery:botania_mana', consumeInstantly: true, data: { amount: 500 * 60 } } ], ticks: 60, @@ -230,7 +231,8 @@ onEvent('recipes', (event) => { { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_mekasuit_pants', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_mekasuit_boots', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_meka_tool', count: 1 } }, - + { type: 'masterfulmachinery:items', data: { item: 'mekanism:teleporter', count: 5 } }, + { type: 'masterfulmachinery:items', data: { item: 'mekanism:portable_teleporter', count: 1 } }, { type: 'masterfulmachinery:botania_mana', consumeInstantly: true, data: { amount: 500 * 60 } } ], ticks: 60, @@ -250,7 +252,7 @@ onEvent('recipes', (event) => { { type: 'masterfulmachinery:items', data: { item: 'immersiveengineering:survey_tools', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'kubejs:mining_gadget_kit', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'kubejs:flux_bore_kit', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_pedestal_quarry', count: 2 } }, + { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_pedestal_quarry', count: 4 } }, { type: 'masterfulmachinery:botania_mana', consumeInstantly: true, data: { amount: 500 * 60 } } ], ticks: 60, @@ -260,7 +262,6 @@ onEvent('recipes', (event) => { outputs: [{ type: 'masterfulmachinery:items', data: { item: 'kubejs:culinary_mastery_shard', count: 1 } }], inputs: [ { type: 'masterfulmachinery:items', data: { item: 'kubejs:engineering_student_meals', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'kubejs:box_of_thankful_dinners', count: 1 } }, { type: 'masterfulmachinery:botania_mana', consumeInstantly: true, data: { amount: 500 * 60 } } ], ticks: 60, @@ -272,22 +273,25 @@ onEvent('recipes', (event) => { ], inputs: [ { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:controller', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'extrastorage:netherite_crafter', count: 4 } }, - { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:interface', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'extrastorage:iron_crafter', count: 4 } }, { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:pattern_grid', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:pattern', count: 64 } }, - { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:cable', count: 64 } }, - { type: 'masterfulmachinery:items', data: { item: 'create:deployer', count: 8 } }, - { type: 'masterfulmachinery:items', data: { item: 'create:mechanical_arm', count: 8 } }, + { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:pattern', count: 32 } }, + { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:cable', count: 16 } }, + { type: 'masterfulmachinery:items', data: { item: 'pneumaticcraft:drone', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'pneumaticcraft:charging_station', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'pneumaticcraft:programming_puzzle', count: 64 } }, + { type: 'masterfulmachinery:items', data: { item: 'pneumaticcraft:programmer', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'create:deployer', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'create:mechanical_arm', count: 4 } }, { type: 'masterfulmachinery:items', data: { item: 'create:content_observer', count: 8 } }, { type: 'masterfulmachinery:items', data: { item: 'create:stockpile_switch', count: 8 } }, + { type: 'masterfulmachinery:items', data: { item: 'modularrouters:item_router', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'modularrouters:distributor_module', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'modularrouters:vacuum_module', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'modularrouters:player_module', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'botania:auto_crafting_halo', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'naturesaura:field_creator', count: 2 } }, { type: 'masterfulmachinery:items', data: { item: 'naturesaura:placer', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'entangled:block', count: 4 } }, - { type: 'masterfulmachinery:items', data: { item: 'pneumaticcraft:universal_sensor', count: 4 } }, - { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_drone_kit', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'kubejs:assorted_router_kit', count: 1 } }, { type: 'masterfulmachinery:botania_mana', consumeInstantly: true, data: { amount: 500 * 60 } } ], ticks: 60, diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/mekanism/sawing.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/mekanism/sawing.js index 7c50619bfc..daaec4ccf8 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/mekanism/sawing.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/mekanism/sawing.js @@ -6,8 +6,8 @@ onEvent('recipes', (event) => { const recipes = [ { input: 'occultism:dimensional_matrix', - output: Item.of('kubejs:dimensional_storage_crystal', 21), - extraOutput: Item.of('3x kubejs:dimensional_storage_crystal').chance(0.5), + output: Item.of('kubejs:dimensional_storage_crystal', 9), + extraOutput: Item.of('kubejs:dimensional_storage_crystal').chance(0.5), id: `${id_prefix}dimensional_storage_crystal` }, { diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/naturesaura/altar.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/naturesaura/altar.js index 2cd0444603..f2f6070b5a 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/naturesaura/altar.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/naturesaura/altar.js @@ -50,8 +50,8 @@ onEvent('recipes', (event) => { input: 'kubejs:firmament', output: { item: 'architects_palette:sunstone' }, aura_type: 'naturesaura:overworld', - aura: 5000, - time: 20, + aura: 12000, + time: 40, id: `${id_prefix}sunstone` }, { diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/naturesaura/tree_ritual.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/naturesaura/tree_ritual.js index 0c6a7bedbe..51b88e1b3a 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/naturesaura/tree_ritual.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/naturesaura/tree_ritual.js @@ -51,7 +51,7 @@ onEvent('recipes', (event) => { ], output: '2x naturesaura:token_fear', time: 2 * time_multiplier, - sapling: 'quark:lavender_blossom_sapling', + sapling: 'architects_palette:twisted_sapling', id: 'naturesaura:tree_ritual/token_fear' }, { @@ -83,7 +83,7 @@ onEvent('recipes', (event) => { ], output: '2x naturesaura:token_sorrow', time: 2 * time_multiplier, - sapling: 'quark:lavender_blossom_sapling', + sapling: 'architects_palette:twisted_sapling', id: 'naturesaura:tree_ritual/token_sorrow' }, { @@ -179,7 +179,7 @@ onEvent('recipes', (event) => { ], output: 'naturesaura:chorus_generator', time: 6 * time_multiplier, - sapling: 'quark:blue_blossom_sapling', + sapling: 'architects_palette:twisted_sapling', id: 'naturesaura:chorus_generator' }, { @@ -211,7 +211,7 @@ onEvent('recipes', (event) => { ], output: 'naturesaura:moss_generator', time: 6 * time_multiplier, - sapling: 'quark:lavender_blossom_sapling', + sapling: 'architects_palette:twisted_sapling', id: 'naturesaura:moss_generator' }, { @@ -275,7 +275,7 @@ onEvent('recipes', (event) => { ], output: 'naturesaura:eye', time: 2 * time_multiplier, - sapling: 'quark:pink_blossom_sapling', + sapling: 'architects_palette:twisted_sapling', id: 'naturesaura:tree_ritual/eye' }, { @@ -291,7 +291,7 @@ onEvent('recipes', (event) => { ], output: 'naturesaura:eye_improved', time: 5 * time_multiplier, - sapling: 'quark:pink_blossom_sapling', + sapling: 'architects_palette:twisted_sapling', id: 'naturesaura:tree_ritual/eye_improved' }, { @@ -305,7 +305,7 @@ onEvent('recipes', (event) => { ], output: 'naturesaura:conversion_catalyst', time: 6 * time_multiplier, - sapling: 'quark:orange_blossom_sapling', + sapling: 'architects_palette:twisted_sapling', id: 'naturesaura:tree_ritual/conversion_catalyst' }, { @@ -318,7 +318,7 @@ onEvent('recipes', (event) => { ], output: 'naturesaura:crushing_catalyst', time: 6 * time_multiplier, - sapling: 'quark:red_blossom_sapling', + sapling: 'architects_palette:twisted_sapling', id: 'naturesaura:tree_ritual/crushing_catalyst' }, { @@ -462,10 +462,11 @@ onEvent('recipes', (event) => { 'kubejs:firmament', 'naturesaura:token_anger' ], - sapling: 'quark:red_blossom_sapling', + sapling: 'architects_palette:twisted_sapling', output: 'naturesaura:shockwave_creator', time: 4 * time_multiplier, id: `${id_prefix}shockwave_creator` + }, { ingredients: [ diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/pneumaticcraft/pressure_chamber.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/pneumaticcraft/pressure_chamber.js index 50a6e66ee5..fe004d79e6 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/pneumaticcraft/pressure_chamber.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/pneumaticcraft/pressure_chamber.js @@ -329,12 +329,12 @@ onEvent('recipes', (event) => { }, { inputs: [ - { item: 'pedestals:pedestal/stone333', count: 1 }, - { item: 'pedestals:coin/quarry', count: 1 }, - { item: 'pedestals:bookspeed', count: 1 }, - { item: 'pedestals:bookrange', count: 1 }, - { item: 'pedestals:bookarea', count: 1 }, - { item: 'pedestals:bookcapacity', count: 1 }, + { item: 'pedestals:pedestal/stone333', count: 4 }, + { item: 'pedestals:coin/quarry', count: 4 }, + { item: 'pedestals:bookspeed', count: 8 }, + { item: 'pedestals:bookrange', count: 8 }, + { item: 'pedestals:bookarea', count: 8 }, + { item: 'pedestals:bookcapacity', count: 8 }, { item: 'mekanism:cardboard_box', count: 1 } ], pressure: 4.5, @@ -535,59 +535,6 @@ onEvent('recipes', (event) => { pressure: 4.5, results: [{ item: 'kubejs:diy_pressure_chamber', count: 1 }], id: `${id_prefix}diy_pressure_chamber` - }, - { - inputs: [ - { item: 'pneumaticcraft:drone', count: 1 }, - { item: 'pneumaticcraft:charging_station', count: 1 }, - { item: 'pneumaticcraft:programmer', count: 1 }, - { item: 'pneumaticcraft:programming_puzzle', count: 64 }, - { item: 'pneumaticcraft:programming_puzzle', count: 64 }, - { item: 'mekanism:cardboard_box', count: 1 } - ], - pressure: 4.5, - results: [{ item: 'kubejs:diy_drone_kit', count: 1 }], - id: `${id_prefix}diy_drone_kit` - }, - { - inputs: [ - { item: 'modularrouters:item_router', count: 16 }, - { item: 'modularrouters:distributor_module', count: 4 }, - { item: 'modularrouters:sender_module_2', count: 4 }, - { item: 'modularrouters:puller_module_2', count: 4 }, - { item: 'modularrouters:vacuum_module', count: 1 }, - { item: 'modularrouters:player_module', count: 1 }, - { item: 'mekanism:cardboard_box', count: 1 } - ], - pressure: 4.5, - results: [{ item: 'kubejs:assorted_router_kit', count: 1 }], - id: `${id_prefix}assorted_router_kit` - }, - { - inputs: [ - { item: 'naturesaura:animal_spawner', count: 1 }, - { item: 'naturesaura:ancient_planks', count: 4 }, - { item: 'naturesaura:infused_brick', count: 16 }, - { item: 'minecraft:hay_block', count: 16 }, - { item: 'naturesaura:birth_spirit', count: 64 }, - { item: 'mekanism:cardboard_box', count: 1 } - ], - pressure: 4.5, - results: [{ item: 'kubejs:altar_of_birthing_kit', count: 1 }], - id: `${id_prefix}altar_of_birthing_kit` - }, - { - inputs: [ - { item: 'mekanism:resistive_heater', count: 1 }, - { item: 'pneumaticcraft:heat_pipe', count: 1 }, - { item: 'minecraft:blast_furnace', count: 1 }, - { item: 'create:flywheel', count: 1 }, - { item: 'create:furnace_engine', count: 1 }, - { item: 'mekanism:cardboard_box', count: 1 } - ], - pressure: 4.5, - results: [{ item: 'kubejs:diy_furnace_engine_kit', count: 1 }], - id: `${id_prefix}diy_furnace_engine_kit` } ]; diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/thermal/machine/sawmill.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/thermal/machine/sawmill.js index 7cc0413aff..23be8e9e97 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/thermal/machine/sawmill.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/thermal/machine/sawmill.js @@ -7,8 +7,8 @@ onEvent('recipes', (event) => { { input: 'occultism:dimensional_matrix', outputs: [ - Item.of('12x kubejs:dimensional_storage_crystal'), - Item.of('3x kubejs:dimensional_storage_crystal').chance(0.25) + Item.of('kubejs:dimensional_storage_crystal', 6), + Item.of('kubejs:dimensional_storage_crystal').chance(0.25) ], id: `${id_prefix}dimensional_storage_crystal` }, diff --git a/kubejs/startup_scripts/item_registry.js b/kubejs/startup_scripts/item_registry.js index 4e0c454dce..454e5c57c5 100644 --- a/kubejs/startup_scripts/item_registry.js +++ b/kubejs/startup_scripts/item_registry.js @@ -179,14 +179,6 @@ onEvent('item.registry', (event) => { { name: 'artisinal_ritual_kit', texture: 'advanced_packing_crate_purple' }, { name: 'artisinal_chalk_set', texture: 'advanced_packing_crate_green' }, { name: 'diy_pressure_chamber', texture: 'packing_crate_lime' }, - { name: 'diy_drone_kit', texture: 'packing_crate_red' }, - { name: 'assorted_router_kit', texture: 'advanced_packing_crate_purple' }, - { name: 'altar_of_birthing_kit', texture: 'packing_crate_blue' }, - { name: 'diy_furnace_engine_kit', texture: 'packing_crate_blue' }, - { name: 'imaharas_indelible_electrodes', texture: 'advanced_packing_crate_green' }, - - { name: 'bright_constellation_box', texture: 'advanced_packing_crate_purple' }, - { name: 'dim_constellation_box', texture: 'advanced_packing_crate_green' }, { name: 'engineers_school_project', texture: 'packing_crate_gray' }, { name: 'partial_engineers_school_project', texture: 'packing_crate_gray' }, @@ -200,12 +192,6 @@ onEvent('item.registry', (event) => { { name: 'partial_engineering_student_meals', texture: 'packing_crate_blue' }, { name: 'building_materials', texture: 'packing_crate_orange' }, { name: 'partial_building_materials', texture: 'packing_crate_orange' }, - { name: 'big_box_o_boom', texture: 'packing_crate_gray' }, - { name: 'partial_big_box_o_boom', texture: 'packing_crate_gray' }, - { name: 'mimirs_memory_box', texture: 'packing_crate_lime' }, - { name: 'partial_mimirs_memory_box', texture: 'packing_crate_lime' }, - { name: 'box_of_thankful_dinners', texture: 'advanced_packing_crate_purple' }, - { name: 'partial_box_of_thankful_dinners', texture: 'advanced_packing_crate_purple' }, { name: 'engineers_school_upgrades', texture: 'advanced_packing_crate_gray' }, { name: 'partial_engineers_school_upgrades', texture: 'advanced_packing_crate_gray' }, @@ -365,99 +351,99 @@ onEvent('item.registry', (event) => { const bees = [ //keep changes mostly synced to "server_scripts/constants/resourcefulbees.js", combVariants constant // alloy - { name: 'brass', band: 0x998d38, outline: 0x998d38 }, - { name: 'bronze', band: 0xd38c53, outline: 0xd38c53 }, - { name: 'constantan', band: 0xd8876b, outline: 0xd8876b }, - { name: 'electrum', band: 0xe5b840, outline: 0xe5b840 }, - { name: 'enderium', band: 0x0a4a4a, outline: 0x0a4a4a }, - { name: 'invar', band: 0xdfe5e2, outline: 0xdfe5e2 }, - { name: 'lumium', band: 0xe5f3b5, outline: 0xe5f3b5 }, - { name: 'signalum', band: 0xfd641a, outline: 0xfd641a }, - { name: 'steel', band: 0x858585, outline: 0x858585 }, + {name: 'brass', band: 0x998d38, outline: 0x998d38}, + {name: 'bronze', band: 0xd38c53, outline: 0xd38c53}, + {name: 'constantan', band: 0xd8876b, outline: 0xd8876b}, + {name: 'electrum', band: 0xe5b840, outline: 0xe5b840}, + {name: 'enderium', band: 0x0a4a4a, outline: 0x0a4a4a}, + {name: 'invar', band: 0xdfe5e2, outline: 0xdfe5e2}, + {name: 'lumium', band: 0xe5f3b5, outline: 0xe5f3b5}, + {name: 'signalum', band: 0xfd641a, outline: 0xfd641a}, + {name: 'steel', band: 0x858585, outline: 0x858585}, // dev - { name: 'kitten', band: 0xeaa939, outline: 0x4c483b }, - { name: 'oreo', band: 0x442920, outline: 0xe1d9b8 }, - { name: 'starry_lexxie', band: 0xffffff, outline: 0xffa500 }, - { name: 'yeti', band: 0xe9f4f6, outline: 0x777e86 }, + {name: 'kitten', band: 0xeaa939, outline: 0x4c483b}, + {name: 'oreo', band: 0x442920, outline: 0xe1d9b8}, + {name: 'starry_lexxie', band: 0xffffff, outline: 0xffa500}, + {name: 'yeti', band: 0xe9f4f6, outline: 0x777e86}, // gem - { name: 'diamond', band: 0x00ffff, outline: 0x00ffff }, - { name: 'emerald', band: 0x18eb09, outline: 0x18eb09 }, - { name: 'lapis', band: 0x345ec3, outline: 0x345ec3 }, - { name: 'redstone', band: 0xaa0f01, outline: 0xaa0f01 }, + {name: 'diamond', band: 0x00ffff, outline: 0x00ffff}, + {name: 'emerald', band: 0x18eb09, outline: 0x18eb09}, + {name: 'lapis', band: 0x345ec3, outline: 0x345ec3}, + {name: 'redstone', band: 0xaa0f01, outline: 0xaa0f01}, // magic - { name: 'bloody', band: 0x80251f, outline: 0x80251f }, - { name: 'carbee', band: 0xe39c27, outline: 0xe39c27 }, - { name: 'elven', band: 0xff66cc, outline: 0xff66cc }, - { name: 'infused', band: 0x1bb373, outline: 0x1bb373 }, - { name: 'mana', band: 0x4c97ff, outline: 0x4c97ff }, - { name: 'otherworldly', band: 0x1d1d24, outline: 0x1d1d24 }, - { name: 'sky', band: 0x73d0ff, outline: 0x73d0ff }, - { name: 'starry', band: 0x002184, outline: 0x002184 }, - { name: 'tainted', band: 0xcc6d3d, outline: 0xcc6d3d }, - { name: 'terrestrial', band: 0x5bf23d, outline: 0x5bf23d }, + {name: 'bloody', band: 0x80251f, outline: 0x80251f}, + {name: 'carbee', band: 0xe39c27, outline: 0xe39c27}, + {name: 'elven', band: 0xff66cc, outline: 0xff66cc}, + {name: 'infused', band: 0x1bb373, outline: 0x1bb373}, + {name: 'mana', band: 0x4c97ff, outline: 0x4c97ff}, + {name: 'otherworldly', band: 0x1d1d24, outline: 0x1d1d24}, + {name: 'sky', band: 0x73d0ff, outline: 0x73d0ff}, + {name: 'starry', band: 0x002184, outline: 0x002184}, + {name: 'tainted', band: 0xcc6d3d, outline: 0xcc6d3d}, + {name: 'terrestrial', band: 0x5bf23d, outline: 0x5bf23d}, // material - { name: 'clay', band: 0xacaebd, outline: 0xacaebd }, - { name: 'enderslime', band: 0xa777e1, outline: 0xa777e1 }, - { name: 'gravel', band: 0x968e8e, outline: 0x968e8e }, - { name: 'ichor', band: 0xf7731f, outline: 0xf7731f }, - { name: 'shepherd', band: 0x945c45, outline: 0x945c45 }, - { name: 'skyslime', band: 0x4ab1a4, outline: 0x4ab1a4 }, + {name: 'clay', band: 0xacaebd, outline: 0xacaebd}, + {name: 'enderslime', band: 0xa777e1, outline: 0xa777e1}, + {name: 'gravel', band: 0x968e8e, outline: 0x968e8e}, + {name: 'ichor', band: 0xf7731f, outline: 0xf7731f}, + {name: 'shepherd', band: 0x945c45, outline: 0x945c45}, + {name: 'skyslime', band: 0x4ab1a4, outline: 0x4ab1a4}, // metal - { name: 'aluminum', band: 0xdce6f7, outline: 0xdce6f7 }, - { name: 'cobalt', band: 0x20adc9, outline: 0x20adc9 }, - { name: 'copper', band: 0xbb5b30, outline: 0xbb5b30 }, - { name: 'frosty', band: 0xb9d3ec, outline: 0xb9d3ec }, - { name: 'gold', band: 0xffdc00, outline: 0xffdc00 }, - { name: 'iron', band: 0xffcc99, outline: 0xffcc99 }, - { name: 'lead', band: 0x333952, outline: 0x333952 }, - { name: 'nickel', band: 0x8c8f86, outline: 0x8c8f86 }, - { name: 'osmium', band: 0xc1e0e7, outline: 0xc1e0e7 }, - { name: 'regal', band: 0xebbe76, outline: 0xebbe76 }, - { name: 'silver', band: 0xc5d1fe, outline: 0xc5d1fe }, - { name: 'tin', band: 0x7d81a4, outline: 0x7d81a4 }, - { name: 'uranium', band: 0x333c2f, outline: 0x333c2f }, - { name: 'zinc', band: 0x818653, outline: 0x818653 }, + {name: 'aluminum', band: 0xdce6f7, outline: 0xdce6f7}, + {name: 'cobalt', band: 0x20adc9, outline: 0x20adc9}, + {name: 'copper', band: 0xbb5b30, outline: 0xbb5b30}, + {name: 'frosty', band: 0xb9d3ec, outline: 0xb9d3ec}, + {name: 'gold', band: 0xffdc00, outline: 0xffdc00}, + {name: 'iron', band: 0xffcc99, outline: 0xffcc99}, + {name: 'lead', band: 0x333952, outline: 0x333952}, + {name: 'nickel', band: 0x8c8f86, outline: 0x8c8f86}, + {name: 'osmium', band: 0xc1e0e7, outline: 0xc1e0e7}, + {name: 'regal', band: 0xebbe76, outline: 0xebbe76}, + {name: 'silver', band: 0xc5d1fe, outline: 0xc5d1fe}, + {name: 'tin', band: 0x7d81a4, outline: 0x7d81a4}, + {name: 'uranium', band: 0x333c2f, outline: 0x333c2f}, + {name: 'zinc', band: 0x818653, outline: 0x818653}, // natural - { name: 'brutish_zombee', band: 0x2f4e32, outline: 0x2f4e32 }, - { name: 'clogged', band: 0xba9d7b, outline: 0xba9d7b }, - { name: 'coal', band: 0x303030, outline: 0x303030 }, - { name: 'creeper', band: 0x0c9f0a, outline: 0x0c9f0a }, - { name: 'ender', band: 0x339786, outline: 0x339786 }, - { name: 'forest', band: 0x4c4c26, outline: 0x4c4c26 }, - { name: 'glowstone', band: 0xffbc5e, outline: 0xffbc5e }, - { name: 'icy', band: 0x92b9fe, outline: 0x92b9fe }, - { name: 'obsidian', band: 0x663399, outline: 0x663399 }, - { name: 'pigman', band: 0x885956, outline: 0x885956 }, - { name: 'rgbee', band: 0xffffff, outline: 0xffffff }, - { name: 'rocky', band: 0x8f8f8f, outline: 0x8f8f8f }, - { name: 'sand', band: 0xe7e4bb, outline: 0xe7e4bb }, - { name: 'skeleton', band: 0xf6f2e6, outline: 0xf6f2e6 }, - { name: 'slimy', band: 0x73c262, outline: 0x73c262 }, - { name: 'water', band: 0x5979ef, outline: 0x5979ef }, - { name: 'zombie', band: 0x2f4e32, outline: 0x2f4e32 }, + {name: 'brutish_zombee', band: 0x2f4e32, outline: 0x2f4e32}, + {name: 'clogged', band: 0xba9d7b, outline: 0xba9d7b}, + {name: 'coal', band: 0x303030, outline: 0x303030}, + {name: 'creeper', band: 0x0c9f0a, outline: 0x0c9f0a}, + {name: 'ender', band: 0x339786, outline: 0x339786}, + {name: 'forest', band: 0x4c4c26, outline: 0x4c4c26}, + {name: 'glowstone', band: 0xffbc5e, outline: 0xffbc5e}, + {name: 'icy', band: 0x92b9fe, outline: 0x92b9fe}, + {name: 'obsidian', band: 0x663399, outline: 0x663399}, + {name: 'pigman', band: 0x885956, outline: 0x885956}, + {name: 'rgbee', band: 0xffffff, outline: 0xffffff}, + {name: 'rocky', band: 0x8f8f8f, outline: 0x8f8f8f}, + {name: 'sand', band: 0xe7e4bb, outline: 0xe7e4bb}, + {name: 'skeleton', band: 0xf6f2e6, outline: 0xf6f2e6}, + {name: 'slimy', band: 0x73c262, outline: 0x73c262}, + {name: 'water', band: 0x5979ef, outline: 0x5979ef}, + {name: 'zombie', band: 0x2f4e32, outline: 0x2f4e32}, // nether - { name: 'blaze', band: 0xfff32d, outline: 0xfff32d }, - { name: 'ghast', band: 0xfaebd7, outline: 0xfaebd7 }, - { name: 'netherite', band: 0x654740, outline: 0x654740 }, - { name: 'wither', band: 0x444444, outline: 0x444444 }, - { name: 'nether_quartz', band: 0xd4caba, outline: 0xd4caba }, + {name: 'blaze', band: 0xfff32d, outline: 0xfff32d}, + {name: 'ghast', band: 0xfaebd7, outline: 0xfaebd7}, + {name: 'netherite', band: 0x654740, outline: 0x654740}, + {name: 'wither', band: 0x444444, outline: 0x444444}, + {name: 'nether_quartz', band: 0xd4caba, outline: 0xd4caba}, // special - { name: 'boobee', band: 0xe9f3ea, outline: 0xe9f3ea }, - { name: 'clockwork', band: 0x70522e, outline: 0x70522e }, - { name: 'direbee20', band: 0x859292, outline: 0x859292 }, - { name: 'dusty_mummbee', band: 0xe7e4bb, outline: 0xe7e4bb }, - { name: 'generikbee', band: 0xf25843, outline: 0xf25843 }, - { name: 'soup', band: 0x8b7173, outline: 0x8b7173 }, - { name: 'spelling', band: 0x905e43, outline: 0x905e43 }, - { name: 'wasabee', band: 0x59a523, outline: 0x59a523 }, + {name: 'boobee', band: 0xe9f3ea, outline: 0xe9f3ea}, + {name: 'clockwork', band: 0x70522e, outline: 0x70522e}, + {name: 'direbee20', band: 0x859292, outline: 0x859292}, + {name: 'dusty_mummbee', band: 0xe7e4bb, outline: 0xe7e4bb}, + {name: 'generikbee', band: 0xf25843, outline: 0xf25843}, + {name: 'soup', band: 0x8b7173, outline: 0x8b7173}, + {name: 'spelling', band: 0x905e43, outline: 0x905e43}, + {name: 'wasabee', band: 0x59a523, outline: 0x59a523}, // tech - { name: 'basalz', band: 0x1b141d, outline: 0x1b141d }, - { name: 'blitz', band: 0xdef7fa, outline: 0xdef7fa }, - { name: 'blizz', band: 0x37b7fe, outline: 0x37b7fe }, - { name: 'industrious', band: 0xce7dce, outline: 0xce7dce }, - { name: 'pcbee', band: 0x7a7f80, outline: 0x7a7f80 }, + {name: 'basalz', band: 0x1b141d, outline: 0x1b141d}, + {name: 'blitz', band: 0xdef7fa, outline: 0xdef7fa}, + {name: 'blizz', band: 0x37b7fe, outline: 0x37b7fe}, + {name: 'industrious', band: 0xce7dce, outline: 0xce7dce}, + {name: 'pcbee', band: 0x7a7f80, outline: 0x7a7f80}, // manual - { name: 'abbee', band: 0xe5ded5, outline: 0xffb1c5 } + {name: 'abbee', band: 0xe5ded5, outline: 0xffb1c5}, ]; let metalTypes = ['suffused', 'fulminated', 'levigated', 'sliver']; @@ -481,13 +467,7 @@ onEvent('item.registry', (event) => { }); bees.forEach((bee) => { - event - .create(`${bee.name}_larva`) - .group(`KubeJS`) - .texture('kubejs:item/bee_larva') - .parentModel('kubejs:item/bee_larva') - .color(1, bee.band) - .color(2, bee.outline); + event.create(`${bee.name}_larva`).group(`KubeJS`).texture('kubejs:item/bee_larva').parentModel('kubejs:item/bee_larva').color(1, bee.band).color(2, bee.outline); }); // Custom Occultism Miners From 4ee5dc80147a16e1a1af161fbc734ed44bb6ea2f Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Wed, 6 Jul 2022 17:15:45 +0200 Subject: [PATCH 26/53] Revert "Revert "Merge branch 'develop' of https://github.com/Kanzaji/Enigmatica6 into pr/5041"" This reverts commit 320c22a77c30ad291454a96fa2dbf56609a0652b. --- config/ftbquests/quests/chapters/tech_t3.snbt | 2 + kubejs/assets/kubejs/lang/en_us.json | 13 + .../item_modifiers/jei_descriptions.js | 43 ++ .../base/recipetypes/tconstruct/melting.js | 14 + .../ars_nouveau/enchanting_apparatus.js | 229 +++++----- .../astralsorcery/altar/altar_2_celestial.js | 2 +- .../expert/recipetypes/bloodmagic/altar.js | 51 ++- .../recipetypes/create/mechanical_crafting.js | 6 +- .../recipetypes/create/sequenced_assembly.js | 97 +++++ .../expert/recipetypes/kubejs/shapeless.js | 76 ++++ .../auto_iridescent_altar.js | 405 ++++++++++++++++++ .../enigmatic_tree_of_life.js | 92 ++-- .../expert/recipetypes/mekanism/sawing.js | 4 +- .../expert/recipetypes/naturesaura/altar.js | 4 +- .../recipetypes/naturesaura/tree_ritual.js | 19 +- .../pneumaticcraft/pressure_chamber.js | 65 ++- .../recipetypes/thermal/machine/sawmill.js | 4 +- kubejs/startup_scripts/item_registry.js | 188 ++++---- 18 files changed, 1029 insertions(+), 285 deletions(-) diff --git a/config/ftbquests/quests/chapters/tech_t3.snbt b/config/ftbquests/quests/chapters/tech_t3.snbt index a577d174c5..a2eb25e97f 100644 --- a/config/ftbquests/quests/chapters/tech_t3.snbt +++ b/config/ftbquests/quests/chapters/tech_t3.snbt @@ -372,6 +372,8 @@ description: [ "A fusion of technology and magic, the Stellar Neutron Activator is capable of producing enormous quantities of Tritium continuously, though the process requires enormous quantities of mana and energy to extract it from water." "" + "This machine operates for 4000 ticks every time it consumes mana." + "" "=================================================================" "" "Note that the recipes shown in JEI don't accurately display whether any given input is per tick or all at once. For simplicity, all recipes for all Masterful Machines have been standardized under the following rule set:" diff --git a/kubejs/assets/kubejs/lang/en_us.json b/kubejs/assets/kubejs/lang/en_us.json index a029432edf..50fd6a1e77 100644 --- a/kubejs/assets/kubejs/lang/en_us.json +++ b/kubejs/assets/kubejs/lang/en_us.json @@ -84,6 +84,13 @@ "item.kubejs.artisinal_ritual_kit": "Artisinal Occult Ritual Kit", "item.kubejs.artisinal_chalk_set": "Artisinal Chalk Set", "item.kubejs.diy_pressure_chamber": "DIY Pressure Chamber Kit", + "item.kubejs.diy_drone_kit": "DIY Drone Kit", + "item.kubejs.assorted_router_kit": "Assorted Router Kit", + "item.kubejs.altar_of_birthing_kit": "All Natural Altar of Birthing Kit", + "item.kubejs.diy_furnace_engine_kit": "DIY Furnace Engine Kit", + "item.kubejs.imaharas_indelible_electrodes": "Imahara's Indelible Electrodes", + "item.kubejs.bright_constellation_box": "Bright Constellation Box", + "item.kubejs.dim_constellation_box": "Dim Constellation Box", "item.kubejs.engineers_school_project": "Engineer's School Project", "item.kubejs.partial_engineers_school_project": "Partial Engineer's School Project", @@ -103,6 +110,12 @@ "item.kubejs.partial_engineers_school_upgrades": "Partial Engineering School Upgrades", "item.kubejs.building_materials": "Building Materials", "item.kubejs.partial_building_materials": "Partial Building Materials", + "item.kubejs.big_box_o_boom": "Big Box O'Boom™", + "item.kubejs.partial_big_box_o_boom": "Partial Big Box O'Boom™", + "item.kubejs.mimirs_memory_box": "Mimir's Memory Box™", + "item.kubejs.partial_mimirs_memory_box": "Partial Mimir's Memory Box™", + "item.kubejs.box_of_thankful_dinners": "Box of Thankful Dinners", + "item.kubejs.partial_box_of_thankful_dinners": "Partial Box of Thankful Dinners", "block.kubejs.firmament": "Firmament", "item.kubejs.partial_alloybrick": "Partial Kiln Brick", diff --git a/kubejs/client_scripts/item_modifiers/jei_descriptions.js b/kubejs/client_scripts/item_modifiers/jei_descriptions.js index 0564197666..db757a8bde 100644 --- a/kubejs/client_scripts/item_modifiers/jei_descriptions.js +++ b/kubejs/client_scripts/item_modifiers/jei_descriptions.js @@ -551,9 +551,51 @@ onEvent('jei.information', (event) => { `● Enderslime`, `● Skyslime` ] + }, + { + items: ['farmersdelight:honey_glazed_ham'], + text: [`Obtained by right-clicking a placed Honey Glazed Ham with a Bowl.`] + }, + { + items: ['farmersdelight:stuffed_pumpkin'], + text: [`Obtained by right-clicking a placed Stuffed Pumpkin with a Bowl.`] + }, + { + items: ['farmersdelight:roast_chicken'], + text: [`Obtained by right-clicking a placed Roast Chicken with a Bowl.`] + }, + { + items: ['simplefarming:brewing_barrel'], + text: [`Used for brewing various alcoholic beverages.`, ` `, `● Beer`, `● Cauim`, `● Cider`, `● Mead`] + }, + { + items: ['simplefarming:brewing_barrel'], + text: [`● Sake`, `● Tiswin`, `● Vodka`, `● Whiskey`, `● Wine`] } ]; + const simplefarming_beverages = [ + { type: 'beer', ingredient: 'Barley', effect: 'Strength' }, + { type: 'cauim', ingredient: 'Cassava', effect: 'Jump Boost' }, + { type: 'cider', ingredient: 'Apples', effect: 'Luck' }, + { type: 'mead', ingredient: 'Honeycomb', effect: 'Haste' }, + { type: 'sake', ingredient: 'Rice', effect: 'Speed' }, + { type: 'tiswin', ingredient: 'Cactus Fruit', effect: 'a Health Boost' }, + { type: 'vodka', ingredient: 'Potatoes', effect: 'Resistance' }, + { type: 'whiskey', ingredient: 'Wheat', effect: 'Absorption' }, + { type: 'wine', ingredient: 'Grapes', effect: 'Regeneration' } + ]; + + simplefarming_beverages.forEach((beverage) => { + recipes.push({ + items: [`simplefarming:${beverage.type}`], + text: [ + `Brewed by right-clicking ${beverage.ingredient} into a Brewing Barrel.`, + `Grants the imbiber ${beverage.effect}.` + ] + }); + }); + recipes.forEach((recipe) => { recipe.items.forEach((item) => { event.add(item, recipe.text); @@ -597,6 +639,7 @@ onEvent('jei.information', (event) => { 'half_two', 'half_four' ]; + framedDrawers.forEach((drawer) => { event.add('framedcompactdrawers:framed_' + drawer, [ 'Must be painted with any block to be used. To paint, put in any crafting grid with one block directly above and to its left diagonally.', diff --git a/kubejs/server_scripts/enigmatica/kubejs/base/recipetypes/tconstruct/melting.js b/kubejs/server_scripts/enigmatica/kubejs/base/recipetypes/tconstruct/melting.js index 7a349ff539..0264c472cf 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/base/recipetypes/tconstruct/melting.js +++ b/kubejs/server_scripts/enigmatica/kubejs/base/recipetypes/tconstruct/melting.js @@ -156,6 +156,20 @@ onEvent('recipes', (event) => { time: 20 * 22, byproducts: [{ fluid: 'materialis:molten_starmetal', amount: 48 }], id: 'materialis:smeltery/melting/metal/starmetal/ore' + }, + { + ingredient: { tag: 'forge:storage_blocks/glowstone' }, + result: { fluid: 'thermal:glowstone', amount: 1000 }, + temperature: 825, + time: 64 * 4, + id: `${id_prefix}energized_glowstone_from_glowstone_block` + }, + { + ingredient: { tag: 'forge:dusts/glowstone' }, + result: { fluid: 'thermal:glowstone', amount: 250 }, + temperature: 825, + time: 64, + id: `${id_prefix}energized_glowstone_from_glowstone_dust` } ]; diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/ars_nouveau/enchanting_apparatus.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/ars_nouveau/enchanting_apparatus.js index 6bb5ec3b4b..50096aa37e 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/ars_nouveau/enchanting_apparatus.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/ars_nouveau/enchanting_apparatus.js @@ -7,7 +7,7 @@ onEvent('recipes', (event) => { { inputs: ['#forge:dusts/silver', '#forge:dusts/silver', '#forge:dusts/silver', '#forge:dusts/silver'], reagent: '#forge:dusts/sulfur', - sourceCost: 1000, + sourceCost: 100, output: Item.of('4x architects_palette:sunmetal_blend'), id: 'architects_palette:sunmetal_blend' }, @@ -51,7 +51,7 @@ onEvent('recipes', (event) => { 'architects_palette:sunmetal_blend' ], reagent: 'betterendforge:silk_fiber', - sourceCost: 1000, + sourceCost: 100, output: Item.of('4x naturesaura:gold_fiber'), id: `${id_prefix}gold_fiber` }, @@ -233,7 +233,7 @@ onEvent('recipes', (event) => { 'astralsorcery:illumination_powder' ], reagent: 'ars_nouveau:potion_jar', - sourceCost: 100, + sourceCost: 10, output: 'ars_nouveau:potion_melder', id: 'ars_nouveau:potion_melder' }, @@ -278,7 +278,7 @@ onEvent('recipes', (event) => { '#forge:ingots/terminite' ], reagent: '#atum:relic_non_dirty/ring', - sourceCost: 6000, + sourceCost: 300, output: 'ars_nouveau:ring_of_lesser_discount', id: 'ars_nouveau:ring_of_lesser_discount' }, @@ -294,7 +294,7 @@ onEvent('recipes', (event) => { '#forge:ingots/thallasium' ], reagent: 'ars_nouveau:ring_of_lesser_discount', - sourceCost: 6000, + sourceCost: 100, output: 'ars_nouveau:ring_of_greater_discount', id: 'ars_nouveau:ring_of_greater_discount' }, @@ -310,7 +310,7 @@ onEvent('recipes', (event) => { '#forge:gems/mana' ], reagent: '#atum:relic_non_dirty/necklace', - sourceCost: 6000, + sourceCost: 500, output: 'ars_nouveau:amulet_of_mana_regen', id: 'ars_nouveau:amulet_of_mana_regen' }, @@ -326,7 +326,7 @@ onEvent('recipes', (event) => { '#forge:gems/mana' ], reagent: '#atum:relic_non_dirty/necklace', - sourceCost: 6000, + sourceCost: 500, output: 'ars_nouveau:amulet_of_mana_boost', id: 'ars_nouveau:amulet_of_mana_boost' }, @@ -342,7 +342,7 @@ onEvent('recipes', (event) => { 'quark:bottled_cloud' ], reagent: 'eidolon:basic_belt', - sourceCost: 6000, + sourceCost: 500, output: 'ars_nouveau:belt_of_levitation', id: 'ars_nouveau:belt_of_levitation' }, @@ -358,7 +358,7 @@ onEvent('recipes', (event) => { '#forge:feathers' ], reagent: 'eidolon:basic_belt', - sourceCost: 6000, + sourceCost: 500, output: 'ars_nouveau:belt_of_unstable_gifts', id: 'ars_nouveau:belt_of_unstable_gifts' }, @@ -374,7 +374,7 @@ onEvent('recipes', (event) => { 'botania:livingrock' ], reagent: '#botania:runes/mana', - sourceCost: 6000, + sourceCost: 300, output: 'botania:mana_tablet', id: 'botania:mana_tablet' }, @@ -422,7 +422,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/attack', id: 'pedestals:upgrades/attack' }, @@ -438,7 +438,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/turret', id: 'pedestals:upgrades/turret' }, @@ -454,7 +454,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/sawmill', id: 'pedestals:upgrades/sawmill' }, @@ -470,7 +470,7 @@ onEvent('recipes', (event) => { 'powah:capacitor_spirited' ], reagent: 'pedestals:coin/sawmill', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/rfsawmill', id: 'pedestals:upgrades/rfsawmill' }, @@ -486,7 +486,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/chopper', id: 'pedestals:upgrades/chopper' }, @@ -502,7 +502,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/breaker', id: 'pedestals:upgrades/breaker' }, @@ -518,7 +518,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/cobble', id: 'pedestals:upgrades/cobblegen' }, @@ -534,7 +534,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/compactor2', id: 'pedestals:upgrades/compactor2' }, @@ -550,7 +550,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/crafter1', id: 'pedestals:upgrades/crafter1' }, @@ -566,7 +566,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/placer', id: 'pedestals:upgrades/placer' }, @@ -582,7 +582,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/smelter', id: 'pedestals:upgrades/smelter' }, @@ -598,7 +598,7 @@ onEvent('recipes', (event) => { 'powah:capacitor_spirited' ], reagent: 'pedestals:coin/smelter', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/rfsmelter', id: 'pedestals:upgrades/rfsmelter' }, @@ -614,7 +614,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/import', id: 'pedestals:upgrades/import' }, @@ -630,7 +630,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, // Not a typo, items are misnamed. output: 'pedestals:coin/enderexport', id: 'pedestals:upgrades/enderimport' @@ -647,7 +647,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/harvester', id: 'pedestals:upgrades/harvester' }, @@ -663,7 +663,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/breaker', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/quarry', id: 'pedestals:upgrades/quarry' }, @@ -679,7 +679,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/grower', id: 'pedestals:upgrades/grower' }, @@ -695,7 +695,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/planter', id: 'pedestals:upgrades/planter' }, @@ -711,7 +711,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/harvesterhives', id: 'pedestals:upgrades/harvesterhives' }, @@ -727,7 +727,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/babymaker', id: 'pedestals:upgrades/babymaker' }, @@ -743,7 +743,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/crusher', id: 'pedestals:upgrades/crusher' }, @@ -759,7 +759,7 @@ onEvent('recipes', (event) => { 'powah:capacitor_spirited' ], reagent: 'pedestals:coin/crusher', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/rfcrusher', id: 'pedestals:upgrades/rfcrusher' }, @@ -775,7 +775,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/dropper', id: 'pedestals:upgrades/dropper' }, @@ -791,7 +791,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/fan', id: 'pedestals:upgrades/fan' }, @@ -807,7 +807,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/effect', id: 'pedestals:upgrades/effect' }, @@ -823,7 +823,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/itemtank', id: 'pedestals:upgrades/itemtank' }, @@ -839,7 +839,7 @@ onEvent('recipes', (event) => { 'astralsorcery:resonating_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/milker', id: 'pedestals:upgrades/milker' }, @@ -855,7 +855,7 @@ onEvent('recipes', (event) => { 'astralsorcery:resonating_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/fluidtank', id: 'pedestals:upgrades/fluidtank' }, @@ -871,7 +871,7 @@ onEvent('recipes', (event) => { 'astralsorcery:resonating_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/fluidrelay', id: 'pedestals:upgrades/fluidrelay' }, @@ -887,7 +887,7 @@ onEvent('recipes', (event) => { 'powah:capacitor_spirited' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/rfrelay', id: 'pedestals:upgrades/rfrelay' }, @@ -903,7 +903,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:greater_experience_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/xprelay', id: 'pedestals:upgrades/xprelay' }, @@ -919,7 +919,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/teleporter', id: 'pedestals:upgrades/teleporter' }, @@ -935,7 +935,7 @@ onEvent('recipes', (event) => { 'quark:basalt' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/void', id: 'pedestals:upgrades/void' }, @@ -951,7 +951,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/magnet', id: 'pedestals:upgrades/magnet' }, @@ -967,7 +967,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/shearer', id: 'pedestals:upgrades/shearer' }, @@ -983,7 +983,7 @@ onEvent('recipes', (event) => { 'powah:capacitor_spirited' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/rfimport', id: 'pedestals:upgrades/rfimport' }, @@ -999,7 +999,7 @@ onEvent('recipes', (event) => { 'powah:capacitor_nitro' ], reagent: 'pedestals:coin/rfexport', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/rffield', id: 'pedestals:upgrades/rffield' }, @@ -1015,7 +1015,7 @@ onEvent('recipes', (event) => { 'powah:capacitor_spirited' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/rftank', id: 'pedestals:upgrades/rftank' }, @@ -1031,7 +1031,7 @@ onEvent('recipes', (event) => { 'astralsorcery:resonating_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/fluidcrafter1', id: 'pedestals:upgrades/fluidcrafter1' }, @@ -1047,7 +1047,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:greater_experience_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/xpgrindstone', id: 'pedestals:upgrades/xpgrindstone' }, @@ -1063,7 +1063,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:greater_experience_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/xpbottler', id: 'pedestals:upgrades/xpbottler' }, @@ -1079,7 +1079,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:greater_experience_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/xpmagnet', id: 'pedestals:upgrades/xpmagnet' }, @@ -1095,7 +1095,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:greater_experience_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/fluidxpconverter', id: 'pedestals:upgrades/fluidxpconverter' }, @@ -1111,7 +1111,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:greater_experience_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/xptank', id: 'pedestals:upgrades/xptank' }, @@ -1127,7 +1127,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:greater_experience_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/xpdropper', id: 'pedestals:upgrades/xpdropper' }, @@ -1143,7 +1143,7 @@ onEvent('recipes', (event) => { 'astralsorcery:resonating_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/fluidimport', id: 'pedestals:upgrades/fluidimport' }, @@ -1159,7 +1159,7 @@ onEvent('recipes', (event) => { 'astralsorcery:resonating_gem' ], reagent: 'pedestals:coin/default', - sourceCost: 2000, + sourceCost: 500, output: 'pedestals:coin/fluidpump', id: 'pedestals:upgrades/fluidpump' }, @@ -1188,7 +1188,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:mana_fiber' ], reagent: Item.of('atum:wanderer_helmet', '{Damage:0}').weakNBT(), - sourceCost: 100, + sourceCost: 50, output: 'ars_nouveau:novice_hood', id: `${id_prefix}novice_hood` }, @@ -1204,7 +1204,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:mana_fiber' ], reagent: Item.of('atum:wanderer_chest', '{Damage:0}').weakNBT(), - sourceCost: 100, + sourceCost: 50, output: 'ars_nouveau:novice_robes', id: `${id_prefix}novice_robes` }, @@ -1220,7 +1220,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:mana_fiber' ], reagent: Item.of('atum:wanderer_legs', '{Damage:0}').weakNBT(), - sourceCost: 100, + sourceCost: 50, output: 'ars_nouveau:novice_leggings', id: `${id_prefix}novice_leggings` }, @@ -1236,7 +1236,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:mana_fiber' ], reagent: Item.of('atum:wanderer_boots', '{Damage:0}').weakNBT(), - sourceCost: 100, + sourceCost: 50, output: 'ars_nouveau:novice_boots', id: `${id_prefix}novice_boots` }, @@ -1253,7 +1253,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:blaze_fiber' ], reagent: Item.of('atum:wanderer_helmet', '{Damage:0}').weakNBT(), - sourceCost: 3000, + sourceCost: 1500, output: 'ars_nouveau:apprentice_hood', id: `${id_prefix}apprentice_hood` }, @@ -1269,7 +1269,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:blaze_fiber' ], reagent: Item.of('atum:wanderer_chest', '{Damage:0}').weakNBT(), - sourceCost: 3000, + sourceCost: 1500, output: 'ars_nouveau:apprentice_robes', id: `${id_prefix}apprentice_robes` }, @@ -1285,7 +1285,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:blaze_fiber' ], reagent: Item.of('atum:wanderer_legs', '{Damage:0}').weakNBT(), - sourceCost: 3000, + sourceCost: 1500, output: 'ars_nouveau:apprentice_leggings', id: `${id_prefix}apprentice_leggings` }, @@ -1301,7 +1301,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:blaze_fiber' ], reagent: Item.of('atum:wanderer_boots', '{Damage:0}').weakNBT(), - sourceCost: 3000, + sourceCost: 1500, output: 'ars_nouveau:apprentice_boots', id: `${id_prefix}apprentice_boots` }, @@ -1318,7 +1318,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:end_fiber' ], reagent: Item.of('botania:manaweave_helmet', '{Damage:0}').weakNBT(), - sourceCost: 10000, + sourceCost: 5000, output: 'ars_nouveau:archmage_hood', id: `${id_prefix}archmage_hood` }, @@ -1334,7 +1334,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:end_fiber' ], reagent: Item.of('botania:manaweave_chestplate', '{Damage:0}').weakNBT(), - sourceCost: 10000, + sourceCost: 5000, output: 'ars_nouveau:archmage_robes', id: `${id_prefix}archmage_robes` }, @@ -1350,7 +1350,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:end_fiber' ], reagent: Item.of('botania:manaweave_leggings', '{Damage:0}').weakNBT(), - sourceCost: 10000, + sourceCost: 5000, output: 'ars_nouveau:archmage_leggings', id: `${id_prefix}archmage_leggings` }, @@ -1366,7 +1366,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:end_fiber' ], reagent: Item.of('botania:manaweave_boots', '{Damage:0}').weakNBT(), - sourceCost: 10000, + sourceCost: 5000, output: 'ars_nouveau:archmage_boots', id: `${id_prefix}archmage_boots` }, @@ -1446,7 +1446,7 @@ onEvent('recipes', (event) => { '#forge:storage_blocks/mana' ], reagent: 'ars_nouveau:drygmy_shard', - sourceCost: 1000, + sourceCost: 100, output: 'ars_nouveau:drygmy_charm', id: `ars_nouveau:drygmy_charm` }, @@ -1462,7 +1462,7 @@ onEvent('recipes', (event) => { '#forge:gems/mana' ], reagent: 'ars_nouveau:sylph_shards', - sourceCost: 1000, + sourceCost: 100, output: 'ars_nouveau:sylph_charm', id: `ars_nouveau:sylph_charm` }, @@ -1474,7 +1474,7 @@ onEvent('recipes', (event) => { 'naturesaura:token_fear' ], reagent: '#atum:relic_non_dirty/ring', - sourceCost: 5000, + sourceCost: 100, output: 'naturesaura:death_ring', id: `${id_prefix}death_ring` }, @@ -1490,7 +1490,7 @@ onEvent('recipes', (event) => { '#forge:nuggets/nebu' ], reagent: 'occultism:otherstone_frame', - sourceCost: 100, + sourceCost: 10, output: 'occultism:wormhole_frame', id: 'occultism:crafting/wormhole_frame' }, @@ -1506,7 +1506,7 @@ onEvent('recipes', (event) => { 'fluxnetworks:flux_dust' ], reagent: '#forge:gems/mana', - sourceCost: 500, + sourceCost: 100, output: Item.of('4x occultism:otherstone_tablet'), id: 'occultism:crafting/otherstone_tablet' }, @@ -1522,7 +1522,7 @@ onEvent('recipes', (event) => { '#forge:plates/electrum' ], reagent: 'betterendforge:eternal_crystal', - sourceCost: 2000, + sourceCost: 500, output: 'botania:mana_pylon', id: `${id_prefix}mana_pylon` }, @@ -1538,7 +1538,7 @@ onEvent('recipes', (event) => { 'botania:glimmering_livingwood' ], reagent: 'botania:mana_pylon', - sourceCost: 4000, + sourceCost: 1000, output: 'botania:natura_pylon', id: `${id_prefix}natura_pylon` }, @@ -1554,7 +1554,7 @@ onEvent('recipes', (event) => { '#forge:ingots/elementium' ], reagent: 'botania:natura_pylon', - sourceCost: 8000, + sourceCost: 2000, output: 'botania:gaia_pylon', id: `${id_prefix}gaia_pylon` }, @@ -1570,7 +1570,7 @@ onEvent('recipes', (event) => { '#chipped:crying_obsidian' ], reagent: 'botania:gaia_pylon', - sourceCost: 10000, + sourceCost: 4000, output: 'mythicbotany:alfsteel_pylon', id: `${id_prefix}alfsteel_pylon` }, @@ -1588,7 +1588,7 @@ onEvent('recipes', (event) => { }, { reagent: '#forge:ingots/terrasteel', - output: 'botania:gaia_ingot', + output: Item.of('2x botania:gaia_ingot'), inputs: [ 'botania:life_essence', 'atum:seth_godshard', @@ -1599,7 +1599,7 @@ onEvent('recipes', (event) => { 'atum:seth_godshard', 'botania:life_essence' ], - sourceCost: 9000, + sourceCost: 100, id: `${id_prefix}gaia_ingot` }, { @@ -1725,7 +1725,7 @@ onEvent('recipes', (event) => { '#forge:shards/aurora', '#forge:shards/ender' ], - sourceCost: 5000, + sourceCost: 500, id: 'betterendforge:eternal_crystal' }, { @@ -1741,7 +1741,7 @@ onEvent('recipes', (event) => { '#forge:shards/aurora', '#forge:dusts/starmetal' ], - sourceCost: 500, + sourceCost: 100, id: 'betterendforge:enchanted_petal' }, @@ -1811,21 +1811,21 @@ onEvent('recipes', (event) => { }, { inputs: ['#forge:storage_blocks/mana', 'ars_nouveau:glyph_split'], - sourceCost: 100, + sourceCost: 10, reagent: 'kubejs:scented_stick', output: Item.of('32x ars_nouveau:split_arrow'), id: 'ars_nouveau:split_arrow' }, { inputs: ['#forge:storage_blocks/mana', 'ars_nouveau:glyph_amplify'], - sourceCost: 100, + sourceCost: 10, reagent: 'kubejs:scented_stick', output: Item.of('32x ars_nouveau:amplify_arrow'), id: 'ars_nouveau:amplify_arrow' }, { inputs: ['#forge:storage_blocks/mana', 'ars_nouveau:glyph_pierce'], - sourceCost: 100, + sourceCost: 10, reagent: 'kubejs:scented_stick', output: Item.of('32x ars_nouveau:pierce_arrow'), id: 'ars_nouveau:pierce_arrow' @@ -1857,7 +1857,7 @@ onEvent('recipes', (event) => { '#forge:nuggets/gold', '#forge:nuggets/gold' ], - sourceCost: 1000, + sourceCost: 50, reagent: 'ars_nouveau:carbuncle_shards', output: 'ars_nouveau:carbuncle_charm', id: 'ars_nouveau:carbuncle_charm' @@ -1886,7 +1886,7 @@ onEvent('recipes', (event) => { '#forge:gems/fluorite', 'botania:quartz_lavender' ], - sourceCost: 1000, + sourceCost: 500, reagent: 'ars_nouveau:arcane_relay', output: 'ars_nouveau:arcane_relay_splitter', id: 'ars_nouveau:arcane_relay_splitter' @@ -1902,7 +1902,7 @@ onEvent('recipes', (event) => { '#forge:gems/apatite', 'botania:quartz_lavender' ], - sourceCost: 1000, + sourceCost: 500, reagent: 'ars_nouveau:arcane_relay', output: 'ars_nouveau:relay_deposit', id: 'ars_nouveau:relay_deposit' @@ -1918,7 +1918,7 @@ onEvent('recipes', (event) => { '#forge:gems/mana', '#forge:gems/prismarine' ], - sourceCost: 1000, + sourceCost: 500, reagent: 'ars_nouveau:mana_jar', output: 'ars_nouveau:arcane_relay', id: 'ars_nouveau:arcane_relay' @@ -1934,7 +1934,7 @@ onEvent('recipes', (event) => { '#forge:gems/ender', 'waystones:warp_dust' ], - sourceCost: 5000, + sourceCost: 500, reagent: 'ars_nouveau:arcane_relay', output: 'ars_nouveau:relay_warp', id: 'ars_nouveau:relay_warp' @@ -1950,7 +1950,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:novice_spell_book', '#forge:ingots/osmium' ], - sourceCost: 5000, + sourceCost: 50, reagent: '#forge:eggs', output: 'ars_nouveau:whelp_charm', id: 'ars_nouveau:whelp_charm' @@ -1966,7 +1966,7 @@ onEvent('recipes', (event) => { 'create:polished_rose_quartz', '#forge:nuggets/arcane_gold' ], - sourceCost: 500, + sourceCost: 100, reagent: 'ars_nouveau:basic_spell_turret', output: 'ars_nouveau:spell_turret', id: 'ars_nouveau:spell_turret' @@ -1982,7 +1982,7 @@ onEvent('recipes', (event) => { 'create:polished_rose_quartz', '#forge:nuggets/tinkers_bronze' ], - sourceCost: 500, + sourceCost: 100, reagent: 'ars_nouveau:basic_spell_turret', output: 'ars_nouveau:timer_spell_turret', id: 'ars_nouveau:timer_spell_turret' @@ -1998,7 +1998,7 @@ onEvent('recipes', (event) => { '#forge:storage_blocks/mana', '#forge:inlays/arcane_gold' ], - sourceCost: 5000, + sourceCost: 500, reagent: Item.of('mekanismtools:osmium_shield', '{Damage:0}').weakNBT(), output: Item.of('ars_nouveau:enchanters_shield', '{Damage:0}').weakNBT(), id: 'ars_nouveau:enchanters_shield' @@ -2014,7 +2014,7 @@ onEvent('recipes', (event) => { 'ars_nouveau:purple_archwood_log', '#forge:gems/mana' ], - sourceCost: 5000, + sourceCost: 1000, reagent: '#forge:plates/silver', output: 'ars_nouveau:enchanters_mirror', id: 'ars_nouveau:enchanters_mirror' @@ -2026,7 +2026,6 @@ onEvent('recipes', (event) => { 'resourcefulbees:carbee_honeycomb_block', 'resourcefulbees:carbee_honeycomb_block' ], - sourceCost: 75, reagent: 'kubejs:scented_stick', output: Item.of('48x ars_nouveau:split_arrow'), id: `${id_prefix}split_arrow` @@ -2038,7 +2037,6 @@ onEvent('recipes', (event) => { 'resourcefulbees:carbee_honeycomb_block', 'resourcefulbees:carbee_honeycomb_block' ], - sourceCost: 75, reagent: 'kubejs:scented_stick', output: Item.of('48x ars_nouveau:amplify_arrow'), id: `${id_prefix}amplify_arrow` @@ -2050,7 +2048,6 @@ onEvent('recipes', (event) => { 'resourcefulbees:carbee_honeycomb_block', 'resourcefulbees:carbee_honeycomb_block' ], - sourceCost: 75, reagent: 'kubejs:scented_stick', output: Item.of('48x ars_nouveau:pierce_arrow'), id: `${id_prefix}pierce_arrow` @@ -2082,7 +2079,7 @@ onEvent('recipes', (event) => { '#forge:coins/electrum', '#forge:nuggets/arcane_gold' ], - sourceCost: 100, + sourceCost: 50, reagent: 'ars_nouveau:wixie_shards', output: 'ars_nouveau:wixie_charm', id: 'ars_nouveau:wixie_charm' @@ -2098,7 +2095,7 @@ onEvent('recipes', (event) => { '#forge:ingots/tinkers_bronze', 'ars_nouveau:mana_fiber' ], - sourceCost: 200, + sourceCost: 50, reagent: Item.of('naturesaura:aura_bottle', '{stored_type:"naturesaura:end"}'), output: 'ars_nouveau:potion_flask', id: 'ars_nouveau:potion_flask' @@ -2115,7 +2112,7 @@ onEvent('recipes', (event) => { '#forge:gems/mana', 'ars_nouveau:glyph_extend_time' ], - sourceCost: 500, + sourceCost: 50, reagent: 'ars_nouveau:potion_flask', output: 'ars_nouveau:potion_flask_extend_time', id: 'ars_nouveau:potion_flask_extend_time' @@ -2131,7 +2128,7 @@ onEvent('recipes', (event) => { '#forge:gems/mana', 'ars_nouveau:glyph_amplify' ], - sourceCost: 500, + sourceCost: 50, reagent: 'ars_nouveau:potion_flask', output: 'ars_nouveau:potion_flask_amplify', id: 'ars_nouveau:potion_flask_amplify' @@ -2160,7 +2157,7 @@ onEvent('recipes', (event) => { '#forge:dusts/redstone', '#forge:dusts/redstone' ], - sourceCost: 500, + sourceCost: 50, reagent: 'eidolon:soul_shard', output: Item.of('2x eidolon:arcane_gold_ingot'), id: `${id_prefix}arcane_gold_ingot` @@ -2188,7 +2185,7 @@ onEvent('recipes', (event) => { 'eidolon:ender_calx', 'bloodmagic:blankslate' ], - sourceCost: 1000, + sourceCost: 50, reagent: 'botania:livingwood', output: Item.of('2x bloodmagic:blankrune'), id: `${id_prefix}blood_rune_blank` @@ -2204,7 +2201,7 @@ onEvent('recipes', (event) => { Item.of('naturesaura:aura_bottle', '{stored_type:"naturesaura:overworld"}'), 'ars_nouveau:greater_experience_gem' ], - sourceCost: 10000, + sourceCost: 500, reagent: 'atum:isis_godshard', output: 'thermal:xp_crystal', id: 'thermal:tools/xp_crystal' @@ -2246,7 +2243,7 @@ onEvent('recipes', (event) => { 'botania:corporea_spark', '#forge:nuggets/arcane_gold' ], - sourceCost: 2000, + sourceCost: 200, reagent: '#sophisticatedbackpacks:upgrades/crafting', output: 'sophisticatedbackpacks:compacting_upgrade', id: 'sophisticatedbackpacks:compacting_upgrade' @@ -2262,7 +2259,7 @@ onEvent('recipes', (event) => { 'botania:red_string', 'botania:corporea_block' ], - sourceCost: 10000, + sourceCost: 500, reagent: 'botania:corporea_index', output: 'interactive_corporea:requesting_halo', id: 'interactive_corporea:requesting_halo' @@ -2278,7 +2275,7 @@ onEvent('recipes', (event) => { 'botania:corporea_funnel', 'botania:corporea_block' ], - sourceCost: 10000, + sourceCost: 500, reagent: 'botania:light_relay', output: 'interactive_corporea:item_quantization_device', id: 'interactive_corporea:item_quantization_device' @@ -2294,7 +2291,7 @@ onEvent('recipes', (event) => { '#forge:dusts/lumium', 'botania:red_string' ], - sourceCost: 500, + sourceCost: 10, reagent: '#forge:gems/mana', output: Item.of('4x botania:light_relay'), id: 'botania:light_relay' @@ -2374,7 +2371,7 @@ onEvent('recipes', (event) => { Item.of('naturesaura:aura_bottle', '{stored_type:"naturesaura:end"}'), 'occultism:otherstone_tablet' ], - sourceCost: 500, + sourceCost: 50, reagent: 'ars_nouveau:archwood_chest', output: 'naturesaura:ender_crate', id: `${id_prefix}ender_crate` @@ -2390,7 +2387,7 @@ onEvent('recipes', (event) => { Item.of('naturesaura:aura_bottle', '{stored_type:"naturesaura:end"}'), 'occultism:otherstone_tablet' ], - sourceCost: 500, + sourceCost: 50, reagent: 'thermal:satchel', output: 'naturesaura:ender_access', id: `${id_prefix}ender_access` @@ -2470,7 +2467,7 @@ onEvent('recipes', (event) => { 'eidolon:soul_shard', 'eidolon:wicked_weave' ], - sourceCost: 3000, + sourceCost: 100, reagent: 'atum:wanderer_boots', output: 'eidolon:warlock_boots', id: `${id_prefix}warlock_boots` @@ -2486,7 +2483,7 @@ onEvent('recipes', (event) => { 'eidolon:soul_shard', 'eidolon:wicked_weave' ], - sourceCost: 3000, + sourceCost: 100, reagent: 'atum:wanderer_chest', output: 'eidolon:warlock_cloak', id: `${id_prefix}warlock_cloak` @@ -2502,7 +2499,7 @@ onEvent('recipes', (event) => { 'eidolon:soul_shard', 'eidolon:wicked_weave' ], - sourceCost: 3000, + sourceCost: 100, reagent: 'atum:wanderer_helmet', output: 'eidolon:warlock_hat', id: `${id_prefix}warlock_hat` @@ -2518,7 +2515,7 @@ onEvent('recipes', (event) => { 'naturesaura:break_prevention', 'bloodmagic:etherealslate' ], - sourceCost: 10000, + sourceCost: 5000, reagent: Item.of('immersiveengineering:graphite_electrode', '{graphDmg:0}'), output: Item.of('immersiveengineering:graphite_electrode', '{graphDmg:0,Unbreakable:1}'), id: `${id_prefix}unbreakable_graphite_electrode` @@ -2535,7 +2532,7 @@ onEvent('recipes', (event) => { 'botania:pixie_dust' ], reagent: '#forge:gems/mana_diamond', - sourceCost: 5000, + sourceCost: 300, output: 'integrateddynamics:logic_director', id: `${id_prefix}logic_director` } diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/astralsorcery/altar/altar_2_celestial.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/astralsorcery/altar/altar_2_celestial.js index 7003deb8e1..04a55cf527 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/astralsorcery/altar/altar_2_celestial.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/astralsorcery/altar/altar_2_celestial.js @@ -110,7 +110,7 @@ onEvent('recipes', (event) => { hasToBeAttuned: true, hasToBeCelestial: false, canBeAttuned: true, - canBeCelestialCrystal: false + canBeCelestialCrystal: true }, B: { item: 'botania:life_essence' }, C: { tag: 'botania:runes/mana' }, diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/bloodmagic/altar.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/bloodmagic/altar.js index 523b41558a..c95feb4f34 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/bloodmagic/altar.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/bloodmagic/altar.js @@ -46,10 +46,46 @@ onEvent('recipes', (event) => { output: 'bloodmagic:blankslate', syphon: 1000, altarLevel: 0, - consumptionRate: 5, + consumptionRate: 50, drainRate: 5, id: 'bloodmagic:altar/slate' }, + { + input: 'bloodmagic:blankslate', + output: 'bloodmagic:reinforcedslate', + syphon: 2000, + altarLevel: 1, + consumptionRate: 100, + drainRate: 5, + id: 'bloodmagic:altar/reinforcedslate' + }, + { + input: 'bloodmagic:reinforcedslate', + output: 'bloodmagic:infusedslate', + syphon: 5000, + altarLevel: 2, + consumptionRate: 250, + drainRate: 10, + id: 'bloodmagic:altar/imbuedslate' + }, + { + input: 'bloodmagic:infusedslate', + output: 'bloodmagic:demonslate', + syphon: 15000, + altarLevel: 3, + consumptionRate: 750, + drainRate: 20, + id: 'bloodmagic:altar/demonicslate' + }, + { + input: 'bloodmagic:demonslate', + output: 'bloodmagic:etherealslate', + syphon: 200000, + altarLevel: 4, + consumptionRate: 1000, + drainRate: 1000, + id: `${id_prefix}etherealslate` + }, { input: 'occultism:chalk_white_impure', output: 'occultism:chalk_white', @@ -98,9 +134,9 @@ onEvent('recipes', (event) => { { input: 'kubejs:firmament', output: 'architects_palette:moonstone', - syphon: 7000, + syphon: 5000, altarLevel: 0, - consumptionRate: 5, + consumptionRate: 250, drainRate: 1, id: `${id_prefix}moonstone` }, @@ -202,15 +238,6 @@ onEvent('recipes', (event) => { consumptionRate: 5, drainRate: 5, id: `${id_prefix}blood_pendant` - }, - { - input: 'bloodmagic:demonslate', - output: 'bloodmagic:etherealslate', - syphon: 200000, - altarLevel: 4, - consumptionRate: 1000, - drainRate: 1000, - id: `${id_prefix}etherealslate` } ]; diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/create/mechanical_crafting.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/create/mechanical_crafting.js index f8d35e9633..a5c17a5fc7 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/create/mechanical_crafting.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/create/mechanical_crafting.js @@ -702,7 +702,7 @@ onEvent('recipes', (event) => { }, { output: 'masterfulmachinery:auto_iridescent_altar_controller', - pattern: ['ABCBA', 'BDEDB', 'CDFDC', 'BGHGB', 'ABIBA'], + pattern: ['ABCBA', 'BDEDB', 'CJFKC', 'BGHGB', 'ABIBA'], key: { A: 'thermal:enderium_glass', B: '#forge:plates/steel', @@ -712,7 +712,9 @@ onEvent('recipes', (event) => { F: '#industrialforegoing:machine_frame/supreme', G: 'xnet:netcable_red', H: '#forge:circuits/ultimate', - I: 'xnet:advanced_connector_red' + I: 'xnet:advanced_connector_red', + J: 'kubejs:bright_constellation_box', + K: 'kubejs:dim_constellation_box' }, id: `${id_prefix}auto_iridescent_altar_controller` }, diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/create/sequenced_assembly.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/create/sequenced_assembly.js index 65f89841e7..67c22dab7f 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/create/sequenced_assembly.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/create/sequenced_assembly.js @@ -463,6 +463,103 @@ onEvent('recipes', (event) => { } ], id: `${id_prefix}computer_package` + }, + { + input: 'mekanism:cardboard_box', + outputs: ['kubejs:big_box_o_boom'], + transitionalItem: 'kubejs:partial_big_box_o_boom', + loops: 64, + sequence: [ + { + type: 'deploying', + input: ['kubejs:partial_big_box_o_boom', 'minecraft:firework_rocket'], + output: 'kubejs:partial_big_box_o_boom' + }, + { + type: 'deploying', + input: ['kubejs:partial_big_box_o_boom', 'minecraft:firework_rocket'], + output: 'kubejs:partial_big_box_o_boom' + }, + { + type: 'deploying', + input: ['kubejs:partial_big_box_o_boom', 'minecraft:firework_rocket'], + output: 'kubejs:partial_big_box_o_boom' + }, + { + type: 'deploying', + input: ['kubejs:partial_big_box_o_boom', 'minecraft:firework_rocket'], + output: 'kubejs:partial_big_box_o_boom' + } + ], + id: `${id_prefix}big_box_o_boom` + }, + { + input: 'mekanism:cardboard_box', + outputs: ['kubejs:mimirs_memory_box'], + transitionalItem: 'kubejs:partial_mimirs_memory_box', + loops: 64, + sequence: [ + { + type: 'deploying', + input: ['kubejs:partial_mimirs_memory_box', 'minecraft:experience_bottle'], + output: 'kubejs:partial_mimirs_memory_box' + }, + { + type: 'deploying', + input: ['kubejs:partial_mimirs_memory_box', 'minecraft:experience_bottle'], + output: 'kubejs:partial_mimirs_memory_box' + }, + { + type: 'deploying', + input: ['kubejs:partial_mimirs_memory_box', 'minecraft:experience_bottle'], + output: 'kubejs:partial_mimirs_memory_box' + }, + { + type: 'deploying', + input: ['kubejs:partial_mimirs_memory_box', 'minecraft:experience_bottle'], + output: 'kubejs:partial_mimirs_memory_box' + } + ], + id: `${id_prefix}mimirs_memory_box` + }, + { + input: 'mekanism:cardboard_box', + outputs: ['kubejs:box_of_thankful_dinners'], + transitionalItem: 'kubejs:partial_box_of_thankful_dinners', + loops: 60, + sequence: [ + { + type: 'deploying', + input: ['kubejs:partial_box_of_thankful_dinners', 'farmersdelight:roast_chicken'], + output: 'kubejs:partial_box_of_thankful_dinners' + }, + { + type: 'deploying', + input: ['kubejs:partial_box_of_thankful_dinners', 'farmersdelight:stuffed_pumpkin'], + output: 'kubejs:partial_box_of_thankful_dinners' + }, + { + type: 'deploying', + input: ['kubejs:partial_box_of_thankful_dinners', 'simpledelights:summer_salad'], + output: 'kubejs:partial_box_of_thankful_dinners' + }, + { + type: 'deploying', + input: ['kubejs:partial_box_of_thankful_dinners', 'simpledelights:sweet_potato_casserole'], + output: 'kubejs:partial_box_of_thankful_dinners' + }, + { + type: 'deploying', + input: ['kubejs:partial_box_of_thankful_dinners', 'minecraft:pumpkin_pie'], + output: 'kubejs:partial_box_of_thankful_dinners' + }, + { + type: 'deploying', + input: ['kubejs:partial_box_of_thankful_dinners', 'farmersdelight:apple_cider'], + output: 'kubejs:partial_box_of_thankful_dinners' + } + ], + id: `${id_prefix}box_of_thankful_dinners` } ]; diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/kubejs/shapeless.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/kubejs/shapeless.js index e97ad940b4..5d2230c604 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/kubejs/shapeless.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/kubejs/shapeless.js @@ -53,6 +53,82 @@ onEvent('recipes', (event) => { output: 'rftoolscontrol:cpu_core_2000', inputs: ['kubejs:cpu_core_as_81221'], id: `${id_prefix}cpu_tier_three_reversion` + }, + { + output: 'kubejs:imaharas_indelible_electrodes', + inputs: [ + Item.of('immersiveengineering:graphite_electrode', '{graphDmg:0,Unbreakable:1}'), + Item.of('immersiveengineering:graphite_electrode', '{graphDmg:0,Unbreakable:1}'), + Item.of('immersiveengineering:graphite_electrode', '{graphDmg:0,Unbreakable:1}'), + 'mekanism:cardboard_box' + ], + id: `${id_prefix}imaharas_indelible_electrodes` + }, + { + output: 'kubejs:bright_constellation_box', + inputs: [ + 'mekanism:cardboard_box', + Item.of( + 'astralsorcery:attuned_celestial_crystal', + '{astralsorcery:{constellationName:"astralsorcery:aevitas"}}' + ).weakNBT(), + Item.of( + 'astralsorcery:attuned_celestial_crystal', + '{astralsorcery:{constellationName:"astralsorcery:armara"}}' + ).weakNBT(), + Item.of( + 'astralsorcery:attuned_celestial_crystal', + '{astralsorcery:{constellationName:"astralsorcery:discidia"}}' + ).weakNBT(), + Item.of( + 'astralsorcery:attuned_celestial_crystal', + '{astralsorcery:{constellationName:"astralsorcery:evorsio"}}' + ).weakNBT(), + Item.of( + 'astralsorcery:attuned_celestial_crystal', + '{astralsorcery:{constellationName:"astralsorcery:vicio"}}' + ).weakNBT() + ], + id: `${id_prefix}bright_constellation_box` + }, + { + output: 'kubejs:dim_constellation_box', + inputs: [ + 'mekanism:cardboard_box', + Item.of( + 'astralsorcery:attuned_celestial_crystal', + '{astralsorcery:{constellationName:"naturesstarlight:naritis"}}' + ).weakNBT(), + Item.of( + 'astralsorcery:attuned_celestial_crystal', + '{astralsorcery:{constellationName:"astralsorcery:octans"}}' + ).weakNBT(), + Item.of( + 'astralsorcery:attuned_celestial_crystal', + '{astralsorcery:{constellationName:"astralsorcery:horologium"}}' + ).weakNBT(), + Item.of( + 'astralsorcery:attuned_celestial_crystal', + '{astralsorcery:{constellationName:"astralsorcery:lucerna"}}' + ).weakNBT(), + Item.of( + 'astralsorcery:attuned_celestial_crystal', + '{astralsorcery:{constellationName:"astralsorcery:mineralis"}}' + ).weakNBT(), + Item.of( + 'astralsorcery:attuned_celestial_crystal', + '{astralsorcery:{constellationName:"astralsorcery:bootes"}}' + ).weakNBT(), + Item.of( + 'astralsorcery:attuned_celestial_crystal', + '{astralsorcery:{constellationName:"astralsorcery:fornax"}}' + ).weakNBT(), + Item.of( + 'astralsorcery:attuned_celestial_crystal', + '{astralsorcery:{constellationName:"astralsorcery:pelotrio"}}' + ).weakNBT() + ], + id: `${id_prefix}dim_constellation_box` } ]; diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/masterful_machinery/auto_iridescent_altar.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/masterful_machinery/auto_iridescent_altar.js index 78df0bc2db..e93bb4e7e0 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/masterful_machinery/auto_iridescent_altar.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/masterful_machinery/auto_iridescent_altar.js @@ -556,6 +556,411 @@ onEvent('recipes', (event) => { ], ticks: 400, id: `${id_prefix}chalice` + }, + { + outputs: [ + { + type: 'masterfulmachinery:items', + chance: 1.0, + data: { item: 'astralsorcery:shifting_star_vicio', count: 1 } + } + ], + inputs: [ + { + type: 'masterfulmachinery:items', + data: { item: 'astralsorcery:shifting_star', count: 1 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:ingots/starmetal', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:dusts/starmetal', count: 6 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'astralsorcery:illumination_powder', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'bloodmagic:defaultcrystal', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'bloodmagic:reagentair', count: 2 } + }, + + { type: 'masterfulmachinery:energy', perTick: true, data: { amount: 500000 } }, + { type: 'masterfulmachinery:astral_starlight', perTick: true, data: { amount: 50 } } + ], + ticks: 400, + id: `${id_prefix}shifting_star_vicio` + }, + { + outputs: [ + { + type: 'masterfulmachinery:items', + chance: 1.0, + data: { item: 'astralsorcery:shifting_star_evorsio', count: 1 } + } + ], + inputs: [ + { + type: 'masterfulmachinery:items', + data: { item: 'astralsorcery:shifting_star', count: 1 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:ingots/starmetal', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:dusts/starmetal', count: 6 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'astralsorcery:illumination_powder', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'bloodmagic:destructivecrystal', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'bloodmagic:reagentfastminer', count: 2 } + }, + + { type: 'masterfulmachinery:energy', perTick: true, data: { amount: 500000 } }, + { type: 'masterfulmachinery:astral_starlight', perTick: true, data: { amount: 50 } } + ], + ticks: 400, + id: `${id_prefix}shifting_star_evorsio` + }, + { + outputs: [ + { + type: 'masterfulmachinery:items', + chance: 1.0, + data: { item: 'astralsorcery:shifting_star_discidia', count: 1 } + } + ], + inputs: [ + { + type: 'masterfulmachinery:items', + data: { item: 'astralsorcery:shifting_star', count: 1 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:ingots/starmetal', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:dusts/starmetal', count: 6 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'astralsorcery:illumination_powder', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'bloodmagic:vengefulcrystal', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'bloodmagic:reagentlava', count: 2 } + }, + + { type: 'masterfulmachinery:energy', perTick: true, data: { amount: 500000 } }, + { type: 'masterfulmachinery:astral_starlight', perTick: true, data: { amount: 50 } } + ], + ticks: 400, + id: `${id_prefix}shifting_star_discidia` + }, + { + outputs: [ + { + type: 'masterfulmachinery:items', + chance: 1.0, + data: { item: 'astralsorcery:shifting_star_armara', count: 1 } + } + ], + inputs: [ + { + type: 'masterfulmachinery:items', + data: { item: 'astralsorcery:shifting_star', count: 1 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:ingots/starmetal', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:dusts/starmetal', count: 6 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'astralsorcery:illumination_powder', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'bloodmagic:steadfastcrystal', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'bloodmagic:reagentbinding', count: 2 } + }, + + { type: 'masterfulmachinery:energy', perTick: true, data: { amount: 500000 } }, + { type: 'masterfulmachinery:astral_starlight', perTick: true, data: { amount: 50 } } + ], + ticks: 400, + id: `${id_prefix}shifting_star_armara` + }, + { + outputs: [ + { + type: 'masterfulmachinery:items', + chance: 1.0, + data: { item: 'astralsorcery:shifting_star_aevitas', count: 1 } + } + ], + inputs: [ + { + type: 'masterfulmachinery:items', + data: { item: 'astralsorcery:shifting_star', count: 1 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:ingots/starmetal', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:dusts/starmetal', count: 6 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'astralsorcery:illumination_powder', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'bloodmagic:corrosivecrystal', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'bloodmagic:reagentgrowth', count: 2 } + }, + + { type: 'masterfulmachinery:energy', perTick: true, data: { amount: 500000 } }, + { type: 'masterfulmachinery:astral_starlight', perTick: true, data: { amount: 50 } } + ], + ticks: 400, + id: `${id_prefix}shifting_star_aevitas` + }, + { + outputs: [ + { + type: 'masterfulmachinery:items', + chance: 1.0, + data: { item: 'astralsorcery:mantle', count: 1 } + } + ], + inputs: [ + { + type: 'masterfulmachinery:items', + data: { item: 'botania:balance_cloak', count: 1 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'astralsorcery:celestial_crystal', count: 1 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'magicfeather:magicfeather', count: 1 } + }, + + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:dusts/starmetal', count: 4 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'astralsorcery:illumination_powder', count: 4 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'astralsorcery:resonating_gem', count: 4 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'botania:runes/mana', count: 1 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'botania:runes/pride', count: 1 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'botania:runes/envy', count: 1 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:storage_blocks/starmetal', count: 1 } + }, + + { type: 'masterfulmachinery:energy', perTick: true, data: { amount: 500000 } }, + { type: 'masterfulmachinery:astral_starlight', perTick: true, data: { amount: 50 } } + ], + ticks: 400, + id: `${id_prefix}mantle` + }, + { + outputs: [ + { + type: 'masterfulmachinery:items', + chance: 1.0, + data: { item: 'pedestals:coin/xpenchanter', count: 1 } + } + ], + inputs: [ + { + type: 'masterfulmachinery:items', + data: { item: 'pedestals:coin/default', count: 1 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'botania:gaia_pylon', count: 1 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'ars_nouveau:glyph_pickup', count: 1 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'botania:runes/mana', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'botania:runes/vanaheim', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'ars_nouveau:greater_experience_gem', count: 12 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:inlays/arcane_gold', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'eidolon:shadow_gem', count: 1 } + }, + + { type: 'masterfulmachinery:energy', perTick: true, data: { amount: 500000 } }, + { type: 'masterfulmachinery:astral_starlight', perTick: true, data: { amount: 50 } } + ], + ticks: 400, + id: `${id_prefix}coin_xpenchanter` + }, + { + outputs: [ + { + type: 'masterfulmachinery:items', + chance: 1.0, + data: { item: 'pedestals:coin/xpanvil', count: 1 } + } + ], + inputs: [ + { + type: 'masterfulmachinery:items', + data: { item: 'pedestals:coin/default', count: 1 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'mythicbotany:alfsteel_pylon', count: 1 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'ars_nouveau:glyph_pickup', count: 1 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'botania:runes/mana', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'botania:runes/vanaheim', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'ars_nouveau:greater_experience_gem', count: 12 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:ingots/netherite', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'betterendforge:aeternium_hammer', count: 1 } + }, + + { type: 'masterfulmachinery:energy', perTick: true, data: { amount: 500000 } }, + { type: 'masterfulmachinery:astral_starlight', perTick: true, data: { amount: 50 } } + ], + ticks: 400, + id: `${id_prefix}coin_xpanvil` + }, + { + outputs: [ + { + type: 'masterfulmachinery:items', + chance: 1.0, + data: { item: 'mekanism:solar_neutron_activator', count: 2 } + } + ], + inputs: [ + { + type: 'masterfulmachinery:items', + data: { item: 'kubejs:observatory_lens', count: 5 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'powah:solar_panel_niotic', count: 5 } + }, + { + type: 'masterfulmachinery:items', + data: { item: 'mekanism:hdpe_sheet', count: 5 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'industrialforegoing:machine_frame/advanced', count: 1 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:circuits/elite', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:plates/enderium', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:dusts/iesnium', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:dusts/starmetal', count: 2 } + }, + { + type: 'masterfulmachinery:items', + data: { tag: 'forge:dusts/end_stone', count: 2 } + }, + + { type: 'masterfulmachinery:energy', perTick: true, data: { amount: 500000 } }, + { type: 'masterfulmachinery:astral_starlight', perTick: true, data: { amount: 50 } } + ], + ticks: 400, + id: `${id_prefix}solar_neutron_activator` } ]; diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/masterful_machinery/enigmatic_tree_of_life.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/masterful_machinery/enigmatic_tree_of_life.js index 4b99c0130d..feb30e0b13 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/masterful_machinery/enigmatic_tree_of_life.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/masterful_machinery/enigmatic_tree_of_life.js @@ -6,16 +6,17 @@ onEvent('recipes', (event) => { const id_prefix = 'enigmatica:expert/masterful_machinery/enigmatic_tree_of_life/'; const recipes = [ { - outputs: [{ type: 'masterfulmachinery:items', data: { item: 'kubejs:botanical_mastery_shard', count: 1 } }], + outputs: [{ type: 'masterfulmachinery:items', data: { item: 'kubejs:botanical_mastery_shard', count: 2 } }], inputs: [ { type: 'masterfulmachinery:items', data: { item: 'mythicbotany:mana_collector', count: 4 } }, - { type: 'masterfulmachinery:items', data: { item: 'botania:spark', count: 12 } }, - { type: 'masterfulmachinery:items', data: { item: 'botania:mana_ring_greater', count: 2 } }, + { type: 'masterfulmachinery:items', data: { item: 'botania:spark', count: 16 } }, + { type: 'masterfulmachinery:items', data: { item: 'botania:spark_upgrade_recessive', count: 8 } }, + { type: 'masterfulmachinery:items', data: { item: 'botania:mana_ring_greater', count: 4 } }, { type: 'masterfulmachinery:items', data: { item: 'botania:fabulous_pool', count: 8 } }, - { type: 'masterfulmachinery:items', data: { item: 'botania:kekimurus', count: 4 } }, - { type: 'masterfulmachinery:items', data: { item: 'botania:shulk_me_not', count: 4 } }, - { type: 'masterfulmachinery:items', data: { item: 'botania:rosa_arcana', count: 4 } }, - { type: 'masterfulmachinery:items', data: { item: 'botania:dandelifeon', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'botania:kekimurus', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'botania:shulk_me_not', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'botania:rosa_arcana', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'botania:dandelifeon', count: 1 } }, { type: 'masterfulmachinery:botania_mana', consumeInstantly: true, data: { amount: 500 * 60 } } ], ticks: 60, @@ -25,15 +26,13 @@ onEvent('recipes', (event) => { outputs: [{ type: 'masterfulmachinery:items', data: { item: 'kubejs:astronomy_mastery_shard', count: 1 } }], inputs: [ { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:observatory', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:altar_radiance', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:marble_chiseled', count: 4 } }, - { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:marble_raw', count: 12 } }, - { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:marble_pillar', count: 8 } }, - { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:marble_bricks', count: 64 } }, - { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:marble_runed', count: 4 } }, - { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:black_marble_arch', count: 49 } }, - { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:marble_bricks', count: 4 } }, - { type: 'masterfulmachinery:items', data: { tag: 'astralsorcery:crystals/attuned', count: 10 } }, + { type: 'masterfulmachinery:items', data: { tag: 'astralsorcery:crystals/attuned', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:mantle', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'astralsorcery:marble_raw', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'thermal:device_rock_gen', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'create:mechanical_saw', count: 1 } }, + { type: 'masterfulmachinery:items', data: { tag: 'astralsorcery:stars/irradiant', count: 1 } }, + { type: 'masterfulmachinery:fluids', perTick: true, @@ -94,15 +93,17 @@ onEvent('recipes', (event) => { outputs: [{ type: 'masterfulmachinery:items', data: { item: 'kubejs:aura_mastery_shard', count: 1 } }], inputs: [ { type: 'masterfulmachinery:items', data: { item: 'naturesaura:aura_trove', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'naturesaura:generator_limit_remover', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'naturesaura:firework_generator', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'minecraft:firework_rocket', count: 64 } }, - { type: 'masterfulmachinery:items', data: { item: 'naturesaura:ancient_sapling', count: 8 } }, + { type: 'masterfulmachinery:items', data: { item: 'kubejs:big_box_o_boom', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'naturesaura:generator_limit_remover', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'naturesaura:projectile_generator', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'kubejs:mimirs_memory_box', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'kubejs:altar_of_birthing_kit', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'naturesaura:aura_detector', count: 8 } }, { type: 'masterfulmachinery:items', data: { item: 'naturesaura:mover_cart', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'minecraft:powered_rail', count: 32 } }, - { type: 'masterfulmachinery:items', data: { item: 'minecraft:rail', count: 64 } }, + { type: 'masterfulmachinery:items', data: { item: 'minecraft:powered_rail', count: 64 } }, + { type: 'masterfulmachinery:items', data: { item: 'minecraft:rail', count: 32 } }, { type: 'masterfulmachinery:items', data: { item: 'minecraft:activator_rail', count: 8 } }, - { type: 'masterfulmachinery:items', data: { item: 'naturesaura:aura_detector', count: 8 } }, { type: 'masterfulmachinery:botania_mana', consumeInstantly: true, data: { amount: 500 * 60 } } ], ticks: 60, @@ -110,15 +111,9 @@ onEvent('recipes', (event) => { }, { outputs: [ - { type: 'masterfulmachinery:items', data: { item: 'kubejs:engineering_mastery_shard', count: 1 } } + { type: 'masterfulmachinery:items', data: { item: 'kubejs:engineering_mastery_shard', count: 2 } } ], inputs: [ - { type: 'masterfulmachinery:items', data: { item: 'create:flywheel', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'create:furnace_engine', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'minecraft:blast_furnace', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'pneumaticcraft:heat_pipe', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'pneumaticcraft:vortex_tube', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'pneumaticcraft:heat_sink', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'pneumaticcraft:advanced_pressure_tube', count: 64 } @@ -133,9 +128,11 @@ onEvent('recipes', (event) => { { type: 'masterfulmachinery:items', data: { item: 'create:encased_chain_drive', count: 32 } }, { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_arc_furnace', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'kubejs:imaharas_indelible_electrodes', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_pumpjack', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_distillation_tower', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_pressure_chamber', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_furnace_engine_kit', count: 1 } }, { type: 'masterfulmachinery:fluids', perTick: true, @@ -207,17 +204,19 @@ onEvent('recipes', (event) => { { type: 'masterfulmachinery:items', data: { item: 'kubejs:dimensional_mastery_shard', count: 1 } } ], inputs: [ - { type: 'masterfulmachinery:items', data: { item: 'extrastorage:disk_4096k', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'extrastorage:block_4096k', count: 2 } }, { type: 'masterfulmachinery:items', - data: { item: 'extrastorage:disk_262144k_fluid', count: 4 } + data: { item: 'extrastorage:block_262144k_fluid', count: 2 } }, - { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:disk_drive', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'mekanism:quantum_entangloporter', count: 4 } }, { type: 'masterfulmachinery:items', data: { item: 'rsinfinitybooster:dimension_card', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:network_receiver', count: 4 } }, { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:network_transmitter', count: 4 } }, { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:network_card', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'mekanism:teleporter', count: 5 } }, + { type: 'masterfulmachinery:items', data: { item: 'mekanism:portable_teleporter', count: 1 } }, + { type: 'masterfulmachinery:botania_mana', consumeInstantly: true, data: { amount: 500 * 60 } } ], ticks: 60, @@ -231,8 +230,7 @@ onEvent('recipes', (event) => { { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_mekasuit_pants', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_mekasuit_boots', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_meka_tool', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'mekanism:teleporter', count: 5 } }, - { type: 'masterfulmachinery:items', data: { item: 'mekanism:portable_teleporter', count: 1 } }, + { type: 'masterfulmachinery:botania_mana', consumeInstantly: true, data: { amount: 500 * 60 } } ], ticks: 60, @@ -252,7 +250,7 @@ onEvent('recipes', (event) => { { type: 'masterfulmachinery:items', data: { item: 'immersiveengineering:survey_tools', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'kubejs:mining_gadget_kit', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'kubejs:flux_bore_kit', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_pedestal_quarry', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_pedestal_quarry', count: 2 } }, { type: 'masterfulmachinery:botania_mana', consumeInstantly: true, data: { amount: 500 * 60 } } ], ticks: 60, @@ -262,6 +260,7 @@ onEvent('recipes', (event) => { outputs: [{ type: 'masterfulmachinery:items', data: { item: 'kubejs:culinary_mastery_shard', count: 1 } }], inputs: [ { type: 'masterfulmachinery:items', data: { item: 'kubejs:engineering_student_meals', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'kubejs:box_of_thankful_dinners', count: 1 } }, { type: 'masterfulmachinery:botania_mana', consumeInstantly: true, data: { amount: 500 * 60 } } ], ticks: 60, @@ -273,25 +272,22 @@ onEvent('recipes', (event) => { ], inputs: [ { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:controller', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'extrastorage:iron_crafter', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'extrastorage:netherite_crafter', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:interface', count: 4 } }, { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:pattern_grid', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:pattern', count: 32 } }, - { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:cable', count: 16 } }, - { type: 'masterfulmachinery:items', data: { item: 'pneumaticcraft:drone', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'pneumaticcraft:charging_station', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'pneumaticcraft:programming_puzzle', count: 64 } }, - { type: 'masterfulmachinery:items', data: { item: 'pneumaticcraft:programmer', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'create:deployer', count: 4 } }, - { type: 'masterfulmachinery:items', data: { item: 'create:mechanical_arm', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:pattern', count: 64 } }, + { type: 'masterfulmachinery:items', data: { item: 'refinedstorage:cable', count: 64 } }, + { type: 'masterfulmachinery:items', data: { item: 'create:deployer', count: 8 } }, + { type: 'masterfulmachinery:items', data: { item: 'create:mechanical_arm', count: 8 } }, { type: 'masterfulmachinery:items', data: { item: 'create:content_observer', count: 8 } }, { type: 'masterfulmachinery:items', data: { item: 'create:stockpile_switch', count: 8 } }, - { type: 'masterfulmachinery:items', data: { item: 'modularrouters:item_router', count: 4 } }, - { type: 'masterfulmachinery:items', data: { item: 'modularrouters:distributor_module', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'modularrouters:vacuum_module', count: 1 } }, - { type: 'masterfulmachinery:items', data: { item: 'modularrouters:player_module', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'botania:auto_crafting_halo', count: 1 } }, { type: 'masterfulmachinery:items', data: { item: 'naturesaura:field_creator', count: 2 } }, { type: 'masterfulmachinery:items', data: { item: 'naturesaura:placer', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'entangled:block', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'pneumaticcraft:universal_sensor', count: 4 } }, + { type: 'masterfulmachinery:items', data: { item: 'kubejs:diy_drone_kit', count: 1 } }, + { type: 'masterfulmachinery:items', data: { item: 'kubejs:assorted_router_kit', count: 1 } }, { type: 'masterfulmachinery:botania_mana', consumeInstantly: true, data: { amount: 500 * 60 } } ], ticks: 60, diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/mekanism/sawing.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/mekanism/sawing.js index daaec4ccf8..7c50619bfc 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/mekanism/sawing.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/mekanism/sawing.js @@ -6,8 +6,8 @@ onEvent('recipes', (event) => { const recipes = [ { input: 'occultism:dimensional_matrix', - output: Item.of('kubejs:dimensional_storage_crystal', 9), - extraOutput: Item.of('kubejs:dimensional_storage_crystal').chance(0.5), + output: Item.of('kubejs:dimensional_storage_crystal', 21), + extraOutput: Item.of('3x kubejs:dimensional_storage_crystal').chance(0.5), id: `${id_prefix}dimensional_storage_crystal` }, { diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/naturesaura/altar.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/naturesaura/altar.js index f2f6070b5a..2cd0444603 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/naturesaura/altar.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/naturesaura/altar.js @@ -50,8 +50,8 @@ onEvent('recipes', (event) => { input: 'kubejs:firmament', output: { item: 'architects_palette:sunstone' }, aura_type: 'naturesaura:overworld', - aura: 12000, - time: 40, + aura: 5000, + time: 20, id: `${id_prefix}sunstone` }, { diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/naturesaura/tree_ritual.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/naturesaura/tree_ritual.js index 51b88e1b3a..0c6a7bedbe 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/naturesaura/tree_ritual.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/naturesaura/tree_ritual.js @@ -51,7 +51,7 @@ onEvent('recipes', (event) => { ], output: '2x naturesaura:token_fear', time: 2 * time_multiplier, - sapling: 'architects_palette:twisted_sapling', + sapling: 'quark:lavender_blossom_sapling', id: 'naturesaura:tree_ritual/token_fear' }, { @@ -83,7 +83,7 @@ onEvent('recipes', (event) => { ], output: '2x naturesaura:token_sorrow', time: 2 * time_multiplier, - sapling: 'architects_palette:twisted_sapling', + sapling: 'quark:lavender_blossom_sapling', id: 'naturesaura:tree_ritual/token_sorrow' }, { @@ -179,7 +179,7 @@ onEvent('recipes', (event) => { ], output: 'naturesaura:chorus_generator', time: 6 * time_multiplier, - sapling: 'architects_palette:twisted_sapling', + sapling: 'quark:blue_blossom_sapling', id: 'naturesaura:chorus_generator' }, { @@ -211,7 +211,7 @@ onEvent('recipes', (event) => { ], output: 'naturesaura:moss_generator', time: 6 * time_multiplier, - sapling: 'architects_palette:twisted_sapling', + sapling: 'quark:lavender_blossom_sapling', id: 'naturesaura:moss_generator' }, { @@ -275,7 +275,7 @@ onEvent('recipes', (event) => { ], output: 'naturesaura:eye', time: 2 * time_multiplier, - sapling: 'architects_palette:twisted_sapling', + sapling: 'quark:pink_blossom_sapling', id: 'naturesaura:tree_ritual/eye' }, { @@ -291,7 +291,7 @@ onEvent('recipes', (event) => { ], output: 'naturesaura:eye_improved', time: 5 * time_multiplier, - sapling: 'architects_palette:twisted_sapling', + sapling: 'quark:pink_blossom_sapling', id: 'naturesaura:tree_ritual/eye_improved' }, { @@ -305,7 +305,7 @@ onEvent('recipes', (event) => { ], output: 'naturesaura:conversion_catalyst', time: 6 * time_multiplier, - sapling: 'architects_palette:twisted_sapling', + sapling: 'quark:orange_blossom_sapling', id: 'naturesaura:tree_ritual/conversion_catalyst' }, { @@ -318,7 +318,7 @@ onEvent('recipes', (event) => { ], output: 'naturesaura:crushing_catalyst', time: 6 * time_multiplier, - sapling: 'architects_palette:twisted_sapling', + sapling: 'quark:red_blossom_sapling', id: 'naturesaura:tree_ritual/crushing_catalyst' }, { @@ -462,11 +462,10 @@ onEvent('recipes', (event) => { 'kubejs:firmament', 'naturesaura:token_anger' ], - sapling: 'architects_palette:twisted_sapling', + sapling: 'quark:red_blossom_sapling', output: 'naturesaura:shockwave_creator', time: 4 * time_multiplier, id: `${id_prefix}shockwave_creator` - }, { ingredients: [ diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/pneumaticcraft/pressure_chamber.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/pneumaticcraft/pressure_chamber.js index fe004d79e6..50a6e66ee5 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/pneumaticcraft/pressure_chamber.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/pneumaticcraft/pressure_chamber.js @@ -329,12 +329,12 @@ onEvent('recipes', (event) => { }, { inputs: [ - { item: 'pedestals:pedestal/stone333', count: 4 }, - { item: 'pedestals:coin/quarry', count: 4 }, - { item: 'pedestals:bookspeed', count: 8 }, - { item: 'pedestals:bookrange', count: 8 }, - { item: 'pedestals:bookarea', count: 8 }, - { item: 'pedestals:bookcapacity', count: 8 }, + { item: 'pedestals:pedestal/stone333', count: 1 }, + { item: 'pedestals:coin/quarry', count: 1 }, + { item: 'pedestals:bookspeed', count: 1 }, + { item: 'pedestals:bookrange', count: 1 }, + { item: 'pedestals:bookarea', count: 1 }, + { item: 'pedestals:bookcapacity', count: 1 }, { item: 'mekanism:cardboard_box', count: 1 } ], pressure: 4.5, @@ -535,6 +535,59 @@ onEvent('recipes', (event) => { pressure: 4.5, results: [{ item: 'kubejs:diy_pressure_chamber', count: 1 }], id: `${id_prefix}diy_pressure_chamber` + }, + { + inputs: [ + { item: 'pneumaticcraft:drone', count: 1 }, + { item: 'pneumaticcraft:charging_station', count: 1 }, + { item: 'pneumaticcraft:programmer', count: 1 }, + { item: 'pneumaticcraft:programming_puzzle', count: 64 }, + { item: 'pneumaticcraft:programming_puzzle', count: 64 }, + { item: 'mekanism:cardboard_box', count: 1 } + ], + pressure: 4.5, + results: [{ item: 'kubejs:diy_drone_kit', count: 1 }], + id: `${id_prefix}diy_drone_kit` + }, + { + inputs: [ + { item: 'modularrouters:item_router', count: 16 }, + { item: 'modularrouters:distributor_module', count: 4 }, + { item: 'modularrouters:sender_module_2', count: 4 }, + { item: 'modularrouters:puller_module_2', count: 4 }, + { item: 'modularrouters:vacuum_module', count: 1 }, + { item: 'modularrouters:player_module', count: 1 }, + { item: 'mekanism:cardboard_box', count: 1 } + ], + pressure: 4.5, + results: [{ item: 'kubejs:assorted_router_kit', count: 1 }], + id: `${id_prefix}assorted_router_kit` + }, + { + inputs: [ + { item: 'naturesaura:animal_spawner', count: 1 }, + { item: 'naturesaura:ancient_planks', count: 4 }, + { item: 'naturesaura:infused_brick', count: 16 }, + { item: 'minecraft:hay_block', count: 16 }, + { item: 'naturesaura:birth_spirit', count: 64 }, + { item: 'mekanism:cardboard_box', count: 1 } + ], + pressure: 4.5, + results: [{ item: 'kubejs:altar_of_birthing_kit', count: 1 }], + id: `${id_prefix}altar_of_birthing_kit` + }, + { + inputs: [ + { item: 'mekanism:resistive_heater', count: 1 }, + { item: 'pneumaticcraft:heat_pipe', count: 1 }, + { item: 'minecraft:blast_furnace', count: 1 }, + { item: 'create:flywheel', count: 1 }, + { item: 'create:furnace_engine', count: 1 }, + { item: 'mekanism:cardboard_box', count: 1 } + ], + pressure: 4.5, + results: [{ item: 'kubejs:diy_furnace_engine_kit', count: 1 }], + id: `${id_prefix}diy_furnace_engine_kit` } ]; diff --git a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/thermal/machine/sawmill.js b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/thermal/machine/sawmill.js index 23be8e9e97..7cc0413aff 100644 --- a/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/thermal/machine/sawmill.js +++ b/kubejs/server_scripts/enigmatica/kubejs/expert/recipetypes/thermal/machine/sawmill.js @@ -7,8 +7,8 @@ onEvent('recipes', (event) => { { input: 'occultism:dimensional_matrix', outputs: [ - Item.of('kubejs:dimensional_storage_crystal', 6), - Item.of('kubejs:dimensional_storage_crystal').chance(0.25) + Item.of('12x kubejs:dimensional_storage_crystal'), + Item.of('3x kubejs:dimensional_storage_crystal').chance(0.25) ], id: `${id_prefix}dimensional_storage_crystal` }, diff --git a/kubejs/startup_scripts/item_registry.js b/kubejs/startup_scripts/item_registry.js index 454e5c57c5..4e0c454dce 100644 --- a/kubejs/startup_scripts/item_registry.js +++ b/kubejs/startup_scripts/item_registry.js @@ -179,6 +179,14 @@ onEvent('item.registry', (event) => { { name: 'artisinal_ritual_kit', texture: 'advanced_packing_crate_purple' }, { name: 'artisinal_chalk_set', texture: 'advanced_packing_crate_green' }, { name: 'diy_pressure_chamber', texture: 'packing_crate_lime' }, + { name: 'diy_drone_kit', texture: 'packing_crate_red' }, + { name: 'assorted_router_kit', texture: 'advanced_packing_crate_purple' }, + { name: 'altar_of_birthing_kit', texture: 'packing_crate_blue' }, + { name: 'diy_furnace_engine_kit', texture: 'packing_crate_blue' }, + { name: 'imaharas_indelible_electrodes', texture: 'advanced_packing_crate_green' }, + + { name: 'bright_constellation_box', texture: 'advanced_packing_crate_purple' }, + { name: 'dim_constellation_box', texture: 'advanced_packing_crate_green' }, { name: 'engineers_school_project', texture: 'packing_crate_gray' }, { name: 'partial_engineers_school_project', texture: 'packing_crate_gray' }, @@ -192,6 +200,12 @@ onEvent('item.registry', (event) => { { name: 'partial_engineering_student_meals', texture: 'packing_crate_blue' }, { name: 'building_materials', texture: 'packing_crate_orange' }, { name: 'partial_building_materials', texture: 'packing_crate_orange' }, + { name: 'big_box_o_boom', texture: 'packing_crate_gray' }, + { name: 'partial_big_box_o_boom', texture: 'packing_crate_gray' }, + { name: 'mimirs_memory_box', texture: 'packing_crate_lime' }, + { name: 'partial_mimirs_memory_box', texture: 'packing_crate_lime' }, + { name: 'box_of_thankful_dinners', texture: 'advanced_packing_crate_purple' }, + { name: 'partial_box_of_thankful_dinners', texture: 'advanced_packing_crate_purple' }, { name: 'engineers_school_upgrades', texture: 'advanced_packing_crate_gray' }, { name: 'partial_engineers_school_upgrades', texture: 'advanced_packing_crate_gray' }, @@ -351,99 +365,99 @@ onEvent('item.registry', (event) => { const bees = [ //keep changes mostly synced to "server_scripts/constants/resourcefulbees.js", combVariants constant // alloy - {name: 'brass', band: 0x998d38, outline: 0x998d38}, - {name: 'bronze', band: 0xd38c53, outline: 0xd38c53}, - {name: 'constantan', band: 0xd8876b, outline: 0xd8876b}, - {name: 'electrum', band: 0xe5b840, outline: 0xe5b840}, - {name: 'enderium', band: 0x0a4a4a, outline: 0x0a4a4a}, - {name: 'invar', band: 0xdfe5e2, outline: 0xdfe5e2}, - {name: 'lumium', band: 0xe5f3b5, outline: 0xe5f3b5}, - {name: 'signalum', band: 0xfd641a, outline: 0xfd641a}, - {name: 'steel', band: 0x858585, outline: 0x858585}, + { name: 'brass', band: 0x998d38, outline: 0x998d38 }, + { name: 'bronze', band: 0xd38c53, outline: 0xd38c53 }, + { name: 'constantan', band: 0xd8876b, outline: 0xd8876b }, + { name: 'electrum', band: 0xe5b840, outline: 0xe5b840 }, + { name: 'enderium', band: 0x0a4a4a, outline: 0x0a4a4a }, + { name: 'invar', band: 0xdfe5e2, outline: 0xdfe5e2 }, + { name: 'lumium', band: 0xe5f3b5, outline: 0xe5f3b5 }, + { name: 'signalum', band: 0xfd641a, outline: 0xfd641a }, + { name: 'steel', band: 0x858585, outline: 0x858585 }, // dev - {name: 'kitten', band: 0xeaa939, outline: 0x4c483b}, - {name: 'oreo', band: 0x442920, outline: 0xe1d9b8}, - {name: 'starry_lexxie', band: 0xffffff, outline: 0xffa500}, - {name: 'yeti', band: 0xe9f4f6, outline: 0x777e86}, + { name: 'kitten', band: 0xeaa939, outline: 0x4c483b }, + { name: 'oreo', band: 0x442920, outline: 0xe1d9b8 }, + { name: 'starry_lexxie', band: 0xffffff, outline: 0xffa500 }, + { name: 'yeti', band: 0xe9f4f6, outline: 0x777e86 }, // gem - {name: 'diamond', band: 0x00ffff, outline: 0x00ffff}, - {name: 'emerald', band: 0x18eb09, outline: 0x18eb09}, - {name: 'lapis', band: 0x345ec3, outline: 0x345ec3}, - {name: 'redstone', band: 0xaa0f01, outline: 0xaa0f01}, + { name: 'diamond', band: 0x00ffff, outline: 0x00ffff }, + { name: 'emerald', band: 0x18eb09, outline: 0x18eb09 }, + { name: 'lapis', band: 0x345ec3, outline: 0x345ec3 }, + { name: 'redstone', band: 0xaa0f01, outline: 0xaa0f01 }, // magic - {name: 'bloody', band: 0x80251f, outline: 0x80251f}, - {name: 'carbee', band: 0xe39c27, outline: 0xe39c27}, - {name: 'elven', band: 0xff66cc, outline: 0xff66cc}, - {name: 'infused', band: 0x1bb373, outline: 0x1bb373}, - {name: 'mana', band: 0x4c97ff, outline: 0x4c97ff}, - {name: 'otherworldly', band: 0x1d1d24, outline: 0x1d1d24}, - {name: 'sky', band: 0x73d0ff, outline: 0x73d0ff}, - {name: 'starry', band: 0x002184, outline: 0x002184}, - {name: 'tainted', band: 0xcc6d3d, outline: 0xcc6d3d}, - {name: 'terrestrial', band: 0x5bf23d, outline: 0x5bf23d}, + { name: 'bloody', band: 0x80251f, outline: 0x80251f }, + { name: 'carbee', band: 0xe39c27, outline: 0xe39c27 }, + { name: 'elven', band: 0xff66cc, outline: 0xff66cc }, + { name: 'infused', band: 0x1bb373, outline: 0x1bb373 }, + { name: 'mana', band: 0x4c97ff, outline: 0x4c97ff }, + { name: 'otherworldly', band: 0x1d1d24, outline: 0x1d1d24 }, + { name: 'sky', band: 0x73d0ff, outline: 0x73d0ff }, + { name: 'starry', band: 0x002184, outline: 0x002184 }, + { name: 'tainted', band: 0xcc6d3d, outline: 0xcc6d3d }, + { name: 'terrestrial', band: 0x5bf23d, outline: 0x5bf23d }, // material - {name: 'clay', band: 0xacaebd, outline: 0xacaebd}, - {name: 'enderslime', band: 0xa777e1, outline: 0xa777e1}, - {name: 'gravel', band: 0x968e8e, outline: 0x968e8e}, - {name: 'ichor', band: 0xf7731f, outline: 0xf7731f}, - {name: 'shepherd', band: 0x945c45, outline: 0x945c45}, - {name: 'skyslime', band: 0x4ab1a4, outline: 0x4ab1a4}, + { name: 'clay', band: 0xacaebd, outline: 0xacaebd }, + { name: 'enderslime', band: 0xa777e1, outline: 0xa777e1 }, + { name: 'gravel', band: 0x968e8e, outline: 0x968e8e }, + { name: 'ichor', band: 0xf7731f, outline: 0xf7731f }, + { name: 'shepherd', band: 0x945c45, outline: 0x945c45 }, + { name: 'skyslime', band: 0x4ab1a4, outline: 0x4ab1a4 }, // metal - {name: 'aluminum', band: 0xdce6f7, outline: 0xdce6f7}, - {name: 'cobalt', band: 0x20adc9, outline: 0x20adc9}, - {name: 'copper', band: 0xbb5b30, outline: 0xbb5b30}, - {name: 'frosty', band: 0xb9d3ec, outline: 0xb9d3ec}, - {name: 'gold', band: 0xffdc00, outline: 0xffdc00}, - {name: 'iron', band: 0xffcc99, outline: 0xffcc99}, - {name: 'lead', band: 0x333952, outline: 0x333952}, - {name: 'nickel', band: 0x8c8f86, outline: 0x8c8f86}, - {name: 'osmium', band: 0xc1e0e7, outline: 0xc1e0e7}, - {name: 'regal', band: 0xebbe76, outline: 0xebbe76}, - {name: 'silver', band: 0xc5d1fe, outline: 0xc5d1fe}, - {name: 'tin', band: 0x7d81a4, outline: 0x7d81a4}, - {name: 'uranium', band: 0x333c2f, outline: 0x333c2f}, - {name: 'zinc', band: 0x818653, outline: 0x818653}, + { name: 'aluminum', band: 0xdce6f7, outline: 0xdce6f7 }, + { name: 'cobalt', band: 0x20adc9, outline: 0x20adc9 }, + { name: 'copper', band: 0xbb5b30, outline: 0xbb5b30 }, + { name: 'frosty', band: 0xb9d3ec, outline: 0xb9d3ec }, + { name: 'gold', band: 0xffdc00, outline: 0xffdc00 }, + { name: 'iron', band: 0xffcc99, outline: 0xffcc99 }, + { name: 'lead', band: 0x333952, outline: 0x333952 }, + { name: 'nickel', band: 0x8c8f86, outline: 0x8c8f86 }, + { name: 'osmium', band: 0xc1e0e7, outline: 0xc1e0e7 }, + { name: 'regal', band: 0xebbe76, outline: 0xebbe76 }, + { name: 'silver', band: 0xc5d1fe, outline: 0xc5d1fe }, + { name: 'tin', band: 0x7d81a4, outline: 0x7d81a4 }, + { name: 'uranium', band: 0x333c2f, outline: 0x333c2f }, + { name: 'zinc', band: 0x818653, outline: 0x818653 }, // natural - {name: 'brutish_zombee', band: 0x2f4e32, outline: 0x2f4e32}, - {name: 'clogged', band: 0xba9d7b, outline: 0xba9d7b}, - {name: 'coal', band: 0x303030, outline: 0x303030}, - {name: 'creeper', band: 0x0c9f0a, outline: 0x0c9f0a}, - {name: 'ender', band: 0x339786, outline: 0x339786}, - {name: 'forest', band: 0x4c4c26, outline: 0x4c4c26}, - {name: 'glowstone', band: 0xffbc5e, outline: 0xffbc5e}, - {name: 'icy', band: 0x92b9fe, outline: 0x92b9fe}, - {name: 'obsidian', band: 0x663399, outline: 0x663399}, - {name: 'pigman', band: 0x885956, outline: 0x885956}, - {name: 'rgbee', band: 0xffffff, outline: 0xffffff}, - {name: 'rocky', band: 0x8f8f8f, outline: 0x8f8f8f}, - {name: 'sand', band: 0xe7e4bb, outline: 0xe7e4bb}, - {name: 'skeleton', band: 0xf6f2e6, outline: 0xf6f2e6}, - {name: 'slimy', band: 0x73c262, outline: 0x73c262}, - {name: 'water', band: 0x5979ef, outline: 0x5979ef}, - {name: 'zombie', band: 0x2f4e32, outline: 0x2f4e32}, + { name: 'brutish_zombee', band: 0x2f4e32, outline: 0x2f4e32 }, + { name: 'clogged', band: 0xba9d7b, outline: 0xba9d7b }, + { name: 'coal', band: 0x303030, outline: 0x303030 }, + { name: 'creeper', band: 0x0c9f0a, outline: 0x0c9f0a }, + { name: 'ender', band: 0x339786, outline: 0x339786 }, + { name: 'forest', band: 0x4c4c26, outline: 0x4c4c26 }, + { name: 'glowstone', band: 0xffbc5e, outline: 0xffbc5e }, + { name: 'icy', band: 0x92b9fe, outline: 0x92b9fe }, + { name: 'obsidian', band: 0x663399, outline: 0x663399 }, + { name: 'pigman', band: 0x885956, outline: 0x885956 }, + { name: 'rgbee', band: 0xffffff, outline: 0xffffff }, + { name: 'rocky', band: 0x8f8f8f, outline: 0x8f8f8f }, + { name: 'sand', band: 0xe7e4bb, outline: 0xe7e4bb }, + { name: 'skeleton', band: 0xf6f2e6, outline: 0xf6f2e6 }, + { name: 'slimy', band: 0x73c262, outline: 0x73c262 }, + { name: 'water', band: 0x5979ef, outline: 0x5979ef }, + { name: 'zombie', band: 0x2f4e32, outline: 0x2f4e32 }, // nether - {name: 'blaze', band: 0xfff32d, outline: 0xfff32d}, - {name: 'ghast', band: 0xfaebd7, outline: 0xfaebd7}, - {name: 'netherite', band: 0x654740, outline: 0x654740}, - {name: 'wither', band: 0x444444, outline: 0x444444}, - {name: 'nether_quartz', band: 0xd4caba, outline: 0xd4caba}, + { name: 'blaze', band: 0xfff32d, outline: 0xfff32d }, + { name: 'ghast', band: 0xfaebd7, outline: 0xfaebd7 }, + { name: 'netherite', band: 0x654740, outline: 0x654740 }, + { name: 'wither', band: 0x444444, outline: 0x444444 }, + { name: 'nether_quartz', band: 0xd4caba, outline: 0xd4caba }, // special - {name: 'boobee', band: 0xe9f3ea, outline: 0xe9f3ea}, - {name: 'clockwork', band: 0x70522e, outline: 0x70522e}, - {name: 'direbee20', band: 0x859292, outline: 0x859292}, - {name: 'dusty_mummbee', band: 0xe7e4bb, outline: 0xe7e4bb}, - {name: 'generikbee', band: 0xf25843, outline: 0xf25843}, - {name: 'soup', band: 0x8b7173, outline: 0x8b7173}, - {name: 'spelling', band: 0x905e43, outline: 0x905e43}, - {name: 'wasabee', band: 0x59a523, outline: 0x59a523}, + { name: 'boobee', band: 0xe9f3ea, outline: 0xe9f3ea }, + { name: 'clockwork', band: 0x70522e, outline: 0x70522e }, + { name: 'direbee20', band: 0x859292, outline: 0x859292 }, + { name: 'dusty_mummbee', band: 0xe7e4bb, outline: 0xe7e4bb }, + { name: 'generikbee', band: 0xf25843, outline: 0xf25843 }, + { name: 'soup', band: 0x8b7173, outline: 0x8b7173 }, + { name: 'spelling', band: 0x905e43, outline: 0x905e43 }, + { name: 'wasabee', band: 0x59a523, outline: 0x59a523 }, // tech - {name: 'basalz', band: 0x1b141d, outline: 0x1b141d}, - {name: 'blitz', band: 0xdef7fa, outline: 0xdef7fa}, - {name: 'blizz', band: 0x37b7fe, outline: 0x37b7fe}, - {name: 'industrious', band: 0xce7dce, outline: 0xce7dce}, - {name: 'pcbee', band: 0x7a7f80, outline: 0x7a7f80}, + { name: 'basalz', band: 0x1b141d, outline: 0x1b141d }, + { name: 'blitz', band: 0xdef7fa, outline: 0xdef7fa }, + { name: 'blizz', band: 0x37b7fe, outline: 0x37b7fe }, + { name: 'industrious', band: 0xce7dce, outline: 0xce7dce }, + { name: 'pcbee', band: 0x7a7f80, outline: 0x7a7f80 }, // manual - {name: 'abbee', band: 0xe5ded5, outline: 0xffb1c5}, + { name: 'abbee', band: 0xe5ded5, outline: 0xffb1c5 } ]; let metalTypes = ['suffused', 'fulminated', 'levigated', 'sliver']; @@ -467,7 +481,13 @@ onEvent('item.registry', (event) => { }); bees.forEach((bee) => { - event.create(`${bee.name}_larva`).group(`KubeJS`).texture('kubejs:item/bee_larva').parentModel('kubejs:item/bee_larva').color(1, bee.band).color(2, bee.outline); + event + .create(`${bee.name}_larva`) + .group(`KubeJS`) + .texture('kubejs:item/bee_larva') + .parentModel('kubejs:item/bee_larva') + .color(1, bee.band) + .color(2, bee.outline); }); // Custom Occultism Miners From a8dcbd77aead842196c71fc6137f0665b2b2d01c Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Tue, 12 Jul 2022 21:43:55 +0200 Subject: [PATCH 27/53] Lua Basics 3 -> IF Finished I'm back for another 2 weeks, lets finish this! Finished Lua Basics 3 - creating conditions with IF --- .../chapters/computercraft_tweaked.snbt | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 16103424c3..9b2919f696 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -1692,7 +1692,7 @@ icon: "computercraft:printed_pages" x: 9.0d y: -0.5d - subtitle: "Lua Basics #3 - If and logic operators" + subtitle: "Lua Basics #3 - Creating conditions with IF" description: [ "\"if\" is another one of the most important things in coding. Without it we wouldn't be able to create any decisions! \"if\" is used to check if a variable is equal, bigger, smaller etc than another variable / value." "" @@ -1701,6 +1701,30 @@ "> if (variable_1 == variable_2) then" "" "You probably realized that I didn't use single \"=\" sign, and that's not a mistake! You can not use a single equal sign in this case, as it is used to asign a value to a variable, and not to check its value! Here is the list of logic operators you can use in Lua:" + "" + "● == -> checks if both variables are identical / equal." + "● ~= -> Same as == , but inverted (checks if both variables aren't identical / equal)." + "● \">\" and \"<\" -> Checks if 1st variable is bigger / lower than 2nd one (Only numbers)." + "● \">=\" and \"<=\" -> Checks if 1st variable is bigger / lower than 2nd one or if variables are equal (Only numbers)." + "" + "There are operators that make it possible to combine multiple operators:" + "" + "● \"and\" -> this operator returns its first argument if it is false, otherwise, it returns its second argument (Example:" + "> 6 > 5 and 6 < 5 -- First argument is true, so it returns the second one that is false)" + "● \"or\" -> returns its first argument if it is not false; otherwise, it returns its second argument." + "● \"not\" -> it reverts what it gots, so if it gets true, it will return false and vice versa." + "" + "After you make your decision requirement, you just need to add code that is gonna be executed if condition is meet. At the end you add \"end\"." + "" + "There is also \"else\" and \"elseif\" commands, that allow you to execute code if conditions aren't meet, or check another condition if first wasn't meet. You use just one \"end\" at the end of entire \"if\"! Example:" + "" + "> if (5 > 6 and 7+2 < 10) then" + "> print(\"Its true!\")" + "> elseif (\"Hello\" == \"Hello\" or 10-9 <= 0) then" + "> print(\"First condition wasn't meet, but second one was!\")" + "> else" + "> print(\"None of condition were meet.\")" + "> end" ] dependencies: ["5056B0737A8A8D64"] hide: true From 42db959eb323a4322ab8c5f857a477dcf40806d4 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Tue, 12 Jul 2022 23:02:08 +0200 Subject: [PATCH 28/53] More tasks [WIP] Created two tasks: Creating your own function -> Its still crappy but idea is there Creatind conditons -> Its better :D I actually like that one, but it need a final touch to it. --- .../chapters/computercraft_tweaked.snbt | 88 ++++++++++++++++++- 1 file changed, 87 insertions(+), 1 deletion(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 9b2919f696..92fd913411 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -1540,7 +1540,7 @@ title: "Your first program!" icon: "rftoolscontrol:program_card" x: -1.5d - y: -4.5d + y: -4.0d subtitle: "Practice: Variables" description: [ "It's time. We are gonna actually code something!" @@ -1736,5 +1736,91 @@ title: "Got it!" }] } + { + title: "Lets create some functions." + icon: "thermal:wrench" + x: -2.0d + y: -5.5d + subtitle: "Practice: Creating a function variable. [WIP]" + description: [ + "Lets create our first functions!" + "This program will use your own functions to execute code multiple times later on." + "" + "Lets start with the stuff from last task. Create 5 variables, 3 of them will be numbers and 2 strings. What is their value is up to you." + "Lets create a function, that will have 2 arguments. It needs to add those arguments, print \"Sum of arguments equals: \" with a sum at the end, and return the sum." + "Now lets create another function, that will take three arguments. First argument will be divided by the second argument, and added at the end of the third one. Return the entire string you got." + "Now lets create another variable and call second function as its value. First argument will be our 1st function, with two of the number variables as its arguments, for second argument set third number argument, and for the last one, one of the strings." + "Lastly lets get what our function returned, add at the end our second string and print it!" + "" + "If done correctly you should see one line on the screen with \"Sum of the arguemnts equals: \" and sum of numbers you put into the function, and second line with one of your strings, a sum of first two numbers divided by third one and your second string at the end." + ] + dependencies: [ + "5E591D65A5014852" + "0C2F459BCB9222EC" + ] + hide: true + min_width: 400 + id: "7A434175E2B1AE04" + tasks: [ + { + id: "2BB217B036DE0F70" + type: "checkmark" + title: "Got it working!" + } + { + id: "33326F96031C082C" + type: "item" + title: "Computer" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "computercraft:computer_normal" + Count: 1b + } + { + id: "computercraft:computer_advanced" + Count: 1b + } + ] + } + } + } + ] + } + { + title: "Is 6 higher than 8?" + icon: "thermal:wrench" + x: -1.0d + y: -7.0d + subtitle: "Practice: Creating Conditions [WIP]" + description: [ + "Is 6 higher than 2+3? Is \"E6\" the same as \"e6\"? What to do if something?" + "In this task we will create our first conditions, that will for sure let us know what is what!" + "" + "Lets start with creating few variables, get 4 numbers and 2 strings, with something similiar like \"Enigmatica 6\" and \"enigmatica 8\"." + "Lets create our first condition. Check if first number variable is higher than second one, if so print \"Its bigger!\", if not print \"Its smaller!\"." + "Second condition will be more advanced, lets get sum of our first and second number, and check if its higher or equal to the third one OR if its equal to the fourth one. If condition is meet, print first string, if not, check if first string is the same as second string, if it is, print \"They are the same!\", but if not, change second string to be the same as first, and print \"They weren't the same, but they are now\"." + "If done correctly you should get no errors, and get good outputs that agree with instructions written in this quest:" + "If first condition is meet, you should see \"Its bigger!\", if not \"Its smaller!\"" + "If second condition is meet, you should see what you wrote in your first string, if not, you should see either \"They are the same!\" or \"They weren't the same, but they are now.\" if your strings weren't identical." + "" + "Now if your code works, you can experiment a bit and see how the output changes with different inputs. Have fun!" + ] + dependencies: [ + "7A434175E2B1AE04" + "76DA4E58186F04A0" + ] + hide: true + min_width: 400 + id: "788EAA0E430DA5C3" + tasks: [{ + id: "783230BC86FE4A38" + type: "checkmark" + title: "Got it working!" + }] + } ] } From 0c9e10700acb26122b400a2131ad89c3d99cae7f Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Wed, 13 Jul 2022 00:11:00 +0200 Subject: [PATCH 29/53] Variables Types FInished Finished Table type! Did some final touched on the variables. --- .../chapters/computercraft_tweaked.snbt | 89 +++++++++++++++---- 1 file changed, 72 insertions(+), 17 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 92fd913411..bd9b7844ec 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -1178,11 +1178,43 @@ { title: "Type: Table" icon: "computercraft:printed_page" - x: 3.65d - y: -4.8d + x: 3.0d + y: -4.0d subtitle: "Lua Basics #1 - Variable types" - description: ["TODO: Do it actually ^^\" Tables are actually hard to explain, so thats off for later"] - dependencies: ["29C780353E7FB720"] + description: [ + "Tables are one of the most complicated \"variables\" in here, so you will need to read a lot more about them if you want to learn more than basic of basics." + "" + "To start of technically tables aren't \"variables\". They are dynamic objects that can be dynamically changed. But to not make a brain washing process here, I will call it \"variable type\" so you will not think its used differently." + "" + "To create a table, its pretty simple, you just use \"\\{\\}\" for any variable's value." + "" + "> local my_first_table = \\{\\} -- Create a relation to that table, for now its empty." + "" + "Table is an array, that means it can store multiple variables inside of it, and all of them can be accessed with just one name. However in tables, those variables are called \"entries\". Every entry has its own Key and its value. Similiarly to a variable, but its in group!" + "To read/write to some entry, you need to use its key in the brackets next to the table, like this:" + "" + "> my_first_table[1] = \"Hello\"" + "> print my_first_table[1] -> Prints \"Hello\"" + "" + "In tables, you can store nearly anything, string, function, even another list! If you have list of the functions its API, and in that way you can create your own simple API. " + "If your key is a string, you can skip the brackets and just use the string name with a dot to get to that entry:" + "" + "> my_first_table.hello = \"Hello again\"" + "" + "It the similiar way you use APIs, but complete guide on that will be later on." + "Note: a.x and a[x] isn't the same! x in first case is a string, not a variable like in second one!" + "" + "Lua defaults empty entries to nil, and you can set non-empty ones to nil to clear them. Tables aren't fixed, if there will be no more relations to it, it will be deleted from the memory. To delete a table completly, set every variable that has copy of that table to nil." + "" + "Important note is that Lua doesn't return tables starting at key 0, like most of the languages do, Lua returns tables with key 1 and going up. You can do table starting at key 0 manually, but its not recommended if you aren't gonna use negative numbers." + "" + "To learn more about tables if needed, check out Lua docs!" + ] + dependencies: [ + "29C780353E7FB720" + "20F5794B8753B648" + ] + min_width: 500 id: "152F6E8D35D2069A" tasks: [{ id: "124F45AFAA7A0206" @@ -1193,8 +1225,8 @@ { title: "Type: Boolean" icon: "computercraft:printed_page" - x: 3.0d - y: -4.0d + x: 7.35d + y: -4.8d subtitle: "Lua Basics #1 - Variable types" description: [ "Boolean is the easiest type in every programming language. It can have 2 states, \"True\" and \"False\"." @@ -1204,7 +1236,11 @@ "" "A lot of functions are returning a boolean variable after they ended they work, it is useful to check for that output to see if what you wanted to do was actually done." ] - dependencies: ["29C780353E7FB720"] + dependencies: [ + "29C780353E7FB720" + "401DE5F2E19708E0" + ] + hide: true min_width: 250 id: "182654F933DE1815" tasks: [{ @@ -1216,8 +1252,8 @@ { title: "Type: Function" icon: "computercraft:printed_page" - x: 4.5d - y: -5.4d + x: 3.65d + y: -4.8d subtitle: "Lua Basics #1 - Variable types" description: [ "You already heard of the word \"function\" a few times in this quest line, but did you know it's also one of the variable types?" @@ -1232,7 +1268,7 @@ "> print(string) -- Basic function to write text on the screen. Has one argument." "" "In my case I called print(). Some of the functions don't require you to give them arguments, they can even not have any of them, but there can also be functions that require even 10 arguments. Crazy isn't it?!" - "In my case, print() requires as its first and only argument some string (Read \"Type: String\" quest to know what a string is)" + "In my case, print() requires as its first and only argument some string." "Example usage of print() looks like this:" "" "> print(\"This is a test!\") -- Writes on the screen --> This is a test!" @@ -1245,7 +1281,11 @@ "" "For more information about functions and how to create them, check Lua Basics #2." ] - dependencies: ["29C780353E7FB720"] + dependencies: [ + "29C780353E7FB720" + "32E1201F35F1A394" + ] + hide: true min_width: 450 id: "7B00ECCC48DA0445" tasks: [{ @@ -1257,9 +1297,8 @@ { title: "Type: String" icon: "computercraft:printed_page" - disable_toast: true - x: 7.35d - y: -4.8d + x: 4.5d + y: -5.4d subtitle: "Lua Basics #1 - Variable types" description: [ "String is a type of variable that stores a sequence of characters. You can type here anything, binary code (Binary - Code using ones and zeros), your name, entire address or your homework if you so desire." @@ -1287,7 +1326,11 @@ "" "There is also a few different ways to modify your strings and to format them, however those aren't as useful and can be found in Lua docs." ] - dependencies: ["29C780353E7FB720"] + dependencies: [ + "29C780353E7FB720" + "56800F53C736541F" + ] + hide: true min_width: 400 id: "32B8B586F03321A7" tasks: [{ @@ -1325,7 +1368,11 @@ "" "Unfortunately Lua doesn't support anything else than those 4 basic operators. If you want to do anything else you will need to write the function yourself. For creating functions check out Function type in Lua Basics #1" ] - dependencies: ["29C780353E7FB720"] + dependencies: [ + "29C780353E7FB720" + "32D28AB681CE8601" + ] + hide: true min_width: 400 id: "08E925A9223FC1BF" tasks: [{ @@ -1367,6 +1414,7 @@ "Dev Note: Remember to check this out later on and think if you didn't forget anything important ^^\"" ] dependencies: ["29C780353E7FB720"] + hide: true min_width: 400 id: "0944D4C1A4E3C8F3" tasks: [{ @@ -1447,6 +1495,7 @@ "TODO: Link to the site with convert Functions" ] dependencies: ["29C780353E7FB720"] + hide: true min_width: 375 id: "356E3B812A576EF7" tasks: [{ @@ -1472,7 +1521,11 @@ "" "Some functions will return nil when they don't find anything you asked for." ] - dependencies: ["29C780353E7FB720"] + dependencies: [ + "29C780353E7FB720" + "01B3465E67E41884" + ] + hide: true min_width: 400 id: "1BFF3074E9708917" tasks: [{ @@ -1725,6 +1778,8 @@ "> else" "> print(\"None of condition were meet.\")" "> end" + "" + "Note: The brackets in IF condition are optional, Lua doesn't care if condition is in brackets or not, but its pretty convenient in longer conditions to add them." ] dependencies: ["5056B0737A8A8D64"] hide: true From 5a630a38b669ca7883606c37cffeabda67e65ca9 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Wed, 13 Jul 2022 10:49:39 +0200 Subject: [PATCH 30/53] Fixed Table Type being visible Also changed few little things in IF quest --- .../quests/chapters/computercraft_tweaked.snbt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index bd9b7844ec..711767537d 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -1188,7 +1188,7 @@ "" "To create a table, its pretty simple, you just use \"\\{\\}\" for any variable's value." "" - "> local my_first_table = \\{\\} -- Create a relation to that table, for now its empty." + "> local my_first_table = \\{\\} -- Create a relation with name my_first_table to that table , for now its empty." "" "Table is an array, that means it can store multiple variables inside of it, and all of them can be accessed with just one name. However in tables, those variables are called \"entries\". Every entry has its own Key and its value. Similiarly to a variable, but its in group!" "To read/write to some entry, you need to use its key in the brackets next to the table, like this:" @@ -1204,9 +1204,9 @@ "It the similiar way you use APIs, but complete guide on that will be later on." "Note: a.x and a[x] isn't the same! x in first case is a string, not a variable like in second one!" "" - "Lua defaults empty entries to nil, and you can set non-empty ones to nil to clear them. Tables aren't fixed, if there will be no more relations to it, it will be deleted from the memory. To delete a table completly, set every variable that has copy of that table to nil." + "Lua defaults empty entries to nil, and you can set non-empty ones to nil to clear them. Tables aren't fixed, if there will be no more relations to it, it will be deleted from the memory. To delete a table completly, set every variable that has relation to that table to nil." "" - "Important note is that Lua doesn't return tables starting at key 0, like most of the languages do, Lua returns tables with key 1 and going up. You can do table starting at key 0 manually, but its not recommended if you aren't gonna use negative numbers." + "Important note is that Lua doesn't return tables starting at key 0, like most of the languages do, Lua returns tables with key 1 and up. You can do table starting at key 0 manually, but its not recommended unless you are gonna use negative numbers." "" "To learn more about tables if needed, check out Lua docs!" ] @@ -1214,6 +1214,7 @@ "29C780353E7FB720" "20F5794B8753B648" ] + hide: true min_width: 500 id: "152F6E8D35D2069A" tasks: [{ @@ -1763,10 +1764,12 @@ "There are operators that make it possible to combine multiple operators:" "" "● \"and\" -> this operator returns its first argument if it is false, otherwise, it returns its second argument (Example:" - "> 6 > 5 and 6 < 5 -- First argument is true, so it returns the second one that is false)" + "> (6 > 5 and 6 < 5) -- First argument is true, so it returns the second one that is false)" "● \"or\" -> returns its first argument if it is not false; otherwise, it returns its second argument." "● \"not\" -> it reverts what it gots, so if it gets true, it will return false and vice versa." "" + "Important to note is that \"false\" and \"nil\" are both in Lua recognized as false. " + "" "After you make your decision requirement, you just need to add code that is gonna be executed if condition is meet. At the end you add \"end\"." "" "There is also \"else\" and \"elseif\" commands, that allow you to execute code if conditions aren't meet, or check another condition if first wasn't meet. You use just one \"end\" at the end of entire \"if\"! Example:" From 1fa0cbb6192a56888b17d166472cc14412f5bab5 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Wed, 13 Jul 2022 11:30:16 +0200 Subject: [PATCH 31/53] Tasks Update Finished IF practice ReDo Function Practice Added note that at the end of every task there will be link to a program that resolves that task! --- .../chapters/computercraft_tweaked.snbt | 45 +++++++++++++------ 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 711767537d..4a6533a61c 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -1459,9 +1459,11 @@ shape: "octagon" subtitle: "Lua Basics - Coding practice" description: [ - "Here are a few easy tasks that will show you simple programs, to teach you practically how to do some stuff." + "Here are a few easy tasks that will show you how to do simple programs, to teach you practically how to do some stuff." "" "More tasks will get unlocked, the more you advance in Lua Basics! It's recommended to do them as soon as possible, so you will practice stuff you learned as you go :D" + "" + "Note that at the end of every quests you willl recive link to a program that will showcase working program for that task." ] dependencies: [ "2D79E4D126EE389E" @@ -1707,6 +1709,8 @@ "> delete *file or directory* -- Deletes file or directory" "> edit -- Runs edit program. This is code editor we will use to code!" "> help *program* -- Most useful program on your computer. Gives more detailed information about specified program." + "" + "If you have any problem with some program, use help command!" ] dependencies: ["2D79E4D126EE389E"] size: 1.5d @@ -1804,20 +1808,28 @@ "Lets create our first functions!" "This program will use your own functions to execute code multiple times later on." "" - "Lets start with the stuff from last task. Create 5 variables, 3 of them will be numbers and 2 strings. What is their value is up to you." - "Lets create a function, that will have 2 arguments. It needs to add those arguments, print \"Sum of arguments equals: \" with a sum at the end, and return the sum." - "Now lets create another function, that will take three arguments. First argument will be divided by the second argument, and added at the end of the third one. Return the entire string you got." - "Now lets create another variable and call second function as its value. First argument will be our 1st function, with two of the number variables as its arguments, for second argument set third number argument, and for the last one, one of the strings." - "Lastly lets get what our function returned, add at the end our second string and print it!" + "● Lets start with the stuff from last task. Create 5 variables, 3 of them will be numbers and 2 strings. What is their value is up to you." + "" + "● Now lets create our function. It will have 2 arguments and it will add them together. Print \"Sum of arguments equals: \" with a sum of the arguments at the end, and also return it." + "" + "● Create another function with 3 arguments. Lets call our first function here, and give it as arguments our first two function's variables. Now divide the sum you got by third argument and return the results." + "" + "● Create our third, last function, without arguments. Call our second function here as value of newly created variable, and give it our three number variables as arguments. Next add one of the string variables at the end of the other, and do the same with what you got from function and your new string. Print it!" + "" + "● At last, call our third function five times and see what happens." + "" + "If done correctly you should see one line on the screen with \"Sum of the arguments equals: \" and sum of your two numbers, and second line with your two strings and result of 2nd function. This pattern should be visible 5 times." + "" + "Tip: You don't need to do new variable in 2nd and 3rd step! In 2nd step you can divide in return command, and in 3rd step, you can add both strings and what function returns in one line in print argument!" "" - "If done correctly you should see one line on the screen with \"Sum of the arguemnts equals: \" and sum of numbers you put into the function, and second line with one of your strings, a sum of first two numbers divided by third one and your second string at the end." + "> print(string_1 .. string_2 .. function_2(number_1,number_2,number_3)) -- Prints string_1, string_2 and what function_2 returns." ] dependencies: [ "5E591D65A5014852" "0C2F459BCB9222EC" ] hide: true - min_width: 400 + min_width: 425 id: "7A434175E2B1AE04" tasks: [ { @@ -1853,15 +1865,20 @@ icon: "thermal:wrench" x: -1.0d y: -7.0d - subtitle: "Practice: Creating Conditions [WIP]" + subtitle: "Practice: Creating conditions" description: [ - "Is 6 higher than 2+3? Is \"E6\" the same as \"e6\"? What to do if something?" + "Is 6 higher than 2+3? Is \"E6\" the same as \"e6\"? What to do if so?" "In this task we will create our first conditions, that will for sure let us know what is what!" "" - "Lets start with creating few variables, get 4 numbers and 2 strings, with something similiar like \"Enigmatica 6\" and \"enigmatica 8\"." - "Lets create our first condition. Check if first number variable is higher than second one, if so print \"Its bigger!\", if not print \"Its smaller!\"." - "Second condition will be more advanced, lets get sum of our first and second number, and check if its higher or equal to the third one OR if its equal to the fourth one. If condition is meet, print first string, if not, check if first string is the same as second string, if it is, print \"They are the same!\", but if not, change second string to be the same as first, and print \"They weren't the same, but they are now\"." + "● Lets start with creating few variables, get 4 numbers and 2 strings, with something similiar like \"Enigmatica 6\" and \"enigmatica 8\"." + "" + "● Now lets create our first condition. Check if first number variable is higher than second one, if so print \"Its bigger!\", if not print \"Its smaller!\"." + "" + "● Second condition will be more advanced, lets get sum of our first and second number, and check if its higher or equal to the third one OR if its equal to the fourth one." + "If condition is meet, print first string, if not, check if first string is the same as second string, if it is, print \"They are the same!\", but if not, change second string to be the same as first, and print \"They weren't the same, but they are now\"." + "" "If done correctly you should get no errors, and get good outputs that agree with instructions written in this quest:" + "" "If first condition is meet, you should see \"Its bigger!\", if not \"Its smaller!\"" "If second condition is meet, you should see what you wrote in your first string, if not, you should see either \"They are the same!\" or \"They weren't the same, but they are now.\" if your strings weren't identical." "" @@ -1872,7 +1889,7 @@ "76DA4E58186F04A0" ] hide: true - min_width: 400 + min_width: 425 id: "788EAA0E430DA5C3" tasks: [{ id: "783230BC86FE4A38" From 73ddf964db5286d7a89379f4b8226231f71c1533 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Thu, 14 Jul 2022 13:21:23 +0200 Subject: [PATCH 32/53] Lua Basics Progress Added Lua Basics 4.1 - Loops Added empty for now Lua Basics 4.2 - for loop types Added empty for now Lua Basics 5 - Usage of APIs and Peripherals Added new empty task Changed few things in tasks --- .../chapters/computercraft_tweaked.snbt | 96 ++++++++++++++++++- 1 file changed, 92 insertions(+), 4 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 4a6533a61c..601e208862 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -1749,7 +1749,7 @@ title: "If this is equal 0, then true!" icon: "computercraft:printed_pages" x: 9.0d - y: -0.5d + y: 0.0d subtitle: "Lua Basics #3 - Creating conditions with IF" description: [ "\"if\" is another one of the most important things in coding. Without it we wouldn't be able to create any decisions! \"if\" is used to check if a variable is equal, bigger, smaller etc than another variable / value." @@ -1790,7 +1790,7 @@ ] dependencies: ["5056B0737A8A8D64"] hide: true - min_width: 450 + min_width: 500 id: "6DF4A8FB92121573" tasks: [{ id: "76DA4E58186F04A0" @@ -1810,7 +1810,7 @@ "" "● Lets start with the stuff from last task. Create 5 variables, 3 of them will be numbers and 2 strings. What is their value is up to you." "" - "● Now lets create our function. It will have 2 arguments and it will add them together. Print \"Sum of arguments equals: \" with a sum of the arguments at the end, and also return it." + "● Now lets create our function. It will have 2 arguments and it needs to add them together. Print \"Sum of arguments equals: \" with a sum of the arguments at the end, and also return it." "" "● Create another function with 3 arguments. Lets call our first function here, and give it as arguments our first two function's variables. Now divide the sum you got by third argument and return the results." "" @@ -1863,7 +1863,7 @@ { title: "Is 6 higher than 8?" icon: "thermal:wrench" - x: -1.0d + x: -1.5d y: -7.0d subtitle: "Practice: Creating conditions" description: [ @@ -1897,5 +1897,93 @@ title: "Got it working!" }] } + { + title: "Loops... loops everywhere" + icon: "computercraft:printed_pages" + x: 8.5d + y: 2.0d + subtitle: "Lua Basics #4.1 - Loops" + description: [ + "Loops are used to execute your code how many times you want. You don't need to write a function and call it 200 times for your program to do something 200 times anymore!" + "You use your loops in really similiar way to if: You use first command with condition of the loop, and \"end\" at the end of the code it executes. There is few different types of loops:" + "" + "> while true do ... end " + "" + "● This loop is just combination of \"if\" and a loop. It executes its code as long as some condition is true. In our example our condition is just \"true\", so this loop will go forever." + "" + "> for i = 0, 10, 1 do ... end" + "" + "● This loop executes its code for specified amount of times. Its a bit more complicated than \"while\"." + "" + "● First argument is a variable that is used for loops condition. As with functions, this variable is temporary, its only available inside of the loop and is gone in any other place in the code." + "Note: You can create that variable without use of \"local\" function as in example. Also you can give it value of different variable that has been created outside of the loop." + "" + "● Second argument is your loop's condition. You don't create it as \"if\" condition however, you just put in number that variable needs to get to. In our example variable \"i\" needs to be equal 10 for loop to finish its work." + "" + "● Third argument is incrementation of that variable. That means by how much a variable needs to change. In our example we used 1, so our variable will increase by one with every run of the loop. You can also use negative numbers to make a loop that will decrease its variable." + "" + "Important note is that your incrementation needs to be able to get your variable to condition number! If Lua realises that its not possible, it will not execute the code even once. " + "" + "> for i = 10, 1, 1 do ... end" + "Incrementation is increasing a variable, but it needs to decrease to meat the condition. Lua will not execute the code even once!" + "" + "Both of these loops are able to do similar things with some trickery, but its more convenient to use one type over another in some situations." + "There are also two another types of \"for\" loop, but those are more complicated than these and they are worth their own quest. Check out Lua Basics #4.2 for how to use them." + ] + dependencies: ["6DF4A8FB92121573"] + hide: true + min_width: 500 + id: "3313C6D952FB8B0C" + tasks: [{ + id: "53BDD82960AF5FAF" + type: "checkmark" + title: "Got it!" + }] + } + { + title: "Different types of \"for\"" + icon: "computercraft:printed_page" + x: 7.0d + y: 1.0d + subtitle: "Lua basics #4.2 - Types of for loop" + description: ["To do: Learn exactly what is difference in pairs and ipairs and then do that quest :P"] + dependencies: ["3313C6D952FB8B0C"] + min_width: 450 + id: "2E2E7D1F4001A9F3" + tasks: [{ + id: "1C78AA75C0095B23" + type: "checkmark" + title: "Got it!" + }] + } + { + title: "But can I watch youtube in game?" + icon: "computercraft:printed_pages" + x: 7.5d + y: 3.5d + subtitle: "Lua Basics #5 - Usage of APIs and Peripherals" + description: ["To do: Fix peripherals section so this quest makes sense"] + dependencies: ["3313C6D952FB8B0C"] + hide: true + id: "1F7736775BFEA643" + tasks: [{ + id: "6F651FA6C015CA4A" + type: "checkmark" + title: "Got it!" + }] + } + { + title: "Lets loop some stuff" + icon: "thermal:wrench" + x: -0.5d + y: -8.0d + subtitle: "Coding practice: Loops" + id: "3AA1096DA1C0287E" + tasks: [{ + id: "00AAF998FF0416A3" + type: "checkmark" + title: "Got it working!" + }] + } ] } From 2b6a5b65f56ca2199047c3c9a8d095c17a128628 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Sat, 16 Jul 2022 16:03:58 +0200 Subject: [PATCH 33/53] Lua basisc 4.x loops done Some twekas for 4.1 with while and for Added quest 4.2 for pairs() and ipairs() --- .../chapters/computercraft_tweaked.snbt | 35 ++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 601e208862..790de66c85 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -1905,7 +1905,7 @@ subtitle: "Lua Basics #4.1 - Loops" description: [ "Loops are used to execute your code how many times you want. You don't need to write a function and call it 200 times for your program to do something 200 times anymore!" - "You use your loops in really similiar way to if: You use first command with condition of the loop, and \"end\" at the end of the code it executes. There is few different types of loops:" + "You use your loops in really similiar way to if: You use loop command with a condition, and you write \"end\" at the end of the code it executes. There is few different types of loops:" "" "> while true do ... end " "" @@ -1916,9 +1916,9 @@ "● This loop executes its code for specified amount of times. Its a bit more complicated than \"while\"." "" "● First argument is a variable that is used for loops condition. As with functions, this variable is temporary, its only available inside of the loop and is gone in any other place in the code." - "Note: You can create that variable without use of \"local\" function as in example. Also you can give it value of different variable that has been created outside of the loop." + "Note: You can create that variable without use of a \"local\" function as in example. Also you can give it a value of different variable that has been created outside of the loop." "" - "● Second argument is your loop's condition. You don't create it as \"if\" condition however, you just put in number that variable needs to get to. In our example variable \"i\" needs to be equal 10 for loop to finish its work." + " ● Second argument is your loop condition. You don't create it as \"if\" condition however, you just put in number that variable needs to get to. In our example variable \"i\" needs to be equal 10 for loop to finish its work." "" "● Third argument is incrementation of that variable. That means by how much a variable needs to change. In our example we used 1, so our variable will increase by one with every run of the loop. You can also use negative numbers to make a loop that will decrease its variable." "" @@ -1946,7 +1946,34 @@ x: 7.0d y: 1.0d subtitle: "Lua basics #4.2 - Types of for loop" - description: ["To do: Learn exactly what is difference in pairs and ipairs and then do that quest :P"] + description: [ + "Did you wonder how you can check every place in a table with a loop? With pairs() and ipairs() its now possible!" + "Those are two additional types of \"for\" loop, that will run the loop as many times as you have keys in your table. They are really useful for checking every entry in a table." + "" + "> for key, value in pairs(table) do ... end" + "" + "● pairs() loop will return your key and its value as variables you can use inside of the loop. It doesn't care if a key is a string or a number, it will give whatever your table contains. Note that it will not sort anything, and sometimes can give results in random sequence, so if your code requires entries to be processed in specified order, use ipairs() loop!" + "" + "> for key, value in ipairs(table) do ... end" + "" + "● ipairs() are returning only entries with a numeric key, in order from the lowest to the highest number. It is useful when you need to sort your table from non-numeric keys, or when you need table entries in specified order." + "" + "Here is the example! First lets create a table. Our one will contain Enigmatica modpacks:" + "" + "> local table_a = \\{\\}" + "> table_a[1], table_a[2], table_a[3] = \"E2\", \"E6\", \"E8\" -- Non-expert have numeric keys" + "> table_a[\"1_expert\"], table_a[\"2_expert\"] =\"E2E\", \"E6E\" -- Expert have string keys" + "" + "> for key, value in pairs(table_a) do" + "> print(value) end" + "● Prints value of every key in a table, so in our case every Enigmatica modpack!" + "" + "> for key, value in ipairs(table_a) do" + "> print(value) end" + "● Prints only numeric keys, so in our case non-expert versions of Enigmatica modpacks!" + "" + "Tip: You can add \"end\" after a command in the same line, its not always recommended, but for short loops / condition / functions its really useful for saving space." + ] dependencies: ["3313C6D952FB8B0C"] min_width: 450 id: "2E2E7D1F4001A9F3" From 0a2560586b62f422b92f8a25f4bc9606422188ba Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Sat, 16 Jul 2022 16:14:39 +0200 Subject: [PATCH 34/53] Little tweaks for 4.2 --- config/ftbquests/quests/chapters/computercraft_tweaked.snbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 790de66c85..d8260d5e4c 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -1947,7 +1947,7 @@ y: 1.0d subtitle: "Lua basics #4.2 - Types of for loop" description: [ - "Did you wonder how you can check every place in a table with a loop? With pairs() and ipairs() its now possible!" + "Did you wonder how you can check every place in a table with a loop? With pairs() and ipairs() it is now possible!" "Those are two additional types of \"for\" loop, that will run the loop as many times as you have keys in your table. They are really useful for checking every entry in a table." "" "> for key, value in pairs(table) do ... end" @@ -1956,7 +1956,7 @@ "" "> for key, value in ipairs(table) do ... end" "" - "● ipairs() are returning only entries with a numeric key, in order from the lowest to the highest number. It is useful when you need to sort your table from non-numeric keys, or when you need table entries in specified order." + "● ipairs() are returning only entries with a numeric key, in order from the lowest to the highest number. It is useful when you need to sort your table from non-numeric keys, or when you need table entries in specified order. Note that ipairs are checking entire table every run of the loop, so it will be (much) slower than pairs() loop." "" "Here is the example! First lets create a table. Our one will contain Enigmatica modpacks:" "" From 9e59e17dbaf5eb80fdada6bf7aec395f88dd54af Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Thu, 21 Jul 2022 09:40:09 +0200 Subject: [PATCH 35/53] Batch of fixes and start of 5.1 Added Lua basics 5.1 - Introduction to API Changed a lot of quests to be visible after dependencies are done. Added Note with stuff that is done and stuff I need to redo. A lot of fixes and lifting of existing quests --- .../chapters/computercraft_tweaked.snbt | 94 ++++++++++++------- 1 file changed, 61 insertions(+), 33 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index d8260d5e4c..d4b4710260 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -80,7 +80,10 @@ "" "This section will show you all peripherals available and how to use their APIs." ] - dependencies: ["2D79E4D126EE389E"] + dependencies: [ + "2D79E4D126EE389E" + "6F651FA6C015CA4A" + ] hide: true size: 1.25d id: "378BEFB62C4F98BF" @@ -1194,14 +1197,14 @@ "To read/write to some entry, you need to use its key in the brackets next to the table, like this:" "" "> my_first_table[1] = \"Hello\"" - "> print my_first_table[1] -> Prints \"Hello\"" + "> print (my_first_table[1]) -> Prints \"Hello\"" "" "In tables, you can store nearly anything, string, function, even another list! If you have list of the functions its API, and in that way you can create your own simple API. " "If your key is a string, you can skip the brackets and just use the string name with a dot to get to that entry:" "" "> my_first_table.hello = \"Hello again\"" "" - "It the similiar way you use APIs, but complete guide on that will be later on." + "In the similar way you use APIs, but complete guide on that will be later on." "Note: a.x and a[x] isn't the same! x in first case is a string, not a variable like in second one!" "" "Lua defaults empty entries to nil, and you can set non-empty ones to nil to clear them. Tables aren't fixed, if there will be no more relations to it, it will be deleted from the memory. To delete a table completly, set every variable that has relation to that table to nil." @@ -1443,6 +1446,8 @@ "PS: For anyone that sees this. If you have any idea for quest requiremt for completion or better icon, I would aprreciate that ^^\"" "" "And about lua basics. I'm planing to add few more quests, talking about loops, function IF and searching for functions at wikis etc. Shouldn't be more than 10 quests (without those ones that have Variables Types) for entire Lua Basics" + "" + "Note: Lua Basics #6 is gonna be the last Lua basics I'm pretty sure about that :D (if. I didn't forget about something that is required)" ] min_width: 350 id: "422379AAF05456FC" @@ -1602,7 +1607,7 @@ "It's time. We are gonna actually code something!" "The program we will create, will use the print() function to write some variable's values on the screen after we modify them." "" - "● First thing we need to do, is to create 2 strings, 2 numbers, a boolean and nil variable. Name for each of them is up to you." + "● First thing we need to do, is to create 2 strings, 2 numbers, a boolean and nil variable. Name and value for each of them is up to you." "" "● Now let's use the print() function to write some text on the screen. However first, we will add one of those strings to the end of the other. Now we can print what we got." "" @@ -1668,28 +1673,6 @@ title: "I think about giving here one of the scavenging bags. What do you think?" }] } - { - x: 0.5d - y: 6.0d - description: [ - "Progression visibility:" - "Introduction to Lua / Advanced PC \\& Pocket PC / Wikis - Stage 0" - "Introduction to Lua unlocks Tasks and Lua Basics 1 with its types" - "Finishing every Lua Basics #1 Unlocks Lua Basics #2 and first task." - "Finishing Task #1 unlocks coding tips" - "Lua Basics #2 unlocks Lua Basics #3 and Task #2." - "Lua Basics #3 Unlocks #4 and Task #3, as well as all Peripherals" - "And it goes like that until last Lua Basic quest and Task, what unlocks challenges!" - ] - min_width: 500 - id: "3FBB6584FA19A1D9" - tasks: [{ - id: "4A951C0D263C371E" - type: "custom" - title: "Note 2" - icon: "computercraft:printed_book" - }] - } { title: "How to use your Computer" icon: "computercraft:computer_normal" @@ -1765,7 +1748,7 @@ "● \">\" and \"<\" -> Checks if 1st variable is bigger / lower than 2nd one (Only numbers)." "● \">=\" and \"<=\" -> Checks if 1st variable is bigger / lower than 2nd one or if variables are equal (Only numbers)." "" - "There are operators that make it possible to combine multiple operators:" + "There are also operators that make it possible to combine multiple conditions into one:" "" "● \"and\" -> this operator returns its first argument if it is false, otherwise, it returns its second argument (Example:" "> (6 > 5 and 6 < 5) -- First argument is true, so it returns the second one that is false)" @@ -1879,10 +1862,12 @@ "" "If done correctly you should get no errors, and get good outputs that agree with instructions written in this quest:" "" - "If first condition is meet, you should see \"Its bigger!\", if not \"Its smaller!\"" - "If second condition is meet, you should see what you wrote in your first string, if not, you should see either \"They are the same!\" or \"They weren't the same, but they are now.\" if your strings weren't identical." + "● If first condition is meet, you should see \"Its bigger!\", if not \"Its smaller!\"" + "● If second condition is meet, you should see what you wrote in your first string, if not, you should see either \"They are the same!\" or \"They weren't the same, but they are now.\" if your strings weren't identical." "" "Now if your code works, you can experiment a bit and see how the output changes with different inputs. Have fun!" + "" + "Note from creator: I know those conditions doesn't have much sense, but they are done for you to practice \"elseif\" and \"else\" functions!" ] dependencies: [ "7A434175E2B1AE04" @@ -1956,7 +1941,7 @@ "" "> for key, value in ipairs(table) do ... end" "" - "● ipairs() are returning only entries with a numeric key, in order from the lowest to the highest number. It is useful when you need to sort your table from non-numeric keys, or when you need table entries in specified order. Note that ipairs are checking entire table every run of the loop, so it will be (much) slower than pairs() loop." + "● ipairs() are returning only entries with a numeric key, in order from the lowest to the highest number. It is useful when you need to sort your table from non-numeric keys, or when you need table entries in specified order. Beware that ipairs doesn't work with keys under 1 are checking entire table every run of the loop, so it will be (much) slower than pairs() loop." "" "Here is the example! First lets create a table. Our one will contain Enigmatica modpacks:" "" @@ -1975,6 +1960,7 @@ "Tip: You can add \"end\" after a command in the same line, its not always recommended, but for short loops / condition / functions its really useful for saving space." ] dependencies: ["3313C6D952FB8B0C"] + hide: true min_width: 450 id: "2E2E7D1F4001A9F3" tasks: [{ @@ -1988,10 +1974,24 @@ icon: "computercraft:printed_pages" x: 7.5d y: 3.5d - subtitle: "Lua Basics #5 - Usage of APIs and Peripherals" - description: ["To do: Fix peripherals section so this quest makes sense"] - dependencies: ["3313C6D952FB8B0C"] + subtitle: "Lua Basics #5.1 - Introduction to APIs" + description: [ + "You may be thinking, what use have those monitors you got at the start of the questline. I mean you probably know the answer for that, but you don't know how to use them. Thats what this quest is for!" + "" + "ComputerCraft has a lot of really useful peripherals, that have their own API. What is API you already know, we will talk here only about usage." + "" + "Every API has its variable you use to interact with it. That variable is a list of functions you can access by writing its name after the name of API. Between them you add dot. List of functions for every API is in Documentation for ComputerCraft, and you search it by its name or peripheral you want to use." + "" + "> term.clear() -- This is command to clear the screen from \"term\" api." + "" + "After this quest, you will get access to \"global usage\" API for peripherals, you will see what I mean when you see it. There will be explained API for peripherals, and next quest here will be continuation from there." + ] + dependencies: [ + "3313C6D952FB8B0C" + "1C78AA75C0095B23" + ] hide: true + min_width: 450 id: "1F7736775BFEA643" tasks: [{ id: "6F651FA6C015CA4A" @@ -2012,5 +2012,33 @@ title: "Got it working!" }] } + { + title: "Note 2: What needs to be changed" + icon: "minecraft:writable_book" + x: 0.5d + y: 6.0d + description: [ + "So there is few quests that has been done before I knew in what style I'm doing those quests, and also before \"lifting\" of few things like APIs section, so here are the quests that I need to redo (and wait with redoing for Motoko)" + "" + "Entire Peripheral Section." + "Probably Function Task" + "Coding Tips" + "Documentation (links to wiki, I need to wait for Motoko for that)" + "Challenges" + "" + "What is actually done? (except few tweaks later on)" + "I think quests from Lua Basics that are here aren't gonna be touched much in the future, I can call those \"done\"" + "Few tasks I can call \"done\" as well" + "Main quest" + "Advanced and Pocket computer quest" + "How to use PC" + ] + min_width: 500 + id: "3EBF3FB9D45D8F7B" + tasks: [{ + id: "07FABF3D743D7744" + type: "custom" + }] + } ] } From 87037daa0a0fbc571e776f8f8d94a08a45f248a4 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Thu, 21 Jul 2022 10:31:51 +0200 Subject: [PATCH 36/53] A missing change from last commit --- config/ftbquests/quests/chapters/computercraft_tweaked.snbt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index d4b4710260..25392c0dd2 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -1941,7 +1941,7 @@ "" "> for key, value in ipairs(table) do ... end" "" - "● ipairs() are returning only entries with a numeric key, in order from the lowest to the highest number. It is useful when you need to sort your table from non-numeric keys, or when you need table entries in specified order. Beware that ipairs doesn't work with keys under 1 are checking entire table every run of the loop, so it will be (much) slower than pairs() loop." + "● ipairs() are returning only entries with a numeric key, in order from the lowest to the highest number. It is useful when you need to sort your table from non-numeric keys, or when you need table entries in specified order. Beware that ipairs doesn't work with keys under 1 and its checking entire table every run of the loop, so it will be (much) slower than pairs() loop." "" "Here is the example! First lets create a table. Our one will contain Enigmatica modpacks:" "" @@ -2032,6 +2032,8 @@ "Main quest" "Advanced and Pocket computer quest" "How to use PC" + "" + "Edit after a while: Nah I think actuallly that tasks require relift as well, but I'm bad at them so thats gonna take a while lmao" ] min_width: 500 id: "3EBF3FB9D45D8F7B" From a1b8dc6cb85c090d2b214ea19e16272ef5429350 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Thu, 21 Jul 2022 11:38:59 +0200 Subject: [PATCH 37/53] Peripheral section Update Change of plans. Peripheral API and few others are going to Lua Basics, APIs specific for peripherals is the only thing that is in Peripheral section. --- .../chapters/computercraft_tweaked.snbt | 126 +++++++++++++----- 1 file changed, 94 insertions(+), 32 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 25392c0dd2..43503f7afd 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -110,6 +110,7 @@ "TODO: Link to official Advanced Peripherals WIKI" ] dependencies: ["378BEFB62C4F98BF"] + hide: true id: "6AA1236C9946F569" tasks: [{ id: "56A45A4FCA54436D" @@ -324,33 +325,16 @@ }] } { - title: "About Peripherals in General" + title: "Custom Peripherals APIs" icon: "minecraft:chest" x: -7.5d y: 0.0d shape: "circle" subtitle: "Lua Basics: Peripheral API" description: [ - "In general, a Peripheral is any block you could think of. Classic Minecraft Chest or Furnace, Drawer, Mekanism Metallurgic Infuser, anything!" - "" - "In ComputerCraft: Tweaked, to use any peripheral you need to wrap / find it first. You could set it to a local variable to be able to just use name you gave it in the code." - "" - "Functions:" - "peripheral.wrap(\"#1\")" - "#1 -> side of the PC or name of the peripheral you want to wrap!" - "It returns a table with all functions for that specific peripheral. Thanks to that you can use peripheral specific commands on peripheral you just wrapped." - "" - "peripheral.find(\"#1\",\"#2\")" - "#1 -> The type of peripheral you are looking for." - "#2 -> Filter [Optional]. Requires function to work." - "It returns a table with all founded peripherals, that pass Filter requirements. Filter needs function that returns True/False for it to filter, but can also be used to run commands on every peripheral that was founded!" + "ComputerCraft: Tweaked does support as peripherals other blocks as well! Your peripheral can be nearly anything, Minecraft Chest, Mekanism Reactor, Drawer, nearly any block works!" "" - "peripheral.getName(#1)" - "#1 -> Peripheral you want to get name of." - "getName is really useful command used a lot in ComputerCraft, a lot of commands (mostly for moving stuff from one inventory to another) requires you to give them \"Name\" of the peripheral, and not a table that wrap / find gives you. This takes what wrap / find returns and gives the Name of that peripheral!" - "" - "For more information look up ComputerCraft: Tweaked Wiki!" - "TODO: Rewrite this API Usage." + "Note that some mods does have support for ComputerCraft, and in that case blocks from that mod will have their own API." ] dependencies: ["378BEFB62C4F98BF"] hide: true @@ -370,10 +354,9 @@ { title: "Inventory API" icon: "minecraft:barrel" - x: -9.5d - y: -1.0d + x: -9.0d + y: -1.5d subtitle: "Lua Basics: Global Inventory API" - description: [""] dependencies: ["55493D823F7403DA"] hide: true id: "4D55FB33758DEF7D" @@ -383,16 +366,16 @@ item: "minecraft:barrel" }] rewards: [{ - id: "76AFEDBB3D2A3334" - type: "xp" - xp: 100 + id: "0068669643494A83" + type: "custom" + title: "[Link] Docs for Inventory API" }] } { title: "Liquid API" icon: "minecraft:water_bucket" x: -9.5d - y: 0.0d + y: -0.5d subtitle: "Lua Basics: Global Liquid API" dependencies: ["55493D823F7403DA"] hide: true @@ -431,19 +414,27 @@ } }] rewards: [{ - id: "6F5EDC40C986AE57" - type: "xp" - xp: 100 + id: "69D7831BDEB0D8FA" + type: "custom" + title: "[Link] Docs for Liquid API" }] } { title: "Energy API" - icon: "mekanism:basic_energy_cube" + icon: "engineersdecor:sign_hotwire" x: -9.5d - y: 1.0d + y: 0.5d subtitle: "Lua Basics: Global Energy API" + description: [ + "This one is unfortunately really simple API, with not a lot of use. It can only read Energy capacity of some blocks." + "" + "Energy API Functions:" + "> getEnergy() -> Returns the energy stored in that peripheral" + "> getEnergyCapacity() -> Returns maximum energy capacity of peripheral" + ] dependencies: ["55493D823F7403DA"] hide: true + min_width: 450 id: "7CD446B77ACA29F7" tasks: [{ id: "0085C0BFFF01C3DD" @@ -482,6 +473,11 @@ } } }] + rewards: [{ + id: "2E4271427FAF3612" + type: "custom" + title: "[Link] Docs for Energy API" + }] } { title: "ComputerCraft Peripherals" @@ -491,6 +487,7 @@ subtitle: "Wait there is even more?" description: ["ComputerCraft: Tweaked adds a few unique peripherals on its own. Some of them aren't as useful as others, but all of them are worth to look at."] dependencies: ["378BEFB62C4F98BF"] + hide: true id: "1580D9FD06937ABB" tasks: [{ id: "4816E5D3E5C6E0D2" @@ -1985,6 +1982,8 @@ "> term.clear() -- This is command to clear the screen from \"term\" api." "" "After this quest, you will get access to \"global usage\" API for peripherals, you will see what I mean when you see it. There will be explained API for peripherals, and next quest here will be continuation from there." + "" + "PS: No, unfortunetaly even tho ComputerCraft has access to the internet, it is not possible to watch youtube in game." ] dependencies: [ "3313C6D952FB8B0C" @@ -2042,5 +2041,68 @@ type: "custom" }] } + { + title: "Mekanism API" + icon: "mekanism:alloy_atomic" + x: -9.0d + y: 1.5d + subtitle: "Lua Basics: Mekanism API" + description: [ + "Mekanism is one of those mods that have ComputerCraft: Tweaked support! However, there is so much functions for every Mekanism machine, it is not possible to explain that API here. You will need to use external Excel spreadsheet this time." + "" + "Searching for anything is fairly easy. Press \"ctrl\" + \"f\" and search for Mekanism machine you want to use. Next to every machine are functions you can use to interract with it!" + "" + "Note that this API doesn't work super well with every Mekanism machine, and there isn't a lot of explenation of what functions do, so experimenting on your own is necessary." + ] + dependencies: ["55493D823F7403DA"] + min_width: 400 + id: "43D7B585768ACD4D" + tasks: [{ + id: "12F8FAD09CCC6AB2" + type: "item" + title: "Any Mekanism Basic Material" + item: { + id: "itemfilters:or" + Count: 1b + tag: { + items: [ + { + id: "mekanism:alloy_infused" + Count: 1b + } + { + id: "mekanism:alloy_reinforced" + Count: 1b + } + { + id: "mekanism:alloy_atomic" + Count: 1b + } + { + id: "mekanism:basic_control_circuit" + Count: 1b + } + { + id: "mekanism:advanced_control_circuit" + Count: 1b + } + { + id: "mekanism:elite_control_circuit" + Count: 1b + } + { + id: "mekanism:ultimate_control_circuit" + Count: 1b + } + ] + } + } + }] + rewards: [{ + id: "600E5CAA349CFDD3" + type: "custom" + title: "Link to Mek Excel Spreadsheet" + }] + } ] } From 798c13ee1bcdfa0e12677341b3dc5733a4f449d8 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Thu, 21 Jul 2022 12:16:45 +0200 Subject: [PATCH 38/53] Global API Section update: Okay @Quezler I changed the way I'm descriping APIs, what do you think about that style :D? --- .../ftbquests/quests/chapters/automation.snbt | 2 -- .../chapters/computercraft_tweaked.snbt | 20 +++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/config/ftbquests/quests/chapters/automation.snbt b/config/ftbquests/quests/chapters/automation.snbt index b55b93bd12..0826866ea6 100644 --- a/config/ftbquests/quests/chapters/automation.snbt +++ b/config/ftbquests/quests/chapters/automation.snbt @@ -2579,8 +2579,6 @@ y: 2.5d subtitle: "A Computer within a Game within a Computer" description: [ - "Use the Lua programming language to interact with the world." - "" "With the power of computer and Lua, you can create amazing automation system. They could be massive, or compact as just one block! For more information, check out ComputerCraft: Tweaked quest line." "If you are curious what you can do with that power, after completion of that quest, you will see on the chat a link to a video that shows few projects created by Enigmatica Community!" "Unfortunately repeatable quests aren't yet implemented so the command will only run once, so be sure to save the link somewhere!" diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 43503f7afd..79b3e6b377 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -377,8 +377,28 @@ x: -9.5d y: -0.5d subtitle: "Lua Basics: Global Liquid API" + description: [ + "Liquids API is used to move liquids around in your network. It is really simple API, but it is actually useful in more complex fluid automations (like Mekanism 5x Ore Processsing)." + "" + "Fluid API Functions:" + "" + "> tanks() -> Returns a table with tanks in a peripheral. Empty ones will be \"nil\", non-empty ones will have basic information about that liquid, like Amount and Name. (Recommended to use pairs() with that table for looping)" + "" + "> pushFluid(toName [, limit [, fluidName]]) -> Move a liquid from used peripheral to another connected to the network." + "● toName: (string) -> Name of peripheral you want to move liquid to." + "● limit: (number) [Optional] -> Maximum amount of liquid to move." + "● fluidName: (string) [Optional] -> Name of the liquid you want to move! If not given, any will be taken." + "" + "> pullFluid(fromName [, limit [, fluidName]]) -> Move a liquid to used peripheral from other tank connected to the network." + "● fromName: (string) -> Name of peripheral you want to move liquid from." + "● limit: (number) [Optional] -> Maximum amount of liquid to move." + "● fluidName: (string) [Optional] -> Name of the liquid you want to move! If not given, any will be taken." + "" + "Note that if few liquids are in one peripheral, they will be moved in the order they are in the table from \"tanks()\" function!" + ] dependencies: ["55493D823F7403DA"] hide: true + min_width: 500 id: "18C25A983C4831B7" tasks: [{ id: "7C6525BE6C8CA991" From f0faf1b488942c56f57739bbee50f83e688b2ff1 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Thu, 21 Jul 2022 12:42:31 +0200 Subject: [PATCH 39/53] Challenge overhaul and few other changes Challenges are finally WIP state, old ones have been removed, and circle of 12 quests has been done. Now just ideas for them ^^" --- .../chapters/computercraft_tweaked.snbt | 510 ++++++------------ 1 file changed, 177 insertions(+), 333 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 79b3e6b377..a87b75a1c9 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -738,14 +738,16 @@ { title: "Challenges" icon: "computercraft:computer_command" - x: 2.0d - y: 4.75d + x: 0.0d + y: 8.0d shape: "gear" subtitle: "Try yourself!" description: [ - "Here are some easy challenges you could try completing to test what you learned so far. For every challenge you will get a small prize :D" + "Here are few challenges you can try to complete, they aren't required for you to do, but its really interesting way to try yourself and see how much you understood from the entire quest line!" "" - "However at the end, there are few challenges you could not be able to finish without deeper understanding of Lua, so don't care too much about those if you aren't able to finish. There are here for those handful of people that know what there are doing ^^\"" + "In the subtitle, there will be rating from 1 to 10 in terms of difficulty. Higher numbers could require from you more knowledge and / or reading Lua documentation." + "" + "After completing every quest, you will get a ComputerCraft trophy!" ] hide: true size: 1.5d @@ -763,224 +765,20 @@ }] } { - title: "Your first program!" - icon: "computercraft:printed_page" - x: 2.0d - y: 6.0d - subtitle: "Challenge #1" - description: ["Make a program that will type on the monitor every 5 seconds phrase \"My First Program!\""] - dependencies: ["777349A29491AE4C"] - hide: true - id: "7F980AC22498FE44" - tasks: [ - { - id: "194470FBF6D30D4B" - type: "checkmark" - title: "Got it working!" - } - { - id: "37AC0AFD18F38CF9" - type: "item" - title: "Computer" - item: { - id: "itemfilters:or" - Count: 1b - tag: { - items: [ - { - id: "computercraft:computer_normal" - Count: 1b - } - { - id: "computercraft:computer_advanced" - Count: 1b - } - ] - } - } - } - { - id: "131814BA2E6573DB" - type: "item" - title: "Monitor" - item: { - id: "itemfilters:or" - Count: 1b - tag: { - items: [ - { - id: "computercraft:monitor_normal" - Count: 1b - } - { - id: "computercraft:monitor_advanced" - Count: 1b - } - ] - } - } - } - ] - rewards: [{ - id: "2F6F8FDD1C50F2A4" - type: "xp" - xp: 100 - }] - } - { - title: "Item Transfer!" - icon: "mekanism:basic_mechanical_pipe" - x: 1.5d - y: 7.0d - subtitle: "Challenge #2" - description: ["Make a program that will transfer items from inventory on the left to inventory on the right."] - dependencies: ["7F980AC22498FE44"] - hide: true - id: "06A8B69F9385388B" - tasks: [ - { - id: "1DD8D1520D86E71D" - type: "checkmark" - title: "Got it working!" - } - { - id: "29E0DE505929241E" - type: "item" - title: "Computer" - item: { - id: "itemfilters:or" - Count: 1b - tag: { - items: [ - { - id: "computercraft:computer_normal" - Count: 1b - } - { - id: "computercraft:computer_advanced" - Count: 1b - } - ] - } - } - } - { - id: "5C9E09235719EFE2" - type: "item" - title: "Inventory" - item: { - id: "itemfilters:or" - Count: 1b - tag: { - items: [ - { - id: "minecraft:chest" - Count: 1b - } - { - id: "minecraft:barrel" - Count: 1b - } - ] - } - } - count: 2L - } - ] - } - { - title: "Using Peripherals to interract with RS" - icon: "refinedstorage:disk_drive" - x: -0.5d - y: 7.0d - subtitle: "Challenge #3" - description: ["Use Advanced Peripherals to export some items from RS into a chest."] - dependencies: ["06A8B69F9385388B"] - hide: true - id: "0F004D494E6114E8" - tasks: [ - { - id: "7F89261D56AFCC98" - type: "checkmark" - title: "Got it working!" - } - { - id: "6375843352BB76C2" - type: "item" - title: "Computer" - item: { - id: "itemfilters:or" - Count: 1b - tag: { - items: [ - { - id: "computercraft:computer_normal" - Count: 1b - } - { - id: "computercraft:computer_advanced" - Count: 1b - } - ] - } - } - } - { - id: "5299FCDEF5D01998" - type: "item" - item: "advancedperipherals:rs_bridge" - } - { - id: "325807DC4DDF3807" - type: "item" - title: "Inventory" - item: { - id: "itemfilters:or" - Count: 1b - tag: { - items: [ - { - id: "minecraft:chest" - Count: 1b - } - { - id: "minecraft:barrel" - Count: 1b - } - ] - } - } - } - ] - rewards: [ - { - id: "09A23C581CD60BAE" - type: "item" - item: "refinedstorage:cable" - count: 8 - } - { - id: "3F3E6C99F3DCDB19" - type: "item" - item: "refinedstorage:exporter" - } - ] - } - { - title: "Coding Tips" + title: "Better Code Editor" icon: "create:wrench" x: 3.125d y: 0.0d shape: "gear" subtitle: "Enough of in-game coding? There is a solution!" description: [ - "I think after a while of editing in game, you know it's really annoying to use it, but don't worry fellow player, you don't need to use it anymore!" + "After a while of editing in game, you probably realized it's really annoying to use in game editor, but don't worry fellow player, you don't need to anymore!" + "" + "You can upload files from your real computer into the in-game PC! You just have to create a file on your desktop, rename it onto [your_name].lua and you can start coding. After you finished, you just drag \\& drop it into in-game Computer and run it. Simple as that!" "" - "You can just drag \\& drop files into minecraft itself!" - "You just have to create a file on your desktop, code in it and rename it onto [your_name].lua, drop it into in-game Computer and run it. It's that easy ^^" + "Note that file will be uploaded to a directory you are currently in, and if file with that name exists it will be over written!" "" - "If you want to have proper Lua support and checking, you can install Visual Studio Code and ComputerCraft: Tweaked Plugin for full ComputerCraft Lua support! Link to that Plugin is in wiki of that quest" - "TODO: some sort of link to CC: Tweaked Plugin for Visual Studio Code and mention of the Directiories etc" + "There is also an addon for Visual Studio Code, that adds ComputerCraft support in Lua Language. Link to that is as the quest reward." ] dependencies: [ "2D79E4D126EE389E" @@ -988,19 +786,25 @@ ] hide: true size: 1.25d - min_width: 275 + min_width: 450 id: "5D796A237D7164E5" tasks: [{ - id: "77723B672ED12F16" - type: "item" - item: "emendatusenigmatica:iron_gear" - consume_items: true - }] - rewards: [{ - id: "2545BD1A22D53A17" - type: "custom" - title: "Links to Wikis [Not working yet]" + id: "4B61C4F20F5B7F7F" + type: "checkmark" + title: "Got it!" }] + rewards: [ + { + id: "3E9A7C4F18826645" + type: "custom" + title: "[Link] Video showcasing drag \\& drop functionality" + } + { + id: "730F57D0F4965145" + type: "custom" + title: "[Link] Visual Studio Code ComputerCraft addon" + } + ] } { title: "Introduction to Lua" @@ -1043,111 +847,6 @@ } ] } - { - title: "Modem action!" - icon: "computercraft:wired_modem_full" - x: 0.5d - y: 7.0d - subtitle: "Challenge #4" - description: ["Use a wired Modem to interract with barrel, and print on the monitor list of items in it."] - dependencies: ["0F004D494E6114E8"] - hide: true - id: "44A7E0342E80526D" - tasks: [ - { - id: "0F44049652DDBB03" - type: "checkmark" - title: "Got it working!" - } - { - id: "2A24265C5169E9C8" - type: "item" - title: "Computer" - item: { - id: "itemfilters:or" - Count: 1b - tag: { - items: [ - { - id: "computercraft:computer_normal" - Count: 1b - } - { - id: "computercraft:computer_advanced" - Count: 1b - } - ] - } - } - } - { - id: "7466E2D8E41A02F5" - type: "item" - item: "minecraft:barrel" - } - { - id: "7141C9C70784F055" - type: "item" - title: "Wired Modem" - item: { - id: "itemfilters:or" - Count: 1b - tag: { - items: [ - { - id: "computercraft:wired_modem" - Count: 1b - } - { - id: "computercraft:wired_modem_full" - Count: 1b - } - ] - } - } - count: 2L - } - { - id: "3BAA23CEA19F1FC1" - type: "item" - item: "computercraft:cable" - count: 8L - } - ] - rewards: [ - { - id: "673964E9361F0DF7" - type: "item" - item: "computercraft:wired_modem_full" - count: 2 - } - { - id: "5A2D6DA14896628E" - type: "item" - item: "computercraft:cable" - count: 16 - } - ] - } - { - title: "Wireless communications!" - icon: "computercraft:wireless_modem_normal" - x: 1.0d - y: 8.0d - subtitle: "Challenge #4.2" - description: [ - "" - "TODO: Learn actually how to use Wireless modems in they intended use, then do that challenge" - ] - dependencies: ["44A7E0342E80526D"] - hide: true - id: "70C1723A18F89BD9" - tasks: [{ - id: "0F69F5424C241DC3" - type: "checkmark" - title: "Got it working!" - }] - } { title: "Variables and their types" icon: "computercraft:printed_pages" @@ -1451,8 +1150,8 @@ } { icon: "minecraft:writable_book" - x: -0.5d - y: 6.0d + x: -2.5d + y: 4.0d description: [ "Challenges are gonna change a lot. Those that are here right now, are gonna be in new section: Tasks! It will give a tutorial how to do a program so people can see how to write code" "" @@ -2034,8 +1733,8 @@ { title: "Note 2: What needs to be changed" icon: "minecraft:writable_book" - x: 0.5d - y: 6.0d + x: -3.5d + y: 3.0d description: [ "So there is few quests that has been done before I knew in what style I'm doing those quests, and also before \"lifting\" of few things like APIs section, so here are the quests that I need to redo (and wait with redoing for Motoko)" "" @@ -2124,5 +1823,150 @@ title: "Link to Mek Excel Spreadsheet" }] } + { + x: 0.0d + y: 5.5d + dependencies: ["777349A29491AE4C"] + optional: true + id: "135B6776BF6F126B" + tasks: [{ + id: "46F7C63A84FCD2DF" + type: "checkmark" + title: "Got it working!" + }] + } + { + x: 1.0d + y: 6.0d + dependencies: ["777349A29491AE4C"] + optional: true + id: "7E025BDCF46C877D" + tasks: [{ + id: "5AC427F2D046E5B2" + type: "checkmark" + title: "Got it working!" + }] + } + { + x: 2.0d + y: 7.0d + dependencies: ["777349A29491AE4C"] + optional: true + id: "5C1BEEB39675EBA9" + tasks: [{ + id: "7643C5D7C66E4A63" + type: "checkmark" + title: "Got it working!" + }] + } + { + x: 2.5d + y: 8.0d + dependencies: ["777349A29491AE4C"] + dependency_requirement: "one_completed" + optional: true + id: "53FA451058F778D9" + tasks: [{ + id: "6AF4B8CAC3F680BF" + type: "checkmark" + title: "Got it working!" + }] + } + { + x: 1.0d + y: 10.0d + dependencies: ["777349A29491AE4C"] + optional: true + id: "2CE39378CBB272DB" + tasks: [{ + id: "72C8EE047CBEAF4F" + type: "checkmark" + title: "Got it working!" + }] + } + { + x: 0.0d + y: 10.5d + dependencies: ["777349A29491AE4C"] + optional: true + id: "2A377B74D184444B" + tasks: [{ + id: "2BC79AB3D3C44429" + type: "checkmark" + title: "Got it working!" + }] + } + { + x: -1.0d + y: 10.0d + dependencies: ["777349A29491AE4C"] + optional: true + id: "60425E956BBF01D9" + tasks: [{ + id: "33AC70C1007ACEDB" + type: "checkmark" + title: "Got it working!" + }] + } + { + x: -2.0d + y: 9.0d + dependencies: ["777349A29491AE4C"] + optional: true + id: "6489F0478C60B861" + tasks: [{ + id: "1E890F7E7EDF4B4C" + type: "checkmark" + title: "Got it working!" + }] + } + { + x: -2.5d + y: 8.0d + dependencies: ["777349A29491AE4C"] + optional: true + id: "0A8C43D4B5B6C62C" + tasks: [{ + id: "642DECEBBDE65908" + type: "checkmark" + title: "Got it working!" + }] + } + { + x: -2.0d + y: 7.0d + dependencies: ["777349A29491AE4C"] + optional: true + id: "71C88AA0BB5BE7FE" + tasks: [{ + id: "5CB1DE36311F811F" + type: "checkmark" + title: "Got it working!" + }] + } + { + x: -1.0d + y: 6.0d + dependencies: ["777349A29491AE4C"] + optional: true + id: "3F613624A3042197" + tasks: [{ + id: "0A920986118648C7" + type: "checkmark" + title: "Got it working!" + }] + } + { + x: 2.0d + y: 9.0d + dependencies: ["777349A29491AE4C"] + optional: true + id: "5754C4EA09015400" + tasks: [{ + id: "101D4E6D47ECA46A" + type: "checkmark" + title: "Got it working!" + }] + } ] } From 51149cd1d365c68a87639dc4f0730ddaf27e6f02 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Thu, 21 Jul 2022 13:14:52 +0200 Subject: [PATCH 40/53] More Little changes --- .../ftbquests/quests/chapters/automation.snbt | 2 +- .../chapters/computercraft_tweaked.snbt | 46 +++++++++++-------- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/config/ftbquests/quests/chapters/automation.snbt b/config/ftbquests/quests/chapters/automation.snbt index 0826866ea6..34e9f781ff 100644 --- a/config/ftbquests/quests/chapters/automation.snbt +++ b/config/ftbquests/quests/chapters/automation.snbt @@ -2599,7 +2599,7 @@ type: "command" title: "CC Introduction Video" icon: "pneumaticcraft:tag_filter" - command: "/tellraw @p {\"text\":\"ComputerCraft Introduction Video\",\"bold\":true,\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://google.com\"}}" + command: "/tellraw @p {\"text\":\"ComputerCraft Introduction Video[WIP]\",\"bold\":true,\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"\"}}" player_command: false }] } diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index a87b75a1c9..1aac940e4f 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -716,24 +716,19 @@ shape: "pentagon" subtitle: "Official Wikis for everything." description: [ - "If you want to learn even more, or need something that isn't here, check out these links." + "Here are the links to the Official ComputerCraft: Tweaked documentation, as well as Lua Documentation." "" - "These are official docs to the Lua Programming Language, as well as to ComputerCraft: Tweaked Wiki and Mekanism integration." - "TODO: clickable links or message on chat" + "In those documentations you can find nearly everything about anything. If you have problem with something from the quest line or you want to learn something new, this is the place to go!" ] dependencies: ["2D79E4D126EE389E"] size: 1.5d + min_width: 300 id: "508989B512DBB2A2" tasks: [{ id: "0ED4FB7A29E8557D" type: "checkmark" title: "Got it!" }] - rewards: [{ - id: "6585C24F9B348B68" - type: "xp" - xp: 100 - }] } { title: "Challenges" @@ -1105,7 +1100,7 @@ title: "Variable Tips \\& Tricks" icon: "computercraft:printed_page" x: 5.5d - y: -2.0d + y: -1.5d subtitle: "Lua Basics #1 - Variable tips \\& tricks" description: [ "Variable naming:" @@ -1150,8 +1145,8 @@ } { icon: "minecraft:writable_book" - x: -2.5d - y: 4.0d + x: -4.5d + y: 3.0d description: [ "Challenges are gonna change a lot. Those that are here right now, are gonna be in new section: Tasks! It will give a tutorial how to do a program so people can see how to write code" "" @@ -1263,6 +1258,7 @@ icon: "computercraft:printed_pages" x: 8.0d y: -2.0d + shape: "circle" subtitle: "Lua Basics #2 - Creating functions" description: [ "Creating functions is a little different and more complicated than creating a normal variable. One of the main differences is the function you use to create it. To create your own function variable, you use the \"function\" command!" @@ -1447,8 +1443,8 @@ { title: "If this is equal 0, then true!" icon: "computercraft:printed_pages" - x: 9.0d - y: 0.0d + x: 9.5d + y: -0.5d subtitle: "Lua Basics #3 - Creating conditions with IF" description: [ "\"if\" is another one of the most important things in coding. Without it we wouldn't be able to create any decisions! \"if\" is used to check if a variable is equal, bigger, smaller etc than another variable / value." @@ -1601,8 +1597,9 @@ { title: "Loops... loops everywhere" icon: "computercraft:printed_pages" - x: 8.5d + x: 10.0d y: 2.0d + shape: "diamond" subtitle: "Lua Basics #4.1 - Loops" description: [ "Loops are used to execute your code how many times you want. You don't need to write a function and call it 200 times for your program to do something 200 times anymore!" @@ -1633,6 +1630,7 @@ ] dependencies: ["6DF4A8FB92121573"] hide: true + size: 1.25d min_width: 500 id: "3313C6D952FB8B0C" tasks: [{ @@ -1644,8 +1642,8 @@ { title: "Different types of \"for\"" icon: "computercraft:printed_page" - x: 7.0d - y: 1.0d + x: 8.5d + y: 1.5d subtitle: "Lua basics #4.2 - Types of for loop" description: [ "Did you wonder how you can check every place in a table with a loop? With pairs() and ipairs() it is now possible!" @@ -1688,8 +1686,8 @@ { title: "But can I watch youtube in game?" icon: "computercraft:printed_pages" - x: 7.5d - y: 3.5d + x: 9.0d + y: 4.0d subtitle: "Lua Basics #5.1 - Introduction to APIs" description: [ "You may be thinking, what use have those monitors you got at the start of the questline. I mean you probably know the answer for that, but you don't know how to use them. Thats what this quest is for!" @@ -1700,7 +1698,7 @@ "" "> term.clear() -- This is command to clear the screen from \"term\" api." "" - "After this quest, you will get access to \"global usage\" API for peripherals, you will see what I mean when you see it. There will be explained API for peripherals, and next quest here will be continuation from there." + "" "" "PS: No, unfortunetaly even tho ComputerCraft has access to the internet, it is not possible to watch youtube in game." ] @@ -1968,5 +1966,15 @@ title: "Got it working!" }] } + { + x: 6.0d + y: 3.0d + id: "69341D3A85480AD9" + tasks: [{ + id: "559DE4A337138B1F" + type: "checkmark" + title: "Got it!" + }] + } ] } From a3aa5e0f5352df54ef23ca8c8bac9ddf4c8d45ca Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Fri, 22 Jul 2022 07:49:34 +0200 Subject: [PATCH 41/53] Lua basics - Global Variables progress From now on I will have a lot slower progress, as I will be working without internet access for another month :sweat_smile: Everyone that reads this, happy holidays :D --- .../chapters/computercraft_tweaked.snbt | 285 ++++++++++++++++-- 1 file changed, 255 insertions(+), 30 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 1aac940e4f..f7c8420bc8 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -729,6 +729,18 @@ type: "checkmark" title: "Got it!" }] + rewards: [ + { + id: "483D05B0EA152873" + type: "custom" + title: "[Link] Lua Docs" + } + { + id: "6466C8ABA6349F16" + type: "custom" + title: "[Link] CC:T Docs" + } + ] } { title: "Challenges" @@ -845,8 +857,8 @@ { title: "Variables and their types" icon: "computercraft:printed_pages" - x: 5.5d - y: -3.5d + x: 6.0d + y: -3.0d shape: "diamond" subtitle: "Lua Basics #1 - Variables" description: [ @@ -892,8 +904,8 @@ { title: "Type: Table" icon: "computercraft:printed_page" - x: 3.0d - y: -4.0d + x: 3.5d + y: -3.5d subtitle: "Lua Basics #1 - Variable types" description: [ "Tables are one of the most complicated \"variables\" in here, so you will need to read a lot more about them if you want to learn more than basic of basics." @@ -940,8 +952,8 @@ { title: "Type: Boolean" icon: "computercraft:printed_page" - x: 7.35d - y: -4.8d + x: 7.85d + y: -4.3d subtitle: "Lua Basics #1 - Variable types" description: [ "Boolean is the easiest type in every programming language. It can have 2 states, \"True\" and \"False\"." @@ -967,8 +979,8 @@ { title: "Type: Function" icon: "computercraft:printed_page" - x: 3.65d - y: -4.8d + x: 4.15d + y: -4.3d subtitle: "Lua Basics #1 - Variable types" description: [ "You already heard of the word \"function\" a few times in this quest line, but did you know it's also one of the variable types?" @@ -1012,8 +1024,8 @@ { title: "Type: String" icon: "computercraft:printed_page" - x: 4.5d - y: -5.4d + x: 5.0d + y: -4.9d subtitle: "Lua Basics #1 - Variable types" description: [ "String is a type of variable that stores a sequence of characters. You can type here anything, binary code (Binary - Code using ones and zeros), your name, entire address or your homework if you so desire." @@ -1057,8 +1069,8 @@ { title: "Type: Number" icon: "computercraft:printed_page" - x: 6.5d - y: -5.4d + x: 7.0d + y: -4.9d subtitle: "Lua Basics #1 - Variable types" description: [ "Number is a type of variable to store numbers." @@ -1099,8 +1111,8 @@ { title: "Variable Tips \\& Tricks" icon: "computercraft:printed_page" - x: 5.5d - y: -1.5d + x: 6.0d + y: -1.0d subtitle: "Lua Basics #1 - Variable tips \\& tricks" description: [ "Variable naming:" @@ -1198,8 +1210,8 @@ { title: "Variables Types - In General" icon: "computercraft:printed_page" - x: 5.5d - y: -5.75d + x: 6.0d + y: -5.25d subtitle: "Lua Basics #1 - Variable types" description: [ "Every variable has its own type that determines what it stores and what you can do to it." @@ -1226,8 +1238,8 @@ { title: "Type: Nil" icon: "computercraft:printed_page" - x: 8.0d - y: -4.0d + x: 8.5d + y: -3.5d subtitle: "Lua Basics #1 - Variable types" description: [ "Nil is a variable type and variable value. It means literally \"nothing\" in code. Variables with type nil, asked for their type and what they're storing, will return nil." @@ -1256,7 +1268,7 @@ { title: "Creating your own functions" icon: "computercraft:printed_pages" - x: 8.0d + x: 9.0d y: -2.0d shape: "circle" subtitle: "Lua Basics #2 - Creating functions" @@ -1380,9 +1392,9 @@ } ] rewards: [{ - id: "2FB3304315BB5F48" + id: "2FEFE49A60D109C3" type: "custom" - title: "I think about giving here one of the scavenging bags. What do you think?" + title: "[Link] Resolved Task 1" }] } { @@ -1443,7 +1455,7 @@ { title: "If this is equal 0, then true!" icon: "computercraft:printed_pages" - x: 9.5d + x: 10.5d y: -0.5d subtitle: "Lua Basics #3 - Creating conditions with IF" description: [ @@ -1554,6 +1566,11 @@ } } ] + rewards: [{ + id: "4ECDC6048A431EB1" + type: "custom" + title: "[Link] Resolved Task 2" + }] } { title: "Is 6 higher than 8?" @@ -1593,12 +1610,17 @@ type: "checkmark" title: "Got it working!" }] + rewards: [{ + id: "1A9BD8BED0937646" + type: "custom" + title: "[Link] Resolved Task 3" + }] } { title: "Loops... loops everywhere" icon: "computercraft:printed_pages" - x: 10.0d - y: 2.0d + x: 10.625d + y: 1.875d shape: "diamond" subtitle: "Lua Basics #4.1 - Loops" description: [ @@ -1616,7 +1638,7 @@ "● First argument is a variable that is used for loops condition. As with functions, this variable is temporary, its only available inside of the loop and is gone in any other place in the code." "Note: You can create that variable without use of a \"local\" function as in example. Also you can give it a value of different variable that has been created outside of the loop." "" - " ● Second argument is your loop condition. You don't create it as \"if\" condition however, you just put in number that variable needs to get to. In our example variable \"i\" needs to be equal 10 for loop to finish its work." + "● Second argument is your loop condition. You don't create it as \"if\" condition however, you just put in number that variable needs to get to. In our example variable \"i\" needs to be equal 10 for loop to finish its work." "" "● Third argument is incrementation of that variable. That means by how much a variable needs to change. In our example we used 1, so our variable will increase by one with every run of the loop. You can also use negative numbers to make a loop that will decrease its variable." "" @@ -1642,8 +1664,8 @@ { title: "Different types of \"for\"" icon: "computercraft:printed_page" - x: 8.5d - y: 1.5d + x: 12.5d + y: 1.0d subtitle: "Lua basics #4.2 - Types of for loop" description: [ "Did you wonder how you can check every place in a table with a loop? With pairs() and ipairs() it is now possible!" @@ -1686,7 +1708,7 @@ { title: "But can I watch youtube in game?" icon: "computercraft:printed_pages" - x: 9.0d + x: 9.5d y: 4.0d subtitle: "Lua Basics #5.1 - Introduction to APIs" description: [ @@ -1698,7 +1720,13 @@ "" "> term.clear() -- This is command to clear the screen from \"term\" api." "" + "There isn't much special with APIs at this point, they work like normal functions, but you call them differently. The complexity starts with how you get access to the API." + "" + "There are 2 types of APIs in ComputerCraft, Global and Peripheral. " + "" + "● Global APIs are accessible at all time with use of Global Variable. Some useful Global APIs will be in \"Global API\" Section. " "" + "● Peripherals APIs are only accessible, when you have connected peripheral that API uses. Before that however, you need to wrap that peripheral, as Peripheral APIs are \"block specific\". More about that in Lua basics #5.2 - Peripherals API" "" "PS: No, unfortunetaly even tho ComputerCraft has access to the internet, it is not possible to watch youtube in game." ] @@ -1727,6 +1755,11 @@ type: "checkmark" title: "Got it working!" }] + rewards: [{ + id: "42CF98A624FC2784" + type: "custom" + title: "[Link] Resolved Task 4" + }] } { title: "Note 2: What needs to be changed" @@ -1967,14 +2000,206 @@ }] } { - x: 6.0d - y: 3.0d + title: "Global Variables" + icon: "computercraft:printed_book" + x: 7.0d + y: 2.5d + subtitle: "Lua Basics #5.2 - Useful Global Variables" + description: [ + "Global variables are variables that have the same value in every program. They are just part of Lua language! It is possible to do custom global variables, but thats not very practical and requires a lot of work." + "" + "Here are few most useful Global Variables in ComputerCraft: Tweaked and Lua. Everything else you need to find by yourself in documentation, but those here should be enough for most automations projects in minecraft." + ] + dependencies: ["1F7736775BFEA643"] + min_width: 350 id: "69341D3A85480AD9" tasks: [{ id: "559DE4A337138B1F" type: "checkmark" title: "Got it!" }] + rewards: [{ + id: "5F33BD10412387BF" + type: "custom" + title: "[Link] Global Variables in CC" + }] + } + { + title: "Colors Library" + icon: "computercraft:printed_pages" + x: 5.0d + y: 3.0d + subtitle: "Lua Basics #5.2 - Colors API" + dependencies: ["69341D3A85480AD9"] + id: "0E17CEC71EA384AE" + tasks: [{ + id: "1428C8E8290AB4F6" + type: "checkmark" + title: "Got it!" + }] + rewards: [{ + id: "0BACD05CE58EBB6F" + type: "custom" + title: "[Link] Colors Library" + }] + } + { + title: "Operating System API" + icon: "computercraft:printed_pages" + x: 5.0d + y: 2.0d + subtitle: "Lua Basics #5.2 - \"os\" API" + dependencies: ["69341D3A85480AD9"] + id: "29EC12D7DF1ED9FF" + tasks: [{ + id: "23197281ACBC72F5" + type: "checkmark" + title: "Got it!" + }] + rewards: [{ + id: "196A0244498873CE" + type: "custom" + title: "[Link] OS API" + }] + } + { + title: "Peripheral API" + icon: "computercraft:printed_pages" + x: 7.5d + y: 0.5d + subtitle: "Lua Basics #5.2 - Peripheral API" + dependencies: ["69341D3A85480AD9"] + id: "2A1B7703C6A4685D" + tasks: [{ + id: "3E85F8A3BC1D31AC" + type: "checkmark" + title: "Got it!" + }] + rewards: [{ + id: "1BD8280A906CF52F" + type: "custom" + title: "[Link] Peripheral API" + }] + } + { + title: "Terminal API" + icon: "computercraft:printed_pages" + x: 6.5d + y: 0.5d + subtitle: "Lua Basics #5.2 - Term API" + description: [ + "Terminal API (term) is used to interract with Terminal of your PC or your monitor!" + "It has a ton of functions, so I will just get few most important ones, but taking a look at the Documentation for it is definitely worht the time." + "" + "> term.redirect(target) -> Redirects terminal output onto other terminal, like monitor." + "" + ] + dependencies: ["69341D3A85480AD9"] + min_width: 400 + id: "75E0C3E753708FD4" + tasks: [{ + id: "0E6AADD401F2F7B6" + type: "checkmark" + title: "Got it!" + }] + rewards: [{ + id: "456F37019812B8FB" + type: "custom" + title: "[Link] Term API" + }] + } + { + title: "Text Utilities API" + icon: "computercraft:printed_pages" + x: 5.5d + y: 1.0d + subtitle: "Lua Basics #5.2 - Textutils API" + dependencies: ["69341D3A85480AD9"] + id: "097B439DEE968650" + tasks: [{ + id: "39FB5759F1B08786" + type: "checkmark" + title: "Got it!" + }] + rewards: [{ + id: "796FE0452D816B89" + type: "custom" + title: "[Link] Textuitls API" + }] + } + { + title: "Math library" + icon: "computercraft:printed_pages" + x: 8.5d + y: 1.0d + subtitle: "Lua basics #5.2 - Math library" + description: [ + "Math library has a lot of Mathematical functions that could be useful for calculating stuff. All of them you can find in the link from the quest reward, but most useful ones are:" + "" + "> math.ceil(number) -> Rounds up the number up." + "" + "> math.floor(number) -> Rounds up number down." + "" + "> math.random([number_1],[number_2]) -> Generates random number from:" + "● No arguments -> Double Precision number from 0 to 1" + "● 1 argument -> Number from 1 to number_1" + "● 2 arguments -> Number from number_1 to number_2" + "" + "> math.max(number_1 ... number_x) -> Returns highest number from arguments." + "" + "> math.min(number_1 ... number_x) -> Returns smallest number from arguments." + ] + dependencies: ["69341D3A85480AD9"] + min_width: 400 + id: "56A9604A23CBA7FE" + tasks: [{ + id: "54B0D2E05E747320" + type: "checkmark" + title: "Got it!" + }] + rewards: [{ + id: "394B66345A71FFE7" + type: "custom" + title: "[Link] Math Library on Lua Docs" + }] + } + { + title: "WIP" + icon: "computercraft:printed_pages" + x: 5.5d + y: 4.0d + dependencies: ["69341D3A85480AD9"] + id: "77934DEAE0E3A2C3" + tasks: [{ + id: "7212F3E3220F211B" + type: "checkmark" + title: "Got it!" + }] + } + { + title: "WIP" + icon: "computercraft:printed_pages" + x: 6.5d + y: 4.5d + dependencies: ["69341D3A85480AD9"] + id: "21375DDBA4CF79A1" + tasks: [{ + id: "3862F5F8CF89CF59" + type: "checkmark" + title: "Got it!" + }] + } + { + x: 0.0d + y: -5.5d + description: ["Tasks are Work In Progress, I have a trouble with writing those, so my piority is on Lua Basics and Peripherals"] + id: "1D62BBE1BCA40A24" + tasks: [{ + id: "64D831130CB43BD1" + type: "custom" + title: "Note:" + icon: "minecraft:writable_book" + }] } ] } From 4ad10b2df244357a5b474077e7cfb24d512e788a Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Mon, 1 Aug 2022 00:50:52 +0200 Subject: [PATCH 42/53] 01.08.22 Update - Small tweaks Small tweaks for Lua Basics :D --- .../chapters/computercraft_tweaked.snbt | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index f7c8420bc8..22244862e8 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -823,9 +823,9 @@ description: [ "Welcome to Lua fellow Player!" "" - "Lua is one of many coding languages out there, but it's one of the easiest ones. Don't think that it means that it is worse than others!" + "Lua is one of many coding languages out there, but it's one of the easiest ones. Don't think that it means it is worse than others!" "" - "Its a pretty powerful, but simple language, so simple that it can be implemented into other games." + "Of course that isn't the only use for it. There is a lot of games coded in Lua, that are pretty good and popular (The Binding of Isaac for example)." "That doesn't mean that it's only used in this application. There are a lot of games coded on Lua, that are pretty neat and popular (The Binding of Isaac for example)." "" "In this tutorial I'll try to teach you the basics of basics of Lua, so you can try doing your own automation projects with it." @@ -883,7 +883,7 @@ "> my_first_variable = \"Enigmatica 6\"" "> \"Enigmatica 6\" -> my_first_variable" "" - "\"But what does \"nil\" mean and why there are quotation marks near Enigmatica 6?\" - So there are few types of variables, and every of them have its own unique rules. Check \"Lua Basics #1 - Variable types\" above this quest for more information about those." + "\"But what does \"nil\" mean and why there are quotation marks near Enigmatica 6?\" - So there are few types of variables, and each of them has its own unique rules. Check \"Lua Basics #1 - Variable types\" above this quest for more information about those." ] dependencies: ["44029061DB640AE2"] hide: true @@ -948,6 +948,11 @@ type: "checkmark" title: "Got it!" }] + rewards: [{ + id: "73533459AAF8B2B8" + type: "custom" + title: "[Link] Table" + }] } { title: "Type: Boolean" @@ -990,7 +995,7 @@ "APIs are sets of functions you can use to interract with stuff that uses a given API. For example to interact with the monitor of the PC, you need to use API that has functions to do that. How to use APIs will be explained later." "" "Now lets see how to use functions." - "For you to call (In other words, use) a function, you need to simply type its name with 2 brackets. Between those are the function's arguments." + "For you to call (In other words, use) a function, you need to simply write its name with 2 brackets. Between those are the function's arguments." "" "> print(string) -- Basic function to write text on the screen. Has one argument." "" @@ -1065,6 +1070,11 @@ type: "checkmark" title: "Got it!" }] + rewards: [{ + id: "6B5AC6FA3CD60428" + type: "custom" + title: "[Link] String formating" + }] } { title: "Type: Number" @@ -1093,7 +1103,7 @@ "> local add = 6 + 10" "> 16 -> add" "" - "Unfortunately Lua doesn't support anything else than those 4 basic operators. If you want to do anything else you will need to write the function yourself. For creating functions check out Function type in Lua Basics #1" + "Unfortunately Lua doesn't support anything else than those 4 basic operators. If you want to do anything else you will need to write the function yourself. Creating your own functions will be later on." ] dependencies: [ "29C780353E7FB720" @@ -1137,8 +1147,6 @@ "● You can create multiple variables at the same time! You just simply type two or more names after \"local\" and seperate them with a comma. You can even set a unique value for each variable." "> local x, y, z = 1, 2, 3" "> 1 -> x / 2 -> y / 3 -> z" - "" - "Dev Note: Remember to check this out later on and think if you didn't forget anything important ^^\"" ] dependencies: ["29C780353E7FB720"] hide: true @@ -1221,9 +1229,6 @@ "Lua, whenever you are trying to do something that is designed for a different type of variable, will try to convert the variable you use to the type it needs to be. Of course it will not success 100%, because sometimes its impossible to convert. In this case it will crash the program and give an error about a illegal function on that type of the variable." "" "There are few ways to convert one type to another manually, but it's not that useful in stuff we are gonna do, and can be found in Official Lua Docs." - "" - "Note: If you already know Integrated Dynamics' variable types, a lot of ComputerCraft ones are really similiar. On the last line of every type quest there is a note saying what type of Variable that is in ID -- need feedback about this, should I add this or its kinda pointless?" - "TODO: Link to the site with convert Functions" ] dependencies: ["29C780353E7FB720"] hide: true @@ -1234,6 +1239,11 @@ type: "checkmark" title: "Got it!" }] + rewards: [{ + id: "5FAE656413496E6A" + type: "custom" + title: "[Link] Convertion of variables" + }] } { title: "Type: Nil" From 4b980edd117a7be6b687ae334dcf0bb8d8ac0f4d Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Mon, 1 Aug 2022 16:50:18 +0200 Subject: [PATCH 43/53] 01.08.22 /2 - Typos fix Fixed a lot of typos, and there shouldn't be much more left as this time I used Word for checking every sentence in the quest line :D --- .../chapters/computercraft_tweaked.snbt | 96 +++++++++---------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 22244862e8..79c9b0696b 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -52,7 +52,7 @@ "" "Except for the fact that it looks nicer, it has more disk space available for you and has color support!" "" - "Colors don't matter for us however, as we aren't gonna do OS in this tutorial, but it's good to know its a thing right?" + "Colors don't matter for us however, as we aren't going to do OS in this tutorial, but it's good to know it's a thing right?" ] dependencies: ["2D79E4D126EE389E"] dependency_requirement: "all_started" @@ -378,7 +378,7 @@ y: -0.5d subtitle: "Lua Basics: Global Liquid API" description: [ - "Liquids API is used to move liquids around in your network. It is really simple API, but it is actually useful in more complex fluid automations (like Mekanism 5x Ore Processsing)." + "Liquids API is used to move liquids around in your network. It is really simple API, but it is actually useful in more complex fluid automations (like Mekanism 5x Ore Processing)." "" "Fluid API Functions:" "" @@ -750,7 +750,7 @@ shape: "gear" subtitle: "Try yourself!" description: [ - "Here are few challenges you can try to complete, they aren't required for you to do, but its really interesting way to try yourself and see how much you understood from the entire quest line!" + "Here are few challenges you can try to complete, they aren't required for you to do, but it's really interesting way to try yourself and see how much you understood from the entire quest line!" "" "In the subtitle, there will be rating from 1 to 10 in terms of difficulty. Higher numbers could require from you more knowledge and / or reading Lua documentation." "" @@ -864,15 +864,15 @@ description: [ "Lets start out with basics of basics shall we?" "" - "Variables are a place in the memory, where you can store data. Like a file, they have their own name, that you can use to interract with them. This is the most important thing in every programming language, because without those, you wouldn't be able to store and use any data at all in the program!" + "Variables are a place in the memory, where you can store data. Like a file, they have their own name, that you can use to interact with them. This is the most important thing in every programming language, because without those, you wouldn't be able to store and use any data at all in the program!" "" "The way variables work is pretty simple, you set the name for it, and optionally you set what data it stores." "" "> local my_first_variable = 0" "" - "● \"local\" is a function for creating new variables. \"My_First_Variable\" is the variable's name, that is first argument! Get used to that word, because every function has one or more of them." + "● \"local\" is a function for creating new variables. \"my_first_variable\" is the variable's name, that is first argument! Get used to that word, because every function has one or more of them." "● Second \"argument\" is a data you want to store in that variable. Its optional, that means you can just leave it empty and variable will still be created, but when you are gonna try reading it, it will return \"nil\"." - "(Important note: You can't write \"local x =\" when you want to create empty variable. You need to use \"local x\" or \"local x = nil\" where x is your's variable name)" + "(Important note: You can't write \"local x =\" when you want to create empty variable. You need to use \"local x\" or \"local x = nil\" where x is yours variable name)" "" "Now to read your variable, you just simply use the name of your variable. It will give to the function data it contains (value). You can't read variables in any other place than function's argument! However for demonstration purposes, I will showcase variable's value like that:" "" @@ -910,13 +910,13 @@ description: [ "Tables are one of the most complicated \"variables\" in here, so you will need to read a lot more about them if you want to learn more than basic of basics." "" - "To start of technically tables aren't \"variables\". They are dynamic objects that can be dynamically changed. But to not make a brain washing process here, I will call it \"variable type\" so you will not think its used differently." + "To start of technically tables aren't \"variables\". They are dynamic objects that can be dynamically changed. But to not make a brain washing process here, I will call it \"variable type\" so you will not think it's used differently." "" - "To create a table, its pretty simple, you just use \"\\{\\}\" for any variable's value." + "To create a table, it's pretty simple, you just use \"\\{\\}\" for any variable's value." "" "> local my_first_table = \\{\\} -- Create a relation with name my_first_table to that table , for now its empty." "" - "Table is an array, that means it can store multiple variables inside of it, and all of them can be accessed with just one name. However in tables, those variables are called \"entries\". Every entry has its own Key and its value. Similiarly to a variable, but its in group!" + "Table is an array, that means it can store multiple variables inside of it, and all of them can be accessed with just one name. However in tables, those variables are called \"entries\". Every entry has its own Key and its value. Similarly to a variable, but it's in group!" "To read/write to some entry, you need to use its key in the brackets next to the table, like this:" "" "> my_first_table[1] = \"Hello\"" @@ -930,7 +930,7 @@ "In the similar way you use APIs, but complete guide on that will be later on." "Note: a.x and a[x] isn't the same! x in first case is a string, not a variable like in second one!" "" - "Lua defaults empty entries to nil, and you can set non-empty ones to nil to clear them. Tables aren't fixed, if there will be no more relations to it, it will be deleted from the memory. To delete a table completly, set every variable that has relation to that table to nil." + "Lua defaults empty entries to nil, and you can set non-empty ones to nil to clear them. Tables aren't fixed, if there will be no more relations to it, it will be deleted from the memory. To delete a table completely, set every variable that has relation to that table to nil." "" "Important note is that Lua doesn't return tables starting at key 0, like most of the languages do, Lua returns tables with key 1 and up. You can do table starting at key 0 manually, but its not recommended unless you are gonna use negative numbers." "" @@ -966,7 +966,7 @@ "A Boolean is really useful in situations where you need to check if something is True, or False. Example:" "● You need to know if there is a chest on the left of the PC. If there is a chest, it's \"True\", if there is not, it's \"False\"" "" - "A lot of functions are returning a boolean variable after they ended they work, it is useful to check for that output to see if what you wanted to do was actually done." + "A lot of functions are returning a Boolean variable after they ended they work, it is useful to check for that output to see if what you wanted to do was actually done." ] dependencies: [ "29C780353E7FB720" @@ -992,7 +992,7 @@ "Function is a variable that doesn't store data, it stores other functions and variables in it, which you can then use in another place with just the name of that function. Pretty convenient isn't it?" "" "As every variable, you can change its value later on to whatever you want. Yes that means you can edit some of the Lua Functions and other APIs, but it will break stuff most of the time." - "APIs are sets of functions you can use to interract with stuff that uses a given API. For example to interact with the monitor of the PC, you need to use API that has functions to do that. How to use APIs will be explained later." + "APIs are sets of functions you can use to interact with stuff that uses a given API. For example to interact with the monitor of the PC, you need to use API that has functions to do that. How to use APIs will be explained later." "" "Now lets see how to use functions." "For you to call (In other words, use) a function, you need to simply write its name with 2 brackets. Between those are the function's arguments." @@ -1005,11 +1005,11 @@ "" "> print(\"This is a test!\") -- Writes on the screen --> This is a test!" "" - "You already know that function arguments require variable, but did you know that you can use a function as an argument as well? Most of the functions return something, if its a table with stuff they found, or just a boolean if they were able to do what they need to. They can even return other functions. To use functions as the arguments, you just write it as you would normally, just in this case it would be in the argument of your function." + "You already know that function arguments require variable, but did you know that you can use a function as an argument as well? Most of the functions return something, if its a table with stuff they found, or just a Boolean if they were able to do what they need to. They can even return other functions. To use functions as the arguments, you just write it as you would normally, just in this case it would be in the argument of your function." "" "> print(my_function(1)) -- This will print what my_function will return." "" - "There is also a way to pass the function, this is sometimes useful and should be used with functions that don't require any arguments. To pass a function, you simply write its name without brackets. However its not that useful in our use case, and until you will not go deeper into Lua coding, you will probably never use it." + "There is also a way to pass the function, this is sometimes useful and should be used with functions that don't require any arguments. To pass a function, you simply write its name without brackets. However it's not that useful in our use case, and until you will not go deeper into Lua coding, you will probably never use it." "" "For more information about functions and how to create them, check Lua Basics #2." ] @@ -1035,20 +1035,20 @@ description: [ "String is a type of variable that stores a sequence of characters. You can type here anything, binary code (Binary - Code using ones and zeros), your name, entire address or your homework if you so desire." "" - "● Strings need to be written between double quotes to be valid, otherwise the program will think its the name of variable!" + "● Strings need to be written between double quotes to be valid, otherwise the program will think it's the name of variable!" "" "> local my_first_string = \"Hello Player\" -- Valid string" "> local my_first_string = Hello Player -- Not valid, Lua will think those are two variables" "" - "● Strings can not be modified, but you can do a copy of them with a modification you want to do." + "● Strings cannot be modified, but you can do a copy of them with a modification you want to do." "> local test_string = \"This is a test\"" "> local test_string_edited = string.gsub(test_string, \"test\", \"Test!\", 1)" "> \"This is a Test!\" -> test_string_edited" "" "● string.gsub is one of the few ways with which you can edit your strings. First argument takes the string / variable you want to edit, second one what \"characters\" you want to change, and the third one takes what you want to put in its place." - "There is a fourth argument (Optional) that tells the program which occurance of those characters to change. If, for example, we would have 2 \"test\" in our string, with number you can set which one to edit! In our case it would edit the first one." + "There is a fourth argument (Optional) that tells the program which occurrence of those characters to change. If, for example, we would have 2 \"test\" in our string, with number you can set which one to edit! In our case it would edit the first one." "" - "● There is also a way to add some text at the end of your string. This time you can \"edit\" the initial string by overwriting it, but it's sometimes useful to have it as seperate variables." + "● There is also a way to add some text at the end of your string. This time you can \"edit\" the initial string by overwriting it, but it's sometimes useful to have it as separate variables." "To add some text at the end of your string, you use 2 dots between 2 strings you want to add together:" "> local string_1 = \"Hello \"" "> local string_2 = \"there!\"" @@ -1085,7 +1085,7 @@ description: [ "Number is a type of variable to store numbers." "" - "Numbers should be written without any other characters to be valid and recognised as such:" + "Numbers should be written without any other characters to be valid and recognized as such:" "> local my_first_number = 6" "> 6 -> my_first_number" "" @@ -1093,9 +1093,9 @@ "> local some_number = 1.54" "● You can also write numbers in scientific notation (example: 5e20), but personally I wouldn't recommend that unless you know what you are doing." "" - "Lua supports the usual arithemitcs operators:" + "Lua supports the usual arithmetic operators:" "+ -> Addition" - "- -> Substraction" + "- -> Subtraction" "* -> Multiplication" "/ -> Division" "" @@ -1144,7 +1144,7 @@ "" "General tips \\& tricks:" "" - "● You can create multiple variables at the same time! You just simply type two or more names after \"local\" and seperate them with a comma. You can even set a unique value for each variable." + "● You can create multiple variables at the same time! You just simply type two or more names after \"local\" and separate them with a comma. You can even set a unique value for each variable." "> local x, y, z = 1, 2, 3" "> 1 -> x / 2 -> y / 3 -> z" ] @@ -1199,7 +1199,7 @@ "" "More tasks will get unlocked, the more you advance in Lua Basics! It's recommended to do them as soon as possible, so you will practice stuff you learned as you go :D" "" - "Note that at the end of every quests you willl recive link to a program that will showcase working program for that task." + "Note that at the end of every quests you will receive link to a program that will showcase working program for that task." ] dependencies: [ "2D79E4D126EE389E" @@ -1291,7 +1291,7 @@ "" "You can add as many arguments as you want, and to separate them you use commas. Arguments work like normal variables. However if you call a function and not give it the argument that it needs, Lua will default that argument to the variable \"nil\". " "" - "● Variables that you just created for your function's arguments are temporary, they can not be used in any other place than that one function! Otherwise you use them like normal variables." + "● Variables that you just created for your function's arguments are temporary, they cannot be used in any other place than that one function! Otherwise you use them like normal variables." "" "● Everything you write after brackets is a code that will run when you call your function. There isn't anything more special here except two commands:" "" @@ -1341,7 +1341,7 @@ "It's time. We are gonna actually code something!" "The program we will create, will use the print() function to write some variable's values on the screen after we modify them." "" - "● First thing we need to do, is to create 2 strings, 2 numbers, a boolean and nil variable. Name and value for each of them is up to you." + "● First thing we need to do, is to create 2 strings, 2 numbers, a Boolean and nil variable. Name and value for each of them is up to you." "" "● Now let's use the print() function to write some text on the screen. However first, we will add one of those strings to the end of the other. Now we can print what we got." "" @@ -1349,9 +1349,9 @@ "" "● Now let's get our nil variable. As you know its empty, but that isn't efficient. Let's store \"Enigmatica 6 is great!\" in it and print it as well." "" - "● Lastly let's see the value of our boolean." + "● Lastly let's see the value of our Boolean." "" - "If everything was done correctly, the screen should have 6 lines printed on it. The first one is two strings. The second and third are numbers with the fourth being the sum of them. The fifth line should be \"Enigmatica 6 is great!\" and the last line should show the value of your boolean (True/False) If thats what you see, congratulations! You created your first program!" + "If everything was done correctly, the screen should have 6 lines printed on it. The first one is two strings. The second and third are numbers with the fourth being the sum of them. The fifth line should be \"Enigmatica 6 is great!\" and the last line should show the value of your Boolean (True/False) If that's what you see, congratulations! You created your first program!" "" "Pro Tip: You don't need to do another variable in a few cases like adding 2 variables together. You can do that in the functions argument!" "> local number_1, number_2 = 1, 5" @@ -1415,9 +1415,9 @@ shape: "rsquare" subtitle: "It is simpler than you think!" description: [ - "The computer that you just created, is actually really similiar to your real PC! It has a screen, main directory, programs, files and console." + "The computer that you just created, is actually really similar to your real PC! It has a screen, main directory, programs, files and console." "" - "In ComputerCraft, directory doesn't exist, until something isn't saved in it. That means you can't have empty folders on your computer. However you can have empty files. To see what programs you have on your computer, run \"programs' command. It will print a list of all programs avaiable! Of course you can make your own programs, and that's what, technically, we are gonna do later on." + "In ComputerCraft, directory doesn't exist, until something isn't saved in it. That means you can't have empty folders on your computer. However you can have empty files. To see what programs you have on your computer, run \"programs' command. It will print a list of all programs avaliable! Of course you can make your own programs, and that's what, technically, we are gonna do later on." "" "To use any program, you just write its name to the console. Here is a few basic programs you need to know to use your computer and learn more:" "> cd *directory* -- Changes what folder you are in. Your main directory is root." @@ -1471,11 +1471,11 @@ description: [ "\"if\" is another one of the most important things in coding. Without it we wouldn't be able to create any decisions! \"if\" is used to check if a variable is equal, bigger, smaller etc than another variable / value." "" - "Usage of \"if\" is actually really similiar to a function, but you aren't doing a variable this time! To start creating your decision, you do something like this:" + "Usage of \"if\" is actually really similar to a function, but you aren't doing a variable this time! To start creating your decision, you do something like this:" "" "> if (variable_1 == variable_2) then" "" - "You probably realized that I didn't use single \"=\" sign, and that's not a mistake! You can not use a single equal sign in this case, as it is used to asign a value to a variable, and not to check its value! Here is the list of logic operators you can use in Lua:" + "You probably realized that I didn't use single \"=\" sign, and that's not a mistake! You cannot use a single equal sign in this case, as it is used to assign a value to a variable, and not to check its value! Here is the list of logic operators you can use in Lua:" "" "● == -> checks if both variables are identical / equal." "● ~= -> Same as == , but inverted (checks if both variables aren't identical / equal)." @@ -1487,7 +1487,7 @@ "● \"and\" -> this operator returns its first argument if it is false, otherwise, it returns its second argument (Example:" "> (6 > 5 and 6 < 5) -- First argument is true, so it returns the second one that is false)" "● \"or\" -> returns its first argument if it is not false; otherwise, it returns its second argument." - "● \"not\" -> it reverts what it gots, so if it gets true, it will return false and vice versa." + "● \"not\" -> it reverts what it gets, so if it gets true, it will return false and vice versa." "" "Important to note is that \"false\" and \"nil\" are both in Lua recognized as false. " "" @@ -1496,14 +1496,14 @@ "There is also \"else\" and \"elseif\" commands, that allow you to execute code if conditions aren't meet, or check another condition if first wasn't meet. You use just one \"end\" at the end of entire \"if\"! Example:" "" "> if (5 > 6 and 7+2 < 10) then" - "> print(\"Its true!\")" + "> print(\"It's true!\")" "> elseif (\"Hello\" == \"Hello\" or 10-9 <= 0) then" "> print(\"First condition wasn't meet, but second one was!\")" "> else" "> print(\"None of condition were meet.\")" "> end" "" - "Note: The brackets in IF condition are optional, Lua doesn't care if condition is in brackets or not, but its pretty convenient in longer conditions to add them." + "Note: The brackets in IF condition are optional, Lua doesn't care if condition is in brackets or not, but it's pretty convenient in longer conditions to add them." ] dependencies: ["5056B0737A8A8D64"] hide: true @@ -1592,16 +1592,16 @@ "Is 6 higher than 2+3? Is \"E6\" the same as \"e6\"? What to do if so?" "In this task we will create our first conditions, that will for sure let us know what is what!" "" - "● Lets start with creating few variables, get 4 numbers and 2 strings, with something similiar like \"Enigmatica 6\" and \"enigmatica 8\"." + "● Lets start with creating few variables, get 4 numbers and 2 strings, with something similar like \"Enigmatica 6\" and \"enigmatica 8\"." "" - "● Now lets create our first condition. Check if first number variable is higher than second one, if so print \"Its bigger!\", if not print \"Its smaller!\"." + "● Now lets create our first condition. Check if first number variable is higher than second one, if so print \"It's bigger!\", if not print \"It's smaller!\"." "" "● Second condition will be more advanced, lets get sum of our first and second number, and check if its higher or equal to the third one OR if its equal to the fourth one." "If condition is meet, print first string, if not, check if first string is the same as second string, if it is, print \"They are the same!\", but if not, change second string to be the same as first, and print \"They weren't the same, but they are now\"." "" "If done correctly you should get no errors, and get good outputs that agree with instructions written in this quest:" "" - "● If first condition is meet, you should see \"Its bigger!\", if not \"Its smaller!\"" + "● If first condition is meet, you should see \"It's bigger!\", if not \"It's smaller!\"" "● If second condition is meet, you should see what you wrote in your first string, if not, you should see either \"They are the same!\" or \"They weren't the same, but they are now.\" if your strings weren't identical." "" "Now if your code works, you can experiment a bit and see how the output changes with different inputs. Have fun!" @@ -1635,7 +1635,7 @@ subtitle: "Lua Basics #4.1 - Loops" description: [ "Loops are used to execute your code how many times you want. You don't need to write a function and call it 200 times for your program to do something 200 times anymore!" - "You use your loops in really similiar way to if: You use loop command with a condition, and you write \"end\" at the end of the code it executes. There is few different types of loops:" + "You use your loops in really similar way to if: You use loop command with a condition, and you write \"end\" at the end of the code it executes. There is few different types of loops:" "" "> while true do ... end " "" @@ -1652,10 +1652,10 @@ "" "● Third argument is incrementation of that variable. That means by how much a variable needs to change. In our example we used 1, so our variable will increase by one with every run of the loop. You can also use negative numbers to make a loop that will decrease its variable." "" - "Important note is that your incrementation needs to be able to get your variable to condition number! If Lua realises that its not possible, it will not execute the code even once. " + "Important note is that your incrementation needs to be able to get your variable to condition number! If Lua realizes that it's not possible, it will not execute the code even once. " "" "> for i = 10, 1, 1 do ... end" - "Incrementation is increasing a variable, but it needs to decrease to meat the condition. Lua will not execute the code even once!" + "Incrementation is increasing a variable, but it needs to decrease to meet the condition. Lua will not execute the code even once!" "" "Both of these loops are able to do similar things with some trickery, but its more convenient to use one type over another in some situations." "There are also two another types of \"for\" loop, but those are more complicated than these and they are worth their own quest. Check out Lua Basics #4.2 for how to use them." @@ -1716,13 +1716,13 @@ }] } { - title: "But can I watch youtube in game?" + title: "But can I watch YouTube in game?" icon: "computercraft:printed_pages" x: 9.5d y: 4.0d subtitle: "Lua Basics #5.1 - Introduction to APIs" description: [ - "You may be thinking, what use have those monitors you got at the start of the questline. I mean you probably know the answer for that, but you don't know how to use them. Thats what this quest is for!" + "You may be thinking, what use have those monitors you got at the start of the questline. I mean you probably know the answer for that, but you don't know how to use them. That's what this quest is for!" "" "ComputerCraft has a lot of really useful peripherals, that have their own API. What is API you already know, we will talk here only about usage." "" @@ -1738,7 +1738,7 @@ "" "● Peripherals APIs are only accessible, when you have connected peripheral that API uses. Before that however, you need to wrap that peripheral, as Peripheral APIs are \"block specific\". More about that in Lua basics #5.2 - Peripherals API" "" - "PS: No, unfortunetaly even tho ComputerCraft has access to the internet, it is not possible to watch youtube in game." + "PS: No, unfortunately even though ComputerCraft has access to the internet, it is not possible to watch YouTube in game." ] dependencies: [ "3313C6D952FB8B0C" @@ -1810,7 +1810,7 @@ description: [ "Mekanism is one of those mods that have ComputerCraft: Tweaked support! However, there is so much functions for every Mekanism machine, it is not possible to explain that API here. You will need to use external Excel spreadsheet this time." "" - "Searching for anything is fairly easy. Press \"ctrl\" + \"f\" and search for Mekanism machine you want to use. Next to every machine are functions you can use to interract with it!" + "Searching for anything is fairly easy. Press \"ctrl\" + \"f\" and search for Mekanism machine you want to use. Next to every machine are functions you can use to interact with it!" "" "Note that this API doesn't work super well with every Mekanism machine, and there isn't a lot of explenation of what functions do, so experimenting on your own is necessary." ] @@ -2016,9 +2016,9 @@ y: 2.5d subtitle: "Lua Basics #5.2 - Useful Global Variables" description: [ - "Global variables are variables that have the same value in every program. They are just part of Lua language! It is possible to do custom global variables, but thats not very practical and requires a lot of work." + "Global variables are variables that have the same value in every program. They are just part of Lua language! It is possible to do custom global variables, but that's not very practical and requires a lot of work." "" - "Here are few most useful Global Variables in ComputerCraft: Tweaked and Lua. Everything else you need to find by yourself in documentation, but those here should be enough for most automations projects in minecraft." + "Here are few most useful Global Variables in ComputerCraft: Tweaked and Lua. Everything else you need to find by yourself in documentation, but those here should be enough for most automations projects in Minecraft." ] dependencies: ["1F7736775BFEA643"] min_width: 350 @@ -2098,8 +2098,8 @@ y: 0.5d subtitle: "Lua Basics #5.2 - Term API" description: [ - "Terminal API (term) is used to interract with Terminal of your PC or your monitor!" - "It has a ton of functions, so I will just get few most important ones, but taking a look at the Documentation for it is definitely worht the time." + "Terminal API (term) is used to interact with Terminal of your PC or your monitor!" + "It has a ton of functions, so I will just get few most important ones, but taking a look at the Documentation for it is definitely worth the time." "" "> term.redirect(target) -> Redirects terminal output onto other terminal, like monitor." "" From 9091a61fd5e870c916e03af30ab9797c18bdd70c Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Mon, 1 Aug 2022 23:49:11 +0200 Subject: [PATCH 44/53] 01.08.22 /3 - Link test More tweaks and links test in Patchouli Modded for Dummies --- .../chapters/computercraft_tweaked.snbt | 46 +++++++++++++++++-- .../en_us/entries/quests/cc_t_docs.json | 22 +++++++++ 2 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_docs.json diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 79c9b0696b..5b0dd1f324 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -277,6 +277,7 @@ { x: -8.0d y: -6.0d + subtitle: "Lua Basics: NBT storage usage" dependencies: ["6AA1236C9946F569"] id: "064DB44EB6A2DF89" tasks: [{ @@ -325,12 +326,12 @@ }] } { - title: "Custom Peripherals APIs" + title: "Universal APIs" icon: "minecraft:chest" x: -7.5d y: 0.0d shape: "circle" - subtitle: "Lua Basics: Peripheral API" + subtitle: "Lua Basics: Universal Peripheral APIs" description: [ "ComputerCraft: Tweaked does support as peripherals other blocks as well! Your peripheral can be nearly anything, Minecraft Chest, Mekanism Reactor, Drawer, nearly any block works!" "" @@ -523,7 +524,7 @@ { x: -7.0d y: 6.0d - subtitle: "Lua Basics: Monitor \\& term functions" + subtitle: "Lua Basics: Monitor API" dependencies: ["1580D9FD06937ABB"] id: "54E1A1FE032B1363" tasks: [{ @@ -719,6 +720,8 @@ "Here are the links to the Official ComputerCraft: Tweaked documentation, as well as Lua Documentation." "" "In those documentations you can find nearly everything about anything. If you have problem with something from the quest line or you want to learn something new, this is the place to go!" + "" + "In most of the quests, as a reward there will be a link to a page talking especially about topic the quest was, so if you want to learn more as you go, you can." ] dependencies: ["2D79E4D126EE389E"] size: 1.5d @@ -775,7 +778,7 @@ title: "Better Code Editor" icon: "create:wrench" x: 3.125d - y: 0.0d + y: 0.625d shape: "gear" subtitle: "Enough of in-game coding? There is a solution!" description: [ @@ -2211,5 +2214,40 @@ icon: "minecraft:writable_book" }] } + { + title: "Re-usable links and Tasks " + icon: { + id: "patchouli:guide_book" + Count: 1b + tag: { + "patchouli:book": "patchouli:modded_for_dummies" + } + } + x: 3.125d + y: -0.625d + shape: "gear" + subtitle: "But wait, those links are one time use?" + description: [ + "Unfortunetaly FTB quests didn't add repeatable quests yet, so links from quest rewards are only one-time use." + "" + "However in our \"Modded for Dummies\" book in Quests category, there are pages with links and solutions to tasks, so you can check everything out everytime you need to. More information you will find there." + ] + dependencies: [ + "2D79E4D126EE389E" + "00000000000006E9" + ] + size: 1.25d + id: "739DEEE353F742E8" + tasks: [{ + id: "02142D346A59C391" + type: "checkmark" + title: "Got it!" + }] + rewards: [{ + id: "2AB23FCB677E93E1" + type: "xp" + xp: 100 + }] + } ] } diff --git a/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_docs.json b/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_docs.json new file mode 100644 index 0000000000..20bc9c9d75 --- /dev/null +++ b/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_docs.json @@ -0,0 +1,22 @@ +{ + "name": "CC:T documentation", + "icon": "computercraft:printed_book", + "category": "patchouli:quests", + "sortnum": 1, + "pages": [ + { + "type": "text", + "text": "$(1)We really advice you to read ComputerCraft: Tweaked quest line first before reading those pages!$(reset) Everything here and on other ComputerCraft related pages in this book is just additional notes filling up holes in quest line!" + }, + + { + "type": "text", + "text": "Welcome to \"Book section\" of ComputerCraft: Tweaked quest line! Here you will find help with tasks, challenges, additional notes and links helpful in your programming adventure. This chapter will give you links for entire documentation you need to use ComputerCraft: Tweaked." + }, + + { + "type": "text", + "text": "$(1)Documentation$(reset) This section is WIP. I have no idea how to exactly do links and format this, so this is only a test!" + } + ] +} \ No newline at end of file From a7af198cda34d8ac4693e49cf5cc0d5c097ae213 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Tue, 2 Aug 2022 11:35:45 +0200 Subject: [PATCH 45/53] CC:T Quests - Patchouli entries Added 3 pages related to CC:T CC:T Docs -> Nearly finished CC:T Tasks -> Draft, until Tasks arent finished CC:T Challenges -> Draft, until Challenges aren't finished --- .../en_us/entries/quests/cc_t_challenges.json | 17 +++++++++++++++++ .../en_us/entries/quests/cc_t_docs.json | 6 +++--- .../en_us/entries/quests/cc_t_tasks.json | 17 +++++++++++++++++ 3 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_challenges.json create mode 100644 patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_tasks.json diff --git a/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_challenges.json b/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_challenges.json new file mode 100644 index 0000000000..282f965e70 --- /dev/null +++ b/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_challenges.json @@ -0,0 +1,17 @@ +{ + "name": "CC:T Challenges Solutions", + "icon": "computercraft:printed_book", + "category": "patchouli:quests", + "sortnum": 3, + "pages": [ + { + "type": "text", + "text": "$(1)We really advice you to read ComputerCraft: Tweaked quest line first before reading those pages!$(reset) Everything here and on other ComputerCraft related pages in this book is just additional notes filling up holes in quest line!" + }, + + { + "type": "text", + "text": "$(o)$(l)This is just a Draft Page, challenges still aren't finished and can change!$()" + } + ] +} \ No newline at end of file diff --git a/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_docs.json b/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_docs.json index 20bc9c9d75..17df0bd933 100644 --- a/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_docs.json +++ b/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_docs.json @@ -1,5 +1,5 @@ { - "name": "CC:T documentation", + "name": "CC:T Documentation", "icon": "computercraft:printed_book", "category": "patchouli:quests", "sortnum": 1, @@ -11,12 +11,12 @@ { "type": "text", - "text": "Welcome to \"Book section\" of ComputerCraft: Tweaked quest line! Here you will find help with tasks, challenges, additional notes and links helpful in your programming adventure. This chapter will give you links for entire documentation you need to use ComputerCraft: Tweaked." + "text": "$(l)Welcome $(playername) to \"Book chapter\" of ComputerCraft: Tweaked quest line!$(reset)$(br)Here you will find help with tasks, challenges, additional notes and links helpful in your programming adventure. This chapter will give you links for entire documentation you need to use ComputerCraft: Tweaked." }, { "type": "text", - "text": "$(1)Documentation$(reset) This section is WIP. I have no idea how to exactly do links and format this, so this is only a test!" + "text": "$(l) Documentation$(reset) $(br)Hover at any link to get more information what you can find there.$(br) $(li)$(l:https://www.lua.org/manual/5.1)$(t:Here you can find everything Lua has to offer by default! However not everything here works in CC:T, and there is nothing about custom APIs.)Lua Documentation$()$(li)$(l:https://tweaked.cc/)$(t:Here you can find every API CC:T has to offer, and how to use each of them.)CC:T Documentation$()$(li)$(l:link_to_add)$(t:Here you can find how to use each of Advanced Peripherals blocks with their corresponding API.)Advanced Peripherals Wiki$()$(li)$(l:link_to_add)$(t:This is entire spreadsheet with all functions Mekanism API has to offer! Unfortunately there is little to no information on how to use it, so you need to experiment on your own.)Mekanism API$()" } ] } \ No newline at end of file diff --git a/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_tasks.json b/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_tasks.json new file mode 100644 index 0000000000..6a80b51381 --- /dev/null +++ b/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_tasks.json @@ -0,0 +1,17 @@ +{ + "name": "CC:T Tasks Solutions", + "icon": "computercraft:printed_book", + "category": "patchouli:quests", + "sortnum": 2, + "pages": [ + { + "type": "text", + "text": "$(1)We really advice you to read ComputerCraft: Tweaked quest line first before reading those pages!$(reset) Everything here and on other ComputerCraft related pages in this book is just additional notes filling up holes in quest line!" + }, + + { + "type": "text", + "text": "$(o)$(l)This is just a Draft Page, tasks still aren't finished and can change!$()" + } + ] +} \ No newline at end of file From 179157cb759e135a53ea049141ba96b3b8667365 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Tue, 2 Aug 2022 11:57:18 +0200 Subject: [PATCH 46/53] CC:T Quests - Patchouli hotfix Fast finish of cc_t_docs.json, as I got internet access and was able to get rest of the links necessary for it. --- .../modded_for_dummies/en_us/entries/quests/cc_t_docs.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_docs.json b/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_docs.json index 17df0bd933..9db4b46334 100644 --- a/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_docs.json +++ b/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_docs.json @@ -16,7 +16,7 @@ { "type": "text", - "text": "$(l) Documentation$(reset) $(br)Hover at any link to get more information what you can find there.$(br) $(li)$(l:https://www.lua.org/manual/5.1)$(t:Here you can find everything Lua has to offer by default! However not everything here works in CC:T, and there is nothing about custom APIs.)Lua Documentation$()$(li)$(l:https://tweaked.cc/)$(t:Here you can find every API CC:T has to offer, and how to use each of them.)CC:T Documentation$()$(li)$(l:link_to_add)$(t:Here you can find how to use each of Advanced Peripherals blocks with their corresponding API.)Advanced Peripherals Wiki$()$(li)$(l:link_to_add)$(t:This is entire spreadsheet with all functions Mekanism API has to offer! Unfortunately there is little to no information on how to use it, so you need to experiment on your own.)Mekanism API$()" + "text": "$(l) Documentation$(reset) $(br)Hover at any link to get more information what you can find there.$(br) $(li)$(l:https://www.lua.org/manual/5.1)$(t:Here you can find everything Lua has to offer by default! However not everything here works in CC:T, and there is nothing about custom APIs.)Lua Documentation$()$(li)$(l:https://tweaked.cc/)$(t:Here you can find every API CC:T has to offer, and how to use each of them.)CC:T Documentation$()$(li)$(l:https://docs.srendi.de)$(t:Here you can find how to use each of Advanced Peripherals blocks with their corresponding API. For this modpack, see 1.16 section of the page.)Advanced Peripherals Wiki$()$(li)$(l:https://docs.google.com/spreadsheets/d/1sheh1BIeP_vSto881H6UtgXvxdbyJEfILM_uUW_UD7Q/edit)$(t:This is entire spreadsheet with all functions Mekanism API has to offer! Note that this spreadsheet doesn't have information on how to use API, and some of the functions are described on Advanced Peripherals Wiki in Mod Integrations section.)Mekanism API$() $(br2)Note that other mod integrations mentioned in CC:T quest line are on Advanced Peripherals Wiki in \"Mod integration\" section of the page." } ] } \ No newline at end of file From d127b4818b754e2096728ca5d34a82d47591b712 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Tue, 2 Aug 2022 14:45:03 +0200 Subject: [PATCH 47/53] CC:T Quests - Change of plans with Patchouli I did read a bit of that book, and I've realised that entries there are "read in any order" so I decided to ompress cc_t_docs.json cc_t_tasks.json and cc_t_challenges.json to one entry cc_t_book.json :D Now there is no need to read this in any order, as its one entry. --- .../quests/{cc_t_docs.json => cc_t_book.json} | 16 +++++++++++++--- .../en_us/entries/quests/cc_t_challenges.json | 17 ----------------- .../en_us/entries/quests/cc_t_tasks.json | 17 ----------------- 3 files changed, 13 insertions(+), 37 deletions(-) rename patchouli_books/modded_for_dummies/en_us/entries/quests/{cc_t_docs.json => cc_t_book.json} (62%) delete mode 100644 patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_challenges.json delete mode 100644 patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_tasks.json diff --git a/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_docs.json b/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_book.json similarity index 62% rename from patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_docs.json rename to patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_book.json index 9db4b46334..1a145b057d 100644 --- a/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_docs.json +++ b/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_book.json @@ -1,22 +1,32 @@ { - "name": "CC:T Documentation", + "name": "CC:T Links and tasks", "icon": "computercraft:printed_book", "category": "patchouli:quests", "sortnum": 1, "pages": [ { "type": "text", - "text": "$(1)We really advice you to read ComputerCraft: Tweaked quest line first before reading those pages!$(reset) Everything here and on other ComputerCraft related pages in this book is just additional notes filling up holes in quest line!" + "text": "$(1)We really advice you to read ComputerCraft: Tweaked quest line first before reading this entry!$(reset) Everything here is just additional notes filling up holes in quest line and giving you links to useful sites. $(br)Have fun!" }, { "type": "text", - "text": "$(l)Welcome $(playername) to \"Book chapter\" of ComputerCraft: Tweaked quest line!$(reset)$(br)Here you will find help with tasks, challenges, additional notes and links helpful in your programming adventure. This chapter will give you links for entire documentation you need to use ComputerCraft: Tweaked." + "text": "$(l)Welcome $(playername) to \"Book chapter\" of ComputerCraft: Tweaked quest line!$(reset)$(br)Here you will find help with tasks, challenges, additional notes and links helpful in your programming adventure. It is recommended to look here while you are completing quest line, as you can see solutions to tasks and get help if you aren't able to do them. So what are you waiting for, lets get started!" }, { "type": "text", "text": "$(l) Documentation$(reset) $(br)Hover at any link to get more information what you can find there.$(br) $(li)$(l:https://www.lua.org/manual/5.1)$(t:Here you can find everything Lua has to offer by default! However not everything here works in CC:T, and there is nothing about custom APIs.)Lua Documentation$()$(li)$(l:https://tweaked.cc/)$(t:Here you can find every API CC:T has to offer, and how to use each of them.)CC:T Documentation$()$(li)$(l:https://docs.srendi.de)$(t:Here you can find how to use each of Advanced Peripherals blocks with their corresponding API. For this modpack, see 1.16 section of the page.)Advanced Peripherals Wiki$()$(li)$(l:https://docs.google.com/spreadsheets/d/1sheh1BIeP_vSto881H6UtgXvxdbyJEfILM_uUW_UD7Q/edit)$(t:This is entire spreadsheet with all functions Mekanism API has to offer! Note that this spreadsheet doesn't have information on how to use API, and some of the functions are described on Advanced Peripherals Wiki in Mod Integrations section.)Mekanism API$() $(br2)Note that other mod integrations mentioned in CC:T quest line are on Advanced Peripherals Wiki in \"Mod integration\" section of the page." + }, + + { + "type": "text", + "text": "$(l) Tasks$()$(br)On another pages you will find tasks explained in higher detail and showed solution to them. $(br)$(o)Take a note that this could destroy fun from experimenting on your own, and its recommended to read them only after you completed task you want to see, or you aren't able to complete it and need help.$()" + }, + + { + "type": "text", + "text": "$(l) Index$()$(li)Task 1$(li)Task 2$(li)Task 3$(li)Task 4$(li)Task 5$(li)Task 6$(li)WIP" } ] } \ No newline at end of file diff --git a/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_challenges.json b/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_challenges.json deleted file mode 100644 index 282f965e70..0000000000 --- a/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_challenges.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "CC:T Challenges Solutions", - "icon": "computercraft:printed_book", - "category": "patchouli:quests", - "sortnum": 3, - "pages": [ - { - "type": "text", - "text": "$(1)We really advice you to read ComputerCraft: Tweaked quest line first before reading those pages!$(reset) Everything here and on other ComputerCraft related pages in this book is just additional notes filling up holes in quest line!" - }, - - { - "type": "text", - "text": "$(o)$(l)This is just a Draft Page, challenges still aren't finished and can change!$()" - } - ] -} \ No newline at end of file diff --git a/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_tasks.json b/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_tasks.json deleted file mode 100644 index 6a80b51381..0000000000 --- a/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_tasks.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "CC:T Tasks Solutions", - "icon": "computercraft:printed_book", - "category": "patchouli:quests", - "sortnum": 2, - "pages": [ - { - "type": "text", - "text": "$(1)We really advice you to read ComputerCraft: Tweaked quest line first before reading those pages!$(reset) Everything here and on other ComputerCraft related pages in this book is just additional notes filling up holes in quest line!" - }, - - { - "type": "text", - "text": "$(o)$(l)This is just a Draft Page, tasks still aren't finished and can change!$()" - } - ] -} \ No newline at end of file From b27ceaaa52eadaff3d0c8f271cb9bbbbf75c4992 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Sat, 6 Aug 2022 22:39:42 +0200 Subject: [PATCH 48/53] CC:T Quests - Mod APIs and APIs "format" test Added new Sections in APIs part. Added Botania, IE, ID, "Minecraft" Apis and mods that are causing problems with CC. Reworked a bit Mek API. --- .../chapters/computercraft_tweaked.snbt | 234 ++++++++++++++++-- .../en_us/entries/quests/cc_t_book.json | 4 +- 2 files changed, 218 insertions(+), 20 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index 5b0dd1f324..aca2a9d831 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -24,7 +24,7 @@ "" "These quests are meant to showcase the mod, and teach you, fellow Player, Basics of Basics with Lua and how to start learning more!" "" - "~~Kanzio" + "~~Kanzaji" ] size: 2.0d optional: true @@ -332,11 +332,7 @@ y: 0.0d shape: "circle" subtitle: "Lua Basics: Universal Peripheral APIs" - description: [ - "ComputerCraft: Tweaked does support as peripherals other blocks as well! Your peripheral can be nearly anything, Minecraft Chest, Mekanism Reactor, Drawer, nearly any block works!" - "" - "Note that some mods does have support for ComputerCraft, and in that case blocks from that mod will have their own API." - ] + description: ["ComputerCraft: Tweaked does support as peripherals other blocks as well! Your peripheral can be nearly anything, Minecraft Chest, Mekanism Reactor, Drawer, nearly any block works!"] dependencies: ["378BEFB62C4F98BF"] hide: true min_width: 350 @@ -355,7 +351,7 @@ { title: "Inventory API" icon: "minecraft:barrel" - x: -9.0d + x: -7.5d y: -1.5d subtitle: "Lua Basics: Global Inventory API" dependencies: ["55493D823F7403DA"] @@ -375,13 +371,13 @@ { title: "Liquid API" icon: "minecraft:water_bucket" - x: -9.5d - y: -0.5d + x: -7.0d + y: 1.5d subtitle: "Lua Basics: Global Liquid API" description: [ "Liquids API is used to move liquids around in your network. It is really simple API, but it is actually useful in more complex fluid automations (like Mekanism 5x Ore Processing)." "" - "Fluid API Functions:" + "-- Fluid API Functions:" "" "> tanks() -> Returns a table with tanks in a peripheral. Empty ones will be \"nil\", non-empty ones will have basic information about that liquid, like Amount and Name. (Recommended to use pairs() with that table for looping)" "" @@ -443,14 +439,16 @@ { title: "Energy API" icon: "engineersdecor:sign_hotwire" - x: -9.5d - y: 0.5d + x: -8.0d + y: 1.5d subtitle: "Lua Basics: Global Energy API" description: [ "This one is unfortunately really simple API, with not a lot of use. It can only read Energy capacity of some blocks." "" "Energy API Functions:" + "" "> getEnergy() -> Returns the energy stored in that peripheral" + "" "> getEnergyCapacity() -> Returns maximum energy capacity of peripheral" ] dependencies: ["55493D823F7403DA"] @@ -1762,6 +1760,8 @@ x: -0.5d y: -8.0d subtitle: "Coding practice: Loops" + dependencies: ["788EAA0E430DA5C3"] + hide: true id: "3AA1096DA1C0287E" tasks: [{ id: "00AAF998FF0416A3" @@ -1805,19 +1805,19 @@ }] } { - title: "Mekanism API" + title: "Mekanism" icon: "mekanism:alloy_atomic" - x: -9.0d - y: 1.5d + x: -10.5d + y: -2.0d subtitle: "Lua Basics: Mekanism API" description: [ "Mekanism is one of those mods that have ComputerCraft: Tweaked support! However, there is so much functions for every Mekanism machine, it is not possible to explain that API here. You will need to use external Excel spreadsheet this time." "" "Searching for anything is fairly easy. Press \"ctrl\" + \"f\" and search for Mekanism machine you want to use. Next to every machine are functions you can use to interact with it!" "" - "Note that this API doesn't work super well with every Mekanism machine, and there isn't a lot of explenation of what functions do, so experimenting on your own is necessary." + "Note that this API doesn't work super well with every Mekanism machine, and there isn't a lot of explanation of what functions do (There is a bit on Advanced Peripherals wiki, but not everything), so experimenting on your own is necessary." ] - dependencies: ["55493D823F7403DA"] + dependencies: ["7F26B046A65E9EDB"] min_width: 400 id: "43D7B585768ACD4D" tasks: [{ @@ -2215,7 +2215,7 @@ }] } { - title: "Re-usable links and Tasks " + title: "Re-usable links and solution to tasks " icon: { id: "patchouli:guide_book" Count: 1b @@ -2249,5 +2249,203 @@ xp: 100 }] } + { + title: "Mod Integrations" + icon: "create:cogwheel" + x: -10.0d + y: 0.0d + shape: "rsquare" + subtitle: "Lua Basics: Mod-Added APIs" + description: [ + "Some of the mods have their own API that adds functionality to their blocks. Here are all of the integrations that are in place in Enigmatica 6!" + "" + "Note that most of them have their description in Advanced Peripherals documentation, so that’s the place to search more information. Additional links are in corresponding quests." + ] + dependencies: ["55493D823F7403DA"] + min_width: 250 + id: "7F26B046A65E9EDB" + tasks: [{ + id: "4545EA1D31B4B5C3" + type: "checkmark" + title: "Got it!" + }] + rewards: [{ + id: "52F6D5BCD76842E6" + type: "custom" + title: "[Link] Advanced Peripherals Wiki" + }] + } + { + title: "Botania" + icon: "botania:brewery" + x: -11.5d + y: -1.5d + subtitle: "Lua Basics: Botania API" + description: [ + "Botania has integration that could be really useful in controlling your mana generation and usage!" + "" + "-- Botania API:" + "" + "- General:" + "> getMaxMana() -> Returns Number with mana capacity of the buffer." + "> getMana() -> Returns Number with amount of stored mana in a buffer." + "" + "- Mana Pool \\& Mana Spreader" + "> isEmpty() -> Returns true (boolean) if mana buffer is empty." + "> isFull() -> Returns true (boolean) if mana buffer is full." + "" + "- Mana Spreader Exclusive" + "> getVariant() -> Returns string with the variant of the spreader." + "> getBounding() -> Returns table with the coordinates of the target of the spreader." + "" + "- Mana Pool Exclusive" + "> getManaNeeded() -> Returns number with the amount of mana needed to fill the pool." + "" + "- Any mana generating flower:" + "> isPassiveFlower() -> Returns true (boolean) if the flower can passively generate mana." + "> isOnEnchantedSoil() -> Returns true (boolean) if the flower is on enchanted soil." + "> getGeneration() -> Returns Number with how much Mana flower can generate per tick." + ] + dependencies: ["7F26B046A65E9EDB"] + min_width: 475 + id: "5C1DA410C9AA2257" + tasks: [{ + id: "1BE43465007D5045" + type: "checkmark" + title: "Got it!" + }] + } + { + title: "Immersive Engineering" + icon: { + id: "immersiveengineering:hammer" + Count: 1b + tag: { + Damage: 0 + } + } + x: -12.0d + y: -0.5d + subtitle: "Lua Basics: Immersive Engineering API" + description: [ + "Immersive engineering unfortunetaly has only additional support for redstone wires and capacitors, however its good to know its a thing." + "" + "-- Immersive Engineering API Functions:" + "" + "- Capacitors:" + "> getEnergy() -> Check Energy API" + "> getEnergyNeeded() -> Returns number with amount of energy that is needed to fill the capacitor." + "> getEnergyFilledPercentage() -> Returns number from 0 to 1 with percentage fill of the capacitor." + "> getMaxEnergy() -> Returns number with maximum energy capacitor can store." + "" + "- Redstone Wire Connector" + "> setRedstoneChannel(color) -> Sets the redstone channel of the wire connector." + "● color (string) -> Color of the channel you want your connector set to." + "> getRedstoneChannel() -> Returns string with the current redstone channel of connector." + "> isInputMode() -> Returns true (boolean) if the mode of the wire connector is set to input." + "> getOutput() -> Returns the number with the power of the redstone on the current channel." + "> getRedstoneForChannel(color) -> Returns number with the power of redstone from desired channel." + "● color (string) -> Color of the channel you want to get redstone power from." + "" + "- Redstone Probe:" + "> setSendingChannel(color) -> Sets the sending channel of the probe connector." + "● color (string) -> Color of the channel you want your connector send signal to." + "> setReceivingChannel(color) -> Sets the receiving channel of the probe connector." + "● color (string) -> Color of the channel you want your connector recive signal from." + "> getReceivingChannel() -> Returns string with the receiving channel of the probe connector." + "> getSendingChannel() -> Returns string with the sending channel of the probe connector." + "> getRedstoneForChannel(color) -> Returns number with the redstone power on desired channel." + "● color (string) -> Color of the channel you want to get signal from." + ] + dependencies: ["7F26B046A65E9EDB"] + min_width: 525 + id: "36B1950BED69F9B6" + tasks: [{ + id: "6D8C553262A245A0" + type: "checkmark" + title: "Got it!" + }] + } + { + title: "There are broken mod integrations?" + icon: "engineersdecor:sign_caution" + x: -10.5d + y: 2.0d + subtitle: "Problematic interractions" + description: [ + "Some of the mods unfortunetaly doesn't have great interraction with ComputerCraft, this is a list with mods that are known to cause issues. If you found any problematic mods, let us know!" + "" + "Broken interractions:" + "" + "● Storage Drawers -> Because how weird drawers work, they are problematic with ComputerCraft. Advanced peripherals have a patch for that, but it’s not perfect and because of that it's not recommended to use Storage Drawers with ComputerCraft. " + "" + "● Mekanism -> Their API isn't perfect, so there are some problems with it." + ] + dependencies: ["7F26B046A65E9EDB"] + min_width: 375 + id: "26F7BB612EBB0B08" + tasks: [{ + id: "6B278B1E5E8843C8" + type: "checkmark" + title: "Got it!" + }] + } + { + title: "Integrated Dynamics" + icon: "integrateddynamics:crystalized_menril_chunk" + x: -11.5d + y: 1.5d + subtitle: "Lua Basics: Integrated Dynamics API" + description: [ + "Integrated Dynamics has a bit of support for ComputerCraft, but its only possible to read variables from Variable store." + "" + "-- ID API Functions:" + "" + "> list() -> Returns table with list of variables inside Variable Store. However without any values." + "" + "> read(slot) -> Used to read value of specific variable. Returns table with a value." + "● slot: (Number) -> Slot from which variable value is read." + ] + dependencies: ["7F26B046A65E9EDB"] + min_width: 300 + id: "484DF013A150CDD7" + tasks: [{ + id: "6CFF1AB5B4A480F4" + type: "checkmark" + title: "Got it!" + }] + } + { + title: "Minecraft" + icon: "minecraft:beacon" + x: -12.0d + y: 0.5d + subtitle: "Lua Basics: Minecraft features" + description: [ + "Minecraft has been added support as well, however its only for two blocks: Beacon and Noteblock" + "" + "-- Minecraft API Functions:" + "" + "- Beacon Functions:" + "> getLevel() -> Returns a Number with level of the beacon" + "> getPrimaryEffect() -> Returns a string with primary effect of the beacon" + "> getSecondaryEffect() -> Returns a string with secondary effect of the beacon" + "" + "- Noteblock Functions:" + "> playNote() -> Plays the sound of current note." + "> getNote() -> Returns Number (0-24) indicating what note is set." + "> changeNoteBy(Note) -> Used to change note to a given in the argument. Returns new note if successful." + "● Note: (Number from 0 to 24) -> Note you want to be set." + "> changeNote() -> Returns number note if successful, or -1 if not. Changes note by 1 like you would by right-clicking noteblock." + ] + dependencies: ["7F26B046A65E9EDB"] + min_width: 400 + id: "79415881D71D8D7F" + tasks: [{ + id: "1E789F68DCF6F1CA" + type: "checkmark" + title: "Got it!" + }] + } ] } diff --git a/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_book.json b/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_book.json index 1a145b057d..69f219fa37 100644 --- a/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_book.json +++ b/patchouli_books/modded_for_dummies/en_us/entries/quests/cc_t_book.json @@ -6,7 +6,7 @@ "pages": [ { "type": "text", - "text": "$(1)We really advice you to read ComputerCraft: Tweaked quest line first before reading this entry!$(reset) Everything here is just additional notes filling up holes in quest line and giving you links to useful sites. $(br)Have fun!" + "text": "$(1)We really advice you to read ComputerCraft: Tweaked quest line first before reading this entry!$(reset)$(br)Everything here is just additional notes filling up holes in quest line and giving you links to useful sites. $(br)Have fun!" }, { @@ -21,7 +21,7 @@ { "type": "text", - "text": "$(l) Tasks$()$(br)On another pages you will find tasks explained in higher detail and showed solution to them. $(br)$(o)Take a note that this could destroy fun from experimenting on your own, and its recommended to read them only after you completed task you want to see, or you aren't able to complete it and need help.$()" + "text": "$(l) Tasks$()$(br)On another pages you will find tasks explained in higher detail and showed solution to them. $(br2)$(o)Take a note that this could destroy fun from experimenting on your own, and its recommended to read them only after you completed task you want to see, or you aren't able to complete it and need help.$()" }, { From bcdcbc85ff12f45ff2e404efd6fbff5e84331cb3 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Tue, 9 Aug 2022 11:03:56 +0200 Subject: [PATCH 49/53] CC:T Quests - A bit of cleanup Just few small fixes of stuff I found while reading those quests again. (Also added few Draft quests, so image of the quest line is nearly finished, just content is left to do. --- .../chapters/computercraft_tweaked.snbt | 127 +++++++++++++++--- 1 file changed, 105 insertions(+), 22 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index aca2a9d831..ea9ce7cf59 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -82,7 +82,7 @@ ] dependencies: [ "2D79E4D126EE389E" - "6F651FA6C015CA4A" + "2BA0F0C3EEF83EEC" ] hide: true size: 1.25d @@ -717,7 +717,7 @@ description: [ "Here are the links to the Official ComputerCraft: Tweaked documentation, as well as Lua Documentation." "" - "In those documentations you can find nearly everything about anything. If you have problem with something from the quest line or you want to learn something new, this is the place to go!" + "In those you can find nearly everything about anything. If you don’t understand some topic or you just want to learn something new, this is the place to go!" "" "In most of the quests, as a reward there will be a link to a page talking especially about topic the quest was, so if you want to learn more as you go, you can." ] @@ -755,7 +755,7 @@ "" "In the subtitle, there will be rating from 1 to 10 in terms of difficulty. Higher numbers could require from you more knowledge and / or reading Lua documentation." "" - "After completing every quest, you will get a ComputerCraft trophy!" + "After completing every quest, you will get a ComputerCraft trophy! (Dev note: If I managed to add it)" ] hide: true size: 1.5d @@ -784,7 +784,7 @@ "" "You can upload files from your real computer into the in-game PC! You just have to create a file on your desktop, rename it onto [your_name].lua and you can start coding. After you finished, you just drag \\& drop it into in-game Computer and run it. Simple as that!" "" - "Note that file will be uploaded to a directory you are currently in, and if file with that name exists it will be over written!" + "Note that file will be uploaded to a directory you are currently in, and if file with that name exists it will be overwritten!" "" "There is also an addon for Visual Studio Code, that adds ComputerCraft support in Lua Language. Link to that is as the quest reward." ] @@ -824,16 +824,15 @@ description: [ "Welcome to Lua fellow Player!" "" - "Lua is one of many coding languages out there, but it's one of the easiest ones. Don't think that it means it is worse than others!" + "Lua is one of many coding languages out there, but it's one of the easiest ones. Don't think that it means it is worse than others." "" - "Of course that isn't the only use for it. There is a lot of games coded in Lua, that are pretty good and popular (The Binding of Isaac for example)." - "That doesn't mean that it's only used in this application. There are a lot of games coded on Lua, that are pretty neat and popular (The Binding of Isaac for example)." + "Main use of it is as a coding language in games. Of course that isn't the only use for it, but most common one. However there is a lot of games coded in Lua, that are pretty good and popular (The Binding of Isaac for example)." "" - "In this tutorial I'll try to teach you the basics of basics of Lua, so you can try doing your own automation projects with it." + "In this “tutorial” I'll try to teach you the basics of Lua and help you start your journey with coding!" ] dependencies: ["2D79E4D126EE389E"] size: 1.5d - min_width: 275 + min_width: 300 id: "44029061DB640AE2" tasks: [{ id: "6A987EA5C795264E" @@ -1001,7 +1000,7 @@ "> print(string) -- Basic function to write text on the screen. Has one argument." "" "In my case I called print(). Some of the functions don't require you to give them arguments, they can even not have any of them, but there can also be functions that require even 10 arguments. Crazy isn't it?!" - "In my case, print() requires as its first and only argument some string." + "In this case, print() requires as its first and only argument some string." "Example usage of print() looks like this:" "" "> print(\"This is a test!\") -- Writes on the screen --> This is a test!" @@ -1034,7 +1033,7 @@ y: -4.9d subtitle: "Lua Basics #1 - Variable types" description: [ - "String is a type of variable that stores a sequence of characters. You can type here anything, binary code (Binary - Code using ones and zeros), your name, entire address or your homework if you so desire." + "String is a type of variable that stores a sequence of characters. You can type here anything, binary code (Binary - Code using ones and zeros), your name, entire address or your homework if you want." "" "● Strings need to be written between double quotes to be valid, otherwise the program will think it's the name of variable!" "" @@ -1042,6 +1041,7 @@ "> local my_first_string = Hello Player -- Not valid, Lua will think those are two variables" "" "● Strings cannot be modified, but you can do a copy of them with a modification you want to do." + "" "> local test_string = \"This is a test\"" "> local test_string_edited = string.gsub(test_string, \"test\", \"Test!\", 1)" "> \"This is a Test!\" -> test_string_edited" @@ -1051,6 +1051,7 @@ "" "● There is also a way to add some text at the end of your string. This time you can \"edit\" the initial string by overwriting it, but it's sometimes useful to have it as separate variables." "To add some text at the end of your string, you use 2 dots between 2 strings you want to add together:" + "" "> local string_1 = \"Hello \"" "> local string_2 = \"there!\"" "> string_1 = string_1 .. string_2" @@ -1064,7 +1065,7 @@ "56800F53C736541F" ] hide: true - min_width: 400 + min_width: 410 id: "32B8B586F03321A7" tasks: [{ id: "32E1201F35F1A394" @@ -1148,6 +1149,9 @@ "● You can create multiple variables at the same time! You just simply type two or more names after \"local\" and separate them with a comma. You can even set a unique value for each variable." "> local x, y, z = 1, 2, 3" "> 1 -> x / 2 -> y / 3 -> z" + "" + "● You can better describe your variables and code with use of comments. You create them with use of two minuses:" + "> print(\"Hello\") -- This is a comment that is ignored by Lua, you can write here anything!" ] dependencies: ["29C780353E7FB720"] hide: true @@ -1200,11 +1204,12 @@ "" "More tasks will get unlocked, the more you advance in Lua Basics! It's recommended to do them as soon as possible, so you will practice stuff you learned as you go :D" "" - "Note that at the end of every quests you will receive link to a program that will showcase working program for that task." + "There are also additional notes there, so it’s definitely worth the effort. Have fun!" ] dependencies: [ "2D79E4D126EE389E" "6A987EA5C795264E" + "2F2D30981A0D12B6" ] hide: true size: 1.5d @@ -1227,7 +1232,7 @@ "" "In Lua there is 8 variable types, however I will cover only 6 because 2 of them aren't that useful in ComputerCraft, and require much more knowledge." "" - "Lua, whenever you are trying to do something that is designed for a different type of variable, will try to convert the variable you use to the type it needs to be. Of course it will not success 100%, because sometimes its impossible to convert. In this case it will crash the program and give an error about a illegal function on that type of the variable." + "Lua, whenever you are trying to do something that is designed for a different type of variable, will try to convert the variable you use to the type it needs to be. Of course it will not success 100% of the time, because sometimes it’s impossible to convert. In this case it will crash the program and give an error about an illegal function on that type of the variable." "" "There are few ways to convert one type to another manually, but it's not that useful in stuff we are gonna do, and can be found in Official Lua Docs." ] @@ -1334,7 +1339,7 @@ } { title: "Your first program!" - icon: "rftoolscontrol:program_card" + icon: "thermal:wrench" x: -1.5d y: -4.0d subtitle: "Practice: Variables" @@ -1352,7 +1357,8 @@ "" "● Lastly let's see the value of our Boolean." "" - "If everything was done correctly, the screen should have 6 lines printed on it. The first one is two strings. The second and third are numbers with the fourth being the sum of them. The fifth line should be \"Enigmatica 6 is great!\" and the last line should show the value of your Boolean (True/False) If that's what you see, congratulations! You created your first program!" + "Now in our Modded for Dummies book, there are solutions to those tasks, so go there and check if you did it correctly. If so, congratulations! You created your first program!" + "Note that our code can be different, but results must be the same." "" "Pro Tip: You don't need to do another variable in a few cases like adding 2 variables together. You can do that in the functions argument!" "> local number_1, number_2 = 1, 5" @@ -1430,7 +1436,11 @@ "" "If you have any problem with some program, use help command!" ] - dependencies: ["2D79E4D126EE389E"] + dependencies: [ + "2D79E4D126EE389E" + "6A987EA5C795264E" + ] + hide: true size: 1.5d min_width: 450 id: "1FF283A30B6E415C" @@ -1536,8 +1546,6 @@ "" "● At last, call our third function five times and see what happens." "" - "If done correctly you should see one line on the screen with \"Sum of the arguments equals: \" and sum of your two numbers, and second line with your two strings and result of 2nd function. This pattern should be visible 5 times." - "" "Tip: You don't need to do new variable in 2nd and 3rd step! In 2nd step you can divide in return command, and in 3rd step, you can add both strings and what function returns in one line in print argument!" "" "> print(string_1 .. string_2 .. function_2(number_1,number_2,number_3)) -- Prints string_1, string_2 and what function_2 returns." @@ -1607,7 +1615,7 @@ "" "Now if your code works, you can experiment a bit and see how the output changes with different inputs. Have fun!" "" - "Note from creator: I know those conditions doesn't have much sense, but they are done for you to practice \"elseif\" and \"else\" functions!" + "Note from creator: I know those conditions doesn't have much sense, but they are done for you to practice \"elseif\" and \"else\" functions. More explenation is in the book." ] dependencies: [ "7A434175E2B1AE04" @@ -1737,7 +1745,7 @@ "" "● Global APIs are accessible at all time with use of Global Variable. Some useful Global APIs will be in \"Global API\" Section. " "" - "● Peripherals APIs are only accessible, when you have connected peripheral that API uses. Before that however, you need to wrap that peripheral, as Peripheral APIs are \"block specific\". More about that in Lua basics #5.2 - Peripherals API" + "● Peripherals APIs are only accessible, when you have connected peripheral that API uses. Before that however, you need to wrap that peripheral, as Peripheral APIs are \"block specific\". More about that in Lua basics #5.2 - Peripherals API and Lua Basics #5.3 Peripherals APIs and their usage." "" "PS: No, unfortunately even though ComputerCraft has access to the internet, it is not possible to watch YouTube in game." ] @@ -2024,6 +2032,7 @@ "Here are few most useful Global Variables in ComputerCraft: Tweaked and Lua. Everything else you need to find by yourself in documentation, but those here should be enough for most automations projects in Minecraft." ] dependencies: ["1F7736775BFEA643"] + hide: true min_width: 350 id: "69341D3A85480AD9" tasks: [{ @@ -2063,6 +2072,7 @@ y: 2.0d subtitle: "Lua Basics #5.2 - \"os\" API" dependencies: ["69341D3A85480AD9"] + hide: true id: "29EC12D7DF1ED9FF" tasks: [{ id: "23197281ACBC72F5" @@ -2082,6 +2092,7 @@ y: 0.5d subtitle: "Lua Basics #5.2 - Peripheral API" dependencies: ["69341D3A85480AD9"] + hide: true id: "2A1B7703C6A4685D" tasks: [{ id: "3E85F8A3BC1D31AC" @@ -2128,6 +2139,7 @@ y: 1.0d subtitle: "Lua Basics #5.2 - Textutils API" dependencies: ["69341D3A85480AD9"] + hide: true id: "097B439DEE968650" tasks: [{ id: "39FB5759F1B08786" @@ -2149,6 +2161,8 @@ description: [ "Math library has a lot of Mathematical functions that could be useful for calculating stuff. All of them you can find in the link from the quest reward, but most useful ones are:" "" + "-- Math Library Functions:" + "" "> math.ceil(number) -> Rounds up the number up." "" "> math.floor(number) -> Rounds up number down." @@ -2163,6 +2177,7 @@ "> math.min(number_1 ... number_x) -> Returns smallest number from arguments." ] dependencies: ["69341D3A85480AD9"] + hide: true min_width: 400 id: "56A9604A23CBA7FE" tasks: [{ @@ -2181,7 +2196,9 @@ icon: "computercraft:printed_pages" x: 5.5d y: 4.0d + description: ["String Formating? Maybe?"] dependencies: ["69341D3A85480AD9"] + hide: true id: "77934DEAE0E3A2C3" tasks: [{ id: "7212F3E3220F211B" @@ -2195,6 +2212,7 @@ x: 6.5d y: 4.5d dependencies: ["69341D3A85480AD9"] + hide: true id: "21375DDBA4CF79A1" tasks: [{ id: "3862F5F8CF89CF59" @@ -2230,12 +2248,14 @@ description: [ "Unfortunetaly FTB quests didn't add repeatable quests yet, so links from quest rewards are only one-time use." "" - "However in our \"Modded for Dummies\" book in Quests category, there are pages with links and solutions to tasks, so you can check everything out everytime you need to. More information you will find there." + "However in our \"Modded for Dummies\" book in Quests category, there is an entry with links and solutions to tasks, so you can check everything out every time you need to." ] dependencies: [ "2D79E4D126EE389E" "00000000000006E9" + "0ED4FB7A29E8557D" ] + hide: true size: 1.25d id: "739DEEE353F742E8" tasks: [{ @@ -2447,5 +2467,68 @@ title: "Got it!" }] } + { + title: "Woops. That shouldn't happend" + icon: "computercraft:printed_page" + x: 0.0d + y: -9.5d + subtitle: "Lua Basics: Loops note" + description: ["(Note about loops that don't do much)"] + dependencies: ["3AA1096DA1C0287E"] + id: "164E9CE74DF24847" + tasks: [{ + id: "2A87CAE08B854F9F" + type: "checkmark" + title: "Got it working!" + }] + } + { + title: "Loops Part 2" + icon: "thermal:wrench" + x: 0.5d + y: -8.0d + subtitle: "Practice: pairs(), ipairs() and loops" + dependencies: ["3AA1096DA1C0287E"] + id: "1E530D7A8F225846" + tasks: [{ + id: "30A0B81DE06F43AF" + type: "checkmark" + title: "Got it working!" + }] + } + { + title: "So what is exactly \"Peripheral API\"?" + icon: "computercraft:printed_pages" + x: 8.0d + y: 5.5d + subtitle: "Lua Basics #5.3 - Peripherals APIs and their usage" + dependencies: [ + "1F7736775BFEA643" + "3E85F8A3BC1D31AC" + ] + hide: true + min_width: 450 + id: "0FB47A2AF9A13EA2" + tasks: [{ + id: "2BA0F0C3EEF83EEC" + type: "checkmark" + title: "Got it!" + }] + } + { + title: "Is this the end?" + icon: "computercraft:printed_pages" + x: 5.0d + y: 6.5d + subtitle: "Lua Basics #6 - Final Notes and how to learn!" + dependencies: ["0FB47A2AF9A13EA2"] + hide: true + id: "5AE0F4942ECD17C9" + tasks: [{ + id: "5D8B219E7EE96961" + type: "checkmark" + title: "Lua Basics #6 - Finish" + }] + } ] } From 7461f9b2a692c0c83e80fce6dfe53c9bd790ac0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Pilgaard=20Gr=C3=B8ndahl?= Date: Fri, 12 Aug 2022 08:12:54 +0000 Subject: [PATCH 50/53] Update MODLIST.md --- MODLIST.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MODLIST.md b/MODLIST.md index 34298b1ac4..ce50d74dc7 100644 --- a/MODLIST.md +++ b/MODLIST.md @@ -89,7 +89,6 @@ - [culinaryconstruct-forge-1.16.5-4.0.1.0.jar](https://www.curseforge.com/minecraft/mc-mods/culinary-construct/files/3756671) (by [TheIllusiveC4](https://www.curseforge.com/members/theillusivec4/projects)) - [curios-forge-1.16.5-4.0.8.2.jar](https://www.curseforge.com/minecraft/mc-mods/curios/files/3725386) (by [TheIllusiveC4](https://www.curseforge.com/members/theillusivec4/projects)) - [Curious Armor Stands-1.16.5-2.2.0.jar](https://www.curseforge.com/minecraft/mc-mods/curious-armor-stands/files/3574644) (by [ochotonida](https://www.curseforge.com/members/ochotonida/projects)) -- [curiouselytra-forge-1.16.5-4.0.2.4.jar](https://www.curseforge.com/minecraft/mc-mods/curious-elytra/files/3522097) (by [TheIllusiveC4](https://www.curseforge.com/members/theillusivec4/projects)) - [cyclepaintings_1.16.5-2.1.jar](https://www.curseforge.com/minecraft/mc-mods/cycle-paintings/files/3537758) (by [Serilum](https://www.curseforge.com/members/serilum/projects)) - [CyclopsCore-1.16.5-1.12.4.jar](https://www.curseforge.com/minecraft/mc-mods/cyclops-core/files/3796009) (by [kroeser](https://www.curseforge.com/members/kroeser/projects)) - [dankstorage-1.16.5-3.21.jar](https://www.curseforge.com/minecraft/mc-mods/dank-storage/files/3765084) (by [tfarecnim](https://www.curseforge.com/members/tfarecnim/projects)) @@ -107,6 +106,7 @@ - [dungeons_plus-1.16.5-1.1.5.jar](https://www.curseforge.com/minecraft/mc-mods/dungeons-plus/files/3318948) (by [ModdingLegacy](https://www.curseforge.com/members/moddinglegacy/projects)) - [dynviewdist-2.0.jar](https://www.curseforge.com/minecraft/mc-mods/dynamic-view/files/3358883) (by [someaddon](https://www.curseforge.com/members/someaddon/projects)) - [eidolon-0.2.7.jar](https://www.curseforge.com/minecraft/mc-mods/eidolon/files/3157832) (by [elucent_](https://www.curseforge.com/members/elucent_/projects)) +- [curiouselytra-forge-1.16.5-4.0.2.4.jar](https://www.curseforge.com/minecraft/mc-mods/elytra-slot/files/3522097) (by [TheIllusiveC4](https://www.curseforge.com/members/theillusivec4/projects)) - [EmendatusEnigmatica-1.2.15-build.7+mc1.16.5.jar](https://www.curseforge.com/minecraft/mc-mods/emendatus-enigmatica/files/3539648) (by [Ridanisaurus](https://www.curseforge.com/members/ridanisaurus/projects)) - [emojiful-1.16.4-2.1.6.jar](https://www.curseforge.com/minecraft/mc-mods/emojiful/files/3543338) (by [Buuz135](https://www.curseforge.com/members/buuz135/projects)) - [EnchantmentDescriptions-1.16.5-7.1.20.jar](https://www.curseforge.com/minecraft/mc-mods/enchantment-descriptions/files/3838362) (by [DarkhaxDev](https://www.curseforge.com/members/darkhaxdev/projects)) From 2b0699a0cf2be469ddfc5588c5fff7dbdf01ef18 Mon Sep 17 00:00:00 2001 From: Kanzaji ^^ <60540476+Kanzaji@users.noreply.github.com> Date: Fri, 12 Aug 2022 10:30:43 +0200 Subject: [PATCH 51/53] CC:T Quests - Global APIs (Variables) Progress 1 Added few global variables, waiting for review from few people :sweat_smile: --- .../chapters/computercraft_tweaked.snbt | 85 ++++++++++++++++++- 1 file changed, 81 insertions(+), 4 deletions(-) diff --git a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt index ea9ce7cf59..3e3c02827c 100644 --- a/config/ftbquests/quests/chapters/computercraft_tweaked.snbt +++ b/config/ftbquests/quests/chapters/computercraft_tweaked.snbt @@ -2051,8 +2051,24 @@ icon: "computercraft:printed_pages" x: 5.0d y: 3.0d - subtitle: "Lua Basics #5.2 - Colors API" + subtitle: "Lua Basics #5.2 - Colors Library usage" + description: [ + "Colors Library is a set of variables and functions to help you work with colors! It is useful while working with IE redstone wires, or when you want to have colored text for example." + "For non-American people, you can use different version of the library with different writing. (Colours Library). Usage is exactly the same otherwise." + "" + "Colors Library Usage:" + "" + "> colors.(color) -> Returns a \"code version\" of color you wrote after a dot. There are 16 basic colors available, same as colors available in minecraft. (Check documentation on Wiki for spelling)" + "" + "> packRGB(r, g, b) -> Combines a three-color RGB value into usable in ComputerCraft color." + "● r,g,b (Number) -> Values of intensity of each color (Red, Green, Blue) from 0 to 255." + "" + "> unpackRGB(rgb) -> Returns 3 numbers with intensity of basic colors (Red, Green, Blue)." + "● rgb -> Color you want to seperate." + ] dependencies: ["69341D3A85480AD9"] + hide: true + min_width: 500 id: "0E17CEC71EA384AE" tasks: [{ id: "1428C8E8290AB4F6" @@ -2091,8 +2107,37 @@ x: 7.5d y: 0.5d subtitle: "Lua Basics #5.2 - Peripheral API" + description: [ + "Peripheral API is used to wrap/find any peripheral on the network and get its functions to use it! In this quest you will find only functions that API has to offer, not explanation on how to use peripherals and their functions! For that, check out Lua Basics #5.3 that will be unlocked after this quest." + "" + "-- Peripheral API Functions:" + "" + "> peripheral.wrap(Name) -> Returns a table with peripheral's functions, that is used to interract with that specific peripheral." + "● Name (String) -> Name of peripheral you want to wrap. Can be also a direction relative to the computer (top, bottom, front, back, left, right)" + "" + "> peripheral.find(Type, [Filter]) -> Returns a table with all peripherals found on network with specified type. Entries in that table are tables like returned from wrap() function." + "● Type (String) -> Type of the peripheral you want to find." + "● Filter (Function) [Optional] -> Requires function returning Boolean used to filter found peripherals in final result. Executes code on every of the peripherals and if function returns true, that peripheral will be in final table." + "" + "> peripheral.getName(Peripheral) -> Returns a string with the name of wrapped peripheral." + "● Peripheral (Table) -> Requires table with peripheral like from wrap() function." + "" + "> peripheral.getType(Peripheral) -> Returns one or more strings with specified peripheral types." + "● Peripheral (String / Table) -> The name of the peripheral to find or wrapped peripheral." + "" + "----------------------------------------------------------------------------------" + "" + "Peripheral name is made of modification name, name of the block and a number after underscore." + "> minecraft:chest_0 -- Peripheral name of Minecraft chest." + "Peripheral name is only used when you are using wired modems! How to use them will be later on." + "" + "In the similar way you construct Type of the peripheral, but you don’t use a number this time:" + "> minecraft:chest -> Peripheral type of Minecraft chest." + "Note that peripheral can have multiple types, Minecraft chest is also an ‘inventory’ for example. More about that in Lua Basics #5.3" + ] dependencies: ["69341D3A85480AD9"] hide: true + min_width: 500 id: "2A1B7703C6A4685D" tasks: [{ id: "3E85F8A3BC1D31AC" @@ -2112,14 +2157,41 @@ y: 0.5d subtitle: "Lua Basics #5.2 - Term API" description: [ - "Terminal API (term) is used to interact with Terminal of your PC or your monitor!" - "It has a ton of functions, so I will just get few most important ones, but taking a look at the Documentation for it is definitely worth the time." + "Terminal API (term) is used to interact with terminal of your PC or your monitor!" + "It has a ton of functions, so I will just get few most important ones, but taking a look at the documentation for it is definitely worth the time. Note that every program will start on PC's terminal, so if you need to redirect from other monitor to PC terminal, save it with first functions of the API." + "" + "-- Term API functions:" + "" + "> term.current() -> Returns a “table” with currently used terminal. Output is used with redirect function." "" "> term.redirect(target) -> Redirects terminal output onto other terminal, like monitor." + "● target (table) -> A wraped monitor or terminal." + "" + "> write(text) -> Writes text on the screen, similiar to \"print\"." + "● text (any) -> What you want to write on the screen." + "" + "> term.clear() -> Clears the entire terminal screen." + "" + "> term.clearLine() -> Clears the line the cursor is at." + "● Cursor in ComputerCraft is like normal cursor you have on your real PC. It has x (width) and y (height) positions on the screen. Cursor is responsible for writing anything on the screen." + "" + "> term.getCursorPos() -> Returns 2 numbers with \"x\" and \"y\" positions of the cursor." "" + "> term.setCursorPos(x, y) -> It's used to set cursor position on the screen." + "● x -> Position from left of the screen where you want cursor." + "● y -> Position from top of the screen where you want cursor." + "" + "> term.getSize() -> Returns 2 numbers with x and y size of your terminal." + "" + "> term.scroll(y) -> Moves everything on the screen up or down." + "● y (Number) -> Amount of lines you want to move your screen by. Negative numbers will move screen down, positive up." + "" + "> setTextColor(color) -> Changes the color of the text (Works only on Advanced Computers/Monitors for newly written text after change!)" + "● color (color) -> Color you want your text to have." ] dependencies: ["69341D3A85480AD9"] - min_width: 400 + hide: true + min_width: 450 id: "75E0C3E753708FD4" tasks: [{ id: "0E6AADD401F2F7B6" @@ -2211,6 +2283,7 @@ icon: "computercraft:printed_pages" x: 6.5d y: 4.5d + description: ["Transformation of one variable types to others"] dependencies: ["69341D3A85480AD9"] hide: true id: "21375DDBA4CF79A1" @@ -2521,6 +2594,10 @@ x: 5.0d y: 6.5d subtitle: "Lua Basics #6 - Final Notes and how to learn!" + description: [ + "No, this isn't the end! In programming you can't always say that is the end, as you can always learn more." + "[WIP]" + ] dependencies: ["0FB47A2AF9A13EA2"] hide: true id: "5AE0F4942ECD17C9" From 73ae40b876573a63285005a8914ab8c989a10338 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Pilgaard=20Gr=C3=B8ndahl?= Date: Tue, 16 Aug 2022 09:35:34 +0000 Subject: [PATCH 52/53] Update MODLIST.md --- MODLIST.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MODLIST.md b/MODLIST.md index 824e527e4e..a5e27a0f83 100644 --- a/MODLIST.md +++ b/MODLIST.md @@ -42,7 +42,7 @@ - [Botania-1.16.5-420.2.jar](https://www.curseforge.com/minecraft/mc-mods/botania/files/3608755) (by [Vazkii](https://www.curseforge.com/members/vazkii/projects)) - [BotaniaAdditionsMC1.16.4-1.0.4.jar](https://www.curseforge.com/minecraft/mc-mods/botania-additions/files/3139471) (by [ToMe250](https://www.curseforge.com/members/tome250/projects)) - [BotanyPots-1.16.5-7.1.39.jar](https://www.curseforge.com/minecraft/mc-mods/botany-pots/files/3795322) (by [DarkhaxDev](https://www.curseforge.com/members/darkhaxdev/projects)) -- [Bountiful-1.16.4-3.3.1.jar](https://www.curseforge.com/minecraft/mc-mods/bountiful/files/3239647) (by [ejektaflex](https://www.curseforge.com/members/ejektaflex/projects)) +- [Bountiful-1.16.4-3.3.1.jar](https://www.curseforge.com/minecraft/mc-mods/bountiful/files/3239647) (by [Ejektaflex](https://www.curseforge.com/members/ejektaflex/projects)) - [buildinggadgets-1.16.5-3.8.2.jar](https://www.curseforge.com/minecraft/mc-mods/building-gadgets/files/3498508) (by [Direwolf20](https://www.curseforge.com/members/direwolf20/projects)) - [caelus-forge-1.16.5-2.1.3.2.jar](https://www.curseforge.com/minecraft/mc-mods/caelus/files/3522094) (by [TheIllusiveC4](https://www.curseforge.com/members/theillusivec4/projects)) - [cakechomps-forge-1.16.5-5.0.0.3.jar](https://www.curseforge.com/minecraft/mc-mods/cake-chomps/files/3464437) (by [TheIllusiveC4](https://www.curseforge.com/members/theillusivec4/projects)) From eba1aa4d435e05fac8aa29e465c4f6a66688246b Mon Sep 17 00:00:00 2001 From: Kanzaji <60540476+Kanzaji@users.noreply.github.com> Date: Sat, 17 Dec 2022 21:23:46 +0100 Subject: [PATCH 53/53] Update jei_search.json --- .../modded_for_dummies/en_us/entries/jei/jei_search.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/patchouli_books/modded_for_dummies/en_us/entries/jei/jei_search.json b/patchouli_books/modded_for_dummies/en_us/entries/jei/jei_search.json index 9f54dd90d6..a56edd927c 100644 --- a/patchouli_books/modded_for_dummies/en_us/entries/jei/jei_search.json +++ b/patchouli_books/modded_for_dummies/en_us/entries/jei/jei_search.json @@ -10,7 +10,7 @@ }, { "type": "text", - "text": "-@ searches for all the items into a $(l)specific mod$(reset)$(br)-# searches for all the items with a $(l)certain tooltip$(reset)$(br)-% searches for all the items in a $(l)certain creative tab$(reset)$(br)-$ searches for all the items with a $(l)certain tag$(reset)$(br)Also note that $(l)multiple terms work together, adding $(l)- in front of a word blacklists that term $(reset)from the search." + "text": "-@ searches for all the items from a $(l)specific mod$(reset)$(br)-# searches for all the items with a $(l)certain tooltip$(reset)$(br)-% searches for all the items in a $(l)certain creative tab$(reset)$(br)-$ searches for all the items with a $(l)certain tag$(reset)$(br)Also note that $(l)multiple terms work together, adding $(l)- in front of a word blacklists that term $(reset)from the search." } ] -} \ No newline at end of file +}