diff --git a/build.gradle b/build.gradle index e0b74dd7..37803528 100644 --- a/build.gradle +++ b/build.gradle @@ -91,7 +91,7 @@ repositories { name 'tterrag maven' url "http://maven.tterrag.com/" } - maven { // CraftTweaker (aka MineTweaker3), Immersive Engineering + maven { // CraftTweaker (aka MineTweaker3), Immersive Engineering, Patchouli name 'jared maven' url "http://blamejared.com/maven" } @@ -136,6 +136,7 @@ dependencies { // provided "com.builtbroken.icbm-classic:ICBM-classic:${config.ICBMclassic_version}" provided curse.resolve("icbm-classic", "${config.ICBMclassic_fileid}") provided "li.cil.oc:OpenComputers:${config.OpenComputers_version}" + provided "vazkii.patchouli:Patchouli:${config.Patchouli_version}" // compileOnly "mezz.jei:jei_1.10.2:3.13.+" // compileOnly "mcp.mobius.waila:Waila:1.7.0-B3_1.9.4" diff --git a/build.properties b/build.properties index c7505de3..5ea3ee71 100644 --- a/build.properties +++ b/build.properties @@ -9,6 +9,7 @@ ICBMclassic_version=1.12.2-4.0.0b74 ICBMclassic_fileid=2894147 ImmersiveEngineering_version=0.12-+ OpenComputers_version=MC1.12.2-1.7.2.+ +Patchouli_version=1.0-+ RedstoneFlux_version=1.12-2.1.+ mod_version=1.5.12 diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/book.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/book.json new file mode 100644 index 00000000..9d0f407b --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/book.json @@ -0,0 +1,10 @@ +{ + "name": "WarpDrive", + "landing_text": "Welcome to WarpDrive!$(br2)This manual is a work in progress, only first chapter has been written so far.$(br)Feel free to contribute and post comments on the official discord $(l:https://discordapp.com/invite/0ZanfS3S9yu3Wf2M)here$().", + "book_texture": "warpdrive:textures/gui/patchouli/book.png", + "filler_texture": "warpdrive:textures/gui/patchouli/page_filler.png", + "crafting_texture": "warpdrive:textures/gui/patchouli/crafting.png", + "model": "patchouli:book_blue", + "version": 1, + "creative_tab": "warpdrive.main" +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/0_basics.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/0_basics.json new file mode 100644 index 00000000..a3b2b6bc --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/0_basics.json @@ -0,0 +1,6 @@ +{ + "name": "Introduction", + "description": "This chapter covers the basic of the $(item)Mod$() including materials, tools, decoration and simple machines.$(br2)Hint: building a $(l:0_basics/laser_tree_farm)Laser Tree Farm$() will get you started to get $(l:0_basics/rubber)Rubber$().", + "icon": "warpdrive:component:33", + "sortnum": 0 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/2_exploration.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/2_exploration.json new file mode 100644 index 00000000..4abcd747 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/2_exploration.json @@ -0,0 +1,6 @@ +{ + "name": "Exploration", + "description": "This chapter covers everything about exploring $(l:2_exploration/celestial_objects)space and other planets$(), surviving in low $(l:2_exploration/gravity)low gravity$() and in $(l:2_exploration/breathing)absence of air$().", + "icon": "warpdrive:air_tank.superior", + "sortnum": 2 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/3_advanced_machines.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/3_advanced_machines.json new file mode 100644 index 00000000..fd332174 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/3_advanced_machines.json @@ -0,0 +1,6 @@ +{ + "name": "Advanced machines", + "description": "This chapter is about advanced machines for detection like $(l:3_advanced_machines/camera_and_monitor)cameras$(), $(l:3_advanced_machines/radar)radar$() and $(l:3_advanced_machines/siren)sirens$(), advanced $(l:3_advanced_machines/enantiomorphic_reactor)energy production$() and atomic science with the $(l:3_advanced_machines/large_hadron_collider)Large Hadron Collider$().", + "icon": "warpdrive:electromagnetic_cell.basic:24", + "sortnum": 3 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/4_movement.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/4_movement.json new file mode 100644 index 00000000..1ec1a3ee --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/4_movement.json @@ -0,0 +1,6 @@ +{ + "name": "Movement", + "description": "This chapter covers everything about moving from entities with $(l:4_movement/lift)lifts$(), and $(l:4_movement/transporter_room)transporters$(), to $(l:4_movement/ship)ships$() and how $(l:4_movement/ship_builder)build them$().", + "icon": "warpdrive:ship_token:20", + "sortnum": 4 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/5_combat.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/5_combat.json new file mode 100644 index 00000000..c3dfb4ae --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/5_combat.json @@ -0,0 +1,6 @@ +{ + "name": "Combat", + "description": "This chapter is all about combat, from protection with $(l:5_combat/hull)ship hull$() and $(l:5_combat/force_field_projector)force fields$(), to $(l:5_combat/laser_cannon)laser weapons$().", + "icon": "warpdrive:hull.advanced.stairs_orange", + "sortnum": 5 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/6_programming.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/6_programming.json new file mode 100644 index 00000000..7057ac0f --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/6_programming.json @@ -0,0 +1,6 @@ +{ + "name": "Programming", + "description": "All machines in the $(item)Mod$() can be programmed through LUA. This chapter covers the different API in place to that effect.", + "icon": "warpdrive:component:8", + "sortnum": 6 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/7_about_the_mod.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/7_about_the_mod.json new file mode 100644 index 00000000..8025ca4d --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/categories/7_about_the_mod.json @@ -0,0 +1,6 @@ +{ + "name": "About the mod", + "description": "This chapter covers general information about the $(item)Mod$().", + "icon": "minecraft:skull:3{SkullOwner:'LemADEC'}", + "sortnum": 7 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/biofiber.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/biofiber.json new file mode 100644 index 00000000..90cf64db --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/biofiber.json @@ -0,0 +1,25 @@ +{ + "name": "Biofiber", + "icon": "warpdrive:component:27", + "category": "0_basics", + "pages": [ + { + "type": "text", + "text": "$(item)Biofiber$() is a lightweight, flexible, environmental friendly alternative to composite materials.$(br2)It's used has a fabric to make clothing, notably $(l:0_basics/warp_armor)Space suits$(). It's also a base ingredient for $(l:0_basics/carbon_fiber)Carbon fiber$()." + }, + { + "type": "crafting", + "recipe": "warpdrive:component@27x9_block", + "recipe2": "warpdrive:component@27x2_sugarcane", + "title": "Biopulp", + "text": "Hint: get a silktouch pickaxe." + }, + { + "type": "smelting", + "recipe": "warpdrive:component:27", + "title": "Biofiber", + "text": "$(item)Biofiber$() is produced from smelting $(item)Biopulp$()." + } + ], + "sortnum": 2 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/carbon_fiber.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/carbon_fiber.json new file mode 100644 index 00000000..7f2c75c8 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/carbon_fiber.json @@ -0,0 +1,31 @@ +{ + "name": "Carbon fiber", + "icon": "warpdrive:component:33", + "category": "0_basics", + "pages": [ + { + "type": "text", + "text": "$(item)Carbon fiber$() is a lightweigth, highly resistant and easily shaped material.$(br2)It's fairly complex to produce with staged crafting recipes, hence it's mostly used for superior $(l:0_basics/warp_armor)Space suits$() and machines." + }, + { + "type": "crafting", + "recipe": "warpdrive:component@31x4coal", + "recipe2": "warpdrive:component@31charcoal", + "title": "Raw carbon fiber", + "text": "Easy to produce, once you get the blaze." + }, + { + "type": "crafting", + "recipe": "warpdrive:component@32x4", + "title": "Raw carbon mesh", + "text": "$(l:0_basics/biofiber)Biofiber$() sheets are used to protect and hold the mesh together, giving Carbon fiber its high durability." + }, + { + "type": "smelting", + "recipe": "warpdrive:component:32", + "title": "Carbon fiber", + "text": "Smelting $(item)Raw carbon mesh$() binds the materials together, giving it its final shape to $(item)Carbon fiber$()." + } + ], + "sortnum": 4 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/ceramic.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/ceramic.json new file mode 100644 index 00000000..7ea80335 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/ceramic.json @@ -0,0 +1,24 @@ +{ + "name": "Ceramic", + "icon": "warpdrive:component:30", + "category": "0_basics", + "pages": [ + { + "type": "text", + "text": "$(item)Ceramic$() is a solid material praised for its extreme heat resistance.$(br2)This is a vital component to survive atmospheric re-entry in a $(l:0_basics/warp_armor)Space suits$() or $(l:5_combat/hull)ship$()." + }, + { + "type": "crafting", + "recipe": "warpdrive:component@29x4", + "title": "Raw ceramic", + "text": "As sand & clay are readily available on most planets, making Raw ceramic should never be a problem..." + }, + { + "type": "smelting", + "recipe": "warpdrive:component:29", + "title": "Ceramic", + "text": "$(item)Ceramic$() is produced from smelting $(item)Raw ceramic$()." + } + ], + "sortnum": 3 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/chunk_loader.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/chunk_loader.json new file mode 100644 index 00000000..d03d95ef --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/chunk_loader.json @@ -0,0 +1,17 @@ +{ + "name": "Chunk loader", + "icon": "warpdrive:chunk_loader.advanced", + "category": "0_basics", + "pages": [ + { + "type": "text", + "text": "$(item)Chunk loaders$() are energy powered chunk loaders.$(br2)There's no recipe provided by default." + }, + { + "type": "text", + "title": "Upgrades", + "text": "Adding more $(item)Emerald tuned crystals$() will increase the maximum range in all directions. Use LUA to adjust the exact shape.$(br2)Adding more $(item)Superconductors$() will drastically reduce energy consumption." + } + ], + "sortnum": 16 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/gas.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/gas.json new file mode 100644 index 00000000..a06d4e47 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/gas.json @@ -0,0 +1,18 @@ +{ + "name": "Gas", + "icon": "warpdrive:gas:2", + "category": "0_basics", + "pages": [ + { + "type": "text", + "text": "$(item)Gas$() clouds are found in space. They can be seen in many different colors, notably in asteroid fields.$(br2)Their concentration is usually too low to be of any use apart from pleasing the eyes." + }, + { + "type": "spotlight", + "item": "warpdrive:gas:0", + "link_recipe": "true", + "text": "Hint: gas will quickly dissipate in most atmospheres." + } + ], + "sortnum": 5 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/iridium.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/iridium.json new file mode 100644 index 00000000..d08eadb2 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/iridium.json @@ -0,0 +1,18 @@ +{ + "name": "Iridium", + "icon": "warpdrive:iridium_block", + "category": "0_basics", + "pages": [ + { + "type": "text", + "text": "$(item)Iridium$() is the strongest material known to us. As such, this gives the best protection to ships with $(l:5_combat/hull)Superior hull$().$(br2)Last but not least, its crystaline structure has excellent vibration characteristics required for $(l:3_advanced_machines/radar)Radar$() and $(l:3_advanced_machines/cloaking)Cloaking$() systems." + }, + { + "type": "spotlight", + "item": "warpdrive:iridium_block", + "link_recipe": "true", + "text": "Iridium blocks can be found in large asteroids from the void.$(br2)Advanced technology can also be used to produce it." + } + ], + "sortnum": 6 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/lamp.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/lamp.json new file mode 100644 index 00000000..eecba797 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/lamp.json @@ -0,0 +1,30 @@ +{ + "name": "Lamp", + "icon": "warpdrive:lamp_long", + "category": "0_basics", + "pages": [ + { + "type": "text", + "text": "$(item)Lamps$() are used for decoration and lighting.$(br2)Right click to switch them on or off." + }, + { + "type": "crafting", + "recipe": "warpdrive:lamp_bubble@0", + "title": "Bubble Lamp", + "text": "" + }, + { + "type": "crafting", + "recipe": "warpdrive:lamp_flat@0", + "title": "Flat Lamp", + "text": "" + }, + { + "type": "crafting", + "recipe": "warpdrive:lamp_long@0", + "title": "Long Lamp", + "text": "" + } + ], + "sortnum": 15 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/laser_medium.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/laser_medium.json new file mode 100644 index 00000000..b6dbde95 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/laser_medium.json @@ -0,0 +1,36 @@ +{ + "name": "Laser medium", + "icon": "warpdrive:laser_medium.basic", + "category": "0_basics", + "pages": [ + { + "type": "text", + "text": "$(item)Laser mediums$() are a critical part of any laser system as they amplify light passing through them. Each Laser medium shall be powered from any side by standard energy like $(item)FE$(), $(item)RF$() or $(item)EU$().$(br2)$(item)Laser mediums$() exist in 3 different tiers of increasing storage size. Higher tiers can stack along the same axis to increase strength or range of the related laser system." + }, + { + "type": "crafting", + "recipe": "warpdrive:laser_medium.basic@0", + "title": "Basic laser medium", + "text": "A Basic laser medium is fairly cheap and sufficient for most simple setups. However, it can't be stacked to upgrade the system." + }, + { + "type": "crafting", + "recipe": "warpdrive:laser_medium.advanced@0", + "title": "Advanced laser medium", + "text": "Advanced laser mediums can be stacked to upgrade the related system. Effect and maximum size depends on the latest." + }, + { + "type": "crafting", + "recipe": "warpdrive:component@22", + "recipe2": "warpdrive:laser_medium.superior@0", + "title": "Superior laser medium", + "text": "Mostly used for heavy stuff." + }, + { + "type": "text", + "title": "Hints", + "text": "While it can be seen as a photonic converter, a Laser medium shouldn't be considered as a battery: you can only add FE/RF/EU energy, or extract laser photons through its connected laser system." + } + ], + "sortnum": 7 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/laser_tree_farm.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/laser_tree_farm.json new file mode 100644 index 00000000..f3851409 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/laser_tree_farm.json @@ -0,0 +1,46 @@ +{ + "name": "Laser Tree Farm", + "icon": "warpdrive:laser_tree_farm", + "category": "0_basics", + "pages": [ + { + "type": "text", + "text": "A $(item)Laser Tree Farm$() is your all around automatic farm for planting and harvesting. It supports trees, crops and even rubber wet spots.$(br2)The laser itself is produced by a $(l:0_basics/laser_medium)Laser Medium$() attached to the farming block. The latest scans the area around it looking for soil to plant, crops and logs to harvest right above it." + }, + { + "type": "text", + "text": "As it's packed with optical systems and computing power, you'll need to place an external container to hold your harvest. Any chest or assimilated container placed next to it will work.$(br2)By order of the $(item)Galactical energy conservation act$(), farming operation automatically stops when no more storage is available. Overflowing items are dropped on the ground, so remember to cleanup the mess before nature does its work." + }, + { + "type": "text", + "title": "History", + "text": "While developing the next mining laser, one of our interns mistyped the target coordinates and started 'mining' our own space station biodome instead of the expected test asteroid.$(br2)Condemned to food rations, the engineering team quickly converted the existing rubber collection laser prototype into a fully functional farming tool for the crew." + }, + { + "type": "crafting", + "recipe": "warpdrive:laser_tree_farm@0", + "title": "Laser tree farm", + "text": "Place your $(item)Laser Tree Farm$() block at ground level, same as your soil.$(br2)You need at least one $(l:0_basics/laser_medium)Laser Medium$() to output a laser beam, placed on any horizontal side, or below the $(item)Laser Tree Farm$()." + }, + { + "type": "text", + "text": "Each $(l:0_basics/laser_medium)Laser Medium$() needs a power connection in $(item)FE$(), $(item)RF$() or $(item)EU$() form. You'll need to recharge the medium periodically to sustain continuous farming.$(br2)Harvested items are stored in the storage containers found next to the $(item)Laser Tree Farm$(). Place a Chest (or equivalent) on any horizontal side, or below the $(item)Laser Tree Farm$(). The same chest is used to provide saplings and seeds to be planted." + }, + { + "type": "text", + "title": "Control", + "text": "Right click the $(item)Laser Tree Farm$() while holding a Redstone torch to enable/disable it.$(br2)For finer control, place an Advanced Computer right next to it, horizontally or below it.$(br)Refer to $(l:0_basics/programmable_blocks)Programmable blocks$() to initialize it, then type $(item)farm help$().$(br)Once started, farming continues on its own as the script only shows the current state.$(br)To stop farming, reset the computer, then type $(item)stop$()." + }, + { + "type": "text", + "title": "Upgrades", + "text": "Adding more $(l:0_basics/laser_medium)Laser Mediums$() will increase the range, which is mandatory for taller trees like Jungle wood.$(br2)Multiple farming setup can be connected to a single Computer using Networking cables and Wired modem (for ComputerCraft), or Cables (for OpenComputers). The preloaded script automatically detects all connected $(item)Laser Tree Farms$() and control them." + }, + { + "type": "text", + "title": "Hints", + "text": "By default, Jungle logs will turn into $(l:0_basics/rubber)Raw rubber clumps$().$(br2)Computer controls allow to collect leaves or not, drastically changing the speed of operation.$(br2)With IC2, you can choose to just collect rubber without breaking the wet spot of the rubber trees." + } + ], + "sortnum": 8 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/mining_laser.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/mining_laser.json new file mode 100644 index 00000000..e9fd55f7 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/mining_laser.json @@ -0,0 +1,45 @@ +{ + "name": "Mining Laser", + "icon": "warpdrive:mining_laser", + "category": "0_basics", + "pages": [ + { + "type": "text", + "text": "A ship's $(item)Mining Laser$() does the work of many men through the use of a powerful laser precisely cutting through the blocks and pulling them aboard the ship.$(br2)The first $(item)Mining Laser$() was made by one of our (lazy) geology research interns who decided that gathering samples from asteroids with a pick axe was too tedious." + }, + { + "type": "text", + "text": "Many different version of the $(item)Mining Laser$() have been created since, up to the current ship mounted one. While other versions still exist in the wild, they're considered fairly unstable and not accepted aboard ships, so we won't talk about them here...$(br2)The laser itself is produced by a $(l:0_basics/laser_medium)Laser Medium$() attached to the mining block. The latest scan a layer before mining it." + }, + { + "type": "text", + "text": "As it's packed with optical systems and computing power, you'll need to place an external container to collect mined materials. Any chest or assimilated container placed next to it will do.$(br2)By order of the $(item)Galactical energy conservation act$(), mining operation automatically stops when no more storage is available. Overflowing items are dropped on the ground, so remember to cleanup the mess before nature does its work." + }, + { + "type": "crafting", + "recipe": "warpdrive:mining_laser@0", + "title": "Mining Laser", + "text": "Place your $(item)Mining Laser$() block at the bottom of your ship.$(br2)You need at least one $(l:0_basics/laser_medium)Laser Medium$() to output a laser beam, placed on any horizontal side, or above the $(item)Mining Laser$()." + }, + { + "type": "text", + "text": "Each $(l:0_basics/laser_medium)Laser Medium$() needs a power connection in $(item)FE$(), $(item)RF$() or $(item)EU$() form. You'll need to recharge the medium periodically to sustain continuous mining.$(br2)Mined items are stored in the storage containers found next to the $(item)Mining Laser$(). Place a Chest (or equivalent) on any horizontal side, or above the $(item)Mining Laser$()." + }, + { + "type": "text", + "title": "Control", + "text": "Right click the $(item)Mining Laser$() while holding a Redstone torch to enable/disable it.$(br2)For finer control, place an Advanced Computer right next to it, horizontally or above it.$(br)Refer to $(l:0_basics/programmable_blocks)Programmable blocks$() to initialize it, then type $(item)mine help$().$(br)Once started, mining continues on its own as the script only shows the current state.$(br)To stop mining, reset the computer, then type $(item)stop$()." + }, + { + "type": "text", + "title": "Upgrades", + "text": "Adding more $(l:0_basics/laser_medium)Laser Mediums$() will increase the range.$(br2)Multiple mining setup can be connected to a single Computer using Networking cables and Wired mode (for ComputerCraft), or Cables (for OpenComputers). The preloaded script automatically detects all connected $(item)Mining Lasers$() and control them." + }, + { + "type": "text", + "title": "Hints", + "text": "While you can start mining at an offset from the $(item)Mining Laser$(), you'll still need a clear line of sight as the laser won't go through force field or glass blocks.$(br2)Computer controls allow to collect everything or only ores, saving a bit of storage space for the same speed.$(br)You can enable silktouch for an extra energy cost, allowing you to maximize processing output." + } + ], + "sortnum": 10 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/programmable_blocks.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/programmable_blocks.json new file mode 100644 index 00000000..6511fe78 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/programmable_blocks.json @@ -0,0 +1,59 @@ +{ + "name": "Programmable blocks", + "icon": "warpdrive:component:8", + "category": "0_basics", + "pages": [ + { + "type": "text", + "text": "Most machines include pre-loaded scripts for both $(item)ComputerCraft$() and $(item)OpenComputers$(): just place a computer next to the block to start using it. Right click the computer to open its console.$(br2)You may connect remotely using $(item)Wired modems$() or $(item)Cables$(). Wireless remote control is also possible using custom scripts." + }, + { + "type": "text", + "text": "Major machines have a $(item)startup$() script that automatically boot and show a user interface. This applies to $(l:4_movement/ship_core)Ship core$(), $(l:3_advanced_machines/accelerator_controller)Accelerator controller$(), $(l:5_combat/weapon_controller)Weapon controller$() and $(l:3_advanced_machines/enantiomorphic_reactor)Enantiomorphic reactor core$().$(br2)For simpler machines, scripts are listed on the respective machine's page once you apply a $(item)Computer Interface$() upgrade." + }, + { + "type": "crafting", + "recipe": "warpdrive:component@8x2", + "title": "Computer Interface", + "text": "Right click a WarpDrive machine or check its tooltips to see if it requires a $(item)Computer Interface$() upgrade." + }, + { + "type": "text", + "title": "ComputerCraft", + "text": "You can view pre-loaded scripts by typing $(item)ls$().$(br)If you see only $(item)rom$(), then your computer couldn't connect to a machine:$(li)check that it's actually right next to the machine you want to interface with,$(li)check the $(item)Networking cables$() are not cut,$(li)check $(item)Wired modem$() are red/online,$(li)check the machine isn't missing a $(item)Computer Interface$() upgrade." + }, + { + "type": "text", + "title": "ComputerCraft hints", + "text": "Reset the computer by holding $(item)Ctrl-R$() for a few seconds.$(br2)Terminate the current program by holding $(item)Ctrl-T$() for a few seconds.$(br2)Redirect a program to an attached ComputerCraft Monitor by typing $(item)monitor $(o)side$(/o) $(o)program$()$(br)where $(o)side$() is the monitor position relative to the computer (top, bottom, left, right, back)." + }, + { + "type": "text", + "text": "To learn more, check the mod wiki $(l:http://www.computercraft.info/wiki/Main_Page)here$() or simply type $(item)help$()" + }, + { + "type": "text", + "title": "Script customization", + "text": "You may customize a ComputerCraft pre-loaded script by overwritting the startup script.$(br)Here's one way to do it:$(br)$(li)connect your computer to the machine,$(br)$(li)boot the computer,$(br)$(li)terminate the script,$(br)$(li)copy the script by typing$(br)$(item)copy startup mystartup$(),$(br)$(li)disconnect the computer from the machine," + }, + { + "type": "text", + "text": "$(li)restart the computer,$(br)$(li)rename the script by typing$(br)$(item)move mystartup startup$(),$(br)$(li)change the script to your liking by typing$(br)$(item)edit startup$(),$(br)$(li)reconnect the machine,$(br)$(li)enjoy!$(br)$(br2)Last but not least, remember to update the script whenever WarpDrive gets a new version out." + }, + { + "type": "text", + "title": "OpenComputers", + "text": "You can see a list of connected devices to check your connection by typing $(item)df$()$(br)If you see no line starting with 'warpdrive', then the computer didn't connect with a machine:$(li)check that it's actually right next to the machine you want to interface with,$(li)check the machine isn't missing a $(item)Computer Interface$() upgrade." + }, + { + "type": "text", + "text": "OpenComputers is a bit more 'old school', so you need to mount an $(l:http://ocdoc.cil.li/tutorial:oc3_hard_drives)floppy or HDD$() to save your configurations.$(br2)Here's how to install the scripts:$(br)$(li)boot with an OpenOS floppy and a new HDD.$(br)$(li)type $(item)install$(), select OpenOS, wait a bit, reboot and remove the floppy.$(br)$(li)type $(item)install$(), select the machine you want, wait a bit, reboot.$(br)$(li)enjoy!" + }, + { + "type": "text", + "title": "OpenComputers hints", + "text": "Reset the computer by holding $(item)Ctrl-R$() for a few seconds.$(br2)Terminate the current program by holding $(item)Ctrl-C$() for a few seconds.$(br2)Once the scripts are installed, you can directly customize them to your liking." + } + ], + "sortnum": 11 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/rubber.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/rubber.json new file mode 100644 index 00000000..3d501714 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/rubber.json @@ -0,0 +1,24 @@ +{ + "name": "Rubber", + "icon": "warpdrive:component:26", + "category": "0_basics", + "pages": [ + { + "type": "text", + "text": "Rubber is a flexible, insulating, and natural material used in many recipes.$(br2)Because of its numerous application, this is the first resource you want to collect before getting into space." + }, + { + "type": "spotlight", + "item": "warpdrive:component:25", + "link_recipe": "true", + "text": "$(item)Raw rubber clump$() is produced from harvesting $(item)Jungle Wood$() with a $(l:0_basics/laser_tree_farm)Laser Tree Farm$()." + }, + { + "type": "smelting", + "recipe": "warpdrive:component:25", + "title": "Rubber", + "text": "$(item)Rubber$() is produced from smelting $(item)Raw Rubber$()." + } + ], + "sortnum": 1 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/space_suit.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/space_suit.json new file mode 100644 index 00000000..7f7aba3d --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/space_suit.json @@ -0,0 +1,63 @@ +{ + "name": "Space suit", + "icon": "warpdrive:warp_armor.advanced.chestplate", + "category": "0_basics", + "pages": [ + { + "type": "text", + "text": "$(item)Warp armors$() are you usual protection clothing from mobs and such, nothing new here as long as you're on Earth.$(br2)Now when it comes to $(l:2_exploration/exploration)space$(), they become mandatory equipment to survive in the void, well, as long as you want to keep $(l:2_exploration/breathing)breathing$() that is." + }, + { + "type": "text", + "text": "There's 3 tiers of space suits available, each with their own perks: $(li)$(item)Emergency$(0) armor is cheap, just enough to breath, $(li)$(item)Re-entry$(0) armor can sustain atmospheric burn and fall damage, quite useful when 'falling' from space$()$(li)$(item)Warp$(0) armor adds an ice electrolyzer for compact air storage." + }, + { + "type": "crafting", + "recipe": "warpdrive:warp_armor.basic.helmet@0", + "recipe2": "warpdrive:warp_armor.basic.chestplate@0", + "title": "Emergency armor", + "text": "" + }, + { + "type": "crafting", + "recipe": "warpdrive:warp_armor.basic.leggings@0", + "recipe2": "warpdrive:warp_armor.basic.boots@0", + "title": " ", + "text": "" + }, + { + "type": "crafting", + "recipe": "warpdrive:warp_armor.advanced.helmet@0", + "recipe2": "warpdrive:warp_armor.advanced.chestplate@0", + "title": "Re-entry armor", + "text": "" + }, + { + "type": "crafting", + "recipe": "warpdrive:warp_armor.advanced.leggings@0", + "recipe2": "warpdrive:warp_armor.advanced.boots@0", + "title": " ", + "text": "" + }, + { + "type": "crafting", + "recipe": "warpdrive:warp_armor.superior.helmet@0", + "recipe2": "warpdrive:warp_armor.superior.chestplate@0", + "title": "Warp armor", + "text": "" + }, + { + "type": "crafting", + "recipe": "warpdrive:warp_armor.superior.leggings@0", + "recipe2": "warpdrive:warp_armor.superior.boots@0", + "title": " ", + "text": "" + }, + { + "type": "text", + "title": "Ice electrolyzer", + "text": "$(item)Warp armor$() refills your empty air tanks as long as you have $(item)Ice$() and a $(item)energy storage item$() in your inventory. You'll need 2000 $(item)EU$() or equivalent $(item)FE$() or $(item)RF$() per operation." + } + ], + "sortnum": 14 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/subspace_capacitor.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/subspace_capacitor.json new file mode 100644 index 00000000..1fb68a21 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/subspace_capacitor.json @@ -0,0 +1,70 @@ +{ + "name": "Subspace Capacitor", + "icon": "warpdrive:capacitor.superior", + "category": "0_basics", + "pages": [ + { + "type": "text", + "text": "Energy storage has always been a long struggle, even before space travel was invented. While many researchers looked into it, money was hard to come for financing the most ambitious ones and sometime, money isn't the right answer." + }, + { + "type": "text", + "text": "The real solution came from a small research team from Parsylonia IV while they were working on a lithium quartz based atomic clock.$(br2)As they were low on budget, it was frequent for them to use dinnerware instead of test tube. That is until their team leader poured his favorite intense peppermint tea in a cup with remains of lithium quartz dust..." + }, + { + "type": "text", + "text": "A few seconds later, a $(item)Subspace drain$() was created from the unusual mixture and started sucking power from all nearby sources, whether it was chemical, electrical or mechanical.$(br2)While it took a few minutes for the team to understand what happened, it was months before their could actually extract power from the drain, effectively making the first $(item)Subspace capacitor$()." + }, + { + "type": "text", + "text": "Upon publishing their results, many hobbyists wanted to reproduce the original experiment in their basement, causing Peppermint to reach the status of $(item)Green gold$() (or $(item)Leprechaun gold$() depending on who you ask, since it's fairly easy to produce).$(br2)While Green gold is no longer a thing these days, $(item)Subspace capacitors$() are still fairly common and Parsylonia still produces the most efficient ones around." + }, + { + "type": "text", + "title": "General principles", + "text": "$(item)Subspace capacitors$() are you ultimate universal energy storage. They exist in various storage capacity and transfer rate with upgrades.$(br2)Each side of the capacitor can be configured using any $(l:0_basics/tuning_tools)Tuning tool$() to either $(#4680E8)$(l)input$(), $(#E88018)$(l)output$() or $(l)disabled$() mode." + }, + { + "type": "image", + "border": true, + "images": [ "warpdrive:textures/book/subspace_capacitors.png" ], + "text": "They accept and provide any standard energy like $(item)FE$(), $(item)RF$() or $(item)EU$()." + }, + { + "type": "text", + "text": "Due to their inner nature, $(item)EU$() transfer rates are defined per block while $(item)FE$() & $(item)RF$() transfer rates are defined per face, hence it's usually much faster to use the latest.$(br2)While the original design was greatly improved over time, Subspace energy is still coming with a small loss when converting power to/from subspace form." + }, + { + "type": "crafting", + "recipe": "warpdrive:capacitor.basic@0", + "title": "Basic Sub. Capacitor", + "text": "A Basic laser medium is fairly cheap and sufficient for most simple setups. However, it can't be stacked to upgrade the system." + }, + { + "type": "crafting", + "recipe": "warpdrive:capacitor.advanced@0_direct", + "recipe2": "warpdrive:capacitor.advanced@0_upgrade", + "title": "Advanced Sub. Capacitor", + "text": "" + }, + { + "type": "crafting", + "recipe": "warpdrive:capacitor.superior@0_direct", + "recipe2": "warpdrive:capacitor.superior@0_upgrade", + "title": "Superior Sub. Capacitor", + "text": "" + }, + { + "type": "crafting", + "recipe": "warpdrive:component@21_direct", + "title": "Superconductor", + "text": "A typical capacitor loose 5 to 7% depending on energy type and transfer rates.$(br)Adding $(item)Superconductors$() to the conversion circuit will greatly reduce the lost down to 2%, or even 0% in some edge cases." + }, + { + "type": "text", + "title": "Zero Point Module", + "text": "Years have passed and researchers are still dreaming of that ultimate Subspace capacitor capable of storing near infinite energy. They call it from an old mythology going back to great Egypt time: the $(item)Zero Point Module$() or $(item)ZPM$() in short. Those who've seen one are few as only the Creative ones are able to get it... so far..." + } + ], + "sortnum": 9 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/tuning_tools.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/tuning_tools.json new file mode 100644 index 00000000..3554fcd1 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/tuning_tools.json @@ -0,0 +1,66 @@ +{ + "name": "Tuning tools", + "icon": "warpdrive:tuning_fork:1", + "category": "0_basics", + "pages": [ + { + "type": "text", + "text": "Tuning tools are used to link blocks together on different wireless network parameters: $(item)Video channels$(), $(item)Beam frequencies$() and $(item)Control channels$().$(br2)Those parameters can be adjusted through a static $(item)Tuning Fork$(), an adjustable $(item)Tuning Driver$() or general LUA scripting." + }, + { + "type": "text", + "title": "Video channel", + "text": "$(l:3_advanced_machines/camera_and_monitor)Cameras and monitors$() are linked through a $(item)Video channel$(). Each loaded Camera needs to use its own channel to emit their signal. To view a specific camera on a monitor, ones needs to tune it to that Camera's $(item)Video channel$().$(br)A Video channel value can be any integer number from 0 to 999999999, included.$(br2)The related LUA property is $(item)videoChannel$()." + }, + { + "type": "text", + "title": "Beam frequency", + "text": "$(t:Laser cannon and forcefields)Energy based weapons$(/t) have an adjustable $(item)Beam frequency$() from 1 to 65000, included. Default value is 0, which is invalid. Be aware, that 1420 is a special $(item)Beam frequency$() as explained in the $(l:5_combat/lasers_advanced_boosting)Laser setup (advanced)$().$(br2)Beam color changes with its $(item)Beam frequency$() and involved technology.$(br2)The related LUA property is $(item)beamFrequency$()." + }, + { + "type": "text", + "title": "Control channel", + "text": "Large complex machines like the $(l:3_advanced_machines/large_hadron_collider)Large Hadron Collider$() setup have component blocks fairly distant from each others. They interconnect remotely through a $(item)Control channel$(). The latest is an integer number from 0 to 999999999, included.$(br2)The related LUA property is $(item)controlChannel$()." + }, + { + "type": "crafting", + "recipe": "warpdrive:tuning_fork@15", + "recipe2": "warpdrive:tuning_fork@15_dye", + "title": "Tuning fork", + "text": "Any die can be used." + }, + { + "type": "text", + "text": "Early on, you can easily make a $(item)Tuning Fork$() to adjust your machines. Once crafted, the tool remains with one of the 16 predefined values.$(br2)Right click a block to adjust it's main parameter.$(br)Shift-right click a block to adjust it's secondary parameter." + }, + { + "type": "crafting", + "recipe": "warpdrive:tuning_driver@0", + "title": "Tuning driver", + "text": "Hacking your system is much harder when using custom values for your remote controls. This can be achieved using a $(item)Tuning Driver$(), reconfigurable at will. It's also the Doctor best tool, but that's another story for you know Who." + }, + { + "type": "text", + "text": "Once crafted, the tool can be tuned with dyes; colors and order have a direct influence on the resulting value, independently of the previous value.$(br2)Right click a block to adjust its parameter.$(br)Shift-right click a block to retrieve its current value.$(br)Right click in the air to change between the different parameters." + }, + { + "type": "crafting", + "recipe": "warpdrive:tuning_driver@0_video2", + "title": "Set Video channel", + "text": "$(item)Video channel$() is adjusted by crafting a Video Channel Tuning Driver with a Redstone and 7 dies." + }, + { + "type": "crafting", + "recipe": "warpdrive:tuning_driver@1_bream_frequency2", + "title": "Set Beam frequency", + "text": "$(item)Beam frequency$() is adjusted by crafting a Beam Frequency Tuning Driver with a Redstone and 4 dies." + }, + { + "type": "crafting", + "recipe": "warpdrive:tuning_driver@2_control_channel2", + "title": "Set Control channel", + "text": "$(item)Control channel$() is adjusted by crafting a Control Channel Tuning Driver with a Redstone and 7 dies." + } + ], + "sortnum": 12 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/wrench.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/wrench.json new file mode 100644 index 00000000..b69b5a9e --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/0_basics/wrench.json @@ -0,0 +1,18 @@ +{ + "name": "Wrench", + "icon": "warpdrive:wrench", + "category": "0_basics", + "pages": [ + { + "type": "text", + "text": "$(item)Wrench$() is just your usual all around block rotation tool." + }, + { + "type": "crafting", + "recipe": "warpdrive:wrench@0", + "title": "Wrench", + "text": "" + } + ], + "sortnum": 13 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/2_exploration/celestial_objects.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/2_exploration/celestial_objects.json new file mode 100644 index 00000000..c6d80fc4 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/2_exploration/celestial_objects.json @@ -0,0 +1,25 @@ +{ + "name": "Celestial objects", + "icon": "minecraft:filled_map", + "category": "2_exploration", + "pages": [ + { + "type": "text", + "text": "$(item)Celestial objects$() like Planets are visible from space. While your ship is in orbit, the planet surface renders right below you.$(br2)As you fly away, the planet surface will move back to the star system plan." + }, + { + "type": "text", + "text": "Some $(item)celestial objects$() like stars or moons are $(item)virtual$(): you can see and orbit them, but there's no Vanilla/Modded dimension behind so you can't land on them." + }, + { + "type": "text", + "title": "Hints", + "text": "Mods like $(item)Optifine$() may interfere with sky rendering, adjusting your render distance may help to see planets from space.$(br2)The $(l:7_about_the_mod/celestial_map)Celestial map$() only needs to be defined server side. Clients are receiving the relevant part of the map, as needed." + }, + { + "type": "text", + "text": "Any mod adding new dimension can be used to add planets, simply modify the $(l:7_about_the_mod/celestial_map)Celestial map$() to your liking." + } + ], + "sortnum": 1 +} diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/2_exploration/universal_coordinates.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/2_exploration/universal_coordinates.json new file mode 100644 index 00000000..402227a7 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/2_exploration/universal_coordinates.json @@ -0,0 +1,31 @@ +{ + "name": "Universal coordinates", + "icon": "minecraft:filled_map", + "category": "2_exploration", + "pages": [ + { + "type": "text", + "title": "Universal coordinates", + "text": "A $(item)Star system$() is a space dimension connecting multiple planets. A $(item)Galaxy$() is an hyperspace dimension linking multiple star systems.$(br2)In the same galaxy, all objects can be located by their $(item)Universal Coordinates$(): from your local position on a planet, you can deduce your local position in orbit (space), higher (hyperspace), and vice versa." + }, + { + "type": "text", + "text": "$(item)Universal coordinates$() are defined relative to an hyperspace dimension. In other words, for a given position, universal coordinates remains the same whatever your current dimension is.$(br2)Practically, this means X & Z coordinates are taken from hyperspace, while Y is$(li)0 to 255 for planet,$(li)256 to 511 for space,$(li)512 to 767 for hyperspace." + }, + { + "type": "text", + "title": "World Border", + "text": "Each celestial object has its own limited size, and related $(item)world border$(). Ships can't move through it. Unlike the vanilla border, bypassing entities will be pulled pulled back in, or die instantly if they go too far.$(br2)Since planets have a limited size, we can translate between Local and Universal coordinates, allowing you to navigate around and explore the vastness of space." + }, + { + "type": "text", + "text": "Sadly, as we go further away from the center of a dimension (0 0), bad things starts happening around 220km including entity jerky motion, damage and eventually death by suffocation. To account for this, hyperspace should cap at 400 km size (or 200 km radius). You should watch $(l:https://youtu.be/v6-IAntqg5w)AntVenom panel$(/l) to learn more about this.$(br2)For server owners, world borders allow to drastically reduce disk space usage." + }, + { + "type": "text", + "title": "Hints", + "text": "When adding WarpDrive to an existing map, Vanilla world border will be automatically expanded to account for Universal coordinates. However, your existing base might be outside the default planets definition, in which case, consider changing earth offset to be around your base." + } + ], + "sortnum": 2 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/3_advanced_machines/camera_and_monitor.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/3_advanced_machines/camera_and_monitor.json new file mode 100644 index 00000000..7a666263 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/3_advanced_machines/camera_and_monitor.json @@ -0,0 +1,38 @@ +{ + "name": "Camera and monitor", + "icon": "warpdrive:monitor", + "category": "3_advanced_machines", + "pages": [ + { + "type": "text", + "text": "Ever wanted to check the exterior of your ship without having to wear a space suit? Wants to watch that reactor room in the back? Use a $(item)Camera$() linked with a $(item)Monitor$()!$(br2)Cameras and monitors are linked through a $(l:0_basics/tuning_tools)Video channel$()." + }, + { + "type": "crafting", + "recipe": "warpdrive:camera@0", + "title": "Camera", + "text": "Place your $(item)Camera$() block wherever you want to watch the surrounding.$(br2)Set its Video Channel with a $(l:0_basics/tuning_tools)tuning tool$() or a computer.$(br2)Each loaded $(item)Camera$() emits on its tuned channel." + }, + { + "type": "crafting", + "recipe": "warpdrive:monitor@0", + "title": "Monitor", + "text": "Place your $(item)Monitor$() block freely to view a $(item)Camera$().$(br2)Set its Video Channel with a $(l:0_basics/tuning_tools)tuning tool$() or a computer.$(br2)A $(item)Monitor$() reads on its tuned channel." + }, + { + "type": "text", + "title": "Control", + "text": "Right click the $(item)Monitor$() with an empty hand to view the linked $(item)Camera$().$(br2)Your in-game GUI will change to a view at the Camera location. From there, you can:$(li)move your mouse around to orient the view$(li)left click to cycle zoom level$(li)right click to exit the monitor" + }, + { + "type": "text", + "title": "Hints", + "text": "When loading a new area, it may take a few seconds for your $(item)Monitor$() to resync with a $(item)Camera$(). During that time, the Monitor may report the $(item)Video Channel$() has being 'invalid'.$(br2)Multiple monitors can read from the same $(item)Video Channel$(), so you can share the view voluntarily, or not..." + }, + { + "type": "text", + "text": "Multiple cameras tuned to the same $(item)Video Channel$() will jam each others: with a bit of luck, your monitor will catch the closest $(item)Camera$() on that $(item)Video Channel$()...$(br2)When combined with a $(l:something)Laser cannon$(), Camera allows you to orient your weapon towards targets and fire at them!" + } + ], + "sortnum": 1 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/4_movement/lift.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/4_movement/lift.json new file mode 100644 index 00000000..1fbb8e49 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/4_movement/lift.json @@ -0,0 +1,28 @@ +{ + "name": "Lift", + "icon": "warpdrive:lift", + "category": "4_movement", + "pages": [ + { + "type": "text", + "text": "Lift are usually placed at the bottom of your ship, with a basic energy source. They project an antigravity beam below them, extending up to the first solid block.$(br2)Those are heavily used by space miners to reach asteroids.$(br)You can use them similarly inside your ship to move quickly between floors." + }, + { + "type": "crafting", + "recipe": "warpdrive:lift@0", + "title": "Lift", + "text": "Anti-gravity is the easiest way to go back to your ship, never underestimate its lifting power!" + }, + { + "type": "text", + "title": "Usage", + "text": "As long as enough energy is available, entities standing in the green projection will be moved up, on top of the lift.$(br2)You can change the direction with redstone. In which case, entities standing on top of the lift or in the blue projection will be moved down to the base of the beam." + }, + { + "type": "text", + "title": "Hints", + "text": "Use a lever to force a down direction, preventing unwanted intruders like mobs.$(br2)Place a pressure plate on top for quick and easy bidirectional lifting!$(br2)LUA $(item)mode$() takes priority over redstone, allowing to force a constant Up or Down operation." + } + ], + "sortnum": 1 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/5_combat/hull.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/5_combat/hull.json new file mode 100644 index 00000000..4a05cdd0 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/5_combat/hull.json @@ -0,0 +1,90 @@ +{ + "name": "Hull", + "icon": "warpdrive:hull.advanced.stairs_orange", + "category": "5_combat", + "pages": [ + { + "type": "text", + "text": "$(item)Ship hull$() is an important part of your ship appearance and defense. Hull blocks provide different type of direct and indirect damage absorption.$(br2)Higher tiers may sustain multiple hits before degrading into a lower tier. Basic tier is fairly weak and break easily, causing breach in your ship." + }, + { + "type": "image", + "border": true, + "images": [ "warpdrive:textures/book/hull.png" ], + "text": "Hulls are available in many different textures and shapes." + }, + { + "type": "crafting", + "recipe": "warpdrive:hull.basic.plain@0x4_ceramic", + "title": "Basic hull (plain)", + "text": "All hulls comes in 16 different textures/colors.$(br2)Basic hull is also craftable from aluminium, bronze and steel, where available." + }, + { + "type": "crafting", + "recipe": "warpdrive:hull.basic.plain@4x5_bronze", + "recipe2": "warpdrive:hull.basic.plain@14x10_steel", + "title": " " + }, + { + "type": "crafting", + "recipe": "warpdrive:hull.advanced.plain@7x4_dye", + "title": "Advanced hull (plain)", + "text": "Only plain hulls can be upgraded.$(br2)Dye is optional here." + }, + { + "type": "crafting", + "recipe": "warpdrive:hull.superior.plain@2x4_dye", + "title": "Superior hull (plain)", + "text": "Only plain hulls can be upgraded.$(br2)Dye is optional here." + }, + { + "type": "smelting", + "recipe": "warpdrive:hull.basic.plain:15", + "title": "Tiled & tainted variants", + "text": "Smelting a plain hull gives you a tiled variant of it. Craft it alone to get back the original plain.$(br2)Dyes can be used to convert between textures, same as wool." + }, + { + "type": "crafting", + "recipe": "warpdrive:hull.basic.plain@13x8_dye", + "recipe2": "warpdrive:hull.basic.plain@12_dye", + "title": " " + }, + { + "type": "crafting", + "recipe": "warpdrive:hull.basic.slab_orange@0x6", + "title": "Omnislab variants", + "text": "Omnislabs work both horizontally (like vanilla slab) and vertically. They're also available with tiled variation.$(br)You may easily recycle them." + }, + { + "type": "crafting", + "recipe": "warpdrive:hull.basic.slab_red@8x6", + "recipe2": "warpdrive:hull.basic.tiled@4_uncrafting_b", + "title": " " + }, + { + "type": "crafting", + "recipe": "warpdrive:hull.basic.glass@0x4", + "title": "Glass variants", + "text": "Transparent hull offers the same protection as opaque ones. However, they do add a bit of light to your ship. Sadly, due to their glowstone treatment, glass hull can't be recycled nor upgraded." + }, + { + "type": "crafting", + "recipe": "warpdrive:hull.basic.glass@4x8_dye", + "recipe2": "warpdrive:hull.basic.glass@4_dye", + "title": " " + }, + { + "type": "crafting", + "recipe": "warpdrive:hull.basic.omnipanel@4x16", + "title": "Omnipanel variants", + "text": "Unlike vanilla panels, omnipanel hulls are connecting both horizontally and vertically to full blocks." + }, + { + "type": "crafting", + "recipe": "warpdrive:hull.basic.glass@4x3", + "title": " ", + "text": "Omnipanels can be recycled to glass hull." + } + ], + "sortnum": 1 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/6_programming/lua_methods.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/6_programming/lua_methods.json new file mode 100644 index 00000000..ca08d5e6 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/6_programming/lua_methods.json @@ -0,0 +1,12 @@ +{ + "name": "LUA methods", + "icon": "warpdrive:xxx", + "category": "6_programming", + "pages": [ + { + "type": "text", + "text": "-placeholder-" + } + ], + "sortnum": 1 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/7_about_the_mod/celestial_map.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/7_about_the_mod/celestial_map.json new file mode 100644 index 00000000..29c7090e --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/7_about_the_mod/celestial_map.json @@ -0,0 +1,52 @@ +{ + "name": "Celestial map", + "icon": "minecraft:filled_map", + "category": "7_about_the_mod", + "pages": [ + { + "type": "text", + "text": "Any mod adding new dimension can be used to add planets to the $(item)Celestial map$(). You simply modify the latest to your liking through the $(item)celestialObjects-*.xml$() files.$(br2)The default file is largely commented to explain you how to read and modify it." + }, + { + "type": "text", + "text": "You may have as many $(item)celestialObjects-*.xml$() files as you want. If none are present, the default one will be installed.$(br2)Remember to rename the default file to avoid confusion.$(br2)Different gameplays are possible, from a simple single planet to advanced maps with thousands of planets." + }, + { + "type": "text", + "title": "XML 101", + "text": "To get started, consider learning a bit about $(item)XML$(), a text format designed to store and transport data for both human and machine use.$(br)There's many tutorials available, we suggest the one from $(l:https://www.w3schools.com/xml)W3C schools$(/l).$(br2)XML files can be edited with any text editor, however, using an XML validating editor will save you a lot of pain from common syntax errors before even starting the game." + }, + { + "type": "text", + "text": "You can check for $(item)XML Notepad$(), $(item)XMLCopy editor$() or $(item)emacs$(), among many more. Most development editors also include XML validation support, we recommend the free Community Edition of $(item)IntelliJ IDEA$().$(br2)Seasoned developpers can generate celestial map from scripting, or simply format it from XML into a web page: applications are endless..." + }, + { + "type": "text", + "title": "Plain overworld", + "text": "If you mostly play in the overworld, consider having it as a single giant planet as big as the space dimension with no moon nor sun. This gives you a very large world border but no planet transition per say.$(br2)While this feels simpler, keep in mind that you'll miss the more advanced game aspect of the mod with no other planets to explore." + }, + { + "type": "text", + "text": "For this, change the $(item)celestialObjects-default.xml$() file to remove the end, sun and nether, then change overworld & space offset to 0;0, then set border size for space, hyperspace and overworld to 400000.$(br2)Never go further than 200k radius or you'll expose bugs from the base game. You should watch $(l:https://youtu.be/v6-IAntqg5w)AntVenom panel$(/l) to learn more about this." + }, + { + "type": "text", + "title": "Advanced map", + "text": "For a more 'space life of exploration' gameplay, consider choosing smaller planets (2000 to 6000 m diameter) while keeping them in medium sized spaces (20 km diameter) in a maximized hyperspace (400 km diameter).$(br2)This keeps your disk space usage reasonable (~50 GB) while maximizing the number of planets." + }, + { + "type": "text", + "text": "In practice, you want to first position & size planets using a graphical representation on paper or something like GoogleSheet. Here is an example with the mod AdventOfAscension: $(l:https://docs.google.com/spreadsheets/d/11JG4dTQOPe95q5DGIgLOdS9PK6qNxMMJEamXtDwdFfQ)graphic template$().$(br2)From the graphic, you can easily implement planets coordinates so they don't overlap each others." + }, + { + "type": "text", + "title": "Hints", + "text": "The $(item)Celestial map$() only needs to be defined server side. Clients only needs to know about added dimensions at boot time. Client will receive the relevant part of the map, as needed.$(br2)Consider using a mod like $(item)JustEnoughDimensions$() to easily add many new dimensions." + }, + { + "type": "text", + "text": "You can reload the $(item)Celestial map$() at any time with $(item)/wreload$(), however you'll need to restart the game when adding new Space or Hyperspace dimensions.$(br2)If the game crash at boot, check the debug.log file for details as you probably have overlapping areas between celestial objects." + } + ], + "sortnum": 1 +} diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/7_about_the_mod/commands.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/7_about_the_mod/commands.json new file mode 100644 index 00000000..f1b02cb4 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/7_about_the_mod/commands.json @@ -0,0 +1,73 @@ +{ + "name": "Commands", + "icon": "minecraft:command_block", + "category": "7_about_the_mod", + "pages": [ + { + "type": "text", + "text": "Unless otherwise stated, all commands require to be an $(item)OPerator$(). Use a permission plugin to give access to staff or players depending on your game style.$(br2)Most commands can be used from console or command blocks." + }, + { + "type": "text", + "title": "Lost and found", + "text": "The $(item)/wfind $() command dump coordinates to all ships whose name partially match the given parameter.$(br2)The search is case sensitive, accross all dimensions, including offline ships and unloaded chunks." + }, + { + "type": "text", + "title": "To infinity...", + "text": "The $(item)/space () ()$() command sends selected players to the targetted dimension.$(br2)By default (no target set), player is sent to space (from a planet or hyperspace), or to the closest planet (from space).$(br2)Target can be a dimension id or keywords like 'overworld', 'nether', 'end', 'theend', 'space', 'hyper', 'hyperspace', or 'space'." + }, + { + "type": "text", + "text": "$(br2)When entering a non-orbiting planet, player will be teleported to the center of that celestial object.$(br2)When required, altitude is adjusted to prevent suffocation and fall damage so that player would be inside the building top floor, or on top of the roof.$(br2)Use this command to make a space elevator with a command block." + }, + { + "type": "text", + "title": "Go back to bed!", + "text": "The $(item)/wbed ()$() command teleports targetted online players to their bed location in their current dimension.$(br2)Teleporting other players requires sender to be console, command block or creative player.$(br2)In case no player could be found, you'll be teleported to your own bed." + }, + { + "type": "text", + "title": "Reload configuration", + "text": "The $(item)/wreload$() command reloads the mod's configuration files and refresh all players accordingly.$(br2)Use it notably to update dictionary tags, celestial map rendering or such without having to restart the server.$(br2)In most cases, reloading the celestial map won't crash the server, allowing you to quickly test your corrections." + }, + { + "type": "text", + "title": "World generation", + "text": "The $(item)/generate ( ) ()$() command generates a new structure centered on the player.$(br2)Coordinates starting with ~ are relatives, same as vanilla commands.$(br2)When no name is provided, a random one is selected.$(br2)Console isn't supported." + }, + { + "type": "text", + "text": "$(br2)Use an invalid structure group or name to get the list of supported values in your configuration.$(br2)Except for ship, structures will only generate in space.$(br2)You better be in creative to avoid suffocating in the generated structure." + }, + { + "type": "text", + "title": "Pest control", + "text": "The $(item)/wentity () ()$() command lists entities in the given area and, optionally, kill them.$(br2)Radius defines area among loaded chunks of the player's dimension. A positive number designates a radius in blocks around the player. An invalid radius like '-', 'world', 'global' or any negative number designates all loaded chunks in the current dimension." + }, + { + "type": "text", + "text": "$(br2)Use the '*' filter to select all entity type, otherwise enter a case insensitive partial match.$(br)When a single entity type is listed, all individual entity coordinates are provided.$(br2)Use 'yes' or 'y' or '1' to confirm the kill command." + }, + { + "type": "text", + "title": "Dump that loot!", + "text": "The $(item)/wdump () ()$() command writes a loot table in console for the selected inventory type of the selected player.$(br2)Inventory type can be:$(li)container: any item container below or next to the player$(li)enderchest: player's enderchest$(li)hand: player's main hand$(li)player: player's inventory." + }, + { + "type": "text", + "text": "$(br2)Use this to update your loot configuration files, to investigate possible corrupted blocks or cheaters." + }, + { + "type": "text", + "title": "Invisible", + "text": "The $(item)/invisible $() command toggles the vanilla invisibility flag for a given online player. Name is case sensitive.$(br2)Use this as a cheap and simple 'vanish' when you've no plugins." + }, + { + "type": "text", + "title": "Render properties", + "text": "The $(item)/wrender$() command dumps all render related properties for the block at the player feets or right below it.$(br2)Console isn't supported, obviously." + } + ], + "sortnum": 1 +} diff --git a/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/7_about_the_mod/schematics.json b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/7_about_the_mod/schematics.json new file mode 100644 index 00000000..e93787c8 --- /dev/null +++ b/src/main/resources/assets/warpdrive/patchouli_books/warpdrive_manual/en_us/entries/7_about_the_mod/schematics.json @@ -0,0 +1,21 @@ +{ + "name": "Schematics", + "icon": "minecraft:filled_map", + "category": "7_about_the_mod", + "pages": [ + { + "type": "text", + "text": "The $(item)mod$() uses a custom schematic format to save ships. This custom format enables support for containers (tile entities) and off-the-world data like cables or air simulation.$(br2)This custom format is modpack independant: you can transfer schematics from one world or modpack to another. This works also when upgrading Minecraft version." + }, + { + "type": "text", + "text": "When restoring a schematic, the mod also supports $(item)WorldEdit$() region format (not a world schematic, just a region), and $(item)Sponge$() format. However, due to those formats' limitations, containers like chests or computers will be empty." + }, + { + "type": "text", + "title": "Data fixer", + "text": "When restoring a schematic, invalid block ids, including missing blocks, will be replaced by air. To prevent that, you can update the $(item)DataFixer.yml$() configuration file to convert those blocks. You can even replace a missing mod by another. This won't convert items, nor internal data, but it still gives you the general shape of the ship." + } + ], + "sortnum": 1 +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/textures/book/hull.png b/src/main/resources/assets/warpdrive/textures/book/hull.png new file mode 100644 index 00000000..952fdfb6 Binary files /dev/null and b/src/main/resources/assets/warpdrive/textures/book/hull.png differ diff --git a/src/main/resources/assets/warpdrive/textures/book/subspace_capacitors.png b/src/main/resources/assets/warpdrive/textures/book/subspace_capacitors.png new file mode 100644 index 00000000..6da9de69 Binary files /dev/null and b/src/main/resources/assets/warpdrive/textures/book/subspace_capacitors.png differ diff --git a/src/main/resources/assets/warpdrive/textures/gui/patchouli/book.png b/src/main/resources/assets/warpdrive/textures/gui/patchouli/book.png new file mode 100644 index 00000000..b0b5c645 Binary files /dev/null and b/src/main/resources/assets/warpdrive/textures/gui/patchouli/book.png differ diff --git a/src/main/resources/assets/warpdrive/textures/gui/patchouli/crafting.png b/src/main/resources/assets/warpdrive/textures/gui/patchouli/crafting.png new file mode 100644 index 00000000..dae75ff4 Binary files /dev/null and b/src/main/resources/assets/warpdrive/textures/gui/patchouli/crafting.png differ diff --git a/src/main/resources/assets/warpdrive/textures/gui/patchouli/page_filler.png b/src/main/resources/assets/warpdrive/textures/gui/patchouli/page_filler.png new file mode 100644 index 00000000..374a806c Binary files /dev/null and b/src/main/resources/assets/warpdrive/textures/gui/patchouli/page_filler.png differ diff --git a/src/main/resources/assets/warpdrive/textures/items/book.png b/src/main/resources/assets/warpdrive/textures/items/book.png new file mode 100644 index 00000000..6ac8c5ca Binary files /dev/null and b/src/main/resources/assets/warpdrive/textures/items/book.png differ