diff --git a/.github/README.md b/.github/README.md index ec88c111d..299a0a111 100644 --- a/.github/README.md +++ b/.github/README.md @@ -68,6 +68,7 @@ Want to help translate? Please read [this](../kubejs/README_IF_TRANSLATING.md) i - [GregTech Community Pack Modern](https://www.curseforge.com/minecraft/modpacks/gregtech-community-pack-modern) for most of their quest text. - [Better End](https://www.curseforge.com/minecraft/mc-mods/betterend) for some assets. - Uni for Mars' dunes terrain generation. +- Flare from the [Cosmic Frontiers](https://www.curseforge.com/minecraft/modpacks/cosmic-frontiers) team for some icon set textures. [TerraFirmaCraft]: https://www.curseforge.com/minecraft/mc-mods/terrafirmacraft diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 339765c99..9f6283efd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,7 +34,7 @@ jobs: steps: - name: 📦 Checkout - uses: actions/checkout@v5.0.0 + uses: actions/checkout@v6.0.0 with: fetch-depth: 0 @@ -194,7 +194,7 @@ jobs: - name: 📄 Format diff id: format_diff if: ${{ steps.read_diff.outputs.diff != '' }} - uses: roamingowl/template-output-with-eta@v2.1.0 + uses: roamingowl/template-output-with-eta@v2.2.0 with: template: | ```markdown @@ -229,7 +229,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5.0.0 + uses: actions/checkout@v6.0.0 with: fetch-depth: 0 @@ -313,7 +313,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v5.0.0 + uses: actions/checkout@v6.0.0 - name: 🔄 Replace strings shell: bash @@ -424,7 +424,7 @@ jobs: steps: - name: 📦 Checkout - uses: actions/checkout@v5.0.0 + uses: actions/checkout@v6.0.0 - name: 📦 Download artifact uses: actions/download-artifact@v6.0.0 @@ -452,7 +452,7 @@ jobs: - name: 📄 Format diff id: format_diff if: ${{ needs.info.outputs.diff != '' }} - uses: roamingowl/template-output-with-eta@v2.1.0 + uses: roamingowl/template-output-with-eta@v2.2.0 with: template: | ```markdown @@ -461,7 +461,7 @@ jobs: - name: 🚀 Create release id: release - uses: softprops/action-gh-release@v2.4.2 + uses: softprops/action-gh-release@v2.5.0 with: name: ${{ needs.info.outputs.project_version }} tag_name: ${{ needs.info.outputs.project_version }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 63b30b805..8324b4ddd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,75 @@ # Changelog -## [Unreleased] -### Changes + +## [0.11.9] - 7-12-2025 +### Breaking Changes +#### Beginning of the Power Update +- Syngas is now available as a ULV/LV gas fuel - can be crafted from Charcoal and Creosote in a Brewery or Vacuum Chamber. +- The Coal Liquefaction Tower is a new multiblock (craftable at MV) that you can use to make Reformate Gas. It has the same coildiscounts as the Cracker, and can be boosted with hydrogen. +- Reformate Gas is the new gas Fuel starting at MV, with better yields and recipe loops at HV. +- Many quests were updated to explain these changes. +#### Update on Fission +- The Nuclear Steam Turbine has now a baseline power production of 8192 EU/t. What this means is that you now need half as many turbines as before. +- Thorium Fuel Rods got a boost of 50% steam production, so early Mars should be a bit easier. +- Heat Exchanger can now run Radioactive Steam without Ammonium Formate. If you crave for power and don’t mind losing some materials for the Nano Circuit, this is a good deal +- Massive change for steam yield. You now produce 160x more steam, but its yield is 160x less good (so nothing changes power-wise, but now you have to deal with pipe throughput) +#### Other +- All dynamo hatches on Large Turbines now void power when they are full. Be sure to control your turbines with some redstone when your batteries are full! +- The tungsten processing line has been updated to now properly loop and balance all of its intermediates. The actual processes haven't changed, just the numbers, so you shouldn't have to change your setup much. It now also outputs a little extra oxygen instead of sodium (#2267) @SpicyNoodle5 @TomPlop +- Removed black/red/blue arc furnace dust to ingot recipes, but changed the EBF recipes to MV (#2306) @applenper @Pyritie +### Mod updates +- Added TFC Gurman, which adds even more food and drink +- Primitive Creatures has fixed its spawning of Huntmasters +- New GregTech updates, both [7.3.0](https://github.com/GregTechCEu/GregTech-Modern/releases/tag/v7.3.0-1.20.1) and [7.4.0](https://github.com/GregTechCEu/GregTech-Modern/releases/tag/v7.4.0-1.20.1). TL;DR: + - You can use screwdrivers on drums again + - Diluted hydrochloric acid distillation circuits have been swapped, so now it's consistent with diluted sulfuric acid + - Large rebalancing of small and large boiler fuel. Generally speaking, small boilers are worse while large ones are better, and solid fuels are now better and liquids are worse, but if you're putting all your coke oven output into a large bronze boiler, your rates should be mostly the same as before. Blaze burner liquid fuels have been adjusted to these new values as well. +### Other Changes +- Many TACZ balance changes, found [here](https://github.com/TerraFirmaGreg-Team/Modpack-Modern/blob/dev/tacz/TACZ_CHANGELOG.md) @BlueBoat29 +- Add shapeless recipes for ae2 p2p clearing (#2234) @SpicyNoodle5 +- Added assembler, smelting and heating recipes for firmalife ovens (#2220) @SpicyNoodle5 +- Raised player-burning fluid threshold from 370K to 1300K @Redeix +- Added partial unification to the gtceu Wax material @Redeix +- Mars endermen can no longer pick up the wrong kind of warped/crimson sapling, and the correct kind has been added to their loot tables (#2240) +- Cleanrooms now allow 9 door "blocks", so you can use a 3x3 Ad Astra door (#2074) @ko-lja +- Added recycling for astikor carts (#2227) @Pyritie +- Moved Soph Backpack pickup to ULV, adv pickup to MV and magnet to MV @CrashAndSideburns +- Oilsands dust can now be centrifuged in the mechanical centrifuge @Pyritie +- All oils (both the petrochem kind and the cooking kind) can now be used to fuel small boilers as well @Pyritie +- Reduced the cost of the ME Ingredient Buffer @Pyritie +- Renamed Blubber to Animal Fat and added it to the drop tables of more animals (pigs drop a fair bit, orcas drop a ton). You can extract it into Tallow and now also use it for biodiesel! @applenper @Pyritie +- Glass bottles and ceramic jugs can now hold the same fluids as wooden barrels, buckets, etc @Pyritie +- Added fluid/item capacity tooltips to many fluid/item containers @Pyritie +- Spring water is now drinkable (it also heats you up a little) @Pyritie +- The reinforced hang glider has been buffed, is now craftable as soon as you get aluminium, and is also much cheaper to repair (#2314) @jeuvke +- You can now also use bismuth bronze and black bronze crates in recipes that previously required a normal bronze crate (#2328) @jeuvke +- Freeze dried food no longer has any hydration (#2325) @mqrius +- Added a mechanical crafting recipe for the Paving Cart @Pyritie ### Bug fixes +- Fixed the horse crank not working at all @Pyritie +- Fixed brown gravy recipe @Redeix +- Fixed instant mac recipe requiring less cardboard than it gives back @Redeix +- Fixed Ad Astra moon cheese nutrition values being inconsistent @Redeix +- Fixed some quest typos @Pyritie @mqrius +- Fixed duplicate bed dyeing recipe (#2229) @Pyritie +- Fixed Basic Hermetic Casing missing a mineable tag and loot table (#2221) @Pyritie +- Fixed some inconsistencies with gravel to sand recipe tiers (#2292) @Pyritie +- Fixed the thorium-based glowing ink recipe (#2294) @Pyritie +- Fixes crafting table output amount for salsa compared to the food processor (#2295) @Pyritie +- Added missing food processor recipe for cocoa butter @Pyritie +- Fixed recipe conflict with Epichlorohydrin and Sodium Hypochlorite (#2287) @Pyritie +- Fixed summoned pet endermen not being able to survive in space or other planets @Pyritie +- Fixed some recipe imbalances with trimethyl borate and related recipes @Pyritie +- Fixed not being able to feed meat to the Cruncher (#2305) @Pyritie +- Hopefully fixed rockets without a pilot getting stuck and not exploding? (#2137) @Pyritie +- Fixed some missing blocks from the GT facade whitelist (#2299) @MoltonMontro +- Changed the texture of the ME Stocking Input Bus + Hatch to match the hull used to craft them @Pyritie +- Fixed warped/crimson trees only growing on mars mycelium and not mars dirt @Pyritie +- Fixed a few missing crafting recipes for bricks in the assembler (#2333) @Pyritie +- Fixed a recycling dupe with the maintenace hatch (#2321) @Pyritie ### Translation updates +- Chinese (simplified) @jmecn +- Japanese @sakura-gondra +- Russian @Petr211071 ## [0.11.8] - 19-11-2025 ### Changes diff --git a/config/DistantHorizons.toml b/config/DistantHorizons.toml new file mode 100644 index 000000000..a6f048e16 --- /dev/null +++ b/config/DistantHorizons.toml @@ -0,0 +1,818 @@ +_version = 3 + +[client] + # + # Should Distant Horizon's config button appear in Minecraft's options screen next to the fov slider? + showDhOptionsButtonInMinecraftUi = true + + [client.advanced] + + [client.advanced.graphics] + + [client.advanced.graphics.quality] + # + # The radius of the mod's render distance. (measured in chunks) + lodChunkRenderDistanceRadius = 256 + # + # This indicates how quickly LODs decrease in quality the further away they are. + # Higher settings will render higher quality fake chunks farther away, + # but will increase memory and GPU usage. + horizontalQuality = "MEDIUM" + # + # What is the maximum detail LODs should be drawn at? + # Higher settings will increase memory and GPU usage. + # + # CHUNK: render 1 LOD for each Chunk. + # HALF_CHUNK: render 4 LODs for each Chunk. + # FOUR_BLOCKS: render 16 LODs for each Chunk. + # TWO_BLOCKS: render 64 LODs for each Chunk. + # BLOCK: render 256 LODs for each Chunk (width of one block). + # + # Lowest Quality: CHUNK + # Highest Quality: BLOCK + maxHorizontalResolution = "BLOCK" + # + # This indicates how well LODs will represent + # overhangs, caves, floating islands, etc. + # Higher options will make the world more accurate, butwill increase memory and GPU usage. + # + # Lowest Quality: HEIGHT_MAP + # Highest Quality: EXTREME + verticalQuality = "MEDIUM" + # + # How should LOD transparency be handled. + # + # COMPLETE: LODs will render transparent. + # FAKE: LODs will be opaque, but shaded to match the blocks underneath. + # DISABLED: LODs will be opaque. + transparency = "COMPLETE" + # + # What blocks shouldn't be rendered as LODs? + # + # NONE: Represent all blocks in the LODs + # NON_COLLIDING: Only represent solid blocks in the LODs (tall grass, torches, etc. won't count for a LOD's height) + blocksToIgnore = "NON_COLLIDING" + # + # Should the blocks underneath avoided blocks gain the color of the avoided block? + # + # True: a red flower will tint the grass below it red. + # False: skipped blocks will not change color of surface below them. + tintWithAvoidedBlocks = true + # + # What the value should vanilla Minecraft's texture LodBias be? + # If set to 0 the mod wont overwrite vanilla's default (which so happens to also be 0) + lodBias = "0.0" + # + # How should LODs be shaded? + # + # AUTO: Uses the same side shading as vanilla Minecraft blocks. + # ENABLED: Simulates Minecraft's block shading for LODs. + # Can be used to force LOD shading when using some shaders. + # DISABLED: All LOD sides will be rendered with the same brightness. + lodShading = "AUTO" + # + # How should the sides and bottom of grass block LODs render? + # + # AS_GRASS: all sides of dirt LOD's render using the top (green) color. + # FADE_TO_DIRT: sides fade from grass to dirt. + # AS_DIRT: sides render entirely as dirt. + grassSideRendering = "FADE_TO_DIRT" + # + # If true LODs will fade away as you get closer to them. + # If false LODs will cut off abruptly at a set distance from the camera. + # This setting is affected by the vanilla overdraw prevention config. + ditherDhFade = true + # + # How should vanilla Minecraft fade into Distant Horizons LODs? + # + # NONE: Fastest, there will be a pronounced border between DH and MC rendering. + # SINGLE_PASS: Fades after MC's transparent pass, opaque blocks underwater won't be faded. + # DOUBLE_PASS: Slowest, fades after both MC's opaque and transparent passes, provides the smoothest transition. + vanillaFadeMode = "DOUBLE_PASS" + # + # How bright LOD colors are. + # + # 0 = black + # 1 = normal + # 2 = near white + brightnessMultiplier = "1.0" + # + # How saturated LOD colors are. + # + # 0 = black and white + # 1 = normal + # 2 = very saturated + saturationMultiplier = "1.0" + # + # This is the same as vanilla Biome Blending settings for Lod area. + # Note that anything other than '0' will greatly effect Lod building time. + # + # '0' equals to Vanilla Biome Blending of '1x1' or 'OFF', + # '1' equals to Vanilla Biome Blending of '3x3', + # '2' equals to Vanilla Biome Blending of '5x5'... + lodBiomeBlending = 3 + + [client.advanced.graphics.ssao] + # + # Enable Screen Space Ambient Occlusion + enableSsao = true + # + # Determines how many points in space are sampled for the occlusion test. + # Higher numbers will improve quality and reduce banding, but will increase GPU load. + sampleCount = 6 + # + # Determines the radius Screen Space Ambient Occlusion is applied, measured in blocks. + radius = "4.0" + # + # Determines how dark the Screen Space Ambient Occlusion effect will be. + strength = "0.2" + # + # Increasing the value can reduce banding at the cost of reducing the strength of the effect. + bias = "0.02" + # + # Determines how dark the occlusion shadows can be. + # 0 = totally black at the corners + # 1 = no shadow + minLight = "0.25" + # + # The radius, measured in pixels, that blurring is calculated for the SSAO. + # Higher numbers will reduce banding at the cost of GPU performance. + blurRadius = 2 + + [client.advanced.graphics.genericRendering] + # + # If true non terrain objects will be rendered in DH's terrain. + # This includes beacon beams and clouds. + enableGenericRendering = true + # + # If true LOD beacon beams will be rendered. + enableBeaconRendering = true + # + # Sets the maximum height at which beacons will render.This will only affect new beacons coming into LOD render distance.Beacons currently visible in LOD chunks will not be affected. + beaconRenderHeight = 6000 + # + # If true LOD clouds will be rendered. + enableCloudRendering = true + # + # Can be disabled to use much slower but more compatible direct rendering. + # Disabling this can be used to fix some crashes on Mac. + enableInstancedRendering = true + + [client.advanced.graphics.fog] + # + # Determines if fog is drawn on DH LODs. + enableDhFog = true + # + # What color should fog use? + # + # USE_WORLD_FOG_COLOR: Use the world's fog color. + # USE_SKY_COLOR: Use the sky's color. + colorMode = "USE_WORLD_FOG_COLOR" + # + # Should Minecraft's fog render? + # Note: Other mods may conflict with this setting. + enableVanillaFog = false + # + # At what distance should the far fog start? + # + # 0.0: Fog starts at the player's position. + # 1.0: Fog starts at the closest edge of the vanilla render distance. + # 1.414: Fog starts at the corner of the vanilla render distance. + farFogStart = "0.4" + # + # Where should the far fog end? + # + # 0.0: Fog ends at player's position. + # 1.0: Fog ends at the closest edge of the vanilla render distance. + # 1.414: Fog ends at the corner of the vanilla render distance. + farFogEnd = "1.0" + # + # What is the minimum fog thickness? + # + # 0.0: No fog. + # 1.0: Fully opaque fog. + farFogMin = "0.0" + # + # What is the maximum fog thickness? + # + # 0.0: No fog. + # 1.0: Fully opaque fog. + farFogMax = "1.0" + # + # How should the fog thickness should be calculated? + # + # LINEAR: Linear based on distance (will ignore 'density') + # EXPONENTIAL: 1/(e^(distance*density)) + # EXPONENTIAL_SQUARED: 1/(e^((distance*density)^2) + farFogFalloff = "EXPONENTIAL_SQUARED" + # + # Used in conjunction with the Fog Falloff. + farFogDensity = "2.5" + + [client.advanced.graphics.fog.heightFog] + # + # How should height effect the fog thickness? + # Note: height fog is combined with the other fog settings. + # + # SPHERICAL: Fog is calculated based on camera distance. + # CYLINDRICAL: Ignore height, fog is calculated based on horizontal distance. + # + # MAX: max(heightFog, farFog) + # ADDITION: heightFog + farFog + # MULTIPLY: heightFog * farFog + # INVERSE_MULTIPLY: 1 - (1-heightFog) * (1-farFog) + # LIMITED_ADDITION: farFog + max(farFog, heightFog) + # MULTIPLY_ADDITION: farFog + farFog * heightFog + # INVERSE_MULTIPLY_ADDITION: farFog + 1 - (1-heightFog) * (1-farFog) + # AVERAGE: farFog*0.5 + heightFog*0.5 + heightFogMixMode = "SPHERICAL" + # + # Where should the height fog start? + # + # ABOVE_CAMERA: Height fog starts at the camera and goes towards the sky + # BELOW_CAMERA: Height fog starts at the camera and goes towards the void + # ABOVE_AND_BELOW_CAMERA: Height fog starts from the camera to goes towards both the sky and void + # ABOVE_SET_HEIGHT: Height fog starts from a set height and goes towards the sky + # BELOW_SET_HEIGHT: Height fog starts from a set height and goes towards the void + # ABOVE_AND_BELOW_SET_HEIGHT: Height fog starts from a set height and goes towards both the sky and void + heightFogDirection = "BELOW_SET_HEIGHT" + # + # If the height fog is calculated around a set height, what is that height position? + heightFogBaseHeight = "80.0" + # + # Should the start of the height fog be offset? + # + # 0.0: Fog start with no offset. + # 1.0: Fog start with offset of the entire world's height. (Includes depth) + heightFogStart = "0.0" + # + # Should the end of the height fog be offset? + # + # 0.0: Fog end with no offset. + # 1.0: Fog end with offset of the entire world's height. (Include depth) + heightFogEnd = "0.6" + # + # What is the minimum fog thickness? + # + # 0.0: No fog. + # 1.0: Fully opaque fog. + heightFogMin = "0.0" + # + # What is the maximum fog thickness? + # + # 0.0: No fog. + # 1.0: Fully opaque fog. + heightFogMax = "1.0" + # + # How should the height fog thickness should be calculated? + # + # LINEAR: Linear based on height (will ignore 'density') + # EXPONENTIAL: 1/(e^(height*density)) + # EXPONENTIAL_SQUARED: 1/(e^((height*density)^2) + heightFogFalloff = "EXPONENTIAL_SQUARED" + # + # What is the height fog's density? + heightFogDensity = "20.0" + + [client.advanced.graphics.noiseTexture] + # + # Should a noise texture be applied to LODs? + # + # This is done to simulate textures and make the LODs appear more detailed. + enableNoiseTexture = true + # + # How many steps of noise should be applied to LODs? + noiseSteps = 4 + # + # How intense should the noise should be? + noiseIntensity = "5.0" + # + # Defines how far should the noise texture render before it fades away. (in blocks) + # Set to 0 to disable noise from fading away + noiseDropoff = 1024 + + [client.advanced.graphics.culling] + # + # Determines how far from the camera Distant Horizons will start rendering. + # Measured as a percentage of the vanilla render distance. + # + # 0 = auto, overdraw will change based on the vanilla render distance. + # + # Higher values will prevent LODs from rendering behind vanilla blocks at a higher distance, + # but may cause holes in the world. + # Holes are most likely to appear when flying through unloaded terrain. + # + # Increasing the vanilla render distance increases the effectiveness of this setting. + overdrawPrevention = "0.0" + # + # If enabled caves won't be rendered. + # + # Note: for some world types this can cause + # overhangs or walls for floating objects. + # Tweaking the caveCullingHeight, can resolve some + # of those issues. + enableCaveCulling = true + # + # At what Y value should cave culling start? + # Lower this value if you get walls for areas with 0 light. + caveCullingHeight = 60 + # + # If false all beacons near the camera won't be drawn to prevent vanilla overdraw. + # If true all beacons will be rendered. + # + # Generally this should be left as true. It's main purpose is for debugging + # beacon updating/rendering. + disableBeaconDistanceCulling = true + # + # If true LODs outside the player's camera + # aren't drawn, increasing GPU performance. + # + # If false all LODs are drawn, even those behind + # the player's camera, decreasing GPU performance. + # + # Disable this if you see LODs disappearing at the corners of your vision. + disableFrustumCulling = false + # + # Identical to the other frustum culling option + # only used when a shader mod is present using the DH API + # and the shadow pass is being rendered. + # + # Disable this if shadows render incorrectly. + disableShadowPassFrustumCulling = false + # + # A comma separated list of block resource locations that won't be rendered by DH. + # Air is always included in this list. + # Requires a restart to change. + ignoredRenderBlockCsv = "minecraft:barrier,minecraft:structure_void,minecraft:light,minecraft:tripwire,minecraft:brown_mushroom" + # + # A comma separated list of block resource locations that shouldn't be rendered + # if they are in a 0 sky light underground area. + # Air is always included in this list. + # Requires a restart to change. + ignoredRenderCaveBlockCsv = "minecraft:glow_lichen,minecraft:rail,minecraft:water,minecraft:lava,minecraft:bubble_column,minecraft:cave_vines_plant,minecraft:vine,minecraft:cave_vines,minecraft:short_grass,minecraft:tall_grass,minecraft:small_dripleaf,minecraft:big_dripleaf,minecraft:big_dripleaf_stem,minecraft:sculk_vein" + + [client.advanced.graphics.experimental] + # + # This is the earth size ratio when applying the curvature shader effect. + # Note: Enabling this feature may cause rendering bugs. + # + # 0 = flat/disabled + # 1 = 1 to 1 (6,371,000 blocks) + # 100 = 1 to 100 (63,710 blocks) + # 10000 = 1 to 10000 (637.1 blocks) + # + # Note: Due to current limitations, the min value is 50 + # and the max value is 5000. Any values outside this range + # will be set to 0 (disabled). + earthCurveRatio = 0 + + [client.advanced.multiplayer] + # + # How should multiplayer save folders should be named? + # + # NAME_ONLY: Example: "Minecraft Server" + # IP_ONLY: Example: "192.168.1.40" + # NAME_IP: Example: "Minecraft Server IP 192.168.1.40" + # NAME_IP_PORT: Example: "Minecraft Server IP 192.168.1.40:25565"NAME_IP_PORT_MC_VERSION: Example: "Minecraft Server IP 192.168.1.40:25565 GameVersion 1.16.5" + serverFolderNameMode = "NAME_ONLY" + + [client.advanced.autoUpdater] + # + # Automatically check for updates on game launch? + enableAutoUpdater = true + # + # Should Distant Horizons silently, automatically download and install new versions? + # This setting is force disabled on dedicated servers for stability reasons. + enableSilentUpdates = false + # + # If DH should use the nightly (provided by Gitlab), or stable (provided by Modrinth) build. + # If [AUTO] is selected DH will update to new stable releases if the current jar is a stable jar + # and will update to new nightly builds if the current jar is a nightly jar (IE the version number ends in '-dev'). + updateBranch = "AUTO" + + [client.advanced.debugging] + # + # What renderer is active? + # + # DEFAULT: Default lod renderer + # DEBUG: Debug testing renderer + # DISABLED: Disable rendering + rendererMode = "DEFAULT" + # + # Should specialized colors/rendering modes be used? + # + # OFF: LODs will be drawn with their normal colors. + # SHOW_DETAIL: LODs' color will be based on their detail level. + # SHOW_BLOCK_MATERIAL: LODs' color will be based on their material. + # SHOW_OVERLAPPING_QUADS: LODs will be drawn with total white, but overlapping quads will be drawn with red. + debugRendering = "OFF" + # + # If enabled this will disable (most) vanilla Minecraft rendering. + # + # NOTE: Do not report any issues when this mode is on! + # This setting is only for fun and debugging. + # Mod compatibility is not guaranteed. + lodOnlyMode = false + # + # If enabled the LODs will render as wireframe. + renderWireframe = false + # + # If true the F8 key can be used to cycle through the different debug modes. + # and the F6 key can be used to enable and disable LOD rendering. + enableDebugKeybindings = false + # + # Stops vertex colors from being passed. + # Useful for debugging shaders + enableWhiteWorld = false + # + # If true overlapping quads will be rendered as bright red for easy identification. + # If false the quads will be rendered normally. + showOverlappingQuadErrors = false + # + # If true OpenGL Buffer garbage collection will be logged + # this also includes the number of live buffers. + logBufferGarbageCollection = false + + [client.advanced.debugging.debugWireframe] + # + # If enabled, various wireframes for debugging internal functions will be drawn. + # + # NOTE: There WILL be performance hit! + # Additionally, only stuff that's loaded after you enable this + # will render their debug wireframes. + enableRendering = false + # + # Render queued world gen tasks? + showWorldGenQueue = false + # + # Render queued network sync on load tasks? + showNetworkSyncOnLoadQueue = false + # + # Render LOD section status? + showRenderSectionStatus = false + # + # A white box will be drawn when an LOD starts rendering + # and a purple box when an LOD stops rendering. + # + # This can be used to debug Quad Tree holes. + showRenderSectionToggling = false + # + # Render Quad Tree Rendering status? + showQuadTreeRenderStatus = false + # + # Render full data update/lock status? + showFullDataUpdateStatus = false + + [client.advanced.debugging.openGl] + # + # Defines how OpenGL errors are handled. + # Requires rebooting Minecraft to change. + # Will catch OpenGL errors thrown by other mods. + overrideVanillaGLLogger = true + # + # If true each Open GL error will only be logged once. + # Enabling this may cause some error logs to be missed. + # Does nothing if overrideVanillaGLLogger is set to false. + # + # Generally this can be kept as 'true' to prevent log spam. + # However, Please set this to 'false' if a developer needs your log to debug a GL issue. + onlyLogGlErrorsOnce = true + # + # Defines how OpenGL errors are handled. + # May incorrectly catch OpenGL errors thrown by other mods. + # + # IGNORE: Do nothing. + # LOG: write an error to the log. + # LOG_THROW: write to the log and throw an exception. + # Warning: this should only be enabled when debugging the LOD renderer + # as it may break Minecraft's renderer when an exception is thrown. + glErrorHandlingMode = "IGNORE" + # + # Massively reduces FPS. + # Should only be used if mysterious EXCEPTION_ACCESS_VIOLATION crashes are happening in DH's rendering code for troubleshooting. + validateBufferIdsBeforeRendering = false + + [client.advanced.debugging.f3Screen] + # + # Shows the player's LOD position. + showPlayerPos = true + # + # Defines what internal detail level the player position will be shown as. + # Internal detail level means: 6 = 1x1 block, 7 = 2x2 blocks, etc. + playerPosSectionDetailLevel = 6 + # + # Shows info about each thread pool. + showThreadPools = true + # + # Shows the combined memory use and array counts for all DH pooled objects. + showCombinedObjectPools = false + # + # Shows the memory use and array counts for each DH object pool. + showSeparatedObjectPools = false + # + # Shows how many chunks are queud for processing and the max count that can be queued. + showQueuedChunkUpdateCount = true + # + # Shows what levels are loaded and world gen/rendering info about those levels. + showLevelStatus = true + + [client.advanced.debugging.exampleConfigScreen] + boolTest = false + byteTest = "8" + intTest = 69420 + doubleTest = "420.69" + shortTest = "69" + longTest = "42069" + floatTest = "0.42069" + stringTest = "Test input box" + listTest = ["option 1", "option 2", "option 3"] + mapTest = "{}" + linkableTest = 420 + +[common] + + [common.worldGenerator] + # + # Should Distant Horizons slowly generate LODs + # outside the vanilla render distance? + # Depending on the generator mode, this will import existing chunks + # and/or generating missing chunks. + enableDistantGeneration = true + # + # How detailed should LODs be generated outside the vanilla render distance? + # + # PRE_EXISTING_ONLY + # Only create LOD data for already generated chunks. + # + # + # SURFACE + # Generate the world surface, + # this does NOT include trees, + # or structures. + # + # FEATURES + # Generate everything except structures. + # WARNING: This may cause world generator bugs or instability when paired with certain world generator mods. + # + # INTERNAL_SERVER + # Ask the local server to generate/load each chunk. + # This is the most compatible and will generate structures correctly, + # but may cause server/simulation lag. + # Note: unlike other modes this option DOES save generated chunks to + # Minecraft's region files. + distantGeneratorMode = "INTERNAL_SERVER" + # + # How should distant generator progress be displayed? + # + # OVERLAY: may be the same as CHAT for some Minecraft versions + # CHAT + # LOG + # DISABLED + showGenerationProgress = "DISABLED" + # + # How often should the distant generator progress be displayed? + generationProgressDisplayIntervalInSeconds = 2 + # + # For how many seconds should instructions for disabling the distant generator progress be displayed? + # Setting this to 0 hides the instructional message so the world gen progress is shown immediately when it starts. + generationProgressDisableMessageDisplayTimeInSeconds = 20 + # + # When logging generation progress also include the rate at which chunks + # are being generated. + # This can be useful for troubleshooting performance. + generationProgressIncludeChunksPerSecond = true + + [common.lodBuilding] + # + # Enabling this will drastically increase chunk processing time + # and you may need to increase your CPU load to handle it. + # + # Normally DH will attempt to skip creating LODs for chunks it's already seen + # and that haven't changed. + # + # However sometimes that logic incorrectly prevents LODs from being updated. + # Disabling this check may fix issues where LODs aren't updated after + # blocks have been changed. + disableUnchangedChunkCheck = false + # + # What algorithm should be used to compress new LOD data? + # This setting will only affect new or updated LOD data, + # any data already generated when this setting is changed will be + # unaffected until it needs to be re-written to the database. + # + # UNCOMPRESSED + # Should only be used for testing, is worse in every way vs [LZ4]. + # Expected Compression Ratio: 1.0 + # Estimated average DTO read speed: 6.09 milliseconds + # Estimated average DTO write speed: 6.01 milliseconds + # + # LZ4 + # A good option if you're CPU limited and have plenty of hard drive space. + # Expected Compression Ratio: 0.4513 + # Estimated average DTO read speed: 3.25 ms + # Estimated average DTO write speed: 5.99 ms + # + # Z_STD + # A good option if you're CPU limited and have plenty of hard drive space. + # Expected Compression Ratio: 0.2606 + # Estimated average DTO read speed: 9.31 ms + # Estimated average DTO write speed: 15.13 ms + # + # LZMA2 + # Slow but very good compression. + # Expected Compression Ratio: 0.2 + # Estimated average DTO read speed: 13.29 ms + # Estimated average DTO write speed: 70.95 ms + dataCompression = "Z_STD" + # + # How should block data be compressed when creating LOD data? + # This setting will only affect new or updated LOD data, + # any data already generated when this setting is changed will be + # unaffected until it is modified or re-loaded. + # + # MERGE_SAME_BLOCKS + # Every block/biome change is recorded in the database. + # This is what DH 2.0 and 2.0.1 all used by default and will store a lot of data. + # Expected Compression Ratio: 1.0 + # + # VISUALLY_EQUAL + # Only visible block/biome changes are recorded in the database. + # Hidden blocks (IE ores) are ignored. + # Expected Compression Ratio: 0.7 + worldCompression = "VISUALLY_EQUAL" + # + # True: Recalculate chunk height maps before chunks can be used by DH. + # This can fix problems with worlds created by World Painter or + # other external tools where the heightmap format may be incorrect. + # False: Assume any height maps handled by Minecraft are correct. + # + # Fastest: False + # Most Compatible: True + recalculateChunkHeightmaps = false + # + # If true LOD generation for pre-existing chunks will attempt to pull the lighting data + # saved in Minecraft's Region files. + # If false DH will pull in chunks without lighting and re-light them. + # + # Setting this to true will result in faster LOD generation + # for already generated worlds, but is broken by most lighting mods. + # + # Set this to false if LODs are black. + pullLightingForPregeneratedChunks = false + # + # When DH pulls in pre-existing chunks it will attempt to + # run any missing world generation steps; for example: + # if a chunk has the status SURFACE, DH will skip BIOMES + # and SURFACE, but will run FEATURES. + # + # However if for some reason the chunks are malformed + # or there's some other issue that causes the status + # to be incorrect that can either cause world gen + # lock-ups and/or crashes. + # If either of those happen try setting this to True. + assumePreExistingChunksAreFinished = false + + [common.lodBuilding.experimental] + # + # When active DH will attempt to fill missing LOD data + # with any data that is present in the tree, preventing holes when moving + # when a N-sized generator (or server) is active. + # + # This is only used when N-sized world generation is available + # and/or when on a server where [generateOnlyInHighestDetail] is false. + # + # Experimental: + # Enabling this option will increase CPU and harddrive use + # and may cause rendering bugs. + upsampleLowerDetailLodsToFillHoles = false + + [common.multiThreading] + # + # How many threads should be used by Distant Horizons? + numberOfThreads = 8 + # + # A value between 1.0 and 0.0 that represents the percentage + # of time each thread can run before going idle. + # + # This can be used to reduce CPU usage if the thread count + # is already set to 1 for the given option, or more finely + # tune CPU performance. + threadRunTimeRatio = "1.0" + + [common.logging] + # + # If enabled, the mod will log information about the world generation process. + # This can be useful for debugging. + logWorldGenEvent = "LOG_ERROR_TO_CHAT_AND_INFO_TO_FILE" + # + # If enabled, the mod will log performance about the world generation process. + # This can be useful for debugging. + logWorldGenPerformance = "LOG_ERROR_TO_CHAT_AND_INFO_TO_FILE" + # + # If enabled, the mod will log information about the world generation process. + # This can be useful for debugging. + logWorldGenLoadEvent = "LOG_ERROR_TO_CHAT_AND_INFO_TO_FILE" + # + # If enabled, the mod will log information about the renderer buffer process. + # This can be useful for debugging. + logRendererBufferEvent = "LOG_ERROR_TO_CHAT_AND_INFO_TO_FILE" + # + # If enabled, the mod will log information about the renderer OpenGL process. + # This can be useful for debugging. + logRendererGLEvent = "LOG_ERROR_TO_CHAT_AND_INFO_TO_FILE" + # + # If enabled, the mod will log information about network operations. + # This can be useful for debugging. + logNetworkEvent = "LOG_ERROR_TO_CHAT_AND_WARNING_TO_FILE" + + [common.logging.warning] + # + # If enabled, a chat message will be displayed if Java doesn't have enough + # memory allocated to run DH well. + showLowMemoryWarningOnStartup = true + # + # If enabled, a chat message will be displayed if DH detects + # that any pooled objects have been garbage collected. + showPoolInsufficientMemoryWarning = true + # + # If enabled, a chat message will be displayed if vanilla MC's + # render distance is higher than the recommended amount. + showHighVanillaRenderDistanceWarning = true + # + # If enabled, a chat message will be displayed when a replay is started + # giving some basic information about how DH will function. + showReplayWarningOnStartup = true + # + # If enabled, a chat message will be displayed when DH has too many chunks + # queued for updating. + showUpdateQueueOverloadedChatWarning = false + # + # If enabled, a chat message will be displayed when a potentially problematic + # mod is installed alongside DH. + showModCompatibilityWarningsOnStartup = true + +[server] + # + # Makes the server send level keys for each world. + # Disable this if you use alternative ways to send level keys. + sendLevelKeys = true + # + # Prefix of the level keys sent to the clients. + # If the mod is running behind a proxy, each backend should use a unique value. + # If this value is empty, level key will be based on the server's seed hash. + levelKeyPrefix = "" + # + # How many LOD generation requests per second should a client send? + # Also limits the number of client requests allowed to stay in the server's queue. + generationRequestRateLimit = 20 + # + # Defines the distance allowed to generate around the player. + maxGenerationRequestDistance = 4096 + # + # Defines the X-coordinate of the central point for generation boundaries, in blocks. + generationBoundsX = 0 + # + # Defines the Z-coordinate of the central point for generation boundaries, in blocks. + generationBoundsZ = 0 + # + # Defines the radius around the central point within which generation is allowed, in blocks. + # If this value is set to 0, generation bounds are disabled. + generationBoundsRadius = 0 + # + # If true, clients will receive real-time LOD updates for chunks outside the client's render distance. + enableRealTimeUpdates = true + # + # Defines the distance the player will receive updates around. + realTimeUpdateDistanceRadiusInChunks = 256 + # + # If true, clients will receive updated LODs when joining or loading new LODs. + synchronizeOnLoad = true + # + # How many LOD sync requests per second should a client send? + # Also limits the amount of player's requests allowed to stay in the server's queue. + syncOnLoadRateLimit = 50 + # + # Defines the distance allowed to be synchronized around the player. + # Should be the same or larger than maxGenerationRequestDistance in most cases. + maxSyncOnLoadRequestDistance = 4096 + # + # Maximum per-player speed for uploading LODs to the clients, in KB/s. + # Value of 0 disables the limit. + playerBandwidthLimit = 500 + # + # Maximum global speed for uploading LODs to the clients, in KB/s. + # Value of 0 disables the limit. + globalBandwidthLimit = 0 + # + # Enables adaptive transfer speed based on client performance. + # If true, DH will automatically adjust transfer rate to minimize connection lag. + # If false, transfer speed will remain fixed. + enableAdaptiveTransferSpeed = false + + [server.experimental] + # + # When enabled on the client, this allows loading lower detail levels as needed to speed up terrain generation. + # This must also be enabled on the server; otherwise, it will have no effect. + # For better performance when switching LOD detail levels, enabling [upsampleLowerDetailLodsToFillHoles] is recommended. + enableNSizedGeneration = false + diff --git a/config/ftbquests/quests/chapters/applied_energistics_2.snbt b/config/ftbquests/quests/chapters/applied_energistics_2.snbt index abf33fc22..8a53c009a 100644 --- a/config/ftbquests/quests/chapters/applied_energistics_2.snbt +++ b/config/ftbquests/quests/chapters/applied_energistics_2.snbt @@ -218,13 +218,6 @@ id: "432E105A84AEA630" type: "checkmark" } - { - dimension: "ad_astra:moon" - disable_toast: true - icon: "tfg:marker/moon" - id: "6A4F5147475443C5" - type: "dimension" - } ] title: "{quests.ae2.fluix_liquid.title}" x: -3.5d @@ -234,6 +227,7 @@ can_repeat: true dependencies: ["0C0B09D66D0CFFBA"] description: ["{quests.ae2.ae_guide.desc}"] + icon: "ae2:guide" id: "6CF08AFB924905F0" rewards: [{ id: "34825A998EA88DB4" @@ -538,13 +532,13 @@ { dependencies: ["6CF08AFB924905F0"] description: ["{quests.ae2.iv.desc}"] + icon: "tfg:iv_universal_circuit" icon_scale: 2.0d id: "0F1104DEEB22EF86" size: 1.0d tasks: [{ - id: "0D58947010553DE2" - item: "tfg:iv_universal_circuit" - type: "item" + id: "6D9B9EAFE680B768" + type: "checkmark" }] title: "{quests.ae2.iv.title}" x: 3.0d @@ -638,13 +632,13 @@ { dependencies: ["6CF08AFB924905F0"] description: ["{quests.ae2.luv.desc}"] + icon: "tfg:luv_universal_circuit" icon_scale: 2.0d id: "1F3621FABA32DC6B" size: 1.0d tasks: [{ - id: "54E60091BA319CB6" - item: "tfg:luv_universal_circuit" - type: "item" + id: "4CE3EF0D1FAC1B6C" + type: "checkmark" }] title: "{quests.ae2.luv.title}" x: 0.5d @@ -705,13 +699,13 @@ { dependencies: ["6CF08AFB924905F0"] description: ["{quests.ae2.hv.desc}"] + icon: "tfg:hv_universal_circuit" icon_scale: 2.0d id: "3C3C21482E31267B" size: 1.0d tasks: [{ - id: "59184C16CD8F51C6" - item: "tfg:hv_universal_circuit" - type: "item" + id: "1D4A01B75676146B" + type: "checkmark" }] title: "{quests.ae2.hv.title}" x: 0.5d diff --git a/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt b/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt index c0da537f7..83efe62f8 100644 --- a/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt +++ b/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt @@ -55,6 +55,12 @@ x: 4.5d y: 5.5d } + { + id: "7B380A243C2C39FA" + linked_quest: "13F2929C1C303A0B" + x: 0.5d + y: -3.0d + } ] quests: [ { @@ -189,7 +195,11 @@ y: 3.0d } { - dependencies: ["4EA8888B12D75BF1"] + dependencies: [ + "4EA8888B12D75BF1" + "6A451F43F3D7A671" + ] + dependency_requirement: "one_completed" description: [ "{quests.extreme_voltage.distillation_tower.desc.1}" "{@pagebreak}" @@ -1571,7 +1581,7 @@ subtitle: "{quests.extreme_voltage.ostrum_linear.subtitle}" tasks: [{ id: "130FE3E2CE8735F8" - item: "gtceu:ostrum_linear_accelerator" + item: "tfg:ostrum_linear_accelerator" type: "item" }] x: 20.0d diff --git a/config/ftbquests/quests/chapters/gregtech_energy.snbt b/config/ftbquests/quests/chapters/gregtech_energy.snbt index 83f559120..581c9b6a3 100644 --- a/config/ftbquests/quests/chapters/gregtech_energy.snbt +++ b/config/ftbquests/quests/chapters/gregtech_energy.snbt @@ -6,6 +6,64 @@ group: "31B01EAD21CA863A" icon: "gtceu:max_battery" id: "6540429F3CA4DA1B" + images: [ + { + height: 2.0d + image: "ftblibrary:icons/star" + rotation: 0.0d + width: 2.0d + x: 3.0d + y: -5.0d + } + { + height: 2.0d + image: "ftblibrary:icons/star" + rotation: 0.0d + width: 2.0d + x: -3.0d + y: -7.0d + } + { + height: 2.5d + image: "ftblibrary:icons/star" + rotation: 0.0d + width: 2.5d + x: -10.5d + y: -9.5d + } + { + height: 2.5d + image: "ftblibrary:icons/star" + rotation: 0.0d + width: 2.5d + x: 6.0d + y: -7.0d + } + { + height: 2.0d + image: "ftblibrary:icons/star" + rotation: 0.0d + width: 2.0d + x: 5.0d + y: -6.0d + } + { + height: 2.0d + image: "ftblibrary:icons/star" + rotation: 0.0d + width: 2.0d + x: 7.0d + y: -6.0d + } + { + height: 2.25d + image: "ftblibrary:icons/star" + rotation: 0.0d + width: 2.25d + x: 3.0d + y: -7.0d + } + ] order_index: 2 quest_links: [ ] quests: [ @@ -14,7 +72,7 @@ icon: "gtceu:uhv_ultimate_battery" id: "06B2E38F7DCF2678" shape: "gear" - size: 1.0d + size: 3.0d subtitle: "{quests.gregtech_energy.start.subtitle}" tasks: [{ id: "07E1FA6A1BB796D4" @@ -23,13 +81,15 @@ }] title: "{quests.gregtech_energy.start.title}" x: 0.0d - y: -8.5d + y: -9.5d } { dependencies: ["4C620105AAC49381"] description: ["{quests.gregtech_energy.moving.desc}"] icon: "gtceu:luv_field_generator" id: "60FF9249376DF9BD" + shape: "octagon" + size: 1.5d subtitle: "{quests.gregtech_energy.moving.subtitle}" tasks: [{ id: "4C6524EFB1A21E6E" @@ -45,6 +105,8 @@ description: ["{quests.gregtech_energy.storage.desc}"] icon: "gtceu:uv_field_generator" id: "08C160A0E7BBF39D" + shape: "octagon" + size: 1.5d subtitle: "{quests.gregtech_energy.storage.subtitle}" tasks: [{ id: "2E561EE13A2AE934" @@ -64,6 +126,8 @@ description: ["{quests.gregtech_energy.produce_energy.desc}"] icon: "gtceu:lv_field_generator" id: "2CDB9778C7A30044" + shape: "octagon" + size: 1.5d subtitle: "{quests.gregtech_energy.produce_energy.subtitle}" tasks: [{ id: "0772AE56AC1CCBAC" @@ -71,8 +135,8 @@ type: "checkmark" }] title: "{quests.gregtech_energy.produce_energy.title}" - x: -1.0d - y: -8.5d + x: -10.5d + y: -9.5d } { dependencies: ["4C620105AAC49381"] @@ -87,6 +151,8 @@ ] icon: "gtceu:hv_field_generator" id: "2E57B2B963717893" + shape: "octagon" + size: 1.5d subtitle: "{quests.gregtech_energy.spending_energy.subtitle}" tasks: [{ id: "28965A2A91DF08E5" @@ -168,7 +234,7 @@ { dependencies: [ "60FF9249376DF9BD" - "1DB543EFEEB67238" + "05E2F203DA46A5E8" ] description: ["{quests.gregtech_energy.transformer.desc}"] icon: "gtceu:active_transformer" @@ -200,7 +266,7 @@ ] title: "{quests.gregtech_energy.transformer.title}" x: 6.0d - y: 3.0d + y: 1.0d } { dependencies: ["08C160A0E7BBF39D"] @@ -292,8 +358,8 @@ type: "item" }] title: "{quests.gregtech_energy.tank.title}" - x: 8.0d - y: -6.0d + x: 10.0d + y: -8.0d } { dependencies: [ @@ -506,7 +572,7 @@ y: 1.0d } { - dependencies: ["4D0ADC66D2CF09B1"] + dependencies: ["2CDB9778C7A30044"] description: [ "{quests.gregtech_energy.lgt_fuel.desc.1}" "{@pagebreak}" @@ -517,32 +583,50 @@ subtitle: "{quests.gregtech_energy.lgt_fuel.subtitle}" tasks: [ { - id: "2A3155363C7C56A7" - item: "gtceu:nitrobenzene_bucket" - optional_task: true - type: "item" - } - { - id: "6D22AF719926DC1C" - item: "gtceu:benzene_bucket" - optional_task: true - type: "item" - } - { - id: "532915D09934F836" + id: "3BC6583DCF48D475" item: "gtceu:methane_bucket" optional_task: true type: "item" } { - id: "75DE64829622C96D" + id: "08E4B7F67EA2769B" + item: "tfg:syngas_bucket" + optional_task: true + type: "item" + } + { + id: "067CB52470E7A72E" + item: "gtceu:refinery_gas_bucket" + optional_task: true + type: "item" + } + { + id: "20F5E6847D132420" + item: "gtceu:lpg_bucket" + optional_task: true + type: "item" + } + { + id: "733F33DC314A646C" + item: "tfg:reformate_gas_bucket" + optional_task: true + type: "item" + } + { + id: "29E24DFADB670971" + item: "tfg:btx_fuel_bucket" + optional_task: true + type: "item" + } + { + id: "3DA67694B1764AE0" title: "{quests.gregtech_energy.lgt_fuel.task}" type: "checkmark" } ] title: "{quests.gregtech_energy.lgt_fuel.title}" - x: -10.0d - y: -3.0d + x: -10.5d + y: -8.0d } { dependencies: ["634EAFA86B3D57A1"] @@ -574,11 +658,11 @@ } ] title: "{quests.gregtech_energy.lpt_fuel.title}" - x: -9.0d + x: -12.0d y: 3.0d } { - dependencies: ["4C620105AAC49381"] + dependencies: ["2CDB9778C7A30044"] description: ["{quests.gregtech_energy.lst_fuel.desc}"] icon: "gtceu:steam_bucket" id: "7D5CA47D0E147922" @@ -604,11 +688,11 @@ } ] title: "{quests.gregtech_energy.lst_fuel.title}" - x: -9.0d - y: -7.0d + x: -12.0d + y: -8.0d } { - dependencies: ["4AC4D681124751EE"] + dependencies: ["2CDB9778C7A30044"] description: [ "{quests.gregtech_energy.lce_fuel.desc.1}" "{@pagebreak}" @@ -656,7 +740,7 @@ ] title: "{quests.gregtech_energy.lce_fuel.title}" x: -9.0d - y: 1.0d + y: -8.0d } { dependencies: ["4C620105AAC49381"] @@ -668,6 +752,8 @@ "{quests.gregtech_energy.lv_generator.desc.3}" "{@pagebreak}" "{quests.gregtech_energy.lv_generator.desc.4}" + "{@pagebreak}" + "{quests.gregtech_energy.lv_generator.desc.5}" ] id: "7F92FDAB9A04C58B" subtitle: "{quests.gregtech_energy.lv_generator.subtitle}" @@ -678,7 +764,7 @@ Count: 1 id: "ftbfiltersystem:smart_filter" tag: { - "ftbfiltersystem:filter": "or(item(gtceu:lv_steam_turbine)item(gtceu:lv_combustion))" + "ftbfiltersystem:filter": "or(item(gtceu:lv_combustion)item(gtceu:lv_steam_turbine)item(gtceu:lv_gas_turbine))" } } title: "{quests.gregtech_energy.lv_generator.task}" @@ -728,7 +814,6 @@ dependencies: [ "109C57B63EE95E35" "5826EC76931359B8" - "7AF726555D721DFC" ] dependency_requirement: "one_completed" description: [ @@ -746,7 +831,7 @@ type: "item" }] x: -6.0d - y: -1.0d + y: -2.0d } { dependencies: ["4D0ADC66D2CF09B1"] @@ -766,45 +851,11 @@ type: "item" }] title: "{quests.gregtech_energy.hv_single_generator.title}" - x: -4.5d + x: -1.5d y: -3.0d } { - dependencies: ["1A0672F4FA88DF74"] - description: ["{quests.gregtech_energy.hv_fuel.desc}"] - id: "42CF00F2C602EF77" - subtitle: "{quests.gregtech_energy.hv_fuel.subtitle}" - tasks: [ - { - id: "50AA063D324C5D25" - item: "gtceu:cetane_boosted_diesel_bucket" - optional_task: true - type: "item" - } - { - id: "60BED708F72701C8" - item: "gtceu:steam_bucket" - optional_task: true - type: "item" - } - { - id: "2C80389B193E48CE" - item: "gtceu:nitrobenzene_bucket" - optional_task: true - type: "item" - } - { - id: "33FC3878BFB14AE1" - title: "{quests.gregtech_energy.hv_fuel.task}" - type: "checkmark" - } - ] - title: "{quests.gregtech_energy.hv_fuel.title}" - x: -11.0d - y: -3.0d - } - { - description: ["TODO"] + dependencies: ["06B2E38F7DCF2678"] disable_toast: true icon: "tfg:lv_universal_circuit" id: "4C620105AAC49381" @@ -821,7 +872,7 @@ y: -7.0d } { - description: ["TODO"] + dependencies: ["4C620105AAC49381"] disable_toast: true icon: "tfg:mv_universal_circuit" id: "0AF286AA540A82E6" @@ -838,7 +889,7 @@ y: -5.0d } { - description: ["TODO"] + dependencies: ["0AF286AA540A82E6"] disable_toast: true icon: "tfg:hv_universal_circuit" id: "4D0ADC66D2CF09B1" @@ -855,7 +906,7 @@ y: -3.0d } { - description: ["TODO"] + dependencies: ["4D0ADC66D2CF09B1"] disable_toast: true icon: "tfg:ev_universal_circuit" id: "7AF726555D721DFC" @@ -872,7 +923,7 @@ y: -1.0d } { - description: ["TODO"] + dependencies: ["7AF726555D721DFC"] disable_toast: true icon: "tfg:iv_universal_circuit" id: "05E2F203DA46A5E8" @@ -889,7 +940,7 @@ y: 1.0d } { - description: ["TODO"] + dependencies: ["05E2F203DA46A5E8"] disable_toast: true icon: "tfg:luv_universal_circuit" id: "1DB543EFEEB67238" @@ -906,6 +957,7 @@ y: 3.0d } { + dependencies: ["1DB543EFEEB67238"] description: ["TODO"] disable_toast: true icon: "tfg:zpm_universal_circuit" @@ -923,6 +975,7 @@ y: 5.0d } { + dependencies: ["39019EF278D09DF7"] description: ["TODO"] disable_toast: true icon: "tfg:uv_universal_circuit" @@ -940,24 +993,46 @@ y: 7.0d } { - dependencies: ["0AF286AA540A82E6"] + dependencies: [ + "0AF286AA540A82E6" + "75DAF94D46BA4164" + ] + description: [ + "{quests.gregtech_energy.reformate_gas.desc.1}" + "{@pagebreak}" + "{quests.gregtech_energy.reformate_gas.desc.2}" + ] id: "3630849A7B0818C8" + subtitle: "{quests.gregtech_energy.reformate_gas.subtitle}" tasks: [{ id: "0CF9D6042C16265A" - item: "gtceu:benzene_bucket" + item: "tfg:reformate_gas_bucket" type: "item" }] - x: -10.0d + title: "{quests.gregtech_energy.reformate_gas.title}" + x: -10.5d y: -5.0d } { - dependencies: ["0AF286AA540A82E6"] + dependencies: [ + "0AF286AA540A82E6" + "0C718329245D9619" + ] + description: [ + "{quests.medium_voltage.mv_diesel.desc.1}" + "{@pagebreak}" + "{quests.medium_voltage.mv_diesel.desc.2}" + "{@pagebreak}" + "{quests.medium_voltage.mv_diesel.desc.3}" + ] id: "79AA7691F398A8C7" + subtitle: "{quests.medium_voltage.mv_diesel.subtitle}" tasks: [{ id: "36219BC854303490" item: "gtceu:diesel_bucket" type: "item" }] + title: "{quests.medium_voltage.mv_diesel.title}" x: -9.0d y: -5.0d } @@ -980,6 +1055,7 @@ "{@pagebreak}" "{quests.gregtech_energy.fission_reactor.desc.8}" ] + icon: "deafission:fission_reactor_mk1" id: "4512E5DE7A84F809" subtitle: "{quests.gregtech_energy.fission_reactor.subtitle}" tasks: [ @@ -999,37 +1075,52 @@ y: -1.0d } { - dependencies: ["4C620105AAC49381"] + dependencies: [ + "4C620105AAC49381" + "0C718329245D9619" + ] id: "139C7DF629329753" tasks: [{ id: "7BA9FDD1F45B53F6" item: "gtceu:bio_diesel_bucket" type: "item" }] - x: -10.0d + x: -9.0d y: -7.0d } { - dependencies: ["4D0ADC66D2CF09B1"] + dependencies: [ + "4D0ADC66D2CF09B1" + "0C718329245D9619" + ] + description: ["{quests.high_voltage.cetane_diesel.desc}"] id: "376BFF92714C5012" + subtitle: "{quests.high_voltage.cetane_diesel.subtitle}" tasks: [{ id: "22F9A3ED193CB252" item: "gtceu:cetane_boosted_diesel_bucket" type: "item" }] + title: "{quests.high_voltage.cetane_diesel.title}" x: -9.0d y: -3.0d } { - dependencies: ["7AF726555D721DFC"] + dependencies: [ + "0C718329245D9619" + "05E2F203DA46A5E8" + ] + description: ["{quests.gregtech_energy.high_gasoline.desc}"] id: "7134DB013B34593E" + subtitle: "{quests.gregtech_energy.high_gasoline.subtitle}" tasks: [{ id: "008341509483BB23" item: "gtceu:high_octane_gasoline_bucket" type: "item" }] + title: "{quests.gregtech_energy.high_gasoline.title}" x: -9.0d - y: -1.0d + y: 1.0d } { dependencies: ["7AF726555D721DFC"] @@ -1136,6 +1227,95 @@ x: -3.0d y: -2.0d } + { + dependencies: [ + "05E2F203DA46A5E8" + "0ABD326DC2551CBD" + ] + description: ["{quests.gregtech_energy.smr.desc.1}"] + id: "4659447C85CDC058" + subtitle: "{quests.gregtech_energy.smr.subtitle}" + tasks: [{ + id: "1D02468DD9869C72" + item: "deafission:fission_reactor_smr1" + type: "item" + }] + title: "{quests.gregtech_energy.smr.title}" + x: -7.5d + y: 1.0d + } + { + dependencies: [ + "4C620105AAC49381" + "75DAF94D46BA4164" + ] + description: ["{quests.gregtech_energy.syngas.desc}"] + id: "27FEF27219CDF5AD" + subtitle: "{quests.gregtech_energy.syngas.subtitle}" + tasks: [{ + id: "7BA53E107C8E8917" + item: "tfg:syngas_bucket" + type: "item" + }] + title: "{quests.gregtech_energy.syngas.title}" + x: -10.5d + y: -7.0d + } + { + dependencies: ["4512E5DE7A84F809"] + description: ["{quests.gregtech_energy.fission_rod.desc.1}"] + id: "0ABD326DC2551CBD" + subtitle: "{quests.gregtech_energy.fission_rod.subtitle}" + tasks: [{ + id: "68E3EE04F4931EFE" + item: { + Count: 1 + id: "tfg:tbu_232_rod" + tag: { + Damage: 0 + } + } + type: "item" + }] + title: "{quests.gregtech_energy.fission_rod.title}" + x: -7.5d + y: 0.0d + } + { + dependencies: [ + "3630849A7B0818C8" + "7AF726555D721DFC" + ] + dependency_requirement: "one_completed" + description: ["{quests.gregtech_energy.btx.desc}"] + id: "35E113FF0C1645CC" + subtitle: "{quests.gregtech_energy.btx.subtitle}" + tasks: [{ + id: "2C766A3391285E33" + item: "tfg:btx_fuel_bucket" + type: "item" + }] + title: "{quests.gregtech_energy.btx.title}" + x: -10.5d + y: -1.0d + } + { + dependencies: [ + "0C718329245D9619" + "7AF726555D721DFC" + ] + description: ["{quests.gregtech_energy.gasoline.desc}"] + id: "27E9DAF9F578A3E8" + subtitle: "{quests.gregtech_energy.gasoline.subtitle}" + tasks: [{ + id: "34695995678F09C6" + item: "gtceu:gasoline_bucket" + type: "item" + }] + title: "{quests.gregtech_energy.gasoline.title}" + x: -9.0d + y: -1.0d + } ] subtitle: ["{quests.gregtech_energy.subtitle}"] title: "{quests.gregtech_energy}" diff --git a/config/ftbquests/quests/chapters/hv__high_voltage.snbt b/config/ftbquests/quests/chapters/hv__high_voltage.snbt index 2c623efdf..a203b1f59 100644 --- a/config/ftbquests/quests/chapters/hv__high_voltage.snbt +++ b/config/ftbquests/quests/chapters/hv__high_voltage.snbt @@ -33,6 +33,24 @@ x: 13.0d y: -6.0d } + { + id: "4A902B3F8AE331AC" + linked_quest: "5D188F6C46EA9ED0" + x: -6.0d + y: -3.0d + } + { + id: "513464FBE4A87CB7" + linked_quest: "3A2E442E4D84C891" + x: 2.5d + y: -10.0d + } + { + id: "1B29194F9C306CFE" + linked_quest: "36B9B5024356C53C" + x: 3.5d + y: -10.0d + } ] quests: [ { @@ -557,11 +575,13 @@ { id: "54D65A0A939DAD54" item: "gtceu:hydrofluoric_acid_bucket" + optional_task: true type: "item" } { id: "3E6E6F21B34F86B4" item: "gtceu:chloroform_bucket" + optional_task: true type: "item" } ] @@ -577,6 +597,7 @@ optional: true shape: "square" size: 1.0d + subtitle: "{quests.high_voltage.nitrobenzene.subtitle}" tasks: [ { id: "33CF24B0A19D2F25" @@ -760,7 +781,7 @@ icon: "gtceu:cetane_boosted_diesel_bucket" id: "04F6E968CEEC3D49" optional: true - shape: "square" + shape: "heart" size: 1.0d subtitle: "{quests.high_voltage.cetane_diesel.subtitle}" tasks: [ @@ -835,7 +856,6 @@ "{@pagebreak}" "{quests.high_voltage.hv_macerator.desc.2}" ] - icon: "gtceu:hv_macerator" id: "6B7762F672BAE76F" shape: "octagon" size: 1.5d @@ -1228,7 +1248,11 @@ "04F6E968CEEC3D49" ] dependency_requirement: "one_completed" - description: ["{ \"text\": \"{quests.high_voltage.linked_quest_energy.desc}\", \"bold\": \"true\", \"clickEvent\": { \"action\": \"change_page\", \"value\": \"2CDB9778C7A30044\" } }"] + description: [ + "{quests.high_voltage.linked_quest_energy.desc}" + "" + "{ \"text\": \"▶▶▶▶▶▶▶\", \"underlined\": \"true\", \"clickEvent\": { \"action\": \"change_page\", \"value\": \"2CDB9778C7A30044\" } }" + ] id: "595C5A01358B9550" subtitle: "{quests.high_voltage.linked_quest_energy.subtitle}" tasks: [{ @@ -1529,14 +1553,15 @@ type: "item" }] title: "{quests.high_voltage.wand.title}" - x: 13.0d - y: -8.0d + x: 14.5d + y: -7.5d } { dependencies: ["396E85A39FF414CF"] description: ["{quests.high_voltage.hypertubes.desc}"] id: "159A0DAEE55DCAC0" optional: true + shape: "heart" subtitle: "{quests.high_voltage.hypertubes.subtitle}" tasks: [ { @@ -1554,6 +1579,82 @@ x: 11.5d y: -7.5d } + { + dependencies: ["16B735F9C391D260"] + description: [ + "{quests.medium_voltage.mv_long_pipe.desc.1}" + "{@pagebreak}" + "{quests.medium_voltage.mv_long_pipe.desc.2}" + ] + icon: "gtceu:long_distance_fluid_pipeline_endpoint" + id: "0015BD8AA5A517D1" + optional: true + shape: "heart" + size: 1.0d + subtitle: "{quests.medium_voltage.mv_long_pipe.subtitle}" + tasks: [ + { + count: 2L + id: "7C8964FAF91C1529" + item: "gtceu:long_distance_fluid_pipeline_endpoint" + type: "item" + } + { + id: "48937E331D0184E7" + item: "gtceu:long_distance_fluid_pipeline" + type: "item" + } + ] + title: "{quests.medium_voltage.mv_long_pipe.title}" + x: 5.0d + y: -8.0d + } + { + dependencies: ["7FA0ACB7F161F378"] + description: ["{quests.high_voltage.titanium_greate.desc}"] + id: "04799A40C5910B3F" + optional: true + shape: "heart" + tasks: [ + { + id: "5B94BB35A8480214" + item: "greate:titanium_cogwheel" + type: "item" + } + { + id: "0C95EDF964B17ED6" + item: "greate:large_titanium_cogwheel" + type: "item" + } + { + id: "2E602B31550041B9" + item: "greate:titanium_shaft" + type: "item" + } + ] + title: "{quests.high_voltage.titanium_greate.title}" + x: -6.0d + y: -1.0d + } + { + dependencies: ["36B9B5024356C53C"] + description: [ + "{quests.gregtech_energy.reformate_gas.desc.1}" + "{@pagebreak}" + "{quests.gregtech_energy.reformate_gas.desc.2}" + ] + id: "3E4E63D5B8CB6860" + shape: "heart" + subtitle: "{quests.gregtech_energy.reformate_gas.subtitle}" + tasks: [{ + id: "575518211DA29A4E" + item: "tfg:reformate_gas_bucket" + type: "item" + }] + title: "{quests.gregtech_energy.reformate_gas.title}" + x: 5.0d + y: -10.0d + } ] subtitle: ["{quests.high_voltage.subtitle}"] title: "{quests.high_voltage}" diff --git a/config/ftbquests/quests/chapters/lv__low_voltage.snbt b/config/ftbquests/quests/chapters/lv__low_voltage.snbt index 1cfca348e..9097d9d30 100644 --- a/config/ftbquests/quests/chapters/lv__low_voltage.snbt +++ b/config/ftbquests/quests/chapters/lv__low_voltage.snbt @@ -5,23 +5,30 @@ group: "44D0F3E5067B5AB8" icon: "tfg:lv_universal_circuit" id: "7D50771C3FE033D7" - images: [{ - height: 2.0d - image: "createdeco:block/palettes/decal/yellow_decal" - rotation: 0.0d - width: 2.0d - x: 8.0d - y: 7.0d - }] order_index: 0 - quest_links: [{ - id: "13EDC87034A162DE" - linked_quest: "2CDB9778C7A30044" - shape: "octagon" - size: 2.0d - x: 4.0d - y: 7.0d - }] + quest_links: [ + { + id: "13EDC87034A162DE" + linked_quest: "2CDB9778C7A30044" + shape: "octagon" + size: 2.0d + x: 5.5d + y: 8.5d + } + { + id: "0EA7766FE6845121" + linked_quest: "0FFBB6177DEB0A23" + x: -8.5d + y: 10.5d + } + { + id: "5A47760FCD164E74" + linked_quest: "61F58B402F1AE40B" + shape: "heart" + x: -7.5d + y: 4.5d + } + ] quests: [ { dependencies: ["2F7617C0C4B330DE"] @@ -116,6 +123,7 @@ ] id: "6E186F9C57155BFA" optional: true + shape: "hexagon" size: 1.0d subtitle: "{quests.low_voltage.lv_steam_turbine.subtitle}" tasks: [{ @@ -124,8 +132,8 @@ type: "item" }] title: "{quests.low_voltage.lv_steam_turbine.title}" - x: 5.5d - y: 7.0d + x: 7.0d + y: 9.0d } { dependencies: ["6431381FBE07D6EF"] @@ -160,7 +168,7 @@ }] title: "{quests.low_voltage.aluminium_ingot.title}" x: -10.0d - y: 9.75d + y: 10.5d } { dependencies: [ @@ -242,7 +250,7 @@ type: "checkmark" }] title: "{quests.low_voltage.machine_auto_output_behaviour.title}" - x: -4.0d + x: -3.5d y: 1.5d } { @@ -271,7 +279,7 @@ type: "item" }] title: "{quests.low_voltage.lv_wiremill.title}" - x: -3.0d + x: -2.5d y: 0.5d } { @@ -296,7 +304,7 @@ type: "item" }] title: "{quests.low_voltage.lv_bender.title}" - x: -3.0d + x: -2.5d y: 2.5d } { @@ -322,7 +330,7 @@ type: "item" }] title: "{quests.low_voltage.lv_lathe.title}" - x: -3.0d + x: -2.5d y: 1.5d } { @@ -338,7 +346,7 @@ }] title: "{quests.low_voltage.lv_polariser.title}" x: 4.5d - y: 1.5d + y: -0.5d } { dependencies: ["6E186F9C57155BFA"] @@ -360,8 +368,8 @@ type: "item" }] title: "{quests.low_voltage.lbb.title}" - x: 6.5d - y: 7.0d + x: 8.0d + y: 9.0d } { dependencies: ["1E9BE8D3F8A602DC"] @@ -381,8 +389,8 @@ type: "item" }] title: "{quests.low_voltage.lv_superconductor.title}" - x: -12.0d - y: 6.5d + x: -11.5d + y: 7.5d } { dependencies: ["701BCADAE5CF6CA5"] @@ -428,7 +436,7 @@ type: "checkmark" }] title: "{quests.low_voltage.programmed_circuits.title}" - x: -5.0d + x: -4.5d y: 1.5d } { @@ -532,7 +540,7 @@ }] title: "{quests.low_voltage.lv_ebf.title}" x: -10.0d - y: 6.5d + y: 7.5d } { dependencies: ["22510C5F2386B453"] @@ -583,8 +591,8 @@ type: "item" }] title: "{quests.low_voltage.lv_fluid_solidifier.title}" - x: -8.0d - y: 4.0d + x: -7.5d + y: 3.5d } { dependencies: [ @@ -636,7 +644,7 @@ }] title: "{quests.low_voltage.cupronickel_coil.title}" x: -8.5d - y: 6.5d + y: 7.5d } { dependencies: ["22510C5F2386B453"] @@ -663,8 +671,7 @@ ] icon: "gtceu:lv_chemical_reactor" id: "3D98819A799D2E64" - shape: "octagon" - size: 2.0d + size: 1.0d subtitle: "{quests.low_voltage.lv_chemical_reactor.subtitle}" tasks: [ { @@ -686,8 +693,8 @@ } ] title: "{quests.low_voltage.lv_chemical_reactor.title}" - x: -8.0d - y: 2.0d + x: -6.5d + y: 3.5d } { dependencies: ["10ECB471A77F5136"] @@ -708,7 +715,7 @@ type: "item" }] title: "{quests.low_voltage.universal_cell.title}" - x: -4.0d + x: -3.5d y: 2.5d } { @@ -733,14 +740,14 @@ } ] title: "{quests.low_voltage.mold_rotor.title}" - x: -9.0d - y: 4.0d + x: -8.5d + y: 3.5d } { dependencies: ["5B891BA4897FD73C"] dependency_requirement: "one_completed" description: ["{quests.low_voltage.soldering_alloy.desc}"] - icon: "gtceu:soldering_alloy_ingot" + icon: "gtceu:soldering_alloy_dust" id: "713C8D6A20BF3A0E" shape: "square" size: 1.0d @@ -751,7 +758,7 @@ type: "item" }] title: "{quests.low_voltage.soldering_alloy.title}" - x: 4.0d + x: 3.0d y: 10.5d } { @@ -799,7 +806,7 @@ type: "item" }] title: "{quests.low_voltage.lv_cutter.title}" - x: -3.0d + x: -2.5d y: -0.5d } { @@ -839,8 +846,8 @@ type: "item" }] title: "{quests.low_voltage.lv_sprayer.title}" - x: 5.75d - y: -0.5d + x: 5.5d + y: 1.5d } { dependencies: ["22510C5F2386B453"] @@ -870,8 +877,7 @@ "{quests.low_voltage.lv_extractor.desc.2}" ] id: "5B2696206205CB2E" - shape: "octagon" - size: 2.0d + size: 1.0d subtitle: "{quests.low_voltage.lv_extractor.subtitle}" tasks: [{ id: "5CD363C839475426" @@ -879,7 +885,7 @@ type: "item" }] title: "{quests.low_voltage.lv_extractor.title}" - x: -5.5d + x: -6.5d y: 4.5d } { @@ -910,8 +916,7 @@ "{quests.low_voltage.lv_arc_furnace.desc.2}" ] id: "63256ED95F17B242" - shape: "octagon" - size: 2.0d + size: 1.0d subtitle: "{quests.low_voltage.lv_arc_furnace.subtitle}" tasks: [{ id: "2374C06C5E1EFC24" @@ -920,7 +925,7 @@ }] title: "{quests.low_voltage.lv_arc_furnace.title}" x: -4.0d - y: 12.5d + y: 11.5d } { dependencies: [ @@ -1082,7 +1087,7 @@ }] title: "{quests.low_voltage.aluminium_dust.title}" x: -10.0d - y: 8.0d + y: 9.0d } { dependencies: ["1E9BE8D3F8A602DC"] @@ -1154,7 +1159,7 @@ ] title: "{quests.low_voltage.multiblock_tech.title}" x: -10.0d - y: 4.5d + y: 5.5d } { dependencies: ["22510C5F2386B453"] @@ -1189,7 +1194,7 @@ y: 3.5d } { - dependencies: ["22510C5F2386B453"] + dependencies: ["3E6DC423FE4A99F7"] description: ["{quests.low_voltage.lv_turbo_charge.desc}"] icon: "gtceu:lv_charger_4x" id: "2DB259568F347C0E" @@ -1213,8 +1218,8 @@ type: "item" }] title: "{quests.low_voltage.lv_turbo_charge.title}" - x: 4.5d - y: 2.5d + x: 8.0d + y: -0.5d } { dependencies: ["22510C5F2386B453"] @@ -1242,7 +1247,7 @@ }] title: "{quests.low_voltage.lv_fisher.title}" x: 4.5d - y: -0.5d + y: 2.5d } { dependencies: ["22510C5F2386B453"] @@ -1359,8 +1364,8 @@ } ] title: "{quests.low_voltage.mold_plate.title}" - x: -8.0d - y: 5.0d + x: -7.5d + y: 2.5d } { dependencies: ["3E6DC423FE4A99F7"] @@ -1384,6 +1389,7 @@ description: ["{quests.steam_age.alternator.desc.1}"] id: "2DC24661CAD557B0" optional: true + shape: "hexagon" subtitle: "{quests.steam_age.alternator.subtitle}" tasks: [ { @@ -1407,8 +1413,8 @@ } ] title: "{quests.steam_age.alternator.title}" - x: 5.5d - y: 6.0d + x: 7.0d + y: 8.0d } { dependencies: ["7567E885B7166603"] @@ -1498,10 +1504,13 @@ dependencies: [ "2CDB9778C7A30044" "522E08B1592136D5" + "36FED1B6CFF7C60A" ] + dependency_requirement: "one_completed" description: ["{quests.low_voltage.lv_combuston_gen.desc}"] id: "170B544373A16112" optional: true + shape: "hexagon" subtitle: "{quests.low_voltage.lv_combuston_gen.subtitle}" tasks: [{ id: "2B36CA88F25D5449" @@ -1509,29 +1518,35 @@ type: "item" }] title: "{quests.low_voltage.lv_combuston_gen.title}" - x: 5.5d - y: 8.0d + x: 7.0d + y: 10.0d } { dependencies: ["2CDB9778C7A30044"] - description: ["{ \"text\": \"{quests.low_voltage.link_chapter.desc}\", \"underlined\": \"true\", \"clickEvent\": { \"action\": \"change_page\", \"value\": \"2CDB9778C7A30044\" } }"] + description: [ + "{quests.low_voltage.link_chapter.desc}:" + "{ \"text\": \"▶▶▶▶▶▶▶\", \"underlined\": \"true\", \"clickEvent\": { \"action\": \"change_page\", \"value\": \"2CDB9778C7A30044\" } }" + ] + icon: "createdeco:decal_electrical" id: "7FA1525D681C4B4A" shape: "none" + size: 2.0d subtitle: "{quests.low_voltage.link_chapter.subtitle}" tasks: [{ id: "346E50625B8B1133" - title: "I read it" + title: "{quests.low_voltage.link_chapter.task}" type: "checkmark" }] title: "{quests.low_voltage.link_chapter.title}" - x: 4.0d - y: 8.5d + x: 5.5d + y: 6.5d } { dependencies: ["5F3063C539C9CBBF"] description: ["{quests.low_voltage.lv_seeds.desc}"] id: "55213ACBF5F5D398" optional: true + shape: "heart" subtitle: "{quests.low_voltage.lv_seeds.subtitle}" tasks: [{ id: "0910468BF66597DE" @@ -1547,13 +1562,14 @@ }] title: "{quests.low_voltage.lv_seeds.title}" x: 7.5d - y: 9.0d + y: 13.0d } { dependencies: ["55213ACBF5F5D398"] description: ["{quests.low_voltage.lv_seed_oil.desc}"] id: "1D979CB5862BD480" optional: true + shape: "heart" subtitle: "{quests.low_voltage.lv_seed_oil.subtitle}" tasks: [{ id: "357702717137F483" @@ -1561,14 +1577,15 @@ type: "item" }] title: "{quests.low_voltage.lv_seed_oil.title}" - x: 6.5d - y: 9.0d + x: 7.5d + y: 12.0d } { dependencies: ["1D979CB5862BD480"] description: ["{quests.low_voltage.lv_biodiesel.desc}"] id: "522E08B1592136D5" optional: true + shape: "heart" subtitle: "{quests.low_voltage.lv_biodiesel.subtitle}" tasks: [{ id: "10503AD87AB3886A" @@ -1576,12 +1593,15 @@ type: "item" }] title: "{quests.low_voltage.lv_biodiesel.title}" - x: 5.5d - y: 9.0d + x: 7.5d + y: 11.0d } { + dependencies: ["1912758422EEB006"] + dependency_requirement: "one_completed" description: ["{quests.low_voltage.cupronickel_ingot.desc}"] id: "6042514C8FC54334" + shape: "diamond" subtitle: "{quests.low_voltage.cupronickel_ingot.subtitle}" tasks: [{ id: "701DEB748320107C" @@ -1589,8 +1609,125 @@ type: "item" }] title: "{quests.low_voltage.cupronickel_ingot.title}" - x: -6.5d - y: 6.5d + x: -8.5d + y: 8.5d + } + { + dependencies: ["7567E885B7166603"] + description: ["{quests.low_voltage.aluminium_greate.desc}"] + id: "1354904154948913" + optional: true + shape: "heart" + subtitle: "{quests.low_voltage.aluminium_greate.subtitle}" + tasks: [ + { + id: "1483488F0E301BCC" + item: "greate:aluminium_cogwheel" + type: "item" + } + { + id: "2E64EF18DC263002" + item: "greate:large_aluminium_cogwheel" + type: "item" + } + { + id: "32C96E141753187B" + item: "greate:aluminium_shaft" + type: "item" + } + ] + title: "{quests.low_voltage.aluminium_greate.title}" + x: -11.5d + y: 10.5d + } + { + dependencies: [ + "5263F866638D875C" + "3D98819A799D2E64" + ] + dependency_requirement: "one_completed" + description: ["{quests.low_voltage.oil.desc}"] + hide_dependency_lines: true + icon: "gtceu:oil_bucket" + id: "2CEE3C0972650C81" + optional: true + shape: "heart" + subtitle: "{quests.low_voltage.oil.subtitle}" + tasks: [{ + id: "338E66338DF533D0" + title: "{quests.tasktype.checkmark}" + type: "checkmark" + }] + title: "{quests.low_voltage.oil.title}" + x: 6.5d + y: 12.0d + } + { + dependencies: [ + "2CDB9778C7A30044" + "0404FBCC34011053" + ] + description: ["{quests.low_voltage.lv_gas_turbine.desc}"] + id: "1AD51E2B66EA7F67" + optional: true + shape: "hexagon" + subtitle: "{quests.low_voltage.lv_gas_turbine.subtitle}" + tasks: [{ + id: "295425BB3FED8220" + item: "gtceu:lv_gas_turbine" + type: "item" + }] + title: "{quests.low_voltage.lv_gas_turbine.title}" + x: 7.0d + y: 7.0d + } + { + dependencies: ["2CEE3C0972650C81"] + dependency_requirement: "one_completed" + description: ["{quests.low_voltage.lv_naphtha_light.desc}"] + icon: "gtceu:naphtha_bucket" + id: "36FED1B6CFF7C60A" + optional: true + shape: "heart" + subtitle: "{quests.low_voltage.lv_naphtha_light.subtitle}" + tasks: [ + { + id: "096D9365D8C561AA" + item: "gtceu:naphtha_bucket" + optional_task: true + type: "item" + } + { + id: "34153032225B76BB" + item: "gtceu:light_fuel_bucket" + type: "item" + } + { + id: "3F575DDDA6C15539" + title: "{quests.tasktype.checkmark}" + type: "checkmark" + } + ] + title: "{quests.low_voltage.lv_naphtha_light.title}" + x: 6.5d + y: 11.0d + } + { + dependencies: ["5F3063C539C9CBBF"] + dependency_requirement: "one_completed" + description: ["{quests.low_voltage.lv_gas_syngas.desc}"] + id: "0404FBCC34011053" + optional: true + shape: "heart" + subtitle: "{quests.low_voltage.lv_gas_syngas.subtitle}" + tasks: [{ + id: "2733E2B8129C0806" + item: "tfg:syngas_bucket" + type: "item" + }] + title: "{quests.low_voltage.lv_gas_syngas.title}" + x: 7.0d + y: 6.0d } ] subtitle: ["{quests.low_voltage.subtitle}"] diff --git a/config/ftbquests/quests/chapters/mv__medium_voltage.snbt b/config/ftbquests/quests/chapters/mv__medium_voltage.snbt index a8718d681..49f0aa477 100644 --- a/config/ftbquests/quests/chapters/mv__medium_voltage.snbt +++ b/config/ftbquests/quests/chapters/mv__medium_voltage.snbt @@ -39,6 +39,7 @@ "53DC6E32C41C94C3" "1A29EFBCEA017F99" ] + dependency_requirement: "one_completed" description: [ "{quests.medium_voltage.mv_biomass.desc.1}" "{@pagebreak}" @@ -61,7 +62,11 @@ y: -0.5d } { - dependencies: ["22E462070F8B027A"] + dependencies: [ + "22E462070F8B027A" + "499CACFF0350B3CA" + ] + dependency_requirement: "one_completed" description: [ "{quests.medium_voltage.mv_brewery.desc.1}" "{@pagebreak}" @@ -403,7 +408,7 @@ Count: 1 id: "ftbfiltersystem:smart_filter" tag: { - "ftbfiltersystem:filter": "or(item(gtceu:lp_steam_miner)item(gtceu:hp_steam_miner)item(gtceu:lv_miner)item(gtceu:mv_miner)item(gtceu:hv_miner))" + "ftbfiltersystem:filter": "or(item(gtceu:hp_steam_miner)item(gtceu:lv_miner)item(gtceu:mv_miner)item(gtceu:hv_miner))" } } title: "{quests.medium_voltage.mv_miner.task}" @@ -755,8 +760,8 @@ type: "item" }] title: "{quests.medium_voltage.mv_inductor.title}" - x: -5.0d - y: 16.5d + x: -10.5d + y: 12.0d } { dependencies: ["6BB98D128822730E"] @@ -775,24 +780,6 @@ x: -10.0d y: 10.0d } - { - dependencies: ["10FB27DD3C7BEC2F"] - description: ["{quests.medium_voltage.mv_tank.desc}"] - icon: "gtceu:lv_super_tank" - id: "6C53B01A05FFF1DC" - optional: true - shape: "heart" - size: 2.0d - subtitle: "{quests.medium_voltage.mv_tank.subtitle}" - tasks: [{ - id: "47EA273D728C158F" - item: "gtceu:lv_super_tank" - type: "item" - }] - title: "{quests.medium_voltage.mv_tank.title}" - x: -14.0d - y: 10.0d - } { dependencies: ["10FB27DD3C7BEC2F"] description: ["{quests.medium_voltage.mv_pvc.desc}"] @@ -807,8 +794,8 @@ type: "item" }] title: "{quests.medium_voltage.mv_pvc.title}" - x: -5.0d - y: 11.0d + x: -9.5d + y: 12.0d } { dependencies: [ @@ -1054,6 +1041,7 @@ y: 2.5d } { + dependencies: ["648BCF486E16CCB2"] description: ["{quests.medium_voltage.mv_oilsands.desc}"] id: "575B07D390D9D079" optional: true @@ -1155,6 +1143,8 @@ "{quests.medium_voltage.mv_benzene.desc.1}" "{@pagebreak}" "{quests.medium_voltage.mv_benzene.desc.2}" + "{@pagebreak}" + "{quests.medium_voltage.mv_benzene.desc.3}" ] icon: "gtceu:benzene_bucket" id: "00E1A728E6F6D6A0" @@ -1197,29 +1187,6 @@ x: -6.0d y: 2.5d } - { - dependencies: ["61972B16805FC9EE"] - description: [ - "{quests.medium_voltage.mv_diesel.desc.1}" - "{@pagebreak}" - "{quests.medium_voltage.mv_diesel.desc.2}" - "{@pagebreak}" - "{quests.medium_voltage.mv_diesel.desc.3}" - ] - icon: "gtceu:diesel_bucket" - id: "45769156F4253C86" - optional: true - size: 1.0d - subtitle: "{quests.medium_voltage.mv_diesel.subtitle}" - tasks: [{ - id: "10BAA54947D975AF" - item: "gtceu:diesel_bucket" - type: "item" - }] - title: "{quests.medium_voltage.mv_diesel.title}" - x: -6.0d - y: 3.5d - } { dependency_requirement: "one_started" description: ["{quests.medium_voltage.mv_mutli_channel.desc}"] @@ -1307,36 +1274,6 @@ x: 5.5d y: 10.0d } - { - dependencies: ["45449ECE4F8128E7"] - description: [ - "{quests.medium_voltage.mv_long_pipe.desc.1}" - "{@pagebreak}" - "{quests.medium_voltage.mv_long_pipe.desc.2}" - ] - icon: "gtceu:long_distance_fluid_pipeline_endpoint" - id: "5480AF2EDEDB6A36" - optional: true - shape: "heart" - size: 1.0d - subtitle: "{quests.medium_voltage.mv_long_pipe.subtitle}" - tasks: [ - { - count: 2L - id: "6D77664884690FB4" - item: "gtceu:long_distance_fluid_pipeline_endpoint" - type: "item" - } - { - id: "01F1E774C67ED4AF" - item: "gtceu:long_distance_fluid_pipeline" - type: "item" - } - ] - title: "{quests.medium_voltage.mv_long_pipe.title}" - x: -10.0d - y: -6.5d - } { dependencies: ["45769156F4253C86"] dependency_requirement: "one_completed" @@ -1467,6 +1404,7 @@ description: ["{quests.medium_voltage.mv_seawater.desc}"] id: "45449ECE4F8128E7" optional: true + shape: "diamond" subtitle: "{quests.medium_voltage.mv_seawater.subtitle}" tasks: [{ id: "77395198DC98E3A5" @@ -1475,7 +1413,7 @@ }] title: "{quests.medium_voltage.mv_seawater.title}" x: -10.0d - y: -5.0d + y: -4.5d } { dependencies: ["583D0CC4FAA4FC98"] @@ -1668,6 +1606,93 @@ x: -8.0d y: -2.0d } + { + dependencies: ["16A6AE5C770DB83A"] + description: ["{quests.medium_voltage.stainless_greate.desc}"] + id: "6602AE559D49CE65" + optional: true + shape: "heart" + subtitle: "{quests.medium_voltage.stainless_greate.subtitle}" + tasks: [ + { + id: "53919EE5BCCA618A" + item: "greate:stainless_steel_cogwheel" + type: "item" + } + { + id: "2C8FD46F69EA05B0" + item: "greate:large_stainless_steel_cogwheel" + type: "item" + } + { + id: "6DF7F28AABF6785F" + item: "greate:stainless_steel_shaft" + type: "item" + } + ] + title: "{quests.medium_voltage.stainless_greate.title}" + x: 0.5d + y: 6.75d + } + { + dependencies: ["54A255C1C6E33165"] + description: ["{quests.medium_voltage.reformate_gas.desc}"] + id: "10292F9B1DD743EB" + optional: true + shape: "heart" + subtitle: "{quests.medium_voltage.reformate_gas.subtitle}" + tasks: [{ + id: "717ABF30F29D12CD" + item: "tfg:reformate_gas_bucket" + type: "item" + }] + title: "{quests.medium_voltage.reformate_gas.title}" + x: -5.0d + y: 4.5d + } + { + dependencies: ["00E1A728E6F6D6A0"] + description: [ + "{quests.medium_voltage.coal_tower.desc.1}" + "{@pagebreak}" + "{quests.medium_voltage.coal_tower.desc.2}" + ] + id: "54A255C1C6E33165" + optional: true + shape: "heart" + subtitle: "{quests.medium_voltage.coal_tower.subtitle}" + tasks: [{ + id: "348CD63DC537BB9A" + item: "gtceu:coal_liquefaction_tower" + type: "item" + }] + x: -5.0d + y: 3.5d + } + { + dependencies: ["61972B16805FC9EE"] + description: [ + "{quests.medium_voltage.mv_diesel.desc.1}" + "{@pagebreak}" + "{quests.medium_voltage.mv_diesel.desc.2}" + "{@pagebreak}" + "{quests.medium_voltage.mv_diesel.desc.3}" + ] + icon: "gtceu:diesel_bucket" + id: "45769156F4253C86" + optional: true + shape: "heart" + size: 1.0d + subtitle: "{quests.medium_voltage.mv_diesel.subtitle}" + tasks: [{ + id: "10BAA54947D975AF" + item: "gtceu:diesel_bucket" + type: "item" + }] + title: "{quests.medium_voltage.mv_diesel.title}" + x: -6.0d + y: 3.5d + } ] subtitle: ["{quests.medium_voltage.subtitle}"] title: "{quests.medium_voltage}" diff --git a/config/ftbquests/quests/chapters/ore_processing.snbt b/config/ftbquests/quests/chapters/ore_processing.snbt index 5a65dc750..ecf402cfc 100644 --- a/config/ftbquests/quests/chapters/ore_processing.snbt +++ b/config/ftbquests/quests/chapters/ore_processing.snbt @@ -178,8 +178,6 @@ { id: "138C7D4A61E2A77D" linked_quest: "6B10099F3F0931B9" - shape: "none" - size: 1.5d x: 9.0d y: -15.0d } @@ -947,15 +945,13 @@ { dependencies: ["186CFAA5A444ECB3"] description: ["{quests.stone_age.clean_dust.desc}"] + icon: "minecraft:water_bucket" id: "6B10099F3F0931B9" - shape: "none" - size: 1.5d + size: 1.0d subtitle: "{quests.stone_age.clean_dust.subtitle}" tasks: [{ - amount: 1000L - fluid: "minecraft:water" - id: "0944FE2841D789D8" - type: "fluid" + id: "62EF9D1895CA3811" + type: "checkmark" }] title: "{quests.stone_age.clean_dust.title}" x: 6.0d diff --git a/config/ftbquests/quests/chapters/questsmetallurgy.snbt b/config/ftbquests/quests/chapters/questsmetallurgy.snbt index 21a852cfc..210362d91 100644 --- a/config/ftbquests/quests/chapters/questsmetallurgy.snbt +++ b/config/ftbquests/quests/chapters/questsmetallurgy.snbt @@ -50,9 +50,16 @@ { id: "19CF6D922179DFF9" linked_quest: "11C45DBB20ED7647" + shape: "heart" x: 9.0d y: -34.0d } + { + id: "3249AB9EB552BB77" + linked_quest: "4B79026C8D2DACC4" + x: 17.5d + y: -28.0d + } ] quests: [ { @@ -280,7 +287,6 @@ description: ["{quests.metal_age.bellows.desc}"] hide_dependency_lines: true id: "021D3DEEB15A3D17" - shape: "rsquare" subtitle: "{quests.metal_age.bellows.subtitle}" tasks: [{ id: "588EB07E980386F9" @@ -1197,6 +1203,8 @@ dependencies: ["3C173357029AB649"] description: ["{quests.metal_age.copper_diving.desc}"] id: "70FE6706B43FC5FC" + optional: true + shape: "heart" subtitle: "{quests.metal_age.copper_diving.subtitle}" tasks: [ { diff --git a/config/ftbquests/quests/chapters/questssteam_age.snbt b/config/ftbquests/quests/chapters/questssteam_age.snbt index 660a1750c..4841ea4b5 100644 --- a/config/ftbquests/quests/chapters/questssteam_age.snbt +++ b/config/ftbquests/quests/chapters/questssteam_age.snbt @@ -1,1681 +1,1724 @@ -{ - default_hide_dependency_lines: false - default_quest_shape: "" - filename: "questssteam_age" - group: "3C4612A920658A7E" - icon: { - Count: 1 - ForgeCaps: { - "tfc:item_heat": { - heat: 0.0f - ticks: 0L - } - } - id: "gtceu:steel_gear" - } - id: "784A885090386609" - order_index: 2 - quest_links: [ - { - id: "39027CF4DC307D33" - linked_quest: "5E186CD5E83BFDF0" - x: -29.0d - y: 2.0d - } - { - id: "0CE64B9914191C56" - linked_quest: "6FFD4990FF07078A" - shape: "diamond" - x: -11.5d - y: 9.5d - } - { - id: "23A27702FF816291" - linked_quest: "6903C72A254A7B08" - x: -14.5d - y: 6.0d - } - { - id: "1F1E7097C015BE33" - linked_quest: "48A8E3210B2BAE1C" - shape: "octagon" - size: 2.0d - x: -29.0d - y: 0.0d - } - { - id: "7C03FE015586C652" - linked_quest: "55213ACBF5F5D398" - x: -14.5d - y: 13.0d - } - { - id: "65E0B13E245D2E5F" - linked_quest: "379F434116632A89" - x: -25.0d - y: 1.0d - } - ] - quests: [ - { - dependencies: [ - "7B045998769930F0" - "55FDF06AC0C01D0B" - ] - description: ["{quests.steam_age.basic_millstone.desc}"] - id: "48C1E980F7D64317" - size: 1.5d - subtitle: "{quests.steam_age.basic_millstone.subtitle}" - tasks: [{ - id: "486DE7D228F3589B" - item: "greate:andesite_alloy_millstone" - type: "item" - }] - title: "{quests.steam_age.basic_millstone.title}" - x: -19.5d - y: 0.0d - } - { - dependencies: ["6F1BC99BE641B671"] - description: [ - "{quests.steam_age.horse_crank.desc.1}" - "{@pagebreak}" - "{quests.steam_age.horse_crank.desc.2}" - ] - id: "1059288C22CB56BB" - subtitle: "{quests.steam_age.horse_crank.subtitle}" - tasks: [{ - id: "1F3EE2CB3B8875EC" - item: "createhorsepower:horse_crank" - type: "item" - }] - title: "{quests.steam_age.horse_crank.title}" - x: -23.5d - y: -2.0d - } - { - dependencies: ["7B045998769930F0"] - description: ["{quests.steam_age.helve_hammer.desc}"] - id: "611EB6284CA7119C" - size: 1.0d - subtitle: "{quests.steam_age.helve_hammer.subtitle}" - tasks: [{ - id: "340B4B4665295100" - item: "vintageimprovements:helve_hammer" - type: "item" - }] - title: "{quests.steam_age.helve_hammer.title}" - x: -19.5d - y: -4.0d - } - { - dependencies: ["6F1BC99BE641B671"] - description: ["{quests.steam_age.basic_greate.desc}"] - id: "7B045998769930F0" - subtitle: "{quests.steam_age.basic_greate.subtitle}" - tasks: [ - { - id: "53E8B404D5233367" - item: "greate:andesite_alloy_cogwheel" - optional_task: true - type: "item" - } - { - id: "54B5DC1982F4D816" - item: "greate:large_andesite_alloy_cogwheel" - type: "item" - } - { - id: "59AD69460AE89682" - item: "greate:andesite_alloy_shaft" - optional_task: true - type: "item" - } - ] - title: "{quests.steam_age.basic_greate.title}" - x: -19.5d - y: -2.0d - } - { - dependencies: ["0D0D461AE3A3F7BF"] - description: ["{quests.steam_age.water_wheel.desc}"] - id: "61DDB00751D1E7CB" - subtitle: "{quests.steam_age.water_wheel.subtitle}" - tasks: [{ - id: "1D82D22878EE6D21" - item: "create:water_wheel" - type: "item" - }] - title: "{quests.steam_age.water_wheel.title}" - x: -14.5d - y: 0.0d - } - { - dependencies: ["0D0D461AE3A3F7BF"] - description: ["{quests.steam_age.windmill.desc}"] - id: "617E0AFB7BA3D7A8" - subtitle: "{quests.steam_age.windmill.subtitle}" - tasks: [ - { - id: "26EA0D8EDFCF3727" - item: "create:windmill_bearing" - type: "item" - } - { - count: 8L - id: "3095A44065C9F130" - item: "create:white_sail" - type: "item" - } - ] - title: "{quests.steam_age.windmill.title}" - x: -14.5d - y: -4.0d - } - { - dependencies: ["6E8CEE02CB5B678B"] - description: ["{quests.steam_age.metal_casing.desc}"] - id: "7F14D2A34F480ACA" - size: 1.5d - subtitle: "{quests.steam_age.metal_casing.subtitle}" - tasks: [{ - id: "1554B18D816C3549" - item: "create:andesite_casing" - type: "item" - }] - title: "{quests.steam_age.metal_casing.title}" - x: -9.5d - y: -2.0d - } - { - dependencies: [ - "09D913288896A67A" - "05A39719B66B8F76" - ] - description: ["{quests.steam_age.steel_encased_fan.desc}"] - id: "616E28977F3216D9" - subtitle: "{quests.steam_age.steel_encased_fan.subtitle}" - tasks: [{ - id: "32279C21D7553637" - item: { Count: 32, id: "greate:steel_encased_fan" } - type: "item" - }] - title: "{quests.steam_age.steel_encased_fan.title}" - x: -5.5d - y: 4.0d - } - { - dependencies: ["09D913288896A67A"] - description: [ - "{quests.steam_age.steel_pump.desc.1}" - "{@pagebreak}" - "{quests.steam_age.steel_pump.desc.2}" - "{@pagebreak}" - "{quests.steam_age.steel_pump.desc.3}" - ] - id: "51CBF7378FFAD514" - subtitle: "{quests.steam_age.steel_pump.subtitle}" - tasks: [{ - id: "1E7DD1C4FCCFD937" - item: "greate:steel_mechanical_pump" - type: "item" - }] - title: "{quests.steam_age.steel_pump.title}" - x: -3.5d - y: 2.0d - } - { - dependencies: ["209958FE2EEA5D72"] - description: [ - "{quests.steam_age.boilers.desc.1}" - "{@pagebreak}" - "{quests.steam_age.boilers.desc.2}" - ] - id: "46FA9DD4755A5548" - size: 1.5d - subtitle: "{quests.steam_age.boilers.subtitle}" - tasks: [{ - id: "07FFA9C76EE39D36" - item: { - Count: 1 - id: "ftbfiltersystem:smart_filter" - tag: { - "ftbfiltersystem:filter": "or(item(gtceu:hp_steam_solid_boiler)item(gtceu:hp_steam_liquid_boiler)item(gtceu:hp_steam_solar_boiler))" - } - } - title: "{quests.steam_age.boilers.tasks}" - type: "item" - }] - title: "{quests.steam_age.boilers.title}" - x: -19.5d - y: 7.5d - } - { - dependencies: ["32046292AA5B0E30"] - description: ["{quests.steam_age.steam_engine.desc}"] - id: "183D47F04CAEBFA7" - size: 1.5d - subtitle: "{quests.steam_age.steam_engine.subtitle}" - tasks: [ - { - id: "704B7094BE2FB3E1" - item: "create:steam_engine" - optional_task: true - type: "item" - } - { - id: "4655500474F4236C" - item: "create:blaze_burner" - type: "item" - } - ] - title: "{quests.steam_age.steam_engine.title}" - x: -5.5d - y: -2.0d - } - { - dependencies: ["7F14D2A34F480ACA"] - description: ["{quests.steam_age.mechanical_saw.desc}"] - id: "069825FBCFB0FB9C" - rewards: [{ - id: "64CA1397D201AF37" - item: "create:filter" - type: "item" - }] - subtitle: "{quests.steam_age.mechanical_saw.subtitle}" - tasks: [{ - id: "5005121E0361DBD2" - item: "greate:andesite_alloy_mechanical_saw" - type: "item" - }] - title: "{quests.steam_age.mechanical_saw.title}" - x: -9.5d - y: 0.0d - } - { - dependencies: ["7F14D2A34F480ACA"] - description: ["{quests.steam_age.mechanical_harvester.desc}"] - id: "76871B4CEEEC70B8" - subtitle: "{quests.steam_age.mechanical_harvester.subtitle}" - tasks: [{ - id: "34092F5FBDFB9761" - item: "create:mechanical_harvester" - type: "item" - }] - title: "{quests.steam_age.mechanical_harvester.title}" - x: -9.5d - y: -4.0d - } - { - dependencies: ["6E8CEE02CB5B678B"] - description: ["{quests.steam_age.chute.desc}"] - id: "05CC8C5E63CD1DB8" - subtitle: "{quests.steam_age.chute.subtitle}" - tasks: [ - { - id: "7CB1E90EAF7861FB" - item: "create:chute" - type: "item" - } - { - id: "66E04B6A41557709" - item: "create:andesite_funnel" - optional_task: true - type: "item" - } - { - id: "6E500B14003B937D" - item: "minecraft:hopper" - optional_task: true - type: "item" - } - ] - title: "{quests.steam_age.chute.title}" - x: -12.0d - y: 0.0d - } - { - dependencies: ["51CBF7378FFAD514"] - description: [ - "{quests.steam_age.mold_table.desc.1}" - "{@pagebreak}" - "{quests.steam_age.mold_table.desc.2}" - ] - id: "66DBF1C68493A406" - subtitle: "{quests.steam_age.mold_table.subtitle}" - tasks: [{ - id: "7258D0D474B6F26E" - item: "tfcchannelcasting:mold_table" - type: "item" - }] - title: "{quests.steam_age.mold_table.title}" - x: -3.5d - y: 4.0d - } - { - dependencies: ["32046292AA5B0E30"] - dependency_requirement: "one_completed" - description: ["{quests.steam_age.steel_greate.desc}"] - id: "09D913288896A67A" - size: 1.5d - subtitle: "{quests.steam_age.steel_greate.subtitle}" - tasks: [ - { - id: "23DE370285589CB4" - item: "greate:steel_shaft" - type: "item" - } - { - id: "4FDD99090C920E21" - item: "greate:steel_cogwheel" - type: "item" - } - { - id: "5569D0030FB45C5D" - item: "greate:large_steel_cogwheel" - type: "item" - } - ] - title: "{quests.steam_age.steel_greate.title}" - x: -5.5d - y: 2.0d - } - { - dependencies: [ - "09D913288896A67A" - "05A39719B66B8F76" - ] - description: ["{quests.steam_age.steel_millstone.desc}"] - hide_dependent_lines: true - id: "5E4FC017E09ACF44" - subtitle: "{quests.steam_age.steel_millstone.subtitle}" - tasks: [{ - id: "3E3D4CD3283461DE" - item: "greate:steel_millstone" - type: "item" - }] - title: "{quests.steam_age.steel_millstone.title}" - x: -7.5d - y: 2.0d - } - { - dependencies: [ - "5917B0D4708BF534" - "6100B3C732E379AA" - ] - description: ["{quests.steam_age.crushing_wheel.desc}"] - id: "4F3D0D746D26B59F" - optional: true - subtitle: "{quests.steam_age.crushing_wheel.subtitle}" - tasks: [{ - count: 2L - id: "7EDCBC04DAEA477C" - item: "greate:steel_crushing_wheel" - type: "item" - }] - title: "{quests.steam_age.crushing_wheel.title}" - x: -21.5d - y: 10.5d - } - { - dependencies: ["7DB7AB5349218605"] - description: ["{quests.steam_age.treated_planks.desc}"] - id: "246D2C5989E3E907" - subtitle: "{quests.steam_age.treated_planks.subtitle}" - tasks: [ - { - id: "7CF3C09E3907B1C0" - item: "gtceu:treated_wood_planks" - type: "item" - } - { - id: "72112F5EC062766C" - item: "gtceu:treated_wood_dust" - type: "item" - } - { - id: "0D95727196D033B5" - item: "gtceu:treated_wood_plate" - type: "item" - } - ] - title: "{quests.steam_age.treated_planks.title}" - x: -19.5d - y: 10.5d - } - { - dependencies: [ - "233B414B4F189140" - "781C6AD30194CB45" - "3E175E20C91F168B" - ] - description: ["{quests.steam_age.electron_tube.desc}"] - id: "033E74BC588E7EAD" - shape: "octagon" - size: 2.0d - subtitle: "{quests.steam_age.electron_tube.subtitle}" - tasks: [{ - id: "471CCF5193150865" - item: "create:electron_tube" - type: "item" - }] - title: "{quests.steam_age.electron_tube.title}" - x: -19.5d - y: 14.5d - } - { - dependencies: ["2C35D4E01AEC02AA"] - dependency_requirement: "one_completed" - description: [ - "{quests.steam_age.miner.desc.1}" - "{@pagebreak}" - "{quests.steam_age.miner.desc.2}" - ] - id: "65066C9D630B7FFA" - optional: true - subtitle: "{quests.steam_age.miner.subtitle}" - tasks: [ - { - id: "068F7BD3AA0EF8E7" - item: "gtceu:hp_steam_miner" - type: "item" - } - { - id: "5ADC94CEBC196702" - item: "create:mechanical_drill" - type: "item" - } - ] - title: "{quests.steam_age.miner.title}" - x: -7.0d - y: 14.0d - } - { - dependencies: [ - "22E604DB7E7E87FB" - "09E12A399EE0A628" - "1912758422EEB006" - ] - dependency_requirement: "one_completed" - description: ["{quests.steam_age.glass_tube.desc}"] - id: "233B414B4F189140" - subtitle: "{quests.steam_age.glass_tube.subtitle}" - tasks: [{ - id: "004AF02E40B60ECF" - item: "gtceu:glass_tube" - type: "item" - }] - title: "{quests.steam_age.glass_tube.title}" - x: -25.0d - y: 14.5d - } - { - dependencies: ["033E74BC588E7EAD"] - description: ["{quests.steam_age.deployers.desc}"] - icon: "create:deployer" - id: "6AA07588374B59AB" - subtitle: "{quests.steam_age.deployers.subtitle}" - tasks: [ - { - id: "717CF950E5000569" - item: "create:deployer" - type: "item" - } - { - id: "38F9301A818347F7" - item: "create:depot" - optional_task: true - type: "item" - } - ] - title: "{quests.steam_age.deployers.title}" - x: -16.5d - y: 12.0d - } - { - dependencies: ["1912758422EEB006"] - description: ["{quests.steam_age.molding.desc}"] - icon: "gtceu:ball_casting_mold" - id: "09E12A399EE0A628" - optional: true - shape: "heart" - size: 1.0d - subtitle: "{quests.steam_age.molding.subtitle}" - tasks: [ - { - id: "02A8B23277FFD95E" - item: "gtceu:plate_casting_mold" - type: "item" - } - { - id: "57B2773550AA7D37" - item: "gtceu:ball_casting_mold" - type: "item" - } - ] - title: "{quests.steam_age.molding.title}" - x: -25.0d - y: 9.5d - } - { - dependencies: ["033E74BC588E7EAD"] - description: ["{quests.steam_age.mech_crafter.desc}"] - id: "5917B0D4708BF534" - optional: true - subtitle: "{quests.steam_age.mech_crafter.subtitle}" - tasks: [{ - id: "084E6F06E79A3B0F" - item: "create:mechanical_crafter" - type: "item" - }] - title: "{quests.steam_age.mech_crafter.title}" - x: -20.5d - y: 12.0d - } - { - dependencies: ["46FA9DD4755A5548"] - description: ["{quests.steam_age.steam_bloomery.desc}"] - icon: "gtceu:steam_bloomery" - id: "0805CCABC8E7F6CF" - size: 1.5d - subtitle: "{quests.steam_age.steam_bloomery.subtitle}" - tasks: [ - { - id: "72D748120CACABE2" - item: "gtceu:steam_bloomery" - type: "item" - } - { - count: 3L - id: "019C4D427A06DF0E" - item: { Count: 3, id: "gtceu:bronze_firebox_casing" } - type: "item" - } - { - id: "402700D6CCD2BEF1" - item: "gtceu:steam_input_hatch" - type: "item" - } - { - id: "7B99996072C53AD9" - item: "gtceu:steam_input_bus" - type: "item" - } - { - id: "6E4B41FDD286E184" - item: "gtceu:steam_output_bus" - type: "item" - } - ] - title: "{quests.steam_age.steam_bloomery.title}" - x: -22.5d - y: 4.0d - } - { - dependencies: ["05CC8C5E63CD1DB8"] - description: [ - "{quests.steam_age.item_pipes.desc.1}" - "{@pagebreak}" - "{quests.steam_age.item_pipes.desc.2}" - "{@pagebreak}" - "{quests.steam_age.item_pipes.desc.3}" - "{@pagebreak}" - "{quests.steam_age.item_pipes.desc.4}" - ] - icon: "gtceu:tin_small_item_pipe" - id: "08672B3000450F14" - size: 1.0d - subtitle: "{quests.steam_age.item_pipes.subtitle}" - tasks: [{ - id: "3122D989BAB787F4" - item: { - Count: 1 - id: "ftbfiltersystem:smart_filter" - tag: { - display: { - Name: "{\"text\":\"Any item pipe\"}" - } - "ftbfiltersystem:filter": "or(item_tag(forge:small_item_pipes)item_tag(forge:normal_item_pipes)item_tag(forge:large_item_pipes)item_tag(forge:huge_item_pipes))" - } - } - title: "Any Item Pipes" - type: "item" - }] - title: "{quests.steam_age.item_pipes.title}" - x: -12.0d - y: 2.0d - } - { - dependencies: [ - "6FFD4990FF07078A" - "05BE9FE74E4F1AE9" - ] - description: ["{quests.steam_age.circuit_boards.desc}"] - icon: "gtceu:resin_printed_circuit_board" - id: "43D0B4F2ACB9931B" - shape: "square" - size: 1.0d - subtitle: "{quests.steam_age.circuit_boards.subtitle}" - tasks: [{ - id: "2B8B038789480789" - item: "gtceu:resin_printed_circuit_board" - type: "item" - }] - title: "{quests.steam_age.circuit_boards.title}" - x: -11.5d - y: 8.5d - } - { - dependencies: ["46FA9DD4755A5548"] - description: ["{quests.steam_age.compressor.desc}"] - id: "7DB7AB5349218605" - size: 1.0d - subtitle: "{quests.steam_age.compressor.subtitle}" - tasks: [{ - id: "422B0536DAAF3DD4" - item: "gtceu:hp_steam_compressor" - type: "item" - }] - title: "{quests.steam_age.compressor.title}" - x: -19.5d - y: 9.5d - } - { - dependencies: ["46FA9DD4755A5548"] - description: ["{quests.steam_age.alloy_smelter.desc}"] - id: "1912758422EEB006" - shape: "square" - size: 1.0d - subtitle: "{quests.steam_age.alloy_smelter.subtitle}" - tasks: [{ - id: "47ABB2F2EB140120" - item: "gtceu:hp_steam_alloy_smelter" - type: "item" - }] - title: "{quests.steam_age.alloy_smelter.title}" - x: -22.5d - y: 9.5d - } - { - dependencies: [ - "46FA9DD4755A5548" - "6100B3C732E379AA" - ] - description: ["{quests.steam_age.forge_hammer.desc}"] - id: "59F7F7A8C76DE31C" - shape: "square" - size: 1.0d - subtitle: "{quests.steam_age.forge_hammer.subtitle}" - tasks: [{ - id: "18FFF2B9BC20C28B" - item: "gtceu:hp_steam_forge_hammer" - type: "item" - }] - title: "{quests.steam_age.forge_hammer.title}" - x: -22.5d - y: 8.0d - } - { - dependencies: [ - "5F3063C539C9CBBF" - "05BE9FE74E4F1AE9" - ] - description: ["{quests.steam_age.vacuum_tubes.desc}"] - id: "2C35D4E01AEC02AA" - shape: "octagon" - size: 2.0d - subtitle: "{quests.steam_age.vacuum_tubes.subtitle}" - tasks: [{ - id: "71433924A1ACEDA1" - item: "gtceu:vacuum_tube" - type: "item" - }] - title: "{quests.steam_age.vacuum_tubes.title}" - x: -10.0d - y: 12.0d - } - { - dependencies: ["7DB7AB5349218605"] - description: ["{quests.steam_age.wood_plank.desc}"] - id: "3E175E20C91F168B" - subtitle: "{quests.steam_age.wood_plank.subtitle}" - tasks: [{ - id: "339B48BCF11A29E0" - item: "gtceu:wood_plate" - type: "item" - }] - title: "{quests.steam_age.wood_plank.title}" - x: -16.5d - y: 9.5d - } - { - dependencies: ["46FA9DD4755A5548"] - description: ["{quests.steam_age.extractor.desc}"] - id: "1DF4DBE41BB0B6FD" - optional: true - shape: "heart" - size: 1.0d - subtitle: "{quests.steam_age.extractor.subtitle}" - tasks: [{ - id: "5C84856667925F76" - item: "gtceu:hp_steam_extractor" - type: "item" - }] - title: "{quests.steam_age.extractor.title}" - x: -16.5d - y: 7.5d - } - { - dependencies: [ - "6FFD4990FF07078A" - "16CF5A9012EF4B27" - ] - dependency_requirement: "one_completed" - description: ["{quests.steam_age.resistors.desc}"] - id: "69BDD31A69062B6C" - shape: "square" - size: 1.0d - subtitle: "{quests.steam_age.resistors.subtitle}" - tasks: [{ - id: "4E6D1A59F2BAE607" - item: "gtceu:resistor" - type: "item" - }] - title: "{quests.steam_age.resistors.title}" - x: -7.0d - y: 9.5d - } - { - dependencies: ["2C35D4E01AEC02AA"] - description: ["{quests.steam_age.coiling_machine.desc}"] - id: "072F6E48A1C5ECE9" - optional: true - subtitle: "{quests.steam_age.coiling_machine.subtitle}" - tasks: [{ - id: "07B7D41ACDCD1DEA" - item: "vintageimprovements:spring_coiling_machine" - type: "item" - }] - title: "{quests.steam_age.coiling_machine.title}" - x: -12.0d - y: 15.0d - } - { - dependencies: ["2C35D4E01AEC02AA"] - description: ["{quests.steam_age.steel_mixer.desc}"] - id: "49896161B31DB7B4" - optional: true - size: 1.25d - subtitle: "{quests.steam_age.steel_mixer.subtitle}" - tasks: [{ - id: "42F060A386ADF999" - item: "greate:steel_mechanical_mixer" - type: "item" - }] - title: "{quests.steam_age.steel_mixer.title}" - x: -7.0d - y: 12.5d - } - { - dependencies: ["2C35D4E01AEC02AA"] - description: ["{quests.steam_age.lathe.desc}"] - id: "6A92E8396DE40577" - optional: true - subtitle: "{quests.steam_age.lathe.subtitle}" - tasks: [{ - id: "23961EE69549B16E" - item: "vintageimprovements:belt_grinder" - type: "item" - }] - title: "{quests.steam_age.lathe.title}" - x: -8.0d - y: 15.0d - } - { - dependencies: [ - "5917B0D4708BF534" - "6100B3C732E379AA" - "246D2C5989E3E907" - ] - description: ["{quests.steam_age.centrifuge.desc}"] - id: "19A1D52A7F550478" - optional: true - subtitle: "{quests.steam_age.centrifuge.subtitle}" - tasks: [{ - id: "69668479444FF064" - item: "vintageimprovements:centrifuge" - type: "item" - }] - title: "{quests.steam_age.centrifuge.title}" - x: -20.5d - y: 10.5d - } - { - dependencies: [ - "2C35D4E01AEC02AA" - "6100B3C732E379AA" - ] - description: ["{quests.steam_age.vibrating_table.desc}"] - id: "1E8CC993E0251828" - optional: true - subtitle: "{quests.steam_age.vibrating_table.subtitle}" - tasks: [{ - id: "3035C0B44A0E1854" - item: "vintageimprovements:vibrating_table" - type: "item" - }] - title: "{quests.steam_age.vibrating_table.title}" - x: -10.0d - y: 15.0d - } - { - dependencies: ["2C35D4E01AEC02AA"] - description: [ - "{quests.steam_age.rolling_mill.desc.1}" - "{@pagebreak}" - "{quests.steam_age.rolling_mill.desc.2}" - ] - id: "4C22BE513927247B" - optional: true - size: 1.25d - subtitle: "{quests.steam_age.rolling_mill.subtitle}" - tasks: [{ - id: "621AA4E967D54305" - item: "createaddition:rolling_mill" - type: "item" - }] - title: "{quests.steam_age.rolling_mill.title}" - x: -7.0d - y: 11.0d - } - { - dependencies: ["2C35D4E01AEC02AA"] - description: ["{quests.steam_age.steel_saw.desc}"] - id: "0078B9234C554C6E" - optional: true - subtitle: "{quests.steam_age.steel_saw.subtitle}" - tasks: [{ - id: "40E3951B8862B9A4" - item: "greate:steel_mechanical_saw" - type: "item" - }] - title: "{quests.steam_age.steel_saw.title}" - x: -9.0d - y: 15.0d - } - { - dependencies: ["2C35D4E01AEC02AA"] - description: ["{quests.steam_age.curving_press.desc}"] - id: "6ABACC7B9967851D" - optional: true - subtitle: "{quests.steam_age.curving_press.subtitle}" - tasks: [{ - id: "2AE28D5C5FC74A56" - item: "vintageimprovements:curving_press" - type: "item" - }] - title: "{quests.steam_age.curving_press.title}" - x: -11.0d - y: 15.0d - } - { - dependencies: [ - "46FA9DD4755A5548" - "6100B3C732E379AA" - ] - description: ["{quests.steam_age.steam_furnace.desc}"] - id: "799288FB7A4DCA11" - subtitle: "{quests.steam_age.steam_furnace.subtitle}" - tasks: [{ - id: "3F510CDD8E437540" - item: "gtceu:hp_steam_furnace" - type: "item" - }] - title: "{quests.steam_age.steam_furnace.title}" - x: -16.5d - y: 5.5d - } - { - dependencies: ["799288FB7A4DCA11"] - description: [ - "{quests.steam_age.steam_oven.desc.1}" - "{@pagebreak}" - "{quests.steam_age.steam_oven.desc.2}" - ] - icon: "gtceu:steam_oven" - id: "3E6DE0B94490FCEC" - optional: true - shape: "heart" - size: 1.0d - subtitle: "{quests.steam_age.steam_oven.subtitle}" - tasks: [ - { - id: "1675EA4117A36C72" - item: "gtceu:steam_oven" - type: "item" - } - { - id: "4EE63FDD07EC0467" - item: "gtceu:steam_input_hatch" - type: "item" - } - { - id: "0C9D5C87DEC212D2" - item: "gtceu:steam_input_bus" - type: "item" - } - { - id: "60828361A38F4E1E" - item: "gtceu:steam_output_bus" - type: "item" - } - { - count: 8L - id: "10EC49FF899232F6" - item: "gtceu:steam_machine_casing" - type: "item" - } - { - count: 8L - id: "27DDD13BE482E8A3" - item: "gtceu:bronze_firebox_casing" - type: "item" - } - ] - title: "{quests.steam_age.steam_oven.title}" - x: -16.5d - y: 4.0d - } - { - dependencies: ["46FA9DD4755A5548"] - description: ["{quests.steam_age.rock_crusher.desc}"] - id: "2491CB5921B66446" - optional: true - subtitle: "{quests.steam_age.rock_crusher.subtitle}" - tasks: [{ - id: "5CA302572EF6D4E1" - item: "gtceu:hp_steam_rock_crusher" - type: "item" - }] - title: "{quests.steam_age.rock_crusher.title}" - x: -22.5d - y: 7.0d - } - { - dependencies: [ - "1912758422EEB006" - "12CB3B9ADC586521" - ] - dependency_requirement: "one_completed" - description: ["{quests.steam_age.red_alloy.desc}"] - icon: { - Count: 1 - ForgeCaps: { - "tfc:item_heat": { - heat: 0.0f - ticks: 0L - } - } - id: "gtceu:red_alloy_ingot" - } - id: "781C6AD30194CB45" - shape: "square" - size: 1.0d - subtitle: "{quests.steam_age.red_alloy.subtitle}" - tasks: [ - { - id: "4D1E98E699F1E724" - item: "gtceu:red_alloy_ingot" - type: "item" - } - { - id: "41331A38F9664605" - item: "gtceu:red_alloy_single_wire" - type: "item" - } - ] - title: "{quests.steam_age.red_alloy.title}" - x: -22.5d - y: 12.0d - } - { - dependencies: ["51CBF7378FFAD514"] - description: [ - "{quests.steam_age.fluid_pipes.desc.1}" - "{@pagebreak}" - "{quests.steam_age.fluid_pipes.desc.2}" - ] - icon: "gtceu:bronze_normal_fluid_pipe" - id: "0109231F33296868" - size: 1.0d - subtitle: "{quests.steam_age.fluid_pipes.subtitle}" - tasks: [ - { - id: "59512A7A04D517E6" - item: { - Count: 1 - id: "ftbfiltersystem:smart_filter" - tag: { - "ftbfiltersystem:filter": "or(item(gtceu:bronze_tiny_fluid_pipe)item(gtceu:bronze_quadruple_fluid_pipe)item(gtceu:bronze_nonuple_fluid_pipe)item(gtceu:bronze_huge_fluid_pipe)item(gtceu:bronze_large_fluid_pipe)item(gtceu:bronze_normal_fluid_pipe)item(gtceu:bronze_small_fluid_pipe))" - } - } - title: "Any Bronze Pipe" - type: "item" - } - { - id: "143EA7ABC19B6AFC" - item: "gtceu:wood_normal_fluid_pipe" - optional_task: true - type: "item" - } - ] - title: "{quests.steam_age.fluid_pipes.title}" - x: -3.5d - y: 0.0d - } - { - dependencies: ["51CBF7378FFAD514"] - description: [ - "{quests.steam_age.fluid_drums.desc.1}" - "{@pagebreak}" - "{quests.steam_age.fluid_drums.desc.2}" - ] - icon: "gtceu:bronze_drum" - id: "499D24AFADC25AA9" - size: 1.0d - subtitle: "{quests.steam_age.fluid_drums.subtitle}" - tasks: [{ - id: "73A31AC2888A851E" - item: { - Count: 1 - id: "ftbfiltersystem:smart_filter" - tag: { - "ftbfiltersystem:filter": "or(item(gtceu:bronze_drum)item(gtceu:steel_drum)item(gtceu:aluminium_drum)item(gtceu:stainless_steel_drum)item(gtceu:gold_drum)item(gtceu:titanium_drum)item(gtceu:tungsten_steel_drum))" - } - } - type: "item" - }] - title: "{quests.steam_age.fluid_drums.title}" - x: -1.5d - y: 2.0d - } - { - dependencies: ["49896161B31DB7B4"] - description: [ - "{quests.steam_age.potin.desc.1}" - "{@pagebreak}" - "{quests.steam_age.potin.desc.2}" - ] - icon: "gtceu:potin_normal_fluid_pipe" - id: "6B6FEF3DC6299CD9" - optional: true - shape: "heart" - size: 1.0d - subtitle: "{quests.steam_age.potin.subtitle}" - tasks: [{ - id: "3FC7579C544460B1" - item: { - Count: 1 - id: "ftbfiltersystem:smart_filter" - tag: { - "ftbfiltersystem:filter": "or(item(gtceu:potin_tiny_fluid_pipe)item(gtceu:potin_small_fluid_pipe)item(gtceu:potin_normal_fluid_pipe)item(gtceu:potin_large_fluid_pipe)item(gtceu:potin_huge_fluid_pipe)item(gtceu:potin_huge_fluid_pipe)item(gtceu:potin_quadruple_fluid_pipe)item(gtceu:potin_nonuple_fluid_pipe))" - } - } - title: "Any Potin Pipe" - type: "item" - }] - title: "{quests.steam_age.potin.title}" - x: -5.5d - y: 12.5d - } - { - dependencies: ["6F1BC99BE641B671"] - description: ["{quests.steam_age.create_tools.desc}"] - id: "2F81902C6B1D4902" - subtitle: "{quests.steam_age.create_tools.subtitle}" - tasks: [ - { - id: "12C909F6EB4BB615" - item: "create:goggles" - optional_task: true - type: "item" - } - { - id: "7721793B4C0AFD2C" - item: { - Count: 1 - id: "ftbfiltersystem:smart_filter" - tag: { - "ftbfiltersystem:filter": "or(item(gtceu:copper_wrench)item(gtceu:bronze_wrench)item(gtceu:black_bronze_wrench)item(gtceu:bismuth_bronze_wrench)item(gtceu:wrought_iron_wrench)item(gtceu:steel_wrench)item(gtceu:cobalt_brass_wrench))" - } - } - type: "item" - } - ] - title: "{quests.steam_age.create_tools.title}" - x: -21.5d - y: -4.0d - } - { - dependencies: ["6AA07588374B59AB"] - description: ["{quests.steam_age.trains.desc}"] - hide_dependency_lines: false - id: "02854A3E8A5D5043" - optional: true - shape: "heart" - subtitle: "{quests.steam_age.trains.subtitle}" - tasks: [ - { - id: "7D63DDE72E9AC188" - item: "create:track_station" - type: "item" - } - { - id: "48F6ED366BE64A71" - item: "create:railway_casing" - type: "item" - } - { - id: "1BC698B7C0124CA0" - item: "create:controls" - type: "item" - } - ] - title: "{quests.steam_age.trains.title}" - x: -16.5d - y: 13.0d - } - { - dependencies: ["6AA07588374B59AB"] - description: ["{quests.steam_age.vacuum_chamber.desc}"] - id: "5F3063C539C9CBBF" - subtitle: "{quests.steam_age.vacuum_chamber.subtitle}" - tasks: [{ - id: "5BAA167FA59D5C32" - item: "vintageimprovements:vacuum_chamber" - type: "item" - }] - title: "{quests.steam_age.vacuum_chamber.title}" - x: -14.5d - y: 12.0d - } - { - description: ["{quests.metal_age.black_steel_goodies.desc}"] - id: "209958FE2EEA5D72" - shape: "gear" - size: 3.0d - subtitle: "{quests.metal_age.black_steel_goodies.subtitle}" - tasks: [{ - id: "066CDB0C97CF74EF" - item: { - Count: 1 - ForgeCaps: { - "tfc:item_heat": { - heat: 0.0f - ticks: 0L - } - } - id: "tfc:metal/anvil/black_steel" - } - type: "item" - }] - title: "{quests.metal_age.black_steel_goodies.title}" - x: -19.5d - y: 3.0d - } - { - dependencies: ["1059288C22CB56BB"] - dependency_requirement: "one_completed" - description: ["{quests.steam_age.poor_paths.desc}"] - id: "6356072A435EFE81" - optional: true - shape: "diamond" - subtitle: "{quests.steam_age.poor_paths.subtitle}" - tasks: [ - { - disable_toast: true - id: "4F3DE27E5A72D7BD" - item: { - Count: 1 - id: "ftbfiltersystem:smart_filter" - tag: { - "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(tfc:dirt)" - } - } - optional_task: true - title: "Any #tfc:dirt" - type: "item" - } - { - disable_toast: true - id: "2A6A80CC908180C5" - item: { - Count: 1 - id: "ftbfiltersystem:smart_filter" - tag: { - "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(tfc:grass)" - } - } - optional_task: true - title: "Any #tfc:grass" - type: "item" - } - { - id: "63E8E70536A0E327" - type: "checkmark" - } - ] - title: "{quests.steam_age.poor_paths.title}" - x: -25.0d - y: -3.5d - } - { - dependencies: ["1059288C22CB56BB"] - dependency_requirement: "one_completed" - description: ["{quests.steam_age.normal_paths.desc}"] - id: "494E81202B0F36A7" - optional: true - shape: "diamond" - subtitle: "{quests.steam_age.normal_paths.subtitle}" - tasks: [ - { - id: "0E4FF871FD6313B1" - item: { - Count: 1 - id: "ftbfiltersystem:smart_filter" - tag: { - "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(tfc:paths)" - } - } - optional_task: true - title: "Any #tfc:paths" - type: "item" - } - { - disable_toast: true - id: "5F38585D28010C6C" - item: { - Count: 1 - id: "ftbfiltersystem:smart_filter" - tag: { - "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(tfc:rock/gravel)" - } - } - optional_task: true - title: "Any #tfc:rock/gravel" - type: "item" - } - { - id: "2ED43D8943143635" - item: "rnr:hoggin" - optional_task: true - type: "item" - } - { - id: "4CBEBCFBCB80C624" - type: "checkmark" - } - ] - title: "{quests.steam_age.normal_paths.title}" - x: -25.5d - y: -2.0d - } - { - dependencies: [ - "1059288C22CB56BB" - "379F434116632A89" - ] - dependency_requirement: "one_completed" - description: ["{quests.steam_age.good_paths.desc}"] - id: "52A82511A64B0A5B" - optional: true - shape: "diamond" - subtitle: "{quests.steam_age.good_paths.subtitle}" - tasks: [ - { - id: "17BE9908916FD48D" - item: "rnr:rock/sett_road/granite" - optional_task: true - type: "item" - } - { - id: "276FE934DBA46B50" - item: "rnr:rock/cobbled_road/granite" - optional_task: true - type: "item" - } - { - id: "3ED818D7E317850A" - item: "rnr:rock/flagstones/granite" - optional_task: true - type: "item" - } - { - id: "781B70D87BB8051D" - item: "rnr:pink_sandstone_flagstones" - optional_task: true - type: "item" - } - { - id: "3A58D37BC4DA80A9" - item: "rnr:rock/gravel_road/granite" - optional_task: true - type: "item" - } - { - id: "11F7E8FFE4575FF8" - item: "rnr:rock/macadam_road/granite" - optional_task: true - type: "item" - } - { - id: "5782F5692D6AF00A" - type: "checkmark" - } - ] - title: "{quests.steam_age.good_paths.title}" - x: -25.0d - y: -0.5d - } - { - dependencies: [ - "69BDD31A69062B6C" - "43D0B4F2ACB9931B" - "6903C72A254A7B08" - "2C35D4E01AEC02AA" - ] - description: ["{quests.steam_age.lv_circuit.desc}"] - icon: "gtceu:basic_electronic_circuit" - id: "3D8174C64DDC268B" - shape: "gear" - size: 3.0d - subtitle: "{quests.steam_age.lv_circuit.subtitle}" - tasks: [{ - id: "59CF003A962651B0" - item: "gtceu:basic_electronic_circuit" - type: "item" - }] - title: "{quests.steam_age.lv_circuit.title}" - x: -10.0d - y: 6.0d - } - { - description: ["{quests.steam_age.paper.desc}"] - disable_toast: true - id: "16CF5A9012EF4B27" - shape: "diamond" - subtitle: "{quests.steam_age.paper.subtitle}" - tasks: [{ - id: "1567AABEC83A6346" - item: "minecraft:paper" - type: "item" - }] - title: "{quests.steam_age.paper.title}" - x: -5.5d - y: 9.5d - } - { - description: ["{quests.metal_age.bronze_goodies.desc}"] - disable_toast: true - id: "6F1BC99BE641B671" - shape: "octagon" - size: 2.0d - subtitle: "{quests.metal_age.bronze_goodies.subtitle}" - tasks: [{ - id: "5B891E7A5DB66813" - item: { - Count: 1 - id: "ftbfiltersystem:smart_filter" - tag: { - "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(tfc:bronze_anvils)" - } - } - title: "Any #tfc:bronze_anvils" - type: "item" - }] - title: "{quests.metal_age.bronze_goodies.title}" - x: -21.5d - y: -2.0d - } - { - description: ["{quests.metal_age.wrought_iron_goodies.desc}"] - id: "6E8CEE02CB5B678B" - shape: "octagon" - size: 2.0d - subtitle: "{quests.metal_age.wrought_iron_goodies.subtitle}" - tasks: [{ - id: "14980AA2D20804BA" - item: { - Count: 1 - ForgeCaps: { - "tfc:item_heat": { - heat: 0.0f - ticks: 0L - } - } - id: "tfc:metal/anvil/wrought_iron" - } - type: "item" - }] - title: "{quests.metal_age.wrought_iron_goodies.title}" - x: -12.0d - y: -2.0d - } - { - description: ["{quests.metal_age.steel_goodies.desc}"] - id: "32046292AA5B0E30" - shape: "octagon" - size: 2.0d - subtitle: "{quests.metal_age.steel_goodies.subtitle}" - tasks: [{ - id: "6D4629A2C1063653" - item: { - Count: 1 - ForgeCaps: { - "tfc:item_heat": { - heat: 0.0f - ticks: 0L - } - } - id: "tfc:metal/anvil/steel" - } - type: "item" - }] - title: "{quests.metal_age.steel_goodies.title}" - x: -5.5d - y: 0.0d - } - { - dependencies: [ - "46FA9DD4755A5548" - "6100B3C732E379AA" - ] - description: ["{quests.steam_age.steam_macerator.desc}"] - id: "6CF7DCC996BACBFA" - optional: true - subtitle: "{quests.steam_age.steam_macerator.subtitle}" - tasks: [{ - id: "19146D7510558652" - item: "gtceu:hp_steam_macerator" - type: "item" - }] - title: "{quests.steam_age.steam_macerator.title}" - x: -22.5d - y: 6.0d - } - { - dependencies: [ - "6CF7DCC996BACBFA" - "5E4FC017E09ACF44" - ] - dependency_requirement: "one_completed" - description: ["{quests.steam_age.steam_grinder.desc}"] - id: "0CC370A6FC56935B" - optional: true - shape: "heart" - subtitle: "{quests.steam_age.steam_grinder.subtitle}" - tasks: [{ - id: "1CD61C4F273665DE" - item: "gtceu:steam_grinder" - type: "item" - }] - title: "{quests.steam_age.steam_grinder.title}" - x: -25.0d - y: 6.0d - } - { - dependencies: ["32046292AA5B0E30"] - description: ["{quests.steam_age.rotation_speed_controller.desc}"] - id: "414835BADD34513F" - optional: true - subtitle: "{quests.steam_age.rotation_speed_controller.subtitle}" - tasks: [{ - id: "74770DF964D26059" - item: "create:rotation_speed_controller" - type: "item" - }] - title: "{quests.steam_age.rotation_speed_controller.title}" - x: -7.5d - y: 0.0d - } - { - dependencies: [ - "6FFD4990FF07078A" - "3E175E20C91F168B" - ] - description: ["{quests.steam_age.resin_boards.desc}"] - id: "05BE9FE74E4F1AE9" - subtitle: "{quests.steam_age.resin_boards.subtitle}" - tasks: [{ - id: "1367C83F3529D5EA" - item: "gtceu:resin_circuit_board" - type: "item" - }] - title: "{quests.steam_age.resin_boards.title}" - x: -13.5d - y: 9.5d - } - { - dependencies: ["6E8CEE02CB5B678B"] - description: [ - "{quests.metal_age.coke_oven.desc.1}" - "{@pagebreak}" - "{quests.metal_age.coke_oven.desc.2}" - "{@pagebreak}" - "" - "{image:tfg:textures/quests/auto_coke.png width:100 height:100 align:center}" - ] - id: "0D0D461AE3A3F7BF" - size: 1.5d - subtitle: "{quests.metal_age.coke_oven.subtitle}" - tasks: [ - { - id: "1D22CEA76A676434" - item: "gtceu:coke_oven" - type: "item" - } - { - id: "7C2595BA70CBB39E" - item: "gtceu:coke_oven_bricks" - type: "item" - } - { - id: "11981B2183C67CE0" - item: "gtceu:coke_oven_hatch" - type: "item" - } - ] - title: "{quests.metal_age.coke_oven.title}" - x: -14.5d - y: -2.0d - } - { - dependencies: ["033E74BC588E7EAD"] - description: ["{quests.steam_age.packager.desc}"] - icon: "create:package_frogport" - id: "509E85016A2B199C" - shape: "gear" - size: 2.0d - subtitle: "{quests.steam_age.packager.subtitle}" - tasks: [{ - id: "4319E4113F8EBB13" - type: "checkmark" - }] - title: "{quests.steam_age.packager.title}" - x: -19.5d - y: 17.0d - } - { - dependencies: [ - "7B045998769930F0" - "55FDF06AC0C01D0B" - ] - description: ["{quests.steam_age.basic_mech_press.desc}"] - id: "14710C5B4981CECC" - optional: true - shape: "heart" - subtitle: "{quests.steam_age.basic_mech_press.subtitle}" - tasks: [{ - id: "2F89D6D6745465DC" - item: "greate:andesite_alloy_mechanical_press" - type: "item" - }] - title: "{quests.steam_age.basic_mech_press.title}" - x: -17.5d - y: -2.0d - } - { - dependencies: [ - "09D913288896A67A" - "05A39719B66B8F76" - ] - description: [ - "{quests.steam_age.steel_mech_press.desc.1}" - "{@pagebreak}" - "{quests.steam_age.steel_mech_press.desc.2}" - ] - id: "0D39D83AA5F9D543" - optional: true - shape: "heart" - subtitle: "{quests.steam_age.steel_mech_press.subtitle}" - tasks: [{ - id: "32E30B6AC780CAF1" - item: "greate:steel_mechanical_press" - type: "item" - }] - title: "{quests.steam_age.steel_mech_press.title}" - x: -7.5d - y: 4.0d - } - { - dependencies: ["183D47F04CAEBFA7"] - description: ["{quests.steam_age.fuel_sources.desc}"] - icon: "createdeco:decal_fire" - id: "753A53733C6DFA04" - subtitle: "{quests.steam_age.fuel_sources.subtitle}" - tasks: [{ - id: "38A3F9A1D2F11EE3" - type: "checkmark" - }] - title: "{quests.steam_age.fuel_sources.title}" - x: -7.5d - y: -2.0d - } - { - dependencies: ["32046292AA5B0E30"] - description: ["{quests.steam_age.large_water_wheel.desc}"] - id: "56A068A5488CB273" - subtitle: "{quests.steam_age.large_water_wheel.subtitle}" - tasks: [{ - id: "5772AD3BB700FD84" - item: "create:large_water_wheel" - type: "item" - }] - title: "{quests.steam_age.large_water_wheel.title}" - x: -3.5d - y: -2.0d - } - ] - subtitle: ["{quests.steam_age.subtitle}"] - title: "{quests.steam_age}" -} +{ + default_hide_dependency_lines: false + default_quest_shape: "" + filename: "questssteam_age" + group: "3C4612A920658A7E" + icon: { + Count: 1 + ForgeCaps: { + "tfc:item_heat": { + heat: 0.0f + ticks: 0L + } + } + id: "gtceu:steel_gear" + } + id: "784A885090386609" + order_index: 2 + quest_links: [ + { + id: "39027CF4DC307D33" + linked_quest: "5E186CD5E83BFDF0" + x: -29.0d + y: 2.0d + } + { + id: "0CE64B9914191C56" + linked_quest: "6FFD4990FF07078A" + shape: "diamond" + x: -11.5d + y: 9.5d + } + { + id: "23A27702FF816291" + linked_quest: "6903C72A254A7B08" + x: -14.5d + y: 6.0d + } + { + id: "1F1E7097C015BE33" + linked_quest: "48A8E3210B2BAE1C" + shape: "octagon" + size: 2.0d + x: -29.0d + y: 0.0d + } + { + id: "7C03FE015586C652" + linked_quest: "55213ACBF5F5D398" + shape: "heart" + x: -15.0d + y: 13.0d + } + { + id: "65E0B13E245D2E5F" + linked_quest: "379F434116632A89" + x: -25.0d + y: 1.0d + } + { + id: "68F5E521F2DB0A86" + linked_quest: "0404FBCC34011053" + shape: "heart" + x: -14.0d + y: 13.0d + } + { + id: "38ECA3FEC2B6A6A6" + linked_quest: "533F32CCAD9D5B51" + shape: "heart" + x: -19.5d + y: 11.5d + } + ] + quests: [ + { + dependencies: [ + "7B045998769930F0" + "55FDF06AC0C01D0B" + ] + description: ["{quests.steam_age.basic_millstone.desc}"] + id: "48C1E980F7D64317" + size: 1.5d + subtitle: "{quests.steam_age.basic_millstone.subtitle}" + tasks: [{ + id: "486DE7D228F3589B" + item: "greate:andesite_alloy_millstone" + type: "item" + }] + title: "{quests.steam_age.basic_millstone.title}" + x: -19.5d + y: 0.0d + } + { + dependencies: ["6F1BC99BE641B671"] + description: [ + "{quests.steam_age.horse_crank.desc.1}" + "{@pagebreak}" + "{quests.steam_age.horse_crank.desc.2}" + ] + id: "1059288C22CB56BB" + subtitle: "{quests.steam_age.horse_crank.subtitle}" + tasks: [{ + id: "1F3EE2CB3B8875EC" + item: "createhorsepower:horse_crank" + type: "item" + }] + title: "{quests.steam_age.horse_crank.title}" + x: -23.5d + y: -2.0d + } + { + dependencies: ["7B045998769930F0"] + description: ["{quests.steam_age.helve_hammer.desc}"] + id: "611EB6284CA7119C" + size: 1.0d + subtitle: "{quests.steam_age.helve_hammer.subtitle}" + tasks: [{ + id: "340B4B4665295100" + item: "vintageimprovements:helve_hammer" + type: "item" + }] + title: "{quests.steam_age.helve_hammer.title}" + x: -19.5d + y: -4.0d + } + { + dependencies: ["6F1BC99BE641B671"] + description: ["{quests.steam_age.basic_greate.desc}"] + id: "7B045998769930F0" + subtitle: "{quests.steam_age.basic_greate.subtitle}" + tasks: [ + { + id: "53E8B404D5233367" + item: "greate:andesite_alloy_cogwheel" + optional_task: true + type: "item" + } + { + id: "54B5DC1982F4D816" + item: "greate:large_andesite_alloy_cogwheel" + type: "item" + } + { + id: "59AD69460AE89682" + item: "greate:andesite_alloy_shaft" + optional_task: true + type: "item" + } + ] + title: "{quests.steam_age.basic_greate.title}" + x: -19.5d + y: -2.0d + } + { + dependencies: ["0D0D461AE3A3F7BF"] + description: ["{quests.steam_age.water_wheel.desc}"] + id: "61DDB00751D1E7CB" + subtitle: "{quests.steam_age.water_wheel.subtitle}" + tasks: [{ + id: "1D82D22878EE6D21" + item: "create:water_wheel" + type: "item" + }] + title: "{quests.steam_age.water_wheel.title}" + x: -14.5d + y: 0.0d + } + { + dependencies: ["0D0D461AE3A3F7BF"] + description: ["{quests.steam_age.windmill.desc}"] + id: "617E0AFB7BA3D7A8" + subtitle: "{quests.steam_age.windmill.subtitle}" + tasks: [ + { + id: "26EA0D8EDFCF3727" + item: "create:windmill_bearing" + type: "item" + } + { + count: 8L + id: "3095A44065C9F130" + item: "create:white_sail" + type: "item" + } + ] + title: "{quests.steam_age.windmill.title}" + x: -14.5d + y: -4.0d + } + { + dependencies: ["6E8CEE02CB5B678B"] + description: ["{quests.steam_age.metal_casing.desc}"] + id: "7F14D2A34F480ACA" + size: 1.5d + subtitle: "{quests.steam_age.metal_casing.subtitle}" + tasks: [{ + id: "1554B18D816C3549" + item: "create:andesite_casing" + type: "item" + }] + title: "{quests.steam_age.metal_casing.title}" + x: -9.5d + y: -2.0d + } + { + dependencies: [ + "09D913288896A67A" + "05A39719B66B8F76" + ] + description: ["{quests.steam_age.steel_encased_fan.desc}"] + id: "616E28977F3216D9" + subtitle: "{quests.steam_age.steel_encased_fan.subtitle}" + tasks: [{ + id: "32279C21D7553637" + item: { Count: 32, id: "greate:steel_encased_fan" } + type: "item" + }] + title: "{quests.steam_age.steel_encased_fan.title}" + x: -5.5d + y: 4.0d + } + { + dependencies: ["09D913288896A67A"] + description: [ + "{quests.steam_age.steel_pump.desc.1}" + "{@pagebreak}" + "{quests.steam_age.steel_pump.desc.2}" + "{@pagebreak}" + "{quests.steam_age.steel_pump.desc.3}" + ] + id: "51CBF7378FFAD514" + subtitle: "{quests.steam_age.steel_pump.subtitle}" + tasks: [{ + id: "1E7DD1C4FCCFD937" + item: "greate:steel_mechanical_pump" + type: "item" + }] + title: "{quests.steam_age.steel_pump.title}" + x: -3.5d + y: 2.0d + } + { + dependencies: ["209958FE2EEA5D72"] + description: [ + "{quests.steam_age.boilers.desc.1}" + "{@pagebreak}" + "{quests.steam_age.boilers.desc.2}" + ] + id: "46FA9DD4755A5548" + size: 1.5d + subtitle: "{quests.steam_age.boilers.subtitle}" + tasks: [{ + id: "07FFA9C76EE39D36" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "or(item(gtceu:hp_steam_solid_boiler)item(gtceu:hp_steam_liquid_boiler)item(gtceu:hp_steam_solar_boiler))" + } + } + title: "{quests.steam_age.boilers.tasks}" + type: "item" + }] + title: "{quests.steam_age.boilers.title}" + x: -19.5d + y: 7.5d + } + { + dependencies: ["32046292AA5B0E30"] + description: ["{quests.steam_age.steam_engine.desc}"] + id: "183D47F04CAEBFA7" + size: 1.5d + subtitle: "{quests.steam_age.steam_engine.subtitle}" + tasks: [ + { + id: "704B7094BE2FB3E1" + item: "create:steam_engine" + optional_task: true + type: "item" + } + { + id: "4655500474F4236C" + item: "create:blaze_burner" + type: "item" + } + ] + title: "{quests.steam_age.steam_engine.title}" + x: -5.5d + y: -2.0d + } + { + dependencies: ["7F14D2A34F480ACA"] + description: ["{quests.steam_age.mechanical_saw.desc}"] + id: "069825FBCFB0FB9C" + rewards: [{ + id: "64CA1397D201AF37" + item: "create:filter" + type: "item" + }] + subtitle: "{quests.steam_age.mechanical_saw.subtitle}" + tasks: [{ + id: "5005121E0361DBD2" + item: "greate:andesite_alloy_mechanical_saw" + type: "item" + }] + title: "{quests.steam_age.mechanical_saw.title}" + x: -9.5d + y: 0.0d + } + { + dependencies: ["7F14D2A34F480ACA"] + description: ["{quests.steam_age.mechanical_harvester.desc}"] + id: "76871B4CEEEC70B8" + subtitle: "{quests.steam_age.mechanical_harvester.subtitle}" + tasks: [{ + id: "34092F5FBDFB9761" + item: "create:mechanical_harvester" + type: "item" + }] + title: "{quests.steam_age.mechanical_harvester.title}" + x: -9.5d + y: -4.0d + } + { + dependencies: ["6E8CEE02CB5B678B"] + description: ["{quests.steam_age.chute.desc}"] + id: "05CC8C5E63CD1DB8" + subtitle: "{quests.steam_age.chute.subtitle}" + tasks: [ + { + id: "7CB1E90EAF7861FB" + item: "create:chute" + type: "item" + } + { + id: "66E04B6A41557709" + item: "create:andesite_funnel" + optional_task: true + type: "item" + } + { + id: "6E500B14003B937D" + item: "minecraft:hopper" + optional_task: true + type: "item" + } + ] + title: "{quests.steam_age.chute.title}" + x: -12.0d + y: 0.0d + } + { + dependencies: ["51CBF7378FFAD514"] + description: [ + "{quests.steam_age.mold_table.desc.1}" + "{@pagebreak}" + "{quests.steam_age.mold_table.desc.2}" + ] + id: "66DBF1C68493A406" + subtitle: "{quests.steam_age.mold_table.subtitle}" + tasks: [{ + id: "7258D0D474B6F26E" + item: "tfcchannelcasting:mold_table" + type: "item" + }] + title: "{quests.steam_age.mold_table.title}" + x: -3.5d + y: 4.0d + } + { + dependencies: ["32046292AA5B0E30"] + dependency_requirement: "one_completed" + description: ["{quests.steam_age.steel_greate.desc}"] + id: "09D913288896A67A" + size: 1.5d + subtitle: "{quests.steam_age.steel_greate.subtitle}" + tasks: [ + { + id: "23DE370285589CB4" + item: "greate:steel_shaft" + type: "item" + } + { + id: "4FDD99090C920E21" + item: "greate:steel_cogwheel" + type: "item" + } + { + id: "5569D0030FB45C5D" + item: "greate:large_steel_cogwheel" + type: "item" + } + ] + title: "{quests.steam_age.steel_greate.title}" + x: -5.5d + y: 2.0d + } + { + dependencies: [ + "09D913288896A67A" + "05A39719B66B8F76" + ] + description: ["{quests.steam_age.steel_millstone.desc}"] + hide_dependent_lines: true + id: "5E4FC017E09ACF44" + subtitle: "{quests.steam_age.steel_millstone.subtitle}" + tasks: [{ + id: "3E3D4CD3283461DE" + item: "greate:steel_millstone" + type: "item" + }] + title: "{quests.steam_age.steel_millstone.title}" + x: -7.5d + y: 2.0d + } + { + dependencies: [ + "5917B0D4708BF534" + "6100B3C732E379AA" + ] + description: ["{quests.steam_age.crushing_wheel.desc}"] + id: "4F3D0D746D26B59F" + optional: true + shape: "heart" + subtitle: "{quests.steam_age.crushing_wheel.subtitle}" + tasks: [{ + count: 2L + id: "7EDCBC04DAEA477C" + item: "greate:steel_crushing_wheel" + type: "item" + }] + title: "{quests.steam_age.crushing_wheel.title}" + x: -21.5d + y: 11.5d + } + { + dependencies: ["7DB7AB5349218605"] + description: ["{quests.steam_age.treated_planks.desc}"] + id: "246D2C5989E3E907" + subtitle: "{quests.steam_age.treated_planks.subtitle}" + tasks: [ + { + id: "7CF3C09E3907B1C0" + item: "gtceu:treated_wood_planks" + type: "item" + } + { + id: "72112F5EC062766C" + item: "gtceu:treated_wood_dust" + type: "item" + } + { + id: "0D95727196D033B5" + item: "gtceu:treated_wood_plate" + type: "item" + } + ] + title: "{quests.steam_age.treated_planks.title}" + x: -20.5d + y: 9.5d + } + { + dependencies: [ + "233B414B4F189140" + "781C6AD30194CB45" + "3E175E20C91F168B" + ] + description: ["{quests.steam_age.electron_tube.desc}"] + id: "033E74BC588E7EAD" + shape: "octagon" + size: 2.0d + subtitle: "{quests.steam_age.electron_tube.subtitle}" + tasks: [{ + id: "471CCF5193150865" + item: "create:electron_tube" + type: "item" + }] + title: "{quests.steam_age.electron_tube.title}" + x: -19.5d + y: 14.5d + } + { + dependencies: ["2C35D4E01AEC02AA"] + dependency_requirement: "one_completed" + description: [ + "{quests.steam_age.miner.desc.1}" + "{@pagebreak}" + "{quests.steam_age.miner.desc.2}" + ] + id: "65066C9D630B7FFA" + optional: true + subtitle: "{quests.steam_age.miner.subtitle}" + tasks: [ + { + id: "068F7BD3AA0EF8E7" + item: "gtceu:hp_steam_miner" + type: "item" + } + { + id: "5ADC94CEBC196702" + item: "create:mechanical_drill" + type: "item" + } + ] + title: "{quests.steam_age.miner.title}" + x: -12.0d + y: 15.0d + } + { + dependencies: [ + "22E604DB7E7E87FB" + "09E12A399EE0A628" + "1912758422EEB006" + ] + dependency_requirement: "one_completed" + description: ["{quests.steam_age.glass_tube.desc}"] + id: "233B414B4F189140" + subtitle: "{quests.steam_age.glass_tube.subtitle}" + tasks: [{ + id: "004AF02E40B60ECF" + item: "gtceu:glass_tube" + type: "item" + }] + title: "{quests.steam_age.glass_tube.title}" + x: -25.0d + y: 14.5d + } + { + dependencies: ["033E74BC588E7EAD"] + description: ["{quests.steam_age.deployers.desc}"] + icon: "create:deployer" + id: "6AA07588374B59AB" + subtitle: "{quests.steam_age.deployers.subtitle}" + tasks: [ + { + id: "717CF950E5000569" + item: "create:deployer" + type: "item" + } + { + id: "38F9301A818347F7" + item: "create:depot" + optional_task: true + type: "item" + } + ] + title: "{quests.steam_age.deployers.title}" + x: -16.5d + y: 12.0d + } + { + dependencies: ["1912758422EEB006"] + description: ["{quests.steam_age.molding.desc}"] + icon: "gtceu:ball_casting_mold" + id: "09E12A399EE0A628" + size: 1.0d + subtitle: "{quests.steam_age.molding.subtitle}" + tasks: [ + { + id: "02A8B23277FFD95E" + item: "gtceu:plate_casting_mold" + type: "item" + } + { + id: "57B2773550AA7D37" + item: "gtceu:ball_casting_mold" + type: "item" + } + ] + title: "{quests.steam_age.molding.title}" + x: -25.0d + y: 9.5d + } + { + dependencies: ["033E74BC588E7EAD"] + description: ["{quests.steam_age.mech_crafter.desc}"] + id: "5917B0D4708BF534" + optional: true + subtitle: "{quests.steam_age.mech_crafter.subtitle}" + tasks: [{ + id: "084E6F06E79A3B0F" + item: "create:mechanical_crafter" + type: "item" + }] + title: "{quests.steam_age.mech_crafter.title}" + x: -20.5d + y: 12.0d + } + { + dependencies: ["46FA9DD4755A5548"] + description: ["{quests.steam_age.steam_bloomery.desc}"] + icon: "gtceu:steam_bloomery" + id: "0805CCABC8E7F6CF" + optional: true + shape: "heart" + size: 1.5d + subtitle: "{quests.steam_age.steam_bloomery.subtitle}" + tasks: [ + { + id: "72D748120CACABE2" + item: "gtceu:steam_bloomery" + type: "item" + } + { + count: 3L + id: "019C4D427A06DF0E" + item: { Count: 3, id: "gtceu:bronze_firebox_casing" } + type: "item" + } + { + id: "402700D6CCD2BEF1" + item: "gtceu:steam_input_hatch" + type: "item" + } + { + id: "7B99996072C53AD9" + item: "gtceu:steam_input_bus" + type: "item" + } + { + id: "6E4B41FDD286E184" + item: "gtceu:steam_output_bus" + type: "item" + } + ] + title: "{quests.steam_age.steam_bloomery.title}" + x: -22.5d + y: 4.0d + } + { + dependencies: ["05CC8C5E63CD1DB8"] + description: [ + "{quests.steam_age.item_pipes.desc.1}" + "{@pagebreak}" + "{quests.steam_age.item_pipes.desc.2}" + "{@pagebreak}" + "{quests.steam_age.item_pipes.desc.3}" + "{@pagebreak}" + "{quests.steam_age.item_pipes.desc.4}" + ] + icon: "gtceu:tin_small_item_pipe" + id: "08672B3000450F14" + size: 1.0d + subtitle: "{quests.steam_age.item_pipes.subtitle}" + tasks: [{ + id: "3122D989BAB787F4" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + display: { + Name: "{\"text\":\"Any item pipe\"}" + } + "ftbfiltersystem:filter": "or(item_tag(forge:small_item_pipes)item_tag(forge:normal_item_pipes)item_tag(forge:large_item_pipes)item_tag(forge:huge_item_pipes))" + } + } + title: "Any Item Pipes" + type: "item" + }] + title: "{quests.steam_age.item_pipes.title}" + x: -12.0d + y: 2.0d + } + { + dependencies: [ + "6FFD4990FF07078A" + "05BE9FE74E4F1AE9" + ] + description: ["{quests.steam_age.circuit_boards.desc}"] + icon: "gtceu:resin_printed_circuit_board" + id: "43D0B4F2ACB9931B" + shape: "square" + size: 1.0d + subtitle: "{quests.steam_age.circuit_boards.subtitle}" + tasks: [{ + id: "2B8B038789480789" + item: "gtceu:resin_printed_circuit_board" + type: "item" + }] + title: "{quests.steam_age.circuit_boards.title}" + x: -11.5d + y: 8.5d + } + { + dependencies: ["46FA9DD4755A5548"] + description: ["{quests.steam_age.compressor.desc}"] + id: "7DB7AB5349218605" + size: 1.0d + subtitle: "{quests.steam_age.compressor.subtitle}" + tasks: [{ + id: "422B0536DAAF3DD4" + item: "gtceu:hp_steam_compressor" + type: "item" + }] + title: "{quests.steam_age.compressor.title}" + x: -19.5d + y: 9.5d + } + { + dependencies: ["46FA9DD4755A5548"] + description: ["{quests.steam_age.alloy_smelter.desc}"] + id: "1912758422EEB006" + shape: "square" + size: 1.0d + subtitle: "{quests.steam_age.alloy_smelter.subtitle}" + tasks: [{ + id: "47ABB2F2EB140120" + item: "gtceu:hp_steam_alloy_smelter" + type: "item" + }] + title: "{quests.steam_age.alloy_smelter.title}" + x: -22.5d + y: 9.5d + } + { + dependencies: [ + "46FA9DD4755A5548" + "6100B3C732E379AA" + ] + description: ["{quests.steam_age.forge_hammer.desc}"] + id: "59F7F7A8C76DE31C" + shape: "square" + size: 1.0d + subtitle: "{quests.steam_age.forge_hammer.subtitle}" + tasks: [{ + id: "18FFF2B9BC20C28B" + item: "gtceu:hp_steam_forge_hammer" + type: "item" + }] + title: "{quests.steam_age.forge_hammer.title}" + x: -22.5d + y: 8.0d + } + { + dependencies: [ + "5F3063C539C9CBBF" + "05BE9FE74E4F1AE9" + ] + description: ["{quests.steam_age.vacuum_tubes.desc}"] + id: "2C35D4E01AEC02AA" + shape: "octagon" + size: 2.0d + subtitle: "{quests.steam_age.vacuum_tubes.subtitle}" + tasks: [{ + id: "71433924A1ACEDA1" + item: "gtceu:vacuum_tube" + type: "item" + }] + title: "{quests.steam_age.vacuum_tubes.title}" + x: -10.0d + y: 12.0d + } + { + dependencies: ["7DB7AB5349218605"] + description: ["{quests.steam_age.wood_plank.desc}"] + id: "3E175E20C91F168B" + subtitle: "{quests.steam_age.wood_plank.subtitle}" + tasks: [{ + id: "339B48BCF11A29E0" + item: "gtceu:wood_plate" + type: "item" + }] + title: "{quests.steam_age.wood_plank.title}" + x: -16.5d + y: 9.5d + } + { + dependencies: ["46FA9DD4755A5548"] + description: ["{quests.steam_age.extractor.desc}"] + id: "1DF4DBE41BB0B6FD" + optional: true + shape: "heart" + size: 1.0d + subtitle: "{quests.steam_age.extractor.subtitle}" + tasks: [{ + id: "5C84856667925F76" + item: "gtceu:hp_steam_extractor" + type: "item" + }] + title: "{quests.steam_age.extractor.title}" + x: -16.5d + y: 7.5d + } + { + dependencies: [ + "6FFD4990FF07078A" + "16CF5A9012EF4B27" + ] + dependency_requirement: "one_completed" + description: ["{quests.steam_age.resistors.desc}"] + id: "69BDD31A69062B6C" + shape: "square" + size: 1.0d + subtitle: "{quests.steam_age.resistors.subtitle}" + tasks: [{ + id: "4E6D1A59F2BAE607" + item: "gtceu:resistor" + type: "item" + }] + title: "{quests.steam_age.resistors.title}" + x: -7.0d + y: 9.5d + } + { + dependencies: ["2C35D4E01AEC02AA"] + description: ["{quests.steam_age.coiling_machine.desc}"] + id: "072F6E48A1C5ECE9" + optional: true + size: 1.25d + subtitle: "{quests.steam_age.coiling_machine.subtitle}" + tasks: [{ + id: "07B7D41ACDCD1DEA" + item: "vintageimprovements:spring_coiling_machine" + type: "item" + }] + title: "{quests.steam_age.coiling_machine.title}" + x: -7.0d + y: 14.0d + } + { + dependencies: ["2C35D4E01AEC02AA"] + description: ["{quests.steam_age.steel_mixer.desc}"] + id: "49896161B31DB7B4" + optional: true + size: 1.25d + subtitle: "{quests.steam_age.steel_mixer.subtitle}" + tasks: [{ + id: "42F060A386ADF999" + item: "greate:steel_mechanical_mixer" + type: "item" + }] + title: "{quests.steam_age.steel_mixer.title}" + x: -7.0d + y: 12.5d + } + { + dependencies: ["2C35D4E01AEC02AA"] + description: ["{quests.steam_age.lathe.desc}"] + id: "6A92E8396DE40577" + optional: true + subtitle: "{quests.steam_age.lathe.subtitle}" + tasks: [{ + id: "23961EE69549B16E" + item: "vintageimprovements:belt_grinder" + type: "item" + }] + title: "{quests.steam_age.lathe.title}" + x: -8.0d + y: 15.0d + } + { + dependencies: [ + "5917B0D4708BF534" + "6100B3C732E379AA" + "246D2C5989E3E907" + ] + description: ["{quests.steam_age.centrifuge.desc}"] + id: "19A1D52A7F550478" + optional: true + shape: "heart" + subtitle: "{quests.steam_age.centrifuge.subtitle}" + tasks: [{ + id: "69668479444FF064" + item: "vintageimprovements:centrifuge" + type: "item" + }] + title: "{quests.steam_age.centrifuge.title}" + x: -20.5d + y: 11.0d + } + { + dependencies: [ + "2C35D4E01AEC02AA" + "6100B3C732E379AA" + ] + description: ["{quests.steam_age.vibrating_table.desc}"] + id: "1E8CC993E0251828" + optional: true + subtitle: "{quests.steam_age.vibrating_table.subtitle}" + tasks: [{ + id: "3035C0B44A0E1854" + item: "vintageimprovements:vibrating_table" + type: "item" + }] + title: "{quests.steam_age.vibrating_table.title}" + x: -10.0d + y: 15.0d + } + { + dependencies: ["2C35D4E01AEC02AA"] + description: [ + "{quests.steam_age.rolling_mill.desc.1}" + "{@pagebreak}" + "{quests.steam_age.rolling_mill.desc.2}" + ] + id: "4C22BE513927247B" + optional: true + size: 1.25d + subtitle: "{quests.steam_age.rolling_mill.subtitle}" + tasks: [{ + id: "621AA4E967D54305" + item: "createaddition:rolling_mill" + type: "item" + }] + title: "{quests.steam_age.rolling_mill.title}" + x: -7.0d + y: 11.0d + } + { + dependencies: ["2C35D4E01AEC02AA"] + description: ["{quests.steam_age.steel_saw.desc}"] + id: "0078B9234C554C6E" + optional: true + subtitle: "{quests.steam_age.steel_saw.subtitle}" + tasks: [{ + id: "40E3951B8862B9A4" + item: "greate:steel_mechanical_saw" + type: "item" + }] + title: "{quests.steam_age.steel_saw.title}" + x: -9.0d + y: 15.0d + } + { + dependencies: ["2C35D4E01AEC02AA"] + description: ["{quests.steam_age.curving_press.desc}"] + id: "6ABACC7B9967851D" + optional: true + subtitle: "{quests.steam_age.curving_press.subtitle}" + tasks: [{ + id: "2AE28D5C5FC74A56" + item: "vintageimprovements:curving_press" + type: "item" + }] + title: "{quests.steam_age.curving_press.title}" + x: -11.0d + y: 15.0d + } + { + dependencies: [ + "46FA9DD4755A5548" + "6100B3C732E379AA" + ] + description: ["{quests.steam_age.steam_furnace.desc}"] + id: "799288FB7A4DCA11" + subtitle: "{quests.steam_age.steam_furnace.subtitle}" + tasks: [{ + id: "3F510CDD8E437540" + item: "gtceu:hp_steam_furnace" + type: "item" + }] + title: "{quests.steam_age.steam_furnace.title}" + x: -16.5d + y: 5.5d + } + { + dependencies: ["799288FB7A4DCA11"] + description: [ + "{quests.steam_age.steam_oven.desc.1}" + "{@pagebreak}" + "{quests.steam_age.steam_oven.desc.2}" + ] + icon: "gtceu:steam_oven" + id: "3E6DE0B94490FCEC" + optional: true + shape: "heart" + size: 1.0d + subtitle: "{quests.steam_age.steam_oven.subtitle}" + tasks: [ + { + id: "1675EA4117A36C72" + item: "gtceu:steam_oven" + type: "item" + } + { + id: "4EE63FDD07EC0467" + item: "gtceu:steam_input_hatch" + type: "item" + } + { + id: "0C9D5C87DEC212D2" + item: "gtceu:steam_input_bus" + type: "item" + } + { + id: "60828361A38F4E1E" + item: "gtceu:steam_output_bus" + type: "item" + } + { + count: 8L + id: "10EC49FF899232F6" + item: "gtceu:steam_machine_casing" + type: "item" + } + { + count: 8L + id: "27DDD13BE482E8A3" + item: "gtceu:bronze_firebox_casing" + type: "item" + } + ] + title: "{quests.steam_age.steam_oven.title}" + x: -16.5d + y: 4.0d + } + { + dependencies: ["46FA9DD4755A5548"] + description: ["{quests.steam_age.rock_crusher.desc}"] + id: "2491CB5921B66446" + optional: true + subtitle: "{quests.steam_age.rock_crusher.subtitle}" + tasks: [{ + id: "5CA302572EF6D4E1" + item: "gtceu:hp_steam_rock_crusher" + type: "item" + }] + title: "{quests.steam_age.rock_crusher.title}" + x: -22.5d + y: 7.0d + } + { + dependencies: [ + "1912758422EEB006" + "12CB3B9ADC586521" + ] + dependency_requirement: "one_completed" + description: ["{quests.steam_age.red_alloy.desc}"] + icon: { + Count: 1 + ForgeCaps: { + "tfc:item_heat": { + heat: 0.0f + ticks: 0L + } + } + id: "gtceu:red_alloy_ingot" + } + id: "781C6AD30194CB45" + shape: "square" + size: 1.0d + subtitle: "{quests.steam_age.red_alloy.subtitle}" + tasks: [ + { + id: "4D1E98E699F1E724" + item: "gtceu:red_alloy_ingot" + type: "item" + } + { + id: "41331A38F9664605" + item: "gtceu:red_alloy_single_wire" + type: "item" + } + ] + title: "{quests.steam_age.red_alloy.title}" + x: -22.5d + y: 13.5d + } + { + dependencies: ["51CBF7378FFAD514"] + description: [ + "{quests.steam_age.fluid_pipes.desc.1}" + "{@pagebreak}" + "{quests.steam_age.fluid_pipes.desc.2}" + ] + icon: "gtceu:bronze_normal_fluid_pipe" + id: "0109231F33296868" + size: 1.0d + subtitle: "{quests.steam_age.fluid_pipes.subtitle}" + tasks: [ + { + id: "59512A7A04D517E6" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "or(item(gtceu:bronze_tiny_fluid_pipe)item(gtceu:bronze_quadruple_fluid_pipe)item(gtceu:bronze_nonuple_fluid_pipe)item(gtceu:bronze_huge_fluid_pipe)item(gtceu:bronze_large_fluid_pipe)item(gtceu:bronze_normal_fluid_pipe)item(gtceu:bronze_small_fluid_pipe))" + } + } + title: "Any Bronze Pipe" + type: "item" + } + { + id: "143EA7ABC19B6AFC" + item: "gtceu:wood_normal_fluid_pipe" + optional_task: true + type: "item" + } + ] + title: "{quests.steam_age.fluid_pipes.title}" + x: -3.5d + y: 0.0d + } + { + dependencies: ["51CBF7378FFAD514"] + description: [ + "{quests.steam_age.fluid_drums.desc.1}" + "{@pagebreak}" + "{quests.steam_age.fluid_drums.desc.2}" + ] + icon: "gtceu:bronze_drum" + id: "499D24AFADC25AA9" + size: 1.0d + subtitle: "{quests.steam_age.fluid_drums.subtitle}" + tasks: [{ + id: "73A31AC2888A851E" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "or(item(gtceu:bronze_drum)item(gtceu:steel_drum)item(gtceu:aluminium_drum)item(gtceu:stainless_steel_drum)item(gtceu:gold_drum)item(gtceu:titanium_drum)item(gtceu:tungsten_steel_drum))" + } + } + type: "item" + }] + title: "{quests.steam_age.fluid_drums.title}" + x: -1.5d + y: 2.0d + } + { + dependencies: ["49896161B31DB7B4"] + description: [ + "{quests.steam_age.potin.desc.1}" + "{@pagebreak}" + "{quests.steam_age.potin.desc.2}" + ] + icon: "gtceu:potin_normal_fluid_pipe" + id: "6B6FEF3DC6299CD9" + optional: true + shape: "heart" + size: 1.0d + subtitle: "{quests.steam_age.potin.subtitle}" + tasks: [{ + id: "3FC7579C544460B1" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "or(item(gtceu:potin_tiny_fluid_pipe)item(gtceu:potin_small_fluid_pipe)item(gtceu:potin_normal_fluid_pipe)item(gtceu:potin_large_fluid_pipe)item(gtceu:potin_huge_fluid_pipe)item(gtceu:potin_huge_fluid_pipe)item(gtceu:potin_quadruple_fluid_pipe)item(gtceu:potin_nonuple_fluid_pipe))" + } + } + title: "Any Potin Pipe" + type: "item" + }] + title: "{quests.steam_age.potin.title}" + x: -5.5d + y: 12.5d + } + { + dependencies: ["6F1BC99BE641B671"] + description: ["{quests.steam_age.create_tools.desc}"] + id: "2F81902C6B1D4902" + subtitle: "{quests.steam_age.create_tools.subtitle}" + tasks: [ + { + id: "12C909F6EB4BB615" + item: "create:goggles" + optional_task: true + type: "item" + } + { + id: "7721793B4C0AFD2C" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "or(item(gtceu:copper_wrench)item(gtceu:bronze_wrench)item(gtceu:black_bronze_wrench)item(gtceu:bismuth_bronze_wrench)item(gtceu:wrought_iron_wrench)item(gtceu:steel_wrench)item(gtceu:cobalt_brass_wrench))" + } + } + type: "item" + } + ] + title: "{quests.steam_age.create_tools.title}" + x: -21.5d + y: -4.0d + } + { + dependencies: ["6AA07588374B59AB"] + description: ["{quests.steam_age.trains.desc}"] + hide_dependency_lines: false + id: "02854A3E8A5D5043" + optional: true + shape: "heart" + subtitle: "{quests.steam_age.trains.subtitle}" + tasks: [ + { + id: "7D63DDE72E9AC188" + item: "create:track_station" + type: "item" + } + { + id: "48F6ED366BE64A71" + item: "create:railway_casing" + type: "item" + } + { + id: "1BC698B7C0124CA0" + item: "create:controls" + type: "item" + } + ] + title: "{quests.steam_age.trains.title}" + x: -16.5d + y: 13.0d + } + { + dependencies: ["6AA07588374B59AB"] + description: ["{quests.steam_age.vacuum_chamber.desc}"] + id: "5F3063C539C9CBBF" + subtitle: "{quests.steam_age.vacuum_chamber.subtitle}" + tasks: [{ + id: "5BAA167FA59D5C32" + item: "vintageimprovements:vacuum_chamber" + type: "item" + }] + title: "{quests.steam_age.vacuum_chamber.title}" + x: -14.5d + y: 12.0d + } + { + description: ["{quests.metal_age.black_steel_goodies.desc}"] + id: "209958FE2EEA5D72" + shape: "gear" + size: 3.0d + subtitle: "{quests.metal_age.black_steel_goodies.subtitle}" + tasks: [{ + id: "066CDB0C97CF74EF" + item: { + Count: 1 + ForgeCaps: { + "tfc:item_heat": { + heat: 0.0f + ticks: 0L + } + } + id: "tfc:metal/anvil/black_steel" + } + type: "item" + }] + title: "{quests.metal_age.black_steel_goodies.title}" + x: -19.5d + y: 3.0d + } + { + dependencies: ["1059288C22CB56BB"] + dependency_requirement: "one_completed" + description: ["{quests.steam_age.poor_paths.desc}"] + id: "6356072A435EFE81" + optional: true + shape: "diamond" + subtitle: "{quests.steam_age.poor_paths.subtitle}" + tasks: [ + { + disable_toast: true + id: "4F3DE27E5A72D7BD" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(tfc:dirt)" + } + } + optional_task: true + title: "Any #tfc:dirt" + type: "item" + } + { + disable_toast: true + id: "2A6A80CC908180C5" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(tfc:grass)" + } + } + optional_task: true + title: "Any #tfc:grass" + type: "item" + } + { + id: "63E8E70536A0E327" + type: "checkmark" + } + ] + title: "{quests.steam_age.poor_paths.title}" + x: -25.0d + y: -3.5d + } + { + dependencies: ["1059288C22CB56BB"] + dependency_requirement: "one_completed" + description: ["{quests.steam_age.normal_paths.desc}"] + id: "494E81202B0F36A7" + optional: true + shape: "diamond" + subtitle: "{quests.steam_age.normal_paths.subtitle}" + tasks: [ + { + id: "0E4FF871FD6313B1" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(tfc:paths)" + } + } + optional_task: true + title: "Any #tfc:paths" + type: "item" + } + { + disable_toast: true + id: "5F38585D28010C6C" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(tfc:rock/gravel)" + } + } + optional_task: true + title: "Any #tfc:rock/gravel" + type: "item" + } + { + id: "2ED43D8943143635" + item: "rnr:hoggin" + optional_task: true + type: "item" + } + { + id: "4CBEBCFBCB80C624" + type: "checkmark" + } + ] + title: "{quests.steam_age.normal_paths.title}" + x: -25.5d + y: -2.0d + } + { + dependencies: [ + "1059288C22CB56BB" + "379F434116632A89" + ] + dependency_requirement: "one_completed" + description: ["{quests.steam_age.good_paths.desc}"] + id: "52A82511A64B0A5B" + optional: true + shape: "diamond" + subtitle: "{quests.steam_age.good_paths.subtitle}" + tasks: [ + { + id: "17BE9908916FD48D" + item: "rnr:rock/sett_road/granite" + optional_task: true + type: "item" + } + { + id: "276FE934DBA46B50" + item: "rnr:rock/cobbled_road/granite" + optional_task: true + type: "item" + } + { + id: "3ED818D7E317850A" + item: "rnr:rock/flagstones/granite" + optional_task: true + type: "item" + } + { + id: "781B70D87BB8051D" + item: "rnr:pink_sandstone_flagstones" + optional_task: true + type: "item" + } + { + id: "3A58D37BC4DA80A9" + item: "rnr:rock/gravel_road/granite" + optional_task: true + type: "item" + } + { + id: "11F7E8FFE4575FF8" + item: "rnr:rock/macadam_road/granite" + optional_task: true + type: "item" + } + { + id: "5782F5692D6AF00A" + type: "checkmark" + } + ] + title: "{quests.steam_age.good_paths.title}" + x: -25.0d + y: -0.5d + } + { + dependencies: [ + "69BDD31A69062B6C" + "43D0B4F2ACB9931B" + "6903C72A254A7B08" + "2C35D4E01AEC02AA" + ] + description: ["{quests.steam_age.lv_circuit.desc}"] + icon: "gtceu:basic_electronic_circuit" + id: "3D8174C64DDC268B" + shape: "gear" + size: 3.0d + subtitle: "{quests.steam_age.lv_circuit.subtitle}" + tasks: [{ + id: "59CF003A962651B0" + item: "gtceu:basic_electronic_circuit" + type: "item" + }] + title: "{quests.steam_age.lv_circuit.title}" + x: -10.0d + y: 6.0d + } + { + description: ["{quests.steam_age.paper.desc}"] + disable_toast: true + id: "16CF5A9012EF4B27" + shape: "diamond" + subtitle: "{quests.steam_age.paper.subtitle}" + tasks: [{ + id: "1567AABEC83A6346" + item: "minecraft:paper" + type: "item" + }] + title: "{quests.steam_age.paper.title}" + x: -5.5d + y: 9.5d + } + { + description: ["{quests.metal_age.bronze_goodies.desc}"] + disable_toast: true + id: "6F1BC99BE641B671" + shape: "octagon" + size: 2.0d + subtitle: "{quests.metal_age.bronze_goodies.subtitle}" + tasks: [{ + id: "5B891E7A5DB66813" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(tfc:bronze_anvils)" + } + } + title: "Any #tfc:bronze_anvils" + type: "item" + }] + title: "{quests.metal_age.bronze_goodies.title}" + x: -21.5d + y: -2.0d + } + { + description: ["{quests.metal_age.wrought_iron_goodies.desc}"] + id: "6E8CEE02CB5B678B" + shape: "octagon" + size: 2.0d + subtitle: "{quests.metal_age.wrought_iron_goodies.subtitle}" + tasks: [{ + id: "14980AA2D20804BA" + item: { + Count: 1 + ForgeCaps: { + "tfc:item_heat": { + heat: 0.0f + ticks: 0L + } + } + id: "tfc:metal/anvil/wrought_iron" + } + type: "item" + }] + title: "{quests.metal_age.wrought_iron_goodies.title}" + x: -12.0d + y: -2.0d + } + { + description: ["{quests.metal_age.steel_goodies.desc}"] + id: "32046292AA5B0E30" + shape: "octagon" + size: 2.0d + subtitle: "{quests.metal_age.steel_goodies.subtitle}" + tasks: [{ + id: "6D4629A2C1063653" + item: { + Count: 1 + ForgeCaps: { + "tfc:item_heat": { + heat: 0.0f + ticks: 0L + } + } + id: "tfc:metal/anvil/steel" + } + type: "item" + }] + title: "{quests.metal_age.steel_goodies.title}" + x: -5.5d + y: 0.0d + } + { + dependencies: [ + "46FA9DD4755A5548" + "6100B3C732E379AA" + ] + description: ["{quests.steam_age.steam_macerator.desc}"] + id: "6CF7DCC996BACBFA" + optional: true + subtitle: "{quests.steam_age.steam_macerator.subtitle}" + tasks: [{ + id: "19146D7510558652" + item: "gtceu:hp_steam_macerator" + type: "item" + }] + title: "{quests.steam_age.steam_macerator.title}" + x: -22.5d + y: 6.0d + } + { + dependencies: [ + "6CF7DCC996BACBFA" + "5E4FC017E09ACF44" + ] + dependency_requirement: "one_completed" + description: ["{quests.steam_age.steam_grinder.desc}"] + id: "0CC370A6FC56935B" + optional: true + shape: "heart" + subtitle: "{quests.steam_age.steam_grinder.subtitle}" + tasks: [{ + id: "1CD61C4F273665DE" + item: "gtceu:steam_grinder" + type: "item" + }] + title: "{quests.steam_age.steam_grinder.title}" + x: -25.0d + y: 6.0d + } + { + dependencies: ["32046292AA5B0E30"] + description: ["{quests.steam_age.rotation_speed_controller.desc}"] + id: "414835BADD34513F" + optional: true + subtitle: "{quests.steam_age.rotation_speed_controller.subtitle}" + tasks: [{ + id: "74770DF964D26059" + item: "create:rotation_speed_controller" + type: "item" + }] + title: "{quests.steam_age.rotation_speed_controller.title}" + x: -7.5d + y: 0.0d + } + { + dependencies: [ + "6FFD4990FF07078A" + "3E175E20C91F168B" + ] + description: ["{quests.steam_age.resin_boards.desc}"] + id: "05BE9FE74E4F1AE9" + subtitle: "{quests.steam_age.resin_boards.subtitle}" + tasks: [{ + id: "1367C83F3529D5EA" + item: "gtceu:resin_circuit_board" + type: "item" + }] + title: "{quests.steam_age.resin_boards.title}" + x: -13.5d + y: 9.5d + } + { + dependencies: ["6E8CEE02CB5B678B"] + description: [ + "{quests.metal_age.coke_oven.desc.1}" + "{@pagebreak}" + "{quests.metal_age.coke_oven.desc.2}" + "{@pagebreak}" + "" + "{image:tfg:textures/quests/auto_coke.png width:100 height:100 align:center}" + ] + id: "0D0D461AE3A3F7BF" + size: 1.5d + subtitle: "{quests.metal_age.coke_oven.subtitle}" + tasks: [ + { + id: "1D22CEA76A676434" + item: "gtceu:coke_oven" + type: "item" + } + { + id: "7C2595BA70CBB39E" + item: "gtceu:coke_oven_bricks" + type: "item" + } + { + id: "11981B2183C67CE0" + item: "gtceu:coke_oven_hatch" + type: "item" + } + ] + title: "{quests.metal_age.coke_oven.title}" + x: -14.5d + y: -2.0d + } + { + dependencies: ["033E74BC588E7EAD"] + description: ["{quests.steam_age.packager.desc}"] + icon: "create:package_frogport" + id: "509E85016A2B199C" + shape: "gear" + size: 2.0d + subtitle: "{quests.steam_age.packager.subtitle}" + tasks: [{ + id: "4319E4113F8EBB13" + type: "checkmark" + }] + title: "{quests.steam_age.packager.title}" + x: -19.5d + y: 17.0d + } + { + dependencies: [ + "7B045998769930F0" + "55FDF06AC0C01D0B" + ] + description: ["{quests.steam_age.basic_mech_press.desc}"] + id: "14710C5B4981CECC" + optional: true + shape: "heart" + subtitle: "{quests.steam_age.basic_mech_press.subtitle}" + tasks: [{ + id: "2F89D6D6745465DC" + item: "greate:andesite_alloy_mechanical_press" + type: "item" + }] + title: "{quests.steam_age.basic_mech_press.title}" + x: -17.5d + y: -2.0d + } + { + dependencies: [ + "09D913288896A67A" + "05A39719B66B8F76" + ] + description: [ + "{quests.steam_age.steel_mech_press.desc.1}" + "{@pagebreak}" + "{quests.steam_age.steel_mech_press.desc.2}" + ] + id: "0D39D83AA5F9D543" + optional: true + shape: "heart" + subtitle: "{quests.steam_age.steel_mech_press.subtitle}" + tasks: [{ + id: "32E30B6AC780CAF1" + item: "greate:steel_mechanical_press" + type: "item" + }] + title: "{quests.steam_age.steel_mech_press.title}" + x: -7.5d + y: 4.0d + } + { + dependencies: ["183D47F04CAEBFA7"] + description: ["{quests.steam_age.fuel_sources.desc}"] + icon: "createdeco:decal_fire" + id: "753A53733C6DFA04" + shape: "circle" + subtitle: "{quests.steam_age.fuel_sources.subtitle}" + tasks: [{ + id: "38A3F9A1D2F11EE3" + type: "checkmark" + }] + title: "{quests.steam_age.fuel_sources.title}" + x: -7.5d + y: -2.0d + } + { + dependencies: ["32046292AA5B0E30"] + description: ["{quests.steam_age.large_water_wheel.desc}"] + id: "56A068A5488CB273" + subtitle: "{quests.steam_age.large_water_wheel.subtitle}" + tasks: [{ + id: "5772AD3BB700FD84" + item: "create:large_water_wheel" + type: "item" + }] + title: "{quests.steam_age.large_water_wheel.title}" + x: -3.5d + y: -2.0d + } + { + dependencies: ["2C35D4E01AEC02AA"] + description: ["{quests.steam_age.supers.desc}"] + icon: "gtceu:ulv_super_chest" + id: "671405A9F3A8DFDB" + optional: true + shape: "heart" + subtitle: "{quests.steam_age.supers.subtitle}" + tasks: [{ + id: "5F5A6967B674C05A" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "or(item(gtceu:ulv_super_chest)item(gtceu:lv_super_chest)item(gtceu:mv_super_chest)item(gtceu:hv_super_chest)item(gtceu:ev_super_chest)item(gtceu:iv_quantum_chest)item(gtceu:luv_quantum_chest)item(gtceu:zpm_quantum_chest)item(gtceu:uv_quantum_chest)item(gtceu:uhv_quantum_chest)item(gtceu:ulv_super_tank)item(gtceu:lv_super_tank)item(gtceu:mv_super_tank)item(gtceu:hv_super_tank)item(gtceu:ev_super_tank)item(gtceu:iv_quantum_tank)item(gtceu:luv_quantum_tank)item(gtceu:zpm_quantum_tank)item(gtceu:uv_quantum_tank)item(gtceu:uhv_quantum_tank))" + } + } + title: "{quests.steam_age.supers.task}" + type: "item" + }] + title: "{quests.steam_age.supers.title}" + x: -12.0d + y: 13.0d + } + ] + subtitle: ["{quests.steam_age.subtitle}"] + title: "{quests.steam_age}" +} diff --git a/config/ftbquests/quests/chapters/questsstoneage.snbt b/config/ftbquests/quests/chapters/questsstoneage.snbt index a8ebfefce..9c7ebc5ef 100644 --- a/config/ftbquests/quests/chapters/questsstoneage.snbt +++ b/config/ftbquests/quests/chapters/questsstoneage.snbt @@ -8,15 +8,7 @@ images: [ { height: 1.0d - image: "tfc:item/grass_block_top" - rotation: 0.0d - width: 1.0d - x: -3.0d - y: 10.5d - } - { - height: 1.0d - image: "minecraft:block/blue_ice" + image: "ad_astra:textures/gui/sprites/snowflake.png" rotation: 0.0d width: 1.0d x: -6.0d @@ -24,36 +16,33 @@ } { height: 1.0d - image: "minecraft:block/lava_still" + image: "ad_astra:textures/gui/sprites/fire.png" rotation: 0.0d width: 1.0d x: 0.0d y: 10.5d } + { + height: 1.0d + image: "tfc:textures/gui/book/icons/thermometer.png" + rotation: 0.0d + width: 1.0d + x: -3.0d + y: 10.5d + } ] order_index: 0 - quest_links: [ - { - id: "409385C6F6640BEA" - linked_quest: "427814F6E9386772" - shape: "gear" - size: 4.0d - x: 0.0d - y: 0.0d - } - { - disable_toast: true - id: "40D0029A2097C68F" - linked_quest: "3D7B0F3134C30364" - shape: "octagon" - size: 3.0d - x: 4.5d - y: 0.0d - } - ] + quest_links: [{ + id: "409385C6F6640BEA" + linked_quest: "427814F6E9386772" + shape: "gear" + size: 4.0d + x: 4.0d + y: 0.0d + }] quests: [ { - dependencies: ["3D7B0F3134C30364"] + dependencies: ["427814F6E9386772"] description: [ "{quests.stone_age.find_rock.desc}" "{@pagebreak}" @@ -82,10 +71,11 @@ y: 0.0d } { - dependencies: ["3D7B0F3134C30364"] + dependencies: ["427814F6E9386772"] description: ["{quests.stone_age.find_potable_water.desc}"] icon: "createdeco:decal_fluid" id: "1D40CAE675C4BB91" + shape: "circle" size: 1.0d subtitle: "{quests.stone_age.find_potable_water.subtitle}" tasks: [{ @@ -96,7 +86,7 @@ type: "gamestage" }] title: "{quests.stone_age.find_potable_water.title}" - x: 4.5d + x: 4.0d y: 6.0d } { @@ -434,7 +424,7 @@ type: "item" }] title: "{quests.stone_age.water_jug.title}" - x: 7.0d + x: 6.5d y: 6.0d } { @@ -509,7 +499,7 @@ type: "item" }] title: "{quests.stone_age.leather_flask.title}" - x: 1.5d + x: 1.0d y: 6.0d } { @@ -540,7 +530,7 @@ type: "item" }] title: "{quests.stone_age.iron_flask.title}" - x: 2.5d + x: 2.0d y: 8.0d } { @@ -549,6 +539,7 @@ guide_page: "tfc:field_guide tfc:getting_started/pottery" hide_dependency_lines: true id: "021921B4D2044B3B" + shape: "diamond" subtitle: "{quests.stone_age.find_clay.subtitle}" tasks: [ { @@ -601,7 +592,6 @@ guide_page: "tfc:field_guide tfc:getting_started/finding_ores" hide_dependency_lines: true id: "669F84C6A2A64145" - shape: "diamond" subtitle: "{quests.stone_age.native_ores.subtitle}" tasks: [{ id: "0B70FD35D2C27E4C" @@ -1386,7 +1376,7 @@ guide_page: "tfc:field_guide tfc:mechanics/support_beams" icon: "createdeco:decal_warning" id: "618090A6D0D3B2F1" - shape: "diamond" + shape: "circle" size: 1.0d subtitle: "{quests.stone_age.hazards.subtitle}" tasks: [{ @@ -1399,7 +1389,7 @@ y: 10.5d } { - dependencies: ["3D7B0F3134C30364"] + dependencies: ["427814F6E9386772"] description: ["{quests.stone_age.foods.desc}"] id: "0FB8FD84B13F10C6" subtitle: "{quests.stone_age.foods.subtitle}" @@ -1416,7 +1406,7 @@ type: "item" }] title: "{quests.stone_age.foods.title}" - x: 4.5d + x: 4.0d y: -5.0d } { @@ -1495,6 +1485,7 @@ guide_page: "tfc:field_guide tfc:getting_started/food_and_water 5" icon: "minecraft:apple" id: "749B3C8698D34E91" + shape: "circle" size: 1.5d subtitle: "{quests.stone_age.nutrition.subtitle}" tasks: [{ @@ -1502,7 +1493,7 @@ type: "checkmark" }] title: "{quests.stone_age.nutrition.title}" - x: 3.0d + x: 2.5d y: -5.0d } { @@ -1666,7 +1657,7 @@ type: "item" }] title: "{quests.stone_age.leather.title}" - x: 1.5d + x: 1.0d y: 13.5d } { @@ -1688,28 +1679,37 @@ type: "checkmark" }] title: "{quests.stone_age.hydration.title}" - x: 6.0d + x: 5.5d y: 4.5d } { - dependencies: ["3D7B0F3134C30364"] + dependencies: ["427814F6E9386772"] description: ["{quests.stone_age.temperature.desc}"] icon: "minecraft:sunflower" id: "38839D3E049215CE" + shape: "circle" subtitle: "{quests.stone_age.temperature.subtitle}" tasks: [{ id: "5EF087A092F21202" type: "checkmark" }] title: "{quests.stone_age.temperature.title}" - x: 1.0d + x: 0.5d y: 3.0d } { dependencies: ["38839D3E049215CE"] description: ["{quests.stone_age.insulation.desc}"] + icon: { + Count: 1 + id: "tfcambiental:straw_hat" + tag: { + Damage: 0 + } + } id: "4521BB8892B386AF" - size: 2.0d + shape: "circle" + size: 1.5d subtitle: "{quests.stone_age.insulation.subtitle}" tasks: [{ id: "139FA72AB6F06E57" @@ -1834,7 +1834,7 @@ type: "item" }] title: "{quests.stone_age.glass_bottles.title}" - x: 6.5d + x: 6.0d y: 8.0d } { @@ -1848,7 +1848,7 @@ type: "checkmark" }] title: "{quests.stone_age.water_bucket.title}" - x: 4.5d + x: 4.0d y: 9.0d } { diff --git a/config/ftbquests/quests/chapters/space_survival.snbt b/config/ftbquests/quests/chapters/space_survival.snbt index 6732d30da..e5c942a16 100644 --- a/config/ftbquests/quests/chapters/space_survival.snbt +++ b/config/ftbquests/quests/chapters/space_survival.snbt @@ -822,6 +822,7 @@ ] dependency_requirement: "one_completed" description: ["{quests.space_survival.spice.desc}"] + icon: "tfg:spice" id: "0CA5B715B76E4A5B" shape: "hexagon" size: 1.5d @@ -1108,15 +1109,23 @@ Count: 1 ForgeCaps: { "tfc:food": { - creationDate: -9223372036854775808L + creationDate: -2L + foodData: { + dairy: 0.0f + decay: 0.0f + food: 0 + fruit: 0.0f + grain: 0.0f + meat: 0.0f + sat: 0.0f + veg: 0.0f + water: 0.0f + } + ingredients: [ ] traits: [ ] } - "tfc:item_heat": { - heat: 0.0f - ticks: 0L - } } - id: "betterend:cave_pumpkin_pie" + id: "tfg:food/cooked_dino_nugget" } id: "1AC201876984D248" optional: true diff --git a/config/ftbquests/quests/chapters/tips__tools.snbt b/config/ftbquests/quests/chapters/tips__tools.snbt index 47128819c..33f0a8573 100644 --- a/config/ftbquests/quests/chapters/tips__tools.snbt +++ b/config/ftbquests/quests/chapters/tips__tools.snbt @@ -84,7 +84,7 @@ { dependencies: [ "125563A12EE5C296" - "5792DDAA82895E67" + "56CA2EB7812529C5" ] description: ["{quests.tfg_tips.red_steel_backpack.desc}"] id: "4B79026C8D2DACC4" @@ -1170,6 +1170,7 @@ dependencies: ["037CDA933FBE2CBE"] description: ["{quests.tfg_tips.olive_oil.desc}"] id: "13FC17F88DFEB8A8" + optional: true size: 1.5d subtitle: "{quests.tfg_tips.olive_oil.subtitle}" tasks: [{ @@ -1231,9 +1232,13 @@ y: 12.0d } { - dependencies: ["037CDA933FBE2CBE"] + dependencies: [ + "037CDA933FBE2CBE" + "5B2696206205CB2E" + ] description: ["{quests.tfg_tips.glowstone_lamp.desc}"] id: "61F58B402F1AE40B" + optional: true shape: "heart" size: 2.0d subtitle: "{quests.tfg_tips.glowstone_lamp.subtitle}" @@ -1256,6 +1261,7 @@ dependencies: ["037CDA933FBE2CBE"] description: ["{quests.tfg_tips.tallow.desc}"] id: "54E6994D5CC693A7" + optional: true size: 1.15d subtitle: "{quests.tfg_tips.tallow.subtitle}" tasks: [{ @@ -1278,6 +1284,7 @@ dependencies: ["037CDA933FBE2CBE"] description: ["{quests.tfg_tips.creosote.desc}"] id: "72C1E430FF6D2DD8" + optional: true size: 1.0d subtitle: "{quests.tfg_tips.creosote.subtitle}" tasks: [{ @@ -1304,6 +1311,7 @@ description: ["{quests.tfg_tips.lava_lamp.desc}"] icon: "minecraft:lava_bucket" id: "4EBABACAB444244D" + optional: true shape: "square" size: 1.75d subtitle: "{quests.tfg_tips.lava_lamp.subtitle}" @@ -2447,6 +2455,7 @@ dependencies: ["037CDA933FBE2CBE"] description: ["{quests.tfg_tips.tools_tips.seed_oil.desc}"] id: "30B9137740247627" + optional: true size: 1.25d subtitle: "{quests.tfg_tips.tools_tips.seed_oil.subtitle}" tasks: [{ @@ -2469,6 +2478,7 @@ dependencies: ["037CDA933FBE2CBE"] description: ["{quests.tfg_tips.tools_tips.soybean_oil.desc}"] id: "6C0A087006DF8679" + optional: true size: 1.25d subtitle: "{quests.tfg_tips.tools_tips.soybean_oil.subtitle}" tasks: [{ @@ -2859,6 +2869,7 @@ { dependencies: ["15277C12EEB517E1"] description: ["{quests.tfg_tips.tools_tips.concrete_roads.desc}"] + disable_toast: true guide_page: "tfc:field_guide tfc:roadsandroofs/concrete_roads 0" id: "191DB28DC6FF4538" subtitle: "{quests.tfg_tips.tools_tips.concrete_roads.subtitle}" @@ -2874,6 +2885,7 @@ { dependencies: ["15277C12EEB517E1"] description: ["{quests.tfg_tips.tools_tips.brick_roads.desc}"] + disable_toast: true guide_page: "tfc:field_guide tfc:roadsandroofs/stone_roads 0" id: "345EB58B7064BF4A" subtitle: "{quests.tfg_tips.tools_tips.brick_roads.subtitle}" @@ -2896,6 +2908,7 @@ { dependencies: ["15277C12EEB517E1"] description: ["{quests.tfg_tips.tools_tips.gravel_roads.desc}"] + disable_toast: true id: "7E46F50FEBEE9003" subtitle: "{quests.tfg_tips.tools_tips.gravel_roads.subtitle}" tasks: [{ diff --git a/config/ftbquests/quests/chapters/tips__transportation.snbt b/config/ftbquests/quests/chapters/tips__transportation.snbt index 6457173bb..38762674d 100644 --- a/config/ftbquests/quests/chapters/tips__transportation.snbt +++ b/config/ftbquests/quests/chapters/tips__transportation.snbt @@ -1124,7 +1124,6 @@ { dependencies: ["7EE13BE102F323F3"] description: ["{quests.tfg_tips.reinforced_glider.desc}"] - hide_until_deps_complete: true id: "472D1C507490CC8A" optional: true shape: "heart" @@ -1463,19 +1462,6 @@ { dependencies: ["1594C2564FC7982D"] description: ["{quests.tfg_tips.horseshoes.desc}"] - icon: { - Count: 1 - ForgeCaps: { - "tfc:item_heat": { - heat: 0.0f - ticks: 0L - } - } - id: "sns:metal/horseshoes/steel" - tag: { - Damage: 0 - } - } id: "40566F6665A095C6" subtitle: "{quests.tfg_tips.horseshoes.subtitle}" tasks: [{ @@ -1515,7 +1501,11 @@ y: 0.5d } { - dependencies: ["05528D09F7EE6E33"] + dependencies: [ + "05528D09F7EE6E33" + "5917B0D4708BF534" + ] + dependency_requirement: "one_completed" description: ["{quests.tfg_tips.transportation_tips.rnr_plow.desc}"] guide_page: "tfc:field_guide tfc:roadsandroofs/paving_cart 0" id: "533F32CCAD9D5B51" diff --git a/config/ftbquests/quests/data.snbt b/config/ftbquests/quests/data.snbt index fa4943b41..dfec4b189 100644 --- a/config/ftbquests/quests/data.snbt +++ b/config/ftbquests/quests/data.snbt @@ -10,6 +10,7 @@ drop_loot_crates: false emergency_items_cooldown: 300 grid_scale: 0.5d + hide_excluded_quests: false icon: "tfg:terra_firma_greg" lock_message: "e" loot_crate_no_drop: { diff --git a/config/tfcambiental-client.toml b/config/tfcambiental-client.toml index 21c558cf8..cd82a3e24 100644 --- a/config/tfcambiental-client.toml +++ b/config/tfcambiental-client.toml @@ -19,4 +19,9 @@ seasonColorSpring = "3311CAD7" #How much to drip when wet. 0 to turn off #Range: 0 ~ 100 drippiness = 30 - +#For all ARGB values, set to 00000000 to disable the feature in that season +#Change temperature display to Fahrenheit. +useFahrenheit = false +#Offset the GUI elements. Useful if you're using a resourcep ack that changes the health or hunger bars +#Range: 0.0 ~ 3.4028234663852886E38 +guiOffset = 8.0 diff --git a/defaultconfigs/createhorsepower-server.toml b/defaultconfigs/createhorsepower-server.toml index 84f77de94..521d4e8b8 100644 --- a/defaultconfigs/createhorsepower-server.toml +++ b/defaultconfigs/createhorsepower-server.toml @@ -1,34 +1,34 @@ - -#General Settings -[general] - #Base rpm creatures can spin the horse crank. - #Range: > 1 - creatureRPMRange = 16 - #How much stress small creatures can produce for the horse crank. - #Range: > 1 - smallCreatureStressRange = 8 - #How much stress medium creatures can produce for the horse crank. - #Range: > 1 - mediumCreatureStressRange = 12 - #How much stress large creatures can produce for the horse crank. - #Range: > 1 - largeCreatureStressRange = 16 - -#Path Category -[paths] - #Types of blocks valid as "Poor" quality, - poor_path_block = ["tfc:rooted_dirt/sandy_loam", "tfc:clay/sandy_loam", "tfc:dirt/sandy_loam", "tfc:rooted_dirt/loam", "tfc:clay/loam", "tfc:clay/silt", "tfc:dirt/loam", "tfc:rooted_dirt/silt", "tfc:dirt/silt", "tfc:dirt/silty_loam", "tfc:clay/silty_loam", "tfc:rooted_dirt/silty_loam", "tfc:peat_grass", "tfc:clay_grass/silty_loam", "tfc:grass/silty_loam", "tfc:clay_grass/sandy_loam", "tfc:grass/sandy_loam", "tfc:clay_grass/loam", "tfc:grass/loam", "tfc:clay_grass/silt", "tfc:grass/silt", "tfg:grass/mars_dirt", "tfg:grass/sangnum_mycelium", "tfg:grass/amber_mycelium", "tfg:grass/rusticus_mycelium", "tfg:grass/sangnum_clay_mycelium", "tfg:grass/amber_clay_mycelium", "tfg:grass/rusticus_clay_mycelium", "tfg:grass/sangnum_kaolin_mycelium", "tfg:grass/amber_kaolin_mycelium", "tfg:grass/rusticus_kaolin_mycelium"] - #Types of blocks valid as "Normal" quality, - normal_path_block = ["tfc:rock/gravel/granite", "tfc:rock/gravel/diorite", "tfc:rock/gravel/gabbro", "tfc:rock/gravel/shale", "tfc:rock/gravel/claystone", "tfc:rock/gravel/limestone", "tfc:rock/gravel/conglomerate", "tfc:rock/gravel/dolomite", "tfc:rock/gravel/chert", "tfc:rock/gravel/schist", "tfc:rock/gravel/phyllite", "tfc:rock/gravel/slate", "tfc:rock/gravel/quartzite", "tfc:rock/gravel/dacite", "tfc:rock/gravel/andesite", "tfc:rock/gravel/basalt", "tfc:rock/gravel/rhyolite", "tfc:rock/gravel/chalk", "tfc:rock/gravel/marble", "tfg:rock/gravel_dripstone", "tfg:rock/gravel_deepslate", "tfg:rock/gravel_blackstone", "tfg:rock/gravel_moon", "tfg:rock/gravel_moon_deepslate", "tfg:rock/gravel_glacio", "tfg:rock/gravel_mars", "tfg:rock/gravel_venus", "tfg:rock/gravel_mercury", "tfg:rock/gravel_crackrack", "tfc:grass_path/silt", "tfc:grass_path/loam", "tfc:grass_path/sandy_loam", "tfc:grass_path/silty_loam", "tfg:grass/mars_path", "rnr:hoggin"] - #Types of blocks valid as "Great" quality, - great_path_block = ["rnr:rock/gravel_road/chert", "rnr:rock/gravel_road/chalk", "rnr:rock/gravel_road/rhyolite", "rnr:rock/gravel_road/basalt", "rnr:rock/gravel_road/andesite", "rnr:rock/gravel_road/claystone", "rnr:rock/gravel_road/limestone", "rnr:rock/gravel_road/conglomerate", "rnr:rock/gravel_road/dolomite", "rnr:rock/sett_road/granite", "rnr:rock/sett_road/diorite", "rnr:rock/sett_road/chalk", "rnr:rock/sett_road/rhyolite", "rnr:rock/sett_road/basalt", "rnr:rock/sett_road/quartzite", "rnr:rock/sett_road/dacite", "rnr:rock/sett_road/andesite", "rnr:rock/cobbled_road/chert", "rnr:rock/cobbled_road/dolomite", "rnr:rock/gravel_road/granite", "rnr:rock/gravel_road/marble", "rnr:rock/gravel_road/schist", "rnr:rock/gravel_road/phyllite", "rnr:rock/gravel_road/slate", "rnr:rock/gravel_road/quartzite", "rnr:rock/gravel_road/dacite", "rnr:rock/macadam_road/rhyolite", "rnr:rock/macadam_road/chalk", "rnr:rock/macadam_road/chert", "rnr:rock/macadam_road/dolomite", "rnr:rock/macadam_road/conglomerate", "rnr:rock/macadam_road/limestone", "rnr:rock/macadam_road/gabbro", "rnr:rock/macadam_road/claystone", "rnr:rock/macadam_road/shale", "rnr:rock/macadam_road/gneiss", "rnr:rock/macadam_road/marble", "rnr:rock/macadam_road/schist", "rnr:rock/macadam_road/phyllite", "rnr:rock/macadam_road/slate", "rnr:rock/macadam_road/quartzite", "rnr:rock/macadam_road/dacite", "rnr:rock/macadam_road/andesite", "rnr:rock/macadam_road/basalt", "rnr:rock/gravel_road/diorite", "rnr:rock/gravel_road/gabbro", "rnr:rock/gravel_road/shale", "rnr:rock/macadam_road/diorite", "rnr:rock/macadam_road/granite", "rnr:rock/cobbled_road/conglomerate", "rnr:rock/cobbled_road/limestone", "rnr:rock/cobbled_road/claystone", "rnr:rock/cobbled_road/shale", "rnr:rock/cobbled_road/gabbro", "rnr:rock/cobbled_road/diorite", "rnr:rock/cobbled_road/granite", "rnr:rock/cobbled_road/phyllite", "rnr:rock/cobbled_road/schist", "rnr:rock/cobbled_road/slate", "rnr:rock/cobbled_road/quartzite", "rnr:rock/cobbled_road/dacite", "rnr:rock/cobbled_road/andesite", "rnr:rock/cobbled_road/rhyolite", "rnr:rock/cobbled_road/basalt", "rnr:rock/cobbled_road/chalk", "rnr:rock/cobbled_road/gneiss", "rnr:rock/cobbled_road/marble", "rnr:rock/sett_road/chert", "rnr:rock/sett_road/dolomite", "rnr:rock/sett_road/conglomerate", "rnr:rock/sett_road/limestone", "rnr:rock/sett_road/claystone", "rnr:rock/sett_road/shale", "rnr:rock/sett_road/gabbro", "rnr:rock/flagstones/gneiss", "rnr:rock/flagstones/marble", "rnr:black_sandstone_flagstones", "rnr:brown_sandstone_flagstones", "rnr:green_sandstone_flagstones", "rnr:pink_sandstone_flagstones", "rnr:red_sandstone_flagstones", "rnr:white_sandstone_flagstones", "rnr:yellow_sandstone_flagstones", "rnr:concrete_road_sett", "rnr:brick_road", "rnr:rock/sett_road/marble", "rnr:rock/sett_road/gneiss", "rnr:rock/sett_road/schist", "rnr:rock/sett_road/phyllite", "rnr:rock/sett_road/slate", "rnr:rock/sett_road/quartzite", "rnr:rock/sett_road/dacite", "rnr:rock/flagstones/chert", "rnr:rock/flagstones/dolomite", "rnr:rock/flagstones/conglomerate", "rnr:rock/flagstones/limestone", "rnr:rock/flagstones/claystone", "rnr:rock/flagstones/shale", "rnr:rock/flagstones/gabbro", "rnr:rock/flagstones/diorite", "rnr:rock/flagstones/granite", "rnr:rock/flagstones/schist", "rnr:rock/flagstones/phyllite", "rnr:rock/flagstones/slate", "rnr:rock/flagstones/quartzite", "rnr:rock/flagstones/andesite", "rnr:rock/flagstones/dacite", "rnr:rock/flagstones/basalt", "rnr:rock/flagstones/rhyolite", "rnr:rock/flagstones/chalk"] - -#Creature Category -[workers] - #Valid "Small" creatures - small_creatures = ["tfc:wolf", "tfc:dog", "tfc:pig", "tfc:sheep", "tfc:goat", "tfc:alpaca", "tfg:glacian_ram", "tfg:wraptor", "species:springaling", "tfg:surfer"] - #Valid "Medium" creatures - medium_creatures = ["tfc:cow", "tfc:donkey", "tfc:dolphin", "wan_ancient_beasts:glider", "wan_ancient_beasts:soarer"] - #Valid "Large" creatures - large_creatures = ["tfc:horse", "tfc:mule", "tfc:musk_ox", "tfc:yak", "tfg:sniffer", "wan_ancient_beasts:walker", "species:cruncher"] +#Base rpm creatures can spin the horse crank. +#Range: > 1 +creatureRPMRange = 16 +#How much stress small creatures can produce for the horse crank. +#Range: > 1 +smallCreatureStressRange = 8 +#How much stress medium creatures can produce for the horse crank. +#Range: > 1 +mediumCreatureStressRange = 12 +#How much stress large creatures can produce for the horse crank. +#Range: > 1 +largeCreatureStressRange = 16 +#The multiplier for "Poor" paths +#Range: 0.0 ~ 1.7976931348623157E308 +poorMultiplier = 0.5 +#The multiplier for "Normal" paths +#Range: 0.0 ~ 1.7976931348623157E308 +normalMultiplier = 1.0 +#The multiplier for "Great" paths +#Range: 0.0 ~ 1.7976931348623157E308 +greatMultiplier = 2.0 +#Types of blocks valid as "Poor" quality +poorPathBlock = ["tfc:rooted_dirt/sandy_loam", "tfc:clay/sandy_loam", "tfc:dirt/sandy_loam", "tfc:rooted_dirt/loam", "tfc:clay/loam", "tfc:clay/silt", "tfc:dirt/loam", "tfc:rooted_dirt/silt", "tfc:dirt/silt", "tfc:dirt/silty_loam", "tfc:clay/silty_loam", "tfc:rooted_dirt/silty_loam", "tfc:peat_grass", "tfc:clay_grass/silty_loam", "tfc:grass/silty_loam", "tfc:clay_grass/sandy_loam", "tfc:grass/sandy_loam", "tfc:clay_grass/loam", "tfc:grass/loam", "tfc:clay_grass/silt", "tfc:grass/silt", "tfg:grass/mars_dirt", "tfg:grass/sangnum_mycelium", "tfg:grass/amber_mycelium", "tfg:grass/rusticus_mycelium", "tfg:grass/sangnum_clay_mycelium", "tfg:grass/amber_clay_mycelium", "tfg:grass/rusticus_clay_mycelium", "tfg:grass/sangnum_kaolin_mycelium", "tfg:grass/amber_kaolin_mycelium", "tfg:grass/rusticus_kaolin_mycelium"] +#Types of blocks valid as "Normal" quality +normalPathBlock = ["tfc:rock/gravel/granite", "tfc:rock/gravel/diorite", "tfc:rock/gravel/gabbro", "tfc:rock/gravel/shale", "tfc:rock/gravel/claystone", "tfc:rock/gravel/limestone", "tfc:rock/gravel/conglomerate", "tfc:rock/gravel/dolomite", "tfc:rock/gravel/chert", "tfc:rock/gravel/schist", "tfc:rock/gravel/phyllite", "tfc:rock/gravel/slate", "tfc:rock/gravel/quartzite", "tfc:rock/gravel/dacite", "tfc:rock/gravel/andesite", "tfc:rock/gravel/basalt", "tfc:rock/gravel/rhyolite", "tfc:rock/gravel/chalk", "tfc:rock/gravel/marble", "tfg:rock/gravel_dripstone", "tfg:rock/gravel_deepslate", "tfg:rock/gravel_blackstone", "tfg:rock/gravel_moon", "tfg:rock/gravel_moon_deepslate", "tfg:rock/gravel_glacio", "tfg:rock/gravel_mars", "tfg:rock/gravel_venus", "tfg:rock/gravel_mercury", "tfg:rock/gravel_crackrack", "tfc:grass_path/silt", "tfc:grass_path/loam", "tfc:grass_path/sandy_loam", "tfc:grass_path/silty_loam", "tfg:grass/mars_path", "rnr:hoggin"] +#Types of blocks valid as "Great" quality +greatPathBlock = ["rnr:rock/gravel_road/chert", "rnr:rock/gravel_road/chalk", "rnr:rock/gravel_road/rhyolite", "rnr:rock/gravel_road/basalt", "rnr:rock/gravel_road/andesite", "rnr:rock/gravel_road/claystone", "rnr:rock/gravel_road/limestone", "rnr:rock/gravel_road/conglomerate", "rnr:rock/gravel_road/dolomite", "rnr:rock/sett_road/granite", "rnr:rock/sett_road/diorite", "rnr:rock/sett_road/chalk", "rnr:rock/sett_road/rhyolite", "rnr:rock/sett_road/basalt", "rnr:rock/sett_road/quartzite", "rnr:rock/sett_road/dacite", "rnr:rock/sett_road/andesite", "rnr:rock/cobbled_road/chert", "rnr:rock/cobbled_road/dolomite", "rnr:rock/gravel_road/granite", "rnr:rock/gravel_road/marble", "rnr:rock/gravel_road/schist", "rnr:rock/gravel_road/phyllite", "rnr:rock/gravel_road/slate", "rnr:rock/gravel_road/quartzite", "rnr:rock/gravel_road/dacite", "rnr:rock/macadam_road/rhyolite", "rnr:rock/macadam_road/chalk", "rnr:rock/macadam_road/chert", "rnr:rock/macadam_road/dolomite", "rnr:rock/macadam_road/conglomerate", "rnr:rock/macadam_road/limestone", "rnr:rock/macadam_road/gabbro", "rnr:rock/macadam_road/claystone", "rnr:rock/macadam_road/shale", "rnr:rock/macadam_road/gneiss", "rnr:rock/macadam_road/marble", "rnr:rock/macadam_road/schist", "rnr:rock/macadam_road/phyllite", "rnr:rock/macadam_road/slate", "rnr:rock/macadam_road/quartzite", "rnr:rock/macadam_road/dacite", "rnr:rock/macadam_road/andesite", "rnr:rock/macadam_road/basalt", "rnr:rock/gravel_road/diorite", "rnr:rock/gravel_road/gabbro", "rnr:rock/gravel_road/shale", "rnr:rock/macadam_road/diorite", "rnr:rock/macadam_road/granite", "rnr:rock/cobbled_road/conglomerate", "rnr:rock/cobbled_road/limestone", "rnr:rock/cobbled_road/claystone", "rnr:rock/cobbled_road/shale", "rnr:rock/cobbled_road/gabbro", "rnr:rock/cobbled_road/diorite", "rnr:rock/cobbled_road/granite", "rnr:rock/cobbled_road/phyllite", "rnr:rock/cobbled_road/schist", "rnr:rock/cobbled_road/slate", "rnr:rock/cobbled_road/quartzite", "rnr:rock/cobbled_road/dacite", "rnr:rock/cobbled_road/andesite", "rnr:rock/cobbled_road/rhyolite", "rnr:rock/cobbled_road/basalt", "rnr:rock/cobbled_road/chalk", "rnr:rock/cobbled_road/gneiss", "rnr:rock/cobbled_road/marble", "rnr:rock/sett_road/chert", "rnr:rock/sett_road/dolomite", "rnr:rock/sett_road/conglomerate", "rnr:rock/sett_road/limestone", "rnr:rock/sett_road/claystone", "rnr:rock/sett_road/shale", "rnr:rock/sett_road/gabbro", "rnr:rock/flagstones/gneiss", "rnr:rock/flagstones/marble", "rnr:black_sandstone_flagstones", "rnr:brown_sandstone_flagstones", "rnr:green_sandstone_flagstones", "rnr:pink_sandstone_flagstones", "rnr:red_sandstone_flagstones", "rnr:white_sandstone_flagstones", "rnr:yellow_sandstone_flagstones", "rnr:concrete_road_sett", "rnr:brick_road", "rnr:rock/sett_road/marble", "rnr:rock/sett_road/gneiss", "rnr:rock/sett_road/schist", "rnr:rock/sett_road/phyllite", "rnr:rock/sett_road/slate", "rnr:rock/sett_road/quartzite", "rnr:rock/sett_road/dacite", "rnr:rock/flagstones/chert", "rnr:rock/flagstones/dolomite", "rnr:rock/flagstones/conglomerate", "rnr:rock/flagstones/limestone", "rnr:rock/flagstones/claystone", "rnr:rock/flagstones/shale", "rnr:rock/flagstones/gabbro", "rnr:rock/flagstones/diorite", "rnr:rock/flagstones/granite", "rnr:rock/flagstones/schist", "rnr:rock/flagstones/phyllite", "rnr:rock/flagstones/slate", "rnr:rock/flagstones/quartzite", "rnr:rock/flagstones/andesite", "rnr:rock/flagstones/dacite", "rnr:rock/flagstones/basalt", "rnr:rock/flagstones/rhyolite", "rnr:rock/flagstones/chalk", "greate:andesite_shaft", "greate:steel_shaft", "greate:andesite_cogwheel", "greate:steel_cogwheel", "greate:large_andesite_cogwheel", "greate:large_steel_cogwheel"] +#Valid "Small" creatures +smallCreatures = ["tfc:wolf", "tfc:dog", "tfc:pig", "tfc:sheep", "tfc:goat", "tfc:alpaca", "tfg:glacian_ram", "tfg:wraptor", "species:springaling", "tfg:surfer"] +#Valid "Medium" creatures +mediumCreatures = ["tfc:cow", "tfc:donkey", "tfc:dolphin", "wan_ancient_beasts:glider", "wan_ancient_beasts:soarer"] +#Valid "Large" creatures +largeCreatures = ["tfc:horse", "tfc:mule", "tfc:musk_ox", "tfc:yak", "tfg:sniffer", "wan_ancient_beasts:walker", "species:cruncher"] diff --git a/kubejs/assets/ad_astra/lang/ja_jp.json b/kubejs/assets/ad_astra/lang/ja_jp.json index b858835ca..154e7095d 100644 --- a/kubejs/assets/ad_astra/lang/ja_jp.json +++ b/kubejs/assets/ad_astra/lang/ja_jp.json @@ -112,14 +112,14 @@ "entity.ad_astra.corrupted_lunarian": "月面ゾンビ", "entity.ad_astra.martian_raptor": "スケルタルラプター", "entity.ad_astra.tier_1_rocket": "R-AS製ロケット", - "entity.ad_astra.tier_2_rocket": "ASM 4914 チタニウム製ロケット", + "entity.ad_astra.tier_2_rocket": "ASM-4914 チタニウム製ロケット", "entity.ad_astra.tier_3_rocket": "45-Ti タングステンスチール製ロケット", "entity.ad_astra.tier_1_rover": "探査車", "fluid_type.ad_astra.oxygen": "人工空気", "item.ad_astra.steel_cable": "基本型RFケーブル", "item.ad_astra.desh_cable": "発展型RFケーブル", "item.ad_astra.tier_1_rocket": "R-AS製ロケット", - "item.ad_astra.tier_2_rocket": "ASM 4914 チタニウム製ロケット", + "item.ad_astra.tier_2_rocket": "ASM-4914 チタニウム製ロケット", "item.ad_astra.tier_3_rocket": "45-Ti タングステンスチール製ロケット", "item.ad_astra.oxygen_bucket": "人工空気入りバケツ", "item.ad_astra.tier_1_rover": "探査車", @@ -145,7 +145,7 @@ "tagprefix.venus_stone": "%s鉱石(粗面岩)", "tagprefix.mercury_stone": "%s鉱石(コマチアイト)", "tagprefix.glacio_stone": "%s鉱石(響岩)", - "info.ad_astra.solar_panel": "Generates energy from the sun during the day. Note that the energy generated is dependent on the planet.", + "info.ad_astra.solar_panel": "日中に太陽光から発電します。発電量は惑星によって異なることに注意してください。", "tooltip.ad_astra.energy": "%s FE / %s FE", "tooltip.ad_astra.energy_generation_per_tick": "Generates %s FE per tick", "tooltip.ad_astra.energy_in": "In: %s FE/t", diff --git a/kubejs/assets/ae2/lang/ru_ru.json b/kubejs/assets/ae2/lang/ru_ru.json index 21c8b4547..2014cb8d5 100644 --- a/kubejs/assets/ae2/lang/ru_ru.json +++ b/kubejs/assets/ae2/lang/ru_ru.json @@ -2,5 +2,11 @@ "__COMMENT__": "This file was auto generated by the LanguageMerger, read the file \".README IF TRANSLATING\" found in \"minecraft/kubejs\" for more information.", "gui.ae2.inWorldCraftingPresses": "Crafting Presses are obtained by breaking a Mysterious Cube. Mysterious Cubes are in the center of meteorites which can be found on the moon.", "gui.advanced_ae.AdvPatternProvider": "", - "gui.expandedae.exp_pattern_provider": "" + "gui.expandedae.exp_pattern_provider": "", + "item.ae2.portable_item_cell_256k": "256К Переносная предметная ячейка", + "item.ae2.portable_fluid_cell_256k": "256К Переносная жидкостная ячейка", + "item.ae2.cell_component_256k": "256К МЭ компонент хранения", + "item.ae2.item_storage_cell_256k": "256К МЭ предметная ячейка хранения", + "item.ae2.fluid_storage_cell_256k": "256К МЭ жидкостная ячейка хранения", + "block.ae2.256k_crafting_storage": "Хранилище для изготовления на 256К" } \ No newline at end of file diff --git a/kubejs/assets/beneath/lang/zh_cn.json b/kubejs/assets/beneath/lang/zh_cn.json index 94c67e3f6..bc9cabffb 100644 --- a/kubejs/assets/beneath/lang/zh_cn.json +++ b/kubejs/assets/beneath/lang/zh_cn.json @@ -22,6 +22,248 @@ "block.beneath.wood.fallen_leaves.warped": "诡异瓣叶落叶", "block.beneath.wood.leaves.warped": "诡异瓣叶", "block.beneath.ancient_altar": "辉石岩基座", + "item.beneath.wood.lumber.crimson": "绯红木材", + "item.beneath.wood.sign.crimson": "绯红木告示牌", + "item.beneath.wood.boat.crimson": "绯红木船", + "block.beneath.wood.twig.crimson": "绯红树枝", + "item.beneath.wood.chest_minecart.crimson": "绯红木运输矿车", + "block.beneath.wood.potted_sapling.crimson": "绯红树幼苗盆栽", + "block.beneath.wood.planks.crimson": "绯红木板", + "block.beneath.wood.planks.crimson_tool_rack": "绯红木工具架", + "block.beneath.wood.planks.crimson_loom": "绯红木织机", + "block.beneath.wood.planks.crimson_bookshelf": "绯红木书架", + "block.beneath.wood.planks.crimson_workbench": "绯红木工作台", + "block.beneath.wood.vertical_support.crimson": "绯红木支撑梁", + "block.beneath.wood.horizontal_support.crimson": "绯红木支撑梁", + "item.beneath.wood.support.crimson": "绯红木支撑梁", + "block.beneath.wood.chest.crimson": "绯红木箱子", + "block.beneath.wood.trapped_chest.crimson": "绯红木陷阱箱", + "block.beneath.wood.sluice.crimson": "绯红木洗矿槽", + "block.beneath.wood.planks.crimson_sign": "绯红木告示牌", + "block.beneath.wood.planks.crimson_wall_sign": "绯红木告示牌", + "block.beneath.wood.planks.hanging_sign.bismuth_bronze.crimson": "铋青铜绯红木悬挂式告示牌", + "block.beneath.wood.planks.wall_hanging_sign.bismuth_bronze.crimson": "墙上的铋青铜绯红木悬挂式告示牌", + "block.beneath.wood.planks.hanging_sign.black_bronze.crimson": "黑青铜绯红木悬挂式告示牌", + "block.beneath.wood.planks.wall_hanging_sign.black_bronze.crimson": "墙上的黑青铜绯红木悬挂式告示牌", + "block.beneath.wood.planks.hanging_sign.bronze.crimson": "青铜绯红木悬挂式告示牌", + "block.beneath.wood.planks.wall_hanging_sign.bronze.crimson": "墙上的青铜绯红木悬挂式告示牌", + "block.beneath.wood.planks.hanging_sign.copper.crimson": "铜绯红木悬挂式告示牌", + "block.beneath.wood.planks.wall_hanging_sign.copper.crimson": "墙上的铜绯红木悬挂式告示牌", + "block.beneath.wood.planks.hanging_sign.wrought_iron.crimson": "锻铁绯红木悬挂式告示牌", + "block.beneath.wood.planks.wall_hanging_sign.wrought_iron.crimson": "墙上的锻铁绯红木悬挂式告示牌", + "block.beneath.wood.planks.hanging_sign.steel.crimson": "钢绯红木悬挂式告示牌", + "block.beneath.wood.planks.wall_hanging_sign.steel.crimson": "墙上的钢绯红木悬挂式告示牌", + "block.beneath.wood.planks.hanging_sign.black_steel.crimson": "黑钢绯红木悬挂式告示牌", + "block.beneath.wood.planks.wall_hanging_sign.black_steel.crimson": "墙上的黑钢绯红木悬挂式告示牌", + "block.beneath.wood.planks.hanging_sign.blue_steel.crimson": "蓝钢绯红木悬挂式告示牌", + "block.beneath.wood.planks.wall_hanging_sign.blue_steel.crimson": "墙上的蓝钢绯红木悬挂式告示牌", + "block.beneath.wood.planks.hanging_sign.red_steel.crimson": "红钢绯红木悬挂式告示牌", + "block.beneath.wood.planks.wall_hanging_sign.red_steel.crimson": "墙上的红钢绯红木悬挂式告示牌", + "item.beneath.wood.hanging_sign.bismuth_bronze.crimson": "铋青铜绯红木悬挂式告示牌", + "item.beneath.wood.hanging_sign.black_bronze.crimson": "黑青铜绯红木悬挂式告示牌", + "item.beneath.wood.hanging_sign.bronze.crimson": "青铜绯红木悬挂式告示牌", + "item.beneath.wood.hanging_sign.copper.crimson": "铜绯红木悬挂式告示牌", + "item.beneath.wood.hanging_sign.wrought_iron.crimson": "锻铁绯红木悬挂式告示牌", + "item.beneath.wood.hanging_sign.steel.crimson": "钢绯红木悬挂式告示牌", + "item.beneath.wood.hanging_sign.black_steel.crimson": "黑钢绯红木悬挂式告示牌", + "item.beneath.wood.hanging_sign.blue_steel.crimson": "蓝钢绯红木悬挂式告示牌", + "item.beneath.wood.hanging_sign.red_steel.crimson": "红钢绯红木悬挂式告示牌", + "block.beneath.wood.barrel.crimson": "绯红木大桶", + "block.beneath.wood.lectern.crimson": "绯红木讲台", + "block.beneath.wood.scribing_table.crimson": "绯红木书写桌", + "block.beneath.wood.sewing_table.crimson": "绯红木缝纫桌", + "block.beneath.wood.jar_shelf.crimson": "绯红木橱柜", + "block.beneath.wood.axle.crimson": "绯红木传动轴", + "block.beneath.wood.bladed_axle.crimson": "绯红木叶片传动轴", + "block.beneath.wood.encased_axle.crimson": "绯红木封闭传动轴", + "block.beneath.wood.clutch.crimson": "绯红木离合器", + "block.beneath.wood.gear_box.crimson": "绯红木齿轮箱", + "block.beneath.wood.windmill.crimson": "绯红木风车", + "block.beneath.wood.water_wheel.crimson": "绯红木水车", + "block.beneath.wood.planks.crimson_door": "绯红木门", + "block.beneath.wood.planks.crimson_trapdoor": "绯红木活板门", + "block.beneath.wood.planks.crimson_fence": "绯红木栅栏", + "block.beneath.wood.planks.crimson_log_fence": "绯红木原木栅栏", + "block.beneath.wood.planks.crimson_fence_gate": "绯红木栅栏门", + "block.beneath.wood.planks.crimson_button": "绯红木按钮", + "block.beneath.wood.planks.crimson_pressure_plate": "绯红木压力板", + "block.beneath.wood.planks.crimson_slab": "绯红木台阶", + "block.beneath.wood.planks.crimson_stairs": "绯红木楼梯", + "block.beneath.wood.sapling.crimson": "绯红树苗", + "item.beneath.wood.lumber.warped": "诡异木材", + "item.beneath.wood.sign.warped": "诡异木告示牌", + "item.beneath.wood.boat.warped": "诡异木船", + "block.beneath.wood.twig.warped": "诡异树枝", + "item.beneath.wood.chest_minecart.warped": "诡异木运输矿车", + "block.beneath.wood.potted_sapling.warped": "诡异树幼苗盆栽", + "block.beneath.wood.planks.warped": "诡异木板", + "block.beneath.wood.planks.warped_tool_rack": "诡异木工具架", + "block.beneath.wood.planks.warped_loom": "诡异木织机", + "block.beneath.wood.planks.warped_bookshelf": "诡异木书架", + "block.beneath.wood.planks.warped_workbench": "诡异木工作台", + "block.beneath.wood.vertical_support.warped": "诡异木支撑梁", + "block.beneath.wood.horizontal_support.warped": "诡异木支撑梁", + "item.beneath.wood.support.warped": "诡异木支撑梁", + "block.beneath.wood.chest.warped": "诡异木箱子", + "block.beneath.wood.trapped_chest.warped": "诡异木陷阱箱", + "block.beneath.wood.sluice.warped": "诡异木洗矿槽", + "block.beneath.wood.planks.warped_sign": "诡异木告示牌", + "block.beneath.wood.planks.warped_wall_sign": "诡异木告示牌", + "block.beneath.wood.planks.hanging_sign.bismuth_bronze.warped": "铋青铜诡异木悬挂式告示牌", + "block.beneath.wood.planks.wall_hanging_sign.bismuth_bronze.warped": "墙上的铋青铜诡异木悬挂式告示牌", + "block.beneath.wood.planks.hanging_sign.black_bronze.warped": "黑青铜诡异木悬挂式告示牌", + "block.beneath.wood.planks.wall_hanging_sign.black_bronze.warped": "墙上的黑青铜诡异木悬挂式告示牌", + "block.beneath.wood.planks.hanging_sign.bronze.warped": "青铜诡异木悬挂式告示牌", + "block.beneath.wood.planks.wall_hanging_sign.bronze.warped": "墙上的青铜诡异木悬挂式告示牌", + "block.beneath.wood.planks.hanging_sign.copper.warped": "铜诡异木悬挂式告示牌", + "block.beneath.wood.planks.wall_hanging_sign.copper.warped": "墙上的铜诡异木悬挂式告示牌", + "block.beneath.wood.planks.hanging_sign.wrought_iron.warped": "锻铁诡异木悬挂式告示牌", + "block.beneath.wood.planks.wall_hanging_sign.wrought_iron.warped": "墙上的锻铁诡异木悬挂式告示牌", + "block.beneath.wood.planks.hanging_sign.steel.warped": "钢诡异木悬挂式告示牌", + "block.beneath.wood.planks.wall_hanging_sign.steel.warped": "墙上的钢诡异木悬挂式告示牌", + "block.beneath.wood.planks.hanging_sign.black_steel.warped": "黑钢诡异木悬挂式告示牌", + "block.beneath.wood.planks.wall_hanging_sign.black_steel.warped": "墙上的黑钢诡异木悬挂式告示牌", + "block.beneath.wood.planks.hanging_sign.blue_steel.warped": "蓝钢诡异木悬挂式告示牌", + "block.beneath.wood.planks.wall_hanging_sign.blue_steel.warped": "墙上的蓝钢诡异木悬挂式告示牌", + "block.beneath.wood.planks.hanging_sign.red_steel.warped": "红钢诡异木悬挂式告示牌", + "block.beneath.wood.planks.wall_hanging_sign.red_steel.warped": "墙上的红钢诡异木悬挂式告示牌", + "item.beneath.wood.hanging_sign.bismuth_bronze.warped": "铋青铜诡异木悬挂式告示牌", + "item.beneath.wood.hanging_sign.black_bronze.warped": "黑青铜诡异木悬挂式告示牌", + "item.beneath.wood.hanging_sign.bronze.warped": "青铜诡异木悬挂式告示牌", + "item.beneath.wood.hanging_sign.copper.warped": "铜诡异木悬挂式告示牌", + "item.beneath.wood.hanging_sign.wrought_iron.warped": "锻铁诡异木悬挂式告示牌", + "item.beneath.wood.hanging_sign.steel.warped": "钢诡异木悬挂式告示牌", + "item.beneath.wood.hanging_sign.black_steel.warped": "黑钢诡异木悬挂式告示牌", + "item.beneath.wood.hanging_sign.blue_steel.warped": "蓝钢诡异木悬挂式告示牌", + "item.beneath.wood.hanging_sign.red_steel.warped": "红钢诡异木悬挂式告示牌", + "block.beneath.wood.barrel.warped": "诡异木大桶", + "block.beneath.wood.lectern.warped": "诡异木讲台", + "block.beneath.wood.scribing_table.warped": "诡异木书写桌", + "block.beneath.wood.sewing_table.warped": "诡异木缝纫桌", + "block.beneath.wood.jar_shelf.warped": "诡异木橱柜", + "block.beneath.wood.axle.warped": "诡异木传动轴", + "block.beneath.wood.bladed_axle.warped": "诡异木叶片传动轴", + "block.beneath.wood.encased_axle.warped": "诡异木封闭传动轴", + "block.beneath.wood.clutch.warped": "诡异木离合器", + "block.beneath.wood.gear_box.warped": "诡异木齿轮箱", + "block.beneath.wood.windmill.warped": "诡异木风车", + "block.beneath.wood.water_wheel.warped": "诡异木水车", + "block.beneath.wood.planks.warped_door": "诡异木门", + "block.beneath.wood.planks.warped_trapdoor": "诡异木活板门", + "block.beneath.wood.planks.warped_fence": "诡异木栅栏", + "block.beneath.wood.planks.warped_log_fence": "诡异木原木栅栏", + "block.beneath.wood.planks.warped_fence_gate": "诡异木栅栏门", + "block.beneath.wood.planks.warped_button": "诡异木按钮", + "block.beneath.wood.planks.warped_pressure_plate": "诡异木压力板", + "block.beneath.wood.planks.warped_slab": "诡异木台阶", + "block.beneath.wood.planks.warped_stairs": "诡异木楼梯", + "block.beneath.wood.sapling.warped": "诡异树苗", + "beneath.creative_tab.beneath": "幽冥之地道具", + "entity.beneath.leviathan_fireball": "烈焰海怪火球", + "entity.beneath.blaze_leviathan": "烈焰海怪", + "entity.beneath.red_elk": "红麋鹿", + "beneath.nutrient.decay": "腐化: §e%s%%", + "beneath.nutrient.death": "死亡: §7%s%%", + "beneath.nutrient.destruction": "毁灭: §6%s%%", + "beneath.nutrient.flame": "烈焰: §c%s%%", + "beneath.nutrient.sorrow": "悲伤: §9%s%%", + "beneath.block_entity.hellforge": "地狱熔炉", + "beneath.screen.juicer": "榨汁器", + "beneath.screen.juicer.mushrooms": "喂我一些蘑菇!", + "beneath.screen.lost_page": "失落书页", + "beneath.screen.lost_page.cost": "代价", + "beneath.screen.lost_page.reward": "奖励", + "beneath.screen.lost_page.punishment": "惩罚", + "beneath.lost_page.cobble": "任何圆石", + "beneath.punishment": "你受到了... %s的惩罚", + "beneath.enum.punishment.none": "没有任何惩罚!", + "beneath.enum.punishment.levitation": "飘浮!", + "beneath.enum.punishment.drunkenness": "酩酊大醉一整天!", + "beneath.enum.punishment.blaze_inferno": "烈焰人炼狱!", + "beneath.enum.punishment.infestation": "蠹虫侵扰!", + "beneath.enum.punishment.withering": "凋零!", + "beneath.enum.punishment.slime": "史莱姆!", + "beneath.enum.punishment.unknown": "§k未知", + "beneath.sacrifice.error": "献祭错误:未找到材料。", + "item.beneath.juicer.filled": "榨汁器 (%s)", + "death.attack.beneath.sulfur": "%1$s 使用铁制工具开采硫磺,把自己炸飞了。", + "death.attack.beneath.sulfur.player": "%1$s 在试图逃离 %2$s 时使用铁制工具开采硫磺,把自己炸飞了。", + "entity.beneath.boat.crimson": "绯红木船", + "entity.beneath.boat.warped": "诡异木船", + "entity.beneath.chest_boat.crimson": "绯红木运输船", + "entity.beneath.chest_boat.warped": "诡异木运输船", + "item.beneath.gold_chunk": "金块", + "item.beneath.pure_death": "纯净死亡", + "item.beneath.pure_decay": "纯净腐化", + "item.beneath.pure_destruction": "纯净毁灭", + "item.beneath.pure_sorrow": "纯净悲伤", + "item.beneath.pure_flame": "纯净烈焰", + "item.beneath.agonizing_fertilizer": "痛苦肥料", + "item.beneath.crimson_straw": "绯红干草", + "item.beneath.warped_straw": "诡异干草", + "item.beneath.ghost_pepper": "幽灵椒", + "item.beneath.juicer": "榨汁器", + "item.beneath.raw_slime": "生史莱姆", + "item.beneath.lost_page": "失落书页", + "item.beneath.spawn_egg.red_elk": "红麋鹿刷怪蛋", + "block.beneath.ore.poor_nether_gold": "贫瘠下界金矿石", + "block.beneath.ore.poor_nether_gold.prospected": "下界金", + "block.beneath.ore.normal_nether_gold": "普通下界金矿石", + "block.beneath.ore.normal_nether_gold.prospected": "下界金", + "block.beneath.ore.rich_nether_gold": "富集下界金矿石", + "block.beneath.ore.rich_nether_gold.prospected": "下界金", + "block.beneath.ore.nether_pyrite": "下界黄铁矿矿石", + "block.beneath.ore.nether_pyrite.prospected": "下界黄铁矿", + "block.beneath.ore.blackstone_sylvite.prospected": "黑石钾石盐", + "block.beneath.ore.slimed_netherrack": "史莱姆下界岩矿石", + "block.beneath.ore.slimed_netherrack.prospected": "史莱姆下界岩", + "block.minecraft.nether_quartz_ore.prospected": "下界石英", + "block.beneath.haunted_spike": "幽魂尖刺", + "block.beneath.glowstone_spike": "荧石尖刺", + "block.beneath.nether_pebble": "下界岩卵石", + "block.beneath.sulfur": "硫磺", + "block.beneath.crop.crimson_roots": "绯红菌索", + "item.beneath.seeds.crimson_roots": "绯红菌索种子", + "block.beneath.crop.ghost_pepper": "幽灵椒", + "item.beneath.seeds.ghost_pepper": "幽灵椒种子", + "block.beneath.crop.gleamflower": "莹光花", + "item.beneath.seeds.gleamflower": "莹光花种子", + "block.beneath.crop.nether_wart": "下界疣", + "item.beneath.seeds.nether_wart": "下界疣种子", + "block.beneath.crop.warped_roots": "诡异菌索", + "item.beneath.seeds.warped_roots": "诡异菌索种子", + "block.beneath.gleamflower": "莹光花", + "block.beneath.burpflower": "嗝嗝花", + "block.beneath.unposter": "蘑菇培育桶", + "block.beneath.hellforge": "地狱熔炉", + "block.beneath.hellforge_side": "地狱熔炉", + "block.beneath.soul_farmland": "灵魂耕地", + "block.beneath.mushroom.button": "按钮菇", + "item.beneath.food.button": "按钮菇", + "block.beneath.mushroom.chantrelle": "鸡油菌", + "item.beneath.food.chantrelle": "鸡油菌", + "block.beneath.mushroom.death_cap": "毒鹅膏", + "item.beneath.food.death_cap": "毒鹅膏", + "block.beneath.mushroom.destroying_angels": "毁灭天使菇", + "item.beneath.food.destroying_angels": "毁灭天使菇", + "block.beneath.mushroom.fools_funnel": "愚者漏斗菇", + "item.beneath.food.fools_funnel": "愚者漏斗菇", + "block.beneath.mushroom.oyster": "牡蛎菇", + "item.beneath.food.oyster": "牡蛎菇", + "block.beneath.mushroom.parasol": "伞菇", + "item.beneath.food.parasol": "伞菇", + "block.beneath.mushroom.portobello": "双孢蘑菇", + "item.beneath.food.portobello": "双孢蘑菇", + "block.beneath.mushroom.shittake": "香菇", + "item.beneath.food.shittake": "香菇", + "block.beneath.mushroom.sulfur_tuft": "硫磺簇菇", + "item.beneath.food.sulfur_tuft": "硫磺簇菇", + "block.beneath.cobblerack": "卵石岩", + "block.beneath.fungal_cobblerack": "菌丝卵石岩", + "block.beneath.warped_thatch": "诡异干草块", + "block.beneath.crimson_thatch": "绯红干草块", + "block.beneath.hellbricks": "地狱砖", + "tfc.recipe.barrel.tfc.barrel.mortar": "灰泥", "item.beneath.cursed_hide": "耐火皮革", "item.beneath.blackstone_brick": "辉石岩砖", "item.beneath.cursecoal": "无烟煤", diff --git a/kubejs/assets/create/lang/ja_jp.json b/kubejs/assets/create/lang/ja_jp.json index 65b8ba854..eb69abbfb 100644 --- a/kubejs/assets/create/lang/ja_jp.json +++ b/kubejs/assets/create/lang/ja_jp.json @@ -7,18 +7,18 @@ "block.create.weathered_iron_window": "錆びた鋼材の窓", "block.create.industrial_iron_window_pane": "鋼材の板窓", "block.create.weathered_iron_window_pane": "錆びた鋼材の板窓", - "block.create.dark_oak_window": "Hickory Window", - "block.create.dark_oak_window_pane": "Hickory Window Pane", - "block.create.cherry_window": "Fig Window", - "block.create.cherry_window_pane": "Fig Window Pane", - "block.create.spruce_window": "Cypress Window", - "block.create.spruce_window_pane": "Cypress Window Pane", - "block.create.jungle_window": "Teak Window", - "block.create.jungle_window_pane": "Teak Window Pane", - "block.create.birch_window": "Eucalyptus Window", - "block.create.birch_window_pane": "Eucalyptus Window Pane", - "block.create.acacia_window": "Baobab Window", - "block.create.acacia_window_pane": "Baobab Window Pane", + "block.create.dark_oak_window": "ヒッコリーの窓", + "block.create.dark_oak_window_pane": "ヒッコリーの板窓", + "block.create.cherry_window": "ガジュマルの窓", + "block.create.cherry_window_pane": "ガジュマルの板窓", + "block.create.spruce_window": "イトスギの窓", + "block.create.spruce_window_pane": "イトスギの板窓", + "block.create.jungle_window": "チークの窓", + "block.create.jungle_window_pane": "チークの板窓", + "block.create.birch_window": "ユーカリの窓", + "block.create.birch_window_pane": "ユーカリの板窓", + "block.create.acacia_window": "バオバブの窓", + "block.create.acacia_window_pane": "バオバブの板窓", "block.create.andesite_bars": "錫合金格子", "block.create.andesite_belt_funnel": "錬鉄ベルトファンネル", "block.create.andesite_casing": "錬鉄ケーシング", diff --git a/kubejs/assets/createdeco/lang/ja_jp.json b/kubejs/assets/createdeco/lang/ja_jp.json index 9891ebfd7..1dec76260 100644 --- a/kubejs/assets/createdeco/lang/ja_jp.json +++ b/kubejs/assets/createdeco/lang/ja_jp.json @@ -1,73 +1,73 @@ { "__COMMENT__": "This file was auto generated by the LanguageMerger, read the file \".README IF TRANSLATING\" found in \"minecraft/kubejs\" for more information.", - "block.createdeco.andesite_bars": "Tin Alloy Bars", - "block.createdeco.andesite_bars_overlay": "Tin Alloy Bars Overlay", - "block.createdeco.andesite_window": "Tin Alloy Window", - "block.createdeco.andesite_window_pane": "Tin Alloy Window Pane", - "block.createdeco.andesite_mesh_fence": "Tin Alloy Mesh Fence", - "block.createdeco.andesite_catwalk": "Tin Alloy Catwalk", - "block.createdeco.andesite_catwalk_stairs": "Tin Alloy Catwalk Stairs", - "block.createdeco.andesite_catwalk_railing": "Tin Alloy Catwalk Railing", - "block.createdeco.andesite_support_wedge": "Tin Alloy Support Wedge", - "block.createdeco.andesite_hull": "Tin Alloy Train Hull", - "block.createdeco.andesite_support": "Tin Alloy Support", - "block.createdeco.yellow_andesite_lamp": "Yellow Tin Alloy Cage Lamp", - "block.createdeco.red_andesite_lamp": "Red Tin Alloy Cage Lamp", - "block.createdeco.blue_andesite_lamp": "Blue Tin Alloy Cage Lamp", - "block.createdeco.green_andesite_lamp": "Green Tin Alloy Cage Lamp", - "block.createdeco.andesite_sheet_metal": "Tin Alloy Sheet Metal", - "block.createdeco.andesite_door": "Tin Alloy Door", - "block.createdeco.locked_andesite_door": "Locked Tin Alloy Door", - "block.createdeco.andesite_trapdoor": "Tin Alloy Trapdoor", - "block.createdeco.andesite_facade": "Tin Alloy Facade", - "block.createdeco.iron_bars": "Wrought Iron Bars", - "block.createdeco.iron_bars_overlay": "Wrought Iron Bars Overlay", - "block.createdeco.iron_window": "Wrought Iron Window", - "block.createdeco.iron_window_pane": "Wrought Iron Window Pane", - "block.createdeco.iron_mesh_fence": "Wrought Iron Mesh Fence", - "block.createdeco.iron_catwalk": "Wrought Iron Catwalk", - "block.createdeco.iron_catwalk_stairs": "Wrought Iron Catwalk Stairs", - "block.createdeco.iron_catwalk_railing": "Wrought Iron Catwalk Railing", - "block.createdeco.iron_support_wedge": "Wrought Iron Support Wedge", - "block.createdeco.iron_hull": "Wrought Iron Train Hull", - "block.createdeco.iron_support": "Wrought Iron Support", - "block.createdeco.yellow_iron_lamp": "Yellow Wrought Iron Cage Lamp", - "block.createdeco.red_iron_lamp": "Red Wrought Iron Cage Lamp", - "block.createdeco.blue_iron_lamp": "Blue Wrought Iron Cage Lamp", - "block.createdeco.green_iron_lamp": "Green Wrought Iron Cage Lamp", - "block.createdeco.iron_sheet_metal": "Wrought Iron Sheet Metal", - "block.createdeco.iron_door": "Wrought Iron Door", - "block.createdeco.locked_iron_door": "Locked Wrought Iron Door", - "block.createdeco.iron_trapdoor": "Wrought Iron Trapdoor", - "block.createdeco.iron_facade": "Wrought Iron Facade", - "block.createdeco.iron_coinstack": "Wrought Iron Coinstack", - "block.createdeco.netherite_coinstack": "Blue Steel Coinstack", - "block.createdeco.industrial_iron_coinstack": "Steel Coinstack", - "block.createdeco.industrial_iron_bars": "Steel Bars", - "block.createdeco.industrial_iron_bars_overlay": "Steel Bars Overlay", - "block.createdeco.industrial_iron_window": "Steel Window", - "block.createdeco.industrial_iron_window_pane": "Steel Window Pane", - "block.createdeco.industrial_iron_mesh_fence": "Steel Mesh Fence", - "block.createdeco.industrial_iron_catwalk": "Steel Catwalk", - "block.createdeco.industrial_iron_catwalk_stairs": "Steel Catwalk Stairs", - "block.createdeco.industrial_iron_catwalk_railing": "Steel Catwalk Railing", - "block.createdeco.industrial_iron_support_wedge": "Steel Support Wedge", - "block.createdeco.industrial_iron_hull": "Steel Train Hull", - "block.createdeco.industrial_iron_support": "Steel Support", - "block.createdeco.yellow_industrial_iron_lamp": "Yellow Steel Cage Lamp", - "block.createdeco.red_industrial_iron_lamp": "Red Steel Cage Lamp", - "block.createdeco.blue_industrial_iron_lamp": "Blue Steel Cage Lamp", - "block.createdeco.green_industrial_iron_lamp": "Green Steel Cage Lamp", - "block.createdeco.industrial_iron_sheet_metal": "Steel Sheet Metal", - "block.createdeco.industrial_iron_door": "Steel Door", - "block.createdeco.locked_industrial_iron_door": "Locked Steel Door", - "block.createdeco.industrial_iron_trapdoor": "Steel Trapdoor", - "block.createdeco.industrial_iron_ladder": "Steel Ladder", - "block.createdeco.industrial_iron_facade": "Steel Facade", - "item.createdeco.iron_coin": "Wrought Iron Coin", - "item.createdeco.netherite_coin": "Blue Steel Coin", - "item.createdeco.industrial_iron_coin": "Steel Coin", - "item.createdeco.iron_coinstack": "Wrought Iron Coinstack", - "item.createdeco.netherite_coinstack": "Blue Steel Coinstack", - "item.createdeco.industrial_iron_coinstack": "Steel Coinstack" + "block.createdeco.andesite_bars": "錫合金の格子", + "block.createdeco.andesite_bars_overlay": "錫合金の格子パネル", + "block.createdeco.andesite_window": "錫合金の窓", + "block.createdeco.andesite_window_pane": "錫合金の板窓", + "block.createdeco.andesite_mesh_fence": "錫合金のメッシュフェンス", + "block.createdeco.andesite_catwalk": "錫合金の通路", + "block.createdeco.andesite_catwalk_stairs": "錫合金の通路の階段", + "block.createdeco.andesite_catwalk_railing": "錫合金の通路の手すり", + "block.createdeco.andesite_support_wedge": "錫合金の金具", + "block.createdeco.andesite_hull": "錫合金のトレインハル", + "block.createdeco.andesite_support": "錫合金の支え", + "block.createdeco.yellow_andesite_lamp": "黄色の錫合金のケージランプ", + "block.createdeco.red_andesite_lamp": "赤色の錫合金のケージランプ", + "block.createdeco.blue_andesite_lamp": "青色の錫合金のケージランプ", + "block.createdeco.green_andesite_lamp": "緑色の錫合金のケージランプ", + "block.createdeco.andesite_sheet_metal": "錫合金の板金", + "block.createdeco.andesite_door": "錫合金のドア", + "block.createdeco.locked_andesite_door": "ロックした錫合金のドア", + "block.createdeco.andesite_trapdoor": "錫合金のトラップドア", + "block.createdeco.andesite_facade": "錫合金の外装", + "block.createdeco.iron_bars": "錬鉄の格子", + "block.createdeco.iron_bars_overlay": "錬鉄の格子パネル", + "block.createdeco.iron_window": "錬鉄の窓", + "block.createdeco.iron_window_pane": "錬鉄の板窓", + "block.createdeco.iron_mesh_fence": "錬鉄のメッシュフェンス", + "block.createdeco.iron_catwalk": "錬鉄の通路", + "block.createdeco.iron_catwalk_stairs": "錬鉄の通路の階段", + "block.createdeco.iron_catwalk_railing": "錬鉄の通路の手すり", + "block.createdeco.iron_support_wedge": "錬鉄の金具", + "block.createdeco.iron_hull": "錬鉄のトレインハル", + "block.createdeco.iron_support": "錬鉄の支え", + "block.createdeco.yellow_iron_lamp": "黄色の錬鉄のケージランプ", + "block.createdeco.red_iron_lamp": "赤色の錬鉄のケージランプ", + "block.createdeco.blue_iron_lamp": "青色の錬鉄のケージランプ", + "block.createdeco.green_iron_lamp": "緑色の錬鉄のケージランプ", + "block.createdeco.iron_sheet_metal": "錬鉄の板金", + "block.createdeco.iron_door": "錬鉄のドア", + "block.createdeco.locked_iron_door": "ロックした錬鉄のドア", + "block.createdeco.iron_trapdoor": "錬鉄のトラップドア", + "block.createdeco.iron_facade": "錬鉄の外装", + "block.createdeco.iron_coinstack": "錬鉄のコインの束", + "block.createdeco.netherite_coinstack": "青鋼のコインの束", + "block.createdeco.industrial_iron_coinstack": "鋼鉄のコインの束", + "block.createdeco.industrial_iron_bars": "鋼鉄の格子", + "block.createdeco.industrial_iron_bars_overlay": "鋼鉄のの格子パネル", + "block.createdeco.industrial_iron_window": "鋼鉄の窓", + "block.createdeco.industrial_iron_window_pane": "鋼鉄の板窓", + "block.createdeco.industrial_iron_mesh_fence": "鋼鉄のメッシュフェンス", + "block.createdeco.industrial_iron_catwalk": "鋼鉄の通路", + "block.createdeco.industrial_iron_catwalk_stairs": "鋼鉄の通路の階段", + "block.createdeco.industrial_iron_catwalk_railing": "鋼鉄の通路の手すり", + "block.createdeco.industrial_iron_support_wedge": "鋼鉄の金具", + "block.createdeco.industrial_iron_hull": "鋼鉄のトレインハル", + "block.createdeco.industrial_iron_support": "鋼鉄の支え", + "block.createdeco.yellow_industrial_iron_lamp": "黄色の鋼鉄のケージランプ", + "block.createdeco.red_industrial_iron_lamp": "赤色の鋼鉄のケージランプ", + "block.createdeco.blue_industrial_iron_lamp": "青色の鋼鉄のケージランプ", + "block.createdeco.green_industrial_iron_lamp": "緑色の鋼鉄のケージランプ", + "block.createdeco.industrial_iron_sheet_metal": "鋼鉄の板金", + "block.createdeco.industrial_iron_door": "鋼鉄のドア", + "block.createdeco.locked_industrial_iron_door": "ロックした鋼鉄のドア", + "block.createdeco.industrial_iron_trapdoor": "鋼鉄のトラップドア", + "block.createdeco.industrial_iron_ladder": "鋼鉄のはしご", + "block.createdeco.industrial_iron_facade": "鋼鉄の外装", + "item.createdeco.iron_coin": "錬鉄のコイン", + "item.createdeco.netherite_coin": "青鋼のコイン", + "item.createdeco.industrial_iron_coin": "鋼鉄のコイン", + "item.createdeco.iron_coinstack": "錬鉄のコインの束", + "item.createdeco.netherite_coinstack": "青鋼のコインの束", + "item.createdeco.industrial_iron_coinstack": "鋼鉄のコインの束" } \ No newline at end of file diff --git a/kubejs/assets/deafission/lang/ja_jp.json b/kubejs/assets/deafission/lang/ja_jp.json new file mode 100644 index 000000000..694662cbe --- /dev/null +++ b/kubejs/assets/deafission/lang/ja_jp.json @@ -0,0 +1,32 @@ +{ + "__COMMENT__": "This file was auto generated by the LanguageMerger, read the file \".README IF TRANSLATING\" found in \"minecraft/kubejs\" for more information.", + "block.deafission.fission_reactor_mk1": "核分裂炉MK I", + "block.deafission.fission_reactor_mk2": "核分裂炉MK II", + "block.deafission.fuel_holder": "燃料棒格納部", + "deafission.machine.fuel_holder.tooltip": "核分裂反応を安全に行うために、燃料棒を格納するブロックです。", + "block.deafission.material_holder": "マテリアルホルダー", + "deafission.machine.material_holder.tooltip": "熱や放射線を使う核分裂炉のレシピで使用するアイテムを入れるためのコンポーネントブロックです。", + "block.deafission.redstone_port": "レッドストーンポート", + "deafission.machine.redstone_port.tooltip": "レンチでモードを切り替えられます。", + "deafission.redstone_port.mode.heat": "熱", + "deafission.redstone_port.mode.fuels": "燃料", + "deafission.fission_reactor.gui.mode.default": "正常", + "deafission.fission_reactor.gui.mode.cooldown": "クールダウン", + "deafission.fission_reactor.gui.stats": "%s H %s Th %s Eff", + "deafission.fission_reactor.gui.recipe": "レシピ: %s", + "deafission.fission_reactor.gui.recipe_none": "レシピ: 空", + "deafission.fission_reactor.gui.coolant": "冷却材: %s mB/t", + "deafission.fission_reactor.gui.coolant_missing": "冷却材: %s (had %s%%)", + "deafission.fission_reactor.gui.fuel": "燃料: %s 損傷値", + "deafission.fission_reactor.gui.fuel_throttle": "燃料: %s 損傷値 @ %s%%", + "deafission.fission_reactor.gui.cooling": "冷却: %s HU/t", + "deafission.fission_reactor.gui.heating": "加熱: %s HU/t", + "deafission.fission_reactor.gui.processing": "処理: %s HU/t", + "deafission.fission_reactor.gui.mass": "質量: %s HU/°", + "deafission.fission_reactor.gui.heat": "熱量: %s / %s", + "item.deafission.fuelcell_plutonium_x1": "Plutonium Fuel Cell", + "item.deafission.fuelcell_thorium_x1": "Thorium Fuel Cell", + "item.deafission.fuelcell_uranium_x1": "Uranium Fuel Cell", + "material.deafission.flibe": "FLiBe Coolant", + "material.deafission.flibe_hot": "FLiBe Coolant(Hot)" +} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/ae2_condenser.json b/kubejs/assets/emi/category/properties/ae2_condenser.json index 5df4edbed..d93ff1dfd 100644 --- a/kubejs/assets/emi/category/properties/ae2_condenser.json +++ b/kubejs/assets/emi/category/properties/ae2_condenser.json @@ -1 +1 @@ -{"ae2:condenser":{"order":153}} \ No newline at end of file +{"ae2:condenser":{"order":156}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/ae2_p2p_attunement.json b/kubejs/assets/emi/category/properties/ae2_p2p_attunement.json index ab8290e0a..bd9501a4b 100644 --- a/kubejs/assets/emi/category/properties/ae2_p2p_attunement.json +++ b/kubejs/assets/emi/category/properties/ae2_p2p_attunement.json @@ -1 +1 @@ -{"ae2:p2p_attunement":{"order":167}} \ No newline at end of file +{"ae2:p2p_attunement":{"order":170}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/create_draining.json b/kubejs/assets/emi/category/properties/create_draining.json index 6c92a226d..383c4ec61 100644 --- a/kubejs/assets/emi/category/properties/create_draining.json +++ b/kubejs/assets/emi/category/properties/create_draining.json @@ -1 +1 @@ -{"create:draining":{"order":168}} \ No newline at end of file +{"create:draining":{"order":171}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/create_spout_filling.json b/kubejs/assets/emi/category/properties/create_spout_filling.json index af210aabf..782ccd548 100644 --- a/kubejs/assets/emi/category/properties/create_spout_filling.json +++ b/kubejs/assets/emi/category/properties/create_spout_filling.json @@ -1 +1 @@ -{"create:spout_filling":{"order":169}} \ No newline at end of file +{"create:spout_filling":{"order":172}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/createaddition_rolling.json b/kubejs/assets/emi/category/properties/createaddition_rolling.json index 97a7e68f7..3524eee33 100644 --- a/kubejs/assets/emi/category/properties/createaddition_rolling.json +++ b/kubejs/assets/emi/category/properties/createaddition_rolling.json @@ -1 +1 @@ -{"createaddition:rolling":{"order":80}} \ No newline at end of file +{"createaddition:rolling":{"order":81}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/deafission_component_fr.json b/kubejs/assets/emi/category/properties/deafission_component_fr.json new file mode 100644 index 000000000..23ab63472 --- /dev/null +++ b/kubejs/assets/emi/category/properties/deafission_component_fr.json @@ -0,0 +1 @@ +{"deafission:component_fr":{"order":71}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/diggerhelmet_helmet_repair.json b/kubejs/assets/emi/category/properties/diggerhelmet_helmet_repair.json index 0ab292e76..7715f2c79 100644 --- a/kubejs/assets/emi/category/properties/diggerhelmet_helmet_repair.json +++ b/kubejs/assets/emi/category/properties/diggerhelmet_helmet_repair.json @@ -1 +1 @@ -{"diggerhelmet:helmet_repair":{"order":162}} \ No newline at end of file +{"diggerhelmet:helmet_repair":{"order":165}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/domum_ornamentum_architects_cutter.json b/kubejs/assets/emi/category/properties/domum_ornamentum_architects_cutter.json index 30a086a71..b8c07b028 100644 --- a/kubejs/assets/emi/category/properties/domum_ornamentum_architects_cutter.json +++ b/kubejs/assets/emi/category/properties/domum_ornamentum_architects_cutter.json @@ -1 +1 @@ -{"domum_ornamentum:architects_cutter":{"order":166}} \ No newline at end of file +{"domum_ornamentum:architects_cutter":{"order":169}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/emi_info.json b/kubejs/assets/emi/category/properties/emi_info.json index 0510a85d0..0393e9cd7 100644 --- a/kubejs/assets/emi/category/properties/emi_info.json +++ b/kubejs/assets/emi/category/properties/emi_info.json @@ -1 +1 @@ -{"emi:info":{"order":174}} \ No newline at end of file +{"emi:info":{"order":177}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/emi_tag.json b/kubejs/assets/emi/category/properties/emi_tag.json index 273fa60ac..d51c31551 100644 --- a/kubejs/assets/emi/category/properties/emi_tag.json +++ b/kubejs/assets/emi/category/properties/emi_tag.json @@ -1 +1 @@ -{"emi:tag":{"order":175}} \ No newline at end of file +{"emi:tag":{"order":178}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/exposure_photograph_printing.json b/kubejs/assets/emi/category/properties/exposure_photograph_printing.json index 77156f055..707d2dbc2 100644 --- a/kubejs/assets/emi/category/properties/exposure_photograph_printing.json +++ b/kubejs/assets/emi/category/properties/exposure_photograph_printing.json @@ -1 +1 @@ -{"exposure:photograph_printing":{"order":161}} \ No newline at end of file +{"exposure:photograph_printing":{"order":164}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/exposure_photograph_stacking.json b/kubejs/assets/emi/category/properties/exposure_photograph_stacking.json index cb039cc1e..4659a3036 100644 --- a/kubejs/assets/emi/category/properties/exposure_photograph_stacking.json +++ b/kubejs/assets/emi/category/properties/exposure_photograph_stacking.json @@ -1 +1 @@ -{"exposure:photograph_stacking":{"order":170}} \ No newline at end of file +{"exposure:photograph_stacking":{"order":173}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/framedblocks_framing_saw.json b/kubejs/assets/emi/category/properties/framedblocks_framing_saw.json index 3859fedcb..a95aa8971 100644 --- a/kubejs/assets/emi/category/properties/framedblocks_framing_saw.json +++ b/kubejs/assets/emi/category/properties/framedblocks_framing_saw.json @@ -1 +1 @@ -{"framedblocks:framing_saw":{"order":165}} \ No newline at end of file +{"framedblocks:framing_saw":{"order":168}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/greate_automatic_packing.json b/kubejs/assets/emi/category/properties/greate_automatic_packing.json index 0019df577..4ed74f9cf 100644 --- a/kubejs/assets/emi/category/properties/greate_automatic_packing.json +++ b/kubejs/assets/emi/category/properties/greate_automatic_packing.json @@ -1 +1 @@ -{"greate:automatic_packing":{"order":159}} \ No newline at end of file +{"greate:automatic_packing":{"order":162}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/greate_automatic_shaped.json b/kubejs/assets/emi/category/properties/greate_automatic_shaped.json index ef6ec86c9..552776e1d 100644 --- a/kubejs/assets/emi/category/properties/greate_automatic_shaped.json +++ b/kubejs/assets/emi/category/properties/greate_automatic_shaped.json @@ -1 +1 @@ -{"greate:automatic_shaped":{"order":157}} \ No newline at end of file +{"greate:automatic_shaped":{"order":160}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/greate_automatic_shapeless.json b/kubejs/assets/emi/category/properties/greate_automatic_shapeless.json index 6f4fb3f60..76cb5fc0f 100644 --- a/kubejs/assets/emi/category/properties/greate_automatic_shapeless.json +++ b/kubejs/assets/emi/category/properties/greate_automatic_shapeless.json @@ -1 +1 @@ -{"greate:automatic_shapeless":{"order":158}} \ No newline at end of file +{"greate:automatic_shapeless":{"order":161}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/greate_block_cutting.json b/kubejs/assets/emi/category/properties/greate_block_cutting.json index 16d53180a..32291d555 100644 --- a/kubejs/assets/emi/category/properties/greate_block_cutting.json +++ b/kubejs/assets/emi/category/properties/greate_block_cutting.json @@ -1 +1 @@ -{"greate:block_cutting":{"order":164}} \ No newline at end of file +{"greate:block_cutting":{"order":167}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/greate_crushing.json b/kubejs/assets/emi/category/properties/greate_crushing.json index 26d59929d..3e8026cb5 100644 --- a/kubejs/assets/emi/category/properties/greate_crushing.json +++ b/kubejs/assets/emi/category/properties/greate_crushing.json @@ -1 +1 @@ -{"greate:crushing":{"order":118}} \ No newline at end of file +{"greate:crushing":{"order":119}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/greate_fan_washing.json b/kubejs/assets/emi/category/properties/greate_fan_washing.json index 0af2ce4ea..1215ae3dc 100644 --- a/kubejs/assets/emi/category/properties/greate_fan_washing.json +++ b/kubejs/assets/emi/category/properties/greate_fan_washing.json @@ -1 +1 @@ -{"greate:fan_washing":{"order":124}} \ No newline at end of file +{"greate:fan_washing":{"order":125}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/greate_milling.json b/kubejs/assets/emi/category/properties/greate_milling.json index 98bcadf2f..01f14ecb5 100644 --- a/kubejs/assets/emi/category/properties/greate_milling.json +++ b/kubejs/assets/emi/category/properties/greate_milling.json @@ -1 +1 @@ -{"greate:milling":{"order":117}} \ No newline at end of file +{"greate:milling":{"order":118}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/greate_mixing.json b/kubejs/assets/emi/category/properties/greate_mixing.json index befd5bfe1..67983151f 100644 --- a/kubejs/assets/emi/category/properties/greate_mixing.json +++ b/kubejs/assets/emi/category/properties/greate_mixing.json @@ -1 +1 @@ -{"greate:mixing":{"order":122}} \ No newline at end of file +{"greate:mixing":{"order":123}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/greate_pressing.json b/kubejs/assets/emi/category/properties/greate_pressing.json index ccd9f8670..915a21b25 100644 --- a/kubejs/assets/emi/category/properties/greate_pressing.json +++ b/kubejs/assets/emi/category/properties/greate_pressing.json @@ -1 +1 @@ -{"greate:pressing":{"order":107}} \ No newline at end of file +{"greate:pressing":{"order":108}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/greate_sawing.json b/kubejs/assets/emi/category/properties/greate_sawing.json index 7687b9ac1..b14496925 100644 --- a/kubejs/assets/emi/category/properties/greate_sawing.json +++ b/kubejs/assets/emi/category/properties/greate_sawing.json @@ -1 +1 @@ -{"greate:sawing":{"order":94}} \ No newline at end of file +{"greate:sawing":{"order":95}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_air_scrubber.json b/kubejs/assets/emi/category/properties/gtceu_air_scrubber.json index 1a58b9ce5..f41aab06a 100644 --- a/kubejs/assets/emi/category/properties/gtceu_air_scrubber.json +++ b/kubejs/assets/emi/category/properties/gtceu_air_scrubber.json @@ -1 +1 @@ -{"gtceu:air_scrubber":{"order":73}} \ No newline at end of file +{"gtceu:air_scrubber":{"order":74}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_alloy_blast_smelter.json b/kubejs/assets/emi/category/properties/gtceu_alloy_blast_smelter.json index 1e49a178d..f8fc50a7d 100644 --- a/kubejs/assets/emi/category/properties/gtceu_alloy_blast_smelter.json +++ b/kubejs/assets/emi/category/properties/gtceu_alloy_blast_smelter.json @@ -1 +1 @@ -{"gtceu:alloy_blast_smelter":{"order":134}} \ No newline at end of file +{"gtceu:alloy_blast_smelter":{"order":135}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_alloy_smelter.json b/kubejs/assets/emi/category/properties/gtceu_alloy_smelter.json index 65ee0f085..176573172 100644 --- a/kubejs/assets/emi/category/properties/gtceu_alloy_smelter.json +++ b/kubejs/assets/emi/category/properties/gtceu_alloy_smelter.json @@ -1 +1 @@ -{"gtceu:alloy_smelter":{"order":74}} \ No newline at end of file +{"gtceu:alloy_smelter":{"order":75}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_aqueous_accumulator.json b/kubejs/assets/emi/category/properties/gtceu_aqueous_accumulator.json index 6ab5d69fa..f14c7de77 100644 --- a/kubejs/assets/emi/category/properties/gtceu_aqueous_accumulator.json +++ b/kubejs/assets/emi/category/properties/gtceu_aqueous_accumulator.json @@ -1 +1 @@ -{"gtceu:aqueous_accumulator":{"order":76}} \ No newline at end of file +{"gtceu:aqueous_accumulator":{"order":77}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_arc_furnace.json b/kubejs/assets/emi/category/properties/gtceu_arc_furnace.json index 730bed18b..169b35cfb 100644 --- a/kubejs/assets/emi/category/properties/gtceu_arc_furnace.json +++ b/kubejs/assets/emi/category/properties/gtceu_arc_furnace.json @@ -1 +1 @@ -{"gtceu:arc_furnace":{"order":77}} \ No newline at end of file +{"gtceu:arc_furnace":{"order":78}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_arc_furnace_recycling.json b/kubejs/assets/emi/category/properties/gtceu_arc_furnace_recycling.json index adce2f210..7bd34d260 100644 --- a/kubejs/assets/emi/category/properties/gtceu_arc_furnace_recycling.json +++ b/kubejs/assets/emi/category/properties/gtceu_arc_furnace_recycling.json @@ -1 +1 @@ -{"gtceu:arc_furnace_recycling":{"order":154}} \ No newline at end of file +{"gtceu:arc_furnace_recycling":{"order":157}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_assembler.json b/kubejs/assets/emi/category/properties/gtceu_assembler.json index 0affbce12..e547ae894 100644 --- a/kubejs/assets/emi/category/properties/gtceu_assembler.json +++ b/kubejs/assets/emi/category/properties/gtceu_assembler.json @@ -1 +1 @@ -{"gtceu:assembler":{"order":78}} \ No newline at end of file +{"gtceu:assembler":{"order":79}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_assembly_line.json b/kubejs/assets/emi/category/properties/gtceu_assembly_line.json index 6efbfdccf..dbce179a4 100644 --- a/kubejs/assets/emi/category/properties/gtceu_assembly_line.json +++ b/kubejs/assets/emi/category/properties/gtceu_assembly_line.json @@ -1 +1 @@ -{"gtceu:assembly_line":{"order":135}} \ No newline at end of file +{"gtceu:assembly_line":{"order":136}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_autoclave.json b/kubejs/assets/emi/category/properties/gtceu_autoclave.json index a3c73e364..37a92f362 100644 --- a/kubejs/assets/emi/category/properties/gtceu_autoclave.json +++ b/kubejs/assets/emi/category/properties/gtceu_autoclave.json @@ -1 +1 @@ -{"gtceu:autoclave":{"order":79}} \ No newline at end of file +{"gtceu:autoclave":{"order":80}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_bender.json b/kubejs/assets/emi/category/properties/gtceu_bender.json index dff633620..ac1b79c9b 100644 --- a/kubejs/assets/emi/category/properties/gtceu_bender.json +++ b/kubejs/assets/emi/category/properties/gtceu_bender.json @@ -1 +1 @@ -{"gtceu:bender":{"order":82}} \ No newline at end of file +{"gtceu:bender":{"order":83}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_bioreactor.json b/kubejs/assets/emi/category/properties/gtceu_bioreactor.json new file mode 100644 index 000000000..df5863ec1 --- /dev/null +++ b/kubejs/assets/emi/category/properties/gtceu_bioreactor.json @@ -0,0 +1 @@ +{"gtceu:bioreactor":{"order":137}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_brewery.json b/kubejs/assets/emi/category/properties/gtceu_brewery.json index 392b008ef..8cc06a1e4 100644 --- a/kubejs/assets/emi/category/properties/gtceu_brewery.json +++ b/kubejs/assets/emi/category/properties/gtceu_brewery.json @@ -1 +1 @@ -{"gtceu:brewery":{"order":83}} \ No newline at end of file +{"gtceu:brewery":{"order":84}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_canner.json b/kubejs/assets/emi/category/properties/gtceu_canner.json index 379f56289..9ac566d07 100644 --- a/kubejs/assets/emi/category/properties/gtceu_canner.json +++ b/kubejs/assets/emi/category/properties/gtceu_canner.json @@ -1 +1 @@ -{"gtceu:canner":{"order":84}} \ No newline at end of file +{"gtceu:canner":{"order":85}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_centrifuge.json b/kubejs/assets/emi/category/properties/gtceu_centrifuge.json index 667b6b9ce..849e253b1 100644 --- a/kubejs/assets/emi/category/properties/gtceu_centrifuge.json +++ b/kubejs/assets/emi/category/properties/gtceu_centrifuge.json @@ -1 +1 @@ -{"gtceu:centrifuge":{"order":86}} \ No newline at end of file +{"gtceu:centrifuge":{"order":87}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_chem_dyes.json b/kubejs/assets/emi/category/properties/gtceu_chem_dyes.json index d99d72732..0ac44f86d 100644 --- a/kubejs/assets/emi/category/properties/gtceu_chem_dyes.json +++ b/kubejs/assets/emi/category/properties/gtceu_chem_dyes.json @@ -1 +1 @@ -{"gtceu:chem_dyes":{"order":88}} \ No newline at end of file +{"gtceu:chem_dyes":{"order":89}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_chemical_bath.json b/kubejs/assets/emi/category/properties/gtceu_chemical_bath.json index aaa187737..14bbcd091 100644 --- a/kubejs/assets/emi/category/properties/gtceu_chemical_bath.json +++ b/kubejs/assets/emi/category/properties/gtceu_chemical_bath.json @@ -1 +1 @@ -{"gtceu:chemical_bath":{"order":87}} \ No newline at end of file +{"gtceu:chemical_bath":{"order":88}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_chemical_reactor.json b/kubejs/assets/emi/category/properties/gtceu_chemical_reactor.json index f25393d78..0b579ef62 100644 --- a/kubejs/assets/emi/category/properties/gtceu_chemical_reactor.json +++ b/kubejs/assets/emi/category/properties/gtceu_chemical_reactor.json @@ -1 +1 @@ -{"gtceu:chemical_reactor":{"order":90}} \ No newline at end of file +{"gtceu:chemical_reactor":{"order":91}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_circuit_assembler.json b/kubejs/assets/emi/category/properties/gtceu_circuit_assembler.json index 9927cc9aa..3c50acf2a 100644 --- a/kubejs/assets/emi/category/properties/gtceu_circuit_assembler.json +++ b/kubejs/assets/emi/category/properties/gtceu_circuit_assembler.json @@ -1 +1 @@ -{"gtceu:circuit_assembler":{"order":92}} \ No newline at end of file +{"gtceu:circuit_assembler":{"order":93}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_coal_liquefaction_tower.json b/kubejs/assets/emi/category/properties/gtceu_coal_liquefaction_tower.json new file mode 100644 index 000000000..7c3d1662f --- /dev/null +++ b/kubejs/assets/emi/category/properties/gtceu_coal_liquefaction_tower.json @@ -0,0 +1 @@ +{"gtceu:coal_liquefaction_tower":{"order":138}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_compressor.json b/kubejs/assets/emi/category/properties/gtceu_compressor.json index 5ebf706f8..b4608cf12 100644 --- a/kubejs/assets/emi/category/properties/gtceu_compressor.json +++ b/kubejs/assets/emi/category/properties/gtceu_compressor.json @@ -1 +1 @@ -{"gtceu:compressor":{"order":93}} \ No newline at end of file +{"gtceu:compressor":{"order":94}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_cracker.json b/kubejs/assets/emi/category/properties/gtceu_cracker.json index 5f8c600b7..f2f6ef99b 100644 --- a/kubejs/assets/emi/category/properties/gtceu_cracker.json +++ b/kubejs/assets/emi/category/properties/gtceu_cracker.json @@ -1 +1 @@ -{"gtceu:cracker":{"order":136}} \ No newline at end of file +{"gtceu:cracker":{"order":139}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_cutter.json b/kubejs/assets/emi/category/properties/gtceu_cutter.json index ee0682e04..1af20f965 100644 --- a/kubejs/assets/emi/category/properties/gtceu_cutter.json +++ b/kubejs/assets/emi/category/properties/gtceu_cutter.json @@ -1 +1 @@ -{"gtceu:cutter":{"order":95}} \ No newline at end of file +{"gtceu:cutter":{"order":96}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_distillation_tower.json b/kubejs/assets/emi/category/properties/gtceu_distillation_tower.json index 3bad58595..72a980557 100644 --- a/kubejs/assets/emi/category/properties/gtceu_distillation_tower.json +++ b/kubejs/assets/emi/category/properties/gtceu_distillation_tower.json @@ -1 +1 @@ -{"gtceu:distillation_tower":{"order":97}} \ No newline at end of file +{"gtceu:distillation_tower":{"order":98}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_distillery.json b/kubejs/assets/emi/category/properties/gtceu_distillery.json index d5d5d1013..88cdd2fe7 100644 --- a/kubejs/assets/emi/category/properties/gtceu_distillery.json +++ b/kubejs/assets/emi/category/properties/gtceu_distillery.json @@ -1 +1 @@ -{"gtceu:distillery":{"order":96}} \ No newline at end of file +{"gtceu:distillery":{"order":97}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_electric_blast_furnace.json b/kubejs/assets/emi/category/properties/gtceu_electric_blast_furnace.json index 062012998..a06f87714 100644 --- a/kubejs/assets/emi/category/properties/gtceu_electric_blast_furnace.json +++ b/kubejs/assets/emi/category/properties/gtceu_electric_blast_furnace.json @@ -1 +1 @@ -{"gtceu:electric_blast_furnace":{"order":137}} \ No newline at end of file +{"gtceu:electric_blast_furnace":{"order":140}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_electrolyzer.json b/kubejs/assets/emi/category/properties/gtceu_electrolyzer.json index 9884745b4..64bd5759c 100644 --- a/kubejs/assets/emi/category/properties/gtceu_electrolyzer.json +++ b/kubejs/assets/emi/category/properties/gtceu_electrolyzer.json @@ -1 +1 @@ -{"gtceu:electrolyzer":{"order":98}} \ No newline at end of file +{"gtceu:electrolyzer":{"order":99}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_electromagnetic_separator.json b/kubejs/assets/emi/category/properties/gtceu_electromagnetic_separator.json index dca38b2a9..5f99ad041 100644 --- a/kubejs/assets/emi/category/properties/gtceu_electromagnetic_separator.json +++ b/kubejs/assets/emi/category/properties/gtceu_electromagnetic_separator.json @@ -1 +1 @@ -{"gtceu:electromagnetic_separator":{"order":99}} \ No newline at end of file +{"gtceu:electromagnetic_separator":{"order":100}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_evaporation_tower.json b/kubejs/assets/emi/category/properties/gtceu_evaporation_tower.json index ec153faa0..6384d23bf 100644 --- a/kubejs/assets/emi/category/properties/gtceu_evaporation_tower.json +++ b/kubejs/assets/emi/category/properties/gtceu_evaporation_tower.json @@ -1 +1 @@ -{"gtceu:evaporation_tower":{"order":138}} \ No newline at end of file +{"gtceu:evaporation_tower":{"order":141}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_extractor.json b/kubejs/assets/emi/category/properties/gtceu_extractor.json index 924619c65..a31e5a37e 100644 --- a/kubejs/assets/emi/category/properties/gtceu_extractor.json +++ b/kubejs/assets/emi/category/properties/gtceu_extractor.json @@ -1 +1 @@ -{"gtceu:extractor":{"order":101}} \ No newline at end of file +{"gtceu:extractor":{"order":102}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_extractor_recycling.json b/kubejs/assets/emi/category/properties/gtceu_extractor_recycling.json index debbf7bca..66fd8482e 100644 --- a/kubejs/assets/emi/category/properties/gtceu_extractor_recycling.json +++ b/kubejs/assets/emi/category/properties/gtceu_extractor_recycling.json @@ -1 +1 @@ -{"gtceu:extractor_recycling":{"order":156}} \ No newline at end of file +{"gtceu:extractor_recycling":{"order":159}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_extruder.json b/kubejs/assets/emi/category/properties/gtceu_extruder.json index 4f8a510c6..4d76a1d27 100644 --- a/kubejs/assets/emi/category/properties/gtceu_extruder.json +++ b/kubejs/assets/emi/category/properties/gtceu_extruder.json @@ -1 +1 @@ -{"gtceu:extruder":{"order":103}} \ No newline at end of file +{"gtceu:extruder":{"order":104}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_fermenter.json b/kubejs/assets/emi/category/properties/gtceu_fermenter.json index 270167191..222919a16 100644 --- a/kubejs/assets/emi/category/properties/gtceu_fermenter.json +++ b/kubejs/assets/emi/category/properties/gtceu_fermenter.json @@ -1 +1 @@ -{"gtceu:fermenter":{"order":104}} \ No newline at end of file +{"gtceu:fermenter":{"order":105}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_fission_reactor.json b/kubejs/assets/emi/category/properties/gtceu_fission_reactor.json index 4ac004e90..6e14a9976 100644 --- a/kubejs/assets/emi/category/properties/gtceu_fission_reactor.json +++ b/kubejs/assets/emi/category/properties/gtceu_fission_reactor.json @@ -1 +1 @@ -{"gtceu:fission_reactor":{"order":140}} \ No newline at end of file +{"gtceu:fission_reactor":{"order":143}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_fluid_heater.json b/kubejs/assets/emi/category/properties/gtceu_fluid_heater.json index f56150678..511826e95 100644 --- a/kubejs/assets/emi/category/properties/gtceu_fluid_heater.json +++ b/kubejs/assets/emi/category/properties/gtceu_fluid_heater.json @@ -1 +1 @@ -{"gtceu:fluid_heater":{"order":105}} \ No newline at end of file +{"gtceu:fluid_heater":{"order":106}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_fluid_solidifier.json b/kubejs/assets/emi/category/properties/gtceu_fluid_solidifier.json index a8a03ccc1..c27aac3b2 100644 --- a/kubejs/assets/emi/category/properties/gtceu_fluid_solidifier.json +++ b/kubejs/assets/emi/category/properties/gtceu_fluid_solidifier.json @@ -1 +1 @@ -{"gtceu:fluid_solidifier":{"order":106}} \ No newline at end of file +{"gtceu:fluid_solidifier":{"order":107}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_forge_hammer.json b/kubejs/assets/emi/category/properties/gtceu_forge_hammer.json index 449e57e89..5c7caff41 100644 --- a/kubejs/assets/emi/category/properties/gtceu_forge_hammer.json +++ b/kubejs/assets/emi/category/properties/gtceu_forge_hammer.json @@ -1 +1 @@ -{"gtceu:forge_hammer":{"order":108}} \ No newline at end of file +{"gtceu:forge_hammer":{"order":109}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_forming_press.json b/kubejs/assets/emi/category/properties/gtceu_forming_press.json index de6cb2009..ac1ab08a5 100644 --- a/kubejs/assets/emi/category/properties/gtceu_forming_press.json +++ b/kubejs/assets/emi/category/properties/gtceu_forming_press.json @@ -1 +1 @@ -{"gtceu:forming_press":{"order":110}} \ No newline at end of file +{"gtceu:forming_press":{"order":111}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_fusion_reactor.json b/kubejs/assets/emi/category/properties/gtceu_fusion_reactor.json index 57187fa8d..3f4912970 100644 --- a/kubejs/assets/emi/category/properties/gtceu_fusion_reactor.json +++ b/kubejs/assets/emi/category/properties/gtceu_fusion_reactor.json @@ -1 +1 @@ -{"gtceu:fusion_reactor":{"order":141}} \ No newline at end of file +{"gtceu:fusion_reactor":{"order":144}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_gas_collector.json b/kubejs/assets/emi/category/properties/gtceu_gas_collector.json index 38c64d5d7..0855a78a8 100644 --- a/kubejs/assets/emi/category/properties/gtceu_gas_collector.json +++ b/kubejs/assets/emi/category/properties/gtceu_gas_collector.json @@ -1 +1 @@ -{"gtceu:gas_collector":{"order":111}} \ No newline at end of file +{"gtceu:gas_collector":{"order":112}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_gas_pressurizer.json b/kubejs/assets/emi/category/properties/gtceu_gas_pressurizer.json index 48ea2ef0d..c55dcefef 100644 --- a/kubejs/assets/emi/category/properties/gtceu_gas_pressurizer.json +++ b/kubejs/assets/emi/category/properties/gtceu_gas_pressurizer.json @@ -1 +1 @@ -{"gtceu:gas_pressurizer":{"order":112}} \ No newline at end of file +{"gtceu:gas_pressurizer":{"order":113}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_greenhouse.json b/kubejs/assets/emi/category/properties/gtceu_greenhouse.json index 93d41ddd4..efa9331fc 100644 --- a/kubejs/assets/emi/category/properties/gtceu_greenhouse.json +++ b/kubejs/assets/emi/category/properties/gtceu_greenhouse.json @@ -1 +1 @@ -{"gtceu:greenhouse":{"order":142}} \ No newline at end of file +{"gtceu:greenhouse":{"order":145}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_heat_exchanger.json b/kubejs/assets/emi/category/properties/gtceu_heat_exchanger.json index 367d2f2b1..462decfd8 100644 --- a/kubejs/assets/emi/category/properties/gtceu_heat_exchanger.json +++ b/kubejs/assets/emi/category/properties/gtceu_heat_exchanger.json @@ -1 +1 @@ -{"gtceu:heat_exchanger":{"order":143}} \ No newline at end of file +{"gtceu:heat_exchanger":{"order":146}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_implosion_compressor.json b/kubejs/assets/emi/category/properties/gtceu_implosion_compressor.json index 674f533cd..5aca7e4c1 100644 --- a/kubejs/assets/emi/category/properties/gtceu_implosion_compressor.json +++ b/kubejs/assets/emi/category/properties/gtceu_implosion_compressor.json @@ -1 +1 @@ -{"gtceu:implosion_compressor":{"order":144}} \ No newline at end of file +{"gtceu:implosion_compressor":{"order":147}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_ingot_molding.json b/kubejs/assets/emi/category/properties/gtceu_ingot_molding.json index 30f0d1904..971a52dbe 100644 --- a/kubejs/assets/emi/category/properties/gtceu_ingot_molding.json +++ b/kubejs/assets/emi/category/properties/gtceu_ingot_molding.json @@ -1 +1 @@ -{"gtceu:ingot_molding":{"order":75}} \ No newline at end of file +{"gtceu:ingot_molding":{"order":76}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_large_boiler.json b/kubejs/assets/emi/category/properties/gtceu_large_boiler.json index 006b70dd7..767c4742a 100644 --- a/kubejs/assets/emi/category/properties/gtceu_large_boiler.json +++ b/kubejs/assets/emi/category/properties/gtceu_large_boiler.json @@ -1 +1 @@ -{"gtceu:large_boiler":{"order":56}} \ No newline at end of file +{"gtceu:large_boiler":{"order":57}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_large_chemical_reactor.json b/kubejs/assets/emi/category/properties/gtceu_large_chemical_reactor.json index e93d90cc0..8d9aefd8f 100644 --- a/kubejs/assets/emi/category/properties/gtceu_large_chemical_reactor.json +++ b/kubejs/assets/emi/category/properties/gtceu_large_chemical_reactor.json @@ -1 +1 @@ -{"gtceu:large_chemical_reactor":{"order":91}} \ No newline at end of file +{"gtceu:large_chemical_reactor":{"order":92}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_laser_engraver.json b/kubejs/assets/emi/category/properties/gtceu_laser_engraver.json index cb239bb30..9f146f15f 100644 --- a/kubejs/assets/emi/category/properties/gtceu_laser_engraver.json +++ b/kubejs/assets/emi/category/properties/gtceu_laser_engraver.json @@ -1 +1 @@ -{"gtceu:laser_engraver":{"order":114}} \ No newline at end of file +{"gtceu:laser_engraver":{"order":115}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_lathe.json b/kubejs/assets/emi/category/properties/gtceu_lathe.json index 6caa98dea..7659c2ad4 100644 --- a/kubejs/assets/emi/category/properties/gtceu_lathe.json +++ b/kubejs/assets/emi/category/properties/gtceu_lathe.json @@ -1 +1 @@ -{"gtceu:lathe":{"order":116}} \ No newline at end of file +{"gtceu:lathe":{"order":117}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_macerator.json b/kubejs/assets/emi/category/properties/gtceu_macerator.json index 2a96e473a..35d939495 100644 --- a/kubejs/assets/emi/category/properties/gtceu_macerator.json +++ b/kubejs/assets/emi/category/properties/gtceu_macerator.json @@ -1 +1 @@ -{"gtceu:macerator":{"order":119}} \ No newline at end of file +{"gtceu:macerator":{"order":120}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_macerator_recycling.json b/kubejs/assets/emi/category/properties/gtceu_macerator_recycling.json index b199a2617..b1f97cf11 100644 --- a/kubejs/assets/emi/category/properties/gtceu_macerator_recycling.json +++ b/kubejs/assets/emi/category/properties/gtceu_macerator_recycling.json @@ -1 +1 @@ -{"gtceu:macerator_recycling":{"order":155}} \ No newline at end of file +{"gtceu:macerator_recycling":{"order":158}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_mixer.json b/kubejs/assets/emi/category/properties/gtceu_mixer.json index be059f5cc..ca10c1c19 100644 --- a/kubejs/assets/emi/category/properties/gtceu_mixer.json +++ b/kubejs/assets/emi/category/properties/gtceu_mixer.json @@ -1 +1 @@ -{"gtceu:mixer":{"order":121}} \ No newline at end of file +{"gtceu:mixer":{"order":122}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_moon_dust_harvester.json b/kubejs/assets/emi/category/properties/gtceu_moon_dust_harvester.json index aadabe135..49f445263 100644 --- a/kubejs/assets/emi/category/properties/gtceu_moon_dust_harvester.json +++ b/kubejs/assets/emi/category/properties/gtceu_moon_dust_harvester.json @@ -1 +1 @@ -{"gtceu:moon_dust_harvester":{"order":147}} \ No newline at end of file +{"gtceu:moon_dust_harvester":{"order":150}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_nuclear_fuel_factory.json b/kubejs/assets/emi/category/properties/gtceu_nuclear_fuel_factory.json index ca907e4a2..8a2e96e89 100644 --- a/kubejs/assets/emi/category/properties/gtceu_nuclear_fuel_factory.json +++ b/kubejs/assets/emi/category/properties/gtceu_nuclear_fuel_factory.json @@ -1 +1 @@ -{"gtceu:nuclear_fuel_factory":{"order":145}} \ No newline at end of file +{"gtceu:nuclear_fuel_factory":{"order":148}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_ore_bathing.json b/kubejs/assets/emi/category/properties/gtceu_ore_bathing.json index d16a0b05a..da316554a 100644 --- a/kubejs/assets/emi/category/properties/gtceu_ore_bathing.json +++ b/kubejs/assets/emi/category/properties/gtceu_ore_bathing.json @@ -1 +1 @@ -{"gtceu:ore_bathing":{"order":89}} \ No newline at end of file +{"gtceu:ore_bathing":{"order":90}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_ore_crushing.json b/kubejs/assets/emi/category/properties/gtceu_ore_crushing.json index ed0ca8cd7..e3e09a0f7 100644 --- a/kubejs/assets/emi/category/properties/gtceu_ore_crushing.json +++ b/kubejs/assets/emi/category/properties/gtceu_ore_crushing.json @@ -1 +1 @@ -{"gtceu:ore_crushing":{"order":120}} \ No newline at end of file +{"gtceu:ore_crushing":{"order":121}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_ore_forging.json b/kubejs/assets/emi/category/properties/gtceu_ore_forging.json index 06afe8c95..2be9b523a 100644 --- a/kubejs/assets/emi/category/properties/gtceu_ore_forging.json +++ b/kubejs/assets/emi/category/properties/gtceu_ore_forging.json @@ -1 +1 @@ -{"gtceu:ore_forging":{"order":109}} \ No newline at end of file +{"gtceu:ore_forging":{"order":110}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_ore_washer.json b/kubejs/assets/emi/category/properties/gtceu_ore_washer.json index a8f895338..99fc46d2e 100644 --- a/kubejs/assets/emi/category/properties/gtceu_ore_washer.json +++ b/kubejs/assets/emi/category/properties/gtceu_ore_washer.json @@ -1 +1 @@ -{"gtceu:ore_washer":{"order":123}} \ No newline at end of file +{"gtceu:ore_washer":{"order":124}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_ostrum_harvester.json b/kubejs/assets/emi/category/properties/gtceu_ostrum_harvester.json index a854e8a01..603588c05 100644 --- a/kubejs/assets/emi/category/properties/gtceu_ostrum_harvester.json +++ b/kubejs/assets/emi/category/properties/gtceu_ostrum_harvester.json @@ -1 +1 @@ -{"gtceu:ostrum_harvester":{"order":146}} \ No newline at end of file +{"gtceu:ostrum_harvester":{"order":149}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_ostrum_linear_accelerator.json b/kubejs/assets/emi/category/properties/gtceu_ostrum_linear_accelerator.json index d8cb9b522..3780fcead 100644 --- a/kubejs/assets/emi/category/properties/gtceu_ostrum_linear_accelerator.json +++ b/kubejs/assets/emi/category/properties/gtceu_ostrum_linear_accelerator.json @@ -1 +1 @@ -{"gtceu:ostrum_linear_accelerator":{"order":139}} \ No newline at end of file +{"gtceu:ostrum_linear_accelerator":{"order":142}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_packer.json b/kubejs/assets/emi/category/properties/gtceu_packer.json index 882b8b827..2f428dab9 100644 --- a/kubejs/assets/emi/category/properties/gtceu_packer.json +++ b/kubejs/assets/emi/category/properties/gtceu_packer.json @@ -1 +1 @@ -{"gtceu:packer":{"order":125}} \ No newline at end of file +{"gtceu:packer":{"order":126}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_plasma_generator.json b/kubejs/assets/emi/category/properties/gtceu_plasma_generator.json index d6684f924..66f62c6f5 100644 --- a/kubejs/assets/emi/category/properties/gtceu_plasma_generator.json +++ b/kubejs/assets/emi/category/properties/gtceu_plasma_generator.json @@ -1 +1 @@ -{"gtceu:plasma_generator":{"order":71}} \ No newline at end of file +{"gtceu:plasma_generator":{"order":72}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_polarizer.json b/kubejs/assets/emi/category/properties/gtceu_polarizer.json index 8bad12318..f77e2a7b1 100644 --- a/kubejs/assets/emi/category/properties/gtceu_polarizer.json +++ b/kubejs/assets/emi/category/properties/gtceu_polarizer.json @@ -1 +1 @@ -{"gtceu:polarizer":{"order":126}} \ No newline at end of file +{"gtceu:polarizer":{"order":127}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_programmed_circuit.json b/kubejs/assets/emi/category/properties/gtceu_programmed_circuit.json index ca91b4326..dfdee2005 100644 --- a/kubejs/assets/emi/category/properties/gtceu_programmed_circuit.json +++ b/kubejs/assets/emi/category/properties/gtceu_programmed_circuit.json @@ -1 +1 @@ -{"gtceu:programmed_circuit":{"order":173}} \ No newline at end of file +{"gtceu:programmed_circuit":{"order":176}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_pyrolyse_oven.json b/kubejs/assets/emi/category/properties/gtceu_pyrolyse_oven.json index b34ef7400..0f17dc482 100644 --- a/kubejs/assets/emi/category/properties/gtceu_pyrolyse_oven.json +++ b/kubejs/assets/emi/category/properties/gtceu_pyrolyse_oven.json @@ -1 +1 @@ -{"gtceu:pyrolyse_oven":{"order":148}} \ No newline at end of file +{"gtceu:pyrolyse_oven":{"order":151}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_research_station.json b/kubejs/assets/emi/category/properties/gtceu_research_station.json index 0726dce16..457059489 100644 --- a/kubejs/assets/emi/category/properties/gtceu_research_station.json +++ b/kubejs/assets/emi/category/properties/gtceu_research_station.json @@ -1 +1 @@ -{"gtceu:research_station":{"order":149}} \ No newline at end of file +{"gtceu:research_station":{"order":152}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_rock_breaker.json b/kubejs/assets/emi/category/properties/gtceu_rock_breaker.json index 940c36635..d43366b28 100644 --- a/kubejs/assets/emi/category/properties/gtceu_rock_breaker.json +++ b/kubejs/assets/emi/category/properties/gtceu_rock_breaker.json @@ -1 +1 @@ -{"gtceu:rock_breaker":{"order":127}} \ No newline at end of file +{"gtceu:rock_breaker":{"order":128}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_scanner.json b/kubejs/assets/emi/category/properties/gtceu_scanner.json index babb9f556..bc3c9eb07 100644 --- a/kubejs/assets/emi/category/properties/gtceu_scanner.json +++ b/kubejs/assets/emi/category/properties/gtceu_scanner.json @@ -1 +1 @@ -{"gtceu:scanner":{"order":128}} \ No newline at end of file +{"gtceu:scanner":{"order":129}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_sifter.json b/kubejs/assets/emi/category/properties/gtceu_sifter.json index 3a6f1b575..91729a678 100644 --- a/kubejs/assets/emi/category/properties/gtceu_sifter.json +++ b/kubejs/assets/emi/category/properties/gtceu_sifter.json @@ -1 +1 @@ -{"gtceu:sifter":{"order":130}} \ No newline at end of file +{"gtceu:sifter":{"order":131}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_steam_bloomery.json b/kubejs/assets/emi/category/properties/gtceu_steam_bloomery.json index 8a24941ba..1949f1005 100644 --- a/kubejs/assets/emi/category/properties/gtceu_steam_bloomery.json +++ b/kubejs/assets/emi/category/properties/gtceu_steam_bloomery.json @@ -1 +1 @@ -{"gtceu:steam_bloomery":{"order":150}} \ No newline at end of file +{"gtceu:steam_bloomery":{"order":153}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_steam_boiler.json b/kubejs/assets/emi/category/properties/gtceu_steam_boiler.json index 1344362df..aa5444e77 100644 --- a/kubejs/assets/emi/category/properties/gtceu_steam_boiler.json +++ b/kubejs/assets/emi/category/properties/gtceu_steam_boiler.json @@ -1 +1 @@ -{"gtceu:steam_boiler":{"order":57}} \ No newline at end of file +{"gtceu:steam_boiler":{"order":56}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_thermal_centrifuge.json b/kubejs/assets/emi/category/properties/gtceu_thermal_centrifuge.json index a046fc4d6..e2c701368 100644 --- a/kubejs/assets/emi/category/properties/gtceu_thermal_centrifuge.json +++ b/kubejs/assets/emi/category/properties/gtceu_thermal_centrifuge.json @@ -1 +1 @@ -{"gtceu:thermal_centrifuge":{"order":131}} \ No newline at end of file +{"gtceu:thermal_centrifuge":{"order":132}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_vacuum_freezer.json b/kubejs/assets/emi/category/properties/gtceu_vacuum_freezer.json index 5c3e9d6ad..614f09279 100644 --- a/kubejs/assets/emi/category/properties/gtceu_vacuum_freezer.json +++ b/kubejs/assets/emi/category/properties/gtceu_vacuum_freezer.json @@ -1 +1 @@ -{"gtceu:vacuum_freezer":{"order":151}} \ No newline at end of file +{"gtceu:vacuum_freezer":{"order":154}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_wire_coating.json b/kubejs/assets/emi/category/properties/gtceu_wire_coating.json index 609afe478..ba9471c06 100644 --- a/kubejs/assets/emi/category/properties/gtceu_wire_coating.json +++ b/kubejs/assets/emi/category/properties/gtceu_wire_coating.json @@ -1 +1 @@ -{"gtceu:wire_coating":{"order":152}} \ No newline at end of file +{"gtceu:wire_coating":{"order":155}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/gtceu_wiremill.json b/kubejs/assets/emi/category/properties/gtceu_wiremill.json index 7c48917f3..d6768e6e3 100644 --- a/kubejs/assets/emi/category/properties/gtceu_wiremill.json +++ b/kubejs/assets/emi/category/properties/gtceu_wiremill.json @@ -1 +1 @@ -{"gtceu:wiremill":{"order":133}} \ No newline at end of file +{"gtceu:wiremill":{"order":134}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/minecraft_smelting.json b/kubejs/assets/emi/category/properties/minecraft_smelting.json index 70e40f59c..40e3a7239 100644 --- a/kubejs/assets/emi/category/properties/minecraft_smelting.json +++ b/kubejs/assets/emi/category/properties/minecraft_smelting.json @@ -1 +1 @@ -{"minecraft:smelting":{"order":72}} \ No newline at end of file +{"minecraft:smelting":{"order":73}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/minecraft_smithing.json b/kubejs/assets/emi/category/properties/minecraft_smithing.json index 91b6e6c98..3ef51601a 100644 --- a/kubejs/assets/emi/category/properties/minecraft_smithing.json +++ b/kubejs/assets/emi/category/properties/minecraft_smithing.json @@ -1 +1 @@ -{"minecraft:smithing":{"order":160}} \ No newline at end of file +{"minecraft:smithing":{"order":163}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/minecraft_stonecutting.json b/kubejs/assets/emi/category/properties/minecraft_stonecutting.json index 282a1568b..8e40f1250 100644 --- a/kubejs/assets/emi/category/properties/minecraft_stonecutting.json +++ b/kubejs/assets/emi/category/properties/minecraft_stonecutting.json @@ -1 +1 @@ -{"minecraft:stonecutting":{"order":163}} \ No newline at end of file +{"minecraft:stonecutting":{"order":166}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/tacz_attachment_query.json b/kubejs/assets/emi/category/properties/tacz_attachment_query.json index 5a657c070..0e6a31d02 100644 --- a/kubejs/assets/emi/category/properties/tacz_attachment_query.json +++ b/kubejs/assets/emi/category/properties/tacz_attachment_query.json @@ -1 +1 @@ -{"tacz:attachment_query":{"order":171}} \ No newline at end of file +{"tacz:attachment_query":{"order":174}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/taczammoquery_ammo_query.json b/kubejs/assets/emi/category/properties/taczammoquery_ammo_query.json index df66f83aa..d1f3145d1 100644 --- a/kubejs/assets/emi/category/properties/taczammoquery_ammo_query.json +++ b/kubejs/assets/emi/category/properties/taczammoquery_ammo_query.json @@ -1 +1 @@ -{"taczammoquery:ammo_query":{"order":172}} \ No newline at end of file +{"taczammoquery:ammo_query":{"order":175}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/vintageimprovements_centrifugation.json b/kubejs/assets/emi/category/properties/vintageimprovements_centrifugation.json index aef0cc89d..05eea7f7b 100644 --- a/kubejs/assets/emi/category/properties/vintageimprovements_centrifugation.json +++ b/kubejs/assets/emi/category/properties/vintageimprovements_centrifugation.json @@ -1 +1 @@ -{"vintageimprovements:centrifugation":{"order":85}} \ No newline at end of file +{"vintageimprovements:centrifugation":{"order":86}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/vintageimprovements_coiling.json b/kubejs/assets/emi/category/properties/vintageimprovements_coiling.json index e290901bb..185fc7f00 100644 --- a/kubejs/assets/emi/category/properties/vintageimprovements_coiling.json +++ b/kubejs/assets/emi/category/properties/vintageimprovements_coiling.json @@ -1 +1 @@ -{"vintageimprovements:coiling":{"order":132}} \ No newline at end of file +{"vintageimprovements:coiling":{"order":133}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/vintageimprovements_curving.json b/kubejs/assets/emi/category/properties/vintageimprovements_curving.json index 0271a9c1e..d08896541 100644 --- a/kubejs/assets/emi/category/properties/vintageimprovements_curving.json +++ b/kubejs/assets/emi/category/properties/vintageimprovements_curving.json @@ -1 +1 @@ -{"vintageimprovements:curving":{"order":102}} \ No newline at end of file +{"vintageimprovements:curving":{"order":103}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/vintageimprovements_laser_cutting.json b/kubejs/assets/emi/category/properties/vintageimprovements_laser_cutting.json index d754a9de8..c014d6a25 100644 --- a/kubejs/assets/emi/category/properties/vintageimprovements_laser_cutting.json +++ b/kubejs/assets/emi/category/properties/vintageimprovements_laser_cutting.json @@ -1 +1 @@ -{"vintageimprovements:laser_cutting":{"order":113}} \ No newline at end of file +{"vintageimprovements:laser_cutting":{"order":114}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/vintageimprovements_polishing.json b/kubejs/assets/emi/category/properties/vintageimprovements_polishing.json index 559212aaa..760cee391 100644 --- a/kubejs/assets/emi/category/properties/vintageimprovements_polishing.json +++ b/kubejs/assets/emi/category/properties/vintageimprovements_polishing.json @@ -1 +1 @@ -{"vintageimprovements:polishing":{"order":115}} \ No newline at end of file +{"vintageimprovements:polishing":{"order":116}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/vintageimprovements_pressurizing.json b/kubejs/assets/emi/category/properties/vintageimprovements_pressurizing.json index 5cfc68b4c..f6bb70239 100644 --- a/kubejs/assets/emi/category/properties/vintageimprovements_pressurizing.json +++ b/kubejs/assets/emi/category/properties/vintageimprovements_pressurizing.json @@ -1 +1 @@ -{"vintageimprovements:pressurizing":{"order":81}} \ No newline at end of file +{"vintageimprovements:pressurizing":{"order":82}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/vintageimprovements_vacuumizing.json b/kubejs/assets/emi/category/properties/vintageimprovements_vacuumizing.json index 7aa7ca174..8e01ce0e6 100644 --- a/kubejs/assets/emi/category/properties/vintageimprovements_vacuumizing.json +++ b/kubejs/assets/emi/category/properties/vintageimprovements_vacuumizing.json @@ -1 +1 @@ -{"vintageimprovements:vacuumizing":{"order":100}} \ No newline at end of file +{"vintageimprovements:vacuumizing":{"order":101}} \ No newline at end of file diff --git a/kubejs/assets/emi/category/properties/vintageimprovements_vibrating.json b/kubejs/assets/emi/category/properties/vintageimprovements_vibrating.json index e37758911..9cc5cbe70 100644 --- a/kubejs/assets/emi/category/properties/vintageimprovements_vibrating.json +++ b/kubejs/assets/emi/category/properties/vintageimprovements_vibrating.json @@ -1 +1 @@ -{"vintageimprovements:vibrating":{"order":129}} \ No newline at end of file +{"vintageimprovements:vibrating":{"order":130}} \ No newline at end of file diff --git a/kubejs/assets/forge/models/tag/item/wax.json b/kubejs/assets/forge/models/tag/item/wax.json new file mode 100644 index 000000000..c0ecf89a8 --- /dev/null +++ b/kubejs/assets/forge/models/tag/item/wax.json @@ -0,0 +1,3 @@ +{ + "parent": "firmalife:item/beeswax" +} \ No newline at end of file diff --git a/kubejs/assets/greate/lang/ja_jp.json b/kubejs/assets/greate/lang/ja_jp.json index 3e2df87dd..1a922e2fa 100644 --- a/kubejs/assets/greate/lang/ja_jp.json +++ b/kubejs/assets/greate/lang/ja_jp.json @@ -33,7 +33,7 @@ "block.greate.brass_encased_large_aluminium_cogwheel": "真鍮ケース入り大きなアルミニウム製歯車", "block.greate.brass_encased_large_darmstadtium_cogwheel": "真鍮大きなダームスタチウムケース入り歯車", "block.greate.brass_encased_large_naquadah_alloy_cogwheel": "真鍮大きなナクアダ合金ケース入り歯車", - "block.greate.brass_encased_large_neutronium_cogwheel": "真鍮大きな中子素ケース入り歯車", + "block.greate.brass_encased_large_neutronium_cogwheel": "真鍮大きなニュートロニウム製ケース入り歯車", "block.greate.brass_encased_large_rhodium_plated_palladium_cogwheel": "真鍮大きなロジウムケース入り歯車", "block.greate.brass_encased_large_stainless_steel_cogwheel": "真鍮ケース入り大きなステンレス製歯車", "block.greate.brass_encased_large_steel_cogwheel": "真鍮大きなケース入り歯車", @@ -41,8 +41,8 @@ "block.greate.brass_encased_large_tungsten_steel_cogwheel": "真鍮ケース入り大きなタングステンスチール歯車", "block.greate.brass_encased_naquadah_alloy_cogwheel": "真鍮ナクアダ合金ケース入り歯車", "block.greate.brass_encased_naquadah_alloy_shaft": "真鍮ナクアダ合金ケース入りシャフト", - "block.greate.brass_encased_neutronium_cogwheel": "真鍮中子素ケース入り歯車", - "block.greate.brass_encased_neutronium_shaft": "真鍮中子素ケース入りシャフト", + "block.greate.brass_encased_neutronium_cogwheel": "真鍮ニュートロニウム製ケース入り歯車", + "block.greate.brass_encased_neutronium_shaft": "真鍮ニュートロニウム製ケース入りシャフト", "block.greate.brass_encased_rhodium_plated_palladium_cogwheel": "真鍮ロジウムケース入り歯車", "block.greate.brass_encased_rhodium_plated_palladium_shaft": "真鍮ロジウムケース入りシャフト", "block.greate.brass_encased_stainless_steel_cogwheel": "真鍮ケース入りステンレス製歯車", @@ -67,7 +67,7 @@ "block.greate.large_aluminium_cogwheel": "大きなアルミニウム製歯車", "block.greate.large_darmstadtium_cogwheel": "大きなダームスタチウム歯車", "block.greate.large_naquadah_alloy_cogwheel": "大きなナクアダ合金歯車", - "block.greate.large_neutronium_cogwheel": "大きな中子素歯車", + "block.greate.large_neutronium_cogwheel": "大きなニュートロニウム製歯車", "block.greate.large_rhodium_plated_palladium_cogwheel": "大きなロジウム歯車", "block.greate.large_stainless_steel_cogwheel": "大きなステンレス製歯車", "block.greate.large_steel_cogwheel": "大きなスチール製歯車", @@ -76,7 +76,7 @@ "block.greate.metal_girder_encased_aluminium_shaft": "鉄骨入りアルミニウム製シャフト", "block.greate.metal_girder_encased_darmstadtium_shaft": "鉄骨入りダームスタチウムシャフト", "block.greate.metal_girder_encased_naquadah_alloy_shaft": "鉄骨入りナクアダ合金シャフト", - "block.greate.metal_girder_encased_neutronium_shaft": "鉄骨入り中子素シャフト", + "block.greate.metal_girder_encased_neutronium_shaft": "鉄骨入りニュートロニウム製シャフト", "block.greate.metal_girder_encased_rhodium_plated_palladium_shaft": "鉄骨入りロジウムシャフト", "block.greate.metal_girder_encased_stainless_steel_shaft": "鉄骨入りステンレス製シャフト", "block.greate.metal_girder_encased_steel_shaft": "鉄骨入りスチール製シャフト", @@ -93,25 +93,25 @@ "block.greate.naquadah_alloy_mechanical_saw": "ナクアダ合金メカニカルソー", "block.greate.naquadah_alloy_millstone": "ナクアダ合金石臼", "block.greate.naquadah_alloy_shaft": "ナクアダ合金シャフト", - "block.greate.neutronium_cogwheel": "中子素歯車", - "block.greate.neutronium_crushing_wheel": "中子素破砕ホイール", - "block.greate.neutronium_crushing_wheel_controller": "中子素破砕ホイールコントローラー", - "block.greate.neutronium_encased_fan": "中子素ケース入りファン", - "block.greate.neutronium_gearbox": "中子素ギアボックス", - "block.greate.neutronium_mechanical_mixer": "中子素メカニカルミキサー", - "block.greate.neutronium_mechanical_press": "中子素メカニカルプレス", - "block.greate.neutronium_mechanical_pump": "中子素メカニカルポンプ", - "block.greate.neutronium_mechanical_saw": "中子素メカニカルソー", - "block.greate.neutronium_millstone": "中子素石臼", - "block.greate.neutronium_shaft": "中子素シャフト", - "block.greate.polybenzimidazole_belt_darmstadtium": "聚苯并咪唑传送带", - "block.greate.polybenzimidazole_belt_neutronium": "聚苯并咪唑传送带", - "block.greate.polytetrafluoroethylene_belt_naquadah_alloy": "聚四氟乙烯传送带", - "block.greate.polytetrafluoroethylene_belt_rhodium_plated_palladium": "聚四氟乙烯传送带", + "block.greate.neutronium_cogwheel": "ニュートロニウム製歯車", + "block.greate.neutronium_crushing_wheel": "ニュートロニウム製破砕ホイール", + "block.greate.neutronium_crushing_wheel_controller": "ニュートロニウム製破砕ホイールコントローラー", + "block.greate.neutronium_encased_fan": "ニュートロニウム製ケース入りファン", + "block.greate.neutronium_gearbox": "ニュートロニウム製ギアボックス", + "block.greate.neutronium_mechanical_mixer": "ニュートロニウム製メカニカルミキサー", + "block.greate.neutronium_mechanical_press": "ニュートロニウム製メカニカルプレス", + "block.greate.neutronium_mechanical_pump": "ニュートロニウム製メカニカルポンプ", + "block.greate.neutronium_mechanical_saw": "ニュートロニウム製メカニカルソー", + "block.greate.neutronium_millstone": "ニュートロニウム製石臼", + "block.greate.neutronium_shaft": "ニュートロニウム製シャフト", + "block.greate.polybenzimidazole_belt_darmstadtium": "ポリベンズイミダゾールベルト", + "block.greate.polybenzimidazole_belt_neutronium": "ポリベンズイミダゾールベルト", + "block.greate.polytetrafluoroethylene_belt_naquadah_alloy": "PTFEベルト", + "block.greate.polytetrafluoroethylene_belt_rhodium_plated_palladium": "PTFEベルト", "block.greate.powered_aluminium_shaft": "アルミニウム製動力シャフト", "block.greate.powered_darmstadtium_shaft": "ダームスタチウム動力シャフト", "block.greate.powered_naquadah_alloy_shaft": "ナクアダ合金動力シャフト", - "block.greate.powered_neutronium_shaft": "中子素動力シャフト", + "block.greate.powered_neutronium_shaft": "ニュートロニウム製動力シャフト", "block.greate.powered_rhodium_plated_palladium_shaft": "ロジウム動力シャフト", "block.greate.powered_stainless_steel_shaft": "ステンレス製動力シャフト", "block.greate.powered_steel_shaft": "スチール製動力シャフト", @@ -180,9 +180,9 @@ "item.greate.aluminium_vertical_gearbox": "アルミニウム製垂直ギアボックス", "item.greate.darmstadtium_vertical_gearbox": "ダームスタチウム垂直ギアボックス", "item.greate.naquadah_alloy_vertical_gearbox": "ナクアダ合金垂直ギアボックス", - "item.greate.neutronium_vertical_gearbox": "中子素垂直ギアボックス", - "item.greate.polybenzimidazole_belt_connector": "聚苯并咪唑传送带", - "item.greate.polytetrafluoroethylene_belt_connector": "聚四氟乙烯传送带", + "item.greate.neutronium_vertical_gearbox": "ニュートロニウム製垂直ギアボックス", + "item.greate.polybenzimidazole_belt_connector": "ポリベンズイミダゾールベルト", + "item.greate.polytetrafluoroethylene_belt_connector": "PTFEベルト", "item.greate.rhodium_plated_palladium_vertical_gearbox": "ロジウム垂直ギアボックス", "item.greate.stainless_steel_vertical_gearbox": "ステンレス製垂直ギアボックス", "item.greate.steel_vertical_gearbox": "スチール製垂直ギアボックス", diff --git a/kubejs/assets/gtceu/lang/en_us.json b/kubejs/assets/gtceu/lang/en_us.json index 93d73a47c..7f13e1f42 100644 --- a/kubejs/assets/gtceu/lang/en_us.json +++ b/kubejs/assets/gtceu/lang/en_us.json @@ -13,7 +13,8 @@ "block.gtceu.evaporation_tower": "Evaporation Tower", "block.gtceu.ostrum_harvester": "Ostrum Harvester", "block.gtceu.moon_dust_harvester": "Moon Dust Harvester", - "block.gtceu.ostrum_linear_accelerator": "Ostrum Linear Accelerator", + "block.tfg.ostrum_linear_accelerator": "Ostrum Linear Accelerator", + "block.gtceu.coal_liquefaction_tower": "Coal Liquefaction Tower", "block.gtceu.ulv_super_tank": "Basic Super Tank", "block.gtceu.ulv_super_chest": "Basic Super Chest", "block.gtceu.ulv_hermetic_casing": "Basic Hermetic Casing", @@ -49,6 +50,8 @@ "gtceu.ostrum_linear_accelerator": "Ostrum Linear Accelerator", "gtceu.bioreactor": "Bioreactor", "gtceu.growth_chamber": "Growth Chamber", + "gtceu.coal_liquefaction_tower": "Coal Liquefaction", + "gtceu.smr_generator": "Small Modular Turbine", "gtceu.tooltip.machine.moon_dust_harvester_1": "§7Extraterrestrial Vacuum Cleaner§r", "gtceu.tooltip.machine.moon_dust_harvester_2": "§7Harvests infinite Regolith Dust depending on the biome its placed in.§r", "gtceu.tooltip.machine.ostrum_harvester_1": "§7Legally Distinct Spice Crawler§r", @@ -61,6 +64,8 @@ "gtceu.tooltip.machine.nuclear_fuel_factory_2": "§7Processes raw radioactive material into fissile fuel.§r", "gtceu.tooltip.machine.steam_bloomery_1": "§7Upgrade your Bloomery with the power of Steam!§r", "gtceu.tooltip.machine.steam_bloomery_2": "§7Processes Iron-bearing Dusts or Ingots into Raw Iron Blooms.\nFueling it with Coke or Anthracite will double the output.\nCan process up to 8 recipes at once, which changes how much Steam is required.§r", + "gtceu.tooltip.machine.coal_liquefaction_tower_1": "§7Carbon Smoothie Maker§r", + "gtceu.tooltip.machine.coal_liquefaction_tower_2": "§7Extracts gas fuels from carbonic solids and creosote§r", "item.gtceu.tiny_wood_dust": "Tiny Pile of Softwood Pulp", "item.gtceu.small_wood_dust": "Small Pile of Softwood Pulp", "item.gtceu.wood_dust": "Softwood Pulp", @@ -134,6 +139,7 @@ "material.gtceu.ostrum": "Ostrum", "material.gtceu.calorite": "Calorite", "material.gtceu.etrium": "Etrium", + "material.gtceu.tarkianite": "Tarkianite", "material.gtceu.aluminium_silicate": "Aluminium Silicate", "material.gtceu.rocket_alloy_t1": "R-Aluminosteel Rocket Alloy", "material.gtceu.rocket_alloy_t2": "ASM 4914 Titanium Rocket Alloy", @@ -188,16 +194,21 @@ "metaitem.crushed.tooltip.purify": "Drop in Water to get Purified Ore", "item.gtceu.tool.behavior.silk_ice": "§dSculptor:§r Silk harvests Packed Ice", "item.gtceu.tool.butchery_knife.tooltip": "§cButcher:§r Butchers animals for more meat", + "item.gtceu.tool.tooltip.repair_info": "", + "item.gtceu.tool.tooltip.repair_material": "", "gtceu.machine.lp_steam_extractor.tooltip": "§7Does not extract fluids", "gtceu.machine.hp_steam_extractor.tooltip": "§7Does not extract fluids", - "gtceu.jei.bedrock_fluid.moon_helium": "Lunar Helium", - "gtceu.jei.bedrock_fluid.moon_helium_3": "Lunar Helium-3", - "gtceu.jei.bedrock_fluid.moon_argon": "Lunar Argon", - "gtceu.jei.bedrock_fluid.semiheavy_ammoniacal_water": "Martian Semiheavy Ammoniacal Water", - "gtceu.jei.bedrock_fluid.liquid_carbon_dioxide": "Martian Liquid Carbon Dioxide", - "gtceu.jei.bedrock_fluid.heavy_ammoniacal_water": "Martian Heavy Ammoniacal Water", - "gtceu.jei.bedrock_fluid.liquid_ice": "Martian Ice", + "gtceu.jei.bedrock_fluid.nether_natural_gas_deposit": "Beneath Natural Gas Deposit", + "gtceu.jei.bedrock_fluid.moon_helium": "Lunar Helium Deposit", + "gtceu.jei.bedrock_fluid.moon_helium_3": "Lunar Helium-3 Deposit", + "gtceu.jei.bedrock_fluid.moon_argon": "Lunar Argon Deposit", + "gtceu.jei.bedrock_fluid.semiheavy_ammoniacal_water": "Martian Semiheavy Ammoniacal Water Deposit", + "gtceu.jei.bedrock_fluid.liquid_carbon_dioxide": "Martian Liquid Carbon Dioxide Deposit", + "gtceu.jei.bedrock_fluid.heavy_ammoniacal_water": "Martian Heavy Ammoniacal Water Deposit", + "gtceu.jei.bedrock_fluid.liquid_ice": "Martian Ice Deposit", "gtceu.recipe.category.ingot_molding": "Material Molding", + "block.gtceu.wire_coil.tooltip_pyro": "§8Pyrolyse Oven and Nuclear Fuel Factory:§r", + "block.gtceu.wire_coil.tooltip_cracking": "§8Cracking Unit, Coal Liquefaction Tower,§r\n§8Moon and Ostrum Harvesters:§r", "tagprefix.sword_head": "%s Sword Head", "tagprefix.pickaxe_head": "%s Pickaxe Head", "tagprefix.shovel_head": "%s Shovel Head", diff --git a/kubejs/assets/gtceu/lang/ja_jp.json b/kubejs/assets/gtceu/lang/ja_jp.json index 509abe61a..b9a7bb645 100644 --- a/kubejs/assets/gtceu/lang/ja_jp.json +++ b/kubejs/assets/gtceu/lang/ja_jp.json @@ -7,13 +7,13 @@ "block.gtceu.large_solar_panel_tier2": "§b大型ソーラーアレイMK II", "block.gtceu.large_solar_panel_tier3": "§c大型ソーラーアレイMK III", "block.gtceu.gas_pressurizer": "ガス圧縮機", - "block.gtceu.nuclear_fuel_factory": "核分裂燃料形成機", + "block.gtceu.nuclear_fuel_factory": "核燃料形成機", "block.gtceu.heat_exchanger": "熱交換機", "block.gtceu.fission_reactor": "核分裂炉", "block.gtceu.evaporation_tower": "蒸発塔", "block.gtceu.ostrum_harvester": "オストラムハーベスター", "block.gtceu.moon_dust_harvester": "ムーンハーベスター", - "block.gtceu.ostrum_linear_accelerator": "Ostrum Linear Accelerator", + "block.tfg.ostrum_linear_accelerator": "オストラムリニアアクセラレーター", "block.gtceu.ulv_super_tank": "基本型スーパータンク", "block.gtceu.ulv_super_chest": "基本型スーパーチェスト", "block.gtceu.ulv_hermetic_casing": "基本気密外装", @@ -39,15 +39,28 @@ "gtceu.large_solar_panel_tier2": "大型ソーラーアレイMK II", "gtceu.large_solar_panel_tier3": "大型ソーラーアレイMK III", "gtceu.gas_pressurizer": "ガス圧縮機", - "gtceu.nuclear_fuel_factory": "核分裂燃料形成機", + "gtceu.nuclear_fuel_factory": "核燃料形成機", + "gtceu.nuclear_turbine": "原子力蒸気タービン", "gtceu.heat_exchanger": "熱交換機", "gtceu.fission_reactor": "核分裂炉", "gtceu.evaporation_tower": "蒸発塔", "gtceu.ostrum_harvester": "オストラムハーベスター", "gtceu.moon_dust_harvester": "ムーンハーベスター", - "gtceu.ostrum_linear_accelerator": "Ostrum Linear Accelerator", + "gtceu.ostrum_linear_accelerator": "オストラムリニアアクセラレーター", "gtceu.bioreactor": "Bioreactor", "gtceu.growth_chamber": "Growth Chamber", + "gtceu.tooltip.machine.moon_dust_harvester_1": "§7Extraterrestrial Vacuum Cleaner§r", + "gtceu.tooltip.machine.moon_dust_harvester_2": "§7Harvests infinite Regolith Dust depending on the biome its placed in.§r", + "gtceu.tooltip.machine.ostrum_harvester_1": "§7Legally Distinct Spice Crawler§r", + "gtceu.tooltip.machine.ostrum_harvester_2": "§7Harvests infinite Ostrum Dust when placed over an Ostrum deposit.\nRequires drilling fluid to work.§r", + "gtceu.tooltip.machine.ostrum_linear_accelerator_1": "§7Higgs Boson not included§r", + "gtceu.tooltip.machine.ostrum_linear_accelerator_2": "§7Breaks down Ostrum Dust into its components. Requires various fluids from fission line.§r", + "gtceu.tooltip.machine.heat_exchanger_1": "§7Heating up Fluids with other hot Fluids§r", + "gtceu.tooltip.machine.heat_exchanger_2": "§7Transfers heat from one fluid to another.§r", + "gtceu.tooltip.machine.nuclear_fuel_factory_1": "§7Producing extra spicy Rods§r", + "gtceu.tooltip.machine.nuclear_fuel_factory_2": "§7Processes raw radioactive material into fissile fuel.§r", + "gtceu.tooltip.machine.steam_bloomery_1": "§7Upgrade your Bloomery with the power of Steam!§r", + "gtceu.tooltip.machine.steam_bloomery_2": "§7Processes Iron-bearing Dusts or Ingots into Raw Iron Blooms.\nFueling it with Coke or Anthracite will double the output.\nCan process up to 8 recipes at once, which changes how much Steam is required.§r", "item.gtceu.tiny_wood_dust": "極小の木のパルプ", "item.gtceu.small_wood_dust": "小さな木のパルプ", "item.gtceu.wood_dust": "木のパルプ", @@ -123,15 +136,15 @@ "material.gtceu.etrium": "エトリウム", "material.gtceu.aluminium_silicate": "ケイ酸アルミニウム", "material.gtceu.rocket_alloy_t1": "R-AS ロケット合金", - "material.gtceu.rocket_alloy_t2": "ASM 4914 チタニウム ロケット合金", - "material.gtceu.rocket_alloy_t3": "45-Ti タングステンスチール ロケット合金", + "material.gtceu.rocket_alloy_t2": "ASM-4914 チタニウムロケット合金", + "material.gtceu.rocket_alloy_t3": "45-Ti タングステンスチールロケット合金", "material.gtceu.vitrified_asbestos": "ガラス化した石綿", "material.gtceu.liquid_carbon_dioxide": "液化二酸化炭素", "material.gtceu.hot_debrominated_brine": "Hot Debrominated Brine", "material.gtceu.hydrogen_iodide": "ヨウ化水素 ", - "material.gtceu.dense_steam": "原子力蒸気", + "material.gtceu.dense_steam": "高圧蒸気", "material.gtceu.radioactive_steam": "放射性蒸気", - "material.gtceu.radioactive_waste": "放射性残留物", + "material.gtceu.radioactive_waste": "放射性廃棄物", "material.gtceu.irradiated_steam": "高濃度放射性蒸気", "material.gtceu.heavy_water": "重水", "material.gtceu.uranium_waste": "ウラニウム残留物", @@ -175,15 +188,18 @@ "metaitem.crushed.tooltip.purify": "Drop in Water to get Purified Ore", "item.gtceu.tool.behavior.silk_ice": "§dSculptor:§r Silk harvests Packed Ice", "item.gtceu.tool.butchery_knife.tooltip": "§cButcher:§r Butchers animals for more meat", + "item.gtceu.tool.tooltip.repair_info": "", + "item.gtceu.tool.tooltip.repair_material": "", "gtceu.machine.lp_steam_extractor.tooltip": "§7Does not extract fluids", "gtceu.machine.hp_steam_extractor.tooltip": "§7Does not extract fluids", - "gtceu.jei.bedrock_fluid.moon_helium": "Lunar Helium", - "gtceu.jei.bedrock_fluid.moon_helium_3": "Lunar Helium-3", - "gtceu.jei.bedrock_fluid.moon_argon": "Lunar Argon", - "gtceu.jei.bedrock_fluid.semiheavy_ammoniacal_water": "Martian Semiheavy Ammoniacal Water", - "gtceu.jei.bedrock_fluid.liquid_carbon_dioxide": "Martian Liquid Carbon Dioxide", - "gtceu.jei.bedrock_fluid.heavy_ammoniacal_water": "Martian Heavy Ammoniacal Water", - "gtceu.jei.bedrock_fluid.liquid_ice": "Martian Ice", + "gtceu.jei.bedrock_fluid.moon_helium": "ヘリウム", + "gtceu.jei.bedrock_fluid.moon_helium_3": "ヘリウム3", + "gtceu.jei.bedrock_fluid.moon_argon": "アルゴン", + "gtceu.jei.bedrock_fluid.semiheavy_ammoniacal_water": "アンモニア交じりの半重水", + "gtceu.jei.bedrock_fluid.liquid_carbon_dioxide": "液化二酸化炭素", + "gtceu.jei.bedrock_fluid.heavy_ammoniacal_water": "アンモニア交じりの重水", + "gtceu.jei.bedrock_fluid.liquid_ice": "氷", + "gtceu.recipe.category.ingot_molding": "Material Molding", "tagprefix.sword_head": "%s製剣身", "tagprefix.pickaxe_head": "%s製ピッケルの頭", "tagprefix.shovel_head": "%s製シャベルの頭", diff --git a/kubejs/assets/gtceu/lang/ru_ru.json b/kubejs/assets/gtceu/lang/ru_ru.json index e4fe80cc7..5d0ce4987 100644 --- a/kubejs/assets/gtceu/lang/ru_ru.json +++ b/kubejs/assets/gtceu/lang/ru_ru.json @@ -13,7 +13,7 @@ "block.gtceu.evaporation_tower": "Evaporation Tower", "block.gtceu.ostrum_harvester": "Ostrum Harvester", "block.gtceu.moon_dust_harvester": "Moon Dust Harvester", - "block.gtceu.ostrum_linear_accelerator": "Ostrum Linear Accelerator", + "block.tfg.ostrum_linear_accelerator": "Ostrum Linear Accelerator", "block.gtceu.ulv_super_tank": "Basic Super Tank", "block.gtceu.ulv_super_chest": "Basic Super Chest", "block.gtceu.ulv_hermetic_casing": "Basic Hermetic Casing", @@ -177,6 +177,8 @@ "metaitem.crushed.tooltip.purify": "Бросьте в источник воды или нажмите ПКМ по котлу, для получения очищенной руды", "item.gtceu.tool.behavior.silk_ice": "§dSculptor:§r Silk harvests Packed Ice", "item.gtceu.tool.butchery_knife.tooltip": "§cButcher:§r Butchers animals for more meat", + "item.gtceu.tool.tooltip.repair_info": "", + "item.gtceu.tool.tooltip.repair_material": "", "gtceu.machine.lp_steam_extractor.tooltip": "§7Does not extract fluids", "gtceu.machine.hp_steam_extractor.tooltip": "§7Does not extract fluids", "gtceu.jei.bedrock_fluid.moon_helium": "Lunar Helium", diff --git a/kubejs/assets/gtceu/lang/uk_ua.json b/kubejs/assets/gtceu/lang/uk_ua.json index 4e90c15fe..a5feb29cb 100644 --- a/kubejs/assets/gtceu/lang/uk_ua.json +++ b/kubejs/assets/gtceu/lang/uk_ua.json @@ -13,7 +13,7 @@ "block.gtceu.evaporation_tower": "Випарна камера", "block.gtceu.ostrum_harvester": "Збирач Острому", "block.gtceu.moon_dust_harvester": "Збирач Місячного Пилу", - "block.gtceu.ostrum_linear_accelerator": "Лінійний Прискорювач з Оструму", + "block.tfg.ostrum_linear_accelerator": "Лінійний Прискорювач з Оструму", "block.gtceu.ulv_super_tank": "Базовий супер резервувар", "block.gtceu.ulv_super_chest": "Базова супер скриня", "block.gtceu.ulv_hermetic_casing": "Базова герметична оболонка", @@ -178,6 +178,8 @@ "metaitem.crushed.tooltip.purify": "Киньте у воду, щоб отримати очищену руду", "item.gtceu.tool.behavior.silk_ice": "§dСкульптор:§r Шовк збирає ущільнений лід", "item.gtceu.tool.butchery_knife.tooltip": "§cМ’ясник:§r Забиває тварин для отримання більшої кількості м’яса", + "item.gtceu.tool.tooltip.repair_info": "", + "item.gtceu.tool.tooltip.repair_material": "", "gtceu.machine.lp_steam_extractor.tooltip": "§7Не видобуває рідини", "gtceu.machine.hp_steam_extractor.tooltip": "§7Не видобуває рідини", "gtceu.jei.bedrock_fluid.moon_helium": "Місячний Гелій", diff --git a/kubejs/assets/gtceu/lang/zh_cn.json b/kubejs/assets/gtceu/lang/zh_cn.json index 97ccf2c09..ea05f2f74 100644 --- a/kubejs/assets/gtceu/lang/zh_cn.json +++ b/kubejs/assets/gtceu/lang/zh_cn.json @@ -13,7 +13,8 @@ "block.gtceu.evaporation_tower": "蒸发塔", "block.gtceu.ostrum_harvester": "紫金采集器", "block.gtceu.moon_dust_harvester": "月壤采集器", - "block.gtceu.ostrum_linear_accelerator": "紫金线性加速器", + "block.tfg.ostrum_linear_accelerator": "紫金线性加速器", + "block.gtceu.coal_liquefaction_tower": "煤炭液化塔", "block.gtceu.ulv_super_tank": "基础超级缸", "block.gtceu.ulv_super_chest": "基础超级箱", "block.gtceu.ulv_hermetic_casing": "基础密封机械方块", @@ -49,6 +50,7 @@ "gtceu.ostrum_linear_accelerator": "紫金线性加速器", "gtceu.bioreactor": "生物反应器", "gtceu.growth_chamber": "生长室", + "gtceu.coal_liquefaction_tower": "煤炭液化", "gtceu.tooltip.machine.moon_dust_harvester_1": "§7地外真空吸尘器§r", "gtceu.tooltip.machine.moon_dust_harvester_2": "§7根据所处生物群系无限采集风化土粉尘。§r", "gtceu.tooltip.machine.ostrum_harvester_1": "§7合法异星香料采集车§r", @@ -61,6 +63,8 @@ "gtceu.tooltip.machine.nuclear_fuel_factory_2": "§7将原始放射性材料加工成裂变燃料§r", "gtceu.tooltip.machine.steam_bloomery_1": "§7用蒸汽动力升级你的锻铁炉!§r", "gtceu.tooltip.machine.steam_bloomery_2": "§7将含铁矿粉或锭加工成生铁方坯。\n使用焦煤或无烟煤可倍增产量。\n支持最多8组配方并行处理,相应调整蒸汽需求。§r", + "gtceu.tooltip.machine.coal_liquefaction_tower_1": "§7碳素奶昔制造机§r", + "gtceu.tooltip.machine.coal_liquefaction_tower_2": "§7从碳质固体与杂酚油中提取气体燃料§r", "item.gtceu.tiny_wood_dust": "小撮软木浆", "item.gtceu.small_wood_dust": "小堆软木浆", "item.gtceu.wood_dust": "软木浆", @@ -134,6 +138,7 @@ "material.gtceu.ostrum": "紫金", "material.gtceu.calorite": "耐热金属", "material.gtceu.etrium": "埃忒恩", + "material.gtceu.tarkianite": "塔基安矿", "material.gtceu.aluminium_silicate": "硅酸铝", "material.gtceu.rocket_alloy_t1": "R型铝钢火箭合金", "material.gtceu.rocket_alloy_t2": "ASM 4914 钛合金火箭合金", @@ -188,17 +193,21 @@ "metaitem.crushed.tooltip.purify": "投入水中可获得纯净矿石", "item.gtceu.tool.behavior.silk_ice": "§d雕刻家:§r 可用精准采集获取浮冰", "item.gtceu.tool.butchery_knife.tooltip": "§屠夫:§r 屠宰动物可获得更多肉类", + "item.gtceu.tool.tooltip.repair_info": "", + "item.gtceu.tool.tooltip.repair_material": "", "gtceu.machine.lp_steam_extractor.tooltip": "§7不能提取流体", "gtceu.machine.hp_steam_extractor.tooltip": "§7不能提取流体", - "gtceu.jei.bedrock_fluid.moon_helium": "月球氦气", - "gtceu.jei.bedrock_fluid.moon_helium_3": "月球氦-3", - "gtceu.jei.bedrock_fluid.moon_argon": "月球氩气", - "gtceu.jei.bedrock_fluid.semiheavy_ammoniacal_water": "火星半重氨水", - "gtceu.jei.bedrock_fluid.liquid_carbon_dioxide": "火星液态二氧化碳", - "gtceu.jei.bedrock_fluid.heavy_ammoniacal_water": "火星重氨水", - "gtceu.jei.bedrock_fluid.liquid_ice": "火星冰", + "gtceu.jei.bedrock_fluid.nether_natural_gas_deposit": "幽冥之地天然气矿藏", + "gtceu.jei.bedrock_fluid.moon_helium": "月球氦气矿藏", + "gtceu.jei.bedrock_fluid.moon_helium_3": "月球氦-3矿藏", + "gtceu.jei.bedrock_fluid.moon_argon": "月球氩气矿藏", + "gtceu.jei.bedrock_fluid.semiheavy_ammoniacal_water": "火星半重氨水矿藏", + "gtceu.jei.bedrock_fluid.liquid_carbon_dioxide": "火星液态二氧化碳矿藏", + "gtceu.jei.bedrock_fluid.heavy_ammoniacal_water": "火星重氨水矿藏", + "gtceu.jei.bedrock_fluid.liquid_ice": "火星冰矿藏", "gtceu.recipe.category.ingot_molding": "压模", - "tagprefix.sword_head": "%s剑头", + "block.gtceu.wire_coil.tooltip_cracking": "§8裂化机,煤炭液化塔,§r\n§8月壤和紫金采集器:§r", + "tagprefix.sword_head": "%s剑身", "tagprefix.pickaxe_head": "%s镐头", "tagprefix.shovel_head": "%s铲头", "tagprefix.axe_head": "%s斧头", @@ -208,13 +217,13 @@ "tagprefix.hammer_head": "%s锤头", "tagprefix.saw_head": "%s锯头", "tagprefix.knife_head": "%s刀头", - "tagprefix.butchery_knife_head": "%s屠刀头", + "tagprefix.butchery_knife_head": "%s屠宰刀头", "tagprefix.mining_hammer_head": "%s采矿锤头", "tagprefix.spade_head": "%s锹头", "tagprefix.double_ingot": "%s双锭", - "tagprefix.poor_raw": "贫瘠%s原矿", - "tagprefix.rich_raw": "富集%s原矿", - "tagprefix.dusty_raw": "积尘%s原矿", + "tagprefix.poor_raw": "贫瘠粗%s", + "tagprefix.rich_raw": "富集粗%s", + "tagprefix.dusty_raw": "积尘粗%s", "tagprefix.gabbro": "辉长岩%s矿石", "tagprefix.shale": "页岩%s矿石", "tagprefix.claystone": "黏土岩%s矿石", diff --git a/kubejs/assets/gtceu/models/block/cube_3_layer/all.json b/kubejs/assets/gtceu/models/block/cube_3_layer/all.json new file mode 100644 index 000000000..bd4649c5f --- /dev/null +++ b/kubejs/assets/gtceu/models/block/cube_3_layer/all.json @@ -0,0 +1,24 @@ +{ + "parent": "gtceu:block/cube_3_layer/default", + "textures": { + "particle": "#bot_all", + "bot_down": "#bot_all", + "bot_up": "#bot_all", + "bot_north": "#bot_all", + "bot_east": "#bot_all", + "bot_south": "#bot_all", + "bot_west": "#bot_all", + "mid_down": "#mid_all", + "mid_up": "#mid_all", + "mid_north": "#mid_all", + "mid_east": "#mid_all", + "mid_south": "#mid_all", + "mid_west": "#mid_all", + "top_down": "#top_all", + "top_up": "#top_all", + "top_north": "#top_all", + "top_east": "#top_all", + "top_south": "#top_all", + "top_west": "#top_all" + } +} diff --git a/kubejs/assets/gtceu/models/block/cube_3_layer/all_translucent.json b/kubejs/assets/gtceu/models/block/cube_3_layer/all_translucent.json new file mode 100644 index 000000000..7e9b40eb4 --- /dev/null +++ b/kubejs/assets/gtceu/models/block/cube_3_layer/all_translucent.json @@ -0,0 +1,25 @@ +{ + "parent": "gtceu:block/cube_3_layer/default", + "render_type": "translucent", + "textures": { + "particle": "#bot_all", + "bot_down": "#bot_all", + "bot_up": "#bot_all", + "bot_north": "#bot_all", + "bot_east": "#bot_all", + "bot_south": "#bot_all", + "bot_west": "#bot_all", + "mid_down": "#mid_all", + "mid_up": "#mid_all", + "mid_north": "#mid_all", + "mid_east": "#mid_all", + "mid_south": "#mid_all", + "mid_west": "#mid_all", + "top_down": "#top_all", + "top_up": "#top_all", + "top_north": "#top_all", + "top_east": "#top_all", + "top_south": "#top_all", + "top_west": "#top_all" + } +} diff --git a/kubejs/assets/gtceu/models/block/cube_3_layer/default.json b/kubejs/assets/gtceu/models/block/cube_3_layer/default.json new file mode 100644 index 000000000..4919daa49 --- /dev/null +++ b/kubejs/assets/gtceu/models/block/cube_3_layer/default.json @@ -0,0 +1,43 @@ +{ + "parent": "block/block", + "elements": [ + { + "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "texture": "#bot_down", "cullface": "down", "tintindex": 0 }, + "up": { "texture": "#bot_up", "cullface": "up", "tintindex": 0 }, + "north": { "texture": "#bot_north", "cullface": "north", "tintindex": 0 }, + "south": { "texture": "#bot_south", "cullface": "south", "tintindex": 0 }, + "west": { "texture": "#bot_west", "cullface": "west", "tintindex": 0 }, + "east": { "texture": "#bot_east", "cullface": "east", "tintindex": 0 } + } + }, + { + "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "shade": false, + "faces": { + "down": { "texture": "#mid_down", "cullface": "down", "tintindex": 1 }, + "up": { "texture": "#mid_up", "cullface": "up", "tintindex": 1 }, + "north": { "texture": "#mid_north", "cullface": "north", "tintindex": 1 }, + "south": { "texture": "#mid_south", "cullface": "south", "tintindex": 1 }, + "west": { "texture": "#mid_west", "cullface": "west", "tintindex": 1 }, + "east": { "texture": "#mid_east", "cullface": "east", "tintindex": 1 } + } + }, + { + "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "shade": false, + "faces": { + "down": { "texture": "#top_down", "cullface": "down", "tintindex": 2 }, + "up": { "texture": "#top_up", "cullface": "up", "tintindex": 2 }, + "north": { "texture": "#top_north", "cullface": "north", "tintindex": 2 }, + "south": { "texture": "#top_south", "cullface": "south", "tintindex": 2 }, + "west": { "texture": "#top_west", "cullface": "west", "tintindex": 2 }, + "east": { "texture": "#top_east", "cullface": "east", "tintindex": 2 } + } + } + ] +} diff --git a/kubejs/assets/gtceu/models/block/machine/me_stocking_input_bus.json b/kubejs/assets/gtceu/models/block/machine/me_stocking_input_bus.json new file mode 100644 index 000000000..528c5ebe9 --- /dev/null +++ b/kubejs/assets/gtceu/models/block/machine/me_stocking_input_bus.json @@ -0,0 +1,56 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "gtceu:me_stocking_input_bus", + "replaceable_textures": [ + "bottom", + "top", + "side" + ], + "variants": { + "is_formed=false,is_painted=false": { + "model": { + "parent": "gtceu:block/machine/template/part/hatch_machine", + "textures": { + "bottom": "gtceu:block/casings/voltage/iv/bottom", + "overlay": "gtceu:block/overlay/appeng/me_input_bus", + "side": "gtceu:block/casings/voltage/iv/side", + "top": "gtceu:block/casings/voltage/iv/top" + } + } + }, + "is_formed=false,is_painted=true": { + "model": { + "parent": "gtceu:block/machine/template/part/hatch_machine_color_ring", + "textures": { + "bottom": "gtceu:block/casings/voltage/iv/bottom", + "overlay": "gtceu:block/overlay/appeng/me_input_bus", + "side": "gtceu:block/casings/voltage/iv/side", + "top": "gtceu:block/casings/voltage/iv/top" + } + } + }, + "is_formed=true,is_painted=false": { + "model": { + "parent": "gtceu:block/machine/template/part/hatch_machine", + "textures": { + "bottom": "gtceu:block/casings/voltage/iv/bottom", + "overlay": "gtceu:block/overlay/appeng/me_input_bus", + "side": "gtceu:block/casings/voltage/iv/side", + "top": "gtceu:block/casings/voltage/iv/top" + } + } + }, + "is_formed=true,is_painted=true": { + "model": { + "parent": "gtceu:block/machine/template/part/hatch_machine_color_ring", + "textures": { + "bottom": "gtceu:block/casings/voltage/iv/bottom", + "overlay": "gtceu:block/overlay/appeng/me_input_bus", + "side": "gtceu:block/casings/voltage/iv/side", + "top": "gtceu:block/casings/voltage/iv/top" + } + } + } + } +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/models/block/machine/me_stocking_input_hatch.json b/kubejs/assets/gtceu/models/block/machine/me_stocking_input_hatch.json new file mode 100644 index 000000000..dee53a4e1 --- /dev/null +++ b/kubejs/assets/gtceu/models/block/machine/me_stocking_input_hatch.json @@ -0,0 +1,56 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "gtceu:me_stocking_input_hatch", + "replaceable_textures": [ + "bottom", + "top", + "side" + ], + "variants": { + "is_formed=false,is_painted=false": { + "model": { + "parent": "gtceu:block/machine/template/part/hatch_machine", + "textures": { + "bottom": "gtceu:block/casings/voltage/iv/bottom", + "overlay": "gtceu:block/overlay/appeng/me_input_hatch", + "side": "gtceu:block/casings/voltage/iv/side", + "top": "gtceu:block/casings/voltage/iv/top" + } + } + }, + "is_formed=false,is_painted=true": { + "model": { + "parent": "gtceu:block/machine/template/part/hatch_machine_color_ring", + "textures": { + "bottom": "gtceu:block/casings/voltage/iv/bottom", + "overlay": "gtceu:block/overlay/appeng/me_input_hatch", + "side": "gtceu:block/casings/voltage/iv/side", + "top": "gtceu:block/casings/voltage/iv/top" + } + } + }, + "is_formed=true,is_painted=false": { + "model": { + "parent": "gtceu:block/machine/template/part/hatch_machine", + "textures": { + "bottom": "gtceu:block/casings/voltage/iv/bottom", + "overlay": "gtceu:block/overlay/appeng/me_input_hatch", + "side": "gtceu:block/casings/voltage/iv/side", + "top": "gtceu:block/casings/voltage/iv/top" + } + } + }, + "is_formed=true,is_painted=true": { + "model": { + "parent": "gtceu:block/machine/template/part/hatch_machine_color_ring", + "textures": { + "bottom": "gtceu:block/casings/voltage/iv/bottom", + "overlay": "gtceu:block/overlay/appeng/me_input_hatch", + "side": "gtceu:block/casings/voltage/iv/side", + "top": "gtceu:block/casings/voltage/iv/top" + } + } + } + } +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/models/block/material_sets/chonky/block.json b/kubejs/assets/gtceu/models/block/material_sets/chonky/block.json new file mode 100644 index 000000000..9f753d696 --- /dev/null +++ b/kubejs/assets/gtceu/models/block/material_sets/chonky/block.json @@ -0,0 +1,8 @@ +{ + "parent": "gtceu:block/cube_3_layer/all", + "textures": { + "bot_all": "gtceu:block/material_sets/chonky/block", + "mid_all": "gtceu:block/material_sets/chonky/block_secondary", + "top_all": "gtceu:block/material_sets/chonky/block_overlay" + } +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/models/block/material_sets/chonky/frame_gt.json b/kubejs/assets/gtceu/models/block/material_sets/chonky/frame_gt.json new file mode 100644 index 000000000..e98a4e16d --- /dev/null +++ b/kubejs/assets/gtceu/models/block/material_sets/chonky/frame_gt.json @@ -0,0 +1,8 @@ +{ + "parent": "gtceu:block/cube_3_layer/all_translucent", + "textures": { + "bot_all": "gtceu:block/material_sets/chonky/frame_gt", + "mid_all": "gtceu:block/material_sets/chonky/frame_gt_secondary", + "top_all": "gtceu:block/material_sets/chonky/frame_gt_overlay" + } +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/block.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/block.json new file mode 100644 index 000000000..495c503ae --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/block.json @@ -0,0 +1,3 @@ +{ + "parent": "gtceu:item/material_sets/chonky/block" +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/bolt.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/bolt.json new file mode 100644 index 000000000..e77b96e4f --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/bolt.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/bolt", + "layer1": "gtceu:item/material_sets/chonky/bolt_secondary", + "layer2": "gtceu:item/material_sets/chonky/bolt_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/foil.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/foil.json new file mode 100644 index 000000000..dca6eed74 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/foil.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/foil", + "layer1": "gtceu:item/material_sets/chonky/foil_secondary", + "layer2": "gtceu:item/material_sets/chonky/foil_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/frame_gt.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/frame_gt.json new file mode 100644 index 000000000..61f59e8b9 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/frame_gt.json @@ -0,0 +1,3 @@ +{ + "parent": "gtceu:item/material_sets/chonky/frame_gt" +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/gear.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/gear.json new file mode 100644 index 000000000..b0265d2c0 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/gear.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/gear", + "layer1": "gtceu:item/material_sets/chonky/gear_secondary", + "layer2": "gtceu:item/material_sets/chonky/gear_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/gear_small.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/gear_small.json new file mode 100644 index 000000000..dd51c5c7f --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/gear_small.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/gear_small", + "layer1": "gtceu:item/material_sets/chonky/gear_small_secondary", + "layer2": "gtceu:item/material_sets/chonky/gear_small_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/ingot.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/ingot.json new file mode 100644 index 000000000..d7347df75 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/ingot.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/ingot", + "layer1": "gtceu:item/material_sets/chonky/ingot_secondary", + "layer2": "gtceu:item/material_sets/chonky/ingot_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/ingot_double.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/ingot_double.json new file mode 100644 index 000000000..bffa7f1e1 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/ingot_double.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/ingot_double", + "layer1": "gtceu:item/material_sets/chonky/ingot_double_secondary", + "layer2": "gtceu:item/material_sets/chonky/ingot_double_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/ingot_hot.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/ingot_hot.json new file mode 100644 index 000000000..db6a4ec37 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/ingot_hot.json @@ -0,0 +1,9 @@ +{ + "parent": "gtceu:item/material_sets/chonky/ingot", + "textures": { + "layer0":"gtceu:item/material_sets/chonky/ingot", + "layer1":"gtceu:item/material_sets/chonky/ingot_secondary", + "layer2":"gtceu:item/material_sets/chonky/ingot_overlay", + "layer3":"gtceu:item/material_sets/chonky/ingot_hot_overlay" + } +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/nugget.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/nugget.json new file mode 100644 index 000000000..1b994d90c --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/nugget.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/nugget", + "layer1": "gtceu:item/material_sets/chonky/nugget_secondary", + "layer2": "gtceu:item/material_sets/chonky/nugget_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/plate.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/plate.json new file mode 100644 index 000000000..662218a13 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/plate.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/plate", + "layer1": "gtceu:item/material_sets/chonky/plate_secondary", + "layer2": "gtceu:item/material_sets/chonky/plate_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/plate_dense.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/plate_dense.json new file mode 100644 index 000000000..479760975 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/plate_dense.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/plate_dense", + "layer1": "gtceu:item/material_sets/chonky/plate_dense_secondary", + "layer2": "gtceu:item/material_sets/chonky/plate_dense_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/plate_double.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/plate_double.json new file mode 100644 index 000000000..ba5f9b677 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/plate_double.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/plate_double", + "layer1": "gtceu:item/material_sets/chonky/plate_double_secondary", + "layer2": "gtceu:item/material_sets/chonky/plate_double_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/ring.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/ring.json new file mode 100644 index 000000000..665aa603b --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/ring.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/ring", + "layer1": "gtceu:item/material_sets/chonky/ring_secondary", + "layer2": "gtceu:item/material_sets/chonky/ring_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/rod.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/rod.json new file mode 100644 index 000000000..05da66ead --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/rod.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/rod", + "layer1": "gtceu:item/material_sets/chonky/rod_secondary", + "layer2": "gtceu:item/material_sets/chonky/rod_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/rod_long.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/rod_long.json new file mode 100644 index 000000000..2856de974 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/rod_long.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/rod_long", + "layer1": "gtceu:item/material_sets/chonky/rod_long_secondary", + "layer2": "gtceu:item/material_sets/chonky/rod_long_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/rotor.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/rotor.json new file mode 100644 index 000000000..e411f89b0 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/rotor.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/rotor", + "layer1": "gtceu:item/material_sets/chonky/rotor_secondary", + "layer2": "gtceu:item/material_sets/chonky/rotor_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/round.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/round.json new file mode 100644 index 000000000..8be0d3752 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/round.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/round", + "layer1": "gtceu:item/material_sets/chonky/round_secondary", + "layer2": "gtceu:item/material_sets/chonky/round_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/screw.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/screw.json new file mode 100644 index 000000000..45d4b4464 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/screw.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/screw", + "layer1": "gtceu:item/material_sets/chonky/screw_secondary", + "layer2": "gtceu:item/material_sets/chonky/screw_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/spring.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/spring.json new file mode 100644 index 000000000..3999b33c5 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/spring.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/spring", + "layer1": "gtceu:item/material_sets/chonky/spring_secondary", + "layer2": "gtceu:item/material_sets/chonky/spring_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/spring_small.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/spring_small.json new file mode 100644 index 000000000..71ffb6a0b --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/spring_small.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/spring_small", + "layer1": "gtceu:item/material_sets/chonky/spring_small_secondary", + "layer2": "gtceu:item/material_sets/chonky/spring_small_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/tool_head_buzz_saw.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/tool_head_buzz_saw.json new file mode 100644 index 000000000..1481a0e52 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/tool_head_buzz_saw.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/tool_head_buzz_saw", + "layer1": "gtceu:item/material_sets/chonky/tool_head_buzz_saw_secondary", + "layer2": "gtceu:item/material_sets/chonky/tool_head_buzz_saw_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/tool_head_chainsaw.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/tool_head_chainsaw.json new file mode 100644 index 000000000..b97e0c3a9 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/tool_head_chainsaw.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/tool_head_chainsaw", + "layer1": "gtceu:item/material_sets/chonky/tool_head_chainsaw_secondary", + "layer2": "gtceu:item/material_sets/chonky/tool_head_chainsaw_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/tool_head_drill.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/tool_head_drill.json new file mode 100644 index 000000000..74085a203 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/tool_head_drill.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/tool_head_drill", + "layer1": "gtceu:item/material_sets/chonky/tool_head_drill_secondary", + "layer2": "gtceu:item/material_sets/chonky/tool_head_drill_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/tool_head_screwdriver.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/tool_head_screwdriver.json new file mode 100644 index 000000000..5e81cc3b4 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/tool_head_screwdriver.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/tool_head_screwdriver", + "layer1": "gtceu:item/material_sets/chonky/tool_head_screwdriver_secondary", + "layer2": "gtceu:item/material_sets/chonky/tool_head_screwdriver_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/tool_head_wrench.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/tool_head_wrench.json new file mode 100644 index 000000000..af4a2f5d9 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/tool_head_wrench.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/tool_head_wrench", + "layer1": "gtceu:item/material_sets/chonky/tool_head_wrench_secondary", + "layer2": "gtceu:item/material_sets/chonky/tool_head_wrench_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/turbine_blade.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/turbine_blade.json new file mode 100644 index 000000000..4778455f1 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/turbine_blade.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/turbine_blade", + "layer1": "gtceu:item/material_sets/chonky/turbine_blade_secondary", + "layer2": "gtceu:item/material_sets/chonky/turbine_blade_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/chonky/wire_fine.json b/kubejs/assets/gtceu/models/item/material_sets/chonky/wire_fine.json new file mode 100644 index 000000000..5a734e877 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/chonky/wire_fine.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/chonky/wire_fine", + "layer1": "gtceu:item/material_sets/chonky/wire_fine_secondary", + "layer2": "gtceu:item/material_sets/chonky/wire_fine_overlay" + } +} diff --git a/kubejs/assets/gtceu/textures/block/material_sets/chonky/block.png b/kubejs/assets/gtceu/textures/block/material_sets/chonky/block.png new file mode 100644 index 000000000..d456c5965 Binary files /dev/null and b/kubejs/assets/gtceu/textures/block/material_sets/chonky/block.png differ diff --git a/kubejs/assets/gtceu/textures/block/material_sets/chonky/block_overlay.png b/kubejs/assets/gtceu/textures/block/material_sets/chonky/block_overlay.png new file mode 100644 index 000000000..baf443562 Binary files /dev/null and b/kubejs/assets/gtceu/textures/block/material_sets/chonky/block_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/block/material_sets/chonky/block_secondary.png b/kubejs/assets/gtceu/textures/block/material_sets/chonky/block_secondary.png new file mode 100644 index 000000000..6b7c18018 Binary files /dev/null and b/kubejs/assets/gtceu/textures/block/material_sets/chonky/block_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/block/material_sets/chonky/frame_gt.png b/kubejs/assets/gtceu/textures/block/material_sets/chonky/frame_gt.png new file mode 100644 index 000000000..d4ad8581b Binary files /dev/null and b/kubejs/assets/gtceu/textures/block/material_sets/chonky/frame_gt.png differ diff --git a/kubejs/assets/gtceu/textures/block/material_sets/chonky/frame_gt_overlay.png b/kubejs/assets/gtceu/textures/block/material_sets/chonky/frame_gt_overlay.png new file mode 100644 index 000000000..bf82e85e4 Binary files /dev/null and b/kubejs/assets/gtceu/textures/block/material_sets/chonky/frame_gt_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/block/material_sets/chonky/frame_gt_secondary.png b/kubejs/assets/gtceu/textures/block/material_sets/chonky/frame_gt_secondary.png new file mode 100644 index 000000000..bf4df82cf Binary files /dev/null and b/kubejs/assets/gtceu/textures/block/material_sets/chonky/frame_gt_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/bolt.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/bolt.png new file mode 100644 index 000000000..156644f37 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/bolt.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/bolt_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/bolt_overlay.png new file mode 100644 index 000000000..a6eb6cb3f Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/bolt_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/bolt_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/bolt_secondary.png new file mode 100644 index 000000000..344589a8d Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/bolt_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/foil.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/foil.png new file mode 100644 index 000000000..60e99db47 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/foil.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/foil_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/foil_overlay.png new file mode 100644 index 000000000..1e4c20601 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/foil_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/foil_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/foil_secondary.png new file mode 100644 index 000000000..a66c6cdda Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/foil_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/gear.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/gear.png new file mode 100644 index 000000000..96da2eebd Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/gear.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/gear_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/gear_overlay.png new file mode 100644 index 000000000..658a48b00 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/gear_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/gear_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/gear_secondary.png new file mode 100644 index 000000000..372125edc Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/gear_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/gear_small.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/gear_small.png new file mode 100644 index 000000000..36d3fc087 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/gear_small.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/gear_small_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/gear_small_overlay.png new file mode 100644 index 000000000..d71c7ee5b Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/gear_small_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/gear_small_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/gear_small_secondary.png new file mode 100644 index 000000000..d11fceb51 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/gear_small_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot.png new file mode 100644 index 000000000..0c739c564 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_double.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_double.png new file mode 100644 index 000000000..2c889a4d6 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_double.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_double_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_double_overlay.png new file mode 100644 index 000000000..b6344c952 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_double_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_double_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_double_secondary.png new file mode 100644 index 000000000..4a7e09631 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_double_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_hot.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_hot.png new file mode 100644 index 000000000..0c739c564 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_hot.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_hot_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_hot_overlay.png new file mode 100644 index 000000000..66495dfa3 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_hot_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_hot_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_hot_secondary.png new file mode 100644 index 000000000..8bba7db7e Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_hot_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_overlay.png new file mode 100644 index 000000000..f9df6e60d Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_secondary.png new file mode 100644 index 000000000..8bba7db7e Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ingot_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/nugget.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/nugget.png new file mode 100644 index 000000000..2950dd58f Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/nugget.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/nugget_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/nugget_overlay.png new file mode 100644 index 000000000..2012f8c33 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/nugget_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/nugget_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/nugget_secondary.png new file mode 100644 index 000000000..8a2166461 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/nugget_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate.png new file mode 100644 index 000000000..c5852b31f Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_dense.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_dense.png new file mode 100644 index 000000000..f402c662d Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_dense.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_dense_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_dense_overlay.png new file mode 100644 index 000000000..881627b64 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_dense_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_dense_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_dense_secondary.png new file mode 100644 index 000000000..ec537401b Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_dense_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_double.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_double.png new file mode 100644 index 000000000..eb91a8825 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_double.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_double_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_double_overlay.png new file mode 100644 index 000000000..cc7c6e60a Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_double_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_double_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_double_secondary.png new file mode 100644 index 000000000..df0a19900 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_double_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_overlay.png new file mode 100644 index 000000000..98bb6f503 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_secondary.png new file mode 100644 index 000000000..89211c946 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/plate_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/ring.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ring.png new file mode 100644 index 000000000..37fd22e4d Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ring.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/ring_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ring_overlay.png new file mode 100644 index 000000000..4cb2f1b8c Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ring_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/ring_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ring_secondary.png new file mode 100644 index 000000000..00c57fd32 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/ring_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/rod.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/rod.png new file mode 100644 index 000000000..7861a5568 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/rod.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/rod_long.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/rod_long.png new file mode 100644 index 000000000..aac16b378 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/rod_long.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/rod_long_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/rod_long_overlay.png new file mode 100644 index 000000000..bf3ff7771 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/rod_long_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/rod_long_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/rod_long_secondary.png new file mode 100644 index 000000000..b36c0bb6c Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/rod_long_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/rod_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/rod_overlay.png new file mode 100644 index 000000000..9063b94be Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/rod_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/rod_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/rod_secondary.png new file mode 100644 index 000000000..e77a57cb3 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/rod_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/rotor.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/rotor.png new file mode 100644 index 000000000..12733d7d4 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/rotor.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/rotor_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/rotor_overlay.png new file mode 100644 index 000000000..d567d4eb2 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/rotor_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/rotor_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/rotor_secondary.png new file mode 100644 index 000000000..d6bfa4c80 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/rotor_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/round.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/round.png new file mode 100644 index 000000000..b85f9e915 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/round.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/round_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/round_overlay.png new file mode 100644 index 000000000..05589c8cc Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/round_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/round_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/round_secondary.png new file mode 100644 index 000000000..1c99631cd Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/round_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/screw.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/screw.png new file mode 100644 index 000000000..980f4e98a Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/screw.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/screw_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/screw_overlay.png new file mode 100644 index 000000000..b287140b2 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/screw_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/screw_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/screw_secondary.png new file mode 100644 index 000000000..d80e57b98 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/screw_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/spring.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/spring.png new file mode 100644 index 000000000..c4c81adf0 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/spring.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/spring_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/spring_overlay.png new file mode 100644 index 000000000..53d28ec22 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/spring_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/spring_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/spring_secondary.png new file mode 100644 index 000000000..f9d70dabc Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/spring_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/spring_small.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/spring_small.png new file mode 100644 index 000000000..a8975e211 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/spring_small.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/spring_small_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/spring_small_overlay.png new file mode 100644 index 000000000..401a0972b Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/spring_small_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/spring_small_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/spring_small_secondary.png new file mode 100644 index 000000000..71fc8e5e7 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/spring_small_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_buzz_saw.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_buzz_saw.png new file mode 100644 index 000000000..9ef67bf86 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_buzz_saw.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_buzz_saw_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_buzz_saw_overlay.png new file mode 100644 index 000000000..bdae8fcf8 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_buzz_saw_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_buzz_saw_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_buzz_saw_secondary.png new file mode 100644 index 000000000..485a43548 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_buzz_saw_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_chainsaw.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_chainsaw.png new file mode 100644 index 000000000..da3df1085 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_chainsaw.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_chainsaw_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_chainsaw_overlay.png new file mode 100644 index 000000000..4d2ba9f4d Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_chainsaw_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_chainsaw_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_chainsaw_secondary.png new file mode 100644 index 000000000..03bbe678f Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_chainsaw_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_drill.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_drill.png new file mode 100644 index 000000000..a941ed464 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_drill.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_drill_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_drill_overlay.png new file mode 100644 index 000000000..97569c6c5 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_drill_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_drill_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_drill_secondary.png new file mode 100644 index 000000000..5ebc3dcc4 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_drill_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_screwdriver.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_screwdriver.png new file mode 100644 index 000000000..69e290f23 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_screwdriver.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_screwdriver_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_screwdriver_overlay.png new file mode 100644 index 000000000..ef831b9cc Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_screwdriver_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_screwdriver_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_screwdriver_secondary.png new file mode 100644 index 000000000..78760659e Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_screwdriver_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_wrench.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_wrench.png new file mode 100644 index 000000000..a3898bc25 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_wrench.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_wrench_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_wrench_overlay.png new file mode 100644 index 000000000..f26a211aa Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_wrench_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_wrench_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_wrench_secondary.png new file mode 100644 index 000000000..217cb691c Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/tool_head_wrench_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/turbine_blade.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/turbine_blade.png new file mode 100644 index 000000000..46349c3c7 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/turbine_blade.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/turbine_blade_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/turbine_blade_overlay.png new file mode 100644 index 000000000..74ffd68e7 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/turbine_blade_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/turbine_blade_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/turbine_blade_secondary.png new file mode 100644 index 000000000..e1f7d5ff5 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/turbine_blade_secondary.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/wire_fine.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/wire_fine.png new file mode 100644 index 000000000..9dd582679 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/wire_fine.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/wire_fine_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/wire_fine_overlay.png new file mode 100644 index 000000000..8cc50d44b Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/wire_fine_overlay.png differ diff --git a/kubejs/assets/gtceu/textures/item/material_sets/chonky/wire_fine_secondary.png b/kubejs/assets/gtceu/textures/item/material_sets/chonky/wire_fine_secondary.png new file mode 100644 index 000000000..de7589ef7 Binary files /dev/null and b/kubejs/assets/gtceu/textures/item/material_sets/chonky/wire_fine_secondary.png differ diff --git a/kubejs/assets/tacz/lang/en_us.json b/kubejs/assets/tacz/lang/en_us.json index 7e1a52660..396fff866 100644 --- a/kubejs/assets/tacz/lang/en_us.json +++ b/kubejs/assets/tacz/lang/en_us.json @@ -25,8 +25,12 @@ "create_armorer.attachment.extended_mag_ca_2.name": "Copper Plated Magazine", "create_armorer.attachment.extended_mag_ca_3.name": "Brass Plated Magazine", "create_armorer.ammo.rbapb.name": "Rimmed Blunt Ammo", + "create_armorer.gun.pistol_auto_stress": "\"Stress\" Semi Pistol", "create_armorer.gun.mg_platemag_flywheel": "\"Flywheel\" Machine Gun", "create_armorer.gun.rifle_assult_crane": "\"Crane\" Assault Rifle", + "create_armorer.gun.sniper_semi_clockwork": "\"Clockwork\" Rifle", + "tacz.ammo.30_06.name": ".30-06 SLAP Ammo", + "tacz.gun.m700.name": "\"Clutch\" Sniper Rifle", "item.tacz.ammo_box.iron": "Steel Ammo Box", "item.tacz.ammo_box.gold": "§9Magnalium Ammo Box", "item.tacz.ammo_box.diamond": "§6Desh Ammo Box" diff --git a/kubejs/assets/tacz/lang/zh_cn.json b/kubejs/assets/tacz/lang/zh_cn.json index f3f3d4dc9..d152e2b2b 100644 --- a/kubejs/assets/tacz/lang/zh_cn.json +++ b/kubejs/assets/tacz/lang/zh_cn.json @@ -25,8 +25,12 @@ "create_armorer.attachment.extended_mag_ca_2.name": "镀铜弹匣", "create_armorer.attachment.extended_mag_ca_3.name": "镀黄铜弹匣", "create_armorer.ammo.rbapb.name": "凸缘式钝头弹", + "create_armorer.gun.pistol_auto_stress": "“重压”半自动手枪", "create_armorer.gun.mg_platemag_flywheel": "“飞轮”机枪", "create_armorer.gun.rifle_assult_crane": "“鹤式”突击步枪", + "create_armorer.gun.sniper_semi_clockwork": "“发条”步枪", + "tacz.ammo.30_06.name": ".30-06脱壳穿甲弹", + "tacz.gun.m700.name": "“擒纵”狙击步枪", "item.tacz.ammo_box.iron": "钢弹药盒", "item.tacz.ammo_box.gold": "§9镁铝合金弹药盒", "item.tacz.ammo_box.diamond": "§6戴斯弹药盒" diff --git a/kubejs/assets/tacz/textures/gun/slot/m700.png b/kubejs/assets/tacz/textures/gun/slot/m700.png new file mode 100644 index 000000000..35b6afacf Binary files /dev/null and b/kubejs/assets/tacz/textures/gun/slot/m700.png differ diff --git a/kubejs/assets/tacz/textures/gun/uv/m700.png b/kubejs/assets/tacz/textures/gun/uv/m700.png new file mode 100644 index 000000000..6f4918f17 Binary files /dev/null and b/kubejs/assets/tacz/textures/gun/uv/m700.png differ diff --git a/kubejs/assets/tacz/textures/gun/uv/m700_n.png b/kubejs/assets/tacz/textures/gun/uv/m700_n.png new file mode 100644 index 000000000..9096d4184 Binary files /dev/null and b/kubejs/assets/tacz/textures/gun/uv/m700_n.png differ diff --git a/kubejs/assets/tacz/textures/gun/uv/m700_s.png b/kubejs/assets/tacz/textures/gun/uv/m700_s.png new file mode 100644 index 000000000..f37bef343 Binary files /dev/null and b/kubejs/assets/tacz/textures/gun/uv/m700_s.png differ diff --git a/kubejs/assets/tfc/lang/en_us.json b/kubejs/assets/tfc/lang/en_us.json index 09c2b29bb..b06749ae8 100644 --- a/kubejs/assets/tfc/lang/en_us.json +++ b/kubejs/assets/tfc/lang/en_us.json @@ -12,6 +12,7 @@ "item.tfc.jute_net": "Burlap Net", "item.tfc.dirty_jute_net": "Dirty Burlap Net", "item.tfc.powder.salt": "Table Salt", + "item.tfc.blubber": "Animal Fat", "tfc.jei.raw_hide_knapping": "Raw Hide Knapping", "metal.tfg.redstone": "Redstone", "metal.tfg.red_alloy": "Red Alloy", diff --git a/kubejs/assets/tfc/lang/zh_cn.json b/kubejs/assets/tfc/lang/zh_cn.json index 598c85aec..0ac583e1e 100644 --- a/kubejs/assets/tfc/lang/zh_cn.json +++ b/kubejs/assets/tfc/lang/zh_cn.json @@ -12,6 +12,7 @@ "item.tfc.jute_net": "粗麻布网", "item.tfc.dirty_jute_net": "脏粗麻布网", "item.tfc.powder.salt": "食盐", + "item.tfc.blubber": "动物脂肪", "tfc.jei.raw_hide_knapping": "剥制生皮", "metal.tfg.redstone": "红石", "metal.tfg.red_alloy": "红色合金", diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/getting_started/primitive_alloys.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/getting_started/primitive_alloys.json index 02f4a4702..a76be7b4e 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/getting_started/primitive_alloys.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/getting_started/primitive_alloys.json @@ -14,7 +14,7 @@ }, { "type": "patchouli:text", - "text": "For example, to create 1000 mB of $(thing)Bronze$() (shown to the right), you would need between 880 and 920 mB of $(thing)Copper$(), and between 80 and 120 mB of $(thing)Tin$().$(br2)The next three pages show the recipes of the three bronzes. Each type of bronze can be used to make tools, $(l:mechanics/armor)Armor$(), and other metal items. They are slightly different so resulting tools will have different durability, efficiency, and attack damage." + "text": "For example, to create 1000 mB of $(thing)Bronze$() (shown to the right), you would need between 700 and 800 mB of $(thing)Copper$(), and between 200 and 300 mB of $(thing)Tin$().$(br2)The next three pages show the recipes of the three bronzes. Each type of bronze can be used to make tools, $(l:mechanics/armor)Armor$(), and other metal items. They are slightly different so resulting tools will have different durability, efficiency, and attack damage." }, { "type": "patchouli:spotlight", diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/anvils.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/anvils.json index 02998bb6f..0c7efe50a 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/anvils.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/anvils.json @@ -76,6 +76,16 @@ "title": "Perfectly Forged", "link_recipes": false, "text": "There are four tiers of forging bonus:$(li)Poorly Forged$(li)Well Forged$(li)Expertly Forged$(li)Perfectly Forged$(br2)These bonuses increase the power of your tool - making it break less often, mine faster, and/or do more damage in combat, depending on the tool." + }, + { + "type": "patchouli:text", + "anchor": "welding", + "text": "Welding is a process through which two items are fused together to create a new item. Welding works the same whether on a $(l:getting_started/primitive_anvils)Stone Anvil$() or a metal anvil.$(br2)First, you must place the two items you want to weld on the anvil. You can do this either by using the items on the anvil, or by opening the anvil interface and inserting them in the two leftmost slots.", + "title": "Welding" + }, + { + "type": "patchouli:text", + "text": "You also need to have at least one $(l:mechanics/flux)Flux$() in the anvil to aid the welding process. Then, while both items are $(l:mechanics/heating)hot enough$() to weld - the tooltip will say \"Can Weld\" - you must use any $(thing)Hammer$() on the anvil. You will hear a hammering sound and the items will be welded together. They can then be extracted by using $(item)$(k:key.use)$() on the anvil with an empty hand." } ], "read_by_default": true, diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/blast_furnace.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/blast_furnace.json index 29557a767..effad226e 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/blast_furnace.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/blast_furnace.json @@ -6,16 +6,16 @@ "pages": [ { "type": "patchouli:text", - "text": "A $(thing)Blast Furnace$() is an advanced device which is used in the creation of $(thing)Steel$(). By mixing $(l:getting_started/finding_ores)Iron Ores$(), $(l:tfg_tips/basic_automation)Coke$() or $(l:beneath/ores_and_minerals#cursecoal)Anthacite$(), and $(l:mechanics/flux)Flux$() in a controlled, hot environment, you can create a stronger metal than cast or wrought iron.$(br2)To obtain a blast furnace, you will first need a $(l:mechanics/crucible)Crucible$() and a lot of $(thing)Wrought Iron Sheets$()." + "text": "A $(thing)Blast Furnace$() is an advanced device which is used in the creation of $(thing)Steel$(). By mixing $(l:getting_started/finding_ores)Iron Ores$(), $(l:tfg_tips/basic_automation)Coke$() or $(l:beneath/ores_and_minerals#cursecoal)Anthacite$(), and $(l:mechanics/flux)Flux$() in a controlled, hot environment, you can create a stronger metal than cast or wrought iron.$(br2)To obtain a blast furnace, you will first need a $(l:mechanics/crucible)Crucible$() and a lot of $(thing)Wrought Iron Plates$()." }, { "type": "patchouli:crafting", "recipe": "tfc:crafting/blast_furnace", - "text": "Crafting a blast furnace itself requires a $(thing)Crucible$(), along with some of the $(thing)Wrought Iron Sheets$() you will need." + "text": "Crafting a blast furnace itself requires a $(thing)Crucible$(), along with some of the $(thing)Double Wrought Iron Plates$() you will need." }, { "type": "patchouli:text", - "text": "You will then need to construct the blast furnace, along with its $(thing)Chimney$(). The chimney must be composed out of $(l:mechanics/fire_clay#fire_bricks)Reinforced Fire Bricks$(), as they are strong enough to withstand the intense heat. These can be crafted from fire brick blocks, and either cast iron or wrought iron sheets. The sheets can be applied to each exposed face of the bricks by $(item)$(k:key.use)$() with the sheet in hand, or crafted into $(l:mechanics/blast_furnace_insulation)Blast Furnace Insulation$()." + "text": "You will then need to construct the blast furnace, along with its $(thing)Chimney$(). The chimney must be composed out of $(l:mechanics/fire_clay#fire_bricks)Reinforced Fire Bricks$(), as they are strong enough to withstand the intense heat. These can be crafted from fire brick blocks, and either cast iron or wrought iron plates. The plates can be applied to each exposed face of the bricks by $(item)$(k:key.sneak)$() + $(item)$(k:key.use)$() with the plate in hand, or crafted into $(l:mechanics/blast_furnace_insulation)Blast Furnace Insulation$()." }, { "type": "patchouli:multiblock", @@ -26,7 +26,7 @@ }, { "type": "patchouli:text", - "text": "The blast furnace's chimney can be up to five layers - each layer requiring four $(thing)Fire Bricks$() and twelve $(thing)Wrought Iron Sheets$() to complete. Having more layers increases the total capacity of the blast furnace, allowing it to smelt more steel at once. Each chimney layer, up to a maximum of five, allows the blast furnace to hold four additional ore items." + "text": "The blast furnace's chimney can be up to five layers - each layer requiring four $(thing)Fire Bricks$() and twelve $(thing)Wrought Iron Plates$() to complete. Having more layers increases the total capacity of the blast furnace, allowing it to smelt more steel at once. Each chimney layer, up to a maximum of five, allows the blast furnace to hold four additional ore items." }, { "type": "patchouli:text", @@ -55,7 +55,7 @@ }, { "type": "patchouli:text", - "text": "Finally, to get started, light the blast furnace with a $(l:getting_started/firepit#firestarter)Fire Starter$(), a $(thing)Flint and Pyrite$(), or a $(thing)Flint and Steel$(). It will begin to heat the ores inside. Make sure that the blast furnace continues to have fuel, and use the bellows to add air to the blast furnace after its internal temperature has reached the maximum for charcoal. After the ores inside heat up, they will melt and convert into $(l:mechanics/steel)Pig Iron$()." + "text": "Finally, to get started, light the blast furnace with a $(l:getting_started/firepit#firestarter)Fire Starter$() or a $(thing)Flint and Steel$(). It will begin to heat the ores inside. Make sure that the blast furnace continues to have fuel, and use the bellows to add air to the blast furnace after its internal temperature has reached the maximum for charcoal. After the ores inside heat up, they will melt and convert into $(l:mechanics/steel)Pig Iron$()." }, { "type": "patchouli:text", diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/bloomery.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/bloomery.json index 86959d363..7a8671585 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/bloomery.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/bloomery.json @@ -11,7 +11,7 @@ { "type": "patchouli:crafting", "recipe": "tfc:crafting/bloomery", - "text": "The bloomery is made from 8 $(thing)Bronze Double Sheets$()." + "text": "The bloomery is made from 8 $(thing)Bronze Double Plates$()." }, { "type": "patchouli:multiblock", diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_ores/earth_ore_index.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_ores/earth_ore_index.json index c58119369..89c3c42d0 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_ores/earth_ore_index.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_ores/earth_ore_index.json @@ -14,7 +14,7 @@ }, { "Type": "patchouli:text", - "text": "$(li)Almandine: $(l:tfg_ores/earth_vein_index#deep_sapphire)38%$(/l)$()$(li)Alunite: $(l:tfg_ores/earth_vein_index#normal_saltpeter)15%$(/l)$()$(li)Amethyst: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)65%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)25%$(/l)$()$(li)Apatite: $(l:tfg_ores/earth_vein_index#normal_apatite)50%$(/l)$()$(li)Asbestos: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_quartz)18%$(/l)$()$(li)Barite: $(l:tfg_ores/earth_vein_index#normal_quartz)37%$(/l)$()$(li)Basaltic Mineral Sands: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)35%$(/l)$()$(li)Bastnasite: $(l:tfg_ores/earth_vein_index#normal_monazite)62%$(/l)$()$(li)Bauxite: $(l:tfg_ores/earth_vein_index#normal_mica)25%$(/l)$()$(li)Bentonite: $(l:tfg_ores/earth_vein_index#normal_olivine)35%$(/l)$()$(li)Beryllium: $(l:tfg_ores/earth_vein_index#normal_beryllium)35%$(/l)$()$(li)Bismuth: $(l:tfg_ores/earth_vein_index#surface_bismuthinite)80%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)70%$(/l)$()$(li)Blue Topaz: $(l:tfg_ores/earth_vein_index#deep_topaz)35%$(/l)$()$(li)Borax: $(l:tfg_ores/earth_vein_index#normal_gypsum)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_salt)15%$(/l)$()", + "text": "$(li)Almandine: $(l:tfg_ores/earth_vein_index#deep_sapphire)38%$(/l)$()$(li)Alunite: $(l:tfg_ores/earth_vein_index#normal_saltpeter)15%$(/l)$()$(li)Amethyst: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)65%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)25%$(/l)$()$(li)Apatite: $(l:tfg_ores/earth_vein_index#normal_apatite)50%$(/l)$()$(li)Asbestos: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_quartz)18%$(/l)$()$(li)Barite: $(l:tfg_ores/earth_vein_index#normal_quartz)37%$(/l)$()$(li)Basaltic Mineral Sands: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)35%$(/l)$()$(li)Bastnasite: $(l:tfg_ores/earth_vein_index#normal_monazite)62%$(/l)$()$(li)Bauxite: $(l:tfg_ores/earth_vein_index#normal_mica)25%$(/l)$()$(li)Bentonite: $(l:tfg_ores/earth_vein_index#normal_olivine)35%$(/l)$()$(li)Beryllium: $(l:tfg_ores/earth_vein_index#normal_beryllium)35%$(/l)$()$(li)Bismuth: $(l:tfg_ores/earth_vein_index#surface_bismuthinite)80%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)70%$(/l)$()$(li)Blue Topaz: $(l:tfg_ores/earth_vein_index#deep_topaz)35%$(/l)$()$(li)Borax: $(l:tfg_ores/earth_vein_index#normal_gypsum)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_tarkianite)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_salt)15%$(/l)$()", "type": "patchouli:text" }, { @@ -34,7 +34,7 @@ }, { "Type": "patchouli:text", - "text": "$(li)Native Silver: $(l:tfg_ores/earth_vein_index#normal_silver)15%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)10%$(/l), $(l:tfg_ores/earth_vein_index#surface_bismuthinite)10%$(/l)$()$(li)Neodymium: $(l:tfg_ores/earth_vein_index#normal_monazite)6%$(/l)$()$(li)Nickel: $(l:tfg_ores/earth_vein_index#normal_garnierite)10%$(/l)$()$(li)Oilsands: $(l:tfg_ores/earth_vein_index#normal_oilsands)100%$(/l)$()$(li)Olivine: $(l:tfg_ores/earth_vein_index#normal_olivine)25%$(/l)$()$(li)Opal: $(l:tfg_ores/earth_vein_index#deep_garnet_opal)55%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)15%$(/l)$()$(li)Pentlandite: $(l:tfg_ores/earth_vein_index#normal_garnierite)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_lubricant)15%$(/l)$()$(li)Pitchblende: $(l:tfg_ores/earth_vein_index#deep_pitchblende)62%$(/l)$()$(li)Platinum: $(l:tfg_ores/earth_vein_index#deep_sheldonite)7%$(/l)$()$(li)Pollucite: $(l:tfg_ores/earth_vein_index#normal_mica)15%$(/l)$()$(li)Powellite: $(l:tfg_ores/earth_vein_index#deep_molybdenum)17%$(/l)$()$(li)Pyrite: $(l:tfg_ores/earth_vein_index#normal_sulfur)35%$(/l), $(l:tfg_ores/earth_vein_index#normal_sphalerite)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_copper)10%$(/l), $(l:tfg_ores/earth_vein_index#surface_sphalerite)5%$(/l)$()$(li)Pyrochlore: $(l:tfg_ores/earth_vein_index#normal_apatite)15%$(/l)$()$(li)Pyrolusite: $(l:tfg_ores/earth_vein_index#normal_manganese)25%$(/l)$()", + "text": "$(li)Native Silver: $(l:tfg_ores/earth_vein_index#normal_silver)15%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)10%$(/l), $(l:tfg_ores/earth_vein_index#surface_bismuthinite)10%$(/l)$()$(li)Neodymium: $(l:tfg_ores/earth_vein_index#normal_monazite)6%$(/l)$()$(li)Nickel: $(l:tfg_ores/earth_vein_index#normal_garnierite)10%$(/l)$()$(li)Oilsands: $(l:tfg_ores/earth_vein_index#normal_oilsands)100%$(/l), $(l:tfg_ores/earth_vein_index#normal_tarkianite)35%$(/l)$()$(li)Olivine: $(l:tfg_ores/earth_vein_index#normal_olivine)25%$(/l)$()$(li)Opal: $(l:tfg_ores/earth_vein_index#deep_garnet_opal)55%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)15%$(/l)$()$(li)Pentlandite: $(l:tfg_ores/earth_vein_index#normal_garnierite)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_lubricant)15%$(/l)$()$(li)Pitchblende: $(l:tfg_ores/earth_vein_index#deep_pitchblende)62%$(/l)$()$(li)Platinum: $(l:tfg_ores/earth_vein_index#deep_sheldonite)7%$(/l)$()$(li)Pollucite: $(l:tfg_ores/earth_vein_index#normal_mica)15%$(/l)$()$(li)Powellite: $(l:tfg_ores/earth_vein_index#deep_molybdenum)17%$(/l)$()$(li)Pyrite: $(l:tfg_ores/earth_vein_index#normal_sulfur)35%$(/l), $(l:tfg_ores/earth_vein_index#normal_sphalerite)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_copper)10%$(/l), $(l:tfg_ores/earth_vein_index#surface_sphalerite)5%$(/l)$()$(li)Pyrochlore: $(l:tfg_ores/earth_vein_index#normal_apatite)15%$(/l)$()$(li)Pyrolusite: $(l:tfg_ores/earth_vein_index#normal_manganese)25%$(/l)$()", "type": "patchouli:text" }, { @@ -44,12 +44,12 @@ }, { "Type": "patchouli:text", - "text": "$(li)Sphalerite: $(l:tfg_ores/earth_vein_index#normal_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#surface_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#normal_sulfur)15%$(/l)$()$(li)Spodumene: $(l:tfg_ores/earth_vein_index#normal_spodumene)35%$(/l)$()$(li)Stibnite: $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)20%$(/l), $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)20%$(/l)$()$(li)Sulfur: $(l:tfg_ores/earth_vein_index#surface_sphalerite)55%$(/l), $(l:tfg_ores/earth_vein_index#normal_sulfur)50%$(/l), $(l:tfg_ores/earth_vein_index#normal_sphalerite)35%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)9%$(/l), $(l:tfg_ores/earth_vein_index#surface_bismuthinite)3%$(/l)$()$(li)Talc: $(l:tfg_ores/earth_vein_index#normal_lubricant)20%$(/l)$()$(li)Tantalite: $(l:tfg_ores/earth_vein_index#normal_manganese)12%$(/l)$()$(li)Tetrahedrite: $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)60%$(/l), $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)50%$(/l)$()$(li)Thorium: $(l:tfg_ores/earth_vein_index#normal_beryllium)15%$(/l)$()$(li)Tin: $(l:tfg_ores/earth_vein_index#normal_cassiterite)60%$(/l), $(l:tfg_ores/earth_vein_index#surface_cassiterite)40%$(/l)$()$(li)Topaz: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()$(li)Tricalcium Phosphate: $(l:tfg_ores/earth_vein_index#normal_apatite)35%$(/l)$()$(li)Trona: $(l:tfg_ores/earth_vein_index#normal_lubricant)10%$(/l)$()$(li)Tungstate: $(l:tfg_ores/earth_vein_index#deep_scheelite)35%$(/l)$()$(li)Uraninite: $(l:tfg_ores/earth_vein_index#deep_pitchblende)25%$(/l)$()", + "text": "$(li)Sphalerite: $(l:tfg_ores/earth_vein_index#normal_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#surface_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#normal_sulfur)15%$(/l)$()$(li)Spodumene: $(l:tfg_ores/earth_vein_index#normal_spodumene)35%$(/l)$()$(li)Stibnite: $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)20%$(/l), $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)20%$(/l)$()$(li)Sulfur: $(l:tfg_ores/earth_vein_index#surface_sphalerite)55%$(/l), $(l:tfg_ores/earth_vein_index#normal_sulfur)50%$(/l), $(l:tfg_ores/earth_vein_index#normal_sphalerite)35%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)9%$(/l), $(l:tfg_ores/earth_vein_index#surface_bismuthinite)3%$(/l)$()$(li)Talc: $(l:tfg_ores/earth_vein_index#normal_lubricant)20%$(/l)$()$(li)Tantalite: $(l:tfg_ores/earth_vein_index#normal_manganese)12%$(/l)$()$(li)Tarkianite: $(l:tfg_ores/earth_vein_index#normal_tarkianite)35%$(/l)$()$(li)Tetrahedrite: $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)60%$(/l), $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)50%$(/l)$()$(li)Thorium: $(l:tfg_ores/earth_vein_index#normal_beryllium)15%$(/l)$()$(li)Tin: $(l:tfg_ores/earth_vein_index#normal_cassiterite)60%$(/l), $(l:tfg_ores/earth_vein_index#surface_cassiterite)40%$(/l)$()$(li)Topaz: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()$(li)Tricalcium Phosphate: $(l:tfg_ores/earth_vein_index#normal_apatite)35%$(/l)$()$(li)Trona: $(l:tfg_ores/earth_vein_index#normal_lubricant)10%$(/l), $(l:tfg_ores/earth_vein_index#normal_tarkianite)10%$(/l)$()$(li)Tungstate: $(l:tfg_ores/earth_vein_index#deep_scheelite)35%$(/l)$()", "type": "patchouli:text" }, { "Type": "patchouli:text", - "text": "$(li)Vanadium Magnetite: $(l:tfg_ores/earth_vein_index#normal_magnetite)22%$(/l), $(l:tfg_ores/earth_vein_index#deep_magnetite)25%$(/l)$()$(li)Wulfenite: $(l:tfg_ores/earth_vein_index#deep_molybdenum)47%$(/l), $(l:tfg_ores/earth_vein_index#deep_pitchblende)12%$(/l)$()$(li)Yellow Garnet: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)15%$(/l)$()$(li)Yellow Limonite: $(l:tfg_ores/earth_vein_index#normal_limonite)50%$(/l), $(l:tfg_ores/earth_vein_index#normal_hematite)30%$(/l), $(l:tfg_ores/earth_vein_index#normal_gold)20%$(/l), $(l:tfg_ores/earth_vein_index#deep_hematite)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_limonite)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_gold)5%$(/l)$()$(li)Zeolite: $(l:tfg_ores/earth_vein_index#surface_copper)16%$(/l)$()", + "text": "$(li)Uraninite: $(l:tfg_ores/earth_vein_index#deep_pitchblende)25%$(/l)$()$(li)Vanadium Magnetite: $(l:tfg_ores/earth_vein_index#normal_magnetite)22%$(/l), $(l:tfg_ores/earth_vein_index#deep_magnetite)25%$(/l)$()$(li)Wulfenite: $(l:tfg_ores/earth_vein_index#deep_molybdenum)47%$(/l), $(l:tfg_ores/earth_vein_index#deep_pitchblende)12%$(/l)$()$(li)Yellow Garnet: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)15%$(/l)$()$(li)Yellow Limonite: $(l:tfg_ores/earth_vein_index#normal_limonite)50%$(/l), $(l:tfg_ores/earth_vein_index#normal_hematite)30%$(/l), $(l:tfg_ores/earth_vein_index#normal_gold)20%$(/l), $(l:tfg_ores/earth_vein_index#deep_hematite)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_limonite)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_gold)5%$(/l)$()$(li)Zeolite: $(l:tfg_ores/earth_vein_index#surface_copper)16%$(/l)$()", "type": "patchouli:text" } ], diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_ores/earth_vein_index.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_ores/earth_vein_index.json index d3d701b13..c3413c541 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_ores/earth_vein_index.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_ores/earth_vein_index.json @@ -29,7 +29,7 @@ }, { "Type": "patchouli:text", - "text": "$(li)$(l:tfg_ores/earth_vein_index#normal_sulfur)Sulfur & Pyrite$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_tetrahedrite)Tetrahedrite (Normal)$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_tetrahedrite)Tetrahedrite (Surface)$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_topaz)Topaz & Chalcocite$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_pitchblende)Uraninite & Pitchblende$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_molybdenum)Wulfenite & Molybdenite$()$()", + "text": "$(li)$(l:tfg_ores/earth_vein_index#normal_sulfur)Sulfur & Pyrite$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_tarkianite)Tarkianite & Oilsands$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_tetrahedrite)Tetrahedrite (Normal)$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_tetrahedrite)Tetrahedrite (Surface)$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_topaz)Topaz & Chalcocite$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_pitchblende)Uraninite & Pitchblende$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_molybdenum)Wulfenite & Molybdenite$()$()", "type": "patchouli:text" }, { @@ -1930,7 +1930,7 @@ }, { "Type": "patchouli:text", - "text": "$(thing)Rarity$(): 190$(br)$(thing)Density$(): 0.25$(br)$(thing)Type$(): Cluster Vein$(br)$(thing)Y$(): 0 — 210$(br)$(thing)Size$(): 36$(br)$(thing)Indicator Max Depth$(): 40$(br2)$(thing)Stone Types$(): Diorite, Gabbro, Gneiss, Granite, Marble, Phyllite, Quartzite, Schist, Slate", + "text": "$(thing)Rarity$(): 190$(br)$(thing)Density$(): 0.25$(br)$(thing)Type$(): Cluster Vein$(br)$(thing)Y$(): 0 — 210$(br)$(thing)Size$(): 36$(br)$(thing)Indicator Max Depth$(): 60$(br2)$(thing)Stone Types$(): Diorite, Gabbro, Gneiss, Granite, Marble, Phyllite, Quartzite, Schist, Slate", "title": "Kyanite, Mica, & Bauxite", "type": "patchouli:text", "anchor": "normal_mica" @@ -3543,6 +3543,98 @@ "text": "$(thing)Percentage$(): 15%$(br)$(thing)Melts into$(): Zinc$(br)$(thing)Formula$(): ZnS", "type": "patchouli:multiblock" }, + { + "Type": "patchouli:text", + "text": "$(thing)Rarity$(): 140$(br)$(thing)Density$(): 0.35$(br)$(thing)Type$(): Pipe Vein$(br)$(thing)Y$(): 20 — 120$(br)$(thing)Height$(): 60$(br)$(thing)Radius$(): 10$(br)$(thing)Indicator Max Depth$(): 20$(br2)$(thing)Stone Types$(): Andesite, Basalt, Chalk, Chert, Claystone, Conglomerate, Dacite, Diorite, Dolomite, Gabbro, Gneiss, Granite, Limestone, Marble, Phyllite, Quartzite, Rhyolite, Schist, Shale, Slate$(br2)Only appears in deserts to the $(thing)South-West$(), with a minimum temperature of 7°C and a maximum rainfall of 100mm.", + "title": "Tarkianite & Oilsands", + "type": "patchouli:text", + "anchor": "normal_tarkianite" + }, + { + "Type": "patchouli:multiblock", + "name": "Tarkianite", + "multiblock": { + "mapping": { + "0": "#forge:ores/tarkianite" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Percentage$(): 35%$(br)$(thing)Source of$(): Rhenium, Molybdenum$(br)$(thing)Formula$(): CuFeRe₄Mo₄S₈", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:multiblock", + "name": "Oilsands", + "multiblock": { + "mapping": { + "0": "#forge:ores/oilsands" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Percentage$(): 35%$(br)$(thing)Source of$(): Freedom \uD83D\uDEE2\uD83E\uDD85\uD83D\uDDFD", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:multiblock", + "name": "Borax", + "multiblock": { + "mapping": { + "0": "#forge:ores/borax" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Percentage$(): 20%$(br)$(thing)Source of$(): Sodium, Boron$(br)$(thing)Formula$(): Na₂B₄(H₂O)₁₀O₇", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:multiblock", + "name": "Trona", + "multiblock": { + "mapping": { + "0": "#forge:ores/trona" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Percentage$(): 10%$(br)$(thing)Source of$(): Sodium$(br)$(thing)Formula$(): Na₃C₂H(H₂O)₂O₆", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:empty", + "draw_filler": true, + "type": "patchouli:empty" + }, { "Type": "patchouli:text", "text": "$(thing)Rarity$(): 170$(br)$(thing)Density$(): 0.4$(br)$(thing)Type$(): Cluster Vein$(br)$(thing)Y$(): -32 — 75$(br)$(thing)Size$(): 40$(br)$(thing)Indicator Max Depth$(): 60$(br2)$(thing)Stone Types$(): Gneiss, Marble, Phyllite, Quartzite, Schist, Slate", diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_ores/nether_vein_index.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_ores/nether_vein_index.json index 1146e818f..58f18ab04 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_ores/nether_vein_index.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_ores/nether_vein_index.json @@ -2543,7 +2543,7 @@ ] }, "enable_visualize": false, - "text": "$(thing)Percentage$(): 100%$(br)$(thing)Used for$(): Fertiliser$(br)$(thing)Formula$(): KCl", + "text": "$(thing)Percentage$(): 100%$(br)$(thing)Used for$(): Fertilizer$(br)$(thing)Formula$(): KCl", "type": "patchouli:multiblock" }, { diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/anvil_working_guide.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/anvil_working_guide.json index 118aad884..b210c5cac 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/anvil_working_guide.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/anvil_working_guide.json @@ -131,7 +131,7 @@ }, { "type": "patchouli:text", - "text": "Rod Target Value: $(bold)78$()$(br)Required Steps: Draw->Draw->Bend$(br)\"requiredWork\": (-15 x 2) + 7 = -23$(br)Derived Value: 78 + 23 = 101.$(br)Reaching the Value: (Shrink x 5)->(Bend x 3)$(br)Getting the Item: 101 - 15 - 15 + 7 = 101." + "text": "Rod Target Value: $(bold)78$()$(br)Required Steps: Draw->Draw->Bend$(br)\"requiredWork\": (-15 x 2) + 7 = -23$(br)Derived Value: 78 + 23 = 101.$(br)Reaching the Value: (Shrink x 5)->(Bend x 3)$(br)Getting the Item: 101 - 15 - 15 + 7 = 78." }, { "type": "patchouli:text", diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/fr_fr/entries/tfg_ores/earth_ore_index.json b/kubejs/assets/tfc/patchouli_books/field_guide/fr_fr/entries/tfg_ores/earth_ore_index.json index c58119369..89c3c42d0 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/fr_fr/entries/tfg_ores/earth_ore_index.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/fr_fr/entries/tfg_ores/earth_ore_index.json @@ -14,7 +14,7 @@ }, { "Type": "patchouli:text", - "text": "$(li)Almandine: $(l:tfg_ores/earth_vein_index#deep_sapphire)38%$(/l)$()$(li)Alunite: $(l:tfg_ores/earth_vein_index#normal_saltpeter)15%$(/l)$()$(li)Amethyst: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)65%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)25%$(/l)$()$(li)Apatite: $(l:tfg_ores/earth_vein_index#normal_apatite)50%$(/l)$()$(li)Asbestos: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_quartz)18%$(/l)$()$(li)Barite: $(l:tfg_ores/earth_vein_index#normal_quartz)37%$(/l)$()$(li)Basaltic Mineral Sands: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)35%$(/l)$()$(li)Bastnasite: $(l:tfg_ores/earth_vein_index#normal_monazite)62%$(/l)$()$(li)Bauxite: $(l:tfg_ores/earth_vein_index#normal_mica)25%$(/l)$()$(li)Bentonite: $(l:tfg_ores/earth_vein_index#normal_olivine)35%$(/l)$()$(li)Beryllium: $(l:tfg_ores/earth_vein_index#normal_beryllium)35%$(/l)$()$(li)Bismuth: $(l:tfg_ores/earth_vein_index#surface_bismuthinite)80%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)70%$(/l)$()$(li)Blue Topaz: $(l:tfg_ores/earth_vein_index#deep_topaz)35%$(/l)$()$(li)Borax: $(l:tfg_ores/earth_vein_index#normal_gypsum)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_salt)15%$(/l)$()", + "text": "$(li)Almandine: $(l:tfg_ores/earth_vein_index#deep_sapphire)38%$(/l)$()$(li)Alunite: $(l:tfg_ores/earth_vein_index#normal_saltpeter)15%$(/l)$()$(li)Amethyst: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)65%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)25%$(/l)$()$(li)Apatite: $(l:tfg_ores/earth_vein_index#normal_apatite)50%$(/l)$()$(li)Asbestos: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_quartz)18%$(/l)$()$(li)Barite: $(l:tfg_ores/earth_vein_index#normal_quartz)37%$(/l)$()$(li)Basaltic Mineral Sands: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)35%$(/l)$()$(li)Bastnasite: $(l:tfg_ores/earth_vein_index#normal_monazite)62%$(/l)$()$(li)Bauxite: $(l:tfg_ores/earth_vein_index#normal_mica)25%$(/l)$()$(li)Bentonite: $(l:tfg_ores/earth_vein_index#normal_olivine)35%$(/l)$()$(li)Beryllium: $(l:tfg_ores/earth_vein_index#normal_beryllium)35%$(/l)$()$(li)Bismuth: $(l:tfg_ores/earth_vein_index#surface_bismuthinite)80%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)70%$(/l)$()$(li)Blue Topaz: $(l:tfg_ores/earth_vein_index#deep_topaz)35%$(/l)$()$(li)Borax: $(l:tfg_ores/earth_vein_index#normal_gypsum)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_tarkianite)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_salt)15%$(/l)$()", "type": "patchouli:text" }, { @@ -34,7 +34,7 @@ }, { "Type": "patchouli:text", - "text": "$(li)Native Silver: $(l:tfg_ores/earth_vein_index#normal_silver)15%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)10%$(/l), $(l:tfg_ores/earth_vein_index#surface_bismuthinite)10%$(/l)$()$(li)Neodymium: $(l:tfg_ores/earth_vein_index#normal_monazite)6%$(/l)$()$(li)Nickel: $(l:tfg_ores/earth_vein_index#normal_garnierite)10%$(/l)$()$(li)Oilsands: $(l:tfg_ores/earth_vein_index#normal_oilsands)100%$(/l)$()$(li)Olivine: $(l:tfg_ores/earth_vein_index#normal_olivine)25%$(/l)$()$(li)Opal: $(l:tfg_ores/earth_vein_index#deep_garnet_opal)55%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)15%$(/l)$()$(li)Pentlandite: $(l:tfg_ores/earth_vein_index#normal_garnierite)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_lubricant)15%$(/l)$()$(li)Pitchblende: $(l:tfg_ores/earth_vein_index#deep_pitchblende)62%$(/l)$()$(li)Platinum: $(l:tfg_ores/earth_vein_index#deep_sheldonite)7%$(/l)$()$(li)Pollucite: $(l:tfg_ores/earth_vein_index#normal_mica)15%$(/l)$()$(li)Powellite: $(l:tfg_ores/earth_vein_index#deep_molybdenum)17%$(/l)$()$(li)Pyrite: $(l:tfg_ores/earth_vein_index#normal_sulfur)35%$(/l), $(l:tfg_ores/earth_vein_index#normal_sphalerite)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_copper)10%$(/l), $(l:tfg_ores/earth_vein_index#surface_sphalerite)5%$(/l)$()$(li)Pyrochlore: $(l:tfg_ores/earth_vein_index#normal_apatite)15%$(/l)$()$(li)Pyrolusite: $(l:tfg_ores/earth_vein_index#normal_manganese)25%$(/l)$()", + "text": "$(li)Native Silver: $(l:tfg_ores/earth_vein_index#normal_silver)15%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)10%$(/l), $(l:tfg_ores/earth_vein_index#surface_bismuthinite)10%$(/l)$()$(li)Neodymium: $(l:tfg_ores/earth_vein_index#normal_monazite)6%$(/l)$()$(li)Nickel: $(l:tfg_ores/earth_vein_index#normal_garnierite)10%$(/l)$()$(li)Oilsands: $(l:tfg_ores/earth_vein_index#normal_oilsands)100%$(/l), $(l:tfg_ores/earth_vein_index#normal_tarkianite)35%$(/l)$()$(li)Olivine: $(l:tfg_ores/earth_vein_index#normal_olivine)25%$(/l)$()$(li)Opal: $(l:tfg_ores/earth_vein_index#deep_garnet_opal)55%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)15%$(/l)$()$(li)Pentlandite: $(l:tfg_ores/earth_vein_index#normal_garnierite)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_lubricant)15%$(/l)$()$(li)Pitchblende: $(l:tfg_ores/earth_vein_index#deep_pitchblende)62%$(/l)$()$(li)Platinum: $(l:tfg_ores/earth_vein_index#deep_sheldonite)7%$(/l)$()$(li)Pollucite: $(l:tfg_ores/earth_vein_index#normal_mica)15%$(/l)$()$(li)Powellite: $(l:tfg_ores/earth_vein_index#deep_molybdenum)17%$(/l)$()$(li)Pyrite: $(l:tfg_ores/earth_vein_index#normal_sulfur)35%$(/l), $(l:tfg_ores/earth_vein_index#normal_sphalerite)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_copper)10%$(/l), $(l:tfg_ores/earth_vein_index#surface_sphalerite)5%$(/l)$()$(li)Pyrochlore: $(l:tfg_ores/earth_vein_index#normal_apatite)15%$(/l)$()$(li)Pyrolusite: $(l:tfg_ores/earth_vein_index#normal_manganese)25%$(/l)$()", "type": "patchouli:text" }, { @@ -44,12 +44,12 @@ }, { "Type": "patchouli:text", - "text": "$(li)Sphalerite: $(l:tfg_ores/earth_vein_index#normal_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#surface_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#normal_sulfur)15%$(/l)$()$(li)Spodumene: $(l:tfg_ores/earth_vein_index#normal_spodumene)35%$(/l)$()$(li)Stibnite: $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)20%$(/l), $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)20%$(/l)$()$(li)Sulfur: $(l:tfg_ores/earth_vein_index#surface_sphalerite)55%$(/l), $(l:tfg_ores/earth_vein_index#normal_sulfur)50%$(/l), $(l:tfg_ores/earth_vein_index#normal_sphalerite)35%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)9%$(/l), $(l:tfg_ores/earth_vein_index#surface_bismuthinite)3%$(/l)$()$(li)Talc: $(l:tfg_ores/earth_vein_index#normal_lubricant)20%$(/l)$()$(li)Tantalite: $(l:tfg_ores/earth_vein_index#normal_manganese)12%$(/l)$()$(li)Tetrahedrite: $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)60%$(/l), $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)50%$(/l)$()$(li)Thorium: $(l:tfg_ores/earth_vein_index#normal_beryllium)15%$(/l)$()$(li)Tin: $(l:tfg_ores/earth_vein_index#normal_cassiterite)60%$(/l), $(l:tfg_ores/earth_vein_index#surface_cassiterite)40%$(/l)$()$(li)Topaz: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()$(li)Tricalcium Phosphate: $(l:tfg_ores/earth_vein_index#normal_apatite)35%$(/l)$()$(li)Trona: $(l:tfg_ores/earth_vein_index#normal_lubricant)10%$(/l)$()$(li)Tungstate: $(l:tfg_ores/earth_vein_index#deep_scheelite)35%$(/l)$()$(li)Uraninite: $(l:tfg_ores/earth_vein_index#deep_pitchblende)25%$(/l)$()", + "text": "$(li)Sphalerite: $(l:tfg_ores/earth_vein_index#normal_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#surface_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#normal_sulfur)15%$(/l)$()$(li)Spodumene: $(l:tfg_ores/earth_vein_index#normal_spodumene)35%$(/l)$()$(li)Stibnite: $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)20%$(/l), $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)20%$(/l)$()$(li)Sulfur: $(l:tfg_ores/earth_vein_index#surface_sphalerite)55%$(/l), $(l:tfg_ores/earth_vein_index#normal_sulfur)50%$(/l), $(l:tfg_ores/earth_vein_index#normal_sphalerite)35%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)9%$(/l), $(l:tfg_ores/earth_vein_index#surface_bismuthinite)3%$(/l)$()$(li)Talc: $(l:tfg_ores/earth_vein_index#normal_lubricant)20%$(/l)$()$(li)Tantalite: $(l:tfg_ores/earth_vein_index#normal_manganese)12%$(/l)$()$(li)Tarkianite: $(l:tfg_ores/earth_vein_index#normal_tarkianite)35%$(/l)$()$(li)Tetrahedrite: $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)60%$(/l), $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)50%$(/l)$()$(li)Thorium: $(l:tfg_ores/earth_vein_index#normal_beryllium)15%$(/l)$()$(li)Tin: $(l:tfg_ores/earth_vein_index#normal_cassiterite)60%$(/l), $(l:tfg_ores/earth_vein_index#surface_cassiterite)40%$(/l)$()$(li)Topaz: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()$(li)Tricalcium Phosphate: $(l:tfg_ores/earth_vein_index#normal_apatite)35%$(/l)$()$(li)Trona: $(l:tfg_ores/earth_vein_index#normal_lubricant)10%$(/l), $(l:tfg_ores/earth_vein_index#normal_tarkianite)10%$(/l)$()$(li)Tungstate: $(l:tfg_ores/earth_vein_index#deep_scheelite)35%$(/l)$()", "type": "patchouli:text" }, { "Type": "patchouli:text", - "text": "$(li)Vanadium Magnetite: $(l:tfg_ores/earth_vein_index#normal_magnetite)22%$(/l), $(l:tfg_ores/earth_vein_index#deep_magnetite)25%$(/l)$()$(li)Wulfenite: $(l:tfg_ores/earth_vein_index#deep_molybdenum)47%$(/l), $(l:tfg_ores/earth_vein_index#deep_pitchblende)12%$(/l)$()$(li)Yellow Garnet: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)15%$(/l)$()$(li)Yellow Limonite: $(l:tfg_ores/earth_vein_index#normal_limonite)50%$(/l), $(l:tfg_ores/earth_vein_index#normal_hematite)30%$(/l), $(l:tfg_ores/earth_vein_index#normal_gold)20%$(/l), $(l:tfg_ores/earth_vein_index#deep_hematite)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_limonite)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_gold)5%$(/l)$()$(li)Zeolite: $(l:tfg_ores/earth_vein_index#surface_copper)16%$(/l)$()", + "text": "$(li)Uraninite: $(l:tfg_ores/earth_vein_index#deep_pitchblende)25%$(/l)$()$(li)Vanadium Magnetite: $(l:tfg_ores/earth_vein_index#normal_magnetite)22%$(/l), $(l:tfg_ores/earth_vein_index#deep_magnetite)25%$(/l)$()$(li)Wulfenite: $(l:tfg_ores/earth_vein_index#deep_molybdenum)47%$(/l), $(l:tfg_ores/earth_vein_index#deep_pitchblende)12%$(/l)$()$(li)Yellow Garnet: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)15%$(/l)$()$(li)Yellow Limonite: $(l:tfg_ores/earth_vein_index#normal_limonite)50%$(/l), $(l:tfg_ores/earth_vein_index#normal_hematite)30%$(/l), $(l:tfg_ores/earth_vein_index#normal_gold)20%$(/l), $(l:tfg_ores/earth_vein_index#deep_hematite)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_limonite)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_gold)5%$(/l)$()$(li)Zeolite: $(l:tfg_ores/earth_vein_index#surface_copper)16%$(/l)$()", "type": "patchouli:text" } ], diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/fr_fr/entries/tfg_ores/earth_vein_index.json b/kubejs/assets/tfc/patchouli_books/field_guide/fr_fr/entries/tfg_ores/earth_vein_index.json index d3d701b13..c3413c541 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/fr_fr/entries/tfg_ores/earth_vein_index.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/fr_fr/entries/tfg_ores/earth_vein_index.json @@ -29,7 +29,7 @@ }, { "Type": "patchouli:text", - "text": "$(li)$(l:tfg_ores/earth_vein_index#normal_sulfur)Sulfur & Pyrite$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_tetrahedrite)Tetrahedrite (Normal)$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_tetrahedrite)Tetrahedrite (Surface)$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_topaz)Topaz & Chalcocite$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_pitchblende)Uraninite & Pitchblende$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_molybdenum)Wulfenite & Molybdenite$()$()", + "text": "$(li)$(l:tfg_ores/earth_vein_index#normal_sulfur)Sulfur & Pyrite$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_tarkianite)Tarkianite & Oilsands$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_tetrahedrite)Tetrahedrite (Normal)$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_tetrahedrite)Tetrahedrite (Surface)$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_topaz)Topaz & Chalcocite$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_pitchblende)Uraninite & Pitchblende$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_molybdenum)Wulfenite & Molybdenite$()$()", "type": "patchouli:text" }, { @@ -1930,7 +1930,7 @@ }, { "Type": "patchouli:text", - "text": "$(thing)Rarity$(): 190$(br)$(thing)Density$(): 0.25$(br)$(thing)Type$(): Cluster Vein$(br)$(thing)Y$(): 0 — 210$(br)$(thing)Size$(): 36$(br)$(thing)Indicator Max Depth$(): 40$(br2)$(thing)Stone Types$(): Diorite, Gabbro, Gneiss, Granite, Marble, Phyllite, Quartzite, Schist, Slate", + "text": "$(thing)Rarity$(): 190$(br)$(thing)Density$(): 0.25$(br)$(thing)Type$(): Cluster Vein$(br)$(thing)Y$(): 0 — 210$(br)$(thing)Size$(): 36$(br)$(thing)Indicator Max Depth$(): 60$(br2)$(thing)Stone Types$(): Diorite, Gabbro, Gneiss, Granite, Marble, Phyllite, Quartzite, Schist, Slate", "title": "Kyanite, Mica, & Bauxite", "type": "patchouli:text", "anchor": "normal_mica" @@ -3543,6 +3543,98 @@ "text": "$(thing)Percentage$(): 15%$(br)$(thing)Melts into$(): Zinc$(br)$(thing)Formula$(): ZnS", "type": "patchouli:multiblock" }, + { + "Type": "patchouli:text", + "text": "$(thing)Rarity$(): 140$(br)$(thing)Density$(): 0.35$(br)$(thing)Type$(): Pipe Vein$(br)$(thing)Y$(): 20 — 120$(br)$(thing)Height$(): 60$(br)$(thing)Radius$(): 10$(br)$(thing)Indicator Max Depth$(): 20$(br2)$(thing)Stone Types$(): Andesite, Basalt, Chalk, Chert, Claystone, Conglomerate, Dacite, Diorite, Dolomite, Gabbro, Gneiss, Granite, Limestone, Marble, Phyllite, Quartzite, Rhyolite, Schist, Shale, Slate$(br2)Only appears in deserts to the $(thing)South-West$(), with a minimum temperature of 7°C and a maximum rainfall of 100mm.", + "title": "Tarkianite & Oilsands", + "type": "patchouli:text", + "anchor": "normal_tarkianite" + }, + { + "Type": "patchouli:multiblock", + "name": "Tarkianite", + "multiblock": { + "mapping": { + "0": "#forge:ores/tarkianite" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Percentage$(): 35%$(br)$(thing)Source of$(): Rhenium, Molybdenum$(br)$(thing)Formula$(): CuFeRe₄Mo₄S₈", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:multiblock", + "name": "Oilsands", + "multiblock": { + "mapping": { + "0": "#forge:ores/oilsands" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Percentage$(): 35%$(br)$(thing)Source of$(): Freedom \uD83D\uDEE2\uD83E\uDD85\uD83D\uDDFD", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:multiblock", + "name": "Borax", + "multiblock": { + "mapping": { + "0": "#forge:ores/borax" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Percentage$(): 20%$(br)$(thing)Source of$(): Sodium, Boron$(br)$(thing)Formula$(): Na₂B₄(H₂O)₁₀O₇", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:multiblock", + "name": "Trona", + "multiblock": { + "mapping": { + "0": "#forge:ores/trona" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Percentage$(): 10%$(br)$(thing)Source of$(): Sodium$(br)$(thing)Formula$(): Na₃C₂H(H₂O)₂O₆", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:empty", + "draw_filler": true, + "type": "patchouli:empty" + }, { "Type": "patchouli:text", "text": "$(thing)Rarity$(): 170$(br)$(thing)Density$(): 0.4$(br)$(thing)Type$(): Cluster Vein$(br)$(thing)Y$(): -32 — 75$(br)$(thing)Size$(): 40$(br)$(thing)Indicator Max Depth$(): 60$(br2)$(thing)Stone Types$(): Gneiss, Marble, Phyllite, Quartzite, Schist, Slate", diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/fr_fr/entries/tfg_ores/nether_vein_index.json b/kubejs/assets/tfc/patchouli_books/field_guide/fr_fr/entries/tfg_ores/nether_vein_index.json index 1146e818f..58f18ab04 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/fr_fr/entries/tfg_ores/nether_vein_index.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/fr_fr/entries/tfg_ores/nether_vein_index.json @@ -2543,7 +2543,7 @@ ] }, "enable_visualize": false, - "text": "$(thing)Percentage$(): 100%$(br)$(thing)Used for$(): Fertiliser$(br)$(thing)Formula$(): KCl", + "text": "$(thing)Percentage$(): 100%$(br)$(thing)Used for$(): Fertilizer$(br)$(thing)Formula$(): KCl", "type": "patchouli:multiblock" }, { diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/pt_br/entries/tfg_ores/earth_ore_index.json b/kubejs/assets/tfc/patchouli_books/field_guide/pt_br/entries/tfg_ores/earth_ore_index.json index 28b41de65..eb4d0a765 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/pt_br/entries/tfg_ores/earth_ore_index.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/pt_br/entries/tfg_ores/earth_ore_index.json @@ -14,12 +14,12 @@ }, { "Type": "patchouli:text", - "text": "$(li)Almandina: $(l:tfg_ores/earth_vein_index#deep_sapphire)38%$(/l)$()$(li)Alunita: $(l:tfg_ores/earth_vein_index#normal_saltpeter)15%$(/l)$()$(li)Ametista: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)65%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)25%$(/l)$()$(li)Amianto: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_quartz)18%$(/l)$()$(li)Apatita: $(l:tfg_ores/earth_vein_index#normal_apatite)50%$(/l)$()$(li)Areia Cassiterita: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)35%$(/l)$()$(li)Areia Glauconita: $(l:tfg_ores/earth_vein_index#normal_lubricant)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_olivine)15%$(/l)$()$(li)Areia Granada: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)25%$(/l)$()$(li)Areia Mineral Basáltica: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)35%$(/l)$()$(li)Areia Mineral Granítica: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)25%$(/l)$()$(li)Areias Petrolíferas: $(l:tfg_ores/earth_vein_index#normal_oilsands)100%$(/l)$()$(li)Barita: $(l:tfg_ores/earth_vein_index#normal_quartz)37%$(/l)$()$(li)Bastnasita: $(l:tfg_ores/earth_vein_index#normal_monazite)62%$(/l)$()$(li)Bauxita: $(l:tfg_ores/earth_vein_index#normal_mica)25%$(/l)$()", + "text": "$(li)Almandina: $(l:tfg_ores/earth_vein_index#deep_sapphire)38%$(/l)$()$(li)Alunita: $(l:tfg_ores/earth_vein_index#normal_saltpeter)15%$(/l)$()$(li)Ametista: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)65%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)25%$(/l)$()$(li)Amianto: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_quartz)18%$(/l)$()$(li)Apatita: $(l:tfg_ores/earth_vein_index#normal_apatite)50%$(/l)$()$(li)Areia Cassiterita: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)35%$(/l)$()$(li)Areia Glauconita: $(l:tfg_ores/earth_vein_index#normal_lubricant)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_olivine)15%$(/l)$()$(li)Areia Granada: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)25%$(/l)$()$(li)Areia Mineral Basáltica: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)35%$(/l)$()$(li)Areia Mineral Granítica: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)25%$(/l)$()$(li)Areias Petrolíferas: $(l:tfg_ores/earth_vein_index#normal_oilsands)100%$(/l), $(l:tfg_ores/earth_vein_index#normal_tarkianite)35%$(/l)$()$(li)Barita: $(l:tfg_ores/earth_vein_index#normal_quartz)37%$(/l)$()$(li)Bastnasita: $(l:tfg_ores/earth_vein_index#normal_monazite)62%$(/l)$()$(li)Bauxita: $(l:tfg_ores/earth_vein_index#normal_mica)25%$(/l)$()", "type": "patchouli:text" }, { "Type": "patchouli:text", - "text": "$(li)Bentonita: $(l:tfg_ores/earth_vein_index#normal_olivine)35%$(/l)$()$(li)Berílio: $(l:tfg_ores/earth_vein_index#normal_beryllium)35%$(/l)$()$(li)Bismuto: $(l:tfg_ores/earth_vein_index#surface_bismuthinite)80%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)70%$(/l)$()$(li)Bórax: $(l:tfg_ores/earth_vein_index#normal_gypsum)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_salt)15%$(/l)$()$(li)Bornita: $(l:tfg_ores/earth_vein_index#deep_sheldonite)53%$(/l), $(l:tfg_ores/earth_vein_index#deep_topaz)15%$(/l)$()$(li)Calcita: $(l:tfg_ores/earth_vein_index#normal_gypsum)30%$(/l), $(l:tfg_ores/earth_vein_index#normal_lapis)15%$(/l)$()$(li)Calcocita: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()$(li)Calcopirita: $(l:tfg_ores/earth_vein_index#surface_copper)61%$(/l), $(l:tfg_ores/earth_vein_index#normal_copper)20%$(/l)$()$(li)Carvão: $(l:tfg_ores/earth_vein_index#normal_coal)100%$(/l), $(l:tfg_ores/earth_vein_index#normal_graphite)30%$(/l)$()$(li)Cassiterita: $(l:tfg_ores/earth_vein_index#surface_cassiterite)60%$(/l), $(l:tfg_ores/earth_vein_index#normal_cassiterite)40%$(/l), $(l:tfg_ores/earth_vein_index#surface_copper)5%$(/l)$()$(li)Chumbo: $(l:tfg_ores/earth_vein_index#normal_silver)55%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)11%$(/l), $(l:tfg_ores/earth_vein_index#surface_bismuthinite)7%$(/l)$()$(li)Cianita: $(l:tfg_ores/earth_vein_index#normal_mica)35%$(/l)$()$(li)Cinábrio: $(l:tfg_ores/earth_vein_index#normal_redstone)20%$(/l)$()$(li)Cobaltita: $(l:tfg_ores/earth_vein_index#normal_garnierite)20%$(/l)$()", + "text": "$(li)Bentonita: $(l:tfg_ores/earth_vein_index#normal_olivine)35%$(/l)$()$(li)Berílio: $(l:tfg_ores/earth_vein_index#normal_beryllium)35%$(/l)$()$(li)Bismuto: $(l:tfg_ores/earth_vein_index#surface_bismuthinite)80%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)70%$(/l)$()$(li)Bórax: $(l:tfg_ores/earth_vein_index#normal_gypsum)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_tarkianite)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_salt)15%$(/l)$()$(li)Bornita: $(l:tfg_ores/earth_vein_index#deep_sheldonite)53%$(/l), $(l:tfg_ores/earth_vein_index#deep_topaz)15%$(/l)$()$(li)Calcita: $(l:tfg_ores/earth_vein_index#normal_gypsum)30%$(/l), $(l:tfg_ores/earth_vein_index#normal_lapis)15%$(/l)$()$(li)Calcocita: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()$(li)Calcopirita: $(l:tfg_ores/earth_vein_index#surface_copper)61%$(/l), $(l:tfg_ores/earth_vein_index#normal_copper)20%$(/l)$()$(li)Carvão: $(l:tfg_ores/earth_vein_index#normal_coal)100%$(/l), $(l:tfg_ores/earth_vein_index#normal_graphite)30%$(/l)$()$(li)Cassiterita: $(l:tfg_ores/earth_vein_index#surface_cassiterite)60%$(/l), $(l:tfg_ores/earth_vein_index#normal_cassiterite)40%$(/l), $(l:tfg_ores/earth_vein_index#surface_copper)5%$(/l)$()$(li)Chumbo: $(l:tfg_ores/earth_vein_index#normal_silver)55%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)11%$(/l), $(l:tfg_ores/earth_vein_index#surface_bismuthinite)7%$(/l)$()$(li)Cianita: $(l:tfg_ores/earth_vein_index#normal_mica)35%$(/l)$()$(li)Cinábrio: $(l:tfg_ores/earth_vein_index#normal_redstone)20%$(/l)$()$(li)Cobaltita: $(l:tfg_ores/earth_vein_index#normal_garnierite)20%$(/l)$()", "type": "patchouli:text" }, { @@ -44,12 +44,12 @@ }, { "Type": "patchouli:text", - "text": "$(li)Safira: $(l:tfg_ores/earth_vein_index#deep_sapphire)16%$(/l), $(l:tfg_ores/earth_vein_index#deep_magnetite)8%$(/l)$()$(li)Safira Verde: $(l:tfg_ores/earth_vein_index#deep_sapphire)16%$(/l)$()$(li)Sal: $(l:tfg_ores/earth_vein_index#normal_salt)30%$(/l), $(l:tfg_ores/earth_vein_index#normal_spodumene)30%$(/l)$()$(li)Sal-gema: $(l:tfg_ores/earth_vein_index#normal_salt)40%$(/l), $(l:tfg_ores/earth_vein_index#normal_spodumene)20%$(/l)$()$(li)Salitre: $(l:tfg_ores/earth_vein_index#normal_saltpeter)35%$(/l)$()$(li)Sheelita: $(l:tfg_ores/earth_vein_index#deep_scheelite)45%$(/l)$()$(li)Sodalita: $(l:tfg_ores/earth_vein_index#normal_lapis)25%$(/l)$()$(li)Talco: $(l:tfg_ores/earth_vein_index#normal_lubricant)20%$(/l)$()$(li)Tantalita: $(l:tfg_ores/earth_vein_index#normal_manganese)12%$(/l)$()$(li)Terra de Fuller: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_gypsum)15%$(/l)$()$(li)Tetraedrita: $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)60%$(/l), $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)50%$(/l)$()$(li)Topázio: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()$(li)Topázio Azul: $(l:tfg_ores/earth_vein_index#deep_topaz)35%$(/l)$()$(li)Tório: $(l:tfg_ores/earth_vein_index#normal_beryllium)15%$(/l)$()", + "text": "$(li)Safira: $(l:tfg_ores/earth_vein_index#deep_sapphire)16%$(/l), $(l:tfg_ores/earth_vein_index#deep_magnetite)8%$(/l)$()$(li)Safira Verde: $(l:tfg_ores/earth_vein_index#deep_sapphire)16%$(/l)$()$(li)Sal: $(l:tfg_ores/earth_vein_index#normal_salt)30%$(/l), $(l:tfg_ores/earth_vein_index#normal_spodumene)30%$(/l)$()$(li)Sal-gema: $(l:tfg_ores/earth_vein_index#normal_salt)40%$(/l), $(l:tfg_ores/earth_vein_index#normal_spodumene)20%$(/l)$()$(li)Salitre: $(l:tfg_ores/earth_vein_index#normal_saltpeter)35%$(/l)$()$(li)Sheelita: $(l:tfg_ores/earth_vein_index#deep_scheelite)45%$(/l)$()$(li)Sodalita: $(l:tfg_ores/earth_vein_index#normal_lapis)25%$(/l)$()$(li)Talco: $(l:tfg_ores/earth_vein_index#normal_lubricant)20%$(/l)$()$(li)Tantalita: $(l:tfg_ores/earth_vein_index#normal_manganese)12%$(/l)$()$(li)Tarcianita: $(l:tfg_ores/earth_vein_index#normal_tarkianite)35%$(/l)$()$(li)Terra de Fuller: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_gypsum)15%$(/l)$()$(li)Tetraedrita: $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)60%$(/l), $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)50%$(/l)$()$(li)Topázio: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()$(li)Topázio Azul: $(l:tfg_ores/earth_vein_index#deep_topaz)35%$(/l)$()", "type": "patchouli:text" }, { "Type": "patchouli:text", - "text": "$(li)Trona: $(l:tfg_ores/earth_vein_index#normal_lubricant)10%$(/l)$()$(li)Tungstato: $(l:tfg_ores/earth_vein_index#deep_scheelite)35%$(/l)$()$(li)Uraninita: $(l:tfg_ores/earth_vein_index#deep_pitchblende)25%$(/l)$()$(li)Wulfenita: $(l:tfg_ores/earth_vein_index#deep_molybdenum)47%$(/l), $(l:tfg_ores/earth_vein_index#deep_pitchblende)12%$(/l)$()$(li)Zeólita: $(l:tfg_ores/earth_vein_index#surface_copper)16%$(/l)$()", + "text": "$(li)Tório: $(l:tfg_ores/earth_vein_index#normal_beryllium)15%$(/l)$()$(li)Trona: $(l:tfg_ores/earth_vein_index#normal_lubricant)10%$(/l), $(l:tfg_ores/earth_vein_index#normal_tarkianite)10%$(/l)$()$(li)Tungstato: $(l:tfg_ores/earth_vein_index#deep_scheelite)35%$(/l)$()$(li)Uraninita: $(l:tfg_ores/earth_vein_index#deep_pitchblende)25%$(/l)$()$(li)Wulfenita: $(l:tfg_ores/earth_vein_index#deep_molybdenum)47%$(/l), $(l:tfg_ores/earth_vein_index#deep_pitchblende)12%$(/l)$()$(li)Zeólita: $(l:tfg_ores/earth_vein_index#surface_copper)16%$(/l)$()", "type": "patchouli:text" } ], diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/pt_br/entries/tfg_ores/earth_vein_index.json b/kubejs/assets/tfc/patchouli_books/field_guide/pt_br/entries/tfg_ores/earth_vein_index.json index 29168021b..1bedfdc71 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/pt_br/entries/tfg_ores/earth_vein_index.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/pt_br/entries/tfg_ores/earth_vein_index.json @@ -29,7 +29,7 @@ }, { "Type": "patchouli:text", - "text": "$(li)$(l:tfg_ores/earth_vein_index#deep_scheelite)Sheelita e Tungstato$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_tetrahedrite)Tetraedrita (Normal)$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_tetrahedrite)Tetraedrita (Superfície)$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_topaz)Topázio e Calcocita$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_pitchblende)Uraninita e Pechblenda$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_molybdenum)Wulfenita e Molibdenita$()$()", + "text": "$(li)$(l:tfg_ores/earth_vein_index#deep_scheelite)Sheelita e Tungstato$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_tarkianite)Tarcianita e Areias Petrolíferas$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_tetrahedrite)Tetraedrita (Normal)$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_tetrahedrite)Tetraedrita (Superfície)$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_topaz)Topázio e Calcocita$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_pitchblende)Uraninita e Pechblenda$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_molybdenum)Wulfenita e Molibdenita$()$()", "type": "patchouli:text" }, { @@ -883,7 +883,7 @@ }, { "Type": "patchouli:text", - "text": "$(thing)Raridade$(): 190$(br)$(thing)Densidade$(): 0.25$(br)$(thing)Tipo$(): Veio Aglomerado$(br)$(thing)Y$(): 0 — 210$(br)$(thing)Tamanho$(): 36$(br)$(thing)Profundidade Máxima do Indicador$(): 40$(br2)$(thing)Tipos de Pedra$(): Ardósia, Diorito, Filito, Gabro, Gnaisse, Granito, Mármore, Quartzito, Xisto", + "text": "$(thing)Raridade$(): 190$(br)$(thing)Densidade$(): 0.25$(br)$(thing)Tipo$(): Veio Aglomerado$(br)$(thing)Y$(): 0 — 210$(br)$(thing)Tamanho$(): 36$(br)$(thing)Profundidade Máxima do Indicador$(): 60$(br2)$(thing)Tipos de Pedra$(): Ardósia, Diorito, Filito, Gabro, Gnaisse, Granito, Mármore, Quartzito, Xisto", "title": "Cianita, Mica e Bauxita", "type": "patchouli:text", "anchor": "normal_mica" @@ -3543,6 +3543,98 @@ "text": "$(thing)Porcentagem$(): 20%$(br)$(thing)Fonte de$(): Lítio$(br)$(thing)Fórmula$(): Li", "type": "patchouli:multiblock" }, + { + "Type": "patchouli:text", + "text": "$(thing)Raridade$(): 140$(br)$(thing)Densidade$(): 0.35$(br)$(thing)Tipo$(): Veio Tubular$(br)$(thing)Y$(): 20 — 120$(br)$(thing)Altura$(): 60$(br)$(thing)Raio$(): 10$(br)$(thing)Profundidade Máxima do Indicador$(): 20$(br2)$(thing)Tipos de Pedra$(): Andesito, Ardósia, Argilito, Basalto, Calcário, Cherte, Conglomerado, Dacito, Diorito, Dolomito, Filito, Folhelho, Gabro, Giz, Gnaisse, Granito, Mármore, Quartzito, Riolito, Xisto", + "title": "Tarcianita e Areias Petrolíferas", + "type": "patchouli:text", + "anchor": "normal_tarkianite" + }, + { + "Type": "patchouli:multiblock", + "name": "Tarcianita", + "multiblock": { + "mapping": { + "0": "#forge:ores/tarkianite" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Porcentagem$(): 35%$(br)$(thing)Fonte de$(): Rênio, Molibdênio$(br)$(thing)Fórmula$(): CuFeRe₄Mo₄S₈", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:multiblock", + "name": "Areias Petrolíferas", + "multiblock": { + "mapping": { + "0": "#forge:ores/oilsands" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Porcentagem$(): 35%$(br)$(thing)Fonte de$(): Liberdade \uD83D\uDEE2\uD83E\uDD85\uD83D\uDDFD", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:multiblock", + "name": "Bórax", + "multiblock": { + "mapping": { + "0": "#forge:ores/borax" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Porcentagem$(): 20%$(br)$(thing)Fonte de$(): Sódio, Boro$(br)$(thing)Fórmula$(): Na₂B₄(H₂O)₁₀O₇", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:multiblock", + "name": "Trona", + "multiblock": { + "mapping": { + "0": "#forge:ores/trona" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Porcentagem$(): 10%$(br)$(thing)Fonte de$(): Sódio$(br)$(thing)Fórmula$(): Na₃C₂H(H₂O)₂O₆", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:empty", + "draw_filler": true, + "type": "patchouli:empty" + }, { "Type": "patchouli:text", "text": "$(thing)Raridade$(): 170$(br)$(thing)Densidade$(): 0.4$(br)$(thing)Tipo$(): Veio Aglomerado$(br)$(thing)Y$(): -32 — 75$(br)$(thing)Tamanho$(): 40$(br)$(thing)Profundidade Máxima do Indicador$(): 60$(br2)$(thing)Tipos de Pedra$(): Ardósia, Filito, Gnaisse, Mármore, Quartzito, Xisto", diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/entries/getting_started/primitive_alloys.json b/kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/entries/getting_started/primitive_alloys.json index 4232f1326..b17cdf26b 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/entries/getting_started/primitive_alloys.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/entries/getting_started/primitive_alloys.json @@ -14,28 +14,28 @@ }, { "type": "patchouli:text", - "text": "Например, чтобы создать 1000 мБ $(thing)Бронзы$() (показано справа), вам потребуется от 880 до 920 мБ $(thing)меди$(), и от 80 до 120 мБ $(thing)Олова$().$(br2)На следующих трех страницах показаны рецепты трех видов бронзы. Каждый тип бронзы может использоваться для изготовления инструментов, $(l:mechanics/armor)Доспехов$(), и других металлических предметов. Они немного отличаются, поэтому полученные инструменты будут иметь разную прочность, эффективность и урон." + "text": "Например, чтобы создать 1000 мБ $(thing)Бронзы$() (показано справа), вам потребуется от 700 до 800 мБ $(thing)меди$(), и от 200 до 300 мБ $(thing)Олова$().$(br2)На следующих трех страницах показаны рецепты трех видов бронзы. Каждый тип бронзы может использоваться для изготовления инструментов, $(l:mechanics/armor)Доспехов$(), и других металлических предметов. Они немного отличаются, поэтому полученные инструменты будут иметь разную прочность, эффективность и урон." }, { "type": "patchouli:spotlight", "item": "tfc:metal/ingot/bronze", "title": "Бронза", "link_recipes": false, - "text": "$(br)$(bold)Требования: $()$(br)$(li)88 - 92 %: $(thing)медь$()$(li)8 - 12 %: $(thing)Олово$()$(br2)" + "text": "$(br)$(bold)Требования: $()$(br)$(li)70 - 80 %: $(thing)Медь$()$(li)20 - 30 %: $(thing)Олово$()$(br2)" }, { "type": "patchouli:spotlight", "item": "tfc:metal/ingot/bismuth_bronze", "title": "Висмутовая бронза", "link_recipes": false, - "text": "$(br)$(bold)Требования: $()$(br)$(li)20 - 30 % : $(thing)Цинк$()$(li)50 - 65 %: $(thing)медь$()$(li)10 - 20 % : $(thing)Висмут$()$(br2)" + "text": "$(br)$(bold)Требования: $()$(br)$(li)20 - 30 % : $(thing)Цинк$()$(li)50 - 65 %: $(thing)Медь$()$(li)10 - 20 % : $(thing)Висмут$()$(br2)" }, { "type": "patchouli:spotlight", "item": "tfc:metal/ingot/black_bronze", "title": "Чёрная бронза", "link_recipes": false, - "text": "$(br)$(bold)Требования: $()$(br)$(li)50 - 70 %: $(thing)медь$()$(li)10 - 25 %: $(thing)Серебро$()$(li)10 - 25 %: $(thing)Золото$()$(br2)" + "text": "$(br)$(bold)Требования: $()$(br)$(li)50 - 70 %: $(thing)Медь$()$(li)10 - 25 %: $(thing)Серебро$()$(li)10 - 25 %: $(thing)Золото$()$(br2)" }, { "type": "patchouli:text", @@ -48,21 +48,21 @@ "item": "tfc:metal/ingot/brass", "title": "Латунь", "link_recipes": false, - "text": "$(br)$(bold)Требования:$()$(br)$(li)88 - 92 %: $(thing)медь$()$(li)8 - 12 %: $(thing)Цинк$()$(br2)" + "text": "$(br)$(bold)Требования:$()$(br)$(li)70 - 80 %: $(thing)Медь$()$(li)20 - 30 %: $(thing)Цинк$()$(br2)" }, { "type": "patchouli:spotlight", "item": "tfc:metal/ingot/rose_gold", "title": "Розовое золото", "link_recipes": false, - "text": "$(br)$(bold)Требования: $()$(br)$(li)15 - 30 %: $(thing)медь$()$(li)70 - 85 %: $(thing)Золото$()$(br2)" + "text": "$(br)$(bold)Требования: $()$(br)$(li)15 - 30 %: $(thing)Медь$()$(li)70 - 85 %: $(thing)Золото$()$(br2)" }, { "type": "patchouli:spotlight", "item": "tfc:metal/ingot/sterling_silver", "title": "Стерлинговое серебро", "link_recipes": false, - "text": "$(br)$(bold)Требования: $()$(br)$(li)20 - 40 %: $(thing)медь$()$(li)60 - 80 %: $(thing)Серебро$()$(br2)" + "text": "$(br)$(bold)Требования: $()$(br)$(li)20 - 40 %: $(thing)Медь$()$(li)60 - 80 %: $(thing)Серебро$()$(br2)" } ], "read_by_default": true, @@ -73,4 +73,4 @@ "tfc:metal/ingot/black_bronze": 5, "tfc:metal/ingot/brass": 7 } -} \ No newline at end of file +} diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/entries/tfg_ores/earth_ore_index.json b/kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/entries/tfg_ores/earth_ore_index.json index 7be16b3ef..abf597413 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/entries/tfg_ores/earth_ore_index.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/entries/tfg_ores/earth_ore_index.json @@ -14,7 +14,7 @@ }, { "Type": "patchouli:text", - "text": "$(li)Алмаз: $(l:tfg_ores/earth_vein_index#normal_graphite)25%$(/l)$()$(li)Алунит: $(l:tfg_ores/earth_vein_index#normal_saltpeter)15%$(/l)$()$(li)Альмандин: $(l:tfg_ores/earth_vein_index#deep_sapphire)38%$(/l)$()$(li)Аметист: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)65%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)25%$(/l)$()$(li)Апатит: $(l:tfg_ores/earth_vein_index#normal_apatite)50%$(/l)$()$(li)Асбест: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_quartz)18%$(/l)$()$(li)Базальтовый минеральный песок: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)35%$(/l)$()$(li)Барит: $(l:tfg_ores/earth_vein_index#normal_quartz)37%$(/l)$()$(li)Бастнезит: $(l:tfg_ores/earth_vein_index#normal_monazite)62%$(/l)$()$(li)Бентонит: $(l:tfg_ores/earth_vein_index#normal_olivine)35%$(/l)$()$(li)Бериллий: $(l:tfg_ores/earth_vein_index#normal_beryllium)35%$(/l)$()$(li)Боксит: $(l:tfg_ores/earth_vein_index#normal_mica)25%$(/l)$()$(li)Борнит: $(l:tfg_ores/earth_vein_index#deep_sheldonite)53%$(/l), $(l:tfg_ores/earth_vein_index#deep_topaz)15%$(/l)$()$(li)Бура: $(l:tfg_ores/earth_vein_index#normal_gypsum)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_salt)15%$(/l)$()", + "text": "$(li)Алмаз: $(l:tfg_ores/earth_vein_index#normal_graphite)25%$(/l)$()$(li)Алунит: $(l:tfg_ores/earth_vein_index#normal_saltpeter)15%$(/l)$()$(li)Альмандин: $(l:tfg_ores/earth_vein_index#deep_sapphire)38%$(/l)$()$(li)Аметист: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)65%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)25%$(/l)$()$(li)Апатит: $(l:tfg_ores/earth_vein_index#normal_apatite)50%$(/l)$()$(li)Асбест: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_quartz)18%$(/l)$()$(li)Базальтовый минеральный песок: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)35%$(/l)$()$(li)Барит: $(l:tfg_ores/earth_vein_index#normal_quartz)37%$(/l)$()$(li)Бастнезит: $(l:tfg_ores/earth_vein_index#normal_monazite)62%$(/l)$()$(li)Бентонит: $(l:tfg_ores/earth_vein_index#normal_olivine)35%$(/l)$()$(li)Бериллий: $(l:tfg_ores/earth_vein_index#normal_beryllium)35%$(/l)$()$(li)Боксит: $(l:tfg_ores/earth_vein_index#normal_mica)25%$(/l)$()$(li)Борнит: $(l:tfg_ores/earth_vein_index#deep_sheldonite)53%$(/l), $(l:tfg_ores/earth_vein_index#deep_topaz)15%$(/l)$()$(li)Бура: $(l:tfg_ores/earth_vein_index#normal_gypsum)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_tarkianite)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_salt)15%$(/l)$()", "type": "patchouli:text" }, { @@ -29,7 +29,7 @@ }, { "Type": "patchouli:text", - "text": "$(li)Лазурит: $(l:tfg_ores/earth_vein_index#normal_lapis)35%$(/l)$()$(li)Лазурит 2: $(l:tfg_ores/earth_vein_index#normal_lapis)25%$(/l)$()$(li)Лепидолит: $(l:tfg_ores/earth_vein_index#normal_salt)15%$(/l), $(l:tfg_ores/earth_vein_index#normal_spodumene)15%$(/l)$()$(li)Литий: $(l:tfg_ores/earth_vein_index#deep_scheelite)20%$(/l)$()$(li)Магнезит: $(l:tfg_ores/earth_vein_index#normal_olivine)25%$(/l)$()$(li)Магнетит: $(l:tfg_ores/earth_vein_index#normal_magnetite)63%$(/l), $(l:tfg_ores/earth_vein_index#deep_magnetite)8%$(/l)$()$(li)Малахит: $(l:tfg_ores/earth_vein_index#deep_limonite)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_limonite)15%$(/l)$()$(li)Молибденит: $(l:tfg_ores/earth_vein_index#deep_molybdenum)35%$(/l)$()$(li)Монацит: $(l:tfg_ores/earth_vein_index#normal_monazite)31%$(/l)$()$(li)Мыльный камень: $(l:tfg_ores/earth_vein_index#normal_lubricant)30%$(/l)$()$(li)Неодим: $(l:tfg_ores/earth_vein_index#normal_monazite)6%$(/l)$()$(li)Нефтеносный песок: $(l:tfg_ores/earth_vein_index#normal_oilsands)100%$(/l)$()$(li)Никель: $(l:tfg_ores/earth_vein_index#normal_garnierite)10%$(/l)$()$(li)Оливин: $(l:tfg_ores/earth_vein_index#normal_olivine)25%$(/l)$()", + "text": "$(li)Лазурит: $(l:tfg_ores/earth_vein_index#normal_lapis)35%$(/l)$()$(li)Лазурит 2: $(l:tfg_ores/earth_vein_index#normal_lapis)25%$(/l)$()$(li)Лепидолит: $(l:tfg_ores/earth_vein_index#normal_salt)15%$(/l), $(l:tfg_ores/earth_vein_index#normal_spodumene)15%$(/l)$()$(li)Литий: $(l:tfg_ores/earth_vein_index#deep_scheelite)20%$(/l)$()$(li)Магнезит: $(l:tfg_ores/earth_vein_index#normal_olivine)25%$(/l)$()$(li)Магнетит: $(l:tfg_ores/earth_vein_index#normal_magnetite)63%$(/l), $(l:tfg_ores/earth_vein_index#deep_magnetite)8%$(/l)$()$(li)Малахит: $(l:tfg_ores/earth_vein_index#deep_limonite)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_limonite)15%$(/l)$()$(li)Молибденит: $(l:tfg_ores/earth_vein_index#deep_molybdenum)35%$(/l)$()$(li)Монацит: $(l:tfg_ores/earth_vein_index#normal_monazite)31%$(/l)$()$(li)Мыльный камень: $(l:tfg_ores/earth_vein_index#normal_lubricant)30%$(/l)$()$(li)Неодим: $(l:tfg_ores/earth_vein_index#normal_monazite)6%$(/l)$()$(li)Нефтеносный песок: $(l:tfg_ores/earth_vein_index#normal_oilsands)100%$(/l), $(l:tfg_ores/earth_vein_index#normal_tarkianite)35%$(/l)$()$(li)Никель: $(l:tfg_ores/earth_vein_index#normal_garnierite)10%$(/l)$()$(li)Оливин: $(l:tfg_ores/earth_vein_index#normal_olivine)25%$(/l)$()", "type": "patchouli:text" }, { @@ -44,12 +44,12 @@ }, { "Type": "patchouli:text", - "text": "$(li)Сфалерит: $(l:tfg_ores/earth_vein_index#normal_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#surface_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#normal_sulfur)15%$(/l)$()$(li)Тальк: $(l:tfg_ores/earth_vein_index#normal_lubricant)20%$(/l)$()$(li)Танталит: $(l:tfg_ores/earth_vein_index#normal_manganese)12%$(/l)$()$(li)Тетраэдрит: $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)60%$(/l), $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)50%$(/l)$()$(li)Топаз: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()$(li)Торий: $(l:tfg_ores/earth_vein_index#normal_beryllium)15%$(/l)$()$(li)Трикальцийфосфат: $(l:tfg_ores/earth_vein_index#normal_apatite)35%$(/l)$()$(li)Трона: $(l:tfg_ores/earth_vein_index#normal_lubricant)10%$(/l)$()$(li)Уголь: $(l:tfg_ores/earth_vein_index#normal_coal)100%$(/l), $(l:tfg_ores/earth_vein_index#normal_graphite)30%$(/l)$()$(li)Уранинит: $(l:tfg_ores/earth_vein_index#deep_pitchblende)25%$(/l)$()$(li)Уранит: $(l:tfg_ores/earth_vein_index#deep_pitchblende)62%$(/l)$()$(li)Халькозин: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()$(li)Халькопирит: $(l:tfg_ores/earth_vein_index#surface_copper)61%$(/l), $(l:tfg_ores/earth_vein_index#normal_copper)20%$(/l)$()$(li)Хромит: $(l:tfg_ores/earth_vein_index#deep_magnetite)33%$(/l), $(l:tfg_ores/earth_vein_index#normal_magnetite)4%$(/l)$()", + "text": "$(li)Сфалерит: $(l:tfg_ores/earth_vein_index#normal_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#surface_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#normal_sulfur)15%$(/l)$()$(li)Тальк: $(l:tfg_ores/earth_vein_index#normal_lubricant)20%$(/l)$()$(li)Танталит: $(l:tfg_ores/earth_vein_index#normal_manganese)12%$(/l)$()$(li)Таркианит: $(l:tfg_ores/earth_vein_index#normal_tarkianite)35%$(/l)$()$(li)Тетраэдрит: $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)60%$(/l), $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)50%$(/l)$()$(li)Топаз: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()$(li)Торий: $(l:tfg_ores/earth_vein_index#normal_beryllium)15%$(/l)$()$(li)Трикальцийфосфат: $(l:tfg_ores/earth_vein_index#normal_apatite)35%$(/l)$()$(li)Трона: $(l:tfg_ores/earth_vein_index#normal_lubricant)10%$(/l), $(l:tfg_ores/earth_vein_index#normal_tarkianite)10%$(/l)$()$(li)Уголь: $(l:tfg_ores/earth_vein_index#normal_coal)100%$(/l), $(l:tfg_ores/earth_vein_index#normal_graphite)30%$(/l)$()$(li)Уранинит: $(l:tfg_ores/earth_vein_index#deep_pitchblende)25%$(/l)$()$(li)Уранит: $(l:tfg_ores/earth_vein_index#deep_pitchblende)62%$(/l)$()$(li)Халькозин: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()$(li)Халькопирит: $(l:tfg_ores/earth_vein_index#surface_copper)61%$(/l), $(l:tfg_ores/earth_vein_index#normal_copper)20%$(/l)$()", "type": "patchouli:text" }, { "Type": "patchouli:text", - "text": "$(li)Цеолит: $(l:tfg_ores/earth_vein_index#surface_copper)16%$(/l)$()$(li)Ционит: $(l:tfg_ores/earth_vein_index#normal_mica)35%$(/l)$()$(li)Шеелит: $(l:tfg_ores/earth_vein_index#deep_scheelite)45%$(/l)$()$(li)Шелдонит: $(l:tfg_ores/earth_vein_index#deep_sheldonite)38%$(/l)$()$(li)Электротин: $(l:tfg_ores/earth_vein_index#normal_saltpeter)25%$(/l)$()", + "text": "$(li)Хромит: $(l:tfg_ores/earth_vein_index#deep_magnetite)33%$(/l), $(l:tfg_ores/earth_vein_index#normal_magnetite)4%$(/l)$()$(li)Цеолит: $(l:tfg_ores/earth_vein_index#surface_copper)16%$(/l)$()$(li)Ционит: $(l:tfg_ores/earth_vein_index#normal_mica)35%$(/l)$()$(li)Шеелит: $(l:tfg_ores/earth_vein_index#deep_scheelite)45%$(/l)$()$(li)Шелдонит: $(l:tfg_ores/earth_vein_index#deep_sheldonite)38%$(/l)$()$(li)Электротин: $(l:tfg_ores/earth_vein_index#normal_saltpeter)25%$(/l)$()", "type": "patchouli:text" } ], diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/entries/tfg_ores/earth_vein_index.json b/kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/entries/tfg_ores/earth_vein_index.json index d6c34a39a..d5def4710 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/entries/tfg_ores/earth_vein_index.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/entries/tfg_ores/earth_vein_index.json @@ -24,12 +24,12 @@ }, { "Type": "patchouli:text", - "text": "$(li)$(l:tfg_ores/earth_vein_index#deep_garnet_opal)Опал и гранат$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_redstone)Редстоун, Киноварь и Рубин$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_sapphire)Сапфир и Альмандин$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_saltpeter)Селитра и Электротин$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_sulfur)Сера и Пирит$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_silver)Серебро, Галена и Свинец$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_salt)Соли и Бура$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_spodumene)Сподумен и Лепидолит$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_sphalerite)Сфалерит & Пирит$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_sphalerite)Сфалерит и Сера$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_tetrahedrite)Тетраэдрит (обычный)$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_tetrahedrite)Тетраэдрит (Поверхностный)$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_topaz)Топаз и Халькозин$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_coal)Уголь$()$()", + "text": "$(li)$(l:tfg_ores/earth_vein_index#deep_garnet_opal)Опал и гранат$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_redstone)Редстоун, Киноварь и Рубин$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_sapphire)Сапфир и Альмандин$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_saltpeter)Селитра и Электротин$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_sulfur)Сера и Пирит$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_silver)Серебро, Галена и Свинец$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_salt)Соли и Бура$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_spodumene)Сподумен и Лепидолит$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_sphalerite)Сфалерит & Пирит$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_sphalerite)Сфалерит и Сера$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_tarkianite)Таркианит и Нефтеносный песок$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_tetrahedrite)Тетраэдрит (обычный)$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_tetrahedrite)Тетраэдрит (Поверхностный)$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_topaz)Топаз и Халькозин$()$()", "type": "patchouli:text" }, { "Type": "patchouli:text", - "text": "$(li)$(l:tfg_ores/earth_vein_index#deep_pitchblende)Уранинит и Уранит$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_copper)Халькопирит и Реальгар$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_magnetite)Хромит и Магнетит$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_mica)Ционит, Слюда и Боксит$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_scheelite)Шеелит и Вольфрамат$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_sheldonite)Шелдонит и Борнит$()$()", + "text": "$(li)$(l:tfg_ores/earth_vein_index#normal_coal)Уголь$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_pitchblende)Уранинит и Уранит$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_copper)Халькопирит и Реальгар$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_magnetite)Хромит и Магнетит$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_mica)Ционит, Слюда и Боксит$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_scheelite)Шеелит и Вольфрамат$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_sheldonite)Шелдонит и Борнит$()$()", "type": "patchouli:text" }, { @@ -3158,6 +3158,98 @@ "text": "$(thing)Процент руды$(): 5%$(br)$(thing)Плавится в$(): Железо$(br)$(thing)Формула$(): FeS₂", "type": "patchouli:multiblock" }, + { + "Type": "patchouli:text", + "text": "$(thing)Редкость$(): 140$(br)$(thing)Плотность$(): 0.35$(br)$(thing)Вид$(): трубчатая жила$(br)$(thing)Y-уровень$(): 20 — 120$(br)$(thing)Высота$(): 60$(br)$(thing)Радиус$(): 10$(br)$(thing)Индикатор Max Depth$(): 20$(br2)$(thing)Виды камней$(): Андезит, Аргиллит, Аспидный сланец, Базальт, Габбро, Гнейс, Гранит, Дацит, Диорит, Доломит, Известняк, Кварцит, Конгломерат, Кремнистый сланец, Мел, Мрамор, Риолит, Сланец, Филлит, Шиферный сланец", + "title": "Таркианит и Нефтеносный песок", + "type": "patchouli:text", + "anchor": "normal_tarkianite" + }, + { + "Type": "patchouli:multiblock", + "name": "Таркианит", + "multiblock": { + "mapping": { + "0": "#forge:ores/tarkianite" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Процент руды$(): 35%$(br)$(thing)Хромит$(): Рений, Молибден$(br)$(thing)Формула$(): CuFeRe₄Mo₄S₈", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:multiblock", + "name": "Нефтеносный песок", + "multiblock": { + "mapping": { + "0": "#forge:ores/oilsands" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Процент руды$(): 35%$(br)$(thing)Хромит$(): топливо", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:multiblock", + "name": "Бура", + "multiblock": { + "mapping": { + "0": "#forge:ores/borax" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Процент руды$(): 20%$(br)$(thing)Хромит$(): Натрий, Бор$(br)$(thing)Формула$(): Na₂B₄(H₂O)₁₀O₇", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:multiblock", + "name": "Трона", + "multiblock": { + "mapping": { + "0": "#forge:ores/trona" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Процент руды$(): 10%$(br)$(thing)Хромит$(): Натрий$(br)$(thing)Формула$(): Na₃C₂H(H₂O)₂O₆", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:empty", + "draw_filler": true, + "type": "patchouli:empty" + }, { "Type": "patchouli:text", "text": "$(thing)Редкость$(): 170$(br)$(thing)Плотность$(): 0.4$(br)$(thing)Вид$(): кластерная жила$(br)$(thing)Y-уровень$(): -32 — 75$(br)$(thing)Размер$(): 40$(br)$(thing)Индикатор Max Depth$(): 60$(br2)$(thing)Виды камней$(): Аспидный сланец, Гнейс, Кварцит, Мрамор, Филлит, Шиферный сланец", @@ -3679,7 +3771,7 @@ }, { "Type": "patchouli:text", - "text": "$(thing)Редкость$(): 190$(br)$(thing)Плотность$(): 0.25$(br)$(thing)Вид$(): кластерная жила$(br)$(thing)Y-уровень$(): 0 — 210$(br)$(thing)Размер$(): 36$(br)$(thing)Индикатор Max Depth$(): 40$(br2)$(thing)Виды камней$(): Аспидный сланец, Габбро, Гнейс, Гранит, Диорит, Кварцит, Мрамор, Филлит, Шиферный сланец", + "text": "$(thing)Редкость$(): 190$(br)$(thing)Плотность$(): 0.25$(br)$(thing)Вид$(): кластерная жила$(br)$(thing)Y-уровень$(): 0 — 210$(br)$(thing)Размер$(): 36$(br)$(thing)Индикатор Max Depth$(): 60$(br2)$(thing)Виды камней$(): Аспидный сланец, Габбро, Гнейс, Гранит, Диорит, Кварцит, Мрамор, Филлит, Шиферный сланец", "title": "Ционит, Слюда и Боксит", "type": "patchouli:text", "anchor": "normal_mica" diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_ores/earth_ore_index.json b/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_ores/earth_ore_index.json index af161bcd8..1d37495c6 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_ores/earth_ore_index.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_ores/earth_ore_index.json @@ -14,7 +14,7 @@ }, { "Type": "patchouli:text", - "text": "$(li)Азбест: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_quartz)18%$(/l)$()$(li)Алмандін: $(l:tfg_ores/earth_vein_index#deep_sapphire)38%$(/l)$()$(li)Алуніт: $(l:tfg_ores/earth_vein_index#normal_saltpeter)15%$(/l)$()$(li)Аметист: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)65%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)25%$(/l)$()$(li)Апатит: $(l:tfg_ores/earth_vein_index#normal_apatite)50%$(/l)$()$(li)Базальтовий мінеральний пісок: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)35%$(/l)$()$(li)Барит: $(l:tfg_ores/earth_vein_index#normal_quartz)37%$(/l)$()$(li)Бастнезит: $(l:tfg_ores/earth_vein_index#normal_monazite)62%$(/l)$()$(li)Бентоніт: $(l:tfg_ores/earth_vein_index#normal_olivine)35%$(/l)$()$(li)Берилій: $(l:tfg_ores/earth_vein_index#normal_beryllium)35%$(/l)$()$(li)Блакитний топаз: $(l:tfg_ores/earth_vein_index#deep_topaz)35%$(/l)$()$(li)Боксит: $(l:tfg_ores/earth_vein_index#normal_mica)25%$(/l)$()$(li)Борніт: $(l:tfg_ores/earth_vein_index#deep_sheldonite)53%$(/l), $(l:tfg_ores/earth_vein_index#deep_topaz)15%$(/l)$()$(li)Бура: $(l:tfg_ores/earth_vein_index#normal_gypsum)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_salt)15%$(/l)$()", + "text": "$(li)Азбест: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_quartz)18%$(/l)$()$(li)Алмандін: $(l:tfg_ores/earth_vein_index#deep_sapphire)38%$(/l)$()$(li)Алуніт: $(l:tfg_ores/earth_vein_index#normal_saltpeter)15%$(/l)$()$(li)Аметист: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)65%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)25%$(/l)$()$(li)Апатит: $(l:tfg_ores/earth_vein_index#normal_apatite)50%$(/l)$()$(li)Базальтовий мінеральний пісок: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)35%$(/l)$()$(li)Барит: $(l:tfg_ores/earth_vein_index#normal_quartz)37%$(/l)$()$(li)Бастнезит: $(l:tfg_ores/earth_vein_index#normal_monazite)62%$(/l)$()$(li)Бентоніт: $(l:tfg_ores/earth_vein_index#normal_olivine)35%$(/l)$()$(li)Берилій: $(l:tfg_ores/earth_vein_index#normal_beryllium)35%$(/l)$()$(li)Блакитний топаз: $(l:tfg_ores/earth_vein_index#deep_topaz)35%$(/l)$()$(li)Боксит: $(l:tfg_ores/earth_vein_index#normal_mica)25%$(/l)$()$(li)Борніт: $(l:tfg_ores/earth_vein_index#deep_sheldonite)53%$(/l), $(l:tfg_ores/earth_vein_index#deep_topaz)15%$(/l)$()$(li)Бура: $(l:tfg_ores/earth_vein_index#normal_gypsum)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_tarkianite)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_salt)15%$(/l)$()", "type": "patchouli:text" }, { @@ -29,7 +29,7 @@ }, { "Type": "patchouli:text", - "text": "$(li)Кіновар: $(l:tfg_ores/earth_vein_index#normal_redstone)20%$(/l)$()$(li)Кобальт: $(l:tfg_ores/earth_vein_index#normal_garnierite)15%$(/l)$()$(li)Кобальтит: $(l:tfg_ores/earth_vein_index#normal_garnierite)20%$(/l)$()$(li)Лазурит: $(l:tfg_ores/earth_vein_index#normal_lapis)35%$(/l)$()$(li)Лапіс: $(l:tfg_ores/earth_vein_index#normal_lapis)25%$(/l)$()$(li)Лепідоліт: $(l:tfg_ores/earth_vein_index#normal_salt)15%$(/l), $(l:tfg_ores/earth_vein_index#normal_spodumene)15%$(/l)$()$(li)Літій: $(l:tfg_ores/earth_vein_index#deep_scheelite)20%$(/l)$()$(li)Магнезит: $(l:tfg_ores/earth_vein_index#normal_olivine)25%$(/l)$()$(li)Магнетит: $(l:tfg_ores/earth_vein_index#normal_magnetite)63%$(/l), $(l:tfg_ores/earth_vein_index#deep_magnetite)8%$(/l)$()$(li)Малахіт: $(l:tfg_ores/earth_vein_index#deep_limonite)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_limonite)15%$(/l)$()$(li)Молібденіт: $(l:tfg_ores/earth_vein_index#deep_molybdenum)35%$(/l)$()$(li)Монацит: $(l:tfg_ores/earth_vein_index#normal_monazite)31%$(/l)$()$(li)Нафтові піски: $(l:tfg_ores/earth_vein_index#normal_oilsands)100%$(/l)$()$(li)Неодим: $(l:tfg_ores/earth_vein_index#normal_monazite)6%$(/l)$()", + "text": "$(li)Кіновар: $(l:tfg_ores/earth_vein_index#normal_redstone)20%$(/l)$()$(li)Кобальт: $(l:tfg_ores/earth_vein_index#normal_garnierite)15%$(/l)$()$(li)Кобальтит: $(l:tfg_ores/earth_vein_index#normal_garnierite)20%$(/l)$()$(li)Лазурит: $(l:tfg_ores/earth_vein_index#normal_lapis)35%$(/l)$()$(li)Лапіс: $(l:tfg_ores/earth_vein_index#normal_lapis)25%$(/l)$()$(li)Лепідоліт: $(l:tfg_ores/earth_vein_index#normal_salt)15%$(/l), $(l:tfg_ores/earth_vein_index#normal_spodumene)15%$(/l)$()$(li)Літій: $(l:tfg_ores/earth_vein_index#deep_scheelite)20%$(/l)$()$(li)Магнезит: $(l:tfg_ores/earth_vein_index#normal_olivine)25%$(/l)$()$(li)Магнетит: $(l:tfg_ores/earth_vein_index#normal_magnetite)63%$(/l), $(l:tfg_ores/earth_vein_index#deep_magnetite)8%$(/l)$()$(li)Малахіт: $(l:tfg_ores/earth_vein_index#deep_limonite)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_limonite)15%$(/l)$()$(li)Молібденіт: $(l:tfg_ores/earth_vein_index#deep_molybdenum)35%$(/l)$()$(li)Монацит: $(l:tfg_ores/earth_vein_index#normal_monazite)31%$(/l)$()$(li)Нафтові піски: $(l:tfg_ores/earth_vein_index#normal_oilsands)100%$(/l), $(l:tfg_ores/earth_vein_index#normal_tarkianite)35%$(/l)$()$(li)Неодим: $(l:tfg_ores/earth_vein_index#normal_monazite)6%$(/l)$()", "type": "patchouli:text" }, { @@ -44,12 +44,12 @@ }, { "Type": "patchouli:text", - "text": "$(li)Сподумен: $(l:tfg_ores/earth_vein_index#normal_spodumene)35%$(/l)$()$(li)Стибніт: $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)20%$(/l), $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)20%$(/l)$()$(li)Сфалерит: $(l:tfg_ores/earth_vein_index#normal_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#surface_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#normal_sulfur)15%$(/l)$()$(li)Тальк: $(l:tfg_ores/earth_vein_index#normal_lubricant)20%$(/l)$()$(li)Танталіт: $(l:tfg_ores/earth_vein_index#normal_manganese)12%$(/l)$()$(li)Тетраедрит: $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)60%$(/l), $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)50%$(/l)$()$(li)Топаз: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()$(li)Торій: $(l:tfg_ores/earth_vein_index#normal_beryllium)15%$(/l)$()$(li)Трикальційфосфат: $(l:tfg_ores/earth_vein_index#normal_apatite)35%$(/l)$()$(li)Трона: $(l:tfg_ores/earth_vein_index#normal_lubricant)10%$(/l)$()$(li)Уранит: $(l:tfg_ores/earth_vein_index#deep_pitchblende)62%$(/l)$()$(li)Ураніт: $(l:tfg_ores/earth_vein_index#deep_pitchblende)25%$(/l)$()$(li)Халькопирит: $(l:tfg_ores/earth_vein_index#surface_copper)61%$(/l), $(l:tfg_ores/earth_vein_index#normal_copper)20%$(/l)$()$(li)Халькоцит: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()", + "text": "$(li)Сподумен: $(l:tfg_ores/earth_vein_index#normal_spodumene)35%$(/l)$()$(li)Стибніт: $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)20%$(/l), $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)20%$(/l)$()$(li)Сфалерит: $(l:tfg_ores/earth_vein_index#normal_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#surface_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#normal_sulfur)15%$(/l)$()$(li)Тальк: $(l:tfg_ores/earth_vein_index#normal_lubricant)20%$(/l)$()$(li)Танталіт: $(l:tfg_ores/earth_vein_index#normal_manganese)12%$(/l)$()$(li)Таркіаніт: $(l:tfg_ores/earth_vein_index#normal_tarkianite)35%$(/l)$()$(li)Тетраедрит: $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)60%$(/l), $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)50%$(/l)$()$(li)Топаз: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()$(li)Торій: $(l:tfg_ores/earth_vein_index#normal_beryllium)15%$(/l)$()$(li)Трикальційфосфат: $(l:tfg_ores/earth_vein_index#normal_apatite)35%$(/l)$()$(li)Трона: $(l:tfg_ores/earth_vein_index#normal_lubricant)10%$(/l), $(l:tfg_ores/earth_vein_index#normal_tarkianite)10%$(/l)$()$(li)Уранит: $(l:tfg_ores/earth_vein_index#deep_pitchblende)62%$(/l)$()$(li)Ураніт: $(l:tfg_ores/earth_vein_index#deep_pitchblende)25%$(/l)$()$(li)Халькопирит: $(l:tfg_ores/earth_vein_index#surface_copper)61%$(/l), $(l:tfg_ores/earth_vein_index#normal_copper)20%$(/l)$()", "type": "patchouli:text" }, { "Type": "patchouli:text", - "text": "$(li)Хроміт: $(l:tfg_ores/earth_vein_index#deep_magnetite)33%$(/l), $(l:tfg_ores/earth_vein_index#normal_magnetite)4%$(/l)$()$(li)Цеоліт: $(l:tfg_ores/earth_vein_index#surface_copper)16%$(/l)$()$(li)Червоний гранат: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)5%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)5%$(/l)$()$(li)Шеєліт: $(l:tfg_ores/earth_vein_index#deep_scheelite)45%$(/l)$()$(li)Шелдонітн: $(l:tfg_ores/earth_vein_index#deep_sheldonite)38%$(/l)$()", + "text": "$(li)Халькоцит: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()$(li)Хроміт: $(l:tfg_ores/earth_vein_index#deep_magnetite)33%$(/l), $(l:tfg_ores/earth_vein_index#normal_magnetite)4%$(/l)$()$(li)Цеоліт: $(l:tfg_ores/earth_vein_index#surface_copper)16%$(/l)$()$(li)Червоний гранат: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)5%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)5%$(/l)$()$(li)Шеєліт: $(l:tfg_ores/earth_vein_index#deep_scheelite)45%$(/l)$()$(li)Шелдонітн: $(l:tfg_ores/earth_vein_index#deep_sheldonite)38%$(/l)$()", "type": "patchouli:text" } ], diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_ores/earth_vein_index.json b/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_ores/earth_vein_index.json index dfc4e3486..4c23681e7 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_ores/earth_vein_index.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_ores/earth_vein_index.json @@ -24,12 +24,12 @@ }, { "Type": "patchouli:text", - "text": "$(li)$(l:tfg_ores/earth_vein_index#deep_garnet_opal)Опал і Гранат$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_redstone)Редстоун, Кіновар і Рубін$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_sapphire)Сапфір і Альмадін$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_saltpeter)Селітра та Електротин$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_sulfur)Сірка та Пірит$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_beryllium)Смарагд і Берилій$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_salt)Солі та Бура$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_spodumene)Сподумен та Лепідоліт$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_silver)Срібло, Гален і Свинець$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_lubricant)Стеатит, Тальк і Трона$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_sphalerite)Сфалерит і Пірит$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_sphalerite)Сфалерит і Сірка$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_tetrahedrite)Тетраедрит (Звичайний)$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_tetrahedrite)Тетраедрит (Поверхня)$()$()", + "text": "$(li)$(l:tfg_ores/earth_vein_index#deep_garnet_opal)Опал і Гранат$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_redstone)Редстоун, Кіновар і Рубін$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_sapphire)Сапфір і Альмадін$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_saltpeter)Селітра та Електротин$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_sulfur)Сірка та Пірит$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_beryllium)Смарагд і Берилій$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_salt)Солі та Бура$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_spodumene)Сподумен та Лепідоліт$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_silver)Срібло, Гален і Свинець$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_lubricant)Стеатит, Тальк і Трона$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_sphalerite)Сфалерит і Пірит$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_sphalerite)Сфалерит і Сірка$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_tarkianite)Таркіаніт та Нафтові піски$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_tetrahedrite)Тетраедрит (Звичайний)$()$()", "type": "patchouli:text" }, { "Type": "patchouli:text", - "text": "$(li)$(l:tfg_ores/earth_vein_index#deep_topaz)Топаз і Халькоцит$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_pitchblende)Ураніт & Пітчбленд$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_copper)Халькопірит та Реальгар$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_magnetite)Хроміт і Магнетит$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_scheelite)Шеєліт та Вольфрам$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_sheldonite)Шелдоніт і Борніт$()$()", + "text": "$(li)$(l:tfg_ores/earth_vein_index#surface_tetrahedrite)Тетраедрит (Поверхня)$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_topaz)Топаз і Халькоцит$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_pitchblende)Ураніт & Пітчбленд$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_copper)Халькопірит та Реальгар$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_magnetite)Хроміт і Магнетит$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_scheelite)Шеєліт та Вольфрам$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_sheldonite)Шелдоніт і Борніт$()$()", "type": "patchouli:text" }, { @@ -1639,7 +1639,7 @@ }, { "Type": "patchouli:text", - "text": "$(thing)Рідкість$(): 190$(br)$(thing)Щільність$(): 0.25$(br)$(thing)Тип$(): Кластерна вена$(br)$(thing)Y$(): 0 — 210$(br)$(thing)Розмір$(): 36$(br)$(thing)Індикатор Max Depth$(): 40$(br2)$(thing)Типи каменю$(): Аспідний сланець, Габро, Гнейс, Граніт, Діорит, Кварцит, Мармур, Філіт, Шиферний сланець", + "text": "$(thing)Рідкість$(): 190$(br)$(thing)Щільність$(): 0.25$(br)$(thing)Тип$(): Кластерна вена$(br)$(thing)Y$(): 0 — 210$(br)$(thing)Розмір$(): 36$(br)$(thing)Індикатор Max Depth$(): 60$(br2)$(thing)Типи каменю$(): Аспідний сланець, Габро, Гнейс, Граніт, Діорит, Кварцит, Мармур, Філіт, Шиферний сланець", "title": "Кіаніт, Слюда та Боксити", "type": "patchouli:text", "anchor": "normal_mica" @@ -3277,6 +3277,98 @@ "text": "$(thing)Відсоток$(): 5%$(br)$(thing)Розплавляється в$(): Чавун$(br)$(thing)Формула$(): FeS₂", "type": "patchouli:multiblock" }, + { + "Type": "patchouli:text", + "text": "$(thing)Рідкість$(): 140$(br)$(thing)Щільність$(): 0.35$(br)$(thing)Тип$(): Трубна вена$(br)$(thing)Y$(): 20 — 120$(br)$(thing)Висота$(): 60$(br)$(thing)Радіус$(): 10$(br)$(thing)Індикатор Max Depth$(): 20$(br2)$(thing)Типи каменю$(): Андезит, Аргиліт, Аспідний сланець, Базальт, Вапняк, Габро, Глинистий сланець, Гнейс, Граніт, Дацит, Діорит, Доломіт, Кварцит, Конгломерат, Крейда, Кременистий сланець, Мармур, Ріоліт, Філіт, Шиферний сланець", + "title": "Таркіаніт та Нафтові піски", + "type": "patchouli:text", + "anchor": "normal_tarkianite" + }, + { + "Type": "patchouli:multiblock", + "name": "Таркіаніт", + "multiblock": { + "mapping": { + "0": "#forge:ores/tarkianite" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Відсоток$(): 35%$(br)$(thing)Джерело$(): Реній, Молібденум$(br)$(thing)Формула$(): CuFeRe₄Mo₄S₈", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:multiblock", + "name": "Нафтові піски", + "multiblock": { + "mapping": { + "0": "#forge:ores/oilsands" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Відсоток$(): 35%$(br)$(thing)Джерело$(): Свободи \uD83D\uDEE2\uD83E\uDD85\uD83D\uDDFD", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:multiblock", + "name": "Бура", + "multiblock": { + "mapping": { + "0": "#forge:ores/borax" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Відсоток$(): 20%$(br)$(thing)Джерело$(): Натрію, Бору$(br)$(thing)Формула$(): Na₂B₄(H₂O)₁₀O₇", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:multiblock", + "name": "Трона", + "multiblock": { + "mapping": { + "0": "#forge:ores/trona" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)Відсоток$(): 10%$(br)$(thing)Джерело$(): Натрію$(br)$(thing)Формула$(): Na₃C₂H(H₂O)₂O₆", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:empty", + "draw_filler": true, + "type": "patchouli:empty" + }, { "Type": "patchouli:text", "text": "$(thing)Рідкість$(): 170$(br)$(thing)Щільність$(): 0.4$(br)$(thing)Тип$(): Кластерна вена$(br)$(thing)Y$(): -32 — 75$(br)$(thing)Розмір$(): 40$(br)$(thing)Індикатор Max Depth$(): 60$(br2)$(thing)Типи каменю$(): Аспідний сланець, Гнейс, Кварцит, Мармур, Філіт, Шиферний сланець", diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/categories/beneath.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/categories/beneath.json new file mode 100644 index 000000000..7a8d7f1ed --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/categories/beneath.json @@ -0,0 +1,6 @@ +{ + "name": "下界……?", + "description": "关于幽冥之地的一切", + "icon": "minecraft:netherrack", + "sortnum": 10 +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/categories/roadsandroofs.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/categories/roadsandroofs.json new file mode 100644 index 000000000..ed6658a28 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/categories/roadsandroofs.json @@ -0,0 +1,6 @@ +{ + "name": "道路与屋顶", + "description": "道路与屋顶扩展模组使用指南", + "icon": "rnr:metal/mattock/bismuth_bronze", + "sortnum": 19 +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/categories/sacks_n_such.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/categories/sacks_n_such.json new file mode 100644 index 000000000..23baf34b0 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/categories/sacks_n_such.json @@ -0,0 +1,6 @@ +{ + "name": "袋纳百物", + "description": "关于袋纳百物(Sacks 'N Such)你需要知道的一切。", + "icon": "sns:textures/item/icon/leather_sack.png", + "sortnum": 3 +} diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/categories/tfcchannelcasting.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/categories/tfcchannelcasting.json new file mode 100644 index 000000000..69ee29aa8 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/categories/tfcchannelcasting.json @@ -0,0 +1,6 @@ +{ + "name": "浇注道铸造", + "description": "关于浇注道铸造附加内容,允许你将坩埚中的金属同时浇注到多个模具。", + "icon": "tfcchannelcasting:channel", + "sortnum": 60 +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/categories/tfg_ores.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/categories/tfg_ores.json new file mode 100644 index 000000000..bb93a1095 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/categories/tfg_ores.json @@ -0,0 +1,6 @@ +{ + "name": "TFG矿物", + "description": "TFG整合包采用独特的矿脉生成系统,类似群峦传说的矿脉生成机制——大而稀有的矿脉,但每个矿脉会产出多种矿物。本章将列出所有矿脉类型及其分布区域。$(br2)矿脉以其最主要的矿石命名,但大多数矿脉包含3-5种矿物。$(br2)另请参阅:$(l:the_world/geology)地质学$(),$(l:getting_started/finding_ores)矿石、金属和铸造$()", + "icon": "tfc:ore/pyrite", + "sortnum": 60 +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/categories/tfg_tips.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/categories/tfg_tips.json new file mode 100644 index 000000000..ce07b0c0f --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/categories/tfg_tips.json @@ -0,0 +1,6 @@ +{ + "name": "TFG提示与说明", + "description": "介绍TerraFirmaGreg整合包与原版群峦传说和格雷科技的不同之处。", + "icon": "tfg:terra_firma_greg", + "sortnum": 200 +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/arborfirmacraft/making_rubber.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/arborfirmacraft/making_rubber.json new file mode 100644 index 000000000..1fee277bb --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/arborfirmacraft/making_rubber.json @@ -0,0 +1,49 @@ +{ + "name": "处理乳胶", + "category": "tfc:arborfirmacraft", + "icon": "gtceu:sticky_resin", + "pages": [ + { + "type": "patchouli:text", + "text": "看来你已经通过采集特定的热带树木获得了些$(thing)乳胶$()……恭喜!乳胶本身用途有限,但通过加工处理我们可以得到许多非常有用的副产品!$(br2)如果你还没找到能产出乳胶的树木,可以查看$(l:arborfirmacraft/tapping_index)采集指南$()条目获取更多信息!" + }, + { + "type": "patchouli:spotlight", + "item": "gtceu:sticky_resin", + "title": "一种黏稠物质", + "link_recipe": true, + "text": "$(thing)乳胶$()的一种用途是生产$(item)黏性树脂$()。黏性树脂需要在$(l:firmalife/oven_appliances#vat)不锈钢锅$()或$(l:mechanics/pot)陶锅$()中加入$(thing)草木灰$()来凝固乳胶制成。" + }, + { + "type": "patchouli:spotlight", + "title": "黏性生意", + "item": "gtceu:resin_circuit_board,gtceu:resistor,gtceu:basic_tape", + "text": "$(thing)黏性树脂$()用途多样,因为它非常黏腻。它可以用来制作多个物品,比如$(item)胶带$()可以移动箱子而不会掉落内容物;更重要的是,它还能做成$(item)覆膜电路基板$()和$(item)电阻$()——这些是你最早期的电子元件。" + }, + { + "type": "patchouli:spotlight", + "item": "tfg:vulcanized_latex_bucket", + "title": "我是橡胶……", + "text": "$(thing)乳胶$()的另一主要用途是制造橡胶。为了让乳胶更强韧、适合工业用途,需将其加热(使用 $(l:firmalife/oven_appliances#vat)不锈钢锅$()或$(l:mechanics/pot)陶锅$()),并加入$(thing)硫磺粉$()制成$(thing)硫化乳胶$()。这个过程本身叫做“硫化”!" + }, + { + "type": "patchouli:spotlight", + "title": "提取", + "item": "gtceu:raw_rubber_dust", + "text": "使用$(thing)提取机$()或$(thing)真空腔室$(),可以将$(thing)硫化乳胶$()干燥为$(item)生橡胶末$()。这种粉末还需在$(thing)合金炉$()中与$(thing)硫磺粉$()一起处理,才能制成$(thing)橡胶条$()。" + }, + { + "type": "patchouli:spotlight", + "item": "gtceu:rubber_ingot", + "text": "$(thing)橡胶条$()应用广泛,例如用于制作工厂用的$(thing)传送带$(),以及最重要的:用于$(bold)绝缘$()$(thing)电线$()。绝缘电线可安全触碰且减少电压损耗。" + }, + { + "type": "patchouli:spotlight", + "title": "松脂", + "item": "tfg:conifer_pitch_bucket", + "text": "黏性树脂也可以从特定的$(thing)针叶松树$()中获取,不过这些树无法用来做橡胶。" + } + ], + "read_by_default": true, + "sortnum": 3 +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/arborfirmacraft/tapping_index.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/arborfirmacraft/tapping_index.json new file mode 100644 index 000000000..5c381ef5d --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/arborfirmacraft/tapping_index.json @@ -0,0 +1,160 @@ +{ + "name": "采集指南", + "category": "tfc:arborfirmacraft", + "icon": "afc:wood/sapling/weeping_maple", + "read_by_default": true, + "pages": [ + { + "type": "patchouli:text", + "text": "这是世界中所有可采集树木的列表,按字母顺序排列。$(br)$(thing)气候数据$() 会显示该树适合生长的温度和降雨范围,$(thing)采集数据$() 则说明其产量、流速及是否仅春天产出。" + }, + { + "type": "patchouli:text", + "text": "$(l:arborfirmacraft/tapping_index#maple)$(li)枫树$()$(l:arborfirmacraft/tapping_index#birch)$(li)白桦树$()$(l:arborfirmacraft/tapping_index#hevea)$(li)三叶胶树$()$(l:arborfirmacraft/tapping_index#rubber_fig)$(li)橡胶无花果树$()$(l:arborfirmacraft/tapping_index#kapok)$(li)木棉树$()$(l:arborfirmacraft/tapping_index#aspen)$(li)山杨树$()$(l:arborfirmacraft/tapping_index#spruce)$(li)云杉树$()$(l:arborfirmacraft/tapping_index#white_cedar)$(li)白雪松树$()$(l:arborfirmacraft/tapping_index#douglas_fir)$(li)花旗松树$()" + }, + { + "type": "patchouli:spotlight", + "anchor": "maple", + "title": "枫树", + "item": "tfc:wood/log/maple,tfc:wood/wood/maple,tfc:wood/leaves/maple,tfc:wood/sapling/maple", + "link_recipe": false, + "text": "$(bold)气候数据$()$(br)$(thing)最低温度$(): -8.4°C$(br)$(thing)最高温度$(): 8°C$(br)$(thing)最低降雨量$(): 240$(br)$(thing)最高降雨量$(): 470$(br2)$(bold)采集数据$()$(br)$(thing)最低产出温度$(): -15°C$(br)$(thing)最高产出温度$(): 5°C$(br)$(thing)春季特有$(): 否$(br)$(thing)流速$(): 5mb" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/tapping_index/maple_tree.png" + ], + "text": "$(thing)产出物$(): 枫树汁$(br)$(thing)加工产物$(): 枫糖", + "border": true + }, + { + "type": "patchouli:spotlight", + "anchor": "birch", + "title": "白桦树", + "item": "tfc:wood/log/birch,tfc:wood/wood/birch,tfc:wood/leaves/birch,tfc:wood/sapling/birch", + "link_recipe": false, + "text": "$(bold)气候数据$()$(br)$(thing)最低温度$(): -12.1°C$(br)$(thing)最高温度$(): 6.1°C$(br)$(thing)最低降雨量$(): 125$(br)$(thing)最高降雨量$(): 310$(br2)$(bold)采集数据$()$(br)$(thing)最低产出温度$(): -15°C$(br)$(thing)最高产出温度$(): 5°C$(br)$(thing)春季特有$(): 否$(br)$(thing)流速$(): 5mb" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/tapping_index/birch_tree.png" + ], + "text": "$(thing)产出物$(): 桦树汁$(br)$(thing)加工产物$(): 桦糖", + "border": true + }, + { + "type": "patchouli:spotlight", + "anchor": "hevea", + "title": "三叶胶树", + "item": "afc:wood/log/hevea,afc:wood/wood/hevea,afc:wood/leaves/hevea,afc:wood/sapling/hevea", + "link_recipe": false, + "text": "$(bold)气候数据$()$(br)$(thing)最低温度$(): 17.1°C$(br)$(thing)最高温度$(): 26.2°C$(br)$(thing)最低降雨量$(): 390$(br)$(thing)最高降雨量$(): 500$(br2)$(bold)采集数据$()$(br)$(thing)最低产出温度$(): 8°C$(br)$(thing)最高产出温度$(): N/A$(br)$(thing)春季特有$(): 否$(br)$(thing)流速$(): 3mb" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/tapping_index/hevea_tree.png" + ], + "text": "$(thing)产出物$(): 乳胶$(br)$(thing)加工产物$(): 黏性树脂 & 橡胶", + "border": true + }, + { + "type": "patchouli:spotlight", + "anchor": "rubber_fig", + "title": "橡胶无花果树", + "item": "afc:wood/log/rubber_fig,afc:wood/wood/rubber_fig,afc:wood/leaves/rubber_fig,afc:wood/sapling/rubber_fig", + "link_recipe": false, + "text": "$(bold)气候数据$()$(br)$(thing)最低温度$(): 9.8°C$(br)$(thing)最高温度$(): 20.7°C$(br)$(thing)最低降雨量$(): 290$(br)$(thing)最高降雨量$(): 400$(br2)$(bold)采集数据$()$(br)$(thing)最低产出温度$(): 4°C$(br)$(thing)最高产出温度$(): N/A$(br)$(thing)春季特有$(): 否$(br)$(thing)流速$(): 2mb" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/tapping_index/rubber_fig_tree.png" + ], + "text": "$(thing)产出物$(): 乳胶$(br)$(thing)加工产物$(): 黏性树脂 & 橡胶", + "border": true + }, + { + "type": "patchouli:spotlight", + "anchor": "kapok", + "title": "木棉树", + "item": "tfc:wood/log/kapok,tfc:wood/wood/kapok,tfc:wood/leaves/kapok,tfc:wood/sapling/kapok", + "link_recipe": false, + "text": "$(bold)气候数据$()$(br)$(thing)最低温度$(): 17.1°C$(br)$(thing)最高温度$(): 38°C$(br)$(thing)最低降雨量$(): 320$(br)$(thing)最高降雨量$(): 500$(br2)$(bold)采集数据$()$(br)$(thing)最低产出温度$(): 12°C$(br)$(thing)最高产出温度$(): N/A$(br)$(thing)春季特有$(): 否$(br)$(thing)流速$(): 4mb" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/tapping_index/kapok_tree.png" + ], + "text": "$(thing)产出物$(): 乳胶$(br)$(thing)加工产物$(): 黏性树脂 & 橡胶", + "border": true + }, + { + "type": "patchouli:spotlight", + "anchor": "aspen", + "title": "山杨树", + "item": "tfc:wood/log/aspen,tfc:wood/wood/aspen,tfc:wood/leaves/aspen,tfc:wood/sapling/aspen", + "link_recipe": false, + "text": "$(bold)气候数据$()$(br)$(thing)最低温度$(): -15.7°C$(br)$(thing)最高温度$(): -1.1°C$(br)$(thing)最低降雨量$(): 350$(br)$(thing)最高降雨量$(): 500$(br2)$(bold)采集数据$()$(br)$(thing)最低产出温度$(): -10°C$(br)$(thing)最高产出温度$(): N/A$(br)$(thing)春季特有$(): 否$(br)$(thing)流速$(): 2mb" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/tapping_index/aspen_tree.png" + ], + "text": "$(thing)产出物$(): 松脂$(br)$(thing)加工产物$(): 黏性树脂 & 松香", + "border": true + }, + { + "type": "patchouli:spotlight", + "anchor": "spruce", + "title": "云杉树", + "item": "tfc:wood/log/spruce,tfc:wood/wood/spruce,tfc:wood/leaves/spruce,tfc:wood/sapling/spruce", + "link_recipe": false, + "text": "$(bold)气候数据$()$(br)$(thing)最低温度$(): -17.5°C$(br)$(thing)最高温度$(): -6.6°C$(br)$(thing)最低降雨量$(): 220$(br)$(thing)最高降雨量$(): 470$(br2)$(bold)采集数据$()$(br)$(thing)最低产出温度$(): -10°C$(br)$(thing)最高产出温度$(): N/A$(br)$(thing)春季特有$(): 否$(br)$(thing)流速$(): 4mb" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/tapping_index/spruce_tree.png" + ], + "text": "$(thing)产出物$(): 松脂$(br)$(thing)加工产物$(): 黏性树脂 & 松香", + "border": true + }, + { + "type": "patchouli:spotlight", + "anchor": "white_cedar", + "title": "白雪松树", + "item": "tfc:wood/log/white_cedar,tfc:wood/wood/white_cedar,tfc:wood/leaves/white_cedar,tfc:wood/sapling/white_cedar", + "link_recipe": false, + "text": "$(bold)气候数据$()$(br)$(thing)最低温度$(): -15.7°C$(br)$(thing)最高温度$(): 0.7°C$(br)$(thing)最低降雨量$(): 100$(br)$(thing)最高降雨量$(): 285$(br2)$(bold)采集数据$()$(br)$(thing)最低产出温度$(): -8°C$(br)$(thing)最高产出温度$(): N/A$(br)$(thing)春季特有$(): 否$(br)$(thing)流速$(): 3mb" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/tapping_index/white_cedar_tree.png" + ], + "text": "$(thing)产出物$(): 松脂$(br)$(thing)加工产物$(): 黏性树脂 & 松香", + "border": true + }, + { + "type": "patchouli:spotlight", + "anchor": "douglas_fir", + "title": "花旗松树", + "item": "tfc:wood/log/douglas_fir,tfc:wood/wood/douglas_fir,tfc:wood/leaves/douglas_fir,tfc:wood/sapling/douglas_fir", + "link_recipe": false, + "text": "$(bold)气候数据$()$(br)$(thing)最低温度$(): -15.7°C$(br)$(thing)最高温度$(): 6.1°C$(br)$(thing)最低降雨量$(): 305$(br)$(thing)最高降雨量$(): 500$(br2)$(bold)采集数据$()$(br)$(thing)最低产出温度$(): -8°C$(br)$(thing)最高产出温度$()): N/A$(br)$(thing)春季特有$(): 否$(br)$(thing)流速$(): 2mb" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/tapping_index/douglas_fir_tree.png" + ], + "text": "$(thing)产出物$(): 松脂$(br)$(thing)加工产物$(): 黏性树脂 & 松香", + "border": true + } + ] +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/arborfirmacraft/tree_tapping.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/arborfirmacraft/tree_tapping.json new file mode 100644 index 000000000..471273ea0 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/arborfirmacraft/tree_tapping.json @@ -0,0 +1,36 @@ +{ + "name": "树汁采集", + "category": "tfc:arborfirmacraft", + "icon": "afc:tree_tap", + "pages": [ + { + "type": "patchouli:text", + "text": "某些树木可以被采集以获取有用的流体。这些树木可产出含糖树液(可浓缩为糖浆用作甜味剂)、乳胶(可加工成橡胶)或树脂(可加工成松香作为蜡替代品)。" + }, + { + "type": "patchouli:image", + "title": "获取枫树树汁", + "images": [ + "afc:textures/gui/book/maple_tapping.png" + ], + "border": true + }, + { + "type": "patchouli:text", + "text": "采集树汁需要三样东西:树木本身、一只树汁导管(需用铜锭打造并安装在至少三格高树干的中部),以及一个桶(必须正对导管下方、朝上放置)。若条件合适,桶会立刻开始注满树汁。" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/tree_tapping/tapping_kapok.png" + ], + "text": "一个有效的配置:用于从木棉树中提取乳胶", + "border": true + } + ], + "read_by_default": true, + "sortnum": 1, + "extra_recipe_mappings": { + "afc:tree_tap": 0 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/beneath.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/beneath.json new file mode 100644 index 000000000..c73a6b953 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/beneath.json @@ -0,0 +1,23 @@ +{ + "name": "什么是幽冥之地?", + "category": "tfc:beneath", + "icon": "minecraft:deepslate", + "priority": true, + "pages": [ + { + "type": "patchouli:text", + "text": "$(thing)幽冥之地$() 是一个非常深的洞穴网络,位于主世界下方。$(br)这个维度处于中晚期 $(thing)原始时代$() 的平衡状态。它比地表更危险,因此我们建议至少配备一套青铜盔甲和金属盾牌,并携带充足的食物、水和其他工具。" + }, + { + "type": "patchouli:text", + "text": "它与普通下界体验有几个不同之处:$(li)进入方式 $(l:beneath/beneath#entering)不同$()$(li)水不会立即蒸发$(li)床仍像平常一样使用$(li)在底层移动速度不快于主世界$(br2)作为回报,你可以找到诸如 $(thing)高岭土$()、$(thing)石墨$()、更丰富且暴露的 $(thing)矿脉$(),以及其他珍宝。" + }, + { + "type": "patchouli:text", + "anchor": "entering", + "title": "进入幽冥之地", + "text": "要前往幽冥之地,只需站在主世界基岩块上一段时间即可。$(br)要返回,直接站在同一位置下方的基岩块上即可。$(br2)建议 $(thing)做个标记$(),记录你进入的位置,这样随时都能回到主世界的对应地点。" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/biomes.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/biomes.json new file mode 100644 index 000000000..7d8cf133c --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/biomes.json @@ -0,0 +1,75 @@ +{ + "name": "生物群系", + "category": "tfc:beneath", + "icon": "minecraft:spyglass", + "pages": [ + { + "type": "patchouli:text", + "text": "幽冥之地有全新的生物群系等待探索!大多数分为两类:$(thing)上层$() 和 $(thing)下层$()。上层地形只出现在较高处,而下层则靠近岩浆区域。" + }, + { + "type": "patchouli:image", + "title": "繁茂空谷", + "images": [ + "tfg:textures/gui/field_guide/nether/lush_hollow.png" + ], + "border": true, + "text": "湿润且植被茂盛!是地下基地最宜居的区域。" + }, + { + "type": "patchouli:image", + "title": "腐化洞窟", + "images": [ + "tfg:textures/gui/field_guide/nether/decaying_caverns.png" + ], + "border": true, + "text": "大自然在此努力分解腐烂物质——这里是潮湿且充满腐殖质的地方。" + }, + { + "type": "patchouli:image", + "title": "蛛网巢穴", + "images": [ + "tfg:textures/gui/field_guide/nether/webbed_lair.png" + ], + "border": true, + "text": "不用猜也知道住在这里的是什么生物!也包含巨大的 $(thing)石灰华$() 柱。" + }, + { + "type": "patchouli:image", + "title": "灰烬森林", + "images": [ + "tfg:textures/gui/field_guide/nether/ash_forest.png" + ], + "border": true, + "text": "因高温引发频繁火灾后,茂密深渊残留下来的地貌。" + }, + { + "type": "patchouli:image", + "title": "熔岩浮岛", + "images": [ + "tfg:textures/gui/field_guide/nether/lava_floes.png" + ], + "border": true, + "text": "富含矿产的 $(thing)辉长岩$() 地区,被岩浆河流分割。" + }, + { + "type": "patchouli:image", + "title": "玄武岩三角洲", + "images": [ + "tfg:textures/gui/field_guide/nether/basalt_deltas.png" + ], + "border": true, + "text": "大家熟悉的下界地形回归了,仍然和以前一样危险。" + }, + { + "type": "patchouli:image", + "title": "深层岩窟", + "images": [ + "tfg:textures/gui/field_guide/nether/deep_caves.png" + ], + "border": true, + "text": "在其他地形之间,是更多平淡的区域,包括辉长岩、片岩、花岗岩、闪长岩和片麻岩。$(br)" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/cooling.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/cooling.json new file mode 100644 index 000000000..119603107 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/cooling.json @@ -0,0 +1,49 @@ +{ + "name": "温度管理", + "category": "tfc:beneath", + "icon": "minecraft:ice", + "pages": [ + { + "type": "patchouli:text", + "text": "幽冥之地很热!温度从最上层的 15°C 开始,随着下降越来越热。$(br2)$(item)粗麻布$()和$(item)丝绸$()衣服有助于降温,但还有以下方式可以让你凉快下来!" + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:water_bucket", + "title": "水", + "text": "在上层区域可以找到水。快速泡个澡能迅速降温!" + }, + { + "type": "patchouli:spotlight", + "title": "冰", + "item": "minecraft:packed_ice", + "text": "带上一些 $(thing)冰$()!站在附近可以降低周围温度。冰可以通过 $(item)锯子$() 从地表采集,$(thing)浮冰$()和$(thing)蓝冰$()不会融化。" + }, + { + "type": "patchouli:spotlight", + "title": "蓝钢装备", + "item": "create:netherite_diving_helmet,create:netherite_backtank,minecraft:netherite_leggings,create:netherite_diving_boots", + "text": "想要更持久的方案吗?$(thing)蓝钢潜水套装$()可将体温稳定在28°C,还能让你在岩浆里游泳!$(br2)$(item)耐火皮革$()来自本地的$(thing)红麋鹿$(),或从堡垒遗迹战利品箱内获取。" + }, + { + "type": "patchouli:crafting", + "recipe": "tfg:create/shaped/netherite_diving_helmet", + "recipe2": "tfg:create/shaped/netherite_diving_helmet_upgrade" + }, + { + "type": "patchouli:crafting", + "recipe": "tfg:create/shaped/netherite_backtank", + "recipe2": "tfg:create/shaped/netherite_backtank_upgrade" + }, + { + "type": "patchouli:crafting", + "recipe": "tfg:minecraft/shaped/netherite_leggings" + }, + { + "type": "patchouli:crafting", + "recipe": "tfg:create/shaped/netherite_diving_boots", + "recipe2": "tfg:create/shaped/netherite_diving_boots_upgrade" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/curious_blocks.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/curious_blocks.json new file mode 100644 index 000000000..73f70cb95 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/curious_blocks.json @@ -0,0 +1,23 @@ +{ + "name": "独特方块", + "category": "tfc:beneath", + "icon": "beneath:blackstone_aqueduct", + "pages": [ + { + "type": "patchouli:crafting", + "recipe": "beneath:crafting/blackstone_aqueduct", + "text": "辉石岩引水桥可用于远距离输送岩浆。" + }, + { + "type": "patchouli:crafting", + "recipe": "tfg:shapeless/hellbricks_from_soot", + "text": "地狱砖是一种建筑方块,也用于地狱熔炉建造。" + }, + { + "type": "patchouli:crafting", + "recipe": "beneath:crafting/blackstone_brick", + "text": "混合岩和辉石岩砖块如普通砖块一样制作,也需要先制作石砖物品。" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/hellforge.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/hellforge.json new file mode 100644 index 000000000..07f3d8f10 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/hellforge.json @@ -0,0 +1,50 @@ +{ + "name": "地狱熔炉", + "category": "tfc:beneath", + "icon": "beneath:cursecoal", + "pages": [ + { + "type": "patchouli:text", + "text": "$(thing)地狱熔炉$() 是一个超大规模的炉子,具备高燃料容量、产物产能和加热效率。它由地狱砖、$(l:beneath/ores_and_minerals#cursecoal)无烟煤$() 和辉石岩引水桥构成。" + }, + { + "type": "patchouli:multiblock", + "multiblock": { + "pattern": [ + [ + "ZXXXZ", + "XYYYX", + "XY0YX", + "XYYYX", + "ZXXXZ" + ], + [ + " ", + " XXX ", + " XXX ", + " XXX ", + " " + ] + ], + "mapping": { + "Z": "beneath:blackstone_aqueduct[fluid=lava]", + "Y": "beneath:hellforge_side", + "0": "beneath:hellforge", + "X": "beneath:hellbricks" + } + }, + "name": "地狱熔炉", + "text": "", + "enable_visualize": false + }, + { + "type": "patchouli:text", + "text": "地狱熔炉需要在四个角的引水桥中流入岩浆,以及 21 块地狱砖。中间的 3x3 区域必须填满 $(l:beneath/ores_and_minerals#cursecoal)无烟煤堆$(),点火后即可启动熔炉。" + }, + { + "type": "patchouli:text", + "text": "地狱熔炉的物品槽位可放置燃料或待冶炼的物品;没有区别。小心放错东西!还有熔炼槽,如同木炭炉一般使用。屏幕上的岩浆计量表表示温度(同时可通过物品在世界中的移动可视化)。" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/ores_and_minerals.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/ores_and_minerals.json new file mode 100644 index 000000000..94983723f --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/ores_and_minerals.json @@ -0,0 +1,76 @@ +{ + "name": "矿石与矿物", + "category": "tfc:beneath", + "icon": "beneath:ore/normal_nether_gold", + "pages": [ + { + "type": "patchouli:text", + "text": "你在幽冥之地能找到的矿石大多与地表相似,但有一些改动。请参考$(l:tfg_ores)TFG矿物$()获取详细信息。" + }, + { + "type": "patchouli:spotlight", + "title": "混合岩", + "item": { + "tag": "forge:ores_in_ground/deepslate" + }, + "text": "最常见的岩石类型是混合岩。这种深层变质岩包含了你在地表其他岩石中常见的多种矿产。" + }, + { + "type": "patchouli:spotlight", + "title": "石灰华", + "item": { + "tag": "forge:ores_in_ground/dripstone" + }, + "text": "在较湿地区,你可能发现 $(thing)石灰华$()。这是一种沉积岩,可含有与混合岩相似类型的矿藏。" + }, + { + "type": "patchouli:spotlight", + "title": "辉石岩", + "item": { + "tag": "forge:ores_in_ground/pyroxenite" + }, + "text": "在幽冥之地最深处,不同岩性逐渐变为 $(thing)辉石岩$()。这种超镁铁质火成岩富含矿石,但也伴随着极端高温,做好准备再深入!" + }, + { + "type": "patchouli:multiblock", + "anchor": "cursecoal", + "multiblock": { + "pattern": [ + [ + "X" + ], + [ + "0" + ] + ], + "mapping": { + "X": "beneath:ore/nether_cursecoal" + } + }, + "name": "无烟煤", + "text": "无烟煤是一种强大的 $(l:beneath/hellforge)燃料$()。可在幽冥之地上层区的混合岩中找到。", + "enable_visualize": false + }, + { + "type": "patchouli:multiblock", + "anchor": "sylvite", + "multiblock": { + "pattern": [ + [ + "X" + ], + [ + "0" + ] + ], + "mapping": { + "X": "beneath:ore/blackstone_sylvite" + } + }, + "name": "钾石盐", + "text": "钾石盐是一种肥料,可在幽冥之地下层区的辉石岩中找到。", + "enable_visualize": false + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/piglins.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/piglins.json new file mode 100644 index 000000000..1e117dc9a --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/piglins.json @@ -0,0 +1,40 @@ +{ + "name": "猪灵", + "category": "tfc:beneath", + "icon": "minecraft:gold_ingot", + "pages": [ + { + "type": "patchouli:text", + "title": "猪灵交易", + "text": "像你预期那样,你可以用 $(item)金锭$() 与 $(thing)猪灵$() 进行交易,方式与原版相同。" + }, + { + "type": "patchouli:entity", + "entity": "minecraft:piglin", + "scale": 0.9, + "name": "猪灵", + "text": "你可以在幽冥之地几乎所有生物群系中找到猪灵。" + }, + { + "type": "patchouli:text", + "title": "交易产物", + "text": "$(li)1 铜锭$(li)1 锡锭$(li)1 银锭$(li)1 青铜锭$(li)1 铋青铜锭$(li)1 铸铁锭$(li)1 锌锭$(li)1 黄铜锭$(li)1 铋锭$(li)1 镍锭$(li)1 朱砂宝石" + }, + { + "type": "patchouli:text", + "text": "$(li)4-6 硫磺粉$(li)1-2 皮革$(li)6-12 线$(li)6-12 下界石英$(li)12-18 桃花心木材$(li)6-8 桃花心木原木$(li)4-6 熟鹿肉$(li)4-6 鬼椒$(li)4-6 火药$(li)4-8 木炭$(li)6-12 箭矢$(li)6-12 助焊剂$(li)8-12 辉石岩砖$(li)8-12 混合岩砖$(li)8-16 木棍" + }, + { + "type": "patchouli:text", + "title": "堡垒遗迹", + "text": "掠夺一个 $(thing)堡垒遗迹$() 可能危险,但回报也很丰厚!你能获得如下物品:$(li)金、玫瑰金、生铁、黑青铜和银锭$(li)黑青铜武器、工具和护甲$(li)高岭土和石墨$(li)永久光源$(li)布料、皮革、种子和食物$(li)以及其他宝藏!" + }, + { + "type": "patchouli:spotlight", + "item": "tfg:piglin_disguise", + "title": "猪灵伪装", + "text": "如果你希望顺利交易,或者单纯想融入当地……戴上 $(thing)猪灵伪装$() 可避免猪灵一开始对你敌对。但注意!它们容忍有限……" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/unposter.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/unposter.json new file mode 100644 index 000000000..6f149ccdb --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/unposter.json @@ -0,0 +1,16 @@ +{ + "name": "蘑菇培育桶", + "category": "tfc:beneath", + "icon": "beneath:unposter", + "pages": [ + { + "type": "patchouli:text", + "text": "$(thing)蘑菇培育桶$()用于培育蘑菇。可将蘑菇及下界作物放入其中。当其放置在蘑菇旁时,将消耗内部储存的物品,使周边的该种蘑菇每日增殖一次。" + }, + { + "type": "patchouli:crafting", + "recipe": "beneath:crafting/unposter" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/water.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/water.json new file mode 100644 index 000000000..59bb3b763 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/beneath/water.json @@ -0,0 +1,21 @@ +{ + "name": "保持水分", + "category": "tfc:beneath", + "icon": "beneath:juicer", + "pages": [ + { + "type": "patchouli:text", + "text": "与下界不同,水不会在幽冥之地立刻蒸发。不过你也可以制作一个 $(thing)榨汁器$()。" + }, + { + "type": "patchouli:crafting", + "recipe": "beneath:crafting/juicer", + "text": "榨汁器是一个饮水容器,可将 $(thing)蘑菇$() 和 $(thing)水果$() 压榨成水。单槽界面会自动把输入的蘑菇加工为水。" + }, + { + "type": "patchouli:text", + "text": "这些蘑菇遍布整个幽冥之地。新鲜水果(比如 $(thing)发光浆果$())也可以挤成水。$(br2)你还可以在幽冥之地上层区域找到水源和 $(thing)温泉$()。" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/firmalife/irrigation.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/firmalife/irrigation.json new file mode 100644 index 000000000..b6ff7aa0f --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/firmalife/irrigation.json @@ -0,0 +1,28 @@ +{ + "name": "灌溉", + "category": "tfc:firmalife", + "icon": "firmalife:sprinkler", + "pages": [ + { + "type": "patchouli:text", + "text": "$(thing)喷洒器$() 是一种可向其下方 5×6×5 范围内均匀喷水的装置。当它开始滴落水粒子时,说明正在工作。朝上的喷洒器会灌溉其上方同样大小的区域。" + }, + { + "type": "tfc:anvil_recipe", + "recipe": "firmalife:anvil/sprinkler", + "text": "喷洒器由一块 $(thing)铜板$() 制成。" + }, + { + "title": "管道系统", + "item": "gtceu:copper_tiny_fluid_pipe", + "type": "patchouli:spotlight", + "text": "喷洒器必须连接到一套供水管道才能工作。这通过将一系列 $(thing)流体管道$() 连接到喷洒器实现。你可以用 $(thing)动力泵$() 向其中加水。" + }, + { + "type": "patchouli:text", + "text": "你可以右键点击管道并使用格雷科技的框架(如 $(thing)铜框架$())使其与墙面齐平,或使用温室接口。之后即可直接将喷洒器接在管道上!用扳手右键管道可调整方向,按住 Shift 并$(thing)空手$()右键可设置为单向流动。" + } + ], + "read_by_default": true, + "sortnum": 8 +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/getting_started/finding_ores.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/getting_started/finding_ores.json new file mode 100644 index 000000000..880cc04ff --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/getting_started/finding_ores.json @@ -0,0 +1,109 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "name": "矿石、金属和铸造", + "category": "tfc:getting_started", + "icon": "tfc:ore/normal_native_copper", + "pages": [ + { + "type": "patchouli:text", + "text": "除了地上的那些木棍、树枝和小石子,你可能还遇到过散落在地表的小矿粒。多收集一点吧,在你获得镐之前,这是你获得矿石和金属为数不多的方法之一。" + }, + { + "type": "patchouli:multiblock", + "multiblock": { + "pattern": [ + [ + " ", + " 0 ", + " " + ], + [ + "ABCD", + "EFGH", + "IJKL" + ], + [ + "XXXX", + "XXXX", + "XXXX" + ] + ], + "mapping": { + "X": "tfc:grass/loam", + "A": "tfc:ore/small_native_copper", + "B": "tfc:ore/small_native_gold", + "C": "tfc:ore/small_hematite", + "D": "tfc:ore/small_native_silver", + "E": "tfc:ore/small_cassiterite", + "F": "tfc:ore/small_bismuthinite", + "G": "tfc:ore/small_garnierite", + "H": "tfc:ore/small_malachite", + "I": "tfc:ore/small_magnetite", + "J": "tfc:ore/small_limonite", + "K": "tfc:ore/small_sphalerite", + "L": "tfc:ore/small_tetrahedrite" + } + }, + "name": "", + "text": "每种不同的小矿粒", + "enable_visualize": false + }, + { + "type": "patchouli:text", + "text": "这些小矿粒不仅为你提供了早期生存至关重要的金属素材,它们还提示你它们附近的浅表层岩石中可能存在大型矿脉。留心标记你发现这些小矿粒的位置,这些信息等你以后有了$(l:mechanics/prospecting)勘矿镐$()之后会很有用的。$(br2)下一页会介绍这个世界中的的十二种矿粒和他们所对应的金属。" + }, + { + "type": "patchouli:text", + "text": "$(li)原生铜粒($(thing)铜$())$(li)原生金粒($(thing)金$())$(li)赤铁矿粒($(thing)铸铁$())$(li)原生银粒($(thing)银$())$(li)锡石粒($(thing)锡$())$(li)辉铋矿粒($(thing)铋$())$(li)绿镍矿粒($(thing)镍$())$(li)孔雀石粒($(thing)铜$())$(li)磁铁矿粒($(thing)铸铁$())$(li)褐铁矿粒($(thing)铸铁$())$(li)闪锌矿粒($(thing)锌$())$(li)黝铜矿粒($(thing)铜$())", + "title": "小矿石粒" + }, + { + "type": "patchouli:text", + "anchor": "casting", + "text": "在群峦传说中,每个矿石包含的实际金属的$(thing)单位$()($(thing)mB(也就是毫桶)$())是不同的。像这样在地表发现的小矿粒质量最低,只能提供 $(thing)10 mB$() 的金属。为了提取这种金属,需要将其熔化,并使用称为$(thing)铸造$()的工艺制成工具。", + "title": "铸造" + }, + { + "type": "patchouli:text", + "text": "开始之前,你需要准备:$(br)$(li)一只$(l:getting_started/pottery#vessel)小缸$()$(li)足够搭建一个$(l:getting_started/pit_kiln)坑窑$()的材料。$(li)若干个用来浇铸金属的$(l:getting_started/pottery#mold)模具$()。$(li)最后,也是最重要的,至少价值 100 mB 的可以用来铸造的金属矿石。早期的话就只有$(thing)铜$()了(三种铜矿石中的任意一种,或者混搭都行)。$(br2)$(italic)备注:如果材料足够,也可以直接铸造某些$(l:getting_started/primitive_alloys)合金$()。" + }, + { + "type": "patchouli:text", + "text": "首先,打开并将想要熔化的矿粒放进$(thing)小缸$()中。记得一定要数好金属的数量!小缸最多容纳 3024 mB 液态金属,超出部分会损失。然后,把装有矿粒的小缸放进$(l:getting_started/pit_kiln)坑窑$()中并点燃。矿石会随着小缸的升温而熔化,然后你就得到了一缸液态金属。" + }, + { + "type": "patchouli:crafting", + "recipe": "tfchotornot:crafting/tongs/wood", + "text": "小心,小缸现在非常烫!用两根木棍和一把刀制作$(thing)木钳子$(),装备在副手中,才能安全处理高温的小缸。" + }, + { + "type": "patchouli:image", + "images": [ + "tfc:textures/gui/book/gui/casting.png" + ], + "text": "手持小缸并按下$(item)$(k:key.use)$()来打开$(thing)铸造$()界面。", + "border": false + }, + { + "type": "patchouli:text", + "text": "接下来,只要将烧制好的模具放在屏幕中间的空格内就可以将液态金属浇铸进模具了。一定要趁金属还没凝固时浇铸。如果金属变冷了的话就只能再造一个坑窑把它熔化了!模具注满之后就可以从小缸中拿出来冷却了。等待模具中的金属凝固之后,手持模具$(item)$(k:key.use)$()点击,或将模具放入合成格中就可以将成品取出。" + }, + { + "type": "patchouli:crafting", + "recipe": "gtceu:shaped/pickaxe_copper", + "text": "现在你学会如何铸造金属工具了,来尝试做一把镐吧!去收集矿粒,做一个镐头模具,再在坑窑里熔化矿粒并浇铸到模具里,最后加上一根木棍就好了!现在你可以去挖$(l:tfg_ores/index)矿石$()了。" + }, + { + "type": "patchouli:spotlight", + "item": "tfc:metal/chisel/copper", + "text": "还有其他重要的金属工具可供进展使用。$(l:mechanics/chisel)凿子$()可用于石材加工,以满足建筑需求及其他配方需求。" + }, + { + "type": "patchouli:spotlight", + "item": "gtceu:copper_saw", + "text": "锯子可用于将原木加工为$(l:mechanics/support_beams)支撑梁$()和$(thing)木材$(),进一步可制成木板、工作台、箱子等。也可用来建造$(l:firmaciv/canoe)独木舟$()。" + } + ], + "read_by_default": true, + "sortnum": 4 +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/getting_started/introduction.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/getting_started/introduction.json new file mode 100644 index 000000000..bb5915fbf --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/getting_started/introduction.json @@ -0,0 +1,168 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "name": "第一天", + "category": "tfc:getting_started", + "icon": "tfc:rock/loose/granite", + "pages": [ + { + "type": "patchouli:text", + "text": "在群峦传说中,你最初能获得的资源只有那些散落在地上的木棍、树枝、和小石子。几乎所有气候中都会有这些资源。你可以按$(item)$(k:key.use)$(),或打破它们来把它们捡起来。" + }, + { + "type": "patchouli:multiblock", + "multiblock": { + "pattern": [ + [ + "1 ", + " 2 4", + " 03 ", + " 4 ", + " 5" + ], + [ + "GGGGG", + "GGGGG", + "GGGGG", + "GGGGG", + "GGGGG" + ] + ], + "mapping": { + "G": "tfc:grass/sandy_loam", + "1": "tfc:rock/loose/granite[count=1]", + "2": "tfc:rock/loose/granite[count=2]", + "3": "tfc:rock/loose/granite[count=3]", + "4": "tfc:groundcover/stick", + "5": "tfc:wood/twig/ash" + } + }, + "name": "示例", + "text": "一些散落的木棍和石头。", + "enable_visualize": false + }, + { + "type": "patchouli:text", + "text": "除了在地上收集木棍和小树枝外,还可以空手打碎树叶来获得木棍。在你收集了一些石头和木棍后,你就可以开始尝试$(thing)打制石器$()了。打制石器是将两块石子互相敲击以将其中一块凿成特定形状的过程。首先你的手中应至少握住两块石子,然后对着空气按下$(item)$(k:key.use)$()就能打开$(thing)打制界面$()。" + }, + { + "type": "patchouli:image", + "images": [ + "tfc:textures/gui/book/gui/rock_knapping.png" + ], + "text": "打制界面。", + "border": false + }, + { + "type": "patchouli:text", + "text": "想要打制特定的物品,就必须通过点击$(thing)打制界面$()上的正方形石片来凿去不要的部分,直到形成所需的图案。例如将石片凿成右侧显示的图案就能做成石刀刃。$(br2)与合成配方一样,所需图案的位置对输出并不重要,并且一些配方具有多个有效的图案。" + }, + { + "type": "tfc:rock_knapping_recipe", + "anchor": "knife", + "recipes": [ + "tfg:rock_knapping/stone_knife_head", + "tfg:rock_knapping/stone_knife_head_1", + "tfg:rock_knapping/stone_knife_head_2", + "tfg:rock_knapping/stone_knife_head_3" + ], + "text": "一把石刀刃,用各种不同的岩石都可以制作。" + }, + { + "type": "patchouli:crafting", + "recipe": "gtceu:shaped/knife_stone", + "text": "使用木棍或小树枝可以把任意的石制工具头组装成完整的工具。$(br2)石刀可以破坏植物来收获$(thing)干草$()。" + }, + { + "type": "tfc:rock_knapping_recipe", + "recipes": [ + "tfg:rock_knapping/stone_axe_head" + ], + "text": "$(thing)斧$()可以砍倒整棵树,包括树干和树叶。但只有单独打碎树叶才能获得树苗和木棍。" + }, + { + "type": "tfc:rock_knapping_recipe", + "recipes": [ + "tfg:rock_knapping/stone_shovel_head" + ], + "text": "$(thing)铲$()可以用来挖类似土壤材质的方块。对$(thing)草方块$()或$(thing)泥土$(item)使用$()铲子也可以制造$(thing)土径$()。" + }, + { + "type": "tfc:rock_knapping_recipe", + "recipes": [ + "tfg:rock_knapping/stone_hoe_head", + "tfg:rock_knapping/stone_hoe_head_1", + "tfg:rock_knapping/stone_hoe_head_2" + ], + "text": "$(thing)锄$()是$(l:mechanics/crops)农耕$()不可或缺的工具。它也可以清理树叶或其他植物。" + }, + { + "type": "tfc:rock_knapping_recipe", + "recipes": [ + "tfg:rock_knapping/stone_hammer_head" + ], + "text": "$(thing)锤$()可以当作武器使用(造成$(l:mechanics/damage_types)打击伤害$()),但它最主要的用途还是在$(l:getting_started/primitive_anvils)冶金业$()中。" + }, + { + "type": "tfc:rock_knapping_recipe", + "recipes": [ + "tfc:rock_knapping/javelin_head_sedimentary", + "tfc:rock_knapping/javelin_head_metamorphic", + "tfc:rock_knapping/javelin_head_igneous_extrusive", + "tfc:rock_knapping/javelin_head_igneous_intrusive" + ], + "text": "最后,$(thing)标枪$()是一种原始的一次性远程武器,也可以当作近战武器使用(造成$(l:mechanics/damage_types)突刺伤害$())。" + } + ], + "read_by_default": true, + "sortnum": 0, + "extra_recipe_mappings": { + "tfc:stone/knife_head/sedimentary": 5, + "tfc:stone/knife_head/metamorphic": 5, + "tfc:stone/knife_head/igneous_extrusive": 5, + "tfc:stone/knife_head/igneous_intrusive": 5, + "tfc:stone/knife/sedimentary": 5, + "tfc:stone/knife/metamorphic": 5, + "tfc:stone/knife/igneous_extrusive": 5, + "tfc:stone/knife/igneous_intrusive": 5, + "tfc:stone/axe_head/sedimentary": 7, + "tfc:stone/axe_head/metamorphic": 7, + "tfc:stone/axe_head/igneous_extrusive": 7, + "tfc:stone/axe_head/igneous_intrusive": 7, + "tfc:stone/axe/sedimentary": 7, + "tfc:stone/axe/metamorphic": 7, + "tfc:stone/axe/igneous_extrusive": 7, + "tfc:stone/axe/igneous_intrusive": 7, + "tfc:stone/shovel_head/sedimentary": 8, + "tfc:stone/shovel_head/metamorphic": 8, + "tfc:stone/shovel_head/igneous_extrusive": 8, + "tfc:stone/shovel_head/igneous_intrusive": 8, + "tfc:stone/shovel/sedimentary": 8, + "tfc:stone/shovel/metamorphic": 8, + "tfc:stone/shovel/igneous_extrusive": 8, + "tfc:stone/shovel/igneous_intrusive": 8, + "tfc:stone/hoe_head/sedimentary": 9, + "tfc:stone/hoe_head/metamorphic": 9, + "tfc:stone/hoe_head/igneous_extrusive": 9, + "tfc:stone/hoe_head/igneous_intrusive": 9, + "tfc:stone/hoe/sedimentary": 9, + "tfc:stone/hoe/metamorphic": 9, + "tfc:stone/hoe/igneous_extrusive": 9, + "tfc:stone/hoe/igneous_intrusive": 9, + "tfc:stone/hammer_head/sedimentary": 10, + "tfc:stone/hammer_head/metamorphic": 10, + "tfc:stone/hammer_head/igneous_extrusive": 10, + "tfc:stone/hammer_head/igneous_intrusive": 10, + "tfc:stone/hammer/sedimentary": 10, + "tfc:stone/hammer/metamorphic": 10, + "tfc:stone/hammer/igneous_extrusive": 10, + "tfc:stone/hammer/igneous_intrusive": 10, + "tfc:stone/javelin_head/sedimentary": 11, + "tfc:stone/javelin_head/metamorphic": 11, + "tfc:stone/javelin_head/igneous_extrusive": 11, + "tfc:stone/javelin_head/igneous_intrusive": 11, + "tfc:stone/javelin/sedimentary": 11, + "tfc:stone/javelin/metamorphic": 11, + "tfc:stone/javelin/igneous_extrusive": 11, + "tfc:stone/javelin/igneous_intrusive": 11 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/getting_started/primitive_alloys.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/getting_started/primitive_alloys.json new file mode 100644 index 000000000..627d4d5fa --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/getting_started/primitive_alloys.json @@ -0,0 +1,76 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "name": "原始合金", + "category": "tfc:getting_started", + "icon": "tfc:ceramic/ingot_mold{tank:{\"Amount\":100,\"FluidName\":\"tfc:metal/bronze\"}}", + "pages": [ + { + "type": "patchouli:text", + "text": "$(thing)合金$()是指由两种或更多种不同金属混合而成的更强的金属。铜在游戏早期很实用,但想要发展到下一级文明,就必须想办法做出$(thing)青铜$()。将不同金属混合在一起熔化,只要所有成分都处于特定区间内就能做出对应的合金了!" + }, + { + "type": "patchouli:text", + "text": "$(thing)小缸$()是游戏早期唯一可以制作合金的手段。制作合金的步骤和$(l:getting_started/finding_ores#casting)铸造$()很相似,唯一的区别是要在小缸中混合放置多种不同的金属而不仅仅是铜。只要小缸中的几种金属比例都位于可接受范围内,熔化所得的金属就会自动转化为合金。" + }, + { + "type": "patchouli:text", + "text": "例如,要合成 1000 mB 的$(thing)青铜$()(右侧所示),你需要加入 700~800 mB 的$(thing)铜$()以及 200~300 mB 的$(thing)锡$()。$(br2)接下来的几页展示了三种不同的铜合金。每种铜合金都可以做成工具、$(l:mechanics/armor)盔甲$()、和其他金属物品,但它们的耐久度、效率、和伤害有些微小的差异。" + }, + { + "type": "patchouli:spotlight", + "item": "gtceu:bronze_ingot", + "title": "青铜", + "link_recipes": false, + "text": "$(br)$(bold)条件:$()$(br)$(li)70 - 80 %:$(thing)铜$()$(li)20 - 30 %:$(thing)锡$()$(br2)" + }, + { + "type": "patchouli:spotlight", + "item": "gtceu:bismuth_bronze_ingot", + "title": "铋青铜", + "link_recipes": false, + "text": "$(br)$(bold)条件:$()$(br)$(li)20 - 30 %:$(thing)锌$()$(li)50 - 65 %:$(thing)铜$()$(li)10 - 20 %:$(thing)铋$()$(br2)" + }, + { + "type": "patchouli:spotlight", + "item": "gtceu:black_bronze_ingot", + "title": "黑青铜", + "link_recipes": false, + "text": "$(br)$(bold)条件:$()$(br)$(li)50 - 70 %:$(thing)铜$()$(li)10 - 25 %:$(thing)银$()$(li)10 - 25 %:$(thing)金$()$(br2)" + }, + { + "type": "patchouli:text", + "text": "还有一些其他不适合制成工具的合金,比如$(thing)黄铜$()、$(thing)玫瑰金$()和$(thing)纯银$()。$(br2)$(thing)黄铜$()的主要作用是制作各种小装置,如$(l:mechanics/mechanical_power)机械动力$()。$(br2)$(thing)玫瑰金$()和$(thing)纯银$()则是熔炼$(l:mechanics/steel#red_steel)红钢$()和$(l:mechanics/steel#blue_steel)蓝钢$()时必须的原料。", + "title": "功能性合金" + }, + { + "type": "patchouli:spotlight", + "anchor": "brass", + "item": "create:brass_ingot", + "title": "黄铜", + "link_recipes": false, + "text": "$(br)$(bold)配方要求:$()$(br)$(li)70 - 80 %:$(thing)铜$()$(li)20 - 30 %:$(thing)锌$()$(br2)" + }, + { + "type": "patchouli:spotlight", + "item": "gtceu:rose_gold_ingot", + "title": "玫瑰金", + "link_recipes": false, + "text": "$(br)$(bold)条件:$()$(br)$(li)15 - 30 % : $(thing)铜$()$(li)70 - 85 % : $(thing)金$()$(br2)" + }, + { + "type": "patchouli:spotlight", + "item": "gtceu:sterling_silver_ingot", + "title": "纯银", + "link_recipes": false, + "text": "$(br)$(bold)条件:$()$(br)$(li)20 - 40 % : $(thing)铜$()$(li)60 - 80 % : $(thing)银$()$(br2)" + } + ], + "read_by_default": true, + "sortnum": 5, + "extra_recipe_mappings": { + "gtceu:bronze_ingot": 3, + "gtceu:bismuth_bronze_ingot": 4, + "gtceu:black_bronze_ingot": 5, + "gtceu:brass_ingot": 7 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/getting_started/primitive_anvils.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/getting_started/primitive_anvils.json new file mode 100644 index 000000000..3d09b9f8a --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/getting_started/primitive_anvils.json @@ -0,0 +1,237 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "name": "原始砧", + "category": "tfc:getting_started", + "icon": "tfc:rock/anvil/granite", + "pages": [ + { + "type": "patchouli:text", + "text": "除了在游戏初期直接浇铸工具外,使用$(thing)砧$()锻造金属也是另一种选择,同时更是加工高级金属的必要条件。砧能用于两种不同工艺:$(l:mechanics/anvils#working)锻造$()和$(l:mechanics/anvils#welding)焊接$()。砧可将所需金属的双锭焊接成更高一级的砧,这是处理该金属其他物品的必要步骤。" + }, + { + "type": "patchouli:text", + "text": "首先,你得找到一块$(thing)天然的$()$(thing)喷出岩$() (流纹岩、玄武岩、安山岩、或英安岩)或$(thing)侵入岩$()(花岗岩、闪长岩、或辉长岩)。你可以直接使用暴露在地表的那些,或者也可以把它们从岩壁上$(l:getting_started/primitive_anvils#raw_rock)采下来$()。" + }, + { + "type": "patchouli:text", + "anchor": "stone_anvils", + "text": "你还需要一把任意材料制成的$(thing)锤$()。要把岩石变成砧,手持$(thing)锤$()右键点击其$(thing)顶面$()即可。$(br2)砧是有不同$(l:mechanics/anvils#tiers)等级$()的。石砧的等级是 0 - 也就是最低等级。它只能用来$(l:mechanics/anvils#welding)焊接$() 1 级的金属锭。", + "title": "石砧" + }, + { + "type": "tfc:multimultiblock", + "text": "将中间那块岩石作为石砧。", + "multiblocks": [ + { + "pattern": [ + [ + " 0 " + ], + [ + "RRR" + ] + ], + "mapping": { + "0": "AIR", + "R": "tfc:rock/raw/gabbro" + } + }, + "tfc:rock_anvil" + ] + }, + { + "type": "patchouli:text", + "anchor": "raw_rock", + "text": "想要获得一块天然的岩石,直接用镐挖是不行的。唯一的方法是将其六面所相邻的方块都挖掉, $(thing)悬空$()的岩石就会掉落其本体了。", + "title": "获得天然岩石" + }, + { + "type": "tfc:multimultiblock", + "text": "挖掉一块天然岩石的所有六个邻面——完成后,中心块将作为物品掉落。", + "multiblocks": [ + { + "pattern": [ + [ + " ", + " R ", + " " + ], + [ + " R ", + "RRR", + " R " + ], + [ + " ", + " 0 ", + " " + ] + ], + "mapping": { + "0": "tfc:rock/raw/gabbro", + "R": "tfc:rock/raw/gabbro" + } + }, + { + "pattern": [ + [ + " ", + " ", + " " + ], + [ + " R ", + "RRR", + " R " + ], + [ + " ", + " 0 ", + " " + ] + ], + "mapping": { + "0": "tfc:rock/raw/gabbro", + "R": "tfc:rock/raw/gabbro" + } + }, + { + "pattern": [ + [ + " ", + " ", + " " + ], + [ + " ", + "RRR", + " R " + ], + [ + " ", + " 0 ", + " " + ] + ], + "mapping": { + "0": "tfc:rock/raw/gabbro", + "R": "tfc:rock/raw/gabbro" + } + }, + { + "pattern": [ + [ + " ", + " ", + " " + ], + [ + " ", + " RR", + " R " + ], + [ + " ", + " 0 ", + " " + ] + ], + "mapping": { + "0": "tfc:rock/raw/gabbro", + "R": "tfc:rock/raw/gabbro" + } + }, + { + "pattern": [ + [ + " ", + " ", + " " + ], + [ + " ", + " RR", + " " + ], + [ + " ", + " 0 ", + " " + ] + ], + "mapping": { + "0": "tfc:rock/raw/gabbro", + "R": "tfc:rock/raw/gabbro" + } + }, + { + "pattern": [ + [ + " ", + " ", + " " + ], + [ + " ", + " R ", + " " + ], + [ + " ", + " 0 ", + " " + ] + ], + "mapping": { + "0": "tfc:rock/raw/gabbro", + "R": "tfc:rock/raw/gabbro" + } + }, + { + "pattern": [ + [ + " ", + " ", + " " + ], + [ + " ", + " R ", + " " + ], + [ + " ", + " 0 ", + " " + ] + ], + "mapping": { + "0": "AIR", + "R": "tfc:rock/raw/gabbro" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "welding", + "text": "焊接是一种将两个物品熔合为新物品的过程。无论是在$(l:getting_started/primitive_anvils)石砧$()还是$(l:mechanics/anvils)金属砧$()上都一样。$(br2)首先,你必须将待焊接的两个物品放置在砧上。可通过手持物品对砧点击使用,或打开砧的操作界面将其放入最左侧的两个槽位中完成放置。", + "title": "焊接" + }, + { + "type": "patchouli:text", + "text": "此外,砧内需至少存放一份$(l:mechanics/flux)助焊剂$()以辅助焊接过程。当两个物品均达到$(l:mechanics/heating)可焊接温度$()(提示信息将显示“可焊接”)时,用任意$(thing)锤$()击打砧,或点击砧操作界面中的焊接按钮即可。此时将传出锻打声效,物品也随之熔合为一体。" + } + ], + "read_by_default": true, + "sortnum": 6, + "extra_recipe_mappings": { + "tfc:rock/anvil/granite": 0, + "tfc:rock/anvil/diorite": 0, + "tfc:rock/anvil/gabbro": 0, + "tfc:rock/anvil/rhyolite": 0, + "tfc:rock/anvil/basalt": 0, + "tfc:rock/anvil/andesite": 0, + "tfc:rock/anvil/dacite": 0 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/anvils.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/anvils.json new file mode 100644 index 000000000..afa952385 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/anvils.json @@ -0,0 +1,111 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "name": "砧", + "category": "tfc:mechanics", + "icon": "tfc:metal/anvil/copper", + "pages": [ + { + "type": "patchouli:text", + "text": "砧是开展冶金大业必不可少的工具。砧的主要作用是焊接金属锭,或将它们锻造成各种不同的工具和装备。$(br2)$(l:mechanics/anvils#working)锻造$()是指将一块金属锭打造成其他形状,以便于将其制成某些工具或装备的工艺。而$(l:mechanics/anvils#welding)焊接$()则是指将两块金属锭或其他金属部件粘连在一起物品的工艺。" + }, + { + "type": "patchouli:multiblock", + "multiblock": { + "pattern": [ + [ + "X" + ], + [ + "0" + ] + ], + "mapping": { + "X": "#tfc:anvils" + } + }, + "name": "", + "text": "各式各样的金属砧", + "enable_visualize": false + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/metal/anvil/copper", + "text": "砧是由它们对应的金属$(thing)双锭$()制作的。在获得你的第一个砧前,你只能使用最原始的$(l:getting_started/primitive_anvils)石砧$()。有了石砧,你就可以用它来$(l:mechanics/anvils#welding)焊接$()出$(thing)铜双锭$()了。" + }, + { + "type": "patchouli:text", + "anchor": "tiers", + "text": "砧是分$(thing)等级$()的。等级决定了什么样的金属和材料可以在这个砧上加工。只有等级和砧相同或比砧低的材料才可以在砧上锻造,而能在砧上焊接的金属的最大等级为砧的等级 +1。$(br)$(li)$(bold)第零级$():石砧$(li)$(bold)第一级$():铜$(li)$(bold)第二级$():铋铜、黑铜、青铜$(li)$(bold)第三级$():锻铁$(li)$(bold)第四级$():钢$(li)$(bold)第五级$():黑钢$(li)$(bold)第六级$();红钢、蓝钢" + }, + { + "type": "patchouli:text", + "anchor": "working", + "text": "与砧互动就能打开砧界面,如右图所示。屏幕左侧的两个空格是用来放置需要加工的物品的。锻造素材必须放在右边那格——左边那格只有焊接时才会用到。锻造时,必须手持、或在右侧空格内放置一柄$(thing)锤$()。每次加工时,锤都会略微磨损。", + "title": "如何锻造" + }, + { + "type": "patchouli:image", + "images": [ + "tfc:textures/gui/book/gui/anvil_empty.png" + ], + "text": "砧界面", + "border": false + }, + { + "type": "patchouli:text", + "text": "开工前,你必须先选择锻造$(thing)目标$()。$(item)$(k:key.attack)$()点击卷轴图标打开目标一览,选择完后会自动返回砧界面,且卷轴图标会转变为你刚刚选择的物品,同时屏幕上方的三个空格会显示当前目标所需的$(thing)锻造规则$()。" + }, + { + "type": "patchouli:image", + "images": [ + "tfc:textures/gui/book/gui/anvil_in_use.png" + ], + "text": "案例:选择镐头作为目标", + "border": false + }, + { + "type": "patchouli:text", + "text": "屏幕的最中间有一根长条和一红一绿两个指针。$(2)绿色指针$()表示了目前的锻造进度。$(4)红色指针$()表示了锻造目标。你需要做的,就是将绿色指针与红色指针对齐。", + "title": "完成锻造目标" + }, + { + "type": "patchouli:text", + "text": "$(br2)屏幕正中的$(4)红色$()与$(2)绿色$()按钮代表了不同的$(thing)锻造手法$()。使用$(2)绿色$()手法会将绿色指针向$(bold)右$()移动,而使用$(4)红色$()手法则会将绿色指针向$(bold)左$()移动。注意!如果你把绿色指针打出了屏幕,锻造素材就作废了!然而,单单将两个指针对齐是不够的。你还必须遵守额外的$(thing)锻造规则$()……" + }, + { + "type": "patchouli:text", + "text": "每个目标都会有两到三个$(thing)锻造规则$(),标注在屏幕顶部。锻造规则要求你按照特定的顺序使用特定的锻造手法来完成目标。比如,如果一个锻造规则要求“$(2)弯曲 倒数第二$()”,则你将指针对齐前的倒数第二个手法必须是“$(2)弯曲$()”", + "title": "锻造规则" + }, + { + "type": "patchouli:text", + "text": "锻造规则下方会显示你最后使用的三个锻造手法。被满足的锻造规则的轮廓会变为绿色。只有当所有锻造规则都被满足,且两个指针也对齐时才算锻造成功。$(br2)最后,别忘了留意锻造素材的$(l:mechanics/heating)温度$()。金属锭只有在温度足够高时(其工具提示会显示“可加工”)才可以用来锻造。锻造到一半的物品可以从砧上取出再加热,其锻造进度会保留。" + }, + { + "type": "patchouli:text", + "text": "锻造可不是件容易活儿。新手往往需要将素材来回敲打多次才能做好,而老手便能一气呵成。对于某些锻造目标(比如工具头)来说,如果能在几步内就做成,锻造出来的成品的$(thing)锻造评价$()会提升。用评价高的工具头做出来的工具会有一定的属性加成。", + "title": "锻造评价" + }, + { + "type": "patchouli:spotlight", + "item": "tfc:metal/pickaxe/wrought_iron{\"tfc:forging_bonus\":4}", + "title": "完美!", + "link_recipes": false, + "text": "有四种不同的锻造评价:$(li)粗糙$(li)合格$(li)精良$(li)完美!$(br2)根据工具类型的不同,这些词条会改变工具的耐久度、挖掘速度、和伤害等属性。" + }, + { + "type": "patchouli:text", + "anchor": "welding", + "text": "焊接是一种将两个物品熔合为新物品的工艺。无论是在$(l:getting_started/primitive_anvils)石砧$()还是金属砧上操作,焊接流程都完全一致。$(br2)首先,必须将待焊接的两个物品放置在砧上。可通过手持物品对砧点击使用,或打开砧的操作界面将其放入最左侧的两个槽位中完成放置。", + "title": "焊接" + }, + { + "type": "patchouli:text", + "text": "此外,砧内需至少存放一份$(l:mechanics/flux)助焊剂$()以辅助焊接过程。当两个物品均达到$(l:mechanics/heating)可焊接温度$()(提示信息将显示“可焊接”)时,用任意$(thing)锤$()击打砧,或点击砧操作界面中的焊接按钮即可。此时将传出锻打声效,物品也随之熔合为一体。完成后,空手对砧使用$(item)$(k:key.use)$()即可取出成品。" + } + ], + "read_by_default": true, + "extra_recipe_mappings": { + "tag:tfc:anvils": 0 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/blast_furnace.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/blast_furnace.json new file mode 100644 index 000000000..6bcb88bac --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/blast_furnace.json @@ -0,0 +1,68 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "name": "高炉", + "category": "tfc:mechanics", + "icon": "tfc:blast_furnace", + "pages": [ + { + "type": "patchouli:text", + "text": "$(thing)高炉$()是一种用来炼$(thing)钢$()的高级设备。将$(thing)铁矿石$()、$(thing)焦煤$()或$(l:beneath/ores_and_minerals#cursecoal)无烟煤$(),和$(thing)助焊剂$()在高热环境中混合就能制造出一种比锻铁更强的金属。$(br2)要搭建高炉,你必须先制作两个$(l:mechanics/crucible)坩埚$()、一根$(thing)鼓风口$()、和一个风箱。此外,你还会需要很多$(thing)锻铁板$()和$(thing)耐火砖块$()。" + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/blast_furnace", + "text": "制作高炉方块本体就需要一个$(thing)坩埚$(),以及一些$(thing)双层锻铁板$()。" + }, + { + "type": "patchouli:text", + "text": "接下来就可以开始搭建高炉的$(thing)烟囱$()了。烟囱必须用足以承受炼钢高温的$(l:mechanics/fire_clay#fire_bricks)强化耐火砖$()搭建。强化砖可通过手持铸铁板或锻铁板,对耐火砖块用$(item)$(k:key.sneak)$()+$(item)$(k:key.use)$()点击各个外露面进行包覆,或直接合成$(l:mechanics/blast_furnace_insulation)高炉保温板$()。" + }, + { + "type": "patchouli:multiblock", + "multiblock_id": "tfc:blast_furnace", + "name": "一座高炉", + "text": "最基础的高炉结构。", + "enable_visualize": true + }, + { + "type": "patchouli:text", + "text": "高炉的烟囱最多可以搭建 5 层,每层烟囱需要额外 4 块$(thing)耐火砖块$()和 12 张$(thing)锻铁板$()。每额外搭建一层烟囱,高炉就可以同时多烧炼 4 个物品,从而提升工作效率。" + }, + { + "type": "patchouli:text", + "text": "必须从高炉的烟囱顶投入炼钢所需的素材。要炼钢,首先将等量的$(thing)铁矿石$()和$(l:mechanics/flux)助焊剂$()投入高炉。铁矿石可以用任何能被熔化成$(thing)铸铁$()的物品代替。另外,你还需要在高炉燃烧的过程中不断加入$(l:tfg_tips/basic_automation)焦炭$()或$(l:beneath/ores_and_minerals#cursecoal)无烟煤$()来维持燃烧。" + }, + { + "type": "patchouli:text", + "text": "与高炉方块互动可以打开高炉界面,如右图所示。高炉界面会显示炉中的金属和燃料数量。屏幕右上角的空格必须放置一根$(thing)鼓风口$()。有了鼓风口高炉才能达到可以炼钢的温度。可以在$(l:mechanics/anvils)砧$()上锻造鼓风口。" + }, + { + "type": "patchouli:image", + "images": [ + "tfc:textures/gui/book/gui/blast_furnace.png" + ], + "text": "高炉界面", + "border": false + }, + { + "type": "patchouli:text", + "text": "你还需一个$(l:mechanics/bellows)风箱$()来使高炉升温至能融化铁的程度。风箱可以安装在高炉任意四个侧面之一。" + }, + { + "type": "patchouli:multiblock", + "multiblock_id": "tfc:full_blast_furnace", + "name": "", + "text": "一个最大的完整高炉结构,配有风箱和坩埚。", + "enable_visualize": true + }, + { + "type": "patchouli:text", + "text": "最后,用$(l:getting_started/firepit#firestarter)起火器$()或$(thing)打火石$()点燃高炉方块就可以开始炼钢了。高炉会缓慢加热矿石,同时要注意不断鼓风和添加燃料。当高炉内的温度足以熔化矿石时,矿石就会熔化并转化为$(l:mechanics/steel)生铁$()。" + }, + { + "type": "patchouli:text", + "text": "这种液态金属会滴落进正下方放置的任何金属液容器中,例如 $(l:mechanics/crucible)坩埚$()。接着可以从坩埚的输出槽铸造成锭,并进一步加工成 $(l:mechanics/steel)钢$()。" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/bloomery.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/bloomery.json new file mode 100644 index 000000000..7d6c41d3c --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/bloomery.json @@ -0,0 +1,80 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "name": "锻铁炉", + "category": "tfc:mechanics", + "icon": "tfc:bloomery", + "pages": [ + { + "type": "patchouli:text", + "text": "$(thing)锻铁炉$()是一种能将$(thing)铁矿$()烧炼成$(thing)生铁方坯$()的装置。生铁方坯可进一步锻造成$(thing)锻铁$()。$(l:the_world/ores_and_minerals#hematite)赤铁矿$()、$(l:the_world/ores_and_minerals#limonite)褐铁矿$()和$(l:the_world/ores_and_minerals#magnetite)磁铁矿$()均含铁。直接熔化这些矿石只会得到无用的$(thing)铸铁$()而非$(thing)锻铁$()。另外,所有含铁物品熔化时都只会变成铸铁。锻铁炉是把铸铁变为锻铁的唯一方法。锻铁炉接受任何含铁物品,包括铁矿石或铸铁锭。" + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/bloomery", + "text": "锻铁炉由 8 块 $(thing)双层青铜板$() 制作而成。" + }, + { + "type": "patchouli:multiblock", + "multiblock_id": "tfc:bloomery", + "name": "一座锻铁炉", + "text": "最基础的锻铁炉结构。锻铁炉方块可以用$(item)$(k:key.use)$()打开或关闭。", + "enable_visualize": true + }, + { + "type": "patchouli:text", + "text": "锻铁炉最多可容纳 48 个 $(thing)输入项$(),每层烟囱最多放16件物品。可通过堆叠额外的石头来加高至多两层烟囱,每层额外的烟囱可以多容纳16件物品。$(br2)要向锻铁炉中加入物品,只需将物品从烟囱顶部投入烟囱中即可。如果烟囱中出现灰色物质就说明成功了。" + }, + { + "type": "patchouli:image", + "images": [ + "tfc:textures/gui/book/tutorial/bloomery_hole.png" + ], + "text": "将物品添加到锻铁炉中。", + "border": true + }, + { + "type": "patchouli:text", + "text": "锻铁炉会将每$(thing)1份木炭$()和$(thing)144mB铸铁$()转化成一块$(thing)方坯$()。在投入所需的$(thing)木炭$()和$(thing)矿石$()后,点燃锻铁炉方块并等上 15 小时。锻铁炉熄灭后会留下许多方坯方块。用镐反复挖掘$(thing)方坯$()便能得到$(thing)生铁方坯$()。" + }, + { + "type": "patchouli:multiblock", + "multiblock": { + "pattern": [ + [ + "X" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:bloom[layers=8]" + } + }, + "name": "方坯", + "text": "一大块$(thing)方坯$()。", + "enable_visualize": false + }, + { + "type": "tfc:anvil_recipe", + "recipe": "tfc:anvil/refined_iron_bloom", + "text": "$(thing)生铁方坯$()还必须在$(l:mechanics/anvils)砧$()上打造成$(thing)精铁方坯$()。" + }, + { + "type": "tfc:anvil_recipe", + "recipe": "tfc:anvil/wrought_iron_from_bloom", + "text": "在$(l:mechanics/anvils)砧$()上进一步打造$(thing)精铁方坯$()就能获得$(thing)锻铁锭$()了。" + }, + { + "type": "patchouli:text", + "text": "$(li)如果投入锻铁炉的物品超出了它的所能处理的数量,它就会从锻铁炉门口吐出来。$()$(li)如果要取回投入锻铁炉中的物品,不要试图挖掘塔中的熔融物,直接把锻铁炉方块挖掉即可。$()$(li)方坯只会熔化成铸铁,而不是锻铁。方坯必须经过锤炼才能变成锻铁!$()", + "title": "铁匠的笔记" + } + ], + "read_by_default": true, + "extra_recipe_mappings": { + "tfc:bloom": 6, + "tfc:raw_iron_bloom": 7, + "tfc:refined_iron_bloom": 8 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/crops.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/crops.json new file mode 100644 index 000000000..3d67d0e77 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/crops.json @@ -0,0 +1,3826 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "name": "农作物", + "category": "tfc:mechanics", + "icon": "tfc:textures/item/food/wheat.png", + "pages": [ + { + "type": "patchouli:text", + "text": "农作物是食物和其他一些材料的来源。虽然每种作物都略有不同,但其实都大同小异。要种植农作物,你需要先找一些$(thing)种子$(),破坏$(l:the_world/wild_crops)野生作物$()可以就得到一点。$(br2)有了种子,你还需要一把$(thing)锄$()。种子也可以作为$(l:mechanics/fishing)鱼饵$()。" + }, + { + "type": "patchouli:text", + "text": "除了从野生作物获取种子,栽培作物也会产出种子。当一株完全成熟的作物不论是因为天气原因,或是过了收获时节而枯萎时就会转变为种子,为下一季种植更多作物提供了保障。" + }, + { + "type": "tfc:rock_knapping_recipe", + "recipes": [ + "tfg:rock_knapping/stone_hoe_head_1" + ], + "text": "要开始,首先通过$(thing)打制石器$()做一把$(thing)石锄$()" + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/stone/hoe_sedimentary", + "text": "将锄头与木棍合成一把锄。$(br2)锄的功能与原版相同,$(item)$(k:key.use)$()点击泥土方块即可将其转化为$(thing)耕地$()。它还可以用于将$(thing)缠根泥土$()转化为$(thing)土$()。" + }, + { + "type": "patchouli:text", + "text": "所有作物都需要种植在耕地上才能生长。有些作物还有额外的要求,比如只能种在水里或者需要插一根木棍才能生长。$(br2)作物不需要$(thing)营养物质$()就能生长,但营养物质能加速其成熟。营养物质分为三种:$(b)氮$()、$(6)磷$()和$(d)钾$()。每种作物都有一种偏爱的养分。", + "title": "种植作物" + }, + { + "type": "patchouli:text", + "text": "消耗偏爱的营养物质可以加速作物的生长,并提高收获时的产量。作物消耗耕地中的某种营养物质的同时,会小幅产出其他两种营养物质。$(br2)接下来的几页会列出群峦传说中所有的作物。" + }, + { + "type": "patchouli:text", + "anchor": "barley", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():-8 - 26 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():18 - 75 %$(br)$(bold)营养物质$():氮$(br2)大麦是一种一格高的农作物。种植大麦会产出$(thing)大麦$()和$(thing)大麦种子$()。", + "title": "大麦" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/barley[age=0]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/barley[age=1]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/barley[age=2]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/barley[age=3]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/barley[age=4]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/barley[age=5]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/barley[age=6]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/barley[age=7]", + "Y": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "oat", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():3 - 40 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():35 - 100 %$(br)$(bold)营养物质$():磷$(br2)燕麦是一种一格高的农作物。种植燕麦会产出$(thing)燕麦$()和$(thing)燕麦种子$()。", + "title": "燕麦" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/oat[age=0]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/oat[age=1]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/oat[age=2]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/oat[age=3]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/oat[age=4]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/oat[age=5]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/oat[age=6]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/oat[age=7]", + "Y": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "rye", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():-11 - 30 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():25 - 85 %$(br)$(bold)营养物质$():磷$(br2)黑麦是一种一格高的农作物。种植黑麦会产出$(thing)黑麦$()和$(thing)黑麦种子$()。", + "title": "黑麦" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/rye[age=0]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/rye[age=1]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/rye[age=2]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/rye[age=3]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/rye[age=4]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/rye[age=5]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/rye[age=6]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/rye[age=7]", + "Y": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "maize", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():13 - 40 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():75 - 100 %$(br)$(bold)营养物质$():磷$(br2)玉米是一种两格高的农作物。种植玉米会产出$(thing)玉米$()和$(thing)玉米种子$()。", + "title": "玉米" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfc:crop/maize[age=0,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfc:crop/maize[age=1,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfc:crop/maize[age=2,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/maize[age=3,part=top]", + "Y": "tfc:crop/maize[age=3,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/maize[age=4,part=top]", + "Y": "tfc:crop/maize[age=4,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/maize[age=5,part=top]", + "Y": "tfc:crop/maize[age=5,part=bottom]", + "Z": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "wheat", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():-4 - 35 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():25 - 100 %$(br)$(bold)营养物质$():磷$(br2)小麦是一种一格高的农作物。种植小麦会产出$(thing)小麦$()和$(thing)小麦种子$()。", + "title": "小麦" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/wheat[age=0]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/wheat[age=1]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/wheat[age=2]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/wheat[age=3]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/wheat[age=4]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/wheat[age=5]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/wheat[age=6]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/wheat[age=7]", + "Y": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "rice", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():15 - 30 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():25 - 100 %$(br)$(bold)营养物质$():磷$(br2)水稻是一种一格高的农作物。水稻必须种植在一格淡水深的耕地上。种植水稻会产出$(thing)水稻$()和$(thing)水稻种子$()。", + "title": "水稻" + }, + { + "type": "tfc:multimultiblock", + "text": "种植水稻种子的方块必须$(thing)含水$()。", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/rice[age=0,fluid=water]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/rice[age=1,fluid=water]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/rice[age=2,fluid=water]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/rice[age=3,fluid=water]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/rice[age=4,fluid=water]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/rice[age=5,fluid=water]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/rice[age=6,fluid=water]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/rice[age=7,fluid=water]", + "Y": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "beet", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():-5 - 20 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():18 - 85 %$(br)$(bold)营养物质$():钾$(br2)甜菜是一种一格高的农作物。种植甜菜会产出$(thing)甜菜$()和$(thing)甜菜种子$()。", + "title": "甜菜" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/beet[age=0]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/beet[age=1]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/beet[age=2]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/beet[age=3]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/beet[age=4]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/beet[age=5]", + "Y": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "cabbage", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():-10 - 27 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():15 - 65 %$(br)$(bold)营养物质$():氮$(br2)卷心菜是一种一格高的农作物。种植卷心菜会产出$(thing)卷心菜$()和$(thing)卷心菜种子$()。", + "title": "卷心菜" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/cabbage[age=0]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/cabbage[age=1]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/cabbage[age=2]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/cabbage[age=3]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/cabbage[age=4]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/cabbage[age=5]", + "Y": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "carrot", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():3 - 30 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():25 - 100 %$(br)$(bold)营养物质$():钾$(br2)胡萝卜是一种一格高的农作物。种植胡萝卜会产出$(thing)胡萝卜$()和$(thing)胡萝卜种子$()。", + "title": "胡萝卜" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/carrot[age=0]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/carrot[age=1]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/carrot[age=2]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/carrot[age=3]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/carrot[age=4]", + "Y": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "garlic", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():-20 - 18 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():15 - 75 %$(br)$(bold)营养物质$():氮$(br2)大蒜是一种一格高的农作物。种植大蒜会产出$(thing)大蒜$()和$(thing)大蒜种子$()。", + "title": "大蒜" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/garlic[age=0]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/garlic[age=1]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/garlic[age=2]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/garlic[age=3]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/garlic[age=4]", + "Y": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "green_bean", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():2 - 35 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():38 - 100 %$(br)$(bold)营养物质$():氮$(br2)青豆是一种攀爬作物。如果耕地上插有木棍,青豆能长到两格高。种植青豆会产出$(thing)青豆$()和$(thing)青豆种子$()。", + "title": "青豆" + }, + { + "type": "tfc:multimultiblock", + "text": "需要插木棍才能使作物充分生长。", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/green_bean[age=0,part=top,stick=true]", + "Y": "tfc:crop/green_bean[age=0,part=bottom,stick=true]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/green_bean[age=1,part=top,stick=true]", + "Y": "tfc:crop/green_bean[age=1,part=bottom,stick=true]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/green_bean[age=2,part=top,stick=true]", + "Y": "tfc:crop/green_bean[age=2,part=bottom,stick=true]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/green_bean[age=3,part=top,stick=true]", + "Y": "tfc:crop/green_bean[age=3,part=bottom,stick=true]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/green_bean[age=4,part=top,stick=true]", + "Y": "tfc:crop/green_bean[age=4,part=bottom,stick=true]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/green_bean[age=5,part=top,stick=true]", + "Y": "tfc:crop/green_bean[age=5,part=bottom,stick=true]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/green_bean[age=6,part=top,stick=true]", + "Y": "tfc:crop/green_bean[age=6,part=bottom,stick=true]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/green_bean[age=7,part=top,stick=true]", + "Y": "tfc:crop/green_bean[age=7,part=bottom,stick=true]", + "Z": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "potato", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():-1 - 37 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():50 - 100 %$(br)$(bold)营养物质$():钾$(br2)马铃薯是一种一格高的农作物。种植马铃薯会产出$(thing)马铃薯$()和$(thing)马铃薯种子$()。", + "title": "马铃薯" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/potato[age=0]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/potato[age=1]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/potato[age=2]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/potato[age=3]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/potato[age=4]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/potato[age=5]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/potato[age=6]", + "Y": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "pumpkin", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():0 - 30 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():30 - 80 %$(br)$(bold)营养物质$():磷$(br2)南瓜是一种爬行作物。种植在耕地上时,南瓜梗会在成熟后在相邻位置放置最多两颗$(thing)南瓜$()。南瓜梗在入冬前可结果多次。南瓜可以制作成$(l:mechanics/lighting#jack_o_lanterns)南瓜灯$()。", + "title": "南瓜" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + " ", + " CP", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfc:farmland/loam", + "0": "tfc:farmland/loam", + "C": "tfc:crop/pumpkin[age=0]", + "P": "minecraft:air" + } + }, + { + "pattern": [ + [ + " ", + " CP", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfc:farmland/loam", + "0": "tfc:farmland/loam", + "C": "tfc:crop/pumpkin[age=1]", + "P": "minecraft:air" + } + }, + { + "pattern": [ + [ + " ", + " CP", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfc:farmland/loam", + "0": "tfc:farmland/loam", + "C": "tfc:crop/pumpkin[age=2]", + "P": "minecraft:air" + } + }, + { + "pattern": [ + [ + " ", + " CP", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfc:farmland/loam", + "0": "tfc:farmland/loam", + "C": "tfc:crop/pumpkin[age=3]", + "P": "minecraft:air" + } + }, + { + "pattern": [ + [ + " ", + " CP", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfc:farmland/loam", + "0": "tfc:farmland/loam", + "C": "tfc:crop/pumpkin[age=4]", + "P": "minecraft:air" + } + }, + { + "pattern": [ + [ + " ", + " CP", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfc:farmland/loam", + "0": "tfc:farmland/loam", + "C": "tfc:crop/pumpkin[age=5]", + "P": "minecraft:air" + } + }, + { + "pattern": [ + [ + " ", + " CP", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfc:farmland/loam", + "0": "tfc:farmland/loam", + "C": "tfc:crop/pumpkin[age=6]", + "P": "minecraft:air" + } + }, + { + "pattern": [ + [ + " ", + " CP", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfc:farmland/loam", + "0": "tfc:farmland/loam", + "C": "tfc:crop/pumpkin[age=7]", + "P": "tfc:pumpkin" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "melon", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():5 - 37 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():75 - 100 %$(br)$(bold)营养物质$():磷$(br2)西瓜是一种爬行作物。种植在耕地上时,西瓜梗会在成熟后在相邻位置放置最多两颗$(thing)西瓜$()。西瓜梗在入冬前可结果多次。", + "title": "西瓜" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + " ", + " CP", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfc:farmland/loam", + "0": "tfc:farmland/loam", + "C": "tfc:crop/melon[age=0]", + "P": "minecraft:air" + } + }, + { + "pattern": [ + [ + " ", + " CP", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfc:farmland/loam", + "0": "tfc:farmland/loam", + "C": "tfc:crop/melon[age=1]", + "P": "minecraft:air" + } + }, + { + "pattern": [ + [ + " ", + " CP", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfc:farmland/loam", + "0": "tfc:farmland/loam", + "C": "tfc:crop/melon[age=2]", + "P": "minecraft:air" + } + }, + { + "pattern": [ + [ + " ", + " CP", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfc:farmland/loam", + "0": "tfc:farmland/loam", + "C": "tfc:crop/melon[age=3]", + "P": "minecraft:air" + } + }, + { + "pattern": [ + [ + " ", + " CP", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfc:farmland/loam", + "0": "tfc:farmland/loam", + "C": "tfc:crop/melon[age=4]", + "P": "minecraft:air" + } + }, + { + "pattern": [ + [ + " ", + " CP", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfc:farmland/loam", + "0": "tfc:farmland/loam", + "C": "tfc:crop/melon[age=5]", + "P": "minecraft:air" + } + }, + { + "pattern": [ + [ + " ", + " CP", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfc:farmland/loam", + "0": "tfc:farmland/loam", + "C": "tfc:crop/melon[age=6]", + "P": "minecraft:air" + } + }, + { + "pattern": [ + [ + " ", + " CP", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfc:farmland/loam", + "0": "tfc:farmland/loam", + "C": "tfc:crop/melon[age=7]", + "P": "tfc:melon" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "red_bell_pepper", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():16 - 30 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():25 - 60 %$(br)$(bold)营养物质$():钾$(br2)红甜椒是一种可采摘作物。在接近成熟时,可以使用$(item)$(k:key.use)$()采摘青甜椒。采摘时不破坏植株,允许植物在未来长出更多的甜椒。", + "title": "红甜椒" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/red_bell_pepper[age=0]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/red_bell_pepper[age=1]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/red_bell_pepper[age=2]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/red_bell_pepper[age=3]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/red_bell_pepper[age=4]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/red_bell_pepper[age=5]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/red_bell_pepper[age=6]", + "Y": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "yellow_bell_pepper", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():16 - 30 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():25 - 60 %$(br)$(bold)营养物质$():钾$(br2)黄甜椒是一种可采摘作物。在接近成熟时,可以使用$(item)$(k:key.use)$()采摘青甜椒。采摘时不破坏植株,允许植物在未来长出更多的甜椒。", + "title": "黄甜椒" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/yellow_bell_pepper[age=0]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/yellow_bell_pepper[age=1]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/yellow_bell_pepper[age=2]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/yellow_bell_pepper[age=3]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/yellow_bell_pepper[age=4]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/yellow_bell_pepper[age=5]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/yellow_bell_pepper[age=6]", + "Y": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "onion", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():0 - 30 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():25 - 90 %$(br)$(bold)营养物质$():氮$(br2)洋葱是一种一格高的农作物。种植洋葱会产出$(thing)洋葱$()和$(thing)洋葱种子$()。", + "title": "洋葱" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/onion[age=0]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/onion[age=1]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/onion[age=2]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/onion[age=3]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/onion[age=4]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/onion[age=5]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/onion[age=6]", + "Y": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "soybean", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():8 - 30 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():40 - 100 %$(br)$(bold)营养物质$():氮$(br2)大豆是一种一格高的农作物。种植大豆会产出$(thing)大豆$()和$(thing)大豆种子$()。", + "title": "大豆" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/soybean[age=0]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/soybean[age=1]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/soybean[age=2]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/soybean[age=3]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/soybean[age=4]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/soybean[age=5]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/soybean[age=6]", + "Y": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "squash", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():5 - 33 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():23 - 95 %$(br)$(bold)营养物质$():钾$(br2)西葫芦是一种一格高的农作物。种植西葫芦会产出$(thing)西葫芦$()和$(thing)西葫芦种子$()。", + "title": "西葫芦" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/squash[age=0]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/squash[age=1]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/squash[age=2]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/squash[age=3]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/squash[age=4]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/squash[age=5]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/squash[age=6]", + "Y": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/squash[age=7]", + "Y": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "sugarcane", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():12 - 38 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():40 - 100 %$(br)$(bold)营养物质$():钾$(br2)甘蔗是一种两格高的农作物。种植甘蔗会产出$(thing)甘蔗$()和$(thing)甘蔗种子$()。甘蔗可以制成$(thing)糖$()。", + "title": "甘蔗" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfc:crop/sugarcane[age=0,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfc:crop/sugarcane[age=1,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfc:crop/sugarcane[age=2,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfc:crop/sugarcane[age=3,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/sugarcane[age=4,part=top]", + "Y": "tfc:crop/sugarcane[age=4,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/sugarcane[age=5,part=top]", + "Y": "tfc:crop/sugarcane[age=5,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/sugarcane[age=6,part=top]", + "Y": "tfc:crop/sugarcane[age=6,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/sugarcane[age=7,part=top]", + "Y": "tfc:crop/sugarcane[age=7,part=bottom]", + "Z": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "tomatoes", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():0 - 36 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():30 - 95 %$(br)$(bold)营养物质$():钾$(br2)西红柿是一种攀爬作物。如果耕地上插有木棍,西红柿能长到两格高。种植西红柿会产出$(thing)西红柿$()和$(thing)西红柿种子$()。", + "title": "西红柿" + }, + { + "type": "tfc:multimultiblock", + "text": "需要插木棍才能使作物充分生长。", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/tomato[age=0,part=top,stick=true]", + "Y": "tfc:crop/tomato[age=0,part=bottom,stick=true]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/tomato[age=1,part=top,stick=true]", + "Y": "tfc:crop/tomato[age=1,part=bottom,stick=true]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/tomato[age=2,part=top,stick=true]", + "Y": "tfc:crop/tomato[age=2,part=bottom,stick=true]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/tomato[age=3,part=top,stick=true]", + "Y": "tfc:crop/tomato[age=3,part=bottom,stick=true]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/tomato[age=4,part=top,stick=true]", + "Y": "tfc:crop/tomato[age=4,part=bottom,stick=true]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/tomato[age=5,part=top,stick=true]", + "Y": "tfc:crop/tomato[age=5,part=bottom,stick=true]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/tomato[age=6,part=top,stick=true]", + "Y": "tfc:crop/tomato[age=6,part=bottom,stick=true]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/tomato[age=7,part=top,stick=true]", + "Y": "tfc:crop/tomato[age=7,part=bottom,stick=true]", + "Z": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "jute", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():5 - 37 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():25 - 100 %$(br)$(bold)营养物质$():钾$(br2)黄麻是一种两格高的农作物。种植黄麻会产出$(thing)黄麻$()和$(thing)黄麻种子$()。", + "title": "黄麻" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfc:crop/jute[age=0,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfc:crop/jute[age=1,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfc:crop/jute[age=2,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/jute[age=3,part=top]", + "Y": "tfc:crop/jute[age=3,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/jute[age=4,part=top]", + "Y": "tfc:crop/jute[age=4,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/jute[age=5,part=top]", + "Y": "tfc:crop/jute[age=5,part=bottom]", + "Z": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "anchor": "papyrus", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():19 - 37 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():70 - 100 %$(br)$(bold)营养物质$():钾$(br2)纸莎草是一种两格高的作物。纸莎草种子可以种植在耕地上,生长到两格高,并生产$(l:mechanics/papermaking)纸莎草$()和$(thing)纸莎草种子$()作为产物。", + "title": "纸莎草" + }, + { + "type": "tfc:multimultiblock", + "text": "", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfc:crop/papyrus[age=0,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfc:crop/papyrus[age=1,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfc:crop/papyrus[age=2,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/papyrus[age=3,part=top]", + "Y": "tfc:crop/papyrus[age=3,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/papyrus[age=4,part=top]", + "Y": "tfc:crop/papyrus[age=4,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:crop/papyrus[age=5,part=top]", + "Y": "tfc:crop/papyrus[age=5,part=bottom]", + "Z": "tfc:farmland/loam" + } + } + ] + }, + { + "type": "patchouli:text", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():5 - 40 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():20 - 80 %$(br)$(bold)营养物质$():氮$(br2)向日葵是一种两格高的作物。向日葵种子可以种植在耕地上,生长到两格高,并生产可加工为$(thing)种子油$()的$(item)向日葵花盘$()。种子油既可用作灯油,也可在后期用于制作$(thing)生物柴油$()。$(br)在$(l:firmalife/beekeeping)养蜂$()系统中,向日葵同样被视为有效花源。", + "title": "向日葵" + }, + { + "type": "tfc:multimultiblock", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfg:sunflower[age=0,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfg:sunflower[age=1,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfg:sunflower[age=2,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfg:sunflower[age=3,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfg:sunflower[age=4,part=top]", + "Y": "tfg:sunflower[age=4,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfg:sunflower[age=5,part=top]", + "Y": "tfg:sunflower[age=5,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfg:sunflower[age=6,part=top]", + "Y": "tfg:sunflower[age=6,part=bottom]", + "Z": "tfc:farmland/loam" + } + } + ], + "text": "$(thing)野生向日葵$()生长于5°C至40°C的温度区间及100至450毫米的降雨环境。其种子亦可烘烤食用!" + }, + { + "type": "patchouli:text", + "text": "$(bold)$(l:the_world/climate#temperature)温度$(): -5 - 25 °C$(br)$(bold)$(l:mechanics/hydration)湿度$(): 10 - 60 %$(br)$(bold)营养物质$():磷$(br2)油菜是一种两格高的作物。油菜种子可种植在耕地上,生长到两格高,并生产可加工为$(thing)种子油$()的$(item)油菜籽荚$()。种子油既可用作灯油,也可在后期用于制作$(thing)生物柴油$()。$(br)在$(l:firmalife/beekeeping)养蜂$()系统中,油菜同样被视为有效花源。", + "title": "油菜" + }, + { + "type": "tfc:multimultiblock", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfg:rapeseed[age=0,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfg:rapeseed[age=1,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfg:rapeseed[age=2,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfg:rapeseed[age=3,part=top]", + "Y": "tfg:rapeseed[age=3,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfg:rapeseed[age=4,part=top]", + "Y": "tfg:rapeseed[age=4,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfg:rapeseed[age=5,part=top]", + "Y": "tfg:rapeseed[age=5,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfg:rapeseed[age=6,part=top]", + "Y": "tfg:rapeseed[age=6,part=bottom]", + "Z": "tfc:farmland/loam" + } + } + ], + "text": "$(thing)野生油菜$()(亦称$(thing)芸苔$())生长于-7°C至25°C的温度区间及50至350毫米的降雨环境。", + "enable_visualize": false + }, + { + "type": "patchouli:text", + "text": "$(bold)$(l:the_world/climate#temperature)温度$():5 - 37 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():25 - 100 %$(br)$(bold)营养物质$():氮$(br2)亚麻是一种两格高的农作物。亚麻种子可以种植在耕地上,生长到两格高,并生产用于加工为$(thing)亚麻布$()的$(item)亚麻茎杆$()。$(br)在$(l:firmalife/beekeeping)养蜂$()系统中,亚麻同样被视为有效花源。", + "title": "亚麻" + }, + { + "type": "tfc:multimultiblock", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfg:flax[age=0,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfg:flax[age=1,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfg:flax[age=2,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "minecraft:air", + "Y": "tfg:flax[age=3,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfg:flax[age=4,part=top]", + "Y": "tfg:flax[age=4,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfg:flax[age=5,part=top]", + "Y": "tfg:flax[age=5,part=bottom]", + "Z": "tfc:farmland/loam" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfg:flax[age=6,part=top]", + "Y": "tfg:flax[age=6,part=bottom]", + "Z": "tfc:farmland/loam" + } + } + ], + "text": "$(thing)野生亚麻$()生长于-5°C至23°C的温度区间及175至475毫米的降雨环境。" + } + ], + "read_by_default": true, + "extra_recipe_mappings": { + "tfc:seeds/barley": 6, + "tfc:food/barley": 6, + "tfc:seeds/oat": 8, + "tfc:food/oat": 8, + "tfc:seeds/rye": 10, + "tfc:food/rye": 10, + "tfc:seeds/maize": 12, + "tfc:food/maize": 12, + "tfc:seeds/wheat": 14, + "tfc:food/wheat": 14, + "tfc:seeds/rice": 16, + "tfc:food/rice": 16, + "tfc:seeds/beet": 18, + "tfc:food/beet": 18, + "tfc:seeds/cabbage": 20, + "tfc:food/cabbage": 20, + "tfc:seeds/carrot": 22, + "tfc:food/carrot": 22, + "tfc:seeds/garlic": 24, + "tfc:food/garlic": 24, + "tfc:seeds/green_bean": 26, + "tfc:food/green_bean": 26, + "tfc:seeds/potato": 28, + "tfc:food/potato": 28, + "tfc:seeds/pumpkin": 30, + "tfc:seeds/melon": 32, + "tfc:seeds/red_bell_pepper": 34, + "tfc:seeds/yellow_bell_pepper": 36, + "tfc:seeds/onion": 38, + "tfc:food/onion": 38, + "tfc:seeds/soybean": 40, + "tfc:food/soybean": 40, + "tfc:seeds/squash": 42, + "tfc:food/squash": 42, + "tfc:seeds/sugarcane": 44, + "tfc:food/sugarcane": 44, + "tfc:seeds/tomato": 46, + "tfc:food/tomato": 46, + "tfc:seeds/jute": 48, + "tfc:jute": 48, + "tfc:seeds/papyrus": 50, + "tfc:papyrus": 50, + "tfg:sunflower_seeds": 52, + "tfg:sunflower_product": 52, + "tfg:rapeseed_seeds": 54, + "tfg:rapeseed_product": 54, + "tfg:flax_seeds": 56, + "tfg:flax_product": 56 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/fire_clay.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/fire_clay.json new file mode 100644 index 000000000..4fb72d970 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/fire_clay.json @@ -0,0 +1,40 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "name": "耐火黏土", + "category": "tfc:mechanics", + "icon": "tfc:fire_clay", + "pages": [ + { + "type": "patchouli:text", + "text": "耐火黏土能做成的东西不多,但每个都是科技进步上不可或缺的要素!耐火黏土比普通黏土能承受更高的高温,因此某些高级设备只能用耐火黏土建造。" + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/fire_clay", + "text": "耐火黏土是通过$(l:the_world/ores_and_minerals#graphite)石墨粉$()和$(l:the_world/ores_and_minerals#kaolinite)高岭石粉$()合成得到的,前者需用 $(l:mechanics/quern)手推磨$() 研磨。" + }, + { + "type": "tfc:heat_recipe", + "recipe": "tfc:heating/kaolin_clay", + "text": "高岭石粉是通过加热$(l:the_world/ores_and_minerals#kaolinite)高岭土$()得到的。然而现在这种工艺并不成熟,导致其产率只有20%左右。" + }, + { + "type": "tfc:knapping_recipe", + "anchor": "crucible", + "recipe": "tfc:fire_clay_knapping/crucible", + "text": "用耐火黏土塑形成未烧制的$(l:mechanics/crucible)坩埚$()。" + }, + { + "type": "tfc:knapping_recipe", + "anchor": "fire_bricks", + "recipe": "tfc:fire_clay_knapping/brick", + "text": "作为理想的隔热材料,耐火砖是建造$(l:mechanics/blast_furnace)高炉$()的必需品。" + }, + { + "type": "tfc:knapping_recipe", + "recipe": "tfc:fire_clay_knapping/fire_ingot_mold", + "text": "$(thing)耐火铸锭模具$()是一种更强版本的$(l:getting_started/pottery#mold)铸锭模具$()。相比普通的铸锭模具,耐火铸锭模具仅有1%的概率会在使用时破碎,普通模具则是10%。" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/fishing_nets.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/fishing_nets.json new file mode 100644 index 000000000..0fa2d2fb7 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/fishing_nets.json @@ -0,0 +1,22 @@ +{ + "name": "渔网", + "icon": "tfg:fishing_net/brass", + "category": "tfc:mechanics", + "read_by_default": true, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "渔网", + "item": { + "tag": "forge:tools/fishing_nets" + }, + "text": "厌倦了用鱼叉捕鱼?或者在 $(l:mechanics/fishing)钓鱼$() 时总是丢了鱼?制作一个 $(thing)渔网$() 来轻松捞起你的晚餐。$(br)使用渔网时,右键点击鱼即可将其收入背包。不同等级的渔网效果相同,但耐久不同。" + }, + { + "type": "patchouli:crafting", + "title": "木制渔网", + "recipe": "tfc:kjs/damage/shaped/fishing_net/wood", + "text": "一款基础的 $(item)木制渔网$()。" + } + ] +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/glassworking.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/glassworking.json new file mode 100644 index 000000000..860e06d6d --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/glassworking.json @@ -0,0 +1,82 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "name": "玻璃工艺", + "category": "tfc:mechanics", + "icon": "tfc:silica_glass_bottle", + "pages": [ + { + "type": "patchouli:text", + "text": "玻璃工艺是把沙子变为玻璃的艺术。首先,你必须决定制作哪一种$(thing)玻璃原料$():$(br)$(br) 1、$(thing)二氧化硅玻璃$():由白沙制成。$(br) 2、$(thing)赤铁矿玻璃$():由黄沙、红沙或粉红沙制成。$(br) 3、$(thing)橄榄岩玻璃$():由绿沙或棕沙制成。$(br) 4、$(thing)火山岩玻璃$():由黑沙制成。" + }, + { + "type": "patchouli:crafting", + "title": "二氧化硅玻璃原料", + "recipe": "tfc:crafting/silica_glass_batch", + "text": "玻璃原料除了需要对应颜色的沙子以外,还需要准备$(l:mechanics/glassworking#lime)石灰粉$()和任意一种$(l:mechanics/glassworking#potash)钾盐添加物$()。" + }, + { + "type": "patchouli:smelting", + "anchor": "lime", + "recipe": "tfg:smelting/lime", + "text": "$(thing)石灰粉$()是制作玻璃原料的必要原料之一,可以通过$(l:mechanics/heating)加热$()$(l:mechanics/flux)助焊剂$()获得。" + }, + { + "type": "patchouli:smelting", + "anchor": "potash", + "recipe": "tfg:smelting/dried_seaweed_to_soda", + "recipe2": "tfg:smelting/dried_kelp_to_soda", + "text": "制作玻璃原料还需要加入一些$(thing)钾盐$(),可以选用$(thing)海草灰$()(通过加热$(thing)干海草$()或$(thing)海带$()获得)或$(l:the_world/ores_and_minerals#saltpeter)硝石$()。" + }, + { + "type": "patchouli:text", + "text": "进行玻璃加工前,还需要准备多种工具:$(br)$(li)一支用来$(thing)吹气$()和$(thing)拉伸$()的$(l:mechanics/glassworking#blowpipe)吹风管$();$(li)一支用来$(thing)平整$()的$(l:mechanics/glassworking#paddle)玻璃压板$();$(li)一对用来$(thing)挤压$()的$(l:mechanics/glassworking#jacks)夹钳$();$(li)和一把用来$(thing)锯割$()的$(l:mechanics/glassworking#saw)宝石锯$()。", + "title": "加工工具" + }, + { + "type": "tfc:knapping_recipe", + "anchor": "blowpipe", + "recipe": "tfc:clay_knapping/blowpipe", + "text": "最重要的工具是$(thing)吹风管$()。通过黏土$(thing)捏制$()制作出模具后在烧制成$(thing)陶瓷吹风管$()即可。" + }, + { + "type": "tfc:anvil_recipe", + "recipe": "tfc:anvil/blowpipe", + "text": "陶瓷吹风管易碎,使用时有概率破损。更可靠的选择是用$(thing)黄铜杆$()在砧上$(l:mechanics/anvils#working)锻造$()一支吹风管。" + }, + { + "type": "patchouli:crafting", + "anchor": "paddle", + "recipe": "tfc:crafting/paddle", + "text": "$(thing)玻璃压板$()可以用来将玻璃$(thing)压平$(),可用木材制作。" + }, + { + "type": "tfc:welding_recipe", + "anchor": "jacks", + "recipe": "tfc:welding/jacks", + "text": "$(thing)玻璃夹钳$()可进行$(thing)挤压$(),需要将两根黄铜杆焊接在一起。" + }, + { + "type": "patchouli:crafting", + "anchor": "saw", + "recipe": "tfc:crafting/gem_saw", + "text": "$(thing)宝石锯$()是用来执行$(thing)锯割$()操作的。宝石锯还可以用来挖掘$(thing)玻璃块$()和$(thing)玻璃板$()而不使其损坏。" + }, + { + "type": "patchouli:text", + "text": "首先,将装有玻璃原料的吹风管加热到至少$(4)$(bold)淡红$()。随后将吹管置于$(thing)副手$(),持续按住$(item)$(k:key.use)$()以执行每个步骤$()。$(br)使用$(item)$(k:key.swapOffhand)$()可将炽热吹管快速移至副手。$(br2)$(bold)吹气$()$(br)手持$(thing)吹管$()时保持正对前方视角使用。$(br2)$(bold)拉伸$()$(br)手持$(thing)吹管$()时保持朝向正下方视角使用。", + "title": "如何制作玻璃" + }, + { + "type": "patchouli:text", + "text": "$(bold)平整$()$(br)副手持有$(l:mechanics/glassworking#paddle)玻璃压板$()时使用$(thing)吹风管$()。$(br2)$(bold)挤压$()$(br)副手持有$(l:mechanics/glassworking#jacks)玻璃夹钳$()时使用$(thing)吹风管$()。$(br2)$(bold)锯割$()$(br)副手持有$(l:mechanics/glassworking#saw)宝石锯$()时使用$(thing)吹风管$()。$(br2)$(bold)翻转$()$(br)副手持有$(l:mechanics/weaving#wool_cloth)羊毛布$()时使用$(thing)吹风管$()。" + } + ], + "read_by_default": true, + "extra_recipe_mappings": { + "tfc:powder/lime": 2, + "tfc:powder/soda_ash": 3, + "tfc:paddle": 7, + "tfc:jacks": 8, + "tfc:gem_saw": 9 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/glassworking_applications.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/glassworking_applications.json new file mode 100644 index 000000000..f3c2af60f --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/glassworking_applications.json @@ -0,0 +1,434 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "name": "玻璃制品", + "category": "tfc:mechanics", + "icon": "minecraft:glass", + "pages": [ + { + "type": "patchouli:text", + "text": "最基础的玻璃制品是$(thing)玻璃板$()和$(thing)玻璃块$()。将$(thing)玻璃原料$()装在$(l:mechanics/glassworking#blowpipe)吹风管$()上,就可以进行$(thing)浇筑$()了。$(br)$(li)$(bold)台式浇筑$()法可制作$(thing)玻璃板$()$(li)$(bold)盆式浇筑$()法可制作$(thing)玻璃块$()" + }, + { + "type": "patchouli:text", + "text": "在进行浇筑之前,可以先对玻璃进行$(thing)染色$()。玻璃的颜色是由所用玻璃原料的类型,以及加工时加入的添加剂粉末决定的。$(br2)每种类型的$(thing)玻璃原料$()都拥有自己的自然颜色,且只能染成某些特定的颜色。$(thing)二氧化硅$()和$(thing)赤铁矿$()玻璃可以被染成许多颜色,而$(thing)橄榄岩$()和$(thing)火山岩$()玻璃则只能被染成较少的几种颜色。" + }, + { + "type": "patchouli:text", + "text": "$(thing)玻璃板$()是用$(thing)台式浇筑$()法制成的。将最多16块$(thing)镀黄铜块$()放置在统一平面以形成一块浇筑平台后:$(br) 1、将$(l:mechanics/glassworking)玻璃原料$()装入$(thing)吹风管$();$(br) 2、将吹风管加热至至少$(4)$(bold)淡红$();$(br) 3、$()对准浇筑平台$(item)$(k:key.use)$()点击$(thing)吹风管$();$(br) 4、手持$(l:mechanics/glassworking#paddle)玻璃压板$()$(item)$(k:key.use)$()点击平台上的玻璃原料以将玻璃平铺在整个平台表面。", + "title": "台式浇筑" + }, + { + "type": "patchouli:multiblock", + "multiblock": { + "mapping": { + "C": "#tfc:glass_pouring_table", + "0": "#tfc:glass_pouring_table" + }, + "pattern": [ + [ + "CCCC", + "CCC0", + "CCCC", + "CCCC" + ] + ] + }, + "text": "待玻璃冷却之后,用$(l:mechanics/glassworking#saw)宝石锯$()就能将其从平台上收集下来了。", + "border": true + }, + { + "type": "patchouli:text", + "text": "$(thing)玻璃块$()则需要用$(thing)盆式浇筑$()法制作。用5块$(thing)镀黄铜块$()将一块空气围起来后:$(br) 1、将$(l:mechanics/glassworking)玻璃原料$()装入$(thing)吹风管$();$(br) 2、将吹风管加热至至少$(4)$(bold)淡红$();$(br) 3、对准盆内部$(item)$(k:key.use)$()点击$(thing)吹风管$()。", + "title": "盆式浇筑" + }, + { + "type": "patchouli:multiblock", + "multiblock": { + "mapping": { + "C": "#tfc:glass_basin_blocks", + "0": "#tfc:glass_basin_blocks" + }, + "pattern": [ + [ + " C ", + "C C", + " C " + ], + [ + " ", + " 0 ", + " " + ] + ] + }, + "text": "待玻璃冷却之后,用$(l:mechanics/glassworking#saw)宝石锯$()就能将其从平台上收集下来了。", + "border": true + }, + { + "type": "patchouli:crafting", + "title": "玻璃加工方块", + "recipe": "tfc:crafting/white_kaolin_clay", + "text": "$(thing)镀黄铜块$() 可通过手持 $(thing)黄铜板$() 并 $(item)$(k:key.use)$() 在任意 $(thing)石砖$() 上合成。" + }, + { + "type": "patchouli:text", + "anchor": "coloring", + "text": "根据所选$(l:mechanics/glassworking)玻璃原料$()性质,玻璃会拥有一种自然的颜色。要将玻璃染成其他颜色,需要准备一只$(l:mechanics/bowls)碗$()。$(br2)将$(l:mechanics/bowls)碗$()放在地上,加入所需的$(thing)粉末$(),随后用装在$(thing)吹风管$()上的玻璃原料蘸取一些粉末。", + "title": "玻璃染色" + }, + { + "type": "patchouli:text", + "text": "$(li)$(bold)$(7)白色$():二氧化硅/赤铁矿玻璃+$(thing)海草粉$()$(li)$(bold)$(0)黑色$():任何玻璃+$(thing)石墨粉$()$(li)$(bold)$(8)灰色$():任何玻璃+$(thing)石墨$()+$(thing)海草粉$()$(li)$(bold)$(7)淡灰色$():任何玻璃+$(thing)石墨粉$()+2x$(thing)海草粉$()$(li)$(bold)$(5)紫色$():任何玻璃+$(thing)铁粉$()+$(thing)铜粉$()$(li)$(bold)$(#964b00)棕色$():任何玻璃+$(thing)镍粉$()$(li)$(bold)$(3)青色$():非火山岩玻璃+$(thing)铜粉$()+$(thing)蓝宝石粉$()$(li)$(bold)$(2)绿色$():二氧化硅/赤铁矿玻璃+$(thing)铁粉$()", + "title": "染色配方" + }, + { + "type": "patchouli:text", + "text": "$(li)$(bold)$(a)黄绿色$():二氧化硅/赤铁矿玻璃+$(thing)铁粉$()+$(thing)海草粉$()$(li)$(bold)$(b)淡蓝色$():二氧化硅玻璃+$(thing)青金石粉$()$(li)$(bold)$(1)蓝色$():二氧化硅玻璃+$(thing)铜粉$()$(li)$(bold)$(4)红色$():二氧化硅/赤铁矿玻璃+$(thing)锡粉$()$(li)$(bold)$(6)黄色$():二氧化硅/赤铁矿玻璃+$(thing)银粉$()$(li)$(bold)$(#ef8e38)橙色$():二氧化硅玻璃+$(thing)黄铁矿粉$()$(li)$(bold)$(5)品红色$():二氧化硅/赤铁矿玻璃+$(thing)红宝石粉$()$(li)$(bold)$(d)粉红色$():二氧化硅玻璃+$(thing)金粉$()$(li)$(bold)$(0)遮光$():非二氧化硅玻璃+$(thing)紫水晶粉$()" + }, + { + "type": "tfc:table_small", + "strings": [ + { + "text": "" + }, + { + "text": "C" + }, + { + "text": "T" + }, + { + "fill": "0xff42f2" + }, + { + "fill": "0x8af3ff" + }, + { + "fill": "0x526cff" + }, + { + "fill": "0xe3e3e3" + }, + { + "fill": "0xe69407" + }, + { + "fill": "0xc738c9" + }, + { + "fill": "0xffe81c" + }, + { + "fill": "0x48ff1f" + }, + { + "fill": "0xe01414" + }, + { + "fill": "0x0c9400" + }, + { + "fill": "0x188a9e" + }, + { + "fill": "0x7d4f00" + }, + { + "fill": "0x6e059c" + }, + { + "fill": "0x7d7d7d" + }, + { + "fill": "0xbdbdbd" + }, + { + "fill": "0x000000" + }, + { + "text": "二氧化硅" + }, + { + "fill": "0x3d42a8" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "text": "赤铁矿" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3d42a8" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "text": "橄榄石" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0x3d42a8" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "text": "火山岩" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0x3d42a8" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0xb33e3e" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + }, + { + "fill": "0x3eb340" + } + ], + "text": "每种原料可制成的所有玻璃颜色。C表示透明玻璃,T表示遮光玻璃。", + "title": "可制成的玻璃颜色", + "legend": [ + { + "text": "可制作", + "color": "0x3eb340" + }, + { + "text": "不可制作", + "color": "0xb33e3e" + }, + { + "text": "默认颜色", + "color": "0x3d42a8" + } + ], + "columns": 18, + "first_column_width": 35, + "column_width": 10, + "row_height": 10, + "left_buffer": 5, + "top_buffer": 15, + "draw_background": true + }, + { + "type": "patchouli:empty", + "draw_filler": false + }, + { + "type": "tfc:glassworking_recipe", + "anchor": "lamp_glass", + "recipe": "tfc:glassworking/lamp_glass", + "text": "$(thing)灯罩$()是$(l:mechanics/lamps)灯$()的必要部件。" + }, + { + "type": "tfc:glassworking_recipe", + "anchor": "jar", + "recipe": "tfc:glassworking/jar", + "text": "$(l:mechanics/jarring)玻璃罐$()只能使用二氧化硅玻璃或赤铁矿玻璃制成。" + }, + { + "type": "tfc:glassworking_recipe", + "anchor": "glass_bottle", + "recipe": "tfc:glassworking/silica_bottle", + "text": "$(thing)玻璃瓶$()的强度取决于制作玻璃瓶所用的玻璃种类。" + }, + { + "type": "tfc:glassworking_recipe", + "recipe": "tfc:glassworking/lens", + "text": "$(thing)透镜$()可用于制作$(thing)望远镜$()和$(thing)指南针$()等物品。" + } + ], + "read_by_default": true, + "extra_recipe_mappings": { + "tag:tfc:glass_batches": 1, + "tag:forge:glass": 2 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/harvest_baskets.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/harvest_baskets.json new file mode 100644 index 000000000..5e5ba2164 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/harvest_baskets.json @@ -0,0 +1,26 @@ +{ + "name": "收获篮", + "icon": "tfg:harvest_basket", + "category": "tfc:mechanics", + "read_by_default": true, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "收获篮", + "item": { + "tag": "tfg:harvester" + }, + "text": "专为身材矮小者设计——$(thing)收获篮$()正是从树木和灌木上采摘果实的理想工具。$(br)使用时右键点击果树或灌木,$(thing)半径7格$()内的所有果实都将被采摘。" + }, + { + "type": "patchouli:text", + "text": "普通收获篮具有$(thing)128$()点耐久度,而铝制收获篮使用时不会损耗耐久。收获篮也可被$(thing)机械手$()等设备使用以实现自动化采收,此过程会正常消耗耐久度。" + }, + { + "type": "patchouli:crafting", + "title": "收获篮", + "recipe": "tfg:shaped/harvest_basket_from_papyrus", + "text": "基础款的$(item)收获篮$()可使用浸泡后的纸莎草或硬木制作。" + } + ] +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/papermaking.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/papermaking.json new file mode 100644 index 000000000..144dabd32 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/papermaking.json @@ -0,0 +1,161 @@ +{ + "name": "造纸术", + "category": "tfc:mechanics", + "icon": "tfc:unrefined_paper", + "pages": [ + { + "type": "patchouli:text", + "text": "$(thing)纸$()有三种获取方式:通过加工$(l:mechanics/crops#papyrus)纸莎草$()的茎来制作莎草纸,通过加工$(l:mechanics/papermaking#parchment)兽皮$()来制作羊皮纸,或经过$(l:mechanics/papermaking#paperfromwood)特定木材的复杂工序$()制成。纸可用于制作$(thing)书$()和$(thing)地图$()等书写材料。。" + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/papyrus_strips", + "text": "先用$(thing)刀$()将纸莎草切成条。" + }, + { + "type": "tfc:sealed_barrel_recipe", + "recipe": "tfc:barrel/soaked_papyrus_strip", + "text": "然后,将纸莎草条浸入装有$(thing)淡水$()$(l:mechanics/barrels)大桶$()中。" + }, + { + "type": "tfc:loom_recipe", + "recipe": "tfc:loom/unrefined_paper", + "text": "将浸泡好的纸莎草条用织布机编织成$(thing)粗制纸$()。最后,将粗制纸在一根原木上展开,用小刀$(l:mechanics/leather_making#scraping)刮去$()其表层进行剖光,就能得到可以使用的$(thing)纸$()了。" + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/vanilla/map", + "recipe2": "tfc:crafting/vanilla/name_tag" + }, + { + "type": "patchouli:crafting", + "recipe": "minecraft:writable_book", + "recipe2": "minecraft:book" + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/wood/pine_lectern", + "recipe2": "tfc:crafting/wood/kapok_bookshelf" + }, + { + "type": "patchouli:text", + "text": "下一页会讲述如何制作羊皮纸。" + }, + { + "type": "patchouli:text", + "anchor": "parchment", + "text": "$(thing)羊皮纸$()是以$(l:mechanics/leather_making)刮制兽皮$()为主要原料,以及几种其他材料制成的纸。首先,需要先收集$(thing)浮石$()以便软化兽皮。浮石会生成在$(l:the_world/geology)火山$()四周,也可以通过在安山岩、流纹岩或英安岩地区的河流中收集矿物沉积物,并用$(l:mechanics/sluices)洗矿槽$()或$(l:mechanics/panning)淘金盘$()处理获得。", + "title": "羊皮纸" + }, + { + "type": "patchouli:multiblock", + "multiblock": { + "pattern": [ + [ + "X" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:groundcover/pumice" + } + }, + "name": "浮石", + "text": "地上的浮石", + "enable_visualize": false + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/large_treated_hide", + "text": "将浮石、刮制兽皮与一把锤合成就能得到$(thing)糊化兽皮$()。" + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/parchment", + "text": "最后,将糊化兽皮、$(l:mechanics/glassworking#lime)石灰粉$()、面粉和一只新鲜鸡蛋打在一起就能生产出可用的羊皮纸了。" + }, + { + "type": "patchouli:text", + "anchor": "paperfromwood", + "text": "$(thing)木材造纸$()是一种古老工艺,需将坚实木材加工成薄片,分解为纸浆后经压制、干燥与刮制而成。$(br2)注意较软的木材不适用于造纸。", + "title": "木材造纸" + }, + { + "type": "patchouli:text", + "text": "首先你需要找到硬木:$(br2)金合欢木$(br)黑梣木$(br)山杨木$(br)白桦木$(br)黑檀木$(br)栗木$(br)山核桃木$(br)枫木$(br)橡木$(br)蔷薇木$(br)悬铃木" + }, + { + "type": "patchouli:spotlight", + "title": "去皮硬木", + "item": { + "tag": "tfg:stripped_hardwood" + }, + "text": "第一步是去除 $(thing)硬木$() 的外皮以显露内部纤维。你可以通过放置原木后手持斧头右键点击完成去皮。" + }, + { + "type": "patchouli:crafting", + "title": "硬木条", + "recipe": "tfg:crafting/strip_hardwood", + "text": "接着,用斧头切削已去皮的木材得到 $(item)硬木条$()。这也可以使用斧具或更精密的方法完成。" + }, + { + "type": "tfc:sealed_barrel_recipe", + "title": "浸泡硬木条", + "recipe": "tfg:barrel/soak_hardwood_strip", + "text": "将硬木条放入盛有$(thing)淡水$()的$(l:mechanics/barrels)大木桶$()中浸泡,此步骤将$(thing)削弱木材结构强度$()以便$(thing)进一步分解$()。" + }, + { + "type": "tfc:quern_recipe", + "recipe": "tfg:quern/soaked_hardwood_strip", + "title": "硬木浆", + "text": "随后使用$(l:mechanics/quern)手推磨$()将浸水硬木条磨碎成$(item)硬木浆$()" + }, + { + "type": "patchouli:crafting", + "recipe": "gtceu:shaped/small_dust_assembling_hardwood", + "title": "纸浆堆叠", + "text": "手推磨只产出小堆纸浆,需要在$(thing)工作台$()上将其合并。更精密的粉碎工艺能提升纸浆的产量。" + }, + { + "type": "patchouli:spotlight", + "item": "gtceu:thermochemically_treated_hardwood_dust", + "title": "纸浆分解", + "text": "在继续加工成纸张前,必须用$(thing)碱液$()在$(l:firmalife/oven_appliances#vat)不锈钢锅$()或$(l:mechanics/pot)陶锅$()中沸煮浆料以进一步分解。" + }, + { + "type": "patchouli:empty" + }, + { + "type": "patchouli:spotlight", + "item": "tfg:soaked_unrefined_paper", + "title": "纸浆压制", + "text": "经过碱液沸煮分解后,$(item)热化学处理硬木浆$()可被压制成一张$(item)浸泡粗制纸$()" + }, + { + "type": "tfc:anvil_recipe", + "recipe": "tfg:anvil/soaked_unrefined_paper", + "text": "你可以使用$(l:mechanics/anvils)砧$()将纸浆捶打成薄片。" + }, + { + "type": "patchouli:spotlight", + "title": "桶内踩压", + "item": { + "tag": "firmalife:stomping_barrels" + }, + "text": "替代方案是在 $(l:firmalife/wine)踩踏桶$()中踩踏热化学处理硬木浆。" + }, + { + "type": "tfc:drying_recipe", + "recipe": "tfg:drying/unrefined_paper", + "text": "最后通过$(l:firmalife/drying)晾晒$()将$(item)浸泡粗制纸$()转化为$(item)粗制纸$(),再按前述方法刮制为$(item)纸$()" + }, + { + "type": "patchouli:text", + "title": "简化步骤...?", + "text": "随着科技树升级,你能以更少的步骤实现木材造纸,请查阅 $(thing)EMI$()了解不同木材造纸方案。" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/prospecting.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/prospecting.json new file mode 100644 index 000000000..1951c0d5a --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/prospecting.json @@ -0,0 +1,92 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "name": "勘探", + "category": "tfc:mechanics", + "icon": "tfc:metal/propick/wrought_iron", + "pages": [ + { + "type": "patchouli:text", + "text": "你还记得你是在哪里捡到那些$(l:getting_started/finding_ores)小矿粒$()的,对吧?寻找更多矿石需要花费大量精力来勘探和开采。现在,你应该已经通读$(l:tfg_ores/earth_ore_index)地球矿物索引$()这一章节。你应该明白,如果你在寻找特定的矿石,则必须先找到它生成的岩石类型——不论是就在你家门口,或是千里之外。" + }, + { + "type": "patchouli:text", + "text": "当仅靠捡拾小矿粒不能满足你的发展需要时就应考虑开始勘矿了。$(br)$(li)小矿粒、表面芽、地表岩石只会在下方有矿脉时才会出现。当地表上有一片矿粒时,它们的几何中心的正下方很可能就有一支矿脉。$(li)有些时候,矿石也会暴露在断崖或水底,这种矿脉就很好发现了。" + }, + { + "type": "patchouli:spotlight", + "anchor": "propick", + "item": "tfc:metal/propick/copper", + "title": "勘矿镐", + "link_recipes": false, + "text": "若你正在寻找矿脉,且无法通过推测定位时,便是取出$(item)勘矿镐$()的时候了。若你熟悉原版$(thing)群峦传说$()中的基础勘矿镐,可能会惊讶地发现它们在$(thing)TFG$()整合包中的运作机制已彻底重构。" + }, + { + "type": "patchouli:text", + "text": "在$(thing)TFG$()中右键使用勘矿镐时,会沿你视线方向投射一道探测射线。射线的宽度与深度取决于镐的等级(详见其工具提示)。不同等级的勘矿镐还能提供矿石数量统计,甚至可显示矿脉的$(thing)X射线$()透视指示器。" + }, + { + "type": "patchouli:text", + "text": "使用勘矿镐时可能显示以下信息:$(br)$(li)在聊天框中显示矿脉的$(thing)总储量$()、$(thing)矿石成分$()及各类矿石的$(thing)具体数量$()$(li)$(thing)彩钢$()探矿镐还能在矿脉$(thing)中心$()显示大型X射线透视粒子,或为每个矿石方块生成$(thing)定位粒子$()" + }, + { + "type": "patchouli:image", + "title": "勘探者视角", + "images": [ + "tfg:textures/gui/field_guide/prospecting/tfg_prospectors_pick_xray.png" + ], + "border": true, + "text": "使用勘矿镐时的效果如图所示。大型$(bold)\"!\"$()标识粒子为整矿脉透视模式,较小的粒子则为逐方块透视模式。" + }, + { + "type": "tfc:knapping_recipe", + "recipe": "tfc:clay_knapping/propick_head_mold", + "text": "要制作勘矿镐,你可以用黏土按上图$(l:getting_started/pottery)捏制$()成一个未烧制的勘矿镐头模具。" + }, + { + "type": "tfc:heat_recipe", + "recipe": "tfc:heating/propick_head_mold", + "text": "模具$(l:getting_started/pottery)捏制$()完之后还需要$(l:mechanics/heating)烧制$()。$(br2)将液态金属倒入到烧制好的模具中就能$(l:getting_started/finding_ores#casting)铸造$()出勘矿镐了。" + }, + { + "type": "tfc:anvil_recipe", + "recipe": "tfc:anvil/copper_propick_head", + "text": "勘矿镐头也可以在$(l:mechanics/anvils)砧$()上使用任何可以制造工具的金属$(thing)锭$()$(l:mechanics/anvils#working)锻造$()而成。$(br2)最后用木棍和工具头在合成栏合成就能做出勘矿镐了。" + }, + { + "type": "patchouli:text", + "text": "勘矿镐的大部分数据和特性都可以在你的服务器配置文件中进行调整。" + }, + { + "type": "patchouli:spotlight", + "anchor": "prospector", + "item": "gtceu:prospector.lv", + "title": "数字勘矿者的…", + "link_recipes": false, + "text": "科技时代已然来临!随之而来的是探寻矿脉的全新方式!$(br)$(item)探矿仪$()是$(thing)格雷科技$()提供的矿脉与流体矿藏勘探方案。其探测范围与功能由$(#ff1100)电压等级$()决定。" + }, + { + "type": "patchouli:image", + "title": "探矿仪", + "images": [ + "tfg:textures/gui/field_guide/prospecting/tfg_luv_ore_prospector.png" + ], + "border": true, + "text": "这是你使用$(#e373ff)LuV 探矿仪$()时可能会看到的一个例子。" + } + ], + "read_by_default": true, + "extra_recipe_mappings": { + "tfc:metal/propick/bismuth_bronze": 2, + "tfc:metal/propick/black_bronze": 2, + "tfc:metal/propick/bronze": 2, + "tfc:metal/propick/copper": 2, + "tfc:metal/propick/wrought_iron": 2, + "tfc:metal/propick/steel": 2, + "tfc:metal/propick/black_steel": 2, + "tfc:metal/propick/blue_steel": 2, + "tfc:metal/propick/red_steel": 2, + "gtceu:prospector.lv": 10, + "gtceu:prospector.hv": 10, + "gtceu:prospector.luv": 10 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/quern.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/quern.json new file mode 100644 index 000000000..0c0deddeb --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/quern.json @@ -0,0 +1,80 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "name": "手推磨", + "category": "tfc:mechanics", + "icon": "tfc:quern", + "pages": [ + { + "type": "patchouli:text", + "text": "$(thing)手推磨$()是一种用于研磨物品的装置。它可以粉碎粗矿以用于$(l:tfg_ores/ore_basics#processing)加工$(),还能制作粉末、$(l:mechanics/dye)染料$() 以及其他物品。它是由$(thing)底座$()部分和$(thing)磨盘$()部分组合而成的。" + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/quern", + "text": "合成底座需要三个$(thing)平滑岩石$()以及任意三个$(thing)岩石$()方块。$(br2)石头可通过 $(l:getting_started/primitive_anvils#raw_rock)采集$() 获得,而平滑岩石则需要用 $(l:mechanics/chisel)凿子$() 加工。" + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/handstone", + "text": "手推磨还需要一个$(thing)磨盘$()才能使用。" + }, + { + "type": "patchouli:image", + "images": [ + "tfc:textures/gui/book/tutorial/quern_empty.png" + ], + "text": "对准手推磨底座的顶面按$(item)$(k:key.use)$()放上磨盘。", + "border": true + }, + { + "type": "patchouli:image", + "images": [ + "tfc:textures/gui/book/tutorial/quern_add_item.png" + ], + "text": "手持需要研磨的物品对准磨盘顶部的小孔按$(item)$(k:key.use)$()放入。", + "border": true + }, + { + "type": "patchouli:image", + "images": [ + "tfc:textures/gui/book/tutorial/quern_handle.png" + ], + "text": "对准磨盘的把手按$(item)$(k:key.use)$()旋转。", + "border": true + }, + { + "type": "patchouli:image", + "images": [ + "tfc:textures/gui/book/tutorial/quern_result.png" + ], + "text": "产品会在手推磨底座周围一圈出现。$(item)$(k:key.use)$()点击底座就能取出。", + "border": true + }, + { + "type": "tfc:quern_recipe", + "title": "粉碎矿石", + "recipe": "tfg:quern/copper_crushed_ore_from_normal_raw_ore", + "text": "$(l:tfg_ores/ore_basics#processing)矿石$() 可被粉碎以获取更多的金属。" + }, + { + "type": "tfc:quern_recipe", + "title": "粉末", + "recipe": "tfg:quern/sulfur_powder", + "text": "手推磨可用于将矿粉(如 $(thing)硫磺$())制成各种 $(thing)粉末$()。$(thing)宝石$() 也可被研磨成粉末。" + }, + { + "type": "tfc:quern_recipe", + "title": "染料", + "recipe": "tfc:quern/red_dye", + "text": "$(l:mechanics/dye)染料$()可以从花中提取得到。" + }, + { + "type": "patchouli:spotlight", + "item": { + "tag": "tfc:foods/flour" + }, + "text": "$(thing)农作物$() 可用刀具或手推磨加工成 $(thing)谷物$(),进一步研磨可得到 $(thing)面粉$()。" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/support_beams.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/support_beams.json new file mode 100644 index 000000000..ff85b5d33 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/support_beams.json @@ -0,0 +1,244 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "name": "支撑梁及塌方", + "category": "tfc:mechanics", + "icon": "tfc:wood/support/oak", + "pages": [ + { + "type": "patchouli:text", + "text": "群峦传说中,天然岩石并不稳定,有发生$(thing)塌方$()的危险。如果不加防范,$(thing)天然岩石$()、$(thing)矿石$()、$(thing)平滑岩石$()、和钟乳$(thing)石锥$()等方块都可能从天而降,把你砸成肉饼!$(br2)为了防止发生这等惨剧,你必须确保周围的方块都$(thing)受到支撑$()。", + "title": "支撑梁" + }, + { + "type": "patchouli:text", + "text": "每次玩家挖掘任何$(thing)天然岩石$()时,若附近存在$(thing)未被支撑的$()天然岩石,就有可能发生塌方。一旦塌方开始,即便是已经$(thing)有支撑的$()岩石也可能开始塌方。$(br2)自然生成的洞穴顶部的岩石$(thing)自然承重$(),无需人工支撑。若天然岩石的正下方存在无法发生塌方的固体方块,那么这个方块也被算作是$(thing)被支撑的$()。此外,使用$(thing)支撑梁$()可以一次支撑一大片区域。" + }, + { + "type": "patchouli:text", + "text": "有等级的$(l:the_world/ores_and_minerals)矿石$()发生塌方时,其品质会降低一级——富集矿会变为普通矿,普通矿会变为贫瘠矿,而贫瘠矿会变为圆石。矿物则会直接转变为圆石。" + }, + { + "type": "patchouli:text", + "text": "泥土、草方块、黏土、沙砾、圆石、沙子等方块会受到重力影响。和原版不同,这些方块不仅会垂直下落,还会从过陡的坡上滑落,除非周围有支撑方块。$(l:mechanics/sluices)矿石沉积物$()也会发生滑坡,不过不会因此损失品质。" + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/wood/oak_support", + "title": "支撑梁", + "text": "$(thing)支撑梁$()可以用$(thing)锯$()和任意类型的$(thing)原木$()合成。$(br2)在其他方块上放置$(thing)支撑梁$()就可以产生三格高的垂直支撑梁,在梁的下方必须有固体方块作为支撑。" + }, + { + "type": "tfc:multimultiblock", + "text": "放置$(thing)水平$()支撑梁可以连接距离不超过 5 个方块的两个$(thing)垂直$()支撑梁(如上图所示)。", + "multiblocks": [ + { + "pattern": [ + [ + " ", + "CRD", + " " + ], + [ + " ", + "V W", + " " + ], + [ + " ", + "V W", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ], + [ + " ", + " ", + " " + ] + ], + "mapping": { + "R": "air", + "C": "air", + "D": "air", + "V": "air", + "W": "air", + "0": "tfc:rock/raw/andesite", + "G": "tfc:rock/raw/andesite" + } + }, + { + "pattern": [ + [ + " ", + "CRD", + " " + ], + [ + " ", + "V W", + " " + ], + [ + " ", + "V W", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ], + [ + " ", + " ", + " " + ] + ], + "mapping": { + "R": "air", + "C": "tfc:wood/vertical_support/oak", + "D": "air", + "V": "tfc:wood/vertical_support/oak", + "W": "air", + "0": "tfc:rock/raw/andesite", + "G": "tfc:rock/raw/andesite" + } + }, + { + "pattern": [ + [ + " ", + "CRD", + " " + ], + [ + " ", + "V W", + " " + ], + [ + " ", + "V W", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ], + [ + " ", + " ", + " " + ] + ], + "mapping": { + "R": "air", + "C": "tfc:wood/vertical_support/oak", + "D": "tfc:wood/vertical_support/oak", + "V": "tfc:wood/vertical_support/oak", + "W": "tfc:wood/vertical_support/oak", + "0": "tfc:rock/raw/andesite", + "G": "tfc:rock/raw/andesite" + } + }, + { + "pattern": [ + [ + " ", + "CRD", + " " + ], + [ + " ", + "V W", + " " + ], + [ + " ", + "V W", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ], + [ + " ", + " ", + " " + ] + ], + "mapping": { + "R": "tfc:wood/horizontal_support/oak[north=true,south=true]", + "C": "tfc:wood/vertical_support/oak[south=true]", + "D": "tfc:wood/vertical_support/oak[north=true]", + "V": "tfc:wood/vertical_support/oak", + "W": "tfc:wood/vertical_support/oak", + "0": "tfc:rock/raw/andesite", + "G": "tfc:rock/raw/andesite" + } + }, + { + "pattern": [ + [ + " ", + "CRD", + " " + ], + [ + " ", + "V W", + " " + ], + [ + " ", + "V W", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ], + [ + " ", + " ", + " " + ] + ], + "mapping": { + "R": "tfc:wood/horizontal_support/oak[north=true,south=true]", + "C": "tfc:wood/vertical_support/oak[south=true]", + "D": "tfc:wood/vertical_support/oak[north=true]", + "V": "tfc:wood/vertical_support/oak", + "W": "tfc:wood/vertical_support/oak", + "0": "tfc:rock/raw/andesite", + "G": "tfc:rock/raw/andesite" + } + } + ] + }, + { + "type": "patchouli:text", + "text": "只有$(thing)水平支撑梁$()才能起到$(thing)支撑$()效果,垂直的和转角的都不行。每一根水平支撑梁可以支撑以自身为中心,$(bold)9 x 5 x 9$()范围内的任何方块。$(br2)除了可以用支撑梁作为支撑,岩石下面的其他固体方块(例如其他有支撑的岩石)也会提供支撑。但是需要注意的是,$(thing)楼梯$()和$(thing)台阶$()等$(thing)非固体方块$(),以及$(thing)平滑岩石$(),是$(bold)无法$()提供支撑的。" + }, + { + "type": "patchouli:text", + "text": "除$(thing)木质支撑梁$()外,$(bold)TFG$()还新增了更高阶的支撑梁类型,包括$(thing)石质支撑梁$()、$(thing)混凝土支撑梁$()与$(thing)钢质支撑梁$()。最高阶的支撑梁可支撑以水平梁为中心、范围高达$(bold)33 x 13 x 33$()方块的区域!" + }, + { + "type": "patchouli:text", + "text": "最后请特别注意:$(l:mechanics/chisel)凿刻$()岩石和挖掘岩石一样可能导致塌方,尤其是在对任何可能引发坍塌的$(thing)天然岩石$()进行凿刻时。$(br2)$(br2)孩子们请牢记:遵守安全采矿准则!", + "title": "凿制" + } + ], + "read_by_default": true, + "extra_recipe_mappings": { + "tag:tfc:support_beams": 0 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/surface_kaolin.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/surface_kaolin.json new file mode 100644 index 000000000..e7199957e --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/surface_kaolin.json @@ -0,0 +1,93 @@ +{ + "name": "高岭土", + "icon": "tfc:kaolin_clay", + "category": "tfc:mechanics", + "read_by_default": true, + "pages": [ + { + "type": "patchouli:text", + "anchor": "kaolinite", + "text": "制作$(l:mechanics/fire_clay)耐火黏土$()需要高岭土。它生成于Y=75-110之间的高原、古老山脉、丘陵与高地,要求$(l:the_world/climate#temperature)温度$()不低于18°C,$(l:the_world/climate#rainfall)降雨量$()不低于300mm。$(thing)火球花$()会生长在高岭土上,其位置可能低至下方 35 格。" + }, + { + "type": "tfc:multimultiblock", + "text": "通常,向$(thing)东南方向$()行进可找到更温暖湿润的区域。", + "multiblocks": [ + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:plant/blood_lily", + "Y": "tfc:kaolin_clay_grass" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:plant/blood_lily", + "Y": "tfc:red_kaolin_clay" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:plant/blood_lily", + "Y": "tfc:white_kaolin_clay" + } + }, + { + "pattern": [ + [ + "X" + ], + [ + "Y" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:plant/blood_lily", + "Y": "tfc:pink_kaolin_clay" + } + } + ] + }, + { + "type": "patchouli:spotlight", + "item": "tfc:powder/kaolinite", + "anchor": "powder", + "text": "只有$(thing)20%$()的高岭土能转化为$(thing)高岭石粉$(),建议使用$(l:getting_started/pit_kiln)坑窑$()就地烧制以节省物品栏空间。$(br2)同时请带回约20$(thing)块$()高岭土,以供后续$(l:mechanics/glassworking_applications)玻璃制品$()使用。" + } + ] +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/trowel.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/trowel.json new file mode 100644 index 000000000..91ec2fe9e --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/mechanics/trowel.json @@ -0,0 +1,18 @@ +{ + "name": "抹刀", + "icon": "tfg:trowel", + "category": "tfc:mechanics", + "read_by_default": true, + "pages": [ + { + "type": "patchouli:crafting", + "title": "抹刀", + "recipe": "tfg:shaped/trowel", + "text": "$(item)抹刀$()允许建筑者右键点击表面时,从其快捷栏中随机放置方块。$(br2)抹刀还内置了对$(item)道路与屋顶$()模组的功能支持——意味着它同样可以随机放置如砖块或板岩之类的填充物。" + }, + { + "type": "patchouli:text", + "text": "灵感来源于$(item)Quark$()模组中的抹刀工具——由Vazkii制作" + } + ] +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/concrete_roads.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/concrete_roads.json new file mode 100644 index 000000000..83f85ba76 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/concrete_roads.json @@ -0,0 +1,71 @@ +{ + "name": "混凝土道路", + "category": "tfc:roadsandroofs", + "icon": "rnr:concrete_road_panel", + "pages": [ + { + "type": "patchouli:text", + "text": "混凝土道路是可建造的速度最快的道路类型,正确建造时可提供30%移动速度加成。但施工时需确保混凝土在凝固前不被踩踏或开裂,否则将失去速度增益。" + }, + { + "type": "patchouli:image", + "title": "混凝土道路", + "images": [ + "rnr:textures/gui/book/concrete_road.png" + ], + "border": true + }, + { + "type": "patchouli:spotlight", + "anchor": "liquid_concrete", + "item": "gtceu:concrete_bucket", + "title": "制备混凝土", + "text": "建造混凝土路的第一步是配制湿混凝土。使用$(thing)搅拌机$()将水与任意两种石粉(方解石或大理石粉),以及石膏粉混合;或者用三种石粉加黏土粉,来制作$(thing)液态混凝土$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "wet_concrete", + "item": "rnr:bucket/concrete", + "title": "制备混凝土", + "text": "然后把$(thing)搅拌机$()设置为$(thing)编程电路 #7$(),加入更多水稀释液态混凝土,得到$(thing)湿混凝土混合物$()。" + }, + { + "type": "patchouli:text", + "text": "一旦获得$(thing)湿混凝土$(),即可用桶舀取并倾倒在基层方块上,它会自动向相邻方块蔓延。混凝土需一天时间硬化,在此期间需防止生物踩踏未凝固的混凝土,否则会形成不平整表面导致速度加成失效。可用鹤嘴锄抹平脚印痕迹。" + }, + { + "type": "patchouli:image", + "title": "浇筑混凝土道路", + "images": [ + "rnr:textures/gui/book/wet_concrete.png" + ], + "border": true + }, + { + "type": "patchouli:text", + "text": "混凝土干燥过程中还会发生收缩开裂问题。当浇筑区域任意方向宽度超过4格时,距离混凝土$(thing)边缘$()、$(thing)控制缝$()或$(thing)纹理饰面$()超过两格的方块会产生裂缝。可通过分区域浇筑、每隔5格用$(thing)鹤嘴锄$()添加$(thing)控制接缝$()或采用$(thing)纹理饰面$()来预防开裂。" + }, + { + "type": "patchouli:image", + "title": "控制缝", + "images": [ + "rnr:textures/gui/book/control_joints.png" + ], + "border": true + }, + { + "type": "patchouli:text", + "text": "$(thing)纹理饰面$()通过将$(thing)砖块$()、$(thing)铺路砖$()或$(thing)平滑石方块$()压入正在凝固的混凝土中形成装饰性表面,这些方块同时兼具防止开裂的$(thing)控制缝$()功能。混凝土完全干燥后可用$(thing)凿子$()制作台阶和楼梯。" + }, + { + "type": "patchouli:image", + "title": "仿石砖路", + "images": [ + "rnr:textures/gui/book/faux_sett.png" + ], + "border": true + } + ], + "read_by_default": true, + "sortnum": 20 +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/gravel_roads.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/gravel_roads.json new file mode 100644 index 000000000..4f086b128 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/gravel_roads.json @@ -0,0 +1,24 @@ +{ + "name": "砾石路与碎石路", + "category": "tfc:roadsandroofs", + "icon": "rnr:rock/gravel_road/chert", + "pages": [ + { + "type": "patchouli:crafting", + "anchor": "gravel_fill", + "recipe": "rnr:crafting/gravel_fill/chert", + "title": "碎石混合物", + "text": "在基层铺设少量砾石可形成简易小道,提供10%步行速度加成。追加砾石填料并用鹤嘴锄夯实后,可升级为碎石路,获得20%速度增益。" + }, + { + "type": "patchouli:image", + "title": "建设碎石路", + "images": [ + "rnr:textures/gui/book/macadam.png" + ], + "border": true + } + ], + "read_by_default": true, + "sortnum": 8 +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/hoggin.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/hoggin.json new file mode 100644 index 000000000..928d9ea8f --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/hoggin.json @@ -0,0 +1,20 @@ +{ + "name": "碎石小道", + "category": "tfc:roadsandroofs", + "icon": "rnr:hoggin", + "pages": [ + { + "type": "patchouli:crafting", + "anchor": "hoggin_mix", + "recipe": "rnr:crafting/hoggin_mix", + "title": "碎石混合物", + "text": "碎石料是一种由黏土、沙砾和沙子混合制成的压实型地面覆盖材料。铺设于基层上可形成简易路径,提供10%的行走速度加成。" + }, + { + "type": "patchouli:text", + "text": "" + } + ], + "read_by_default": true, + "sortnum": 4 +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/making_a_road.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/making_a_road.json new file mode 100644 index 000000000..f982c7039 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/making_a_road.json @@ -0,0 +1,34 @@ +{ + "name": "修筑道路", + "category": "tfc:roadsandroofs", + "icon": "rnr:metal/mattock/bismuth_bronze", + "pages": [ + { + "type": "patchouli:text", + "text": "建设道路包含三个基本步骤:用鹤嘴锄夯实原生土壤、铺设基层、铺设面层材料。不同种类的道路需使用不同原料,具体配比详见本手册各对应页面。" + }, + { + "type": "patchouli:image", + "title": "建造小径", + "images": [ + "rnr:textures/gui/book/path_building.png" + ], + "border": true + }, + { + "type": "patchouli:text", + "text": "鹤嘴锄可像凿子那样作用于泥土类方块。默认模式下使用鹤嘴锄会夯实这些方块。若用于夯实淤泥或缠根淤泥,产生的夯实淤泥必须通过铺设碎石基层进行修复。" + }, + { + "type": "patchouli:text", + "text": "夯实土壤后,下一步是铺设道路基层。碎石基层可由沙砾、石子和锤子合成,通过右键点击铺设于压实方块上。这种碎石基层能为最终行走面提供坚固地基。" + }, + { + "type": "patchouli:text", + "text": "修筑道路的最后一步是铺设路面。通过在基层上右键点击不同物品(包括砖块、碎石料、石子等)可形成可行走道路。不同材料会形成不同种类的道路,各类道路提供的行走速度也不同。具体类型请参阅本手册各对应页面。" + } + + ], + "read_by_default": true, + "sortnum": 1 +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/making_a_roof.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/making_a_roof.json new file mode 100644 index 000000000..eee5b2a6d --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/making_a_roof.json @@ -0,0 +1,32 @@ +{ + "name": "制作屋顶", + "category": "tfc:roadsandroofs", + "icon": "rnr:terracotta_roof_stairs", + "pages": [ + { + "type": "patchouli:text", + "text": "建造屋顶从框架开始。屋顶框架方块可用木材和木棍制作,并可制成楼梯与台阶变体。这些方块可用于勾勒屋顶轮廓。" + }, + { + "type": "patchouli:crafting", + "anchor": "roof_frame", + "recipe": "rnr:crafting/roof_framing", + "title": "屋顶框架", + "text": "屋顶框架是建造所有屋顶的起点。" + }, + { + "type": "patchouli:text", + "text": "架设屋顶框架后,用任何屋顶材料右键点击即可生成对应屋顶。屋顶类型包括通过添加稻草制作的茅草顶,还有陶瓦片、木瓦片等多种选择。" + }, + { + "type": "patchouli:image", + "title": "铺设茅草屋顶", + "images": [ + "rnr:textures/gui/book/thatching.png" + ], + "border": true + } + ], + "read_by_default": true, + "sortnum": 30 +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/paving_cart.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/paving_cart.json new file mode 100644 index 000000000..03352247b --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/paving_cart.json @@ -0,0 +1,58 @@ +{ + "name": "铺路车", + "category": "tfc:roadsandroofs", + "icon": "tfg:rnr_plow", + "pages": [ + { + "type": "patchouli:text", + "text": "$(thing)铺路车$()是一种用于快速高效铺设路面的专用推车。可填入路面材料与$(thing)碎石基层$()来修筑道路。该推车还能为现有基层方块完成填料作业。" + }, + { + "type": "patchouli:image", + "title": "铺路车", + "images": [ + "tfg:textures/gui/field_guide/paving_cart/tfg_paving_cart.png" + ], + "border": true + }, + { + "type": "patchouli:image", + "title": "宽度调节滑块", + "images": [ + "tfg:textures/gui/field_guide/paving_cart/tfg_paving_cart_gui_width.png" + ], + "border": true, + "text": "通过操作界面中的滑块可调整铺设路径的宽度" + }, + { + "type": "patchouli:image", + "title": "可变宽度路径", + "images": [ + "tfg:textures/gui/field_guide/paving_cart/tfg_paving_cart_path_width.png" + ], + "border": true + }, + { + "type": "patchouli:image", + "title": "随机模式按钮", + "images": [ + "tfg:textures/gui/field_guide/paving_cart/tfg_paving_cart_gui_random.png" + ], + "border": true, + "text": "这辆推车有一种模式,可以以随机模式铺设材料。" + }, + { + "type": "patchouli:image", + "title": "随机材料路径", + "images": [ + "tfg:textures/gui/field_guide/paving_cart/tfg_paving_cart_path_random.png" + ], + "border": true + } + ], + "read_by_default": true, + "extra_recipe_mappings": { + "tfg:rnr_plow": 0 + }, + "sortnum": 20 +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/stone_roads.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/stone_roads.json new file mode 100644 index 000000000..05c13ec76 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/roadsandroofs/stone_roads.json @@ -0,0 +1,35 @@ +{ + "name": "石质道路", + "category": "tfc:roadsandroofs", + "icon": "rnr:rock/flagstones/basalt", + "pages": [ + { + "type": "patchouli:text", + "text": "基层之上可铺设多种石质路面,均提供20%速度加成。圆石路通过在基层上铺设石子而成;方石路可用石砖或陶砖建造。" + }, + { + "type": "patchouli:crafting", + "anchor": "gneiss_flagstones", + "recipe": "rnr:crafting/flagstone/gneiss", + "title": "制作铺路砖", + "text": "铺路砖可由平滑石头或砂岩方块制作。" + }, + { + "type": "patchouli:crafting", + "anchor": "pink_sandstone_flagstones", + "recipe": "rnr:crafting/flagstone/pink_sandstone", + "title": "制作铺路砖", + "text": "铺路砖可由平滑石头或砂岩方块制作。" + }, + { + "type": "patchouli:image", + "title": "玄武岩方石路", + "images": [ + "rnr:textures/gui/book/sett_road.png" + ], + "border": true + } + ], + "read_by_default": true, + "sortnum": 12 +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/burlap_sack.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/burlap_sack.json new file mode 100644 index 000000000..38147738a --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/burlap_sack.json @@ -0,0 +1,18 @@ +{ + "name": "麻袋", + "category": "tfc:sacks_n_such", + "icon": "sns:burlap_sack", + "pages": [ + { + "type": "patchouli:spotlight", + "item": "sns:burlap_sack", + "text": "$(item)麻袋$()是一种$(l:sns/item_containers)物品容器$(),可比$(item)皮革袋$()多装一些物品。" + }, + { + "type": "patchouli:crafting", + "recipe": "sns:crafting/burlap_sack", + "text": "默认可容纳至多$(thing)小型$()物品" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/frame_pack.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/frame_pack.json new file mode 100644 index 000000000..ffa012f16 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/frame_pack.json @@ -0,0 +1,18 @@ +{ + "name": "大背包", + "category": "tfc:sacks_n_such", + "icon": "sns:frame_pack", + "pages": [ + { + "type": "patchouli:spotlight", + "item": "sns:frame_pack", + "text": "$(item)大背包$()是一种$(l:sns/item_containers)物品容器$(),实质上就像把群峦传说的箱子背在背上。与箱子相同,它遵循群峦传说的$(l:getting_started/size_and_weight)尺寸与重量$()。" + }, + { + "type": "patchouli:crafting", + "recipe": "sns:crafting/frame_pack", + "text": "默认可容纳至多$(thing)大型$()物品" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/hiking_boots.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/hiking_boots.json new file mode 100644 index 000000000..7fdb34706 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/hiking_boots.json @@ -0,0 +1,17 @@ +{ + "name": "登山靴", + "category": "tfc:sacks_n_such", + "icon": "sns:hiking_boots", + "pages": [ + { + "type": "patchouli:text", + "text": "每位探索者都需要一双好靴子。它能让你快速穿过灌木,并提供些许移速提升,同时略微提高安全坠落高度。" + }, + { + "type": "patchouli:crafting", + "recipe": "sns:crafting/hiking_boots", + "text": "这双靴子就是为行走而生。" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/horseshoes.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/horseshoes.json new file mode 100644 index 000000000..d90416c5e --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/horseshoes.json @@ -0,0 +1,30 @@ +{ + "name": "马蹄铁", + "category": "tfc:sacks_n_such", + "icon": "sns:metal/horseshoe/steel", + "pages": [ + { + "type": "patchouli:text", + "text": "$(item)马蹄铁$()需先单独锻造,再在工作台中组合。你难道不知道马有四只脚吗?$(br)$(br)顺带一提,给马穿高级马蹄铁时,最好把马拴好,普通的安全坑已经不管用了!" + }, + { + "type": "tfc:sns/better_anvil_recipe", + "recipe": "sns:anvil/metal/horseshoe/steel", + "recipe2": "sns:anvil/metal/horseshoe/black_steel", + "recipe3": "sns:anvil/metal/horseshoe/blue_steel", + "recipe4": "sns:anvil/metal/horseshoe/red_steel", + "text4": "每匹马都该有双好鞋" + }, + { + "type": "patchouli:crafting", + "recipe": "sns:crafting/metal/horseshoes/steel", + "recipe2": "sns:crafting/metal/horseshoes/black_steel" + }, + { + "type": "patchouli:crafting", + "recipe": "sns:crafting/metal/horseshoes/blue_steel", + "recipe2": "sns:crafting/metal/horseshoes/red_steel" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/item_containers.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/item_containers.json new file mode 100644 index 000000000..82c03d753 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/item_containers.json @@ -0,0 +1,21 @@ +{ + "name": "物品容器", + "category": "tfc:sacks_n_such", + "icon": "sns:straw_basket", + "pages": [ + { + "type": "patchouli:text", + "text": "$(thing)物品容器$()是本模组新增的主要物品。它们有6个主要属性,可在鼠标悬停于物品堆并按住$(3)Shift$(clear)时查看。$(li)$(thing)容量格数$():拥有的格子数量。$(li)$(thing)每格容量$():每格可容纳的物品数量。$(li)$(thing)允许尺寸$():格子中允许的最大$(l:getting_started/size_and_weight)尺寸与重量$()。" + }, + { + "type": "patchouli:text", + "text": "$(li)$(thing)物品拾取$():能否从世界中拾取物品实体。按住Shift右键或使用$(k:sns.key.pickup)切换。$(li)$(thing)物品清除$():能否清除从世界中拾取的多余物品。切换方式为 Ctrl + 左键点击格子。$(li)$(thing)库存交互$():是否可像群峦传说的小缸或原版收纳袋那样,通过点击物品堆来插入与取出。$(br)所有$(thing)物品容器$()均支持通过$(k:pickItem)使用原版点选复制。" + }, + { + "type": "patchouli:text", + "text": "供整合包作者或需要配置的玩家参考:所有$(thing)物品容器$()都有一个“黑名单”标签,包含$(bold)sns:prevented_in_item_containers$()。命名规则为$(bold)prevented_in_$(),例如草篮使用$(bold)sns:prevented_in_straw_basket$()。带有特殊“白名单”标签的$(thing)物品容器$()会在其书页中列出。" + } + ], + "read_by_default": true +} + diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/leather_sack.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/leather_sack.json new file mode 100644 index 000000000..33aaf7edb --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/leather_sack.json @@ -0,0 +1,17 @@ +{ + "name": "皮革袋", + "category": "tfc:sacks_n_such", + "icon": "sns:leather_sack", + "pages": [ + { + "type": "patchouli:spotlight", + "item": "sns:leather_sack", + "text": "$(item)皮革袋$()是一种$(l:sns/item_containers)物品容器$(),与小缸相似但容量稍高。默认可容纳至多$(thing)普通$()物品" + }, + { + "type": "patchouli:crafting", + "recipe": "sns:crafting/leather_sack" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/lunchbox.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/lunchbox.json new file mode 100644 index 000000000..098660e42 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/lunchbox.json @@ -0,0 +1,18 @@ +{ + "name": "午餐盒", + "category": "tfc:sacks_n_such", + "icon": "sns:lunchbox", + "pages": [ + { + "type": "patchouli:spotlight", + "item": "sns:lunchbox", + "text": "$(item)午餐盒$()是一种颇为实用的$(l:sns/item_containers)物品容器$()。顾名思义,它专用于盛装各类食物,甚至允许你直接从中取用。按下$(k:sneak)键+$(k:use)键开启午餐盒,按住$(k:sneak)键+滚动鼠标滑轮选择要食用的堆叠物品,按下$(k:use)键即可食用选中的食物。" + }, + { + "type": "patchouli:crafting", + "recipe": "sns:crafting/lunchbox", + "text": "对于模组包作者,或希望添加额外食物的玩家,请参阅物品标签$(bold)sns:lunchbox_food$()——大多数附加内容都应会自动获得支持。" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/mob_net.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/mob_net.json new file mode 100644 index 000000000..6872bff82 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/mob_net.json @@ -0,0 +1,17 @@ +{ + "name": "捕捉网", + "category": "tfc:sacks_n_such", + "icon": "sns:mob_net", + "pages": [ + { + "type": "patchouli:crafting", + "recipe": "sns:crafting/mob_net", + "text": "捕捉网在捕获小型生物方面极为实用。它们最常见的用途是运输诸如鸟类,或是较大型生物(如牛)的幼崽等生物。" + }, + { + "type": "patchouli:text", + "text": "对于模组包作者,或仅是希望添加额外生物的玩家,请参阅实体标签 $(bold)sns:netable_mobs" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/ore_sack.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/ore_sack.json new file mode 100644 index 000000000..0fbb20f0e --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/ore_sack.json @@ -0,0 +1,18 @@ +{ + "name": "矿石袋", + "category": "tfc:sacks_n_such", + "icon": "sns:ore_sack", + "pages": [ + { + "type": "patchouli:spotlight", + "item": "sns:ore_sack", + "text": "$(item)矿石袋$()是一种$(l:sns/item_containers)物品容器$(),旨在容纳大量某单一矿石类物品,在采矿中极其实用。$(br2)默认每格可堆叠高达 512 个矿石" + }, + { + "type": "patchouli:crafting", + "recipe": "sns:crafting/ore_sack", + "text": "供整合包作者或希望添加更多矿石的玩家参考,请查看物品标签 $(bold)sns:allowed_in_ore_sack$(),大多数附加内容应会被自动支持" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/quiver.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/quiver.json new file mode 100644 index 000000000..cbbb3c366 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/quiver.json @@ -0,0 +1,18 @@ +{ + "name": "箭筒", + "category": "tfc:sacks_n_such", + "icon": "sns:quiver", + "pages": [ + { + "type": "patchouli:spotlight", + "item": "sns:quiver", + "text": "$(item)箭筒$() 是每位射手的伙伴,无论你钟情 $(item)标枪$() 还是喜欢弓。$(br)使用弓时会优先从箭筒中消耗“弹药”,投掷标枪时也会补回。" + }, + { + "type": "tfc:knapping_recipe", + "recipe": "sns:leather_knapping/quiver", + "text": "供整合包作者或希望支持额外“弹药”的玩家参考:请查看物品标签 $(bold)sns:allowed_in_quiver$()。请注意,标枪的补回仅对 TFC(或其附加)标枪有效。" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/safety_toe_hiking_boots.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/safety_toe_hiking_boots.json new file mode 100644 index 000000000..e237d1b72 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/safety_toe_hiking_boots.json @@ -0,0 +1,22 @@ +{ + "name": "钢头登山靴", + "category": "tfc:sacks_n_such", + "icon": "sns:steel_toe_hiking_boots", + "pages": [ + { + "type": "patchouli:text", + "text": "和$(l:sns/hiking_boots)登山靴$()一样,不过因为拥有钢头而更安全。可惜还没有人发明安全帽。" + }, + { + "type": "patchouli:crafting", + "recipe": "sns:crafting/steel_toe_hiking_boots", + "recipe2": "sns:crafting/black_steel_toe_hiking_boots" + }, + { + "type": "patchouli:crafting", + "recipe": "sns:crafting/blue_steel_toe_hiking_boots", + "recipe2": "sns:crafting/red_steel_toe_hiking_boots" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/seed_pouch.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/seed_pouch.json new file mode 100644 index 000000000..e52219431 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/seed_pouch.json @@ -0,0 +1,18 @@ +{ + "name": "种子袋", + "category": "tfc:sacks_n_such", + "icon": "sns:seed_pouch", + "pages": [ + { + "type": "patchouli:spotlight", + "item": "sns:seed_pouch", + "text": "$(item)种子袋$()是一种$(l:sns/item_containers)物品容器$(),用于容纳多种种子,在务农时非常实用。$(br2)默认拥有 27 个格子,每格可容纳 64 颗种子" + }, + { + "type": "patchouli:crafting", + "recipe": "sns:crafting/seed_pouch", + "text": "供整合包作者或希望添加更多种子的玩家参考,请查看物品标签$(bold)sns:allowed_in_seed_pouch$(),大多数附加内容应会被自动支持" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/straw_basket.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/straw_basket.json new file mode 100644 index 000000000..68ac2f945 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/sns/straw_basket.json @@ -0,0 +1,17 @@ +{ + "name": "草篮", + "category": "tfc:sacks_n_such", + "icon": "sns:straw_basket", + "pages": [ + { + "type": "patchouli:spotlight", + "item": "sns:straw_basket", + "text": "$(item)草篮$()是一种$(l:sns/item_containers)物品容器$(),基本上就是更便宜的容器。默认可容纳至多$(thing)小型$()物品" + }, + { + "type": "patchouli:crafting", + "recipe": "sns:crafting/straw_basket" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfcchannelcasting/casting_chocolate.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfcchannelcasting/casting_chocolate.json new file mode 100644 index 000000000..3bae3cad0 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfcchannelcasting/casting_chocolate.json @@ -0,0 +1,40 @@ +{ + "name": "巧克力浇注", + "category": "tfc:tfcchannelcasting", + "icon": "tfcchannelcasting:food/milk_chocolate_heart", + "pages": [ + { + "type": "patchouli:text", + "text": "下述内容仅在安装 Firmalife 时可用。$(thing)巧克力$()不必只是无聊的巧克力棒!将$(thing)白巧克力$()、$(thing)牛奶巧克力$()或$(thing)黑巧克力$()在$(thing)小缸$()或$(thing)坩埚$()中熔化后,浇注进模具即可得到巧克力点心。点心共有三种:$(thing)心型$()、$(thing)钟$()与$(thing)刀$(),分别由不同模具浇注获得。" + }, + { + "type": "tfc:knapping_recipe", + "recipe": "tfcchannelcasting:clay_knapping/unfired_heart_mold", + "text": "捏制一个$(thing)心型模具$(),用来制作$(thing)心型$()巧克力。" + }, + { + "type": "patchouli:text", + "text": "巧克力点心提供与巧克力棒相同的营养,但食用更快。若在特定月份制作,还会获得使营养翻倍的特质:$(thing)巧克力心型$()在二月获得$(thing)浪漫$(),$(thing)黑巧克力冬铃$()在十二月获得$(thing)节庆$(),$(thing)黑巧克力刀$()在十月获得$(thing)惊悚$()。" + }, + { + "type": "patchouli:text", + "text": "此外,点心可以做成$(thing)夹心$()以获得额外收益:夹心$(thing)果酱$()会额外提供$(thing)水果$()营养,夹心$(thing)酒精$()会给予正面药水效果。" + }, + { + "type": "tfc:sealed_barrel_recipe", + "recipe": "tfcchannelcasting:barrel/fill_with_sweet_liquor", + "text": "食用$(thing)甜酒夹心$()巧克力会获得速度提升。" + }, + { + "type": "tfc:sealed_barrel_recipe", + "recipe": "tfcchannelcasting:barrel/fill_with_strong_liquor", + "text": "食用$(thing)烈酒夹心$()巧克力会获得伤害抗性。" + }, + { + "type": "tfc:sealed_barrel_recipe", + "recipe": "tfcchannelcasting:barrel/fill_with_whiskey", + "text": "食用$(thing)威士忌夹心$()巧克力会获得急迫效果。" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfcchannelcasting/channel_casting.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfcchannelcasting/channel_casting.json new file mode 100644 index 000000000..3ec0c98b1 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfcchannelcasting/channel_casting.json @@ -0,0 +1,39 @@ +{ + "name": "浇注道铸造", + "category": "tfc:tfcchannelcasting", + "icon": "tfcchannelcasting:channel", + "pages": [ + { + "type": "patchouli:text", + "text": "你可以使用$(thing)浇注道$()与$(thing)模具台$(),从$(thing)坩埚$()同时向多个模具浇注金属。只需用$(thing)浇注道$()把$(thing)模具台$()与$(thing)坩埚$()连接,然后右键点击$(thing)坩埚$()旁边的$(thing)浇注道$()。手持$(l:getting_started/pottery#mold)模具$()对$(thing)模具台$()按住潜行并右键以放置或移除。" + }, + { + "type": "tfc:knapping_recipe", + "recipe": "tfcchannelcasting:fire_clay_knapping/unfired_channel_4", + "text": "捏制数个$(thing)未烧制的浇注道$()。" + }, + { + "type": "tfc:knapping_recipe", + "recipe": "tfcchannelcasting:fire_clay_knapping/unfired_mold_table", + "text": "捏制一个$(thing)未烧制的模具台$()。" + }, + { + "type": "tfc:heat_recipe", + "recipe": "tfcchannelcasting:heating/channel", + "text": "浇注道与模具台捏制完成后,需要像任意陶器一样进行$(thing)烧制$()。" + }, + { + "type": "patchouli:multiblock", + "multiblock_id": "tfcchannelcasting:example", + "name": "浇注铸造示例", + "text": "", + "enable_visualize": false + }, + { + "type": "patchouli:text", + "text": "$(li)对$(thing)模具台$()使用风箱可更快冷却金属。$()$(li)用红石脉冲激活$(thing)浇注道$()会开始倾倒金属。$()$(li)$(thing)模具台$()会输出比较器信号。", + "title": "自动化" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_ores/earth_ore_index.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_ores/earth_ore_index.json index bee5632bc..d8d0d6af2 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_ores/earth_ore_index.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_ores/earth_ore_index.json @@ -14,42 +14,42 @@ }, { "Type": "patchouli:text", - "text": "$(li)云母: $(l:tfg_ores/earth_vein_index#normal_mica)25%$(/l)$()$(li)原生金: $(l:tfg_ores/earth_vein_index#deep_gold)75%$(/l), $(l:tfg_ores/earth_vein_index#normal_gold)55%$(/l), $(l:tfg_ores/earth_vein_index#deep_magnetite)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_magnetite)9%$(/l), $(l:tfg_ores/earth_vein_index#deep_hematite)5%$(/l), $(l:tfg_ores/earth_vein_index#normal_hematite)5%$(/l)$()$(li)原生铜: $(l:tfg_ores/earth_vein_index#normal_copper)65%$(/l), $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)30%$(/l), $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)20%$(/l)$()$(li)原生银: $(l:tfg_ores/earth_vein_index#normal_silver)15%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)10%$(/l), $(l:tfg_ores/earth_vein_index#surface_bismuthinite)10%$(/l)$()$(li)天然碱: $(l:tfg_ores/earth_vein_index#normal_lubricant)10%$(/l)$()$(li)孔雀石: $(l:tfg_ores/earth_vein_index#deep_limonite)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_limonite)15%$(/l)$()$(li)岩盐: $(l:tfg_ores/earth_vein_index#normal_salt)40%$(/l), $(l:tfg_ores/earth_vein_index#normal_spodumene)20%$(/l)$()$(li)斑铜矿: $(l:tfg_ores/earth_vein_index#deep_sheldonite)53%$(/l), $(l:tfg_ores/earth_vein_index#deep_topaz)15%$(/l)$()$(li)方解石: $(l:tfg_ores/earth_vein_index#normal_gypsum)30%$(/l), $(l:tfg_ores/earth_vein_index#normal_lapis)15%$(/l)$()$(li)方钠石: $(l:tfg_ores/earth_vein_index#normal_lapis)25%$(/l)$()$(li)方铅矿: $(l:tfg_ores/earth_vein_index#normal_silver)30%$(/l)$()$(li)明矾石: $(l:tfg_ores/earth_vein_index#normal_saltpeter)15%$(/l)$()$(li)晶质铀矿: $(l:tfg_ores/earth_vein_index#deep_pitchblende)25%$(/l)$()$(li)朱砂: $(l:tfg_ores/earth_vein_index#normal_redstone)20%$(/l)$()", + "text": "$(li)云母: $(l:tfg_ores/earth_vein_index#normal_mica)25%$(/l)$()$(li)原生金: $(l:tfg_ores/earth_vein_index#deep_gold)75%$(/l), $(l:tfg_ores/earth_vein_index#normal_gold)55%$(/l), $(l:tfg_ores/earth_vein_index#deep_magnetite)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_magnetite)9%$(/l), $(l:tfg_ores/earth_vein_index#deep_hematite)5%$(/l), $(l:tfg_ores/earth_vein_index#normal_hematite)5%$(/l)$()$(li)原生铜: $(l:tfg_ores/earth_vein_index#normal_copper)65%$(/l), $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)30%$(/l), $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)20%$(/l)$()$(li)原生银: $(l:tfg_ores/earth_vein_index#normal_silver)15%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)10%$(/l), $(l:tfg_ores/earth_vein_index#surface_bismuthinite)10%$(/l)$()$(li)塔基安矿: $(l:tfg_ores/earth_vein_index#normal_tarkianite)35%$(/l)$()$(li)天然碱: $(l:tfg_ores/earth_vein_index#normal_lubricant)10%$(/l), $(l:tfg_ores/earth_vein_index#normal_tarkianite)10%$(/l)$()$(li)孔雀石: $(l:tfg_ores/earth_vein_index#deep_limonite)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_limonite)15%$(/l)$()$(li)岩盐: $(l:tfg_ores/earth_vein_index#normal_salt)40%$(/l), $(l:tfg_ores/earth_vein_index#normal_spodumene)20%$(/l)$()$(li)斑铜矿: $(l:tfg_ores/earth_vein_index#deep_sheldonite)53%$(/l), $(l:tfg_ores/earth_vein_index#deep_topaz)15%$(/l)$()$(li)方解石: $(l:tfg_ores/earth_vein_index#normal_gypsum)30%$(/l), $(l:tfg_ores/earth_vein_index#normal_lapis)15%$(/l)$()$(li)方钠石: $(l:tfg_ores/earth_vein_index#normal_lapis)25%$(/l)$()$(li)方铅矿: $(l:tfg_ores/earth_vein_index#normal_silver)30%$(/l)$()$(li)明矾石: $(l:tfg_ores/earth_vein_index#normal_saltpeter)15%$(/l)$()$(li)晶质铀矿: $(l:tfg_ores/earth_vein_index#deep_pitchblende)25%$(/l)$()", "type": "patchouli:text" }, { "Type": "patchouli:text", - "text": "$(li)橄榄石: $(l:tfg_ores/earth_vein_index#normal_olivine)25%$(/l)$()$(li)氟碳镧铈矿: $(l:tfg_ores/earth_vein_index#normal_monazite)62%$(/l)$()$(li)沥青铀矿: $(l:tfg_ores/earth_vein_index#deep_pitchblende)62%$(/l)$()$(li)沸石: $(l:tfg_ores/earth_vein_index#surface_copper)16%$(/l)$()$(li)油砂: $(l:tfg_ores/earth_vein_index#normal_oilsands)100%$(/l)$()$(li)海绿石矿砂: $(l:tfg_ores/earth_vein_index#normal_lubricant)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_olivine)15%$(/l)$()$(li)滑石: $(l:tfg_ores/earth_vein_index#normal_lubricant)20%$(/l)$()$(li)漂白土: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_gypsum)15%$(/l)$()$(li)烧绿石: $(l:tfg_ores/earth_vein_index#normal_apatite)15%$(/l)$()$(li)煤炭: $(l:tfg_ores/earth_vein_index#normal_coal)100%$(/l), $(l:tfg_ores/earth_vein_index#normal_graphite)30%$(/l)$()$(li)独居石: $(l:tfg_ores/earth_vein_index#normal_monazite)31%$(/l)$()$(li)玄武岩矿砂: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)35%$(/l)$()$(li)白钨矿: $(l:tfg_ores/earth_vein_index#deep_scheelite)45%$(/l)$()$(li)皂石: $(l:tfg_ores/earth_vein_index#normal_lubricant)30%$(/l)$()", + "text": "$(li)朱砂: $(l:tfg_ores/earth_vein_index#normal_redstone)20%$(/l)$()$(li)橄榄石: $(l:tfg_ores/earth_vein_index#normal_olivine)25%$(/l)$()$(li)氟碳镧铈矿: $(l:tfg_ores/earth_vein_index#normal_monazite)62%$(/l)$()$(li)沥青铀矿: $(l:tfg_ores/earth_vein_index#deep_pitchblende)62%$(/l)$()$(li)沸石: $(l:tfg_ores/earth_vein_index#surface_copper)16%$(/l)$()$(li)油砂: $(l:tfg_ores/earth_vein_index#normal_oilsands)100%$(/l), $(l:tfg_ores/earth_vein_index#normal_tarkianite)35%$(/l)$()$(li)海绿石矿砂: $(l:tfg_ores/earth_vein_index#normal_lubricant)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_olivine)15%$(/l)$()$(li)滑石: $(l:tfg_ores/earth_vein_index#normal_lubricant)20%$(/l)$()$(li)漂白土: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_gypsum)15%$(/l)$()$(li)烧绿石: $(l:tfg_ores/earth_vein_index#normal_apatite)15%$(/l)$()$(li)煤炭: $(l:tfg_ores/earth_vein_index#normal_coal)100%$(/l), $(l:tfg_ores/earth_vein_index#normal_graphite)30%$(/l)$()$(li)独居石: $(l:tfg_ores/earth_vein_index#normal_monazite)31%$(/l)$()$(li)玄武岩矿砂: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)35%$(/l)$()$(li)白钨矿: $(l:tfg_ores/earth_vein_index#deep_scheelite)45%$(/l)$()", "type": "patchouli:text" }, { "Type": "patchouli:text", - "text": "$(li)盐: $(l:tfg_ores/earth_vein_index#normal_salt)30%$(/l), $(l:tfg_ores/earth_vein_index#normal_spodumene)30%$(/l)$()$(li)石棉: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_quartz)18%$(/l)$()$(li)石榴石矿砂: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)25%$(/l)$()$(li)石膏: $(l:tfg_ores/earth_vein_index#normal_gypsum)35%$(/l), $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)15%$(/l)$()$(li)石英岩: $(l:tfg_ores/earth_vein_index#normal_quartz)43%$(/l)$()$(li)石墨: $(l:tfg_ores/earth_vein_index#normal_graphite)45%$(/l)$()$(li)硅藻土: $(l:tfg_ores/earth_vein_index#normal_saltpeter)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_garnet_tin)15%$(/l)$()$(li)硅镁镍矿: $(l:tfg_ores/earth_vein_index#normal_garnierite)30%$(/l)$()$(li)硝石: $(l:tfg_ores/earth_vein_index#normal_saltpeter)35%$(/l)$()$(li)硫: $(l:tfg_ores/earth_vein_index#surface_sphalerite)55%$(/l), $(l:tfg_ores/earth_vein_index#normal_sulfur)50%$(/l), $(l:tfg_ores/earth_vein_index#normal_sphalerite)35%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)9%$(/l), $(l:tfg_ores/earth_vein_index#surface_bismuthinite)3%$(/l)$()$(li)硫铂矿: $(l:tfg_ores/earth_vein_index#deep_sheldonite)38%$(/l)$()$(li)硼砂: $(l:tfg_ores/earth_vein_index#normal_gypsum)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_salt)15%$(/l)$()$(li)磁铁矿: $(l:tfg_ores/earth_vein_index#normal_magnetite)63%$(/l), $(l:tfg_ores/earth_vein_index#deep_magnetite)8%$(/l)$()$(li)磷灰石: $(l:tfg_ores/earth_vein_index#normal_apatite)50%$(/l)$()", + "text": "$(li)皂石: $(l:tfg_ores/earth_vein_index#normal_lubricant)30%$(/l)$()$(li)盐: $(l:tfg_ores/earth_vein_index#normal_salt)30%$(/l), $(l:tfg_ores/earth_vein_index#normal_spodumene)30%$(/l)$()$(li)石棉: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_quartz)18%$(/l)$()$(li)石榴石矿砂: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)25%$(/l)$()$(li)石膏: $(l:tfg_ores/earth_vein_index#normal_gypsum)35%$(/l), $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)15%$(/l)$()$(li)石英岩: $(l:tfg_ores/earth_vein_index#normal_quartz)43%$(/l)$()$(li)石墨: $(l:tfg_ores/earth_vein_index#normal_graphite)45%$(/l)$()$(li)硅藻土: $(l:tfg_ores/earth_vein_index#normal_saltpeter)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_garnet_tin)15%$(/l)$()$(li)硅镁镍矿: $(l:tfg_ores/earth_vein_index#normal_garnierite)30%$(/l)$()$(li)硝石: $(l:tfg_ores/earth_vein_index#normal_saltpeter)35%$(/l)$()$(li)硫: $(l:tfg_ores/earth_vein_index#surface_sphalerite)55%$(/l), $(l:tfg_ores/earth_vein_index#normal_sulfur)50%$(/l), $(l:tfg_ores/earth_vein_index#normal_sphalerite)35%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)9%$(/l), $(l:tfg_ores/earth_vein_index#surface_bismuthinite)3%$(/l)$()$(li)硫铂矿: $(l:tfg_ores/earth_vein_index#deep_sheldonite)38%$(/l)$()$(li)硼砂: $(l:tfg_ores/earth_vein_index#normal_gypsum)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_tarkianite)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_salt)15%$(/l)$()$(li)磁铁矿: $(l:tfg_ores/earth_vein_index#normal_magnetite)63%$(/l), $(l:tfg_ores/earth_vein_index#deep_magnetite)8%$(/l)$()", "type": "patchouli:text" }, { "Type": "patchouli:text", - "text": "$(li)磷酸三钙: $(l:tfg_ores/earth_vein_index#normal_apatite)35%$(/l)$()$(li)紫水晶: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)65%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)25%$(/l)$()$(li)红宝石: $(l:tfg_ores/earth_vein_index#normal_redstone)35%$(/l), $(l:tfg_ores/earth_vein_index#deep_hematite)20%$(/l)$()$(li)红石: $(l:tfg_ores/earth_vein_index#normal_redstone)45%$(/l)$()$(li)红色石榴石: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)5%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)5%$(/l)$()$(li)绿宝石: $(l:tfg_ores/earth_vein_index#normal_beryllium)50%$(/l)$()$(li)绿色蓝宝石: $(l:tfg_ores/earth_vein_index#deep_sapphire)16%$(/l)$()$(li)膨润土: $(l:tfg_ores/earth_vein_index#normal_olivine)35%$(/l)$()$(li)花岗岩矿砂: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)25%$(/l)$()$(li)菱镁矿: $(l:tfg_ores/earth_vein_index#normal_olivine)25%$(/l)$()$(li)蓝宝石: $(l:tfg_ores/earth_vein_index#deep_sapphire)16%$(/l), $(l:tfg_ores/earth_vein_index#deep_magnetite)8%$(/l)$()$(li)蓝晶石: $(l:tfg_ores/earth_vein_index#normal_mica)35%$(/l)$()$(li)蓝石: $(l:tfg_ores/earth_vein_index#normal_saltpeter)25%$(/l)$()$(li)蓝金石: $(l:tfg_ores/earth_vein_index#normal_lapis)35%$(/l)$()", + "text": "$(li)磷灰石: $(l:tfg_ores/earth_vein_index#normal_apatite)50%$(/l)$()$(li)磷酸三钙: $(l:tfg_ores/earth_vein_index#normal_apatite)35%$(/l)$()$(li)紫水晶: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)65%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)25%$(/l)$()$(li)红宝石: $(l:tfg_ores/earth_vein_index#normal_redstone)35%$(/l), $(l:tfg_ores/earth_vein_index#deep_hematite)20%$(/l)$()$(li)红石: $(l:tfg_ores/earth_vein_index#normal_redstone)45%$(/l)$()$(li)红色石榴石: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)5%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)5%$(/l)$()$(li)绿宝石: $(l:tfg_ores/earth_vein_index#normal_beryllium)50%$(/l)$()$(li)绿色蓝宝石: $(l:tfg_ores/earth_vein_index#deep_sapphire)16%$(/l)$()$(li)膨润土: $(l:tfg_ores/earth_vein_index#normal_olivine)35%$(/l)$()$(li)花岗岩矿砂: $(l:tfg_ores/earth_vein_index#normal_basaltic_sands)25%$(/l)$()$(li)菱镁矿: $(l:tfg_ores/earth_vein_index#normal_olivine)25%$(/l)$()$(li)蓝宝石: $(l:tfg_ores/earth_vein_index#deep_sapphire)16%$(/l), $(l:tfg_ores/earth_vein_index#deep_magnetite)8%$(/l)$()$(li)蓝晶石: $(l:tfg_ores/earth_vein_index#normal_mica)35%$(/l)$()$(li)蓝石: $(l:tfg_ores/earth_vein_index#normal_saltpeter)25%$(/l)$()", "type": "patchouli:text" }, { "Type": "patchouli:text", - "text": "$(li)蓝黄玉: $(l:tfg_ores/earth_vein_index#deep_topaz)35%$(/l)$()$(li)蛋白石: $(l:tfg_ores/earth_vein_index#deep_garnet_opal)55%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)15%$(/l)$()$(li)赤铁矿: $(l:tfg_ores/earth_vein_index#normal_hematite)50%$(/l), $(l:tfg_ores/earth_vein_index#deep_hematite)35%$(/l), $(l:tfg_ores/earth_vein_index#normal_gold)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_limonite)20%$(/l), $(l:tfg_ores/earth_vein_index#deep_gold)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_limonite)15%$(/l), $(l:tfg_ores/earth_vein_index#normal_copper)5%$(/l)$()$(li)软锰矿: $(l:tfg_ores/earth_vein_index#normal_manganese)25%$(/l)$()$(li)辉钴矿: $(l:tfg_ores/earth_vein_index#normal_garnierite)20%$(/l)$()$(li)辉钼矿: $(l:tfg_ores/earth_vein_index#deep_molybdenum)35%$(/l)$()$(li)辉铋矿: $(l:tfg_ores/earth_vein_index#surface_bismuthinite)80%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)70%$(/l)$()$(li)辉铜矿: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()$(li)辉锑矿: $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)20%$(/l), $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)20%$(/l)$()$(li)重晶石: $(l:tfg_ores/earth_vein_index#normal_quartz)37%$(/l)$()$(li)针铁矿: $(l:tfg_ores/earth_vein_index#deep_limonite)50%$(/l), $(l:tfg_ores/earth_vein_index#deep_hematite)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_hematite)15%$(/l), $(l:tfg_ores/earth_vein_index#normal_limonite)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_gold)5%$(/l), $(l:tfg_ores/earth_vein_index#normal_gold)5%$(/l)$()$(li)钍矿: $(l:tfg_ores/earth_vein_index#normal_beryllium)15%$(/l)$()$(li)钒磁铁矿: $(l:tfg_ores/earth_vein_index#normal_magnetite)22%$(/l), $(l:tfg_ores/earth_vein_index#deep_magnetite)25%$(/l)$()$(li)钕矿: $(l:tfg_ores/earth_vein_index#normal_monazite)6%$(/l)$()", + "text": "$(li)蓝金石: $(l:tfg_ores/earth_vein_index#normal_lapis)35%$(/l)$()$(li)蓝黄玉: $(l:tfg_ores/earth_vein_index#deep_topaz)35%$(/l)$()$(li)蛋白石: $(l:tfg_ores/earth_vein_index#deep_garnet_opal)55%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)15%$(/l)$()$(li)赤铁矿: $(l:tfg_ores/earth_vein_index#normal_hematite)50%$(/l), $(l:tfg_ores/earth_vein_index#deep_hematite)35%$(/l), $(l:tfg_ores/earth_vein_index#normal_gold)20%$(/l), $(l:tfg_ores/earth_vein_index#normal_limonite)20%$(/l), $(l:tfg_ores/earth_vein_index#deep_gold)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_limonite)15%$(/l), $(l:tfg_ores/earth_vein_index#normal_copper)5%$(/l)$()$(li)软锰矿: $(l:tfg_ores/earth_vein_index#normal_manganese)25%$(/l)$()$(li)辉钴矿: $(l:tfg_ores/earth_vein_index#normal_garnierite)20%$(/l)$()$(li)辉钼矿: $(l:tfg_ores/earth_vein_index#deep_molybdenum)35%$(/l)$()$(li)辉铋矿: $(l:tfg_ores/earth_vein_index#surface_bismuthinite)80%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)70%$(/l)$()$(li)辉铜矿: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()$(li)辉锑矿: $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)20%$(/l), $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)20%$(/l)$()$(li)重晶石: $(l:tfg_ores/earth_vein_index#normal_quartz)37%$(/l)$()$(li)针铁矿: $(l:tfg_ores/earth_vein_index#deep_limonite)50%$(/l), $(l:tfg_ores/earth_vein_index#deep_hematite)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_hematite)15%$(/l), $(l:tfg_ores/earth_vein_index#normal_limonite)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_gold)5%$(/l), $(l:tfg_ores/earth_vein_index#normal_gold)5%$(/l)$()$(li)钍矿: $(l:tfg_ores/earth_vein_index#normal_beryllium)15%$(/l)$()$(li)钒磁铁矿: $(l:tfg_ores/earth_vein_index#normal_magnetite)22%$(/l), $(l:tfg_ores/earth_vein_index#deep_magnetite)25%$(/l)$()", "type": "patchouli:text" }, { "Type": "patchouli:text", - "text": "$(li)钙铝榴石: $(l:tfg_ores/earth_vein_index#normal_manganese)37%$(/l)$()$(li)钨酸锂: $(l:tfg_ores/earth_vein_index#deep_scheelite)35%$(/l)$()$(li)钴矿: $(l:tfg_ores/earth_vein_index#normal_garnierite)15%$(/l)$()$(li)钻石: $(l:tfg_ores/earth_vein_index#normal_graphite)25%$(/l)$()$(li)钼钨钙矿: $(l:tfg_ores/earth_vein_index#deep_molybdenum)17%$(/l)$()$(li)钼铅矿: $(l:tfg_ores/earth_vein_index#deep_molybdenum)47%$(/l), $(l:tfg_ores/earth_vein_index#deep_pitchblende)12%$(/l)$()$(li)钽铁矿: $(l:tfg_ores/earth_vein_index#normal_manganese)12%$(/l)$()$(li)铁铝榴石: $(l:tfg_ores/earth_vein_index#deep_sapphire)38%$(/l)$()$(li)铂矿: $(l:tfg_ores/earth_vein_index#deep_sheldonite)7%$(/l)$()$(li)铅矿: $(l:tfg_ores/earth_vein_index#normal_silver)55%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)11%$(/l), $(l:tfg_ores/earth_vein_index#surface_bismuthinite)7%$(/l)$()$(li)铍矿: $(l:tfg_ores/earth_vein_index#normal_beryllium)35%$(/l)$()$(li)铝土矿: $(l:tfg_ores/earth_vein_index#normal_mica)25%$(/l)$()$(li)铬铁矿: $(l:tfg_ores/earth_vein_index#deep_magnetite)33%$(/l), $(l:tfg_ores/earth_vein_index#normal_magnetite)4%$(/l)$()$(li)铯榴石: $(l:tfg_ores/earth_vein_index#normal_mica)15%$(/l)$()", + "text": "$(li)钕矿: $(l:tfg_ores/earth_vein_index#normal_monazite)6%$(/l)$()$(li)钙铝榴石: $(l:tfg_ores/earth_vein_index#normal_manganese)37%$(/l)$()$(li)钨酸锂: $(l:tfg_ores/earth_vein_index#deep_scheelite)35%$(/l)$()$(li)钴矿: $(l:tfg_ores/earth_vein_index#normal_garnierite)15%$(/l)$()$(li)钻石: $(l:tfg_ores/earth_vein_index#normal_graphite)25%$(/l)$()$(li)钼钨钙矿: $(l:tfg_ores/earth_vein_index#deep_molybdenum)17%$(/l)$()$(li)钼铅矿: $(l:tfg_ores/earth_vein_index#deep_molybdenum)47%$(/l), $(l:tfg_ores/earth_vein_index#deep_pitchblende)12%$(/l)$()$(li)钽铁矿: $(l:tfg_ores/earth_vein_index#normal_manganese)12%$(/l)$()$(li)铁铝榴石: $(l:tfg_ores/earth_vein_index#deep_sapphire)38%$(/l)$()$(li)铂矿: $(l:tfg_ores/earth_vein_index#deep_sheldonite)7%$(/l)$()$(li)铅矿: $(l:tfg_ores/earth_vein_index#normal_silver)55%$(/l), $(l:tfg_ores/earth_vein_index#normal_bismuthinite)11%$(/l), $(l:tfg_ores/earth_vein_index#surface_bismuthinite)7%$(/l)$()$(li)铍矿: $(l:tfg_ores/earth_vein_index#normal_beryllium)35%$(/l)$()$(li)铝土矿: $(l:tfg_ores/earth_vein_index#normal_mica)25%$(/l)$()$(li)铬铁矿: $(l:tfg_ores/earth_vein_index#deep_magnetite)33%$(/l), $(l:tfg_ores/earth_vein_index#normal_magnetite)4%$(/l)$()", "type": "patchouli:text" }, { "Type": "patchouli:text", - "text": "$(li)锂云母: $(l:tfg_ores/earth_vein_index#normal_salt)15%$(/l), $(l:tfg_ores/earth_vein_index#normal_spodumene)15%$(/l)$()$(li)锂矿: $(l:tfg_ores/earth_vein_index#deep_scheelite)20%$(/l)$()$(li)锂辉石: $(l:tfg_ores/earth_vein_index#normal_spodumene)35%$(/l)$()$(li)锡石矿: $(l:tfg_ores/earth_vein_index#surface_cassiterite)60%$(/l), $(l:tfg_ores/earth_vein_index#normal_cassiterite)40%$(/l), $(l:tfg_ores/earth_vein_index#surface_copper)5%$(/l)$()$(li)锡石矿砂: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)35%$(/l)$()$(li)锡矿: $(l:tfg_ores/earth_vein_index#normal_cassiterite)60%$(/l), $(l:tfg_ores/earth_vein_index#surface_cassiterite)40%$(/l)$()$(li)锰铝榴石: $(l:tfg_ores/earth_vein_index#normal_manganese)25%$(/l)$()$(li)镁铝榴石: $(l:tfg_ores/earth_vein_index#deep_sapphire)27%$(/l)$()$(li)镍矿: $(l:tfg_ores/earth_vein_index#normal_garnierite)10%$(/l)$()$(li)镍黄铁矿: $(l:tfg_ores/earth_vein_index#normal_garnierite)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_lubricant)15%$(/l)$()$(li)闪锌矿: $(l:tfg_ores/earth_vein_index#normal_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#surface_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#normal_sulfur)15%$(/l)$()$(li)雄黄: $(l:tfg_ores/earth_vein_index#surface_copper)16%$(/l)$()$(li)青金石: $(l:tfg_ores/earth_vein_index#normal_lapis)25%$(/l)$()$(li)黄玉: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()", + "text": "$(li)铯榴石: $(l:tfg_ores/earth_vein_index#normal_mica)15%$(/l)$()$(li)锂云母: $(l:tfg_ores/earth_vein_index#normal_salt)15%$(/l), $(l:tfg_ores/earth_vein_index#normal_spodumene)15%$(/l)$()$(li)锂矿: $(l:tfg_ores/earth_vein_index#deep_scheelite)20%$(/l)$()$(li)锂辉石: $(l:tfg_ores/earth_vein_index#normal_spodumene)35%$(/l)$()$(li)锡石矿: $(l:tfg_ores/earth_vein_index#surface_cassiterite)60%$(/l), $(l:tfg_ores/earth_vein_index#normal_cassiterite)40%$(/l), $(l:tfg_ores/earth_vein_index#surface_copper)5%$(/l)$()$(li)锡石矿砂: $(l:tfg_ores/earth_vein_index#normal_garnet_tin)35%$(/l)$()$(li)锡矿: $(l:tfg_ores/earth_vein_index#normal_cassiterite)60%$(/l), $(l:tfg_ores/earth_vein_index#surface_cassiterite)40%$(/l)$()$(li)锰铝榴石: $(l:tfg_ores/earth_vein_index#normal_manganese)25%$(/l)$()$(li)镁铝榴石: $(l:tfg_ores/earth_vein_index#deep_sapphire)27%$(/l)$()$(li)镍矿: $(l:tfg_ores/earth_vein_index#normal_garnierite)10%$(/l)$()$(li)镍黄铁矿: $(l:tfg_ores/earth_vein_index#normal_garnierite)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_lubricant)15%$(/l)$()$(li)闪锌矿: $(l:tfg_ores/earth_vein_index#normal_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#surface_sphalerite)40%$(/l), $(l:tfg_ores/earth_vein_index#normal_sulfur)15%$(/l)$()$(li)雄黄: $(l:tfg_ores/earth_vein_index#surface_copper)16%$(/l)$()$(li)青金石: $(l:tfg_ores/earth_vein_index#normal_lapis)25%$(/l)$()", "type": "patchouli:text" }, { "Type": "patchouli:text", - "text": "$(li)黄色石榴石: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)15%$(/l)$()$(li)黄褐铁矿: $(l:tfg_ores/earth_vein_index#normal_limonite)50%$(/l), $(l:tfg_ores/earth_vein_index#normal_hematite)30%$(/l), $(l:tfg_ores/earth_vein_index#normal_gold)20%$(/l), $(l:tfg_ores/earth_vein_index#deep_hematite)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_limonite)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_gold)5%$(/l)$()$(li)黄铁矿: $(l:tfg_ores/earth_vein_index#normal_sulfur)35%$(/l), $(l:tfg_ores/earth_vein_index#normal_sphalerite)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_copper)10%$(/l), $(l:tfg_ores/earth_vein_index#surface_sphalerite)5%$(/l)$()$(li)黄铜矿: $(l:tfg_ores/earth_vein_index#surface_copper)61%$(/l), $(l:tfg_ores/earth_vein_index#normal_copper)20%$(/l)$()$(li)黝铜矿: $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)60%$(/l), $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)50%$(/l)$()", + "text": "$(li)黄玉: $(l:tfg_ores/earth_vein_index#deep_topaz)25%$(/l)$()$(li)黄色石榴石: $(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_garnet_opal)15%$(/l)$()$(li)黄褐铁矿: $(l:tfg_ores/earth_vein_index#normal_limonite)50%$(/l), $(l:tfg_ores/earth_vein_index#normal_hematite)30%$(/l), $(l:tfg_ores/earth_vein_index#normal_gold)20%$(/l), $(l:tfg_ores/earth_vein_index#deep_hematite)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_limonite)15%$(/l), $(l:tfg_ores/earth_vein_index#deep_gold)5%$(/l)$()$(li)黄铁矿: $(l:tfg_ores/earth_vein_index#normal_sulfur)35%$(/l), $(l:tfg_ores/earth_vein_index#normal_sphalerite)25%$(/l), $(l:tfg_ores/earth_vein_index#normal_copper)10%$(/l), $(l:tfg_ores/earth_vein_index#surface_sphalerite)5%$(/l)$()$(li)黄铜矿: $(l:tfg_ores/earth_vein_index#surface_copper)61%$(/l), $(l:tfg_ores/earth_vein_index#normal_copper)20%$(/l)$()$(li)黝铜矿: $(l:tfg_ores/earth_vein_index#surface_tetrahedrite)60%$(/l), $(l:tfg_ores/earth_vein_index#normal_tetrahedrite)50%$(/l)$()", "type": "patchouli:text" } ], diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_ores/earth_vein_index.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_ores/earth_vein_index.json index 92c47d1b9..d5b8ed0d7 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_ores/earth_vein_index.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_ores/earth_vein_index.json @@ -14,22 +14,22 @@ }, { "Type": "patchouli:text", - "text": "$(li)$(l:tfg_ores/earth_vein_index#deep_pitchblende)晶质铀矿, 沥青铀矿$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_monazite)氟碳镧铈矿, 独居石$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_oilsands)油砂$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_coal)煤炭$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_scheelite)白钨矿, 钨酸锂$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_lubricant)皂石, 滑石, 天然碱$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_salt)盐, 硼砂$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_garnet_tin)石榴石, 锡石矿砂$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_gypsum)石膏, 方解石$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_quartz)石英$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_graphite)石墨, 钻石$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_basaltic_sands)矿砂$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_garnierite)硅镁镍矿, 辉钴矿$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_saltpeter)硝石, 蓝石$()$()", + "text": "$(li)$(l:tfg_ores/earth_vein_index#normal_tarkianite)塔基安矿, 油砂$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_pitchblende)晶质铀矿, 沥青铀矿$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_monazite)氟碳镧铈矿, 独居石$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_oilsands)油砂$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_coal)煤炭$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_scheelite)白钨矿, 钨酸锂$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_lubricant)皂石, 滑石, 天然碱$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_salt)盐, 硼砂$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_garnet_tin)石榴石, 锡石矿砂$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_gypsum)石膏, 方解石$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_quartz)石英$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_graphite)石墨, 钻石$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_basaltic_sands)矿砂$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_garnierite)硅镁镍矿, 辉钴矿$()$()", "type": "patchouli:text" }, { "Type": "patchouli:text", - "text": "$(li)$(l:tfg_ores/earth_vein_index#normal_sulfur)硫, 黄铁矿$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_sheldonite)硫铂矿, 斑铜矿$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_magnetite)磁铁矿, 钒$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_apatite)磷灰石, 烧绿石$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)紫水晶, 石榴石$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_redstone)红石, 朱砂, 红宝石$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_beryllium)绿宝石, 铍矿$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_olivine)膨润土, 橄榄石$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_sapphire)蓝宝石, 铁铝榴石$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_mica)蓝晶石, 云母, 铝土矿$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_garnet_opal)蛋白石, 石榴石$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_limonite)褐铁矿$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_hematite)赤铁矿, 褐铁矿$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_hematite)赤铁矿, 针铁矿, 红宝石$()$()", + "text": "$(li)$(l:tfg_ores/earth_vein_index#normal_saltpeter)硝石, 蓝石$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_sulfur)硫, 黄铁矿$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_sheldonite)硫铂矿, 斑铜矿$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_magnetite)磁铁矿, 钒$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_apatite)磷灰石, 烧绿石$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_garnet_amethyst)紫水晶, 石榴石$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_redstone)红石, 朱砂, 红宝石$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_beryllium)绿宝石, 铍矿$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_olivine)膨润土, 橄榄石$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_sapphire)蓝宝石, 铁铝榴石$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_mica)蓝晶石, 云母, 铝土矿$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_garnet_opal)蛋白石, 石榴石$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_limonite)褐铁矿$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_hematite)赤铁矿, 褐铁矿$()$()", "type": "patchouli:text" }, { "Type": "patchouli:text", - "text": "$(li)$(l:tfg_ores/earth_vein_index#surface_bismuthinite)辉铋矿 (地表)$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_bismuthinite)辉铋矿 (普通)$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_gold)金矿 (深层)$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_gold)金矿, 褐铁矿, 赤铁矿$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_limonite)针铁矿, 孔雀石$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_molybdenum)钼铅矿, 辉钼矿$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_copper)铜矿, 黄铜矿$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_magnetite)铬铁矿, 磁铁矿$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_silver)银矿, 方铅矿, 铅矿$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_spodumene)锂辉石, 锂云母$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_cassiterite)锡石矿 (地表)$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_cassiterite)锡石矿 (普通)$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_manganese)锰矿, 钽矿$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_sphalerite)闪锌矿, 硫$()$()", + "text": "$(li)$(l:tfg_ores/earth_vein_index#deep_hematite)赤铁矿, 针铁矿, 红宝石$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_bismuthinite)辉铋矿 (地表)$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_bismuthinite)辉铋矿 (普通)$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_gold)金矿 (深层)$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_gold)金矿, 褐铁矿, 赤铁矿$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_limonite)针铁矿, 孔雀石$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_molybdenum)钼铅矿, 辉钼矿$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_copper)铜矿, 黄铜矿$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_magnetite)铬铁矿, 磁铁矿$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_silver)银矿, 方铅矿, 铅矿$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_spodumene)锂辉石, 锂云母$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_cassiterite)锡石矿 (地表)$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_cassiterite)锡石矿 (普通)$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_manganese)锰矿, 钽矿$()$()", "type": "patchouli:text" }, { "Type": "patchouli:text", - "text": "$(li)$(l:tfg_ores/earth_vein_index#normal_sphalerite)闪锌矿, 黄铁矿$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_lapis)青金石, 蓝金石, 方钠石$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_topaz)黄玉, 辉铜矿$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_copper)黄铜矿, 雄黄$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_tetrahedrite)黝铜矿 (地表)$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_tetrahedrite)黝铜矿 (普通)$()$()", + "text": "$(li)$(l:tfg_ores/earth_vein_index#surface_sphalerite)闪锌矿, 硫$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_sphalerite)闪锌矿, 黄铁矿$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_lapis)青金石, 蓝金石, 方钠石$()$()$(li)$(l:tfg_ores/earth_vein_index#deep_topaz)黄玉, 辉铜矿$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_copper)黄铜矿, 雄黄$()$()$(li)$(l:tfg_ores/earth_vein_index#surface_tetrahedrite)黝铜矿 (地表)$()$()$(li)$(l:tfg_ores/earth_vein_index#normal_tetrahedrite)黝铜矿 (普通)$()$()", "type": "patchouli:text" }, { @@ -37,6 +37,98 @@ "draw_filler": true, "type": "patchouli:empty" }, + { + "Type": "patchouli:text", + "text": "$(thing)稀有度$(): 140$(br)$(thing)密度$(): 0.35$(br)$(thing)类型$(): 管状矿脉$(br)$(thing)Y 坐标$(): 20 — 120$(br)$(thing)高度$(): 60$(br)$(thing)半径$(): 10$(br)$(thing)指示器最大深度$(): 20$(br2)$(thing)岩石类型$(): 千枚岩, 大理岩, 安山岩, 板岩, 流纹岩, 燧石, 片岩, 片麻岩, 玄武岩, 白云岩, 白垩岩, 石灰岩, 石英岩, 砾岩, 粘土岩, 花岗岩, 英安岩, 辉长岩, 闪长岩, 页岩", + "title": "塔基安矿, 油砂", + "type": "patchouli:text", + "anchor": "normal_tarkianite" + }, + { + "Type": "patchouli:multiblock", + "name": "塔基安矿", + "multiblock": { + "mapping": { + "0": "#forge:ores/tarkianite" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)百分比$(): 35%$(br)$(thing)来源$(): 铼, 钼$(br)$(thing)化学式$(): CuFeRe₄Mo₄S₈", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:multiblock", + "name": "油砂", + "multiblock": { + "mapping": { + "0": "#forge:ores/oilsands" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)百分比$(): 35%$(br)$(thing)来源$(): 自由 \uD83D\uDEE2\uD83E\uDD85\uD83D\uDDFD", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:multiblock", + "name": "硼砂", + "multiblock": { + "mapping": { + "0": "#forge:ores/borax" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)百分比$(): 20%$(br)$(thing)来源$(): 钠, 硼$(br)$(thing)化学式$(): Na₂B₄(H₂O)₁₀O₇", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:multiblock", + "name": "天然碱", + "multiblock": { + "mapping": { + "0": "#forge:ores/trona" + }, + "pattern": [ + [ + "0" + ], + [ + " " + ] + ] + }, + "enable_visualize": false, + "text": "$(thing)百分比$(): 10%$(br)$(thing)来源$(): 钠$(br)$(thing)化学式$(): Na₃C₂H(H₂O)₂O₆", + "type": "patchouli:multiblock" + }, + { + "Type": "patchouli:empty", + "draw_filler": true, + "type": "patchouli:empty" + }, { "Type": "patchouli:text", "text": "$(thing)稀有度$(): 240$(br)$(thing)密度$(): 0.45$(br)$(thing)类型$(): 团簇状矿脉$(br)$(thing)Y 坐标$(): -64 — -20$(br)$(thing)尺寸$(): 19$(br)$(thing)指示器最大深度$(): 20$(br2)$(thing)岩石类型$(): 千枚岩, 大理岩, 板岩, 片岩, 片麻岩, 石英岩, 花岗岩, 辉长岩, 闪长岩", @@ -1805,7 +1897,7 @@ }, { "Type": "patchouli:text", - "text": "$(thing)稀有度$(): 190$(br)$(thing)密度$(): 0.25$(br)$(thing)类型$(): 团簇状矿脉$(br)$(thing)Y 坐标$(): 0 — 210$(br)$(thing)尺寸$(): 36$(br)$(thing)指示器最大深度$(): 40$(br2)$(thing)岩石类型$(): 千枚岩, 大理岩, 板岩, 片岩, 片麻岩, 石英岩, 花岗岩, 辉长岩, 闪长岩", + "text": "$(thing)稀有度$(): 190$(br)$(thing)密度$(): 0.25$(br)$(thing)类型$(): 团簇状矿脉$(br)$(thing)Y 坐标$(): 0 — 210$(br)$(thing)尺寸$(): 36$(br)$(thing)指示器最大深度$(): 60$(br2)$(thing)岩石类型$(): 千枚岩, 大理岩, 板岩, 片岩, 片麻岩, 石英岩, 花岗岩, 辉长岩, 闪长岩", "title": "蓝晶石, 云母, 铝土矿", "type": "patchouli:text", "anchor": "normal_mica" diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_ores/hazards.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_ores/hazards.json new file mode 100644 index 000000000..b1acd8911 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_ores/hazards.json @@ -0,0 +1,95 @@ +{ + "name": "危险材料", + "icon": "createdeco:decal_skull", + "category": "tfc:tfg_ores", + "priority": true, + "sortnum": 1, + "read_by_default": true, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "危险材料", + "item": "gtceu:cobaltite_dust", + "text": "某些矿石和粉尘具有危险性,若存放在物品栏中可能会对你造成负面效果甚至致命伤害。$(br2)特定装备如$(thing)口罩$()、$(thing)手套$()以及后续的$(thing)防化服$()可用于抵御这些效果。" + }, + { + "type": "patchouli:crafting", + "title": "口罩", + "recipe": "gtceu:shaped/face_mask", + "text": "$(thing)口罩$()能抵御所有$(item)吸入性$()危害,例如砷中毒。" + }, + { + "type": "patchouli:spotlight", + "item": "gtceu:rubber_gloves", + "title": "橡胶手套", + "link_recipes": true, + "text": "橡胶手套可由$(l:mechanics/leather_making)皮革$()与$(l:arborfirmacraft/making_rubber)乳胶$()制作,或直接使用橡胶片合成。它们能防护所有$(item)皮肤接触$()类危害,例如铍中毒。" + }, + { + "type": "tfc:knapping_recipe", + "recipe": "tfchotornot:leather_knapping/mittens", + "text": "首先,把皮革剥制成连指手套。" + }, + { + "type": "tfc:sealed_barrel_recipe", + "recipe": "tfg:sealed_barrel/prepared_leather_gloves", + "text": "将连指手套浸入由水果与酒精混合而成的$(thing)醋$()中。" + }, + { + "type": "patchouli:spotlight", + "item": "tfg:latex_soaked_gloves", + "text": "将处理过的皮革手套与$(thing)硫化乳胶$()一同在$(thing)锅$()中加热,此时距制成橡胶手套仅一步之遥。" + }, + { + "type": "patchouli:spotlight", + "item": "gtceu:rubber_gloves", + "text": "最后,将浸胶手套放入$(l:firmalife/oven)烤炉$()中加热定型。" + }, + { + "type": "patchouli:spotlight", + "title": "岩石策略", + "item": { + "tag": "tfc:rock_knapping" + }, + "text": "避免危险物品进入物品栏的最简单方法就是根本不拾取它们。$(br)例如,用$(thing)石头$()填满物品栏后,你可以选择性拾取所需物品,留待之后统一处理危险物资。" + }, + { + "type": "patchouli:spotlight", + "title": "容器隔离", + "text": "危险材料仅当存放在$(thing)物品栏$()时才会造成伤害,其他容器则不受此影响!$(br)当危险材料存放在$(l:tfg_tips/inventory_management)背包$()或$(l:getting_started/pottery#vessel)大缸$()等容器中时不会造成伤害。手持大缸时$(thing)右键点击$()可直接与容器进行物品转移。", + "item": "sophisticatedbackpacks:backpack,tfc:ceramic/vessel,tfc:ceramic/large_vessel" + }, + { + "type": "patchouli:spotlight", + "title": "温泉疗愈", + "item": "tfc:bucket/spring_water", + "text": "站立于$(thing)温泉$()中可获得缓慢的$(thing)生命恢复$()效果。" + }, + { + "type": "patchouli:spotlight", + "title": "陈酿酒", + "text": "$(thing)陈酿酒$()会提供药水增益效果,其中部分可能对你大有裨益。$(br2)你可以使用$(l:getting_started/pottery#jug)陶壶$()或$(l:waterflasks/recipes)水壶$()饮用它们。", + "item": "tfcagedalcohol:bucket/aged_beer,tfcagedalcohol:bucket/aged_cider,tfcagedalcohol:bucket/aged_rum,tfcagedalcohol:bucket/aged_sake,tfcagedalcohol:bucket/aged_vodka,tfcagedalcohol:bucket/aged_whiskey,tfcagedalcohol:bucket/aged_corn_whiskey,tfcagedalcohol:bucket/aged_rye_whiskey" + }, + { + "type": "patchouli:text", + "text": "陈酿啤酒:伤害吸收 II (20:00)$(br2)陈酿苹果酒:速度 (5:20)$(br2)陈酿朗姆酒:速度 II (2:40)$(br2)陈酿清酒:抗性提升 (5:20)$(br2)陈酿伏特加:抗性提升 II (2:40)$(br2)陈酿玉米威士忌:急迫 (5:20)$(br2)陈酿黑麦威士忌:急迫 (5:20)$(br2)陈酿威士忌:急迫 II (2:40)" + }, + { + "type": "patchouli:spotlight", + "item": { + "tag": "tfc:foods" + }, + "title": "营养均衡", + "text": "食用更高$(l:getting_started/food_and_water#nutrients)营养价值$()的优质食物可显著提升生命值上限。$(br2)$(l:mechanics/pot#soup)汤$()、$(l:mechanics/sandwiches)三明治$()与$(l:mechanics/salad)沙拉$()是绝佳选择。" + }, + { + "type": "patchouli:spotlight", + "title": "随身床铺", + "item": { + "tag": "minecraft:beds" + }, + "text": "若所有防护措施均失效,随身携带床铺用于重生是个明智之举。$(br2)若无法获取$(thing)羊毛$()或$(thing)线$(),你也可以制作$(l:getting_started/a_place_to_sleep)茅草床$()。" + } + ] +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_ores/ore_basics.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_ores/ore_basics.json new file mode 100644 index 000000000..e57b38e59 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_ores/ore_basics.json @@ -0,0 +1,47 @@ +{ + "name": "在TFG中采矿", + "icon": "minecraft:diamond_pickaxe", + "category": "tfc:tfg_ores", + "priority": true, + "sortnum": 0, + "pages": [ + { + "type": "patchouli:text", + "text": "开采矿石需要$(thing)镐子$()或$(thing)采矿锤$()。$(br2)普通$(thing)锤子$()也能快速破坏石质方块,但不会掉落矿石。不过它在$(l:getting_started/primitive_anvils#raw_rock)提取$()石材方面仍有实用价值。" + }, + { + "type": "patchouli:crafting", + "recipe": "gtceu:shaped/pickaxe_copper", + "recipe2": "gtceu:shaped/mining_hammer_copper" + }, + { + "type": "patchouli:spotlight", + "title": "镐子", + "text": "用镐破坏矿石会掉落$(thing)粗矿石$()(贫瘠、普通或富集)以及少量石粉。单次产出虽不值多少mB,且需要多份原料才能制成一块锭,但$(thing)煤炭$()等矿物仅能以此形态直接使用。", + "item": { + "tag": "minecraft:pickaxes" + } + }, + { + "type": "patchouli:spotlight", + "title": "采矿锤", + "text": "这本质上是具备3x3范围采集的镐,同样会产出$(thing)粗矿石$()。在敲落矿石后清理岩层时尤其高效!$(br2)按住$(thing)潜行$()可切换为单格采集模式。", + "item": { + "tag": "forge:tools/mining_hammers" + } + }, + { + "type": "patchouli:spotlight", + "title": "基础矿石处理", + "anchor": "processing", + "item": "gtceu:crushed_copper_ore", + "text": "对矿石进行加工能大幅提升可用金属产量。首要步骤是使用$(l:mechanics/quern)手推磨$()粉碎粗矿石。后续可通过升级设备实现自动化处理,例如$(thing)石磨$()、$(thing)粉碎轮$()、$(thing)研磨机$()及$(thing)锻造锤$()。" + }, + { + "type": "patchouli:crafting", + "title": "粉尘提纯", + "recipe": "gtceu:shapeless/crushed_ore_to_dust_copper", + "text": "欲使粉碎后的矿石熔炼产出更多mB,需先将其与$(thing)锤$()在合成格内组合,制得$(thing)不纯粉尘$()。随后将粉尘投入水中,或对盛水$(thing)大锅$()按下$(item)$(k:key.use)$()即可完成提纯。" + } + ] +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_tips/anvil_working_guide.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_tips/anvil_working_guide.json new file mode 100644 index 000000000..dd70611b6 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_tips/anvil_working_guide.json @@ -0,0 +1,174 @@ +{ + "name": "砧具锻造指南", + "icon": "gtceu:red_steel_hammer", + "category": "tfc:tfg_tips", + "read_by_default": true, + "priority": false, + "pages": [ + { + "type": "patchouli:text", + "title": "砧具锻造", + "text": "在$(l:mechanics/anvils)砧具$()中$(l:mechanics/anvils#working)锻造$()是$(thing)群峦格雷$()整合包中的一个核心流程,你在迈向$(thing)蒸汽与机械时代$()过程中的大部分工作都需在$(l:mechanics/anvils)砧具$()上完成。$(br)本指南分为两部分:$(l:tfg_tips/anvil_working_guide#ui_explained)理解界面$()与$(l:tfg_tips/anvil_working_guide#how_to_perfectly_forge)如何完美锻造$()。$(br2)整合包配有名为$(l:https://www.curseforge.com/minecraft/texture-packs/tfc-anvil-helper)TFC Anvil Helper$()的自定义$(thing)资源包$(),请务必启用以确保本指南内容正常显示。$()" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/anvil_working_guide/anvil_ui.png" + ], + "border": false, + "text": "启用TFC Anvil Helper后的砧具界面" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/anvil_working_guide/anvil_ui_marked.png" + ], + "border": false, + "anchor": "ui_explained", + "tile": "界面详解", + "text": "启用TFC Anvil Helper后的砧具界面(颜色标识版)。" + }, + { + "type": "patchouli:text", + "text": "$(#ff0000)1.$() 你在砧上选择制作的物品。每个物品都有特定的$(#be00ff)步骤序列$()和$(#ff6b00)目标加工量$()要求。$(br)$(#ff00c6)2.$() 你正在加工的输入物品。$(br)$(#be00ff)3.$() 物品完成前必须按顺序执行的步骤序列。共有4种序列类型(详见下页):" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/anvil_working_guide/anvil_ui_marked.png" + ], + "border": false + }, + { + "type": "patchouli:text", + "text": "(注意:X 是任意步骤的通配符)$(br)$(li)x_任意: 步骤可以在最后3个动作中的任意一个发生。$()$(li)x_末尾: 必须是最后一个执行的步骤。$()$(li)x_非最末: 步骤不能是最后一个执行的步骤。$()$(li)x_倒数第二: 必须是倒数第二个步骤。$()$(li)x_倒数第三: 必须是倒数第三个步骤$()" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/anvil_working_guide/anvil_ui_marked.png" + ], + "border": false + }, + { + "type": "patchouli:text", + "text": "$(#2e00ff)4.$()步骤类型。每种类型都会增加或减少当前加工值。从左至右、从上到下依次为:$(li)轻击:-3$()$(li)中击:-6$()$(li)冲压:+2$()$(li)弯曲:+7$()$(li)重击:-9$()$(li)牵拉:-15$()$(li)镦锻:+13$()$(li)收缩:+16$()" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/anvil_working_guide/anvil_ui_marked.png" + ], + "border": false + }, + { + "type": "patchouli:text", + "text": "$(#00a7ff)5.$() 放置锤子和助焊剂(焊接时使用)的槽位。$(br)$(#00ff26)6. $()物品当前的加工量。执行不同步骤会增加或减少此值。$(br)$(#fff400)7. $()目标加工值。$(#00ff26)当前加工量$()必须$(bold)精确$()等于目标值,且完成所有$(#ff00c6)必需步骤$(),物品才算制作完成。$(br)$(#ff6b00)8. $()加工量进度条,用于比对当前加工量与目标加工量。" + }, + { + "type": "patchouli:text", + "anchor": "how_to_perfectly_forge", + "title": "如何完美锻造", + "text": "$(thing)完美锻造$()一个会损耗的物品,比如$(thing)工具头$()、$(thing)武器$()和$(thing)护甲$(),若以更少的步骤完成,成品将获得耐久度和效率上的加成。在极少步骤内完成锻造的物品会成为完美锻造成品,不仅提升最终品质,还能减少锤子本身的磨损。" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/anvil_working_guide/perfectly_forged_item.png" + ], + "border": false, + "text": "一个完美锻造的锻铁镐头" + }, + { + "type": "patchouli:spotlight", + "title": "锻造指南", + "item": "gtceu:wrought_iron_pickaxe_head", + "text": "这部分指南将以锻铁镐头为例,介绍如何达成完美锻造。$(br2)$(bold)$(italic)免责声明:$()$(br)虽然在群峦格雷所有世界中,物品的必需步骤和序列是固定的,但$(bold)目标加工值$()因世界种子而异。因此本指南假设锻铁镐头的目标加工值是$(bold)83$()。" + }, + { + "type": "patchouli:empty" + }, + { + "type": "patchouli:text", + "title": "第一步", + "text": "首先,将所有必需步骤的数值相加,得到我们称之为\"必需加工量\"的值。镐头需要以下步骤:$(li)$(bold)冲压$() 末尾$()$(li)$(bold)弯曲$() 非最末$()$(li)$(bold)牵拉$() 非最末$()。$(br)将这些步骤的数值相加:$(br)$(bold)2 (冲压) + 7 (弯曲) + (-15) (牵拉) = -6$()" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/anvil_working_guide/steps.png" + ], + "text": "制作镐头所需的步骤" + }, + { + "type": "patchouli:text", + "title": "第二步", + "text": "我们的主要目标是将加工量对齐目标值,但同时必须满足步骤序列的要求。因此,直接对齐加工量与目标值并不可行。我们需要根据目标加工值和\"必需加工量\"计算出一个中间值。" + }, + { + "type": "patchouli:text", + "text": "此值的计算方法取决于\"必需加工量\"的正负:$(li)若\"必需加工量\"为正值$()$(li2)从\"目标加工值\"中减去\"必需加工量\"的绝对值$()$(li3)83 - 6 == $(bold)77$()$()$(li)若\"必需加工量\"为负值$()$(li2)将\"必需加工量\"的绝对值加到\"目标加工值\"上$()$(li3)83 + 6 = $(bold)89$()$()" + }, + { + "type": "patchouli:text", + "text": "本例中\"必需加工值\"为 -6,故中间值为 $(bold)89$()。$(br)你可能会问,如何获知精确的目标加工值?砧具界面的进度条会显示。刻度线虽只显示20的倍数,但可通过颜色判断:$(li)浅灰色:代表5的倍数$()$(li)灰色:代表奇数$()$(li)深灰色:代表偶数$()" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/anvil_working_guide/work_bar_numbers.png", + "tfg:textures/gui/field_guide/anvil_working_guide/target_work_for_wrought_iron_pickaxe_head.png" + ] + }, + { + "type": "patchouli:text", + "title": "第三步", + "text": "有了从\"目标加工值\"和\"必需加工值\"推导出的中间值后,我们需要通过锻造使加工量达到这个值。你可以通过手动累加各步骤的数值来完成,或直接参考界面进度条上的\"速查表\"(每种颜色对应一种步骤类型)。$(br)例如:红色 = 收缩 (+16)" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/anvil_working_guide/work_bar_cheat_sheet.png" + ], + "text": "16 + 16 + 16 + 16 + 16 + 7 + 2 = 89" + }, + { + "type": "patchouli:text", + "title": "第四步", + "text": "了解步骤组合后,开始将加工值推进到中间值。对于目标值为83的镐头,需先达到89。因此,我们执行:(收缩 x 5) -> 弯曲 -> 冲压。$(br2)当加工值达到中间值后,严格按必需步骤序列执行:牵拉 -> 弯曲 -> 冲压。搞定!我们成功获得了完美锻造的物品!" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/anvil_working_guide/wrought_iron_pickaxe_head_no_work.png", + "tfg:textures/gui/field_guide/anvil_working_guide/wrought_iron_pickaxe_head_some_work.png", + "tfg:textures/gui/field_guide/anvil_working_guide/wrought_iron_pickaxe_head_complete.png" + ], + "text": "未加工的锭 -> 达到目标中间值 -> 执行物品必需步骤后的效果" + }, + { + "type": "patchouli:text", + "title": "其他示例", + "text": "我们再看板材和杆的例子。请注意,目标加工值因世界种子而异,你在游戏中的数值会有所不同。$(br)板材目标值:$(bold)111$()$(br)必需步骤:轻击 x 3(任意顺序)。$(br)\"必须加工值\": -3 x 3 = -9$(br)中间值:111 + 9 = 120。$(br)达成中间值:(收缩 x 5)->(镦锻 x 2)->(冲压 x 2)$(br)完成物品:120 - (轻击 x 3) = $(bold)111$()。两项要求均已满足。" + }, + { + "type": "patchouli:text", + "text": "杆目标值:$(bold)78$()$(br)必需步骤:延展->延展->弯曲$(br)\"必需加工值\": (-15 x 2) + 7 = -23$(br)中间值:78 + 23 = 101。$(br)达成中间值:(收缩 x 5)->(弯曲 x 3)$(br)完成物品:101 - 15 - 15 + 7 = 78。" + }, + { + "type": "patchouli:text", + "title": "其他提示", + "text": "如果某个必需步骤显示为空,则表示这是一个通配符,可以使用任何步骤。$(br2)如果计算失误,你可以随时将物品熔化成锭,这将移除物品的\"已加工\"标签,让你可以重新尝试完美锻造。" + }, + { + "type": "patchouli:empty" + }, + { + "type": "patchouli:empty" + }, + { + "type": "patchouli:text", + "text": "恭喜你阅读完本指南!如果你是贡献者并想重新截取本指南的图片,编写时使用的种子是:$(bold)-7291708953208913102$()。你也可以创建一个创造模式世界来亲自测试算法!$(br2)$(br)另外……既然你都读到这里了,如果不想手动计算,可以随时使用这个$(l:https://adrianmiller99.github.io/tfg-anvil-calculator/src/index.html)群峦传说砧计算器$()……" + } + ] +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_tips/blast_furnace_tips.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_tips/blast_furnace_tips.json new file mode 100644 index 000000000..c4fcfc9da --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_tips/blast_furnace_tips.json @@ -0,0 +1,42 @@ +{ + "name": "高炉使用技巧", + "icon": "tfc:blast_furnace", + "category": "tfc:tfg_tips", + "read_by_default": true, + "pages": [ + { + "type": "patchouli:text", + "title": "群峦传说高炉技巧", + "text": "你终于找到$(item)高岭土$()了,是不是正在激动地准备建造一座五层$(thing)高炉$()了?在你大展身手前,这里有些实用建议!" + }, + { + "type": "patchouli:spotlight", + "item": "gtceu:compressed_fireclay", + "text": "在将耐火黏土全部用于制作20块耐火砖前,请注意:进入蒸汽时代后,你可通过$(item)压缩耐火黏土$()(需要蒸汽机器制备黏土粉)仅用黏土制作耐火砖。这能让你节省$(item)高岭土$()与$(item)石墨$()用于制作$(thing)铸造台$()。" + }, + { + "type": "patchouli:spotlight", + "title": "预热金属", + "item": "tfc:firepit", + "text": "要把铁转化为钢,高炉需将内部铁料加热至$(thing)亮白$()。首次运行时,金属会随高炉一同升温。但后续操作即使炉温已达标,仍需重新从冷态加热金属,因此耗时基本不变。" + }, + { + "type": "patchouli:text", + "text": "若金属在加入高炉时已预热,则达到亮白色所需时间将缩短。建议将金属先在$(l:tfc:mechanics/charcoal_forge)木炭炉$()中加热,再投入已预热的高炉以节省时间——对于每次处理量较小的小型高炉尤为有效。" + }, + { + "type": "patchouli:spotlight", + "title": "自动化生产", + "item": "greate:steel_mechanical_pump", + "text": "你在$(thing)蒸汽时代$()与$(thing)低压时代$()将需要大量$(item)钢$()——非常大量的钢。$(thing)电力高炉$()尚遥遥无期,不妨考虑优化当前的炼钢产线。" + }, + { + "type": "patchouli:text", + "text": "你可以使用机械动力的$(item)动力泵$()直接从高炉泵出液态金属。将其导入$(l:tfc:tfcchannelcasting/channel_casting)铸造台$()后,用漏斗或溜槽提取锭——轻松实现自动化!$(br2)还可使用$(item)机械手$()自动拉动风箱!但需注意:过度使用风箱会加速燃料消耗并加快$(thing)吹风管$()的损坏速度。$(br2)产出的$(item)生铁$()与$(item)高碳钢$()可通过$(thing)锻造锤$()进行加工。" + }, + { + "type": "patchouli:text", + "text": "你可以用朝向高炉的漏斗自动替换破损的风管。" + } + ] +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_tips/faqs.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_tips/faqs.json new file mode 100644 index 000000000..5cdd2e8af --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_tips/faqs.json @@ -0,0 +1,47 @@ +{ + "name": "常见问题解答", + "icon": "minecraft:spyglass", + "category": "tfc:tfg_tips", + "read_by_default": true, + "priority": true, + "pages": [ + { + "type": "patchouli:text", + "title": "FAQs", + "text": "卡住了?请先查阅本书与任务说明,若仍未解决,欢迎在我们的$(l:https://discord.com/invite/AEaCzCTUwQ)Discord$()或$(l:https://www.reddit.com/r/TerraFirmaGreg)Subreddit$()提问!" + }, + { + "type": "patchouli:text", + "text": "$(li)$(l:tfg_tips/faqs#boats)我的船为什么会沉?$()$(li)$(l:tfg_tips/faqs#dried_fruit)如何制作酵母起子?$()$(li)$(l:tfg_tips/faqs#dried_fruit)如何制作菠萝纤维?$()$(li)$(l:tfg_tips/faqs#jam)如何制作果酱?$()$(li)$(l:tfg_tips/faqs#resin)如何制作橡胶?$()$(li)$(l:tfg_tips/faqs#chunks)如何强制加载区块或提升加载上限?$()" + }, + { + "type": "patchouli:text", + "anchor": "boats", + "text": "$(italic)我的船为什么会沉?$()$(br2)请在陆地上建造船只,随后推动或使用$(item)拴绳$()将其送入水域。若船只已沉没,节哀顺变——重造一艘吧。" + }, + { + "type": "patchouli:text", + "anchor": "dried_fruit", + "text": "$(italic)如何制作酵母起子或菠萝纤维?$()$(br2)请先使用$(item)干燥垫$()将水果晒干,随后按照$(l:firmalife/bread)面包$()或$(l:firmalife/berry_bushes)菠萝布$()章节的步骤操作。" + }, + { + "type": "patchouli:text", + "anchor": "jam", + "text": "$(italic)如何制作果酱?$()$(br2)使用$(l:firmalife/oven_appliances#vat)锅$()最为便捷。参照该章节流程操作时请注意:除非需要自动化生产,否则无需制作$(thing)装罐台$()或$(thing)罐盖$()。直接手持空罐右键点击盛有$(thing)果汁液体$()的锅,再次右键即可取得封装完成的果酱。$(br2)务必使用$(item)$(k:sneak)$() + $(item)$(k:use)$()为锅$(bold)盖上盖子$()!" + }, + { + "type": "patchouli:text", + "anchor": "chunks", + "text": "$(italic)如何强制加载区块?$()$(br2)按下$(item)$(k:key.ftbchunks.claim_manager)$()打开地图,按住Shift左键点击区块即可申领。Shift右键点击取消申领。$(br2)若需提升强制加载上限,使用指令$(item)/ftbchunks admin extra_force_load_chunks @p set X$(),其中X为新上限值。" + }, + { + "type": "patchouli:text", + "anchor": "resin", + "text": "$(italic)如何制作橡胶?$()$(br2)黏性树脂不再是你的目标!请先种植若干产$(thing)乳胶$()的树木并制作$(thing)树汁导管$()。将树汁导管安装在树干上(单棵树安装多个树汁导管只会分流产量)。通过$(tfc:mechanics/barrels)木桶$()收集渗出的乳胶。" + }, + { + "type": "patchouli:text", + "text": "最快的方式是在$(l:firmalife/oven_appliances#vat)锅$()中烹炼乳胶:将乳胶与$(item)硫磺粉$()(将格雷科技硫粉放入手推磨获取)放入锅中,加热后使用$(item)$(k:sneak)$() + $(item)$(k:use)$()$(bold)盖上锅盖$()。得到$(thing)硫化乳胶$()后,放入$(thing)真空腔室$()处理即可获得期盼已久的橡胶!$(br2)后续阶段,$(thing)LV离心机$()可直接从产乳胶树木的原木中提取$(thing)生橡胶末$()。" + } + ] +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_tips/inventory_management.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_tips/inventory_management.json new file mode 100644 index 000000000..45bee264f --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_tips/inventory_management.json @@ -0,0 +1,52 @@ +{ + "name": "物品管理", + "category": "tfc:tfg_tips", + "icon": "minecraft:chest", + "read_by_default": true, + "pages": [ + { + "type": "patchouli:text", + "title": "物品管理", + "text": "你已经有几个 $(l:getting_started/pottery#vessel)小缸$() 和一些 $(item)木制箱子$(),但还是堆满了不知该怎么处理的物品。下一步该做什么?$(br2)一个 $(thing)背包$() 可以在基础等级时让你的随身物品栏翻倍,而后续升级还能进一步增加容量!" + }, + { + "type": "patchouli:crafting", + "recipe": "tfg:sophisticated_backpacks/shaped/backpack", + "text": "背包可以携带多个重型物品,也包括像原木堆这样大的物品,而不会让你被限制移动速度。$(br2)你甚至可以用 $(thing)合成升级模块$() 将一个工作台随身携带,走到哪用到哪。" + }, + { + "type": "patchouli:text", + "title": "板条箱", + "anchor": "crates", + "text": "在存储方面,格雷科技提供了$(item)板条箱$(),可容纳背包能存放的所有大型物品,且不同等级的板条箱容量逐级提升。$(br2)若需搭建基础分类系统,可为板条箱安装$(thing)物品过滤卡$()与$(thing)标签过滤卡$()。$(br2)需注意$(thing)物品管道$()不会主动抽取物品,需配合$(thing)溜槽$()或$(thing)漏斗$()将物品推入管道。" + }, + { + "type": "patchouli:crafting", + "recipe": "gtceu:shaped/wooden_crate", + "recipe2": "gtceu:shaped/bronze_crate" + }, + { + "type": "patchouli:text", + "title": "桶", + "anchor": "drums", + "text": "在流体存储方面,格雷科技提供了$(item)桶$()。与板条箱类似,不同等级的桶可容纳单一流体的容量逐级提升。$(br2)与板条箱不同的是,桶被破坏时将保留内部流体,非常适合转移流体物资。$(br2)使用$(thing)软木槌$()右键点击桶可使其自动从底部面输出流体。" + }, + { + "type": "patchouli:crafting", + "recipe": "gtceu:shaped/bronze_drum", + "text": "把桶放在合成格中可清空其内容物。" + }, + { + "type": "patchouli:spotlight", + "item": "gtceu:lv_super_chest,gtceu:lv_super_tank", + "title": "超级存储", + "text": "你是否正在以工业规模生产某种物品?格雷科技的$(thing)超级箱$()与$(thing)超级缸$()可存储海量的单类物品,并能自动清除溢出部分。" + }, + { + "type": "patchouli:spotlight", + "title": "应用能源 2", + "item": "ae2:drive", + "text": "在 $(thing)HV$() 阶段后解锁,AE2 能提供你想要的所有存储和物流解决方案。" + } + ] +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_tips/space_crops.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_tips/space_crops.json new file mode 100644 index 000000000..aa0245291 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_tips/space_crops.json @@ -0,0 +1,574 @@ +{ + "name": "外星作物", + "category": "tfc:tfg_tips", + "icon": "betterend:textures/item/blossom_berry.png", + "pages": [ + { + "type": "patchouli:text", + "title": "外星作物", + "text": "事实证明,地球并不是唯一有生命的天体。在你的旅途中,你可能会遇到其他可以食用的生物。在地球上,它们都有你所熟悉的相同机制(有一些例外),可以根据你的需要在普通农田、$(thing)Firmalife$() $(l:firmalife/greenhouse)温室$()或$(thing)格雷科技$()电力温室中种植。" + }, + { + "type": "patchouli:text", + "text": "$(thing)空气分配器$()也会使一个封闭区域保持稳定的15°C。由于技术原因,在其他行星上无法在Jade信息提示中显示此温度,因此你只能使用物品栏的气候标签来查看温度。$(br2)另一个选择是使用$(thing)Firmalife$()的温室,它没有那么多产出,但也无视所有的气候条件。" + }, + { + "type": "patchouli:text", + "title": "紫颂果", + "text": "$(bold)位置$():月球$(br)$(bold)生物群系$():紫颂森林, 紫颂灌木丛$(br2)紫颂植株以高大的形态生长。破坏茎部不会产生任何东西,而破坏顶部的花朵会产生紫颂果或紫颂花。$(br)紫颂果可以作为$(thing)水果$()食用,烹饪后作为$(item)爆裂紫颂果$()食用,或者可以蒸馏成$(thing)氮气$()。$(br)" + }, + { + "type": "patchouli:multiblock", + "multiblock": { + "pattern": [ + [ + "Z " + ], + [ + "V D" + ], + [ + "EXB" + ], + [ + " V " + ], + [ + " 0 " + ] + ], + "mapping": { + "0": "ad_astra:moon_sand", + "V": "tfg:lunar_chorus_plant[down=true,up=true]", + "E": "tfg:lunar_chorus_plant[south=true,up=true]", + "X": "tfg:lunar_chorus_plant[north=true,down=true,south=true]", + "B": "tfg:lunar_chorus_plant[north=true,up=true]", + "D": "tfg:lunar_chorus_flower[age=5]", + "Z": "tfg:lunar_chorus_flower[age=0]" + } + }, + "text": "$(thing)紫颂花$() 也可以通过手动种在沙砾或沙子上生长", + "enable_visualize": false + }, + { + "type": "patchouli:text", + "title": "琥珀根", + "text": "$(bold)位置$():火星$(br)$(bold)$(l:the_world/climate#temperature)温度$():-150 - 15 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():0 - 40 %$(br)$(bold)营养物质$():磷$(br2)琥珀根是单方块作物。琥珀新芽种子可以种植在农田上,会产生$(item)琥珀新芽$(),可以作为$(thing)谷物$()食用。" + }, + { + "type": "tfc:multimultiblock", + "multiblocks": [ + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:amber_root[age=0]", + "Z": "tfg:grass/mars_farmland" + } + }, + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:amber_root[age=1]", + "Z": "tfg:grass/mars_farmland" + } + }, + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:amber_root[age=2]", + "Z": "tfg:grass/mars_farmland" + } + }, + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:amber_root[age=3]", + "Z": "tfg:grass/mars_farmland" + } + } + ], + "text": "$(thing)野生琥珀根$() 会在所有气候中,在琥珀菌丝和红锈菌丝上生长。", + "enable_visualize": false + }, + { + "type": "patchouli:text", + "text": "$(bold)位置$():火星$(br)$(bold)$(l:the_world/climate#temperature)温度$():-150 - 15 °C$(br)$(bold)$(l:mechanics/hydration)湿度$():0 - 40 %$(br)$(bold)营养物质$():磷$(br2)百花果是单方块作物。百花果树种可以种植在农田上,会产出$(item)百花果$(),可以作为$(thing)水果$()食用。", + "title": "百花果" + }, + { + "type": "tfc:multimultiblock", + "multiblocks": [ + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:blossom_berry[age=0]", + "Z": "tfg:grass/mars_farmland" + } + }, + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:blossom_berry[age=1]", + "Z": "tfg:grass/mars_farmland" + } + }, + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:blossom_berry[age=2]", + "Z": "tfg:grass/mars_farmland" + } + }, + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:blossom_berry[age=3]", + "Z": "tfg:grass/mars_farmland" + } + } + ], + "text": "$(thing)野生百花果$() 会在所有气候中,在琥珀菌丝、红锈菌丝或赤血菌丝上生长。" + }, + { + "type": "patchouli:text", + "text": "$(bold)位置$(): 火星$(br)$(bold)$(l:the_world/climate#temperature)温度$(): -150 - 15 °C$(br)$(bold)$(l:mechanics/hydration)湿度$(): 0 - 40 %$(br)$(bold)营养物质$(): 磷$(br2)波鲁克斯菌 是单方块作物。波鲁克斯菌孢子可以种植在农田上,会产出$(item)波鲁克斯菌$(),可以作为$(thing)蔬菜$()食用。$(br2)建议在食用前$(item)烹饪$() 波鲁克斯菌。", + "title": "波鲁克斯菌" + }, + { + "type": "tfc:multimultiblock", + "multiblocks": [ + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:bolux_mushroom[age=0]", + "Z": "tfg:grass/mars_farmland" + } + }, + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:bolux_mushroom[age=1]", + "Z": "tfg:grass/mars_farmland" + } + }, + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:bolux_mushroom[age=2]", + "Z": "tfg:grass/mars_farmland" + } + }, + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:bolux_mushroom[age=3]", + "Z": "tfg:grass/mars_farmland" + } + } + ], + "text": "$(thing)野生波鲁克斯菌丛$() 会在所有气候中,在琥珀菌丝、红锈菌丝或赤血菌丝上生长。" + }, + { + "type": "patchouli:text", + "text": "$(bold)位置$(): 火星$(br)$(bold)$(l:the_world/climate#temperature)温度$(): -100 - 30 °C$(br)$(bold)$(l:mechanics/hydration)湿度$(): 0 - 60 %$(br)$(bold)营养物质$(): 氮$(br2)球茎南瓜 是会伸展的作物。球茎南瓜种子可以种植在农田上,并且当它成熟时,会在它旁边的地上放置最多两个$(item)球茎南瓜方块$()。如果球茎南瓜方块被收获,并且球茎藤重新成熟,它可以长出更多球茎南瓜。球茎南瓜可以作为$(thing)水果$()食用,或者用来生产萤石粉。", + "title": "球茎南瓜" + }, + { + "type": "tfc:multimultiblock", + "multiblocks": [ + { + "pattern": [ + [ + " ", + " C ", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfg:grass/mars_farmland", + "0": "tfg:grass/mars_farmland", + "C": "betterend:cave_pumpkin_plant[age=0]" + } + }, + { + "pattern": [ + [ + " ", + " C ", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfg:grass/mars_farmland", + "0": "tfg:grass/mars_farmland", + "C": "betterend:cave_pumpkin_plant[age=1]" + } + }, + { + "pattern": [ + [ + " ", + " C ", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfg:grass/mars_farmland", + "0": "tfg:grass/mars_farmland", + "C": "betterend:cave_pumpkin_plant[age=2]" + } + }, + { + "pattern": [ + [ + " ", + " C ", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfg:grass/mars_farmland", + "0": "tfg:grass/mars_farmland", + "C": "betterend:cave_pumpkin_plant[age=3]" + } + }, + { + "pattern": [ + [ + " ", + " CP", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ] + ], + "mapping": { + "G": "tfg:grass/mars_farmland", + "0": "tfg:grass/mars_farmland", + "C": "betterend:cave_pumpkin_plant[age=3,south=true]", + "P": "betterend:cave_pumpkin" + } + } + ], + "text": "$(thing)野生球茎南瓜$() 会在所有气候中,在琥珀菌丝或赤血菌丝上生长。" + }, + { + "type": "patchouli:text", + "title": "查尔米菌丛", + "text": "$(bold)位置$(): 火星$(br)$(bold)$(l:the_world/climate#temperature)温度$(): -150 - 15 °C$(br)$(bold)$(l:mechanics/hydration)湿度$(): 0 - 40 %$(br)$(bold)营养物质$(): 磷$(br2)查尔米菌丛是单方块作物。查尔米菌孢子可以种植在农田上,会产出$(item)查尔米菌$(),可以作为$(thing)蔬菜$()食用。$(br2)建议在食用前$(item)烹饪$() 波鲁克斯菌。" + }, + { + "type": "tfc:multimultiblock", + "multiblocks": [ + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:chorus_mushroom[age=0]", + "Z": "tfg:grass/mars_farmland" + } + }, + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:chorus_mushroom[age=1]", + "Z": "tfg:grass/mars_farmland" + } + }, + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:chorus_mushroom[age=2]", + "Z": "tfg:grass/mars_farmland" + } + }, + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:chorus_mushroom[age=3]", + "Z": "tfg:grass/mars_farmland" + } + } + ], + "text": "$(thing)野生查尔米菌丛$() 会在所有气候中,在琥珀菌丝、红锈菌丝和赤血菌丝上生长。" + }, + { + "type": "patchouli:text", + "title": "夜影浆果", + "text": "$(bold)位置$(): 火星$(br)$(bold)$(l:the_world/climate#temperature)温度$(): -80 - 30 °C$(br)$(bold)$(l:mechanics/hydration)湿度$(): 50 - 100 %$(br)$(bold)营养物质$(): 磷$(br2)夜影浆果是单方块作物。夜影浆果种子可以种植在农田上,会产出$(item)夜影浆果$(),可以作为$(thing)水果$()食用。$(br2)建议在食用前$(item)烹饪$() 夜影浆果。" + }, + { + "type": "tfc:multimultiblock", + "multiblocks": [ + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:shadow_berry[age=0]", + "Z": "tfg:grass/mars_farmland" + } + }, + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:shadow_berry[age=1]", + "Z": "tfg:grass/mars_farmland" + } + }, + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:shadow_berry[age=2]", + "Z": "tfg:grass/mars_farmland" + } + }, + { + "pattern": [ + [ + "Y" + ], + [ + "Z" + ], + [ + "0" + ] + ], + "mapping": { + "Y": "betterend:shadow_berry[age=3]", + "Z": "tfg:grass/mars_farmland" + } + } + ], + "text": "$(thing)野生夜影浆果$() 会在所有气候中,在红锈菌丝和赤血菌丝上生长。" + } + ], + "read_by_default": true, + "extra_recipe_mappings": { + "tfg:lunar_chorus_flower": 2, + "minecraft:chorus_fruit": 2, + "betterend:amber_root_seeds": 4, + "betterend:amber_root_product": 4, + "betterend:blossom_berry_seeds": 6, + "betterend:blossom_berry_product": 6, + "betterend:bolux_mushroom_seeds": 8, + "betterend:bolux_mushroom_product": 8, + "betterend:cave_pumpkin_seeds": 10, + "betterend:cave_pumpkin": 10, + "betterend:chorus_mushroom_seeds": 12, + "betterend:chorus_mushroom_product": 12, + "betterend:shadow_berry_seeds": 14, + "betterend:shadow_berry_product": 14 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_tips/space_fauna.json b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_tips/space_fauna.json new file mode 100644 index 000000000..8bbbb6f6a --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/zh_cn/entries/tfg_tips/space_fauna.json @@ -0,0 +1,194 @@ +{ + "name": "外星动物", + "category": "tfc:tfg_tips", + "icon": "minecraft:sniffer_egg", + "pages": [ + { + "type": "patchouli:text", + "title": "外星动物", + "text": "太空是许多其他动物的家园,你不会在地球上找到它们。少数动物是敌对的,会攻击玩家,但大多数是友好的。它们只有一小部分可以像地球上的牲畜一样$(l:mechanics/animal_husbandry)驯化$()。$(br)你在其他星球上发现的动物可以分为两类:$(item)热栖$()和$(item)冷栖$()。动物只能在气候与其母行星相似的行星上生存,或者在像地球这样的$(thing)温和$()的行星上生存。" + }, + { + "type": "patchouli:text", + "text": "太空动物不需要含氧环境,但它们会将该区域视为对于其生存\"温和\"的。例如,如果你将冷栖动物(如嗅探兽)带到热行星(如金星),它会着火,除非它在含氧环境中。$(br)这使地球成为建造动物园的理想场所,如果你愿意的话。$(br)你可以使用$(thing)AE2$()的空间存储系统在行星之间运输动物。" + }, + { + "type": "patchouli:spotlight", + "item": "tfg:marker/moon", + "title": "月球动物", + "text": "$(item)月球$()可能相当荒凉,但它仍然有一些动物称其为家。$(br2)尽管温度波动相当极端,它被认为是$(thing)寒冷$()的星球。", + "anchor": "moon" + }, + { + "type": "patchouli:entity", + "entity": "tfg:moon_rabbit{NoAI:1b,birth:-100000000L,oldDay:9223372036854775807L,geneticSize:16,MoonRabbitType:5}", + "scale": 1.3, + "offset": -0.3, + "name": "月兔", + "text": "除了它们的颜色,$(thing)月兔$()与地球兔子有相同的属性。它们也吃紫颂果。" + }, + { + "type": "patchouli:entity", + "entity": "species:limpet", + "scale": 0.8, + "name": "矿壳贝", + "text": "$(thing)矿壳贝$()是一种壳上有矿石的蜗牛。你可以用任何采矿工具获得矿石。它们是友好的,可以食用。" + }, + { + "type": "patchouli:entity", + "entity": "ad_astra:star_crawler", + "scale": 0.4, + "name": "星际爬行者", + "text": "$(thing)星际爬行者$()是一种海星。它们是敌对的,可以食用。" + }, + { + "type": "patchouli:entity", + "entity": "species:birt", + "scale": 0.9, + "name": "哔特", + "text": "$(thing)哔特$()是一种鸟类?它们在巢中产卵,除非被攻击否则是中立的,可以食用。它们的蛋可以投掷来使目标眩晕。" + }, + { + "type": "patchouli:empty", + "draw_filler": true + }, + { + "type": "patchouli:spotlight", + "item": "tfg:marker/mars", + "title": "火星动物", + "text": "$(item)火星$()是环境最接近地球的行星,拥有各种各样的动物可以互动,以及可以喂养它们(和你自己)的作物……除了巨大的沙漠,那里几乎没有任何生命。$(br2)火星是一个$(thing)寒冷$()的行星。", + "anchor": "mars" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/sandworm.png" + ], + "border": true, + "title": "沙虫", + "text": "$(thing)沙虫$()会被玩家脚步声惊醒。它们是沙漠中几乎没有其他生命的原因。$(br)" + }, + { + "type": "patchouli:text", + "title": "嗅探兽", + "text": "$(thing)嗅探兽$()是在-30到-102°C之间发现的可驯化动物。它们需要大型巢穴来产卵,可以剪毛获得$(item)矿物富集绒毛$()。它们的蛋可以烹饪或提取奶油。它们吃任何火星作物。", + "anchor": "sniffer" + }, + { + "type": "patchouli:entity", + "entity": "tfg:sniffer{NoAI:1b,birth:-100000000L,oldDay:9223372036854775807L,geneticSize:16}", + "scale": 0.45, + "name": " ", + "text": "一头嗅探兽。" + }, + { + "type": "patchouli:text", + "title": "诡恐鸟", + "text": "$(thing)诡恐鸟$()是在-15到-100°C之间发现的可驯化动物。它们需要大型巢穴来产卵,可以剪毛获得$(item)诡恐鸟羽毛$()。它们的蛋可以烹饪或提取诡恐鸟糖。它们吃任何火星作物。", + "anchor": "wraptor" + }, + { + "type": "patchouli:entity", + "entity": "tfg:wraptor{NoAI:1b,birth:-100000000L,oldDay:9223372036854775807L,geneticSize:16}", + "scale": 0.8, + "name": " ", + "text": "一只诡恐鸟。" + }, + { + "type": "patchouli:text", + "title": "霜原羊", + "text": "偏好低于-108°C的极冷环境,$(thing)霜原羊$()是可驯化动物。它们可以剪毛获得$(item)霜原羊毛$(),一种绝佳的绝缘体。它们吃任何火星作物。", + "anchor": "glacian_sheep" + }, + { + "type": "patchouli:entity", + "entity": "tfg:glacian_ram{NoAI:1b,birth:-100000000L,oldDay:9223372036854775807L,geneticSize:16}", + "scale": 0.7, + "name": " ", + "text": "一只霜原公羊/母羊" + }, + { + "type": "patchouli:entity", + "entity": "wan_ancient_beasts:surfer", + "scale": 0.35, + "offset": 0.2, + "name": "破浪兽", + "text": "$(thing)破浪兽$()是半水生友好动物。你可以用$(item)生鱼$()驯服它们来在水下骑乘。它们也可以食用。" + }, + { + "type": "patchouli:entity", + "entity": "wan_ancient_beasts:eater", + "scale": 0.5, + "name": "噬颚兽", + "text": "顶级捕食者,$(thing)噬颚兽$()是在-109°C以上发现的敌对动物。如果你能设法击败一只,它们可以食用。" + }, + { + "type": "patchouli:entity", + "entity": "species:cruncher", + "scale": 0.7, + "name": "贪咀兽", + "text": "$(thing)贪咀兽$()是有领地范围的$(item)小boss$()捕食者。喂它们肉来阻止它们的回血。它们也可以食用。" + }, + { + "type": "patchouli:entity", + "entity": "wan_ancient_beasts:soarer", + "scale": 0.4, + "offset": 1.0, + "name": "翱翔鸟", + "text": "$(thing)翱翔鸟$()是在-106°C以上发现的友好动物。你可以用$(item)生鱼$()驯服它们作为飞行坐骑。它们也可以食用。" + }, + { + "type": "patchouli:entity", + "entity": "wan_ancient_beasts:glider", + "scale": 0.4, + "offset": 0.2, + "name": "滑翔鸟", + "text": "与它们的名字不同,$(thing)滑翔鸟$()不能被驯服或骑乘。它们是友好的,生活在-105°C以上的区域。它们喜欢音乐,可以食用。" + }, + { + "type": "patchouli:entity", + "entity": "wan_ancient_beasts:crusher", + "scale": 0.5, + "offset": 0.5, + "name": "碎岩兽", + "text": "$(thing)碎岩兽$()是在-100°C以上区域成群生成的半敌对动物。它们可以被杀死获得肉和硬刺。" + }, + { + "type": "patchouli:entity", + "entity": "species:springling", + "scale": 0.9, + "name": "簧颈兽", + "text": "$(thing)簧颈兽$()是在-108°C以上发现的野生动物。喂它们$(item)树苗$()可以让你骑乘它们并伸展它们极长的脖子。它们也可以食用。" + }, + { + "type": "patchouli:entity", + "entity": "species:goober", + "scale": 0.6, + "name": "黏涕兽", + "text": "$(thing)黏涕兽$()是在-109°C以上发现的懒惰野生动物。它们是友好的,可以食用。" + }, + { + "type": "patchouli:entity", + "entity": "wan_ancient_beasts:walker", + "scale": 0.6, + "offset": 2.2, + "name": "巨行兽", + "text": "巨大的$(thing)巨行兽$()栖息在-97°C以上的区域。它们是友好的,可以食用。" + }, + { + "type": "patchouli:entity", + "entity": "wan_ancient_beasts:toxlacanth", + "scale": 0.35, + "name": "毒棘鱼", + "text": "$(thing)毒棘鱼$()是水生猎食者。建议从远处杀死它们,并在食用前烹饪它们的肉。" + }, + { + "type": "patchouli:entity", + "entity": "species:stackatick", + "scale": 0.4, + "name": "叠行虫", + "text": "少数能在火星沙漠中生存的动物之一,$(thing)叠行虫$()是中立猎食者。它们也可以食用。" + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfc/textures/item/blubber.png b/kubejs/assets/tfc/textures/item/blubber.png new file mode 100644 index 000000000..453a7ca59 Binary files /dev/null and b/kubejs/assets/tfc/textures/item/blubber.png differ diff --git a/kubejs/assets/tfclunchbox/lang/ja_jp.json b/kubejs/assets/tfclunchbox/lang/ja_jp.json new file mode 100644 index 000000000..928c0fb96 --- /dev/null +++ b/kubejs/assets/tfclunchbox/lang/ja_jp.json @@ -0,0 +1,32 @@ +{ + "__COMMENT__": "This file was auto generated by the LanguageMerger, read the file \".README IF TRANSLATING\" found in \"minecraft/kubejs\" for more information.", + "item.tfclunchbox.cooling_lunchbox": "保冷ランチボックス", + "item.tfclunchbox.lunchbox": "ランチボックス", + "item.tfclunchbox.electric_lunchbox": "電気ランチボックス", + "gui.tfclunchbox.cooling_lunchbox": "保冷ランチボックス", + "gui.tfclunchbox.lunchbox": "ランチボックス", + "gui.tfclunchbox.electric_lunchbox": "電気ランチボックス", + "container.tfclunchbox.cooling_lunchbox": "保冷ランチボックス", + "container.tfclunchbox.lunchbox": "ランチボックス", + "container.tfclunchbox.electric_lunchbox": "電気ランチボックス", + "item.tfclunchbox.cooling_lunchbox.main": "中身を新鮮に保ってくれる、冒険のお供", + "item.tfclunchbox.electric_lunchbox.main": "電気の力で食品を冷蔵保存する最先端の弁当箱", + "tooltip.tfclunchbox.cooling_lunchbox.hold_shift": "§eShift§7で詳細を表示", + "tooltip.tfclunchbox.cooling_lunchbox.shift_info": "Ctrl+マウススクロールで中身を選択", + "item.tfclunchbox.simple_lunchbox.main": "シンプルなお弁当箱", + "tooltip.tfclunchbox.simple_lunchbox.hold_shift": "§eShift§7で詳細を表示", + "tooltip.tfclunchbox.simple_lunchbox.shift_info": "Ctrl+マウススクロールで中身を選択", + "tooltip.tfclunchbox.lunchbox.shift": "§eShift§7で詳細を表示", + "tooltip.tfclunchbox.lunchbox.contents": "中身:", + "tooltip.tfclunchbox.ice_slots_help": "保冷材スロット", + "tooltip.tfclunchbox.ice_slots_help.line1": "§7使用可能:", + "tooltip.tfclunchbox.ice_slots_help.line2": "§b•氷ブロック類", + "tooltip.tfclunchbox.ice_slots_help.line3": "§b•ドライアイス", + "tooltip.tfclunchbox.ice_slots_help.line4": "§b•氷泥入りセル", + "tooltip.tfclunchbox.ice_slots_help.line5": "§7入れるとランチボックス内食物を保冷してくれます", + "tooltip.tfclunchbox.battery_slot_help": "バッテリースロット", + "tooltip.tfclunchbox.battery_slot_help.line1": "§7使用可能:", + "tooltip.tfclunchbox.battery_slot_help.line2": "§e•Gregtechのバッテリー", + "tooltip.tfclunchbox.battery_slot_help.line3": "§7バッテリーは放電し、", + "tooltip.tfclunchbox.battery_slot_help.line4": "§7内部の電源を充電する" +} \ No newline at end of file diff --git a/kubejs/assets/tfg/blockstates/ostrum_linear_accelerator.json b/kubejs/assets/tfg/blockstates/ostrum_linear_accelerator.json new file mode 100644 index 000000000..5c213dc91 --- /dev/null +++ b/kubejs/assets/tfg/blockstates/ostrum_linear_accelerator.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "tfg:block/machines/ostrum_linear_accelerator", + "y": 90 + }, + "facing=north": { + "model": "tfg:block/machines/ostrum_linear_accelerator" + }, + "facing=south": { + "model": "tfg:block/machines/ostrum_linear_accelerator", + "y": 180 + }, + "facing=west": { + "model": "tfg:block/machines/ostrum_linear_accelerator", + "y": 270 + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/blockstates/smr_generator.json b/kubejs/assets/tfg/blockstates/smr_generator.json new file mode 100644 index 000000000..75bf94810 --- /dev/null +++ b/kubejs/assets/tfg/blockstates/smr_generator.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "tfg:block/machines/smr_generator", + "y": 90 + }, + "facing=north": { + "model": "tfg:block/machines/smr_generator" + }, + "facing=south": { + "model": "tfg:block/machines/smr_generator", + "y": 180 + }, + "facing=west": { + "model": "tfg:block/machines/smr_generator", + "y": 270 + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index 1feebba8c..eb7726575 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -654,6 +654,8 @@ "block.tfg.nuclear_turbine": "Nuclear Steam Turbine", "block.tfg.evaporation_tower": "Evaporation Tower", "block.tfg.cooling_tower": "Nuclear Cooling Tower", + "block.tfg.smr_generator": "Small Modular Turbine", + "block.tfg.casings.machine_casing_desh_ptfe": "Radiation-Safe Desh Casing", "block.tfg.growth_monitor": "Growth Monitor", "block.tfg.sample_rack": "Sample Rack", "block.tfg.casings.machine_casing_sterilizing_pipes": "Sterilizing Pipes", @@ -1157,6 +1159,41 @@ "material.tfg.zirconium_bromide": "Zirconium(IV) Bromide", "material.tfg.zirconium_diboride": "Zirconium Diboride", "material.tfg.boron_carbide": "Boron Carbide", + "material.tfg.syngas": "Syngas", + "material.tfg.raw_aromatic_mix": "Raw Aromatic Mix", + "material.tfg.aromatic_feedstock": "Aromatic Feedstock", + "material.tfg.reformed_aromatic_feedstock": "Reformed Aromatic Feedstock", + "material.tfg.reformate_gas": "Reformate Gas", + "material.tfg.cracker_off_gas": "Cracked Reformate Off-Gas", + "material.tfg.btx_fuel": "BTX Gas", + "material.tfg.critical_steam": "Critical Steam", + "material.tfg.americium_241": "Americium-241", + "material.tfg.californium_252": "Californium-252", + "material.tfg.neptunium_237": "Neptunium-237", + "material.tfg.mixed_radioactive_fluid": "Mixed Radioactive Fluid", + "material.tfg.degraded_solvent_stream": "Degraded Solvent Stream", + "material.tfg.boron_enriched_coolant": "Boron Enriched Coolant", + "material.tfg.hot_boron_enriched_coolant": "Hot Boron Enriched Coolant", + "material.tfg.polyalkylene_lubricant": "Polyalkylene Lubricant", + "material.tfg.organic_degradation_slurry": "Organic Degradation Slurry", + "material.tfg.gas_fraction": "Gas Fraction", + "material.tfg.isotopic_solvent": "Isotopic Solvent", + "material.tfg.residual_sludge": "Residual Sludge", + "material.tfg.sodium_fluoride": "Sodium Fluoride", + "material.tfg.trace_catalyst_salt_e": "Trace Catalyst Salt E", + "material.tfg.copper_trace_catalyst_dust": "Copper Trace Catalyst", + "material.tfg.organic_stabilizer": "Organic Stabilizer", + "material.tfg.inert_dust_fraction": "Inert Fraction", + "material.tfg.recovered_ionic_complex": "Recovered Ionic Complex", + "material.tfg.glucose": "Glucose", + "material.tfg.galactose": "Galactose", + "material.tfg.fructose": "Fructose", + "material.tfg.sorbitol": "Sorbitol", + "material.tfg.14_sorbitan": "1,4-Sorbitan", + "material.tfg.isosorbide": "Isosorbide", + "material.tfg.linolenic_acid": "α-Linolenic Acid", + "material.tfg.isosorbide_ln": "Isosorbide Linolenate", + "material.tfg.epox_isosorbide_ln": "Epoxidized Isosorbide Linolenate", "ore_vein.tfg.deep_sheldonite": "Cooperite & Bornite", "ore_vein.tfg.deep_garnet_amethyst": "Amethyst & Garnet", "ore_vein.tfg.deep_garnet_opal": "Opal & Garnet", @@ -1178,6 +1215,8 @@ "ore_vein.tfg.normal_copper": "Copper & Chalcopyrite", "ore_vein.tfg.normal_garnet_tin": "Garnet & Cassiterite Sands", "ore_vein.tfg.normal_garnierite": "Garnierite & Cobaltite", + "ore_vein.tfg.normal_garnierite.emi.0": "Tip: Gabbro is always", + "ore_vein.tfg.normal_garnierite.emi.1": "underneath Basalt.", "ore_vein.tfg.normal_gold": "Gold, Limonite, & Hematite", "ore_vein.tfg.normal_graphite": "Graphite & Diamond", "ore_vein.tfg.normal_gypsum": "Gypsum & Calcite", @@ -1193,12 +1232,18 @@ "ore_vein.tfg.normal_olivine": "Bentonite & Olivine", "ore_vein.tfg.normal_quartz": "Quartzes", "ore_vein.tfg.normal_redstone": "Redstone, Cinnabar, & Ruby", + "ore_vein.tfg.normal_redstone.emi.0": "Tip: Granite is always", + "ore_vein.tfg.normal_redstone.emi.1": "underneath Rhyolite.", "ore_vein.tfg.normal_salt": "Salts & Borax", "ore_vein.tfg.normal_saltpeter": "Saltpeter & Electrotine", "ore_vein.tfg.normal_silver": "Silver, Galena, & Lead", "ore_vein.tfg.normal_sphalerite": "Sphalerite & Pyrite", "ore_vein.tfg.normal_spodumene": "Spodumene & Lepidolite", "ore_vein.tfg.normal_sulfur": "Sulfur & Pyrite", + "ore_vein.tfg.normal_tarkianite": "Tarkianite & Oilsands", + "ore_vein.tfg.normal_tarkianite.emi.0": "Only in dry climates.", + "ore_vein.tfg.normal_tarkianite.emi.1": "Min temp: 7°C", + "ore_vein.tfg.normal_tarkianite.emi.2": "Max rainfall: 100mm", "ore_vein.tfg.normal_tetrahedrite": "Tetrahedrite (Normal)", "ore_vein.tfg.surface_bismuthinite": "Bismuth (Surface)", "ore_vein.tfg.surface_cassiterite": "Cassiterite (Surface)", @@ -1384,10 +1429,14 @@ "tfg.emi.ore_veins.rock_types": "Found in rock types:", "tfg.emi.ore_veins.rarity": "Rarity: %d", "tfg.emi.ore_veins.density": "Density: %d", - "tfg.emi.ore_veins.y_ranges": "Depth: %d to %d", + "tfg.emi.ore_veins.y_ranges": "Y Level: %d to %d", "tfg.emi.ore_veins.size": "Size: %d", "tfg.emi.ore_veins.height": "Height: %d", "tfg.emi.ore_veins.radius": "Radius: %d", + "ore_vein.tfg.rose_quartz": "Rose Quartz", + "ore_vein.tfg.rose_quartz.emi.0": "Found in low-elevation", + "ore_vein.tfg.rose_quartz.emi.1": "biomes in climates", + "ore_vein.tfg.rose_quartz.emi.2": "below -10°C.", "emi.category.tfg.ore_vein_info": "Ore Veins", "tfg.emi.liquid_bb_burn_time": "Duration: %d secs", "tfg.emi.liquid_bb_superheat": "§lSuperheated", @@ -1447,7 +1496,7 @@ "tfg.tooltip.machine.one_energy_hatch": "Accepts exactly §6One§r Energy Hatch", "tfg.tooltip.machine.two_energy_hatches": "Accepts up to §6Two§r Energy Hatches", "tfg.tooltip.machine.subtick": "This machine supports §2Subticking§r!", - "tfg.tooltip.machine.coil_energy_discount": "Every coil after §6Cupronickel§7 reduces energy usage by §r10%§7.§r", + "tfg.tooltip.machine.coil_energy_discount": "Every coil after §6Cupronickel§r reduces energy usage by §r10%§7.§r", "tfg.tooltip.machine.bioreactor_1": "§7Chemistry meets Biology§r", "tfg.tooltip.machine.bioreactor_2": "§7Combines organic and inorganic ingredients to produce synthetic biological products.§r", "tfg.tooltip.machine.growth_chamber_1": "§7Growing new life§r", @@ -1455,7 +1504,7 @@ "tfg.tooltip.machine.evaporation_tower_1": "§7Not to be confused with the Distillation Tower§r", "tfg.tooltip.machine.evaporation_tower_2": "§7Gets rid of excess solvent to condense solutions.§r", "tfg.tooltip.machine.electric_greenhouse_1": "§7Putting the Factory in Factory Farming§r", - "tfg.tooltip.machine.electric_greenhouse_2": "§7Uses water to grow trees, crops, and other plants. Can be sped up with fertiliser. Faster and easier than other ways of growing plants, at the cost of energy.§r", + "tfg.tooltip.machine.electric_greenhouse_2": "§7Uses water to grow trees, crops, and other plants. Can be sped up with fertilizer. Faster and easier than other ways of growing plants, at the cost of energy.§r", "tfg.tooltip.machine.cooling_tower_1": "§7Heating up the Atmosphere§r", "tfg.tooltip.machine.cooling_tower_2": "§7Cools the hot coolant by dissipitating excess heat to the atmosphere.§r", "tfg.tooltip.obsolete.depreciated": "§cDeprecated, cannot be crafted any more", @@ -1481,8 +1530,10 @@ "tfg.tooltip.component.moderate_core_frame": "Can be placed inside a Fission Reactor to increase the maximum heat by §910§r", "tfg.tooltip.component.dry_ice": "Can be used as an input in the Fission Reactor to cool it down, requires a Material Holder", "tfg.tooltip.component.refrigerant_pellet": "Can be used as an input in the Fission Reactor to cool it down, requires a Material Holder", - "tfg.tooltip.component.nuclear_turbine_1": "§eBase Production:§r 4096 EU/t", + "tfg.tooltip.component.nuclear_turbine_1": "§eBase Production:§r 8192 EU/t", "tfg.tooltip.component.nuclear_turbine_2": "Each Rotor Holder above §5EV§r §7adds§r 10% efficiency and multiplies EU/t by 2.", + "tfg.tooltip.component.smr_generator_1": "§eBase Production:§r 4096 EU/t", + "tfg.tooltip.component.smr_generator_2": "Dedicated to produce power from sCO2 and the Small Modular Reactor.\n Use Lubricant and Booster to increase its efficiency and manage the cooling loop of the SMR.", "tfg.gui.refrigerator.unify_dates.enabled": "Expiration Date Unification is: §aOn", "tfg.gui.refrigerator.unify_dates.disabled": "Expiration Date Unification is: §cOff", "tfg.machine.food_refrigerator_power_usage": "§7Consumes§r %s EU/t §7while active to keep your food fresh.§r", @@ -1496,6 +1547,13 @@ "tfg.gui.menu.field_guide_splash_text": "Tip: Read the field guide!!!", "tfg.gui.menu.ram_usage": "RAM:", "tfg.gui.menu.fps_count": "FPS:", + "tfg.gui.smr_generator.credit": "Credits to Frontiers Team", + "tfg.gui.smr_generator.lubricant_used": "Lubricant: %s", + "tfg.gui.smr_generator.booster_used": "Booster: %s", + "tfg.gui.max_energy_per_tick_amps.prefix": "Max EU/t:", + "tfg.gui.consumes": "Consumes: ", + "tfg.gui.per_cycle": "per cycle", + "tfg.gui.cycle_duration": "Cycle duration: ", "tfc.jei.flint_knapping": "Flint Knapping", "tfc.jei.straw_knapping": "Straw Knapping", "tfc.recipe.barrel.tfg.barrel.dyeing.decorative_vase.black": "Dyeing", @@ -2066,7 +2124,7 @@ "quests.extreme_voltage.tunsgten_line_step.title": "Looping Soda Ash", "quests.extreme_voltage.tunsgten_line_step.subtitle": "You may not want to mine it forever", "quests.extreme_voltage.tunsgten_line_step.desc.1": "Looping the &5Tungsten Line&r perfectly isn’t the easiest task, so we’ll use this quest to guide you in the right direction.\n\nThe &bSalt&r you obtain should be combined with &aCarbon Dioxide&r and &6Ammonia&r to produce &3Ammonium Chloride&r, which you can then electrolyze to recycle your &6Ammonia&r and obtain the &9Hydrochloric Acid&r needed for &eSodium Tungstate&r.\n\nThis process also produces &bSodium Bicarbonate&r, which you should electrolyze to recover your &dSoda Ash&r.", - "quests.extreme_voltage.tunsgten_line_step.desc.2": "Finally, to close the loop, you need to manage your &aCarbon Dioxide&r. You can either split a portion of your &dSoda Ash&r and electrolyze it to recover &aCarbon&r and &9Oxygen&r, allowing you to get back some &aCarbon Dioxide&r, or brute force it by using &bLiquid Air&r distillation to produce an infinite supply of &aCarbon Dioxide&r.", + "quests.extreme_voltage.tunsgten_line_step.desc.2": "Finally, to close the loop, you need to manage your &aCarbon Dioxide&r. You can electrolyze the &dSodium Bicarbonate&r and &aCarbon Dioxide&r and combine the the &bCarbon&r and &bOxygen&r you got from Calcilte and Lithium. Or brute force it by using &bLiquid Air&r distillation to produce an infinite supply of &aCarbon Dioxide&r.", "quests.extreme_voltage.tunsgten_line_step_1.title": "The new Tungsten Line", "quests.extreme_voltage.tunsgten_line_step_1.subtitle": "Why? Just why?", "quests.extreme_voltage.tunsgten_line_step_1.desc": "The &eTungsten Line&r in TerraFirmaGreg has been completely reworked and you’ll be happy (or not) to know that it’s now &cmuch harder&r.\n\nIt’s possible to &afully loop&r every material in the Tungsten Line, but doing so requires a lot of engineering. Alternatively, you can brute-force your way through by &cmass-producing&r the resources you need.\n\nA little tip: &4Mars&r has several &agood ore veins&r for &eSoda Ash&r and &eTungsten&r.\n\nTake your time, optimize, and the Tungsten Line will become the foundation of your mid-to-late game progress.", @@ -2122,14 +2180,14 @@ "quests.gregtech_energy.start.subtitle": "It's not as bad as you think", "quests.gregtech_energy.moving.title": "Moving your Energy", "quests.gregtech_energy.moving.subtitle": "So, energy transfer, huh", - "quests.gregtech_energy.moving.desc": "Moving Energy in GregTech means understanding a few core mechanics.\n\nFirst, &bEnergy Tiers&r. From &aLV&r to &cUHV&r, everything in GregTech — wires, machines, recipes — is tied to a tier. You’ll need the &ecorrect cable material&r to move energy. For example:\n&8•&r Tin wire = &aLV&r\n&8•&r Copper wire= &bMV&r\n\nSecond, you’ve got the &bAmperage&r mechanic. Think of 1 Amp (or 1A) as &ea packet of energy&r. Machines request energy \"packets\", which then get sent down the wire.\n&8•&r 1A of LV = &a32 EU&r\n&8•&r 1A of HV = &e512 EU&r\n\nMost machines and energy hatches will only request &62A at maximum&r.\n\nMastering these two ideas is key before going further into energy distribution.", + "quests.gregtech_energy.moving.desc": "Moving Energy in GregTech means understanding a few core mechanics.\n\nFirst, &bEnergy Tiers&r. From &aLV&r to &cUHV&r, everything in GregTech — wires, machines, recipes — is tied to a tier. You’ll need the &ecorrect cable material&r to move energy. For example:\n&8•&r Tin wire = &aLV&r\n&8•&r Copper wire = &bMV&r\n\nSecond, you’ve got the &bAmperage&r mechanic. Think of 1 Amp (or 1A) as &ea packet of energy&r. Machines request energy \"packets\", which then get sent down the wire.\n&8•&r 1A of LV = &a32 EU&r\n&8•&r 1A of HV = &e512 EU&r\n\nMost machines and energy hatches will only request &62A at maximum&r.\n\nMastering these two ideas is key before going further into energy distribution.", "quests.gregtech_energy.moving.task": "I understand", "quests.gregtech_energy.transformer.title": "The Super Transformer", "quests.gregtech_energy.transformer.subtitle": "Better than Optimus Prime", "quests.gregtech_energy.transformer.desc": "For every problem, GregTech has a multiblock solution. Enter the &dActive Transformer&r.\n\nThis beast is your ultimate transformer. It can channel energy between any tiers — from &aLV&r to &cUHV&r — with no explosions. But that's not even the best part.\n\nIt can transmit energy using Laser Pipes.\n&8•&r Lasers send absurd amounts of Amps.\n&8•&r No loss. No cables. Just pure energy.\n&8•&r Only one catch: it &chas to be in a perfectly straight line&r.\n\nWhen cables feel weak, &luse lasers.", "quests.gregtech_energy.moving_wire.title": "Moving with wires", "quests.gregtech_energy.moving_wire.subtitle": "Funky to place", - "quests.gregtech_energy.moving_wire.desc": "Moving energy around in GregTech can be tricky — &bmost cables are lossy&r. For every block, for every amp, you might lose energy as it travels through your wires. But don’t worry, there are solutions:\n\n&8•&r Cover your wires with rubber. By doing so, you'll significantly reduce energy loss over distance. Just check the quest items for a reference.\n&8•&r Use higher-tier cables. Platinum cables, for example, only lose 1 EU per block — practically nothing when compared to the 8192 EU it can carry.\n&8•&r &bSuperconductors&r. These beauties are a bit pricier, but they have &9zero loss&r. They don’t need rubber covers, and won't zap you either. Just be aware that they're usually only craftable near the end of their tier.\n\nOptimize your energy flow — &breduce losses&r and make your systems more efficient.", + "quests.gregtech_energy.moving_wire.desc": "Moving energy around in GregTech can be tricky — &bmost cables are lossy&r. For every block, for every amp, you might lose energy as it travels through your wires. But don’t worry, there are solutions:\n\n&8•&r Cover your wires with rubber. By doing so, you'll significantly reduce energy loss over distance. Just check the quest items for a reference.\n\n&8•&r Use higher-tier cables. Platinum cables, for example, only lose 1 EU per block — practically nothing when compared to the 8192 EU it can carry.\n\n&8•&r &bSuperconductors&r. These beauties are a bit pricier, but they have &9zero loss&r. They don’t need rubber covers, and won't zap you either. Just be aware that they're usually only craftable near the end of their tier.\n\nOptimize your energy flow — &breduce losses&r and make your systems more efficient.", "quests.gregtech_energy.moving_wire.task": "I finished looking at wires", "quests.gregtech_energy.moving_amp.title": "Managing Amp", "quests.gregtech_energy.moving_amp.subtitle": "It burns?", @@ -2146,6 +2204,7 @@ "quests.gregtech_energy.lv_generator.desc.2": "&e1. Steam Power&r:\n\nThis is the most classic method. You can convert the steam produced by your High Pressure Boilers into EU using a Steam Turbine.\n\nIt generates &e32 EU/t&r with &e64 mB/t&r of steam. If you follow this path, we highly recommend making a Large Bronze Boiler, which can easily be fueled with Lava, Creosote, or other burnable solid fuels (check JEI!).", "quests.gregtech_energy.lv_generator.desc.3": "&e2. Rotational Power&r:\n\nYou can use Create's rotational power with an Alternator to generate RF, then convert it into EU using an &7LV&r Converter.\n\n(Check the Alternators quest in the LV Chapter for more details.)", "quests.gregtech_energy.lv_generator.desc.4": "&e3. Biodiesel Power (TFG Exclusive)&r:\n\nCanola and Sunflowers can be processed into large amounts of Seed Oil. Combine it with TFC Alcohol to produce Biodiesel.\n\nThis method may seem more complex, but Biodiesel is extremely powerful during &7LV&r and &bMV&r tiers. It scales well into &5EV&r with &eCetane-Boosted Diesel&r later on.\n\nTo use Biodiesel, you’ll need a &7LV&r Combustion Generator. While it may be slightly more expensive, every mB of Biodiesel provides a high amount of EU, making it easier to transport and store.\n\nIt's your choice how you want to start your energy production.", + "quests.gregtech_energy.lv_generator.desc.5": "&e4. Syngas Power (TFG Exclusive)&r:\n\nWith the help of the &6Coke Oven&r and a &6Vacuum Chamber&r, you can obtain this early-game gas. It is not the strongest option, but it is sufficient if you want to follow a &eGas-Only&r power path. A &6Create&r-based tree farm is highly recommended to get the best efficiency out of it.", "quests.gregtech_energy.lv_generator.task": "Any LV Generator", "quests.gregtech_energy.mv_generator.title": "The MV Generators", "quests.gregtech_energy.mv_generator.subtitle": "Basically the same as the LV ones", @@ -2186,9 +2245,35 @@ "quests.gregtech_energy.lpt_fuel.task": "I don't want to make a bucket of Plasma", "quests.gregtech_energy.lgt_fuel.title": "Gas Fuels", "quests.gregtech_energy.lgt_fuel.subtitle": "Everyone's favorite", - "quests.gregtech_energy.lgt_fuel.desc.1": "When we speak about gas fuels, we’re really talking about just one — &eNitrobenzene&r.\n\nYou’ll be able to produce it once you reach &6HV&r, and we &astrongly recommend it&r if you’re planning to use the Large Gas Turbine.\n\nBefore reaching Nitrobenzene, &eBenzene&r is a solid option to get started. You can obtain it from a tree farm or by processing Heavy Oil, if you’re lucky enough to have some nearby.", - "quests.gregtech_energy.lgt_fuel.desc.2": "Making Nitrobenzene involves several steps — until you craft your first Large Chemical Reactor (LCR), which will let you skip many sub-steps and simplify the process.\n\nIt’s nothing too complicated: combine Hydrogen, Nitrogen, and Oxygen to make &eNitric Acid&r in infinite quantities. As for Sulfuric Acid, you probably already know it’s just Sulfur and Water — right?\n\nOnce you get this chain going, Nitrobenzene becomes one of the most powerful fuels for gas burning.", + "quests.gregtech_energy.lgt_fuel.desc.1": "All of these fuels are used for &2Gas Turbines&r — ranked here from the least efficient to the best.\n\nThe &bGas Turbine&r is overall a bit cheaper than its counterpart, the &bCombustion Generator&r, but &eGas Fuels&r are also less energy-dense than combustion fuels. This does not mean they are worse — only that you will need more millibuckets (mB) to achieve the same output. Later in progression, they can be used inside the &2Large Gas Turbine&r, a very powerful multiblock that requires a bit more management.", + "quests.gregtech_energy.lgt_fuel.desc.2": "In TerraFirmaGreg, &eGas Fuels&r have been widely rebalanced. &6We do not recommend relying on &eBenzene&r or &eNitrobenzene&r, as they have been heavily nerfed.&r At the start of &7LV&r, we advise using &eSyngas&r or &eLPG&r if you want to process your Oilsands. Later on, you can upgrade to &eReformate Gas&r at &bMV&r and further improve its production once you unlock the &2Cracker&r.", "quests.gregtech_energy.lgt_fuel.task": "Gas in a bucket?", + "quests.gregtech_energy.syngas.title": "Syngas", + "quests.gregtech_energy.syngas.subtitle": "I can get Gas fuel at LV?", + "quests.gregtech_energy.syngas.desc": "The &eSyngas&r is a new TFG gas fuel. You can unlock it very early at &8ULV&r and use it in your first &6Gas Turbines&r during &7LV&r. It is not a particularly strong fuel, but it can be transformed into valuable byproducts such as &eLubricant&r, &eMethane&r, and &eHydrogen&r.\n\nEven though it is not the most powerful option and can be difficult to scale, using only three &6Coke Ovens&r and one &6Brewery&r or &6Vacuum Chamber&r you can produce a steady supply that should be sufficient to reach &bMV&r and unlock the far stronger &eReformate Gas&r.", + "quests.gregtech_energy.reformate_gas.title": "Reformate Gas", + "quests.gregtech_energy.reformate_gas.subtitle": "Is that reformate Benzene?", + "quests.gregtech_energy.reformate_gas.desc.1": "The &9Reformate Gas&r is a strong and new gas fuel taking the usual role of Benzene at &bMV&r.\n\nTo produce it, you will need to build a &6Coal Liquefaction Tower&r and obtain some &5Rhenium&r from the &6Tarkianite&r veins found only in dry and hot climates. Two &6Pyrolyse Ovens&r — one producing Creosote and the other Wood Tar — will provide all the materials required to generate this fuel. Remember that you can produce steam with a &6Fluid Heater&r if you want to simplify the setup.", + "quests.gregtech_energy.reformate_gas.desc.2": "It is also important to consider the improved yield available at &6HV&r when using a &6Cracker&r. This will allow you to loop most of your &5Rhenium&r, making Reformate Gas effectively an infinite fuel.\n\nAdding &9Nitrogen&r and &9Hydrogen&r to the process will further strengthen your production throughput.", + "quests.gregtech_energy.btx.title": "BTX", + "quests.gregtech_energy.btx.subtitle": "Not a korean band", + "quests.gregtech_energy.btx.desc": "The BTX Fuel is NYI", + "quests.gregtech_energy.fission_rod.title": "Fission Fuels", + "quests.gregtech_energy.fission_rod.subtitle": "Don't get me too hot", + "quests.gregtech_energy.fission_rod.desc.1": "The Earth Fission materials are NYI but may come sooner than later", + "quests.gregtech_energy.fission_rod.desc.2": "", + "quests.gregtech_energy.fission_rod.task": "", + "quests.gregtech_energy.smr.title": "Small Modular Reactor", + "quests.gregtech_energy.smr.subtitle": "Finally Power for these far outposts", + "quests.gregtech_energy.smr.desc.1": "The Small Modular Reactor is NYI but may come sooner than later", + "quests.gregtech_energy.smr.desc.2": "", + "quests.gregtech_energy.smr.task": "", + "quests.gregtech_energy.gasoline.title": "Gasoline", + "quests.gregtech_energy.gasoline.subtitle": "The middle child", + "quests.gregtech_energy.gasoline.desc": "&aGasoline&r is a really strong combustion fuel that you unlock at &6HV&r, but realistically only begin to make when you build your first &6Distillation Towers&r. &7Toluene&r is easily made from &7Wood Tar&r or &7Heavy Fuel&r, while everything else you need is &dRefinery Gas&r, &8Naphtha&r, and a mix of &3Oxygen&r, &bHydrogen&r, and &1Carbon&r.\n\nIt's strong, quite easy to make, and even better, it can be upgraded into &cHigh Octane Gasoline&r.", + "quests.gregtech_energy.high_gasoline.title": "High Octane Gasoline (HOG)", + "quests.gregtech_energy.high_gasoline.subtitle": "Highly Powerful", + "quests.gregtech_energy.high_gasoline.desc": "The direct upgrade of &cGasoline&r is a &5two times more powerful fuel&r. As the name doesn't suggest, you have to add not only &dOctane&r but also other materials from &8Petrochem&r. At that point, we expect you to be able to navigate through &bEMI&r and begin the fabrication of this insanely strong fuel.", "quests.gregtech_energy.lst_fuel.title": "This is Steam", "quests.gregtech_energy.lst_fuel.subtitle": "Not much of a choice", "quests.gregtech_energy.lst_fuel.desc": "Steam isn’t complicated — just boil water.\n\nTo do it efficiently, we recommend using &6Large Boilers&r. There's four versions: one each for &8ULV&r, &bMV&r, &5EV&r, and &1IV&r. Each tier provides a strong increase in steam output.\n\nHowever, be aware: the scaling of the &dLarge Steam Turbine&r with these boilers is not the best compared to other power generation methods.\n\nMost players will skip the Titanium and Tungstensteel Boilers — they exist if you want them, but aren’t worth building. Steam just doesn't scale very well!\n\nAs a reminder: &e2 mB&r of steam = &e1 EU&r.", @@ -2196,7 +2281,7 @@ "quests.gregtech_energy.lst_fuel.task.1": "Large Boilers", "quests.gregtech_energy.lce_fuel.title": "Liquid Fuel", "quests.gregtech_energy.lce_fuel.subtitle": "The polluter's favourite", - "quests.gregtech_energy.lce_fuel.desc.1": "All of these fuels are used for &6Combustion Generators&r — ranked here from the least efficient to the best.\n\nDuring &bMV&r, we recommend starting with Diesel or Biodiesel. Later on, you can upgrade to Cetane-Boosted Diesel at &6HV&r by mixing it with Nitrogen, Hydrogen, and Oxygen.", + "quests.gregtech_energy.lce_fuel.desc.1": "All of these fuels are used for &6Combustion Generators&r — ranked here from the least efficient to the best.\n\nDuring the early game, we recommend starting with Diesel or Biodiesel. Later on, you can upgrade to Cetane-Boosted Diesel at &6HV&r by mixing it with Nitrogen, Hydrogen, and Oxygen.", "quests.gregtech_energy.lce_fuel.desc.2": "Once you reach &5EV&r and get your hands on a &6Distillation Tower&r, it's time to switch over to Gasoline and High Octane Gasoline. Don’t attempt this too early — oils need to be distilled properly, and doing it with a regular Distillery is not efficient at all.\n\nTo make this work, you'll need a combination of oil distillation and some organic compound processing. Thankfully, a Pyrolyse Oven and a Distillation Tower will handle it all smoothly.\n\nIf you manage a steady supply of High Octane Gasoline, you should be able to finish the entire modpack running only on Combustion Generators.", "quests.gregtech_energy.lce_fuel.task": "I got enough", "quests.gregtech_energy.large_solar.subtitle": "Huge Easy Power", @@ -2235,14 +2320,14 @@ "quests.gregtech_energy.spending_energy.title": "Spending Energy", "quests.gregtech_energy.spending_energy.subtitle": "Oh you will spend energy", "quests.gregtech_energy.spending_energy.desc.1": "How to spend all this energy?\n\nUse your machines! Sounds simple, right?\nWell... not exactly. There are many small details that you should learn to help you on your quest to completing &3TerraFirmaGreg&r.\n\nBasic Machines:\n- These machines are simple.\n- They can request up to &a2A&r each.\n- If you input a higher tier of energy... &4\uD83D\uDCA5 they explode&r.\n\nGregTech Multiblocks:\nNow things get interesting. Multiblocks offer more flexibility and power — &eif&r you understand how they work.", - "quests.gregtech_energy.spending_energy.desc.2": "Standard Mechanics:\n- If a multiblock can accept two Energy Hatches (most of them), this allows you to use higher-tier recipes than the machine’s base tier.\n\nExample:\nIf you're using a Large Mixing Vessel and you install two IV Energy Hatches, it will be able to process &cLuV&r-tier Mixer recipes.\n\nThis is one of the key benefits of multiblocks over single-block machines — to upgrade them to the next tier, you only have to swap out their energy hatches instead of replacing the whole machine.", - "quests.gregtech_energy.spending_energy.desc.3": "Some multiblocks only accept one Energy Hatch, but that doesn't mean you're limited to 1A!\n\nYou can still use a 4A or 16A Energy Hatch. This will allow &bOverclocking&r of recipes but not the recipe tier.\n\nExample:\nThe Large Circuit Assembler only allows one Energy Hatch. If you install a 4A IV Energy Hatch, you will be able to overclock all IV and lower recipes.\n\nHowever, it cannot craft LuV-tier recipes because the machine doesn't support multiple hatches. That limitation is intentional, to prevent skipping the GregTech progression system.", + "quests.gregtech_energy.spending_energy.desc.2": "Standard Mechanics:\n- If a multiblock can accept two Energy Hatches (most of them), this allows you to use higher-tier recipes than the machine’s base tier.\n\nExample:\nIf you're building an Electric Blast Furnace and you install two &7LV&r Energy Hatches, it will be able to process &6MV&r-tier EBF recipes.\n\nThis is one of the key benefits of multiblocks over single-block machines — to upgrade them to the next tier, you only have to swap out their energy hatches instead of replacing the whole machine.", + "quests.gregtech_energy.spending_energy.desc.3": "Some multiblocks only accept one Energy Hatch, but that doesn't mean you're limited to 1 amp!\n\nYou can still use a 4A or 16A Energy Hatch. This will allow &bOverclocking&r of recipes, but not the recipe tier.\n\nExample:\nThe Large Circuit Assembler only allows one Energy Hatch. If you install a 4A IV Energy Hatch, you will be able to overclock all IV and lower recipes.\n\nHowever, it cannot craft LuV-tier recipes because the machine doesn't support multiple hatches. That limitation is intentional, to prevent skipping the GregTech progression system.", "quests.gregtech_energy.spending_energy.desc.4": "So remember: More amps on a single hatch means faster processing, but two hatches are required to unlock higher-tier recipes.", "quests.gregtech_energy.spending_energy.task": "I understand", "quests.gregtech_energy.overclock.title": "Overclock", "quests.gregtech_energy.overclock.subtitle": "Basic upgrade mechanic", "quests.gregtech_energy.overclock.desc.1": "Have you heard about Overclocking, but don't really understand what it is? Let's take some time to explain it.\n\nWe should start with the basics:\n&dLV&r represents a maximum of 32 EU/t — sometimes less, but never more.\n&dMV&r goes up to 128 EU/t.\n&dHV&r reaches 512 EU/t.\nBasically, every tier is a 4x increase in power usage.", - "quests.gregtech_energy.overclock.desc.2": "What happens when you run a lower-tier recipe in a higher-tier machine? That's what we call &eOverclocking&r!\n\nAn &dMV&r recipe (33–128 EU/t) run in an &dHV&r machine will both: 1) Use 4x more energy, and 2) Be 2x faster.\n\nThe same MV recipe in an &dEV&r machine? 8x the energy cost, but only 4x faster.\n\nAs you can see, it's more power efficient to use multiple machines rather than overclocking a single one.\nBut let's be real: in most setups, you’ll prefer overclocking to building a ton of the same machines.\n\nStill, it's good to know this early on, when energy is tight.", + "quests.gregtech_energy.overclock.desc.2": "What happens when you run a lower-tier recipe in a higher-tier machine? That's what we call &eOverclocking&r!\n\nAn &dMV&r recipe (33–128 EU/t) run in an &dHV&r machine will both: 1) Use 4x more energy, and 2) Be 2x faster.\n\nThe same MV recipe in an &dEV&r machine? 16x the energy cost, but only 4x faster.\n\nAs you can see, it's more power efficient to use multiple machines rather than overclocking a single one.\nBut let's be real: in most setups, you’ll prefer overclocking to building a ton of the same machines.\n\nStill, it's good to know this early on, when energy is tight.", "quests.gregtech_energy.overclock.desc.3": "There’s a special kind of overclocking exclusive to just a few multiblocks: &ePerfect Overclocking&r.\nHere, instead of 4x energy for 2x speed, you get &a4x energy&r for &a4x speed&r! This makes it just as efficient as running multiple machines.\n\nCurrently in TerraFirmaGreg, only the following multiblocks support this:\n- Electric Blast Furnace\n- Alloy Blast Smelter\n- Rotary Heat Furnace\n- Large Chemical Reactor\n- Electric Greenhouse", "quests.gregtech_energy.overclock.task": "So the red ones go faster, got it", "quests.gregtech_energy.blast_oc.title": "The Blast Overclocking", @@ -2344,7 +2429,8 @@ "quests.high_voltage.ptfe.subtitle": "A.K.A - Teflon", "quests.high_voltage.ptfe.desc": "&aPolytetrafluoroethylene (PTFE)&r is a &7Carbon&r-&bFluorine&r polymer. Similarly to PVC, PTFE can be used to increase the yield of Plastic Circuit Boards and other crafts. Presently, it is used to make the walls of &3Large Chemical Reactors&r.\n\n&3Chlorine&r is required in the process, which is fully recycled if you electrolyze the &aHydrochloric Acid&r waste.\n\n&bFluorine&r will also be used in the &aUranium&r and &7Naquadah&r refinement processes.\n\n&9Tip:&r From this point onwards, you should be solidifying Polymers as &dBar&r (Ingot) form, as they can easily be shaped to whichever form you will need using the &3Extruder&r.", "quests.high_voltage.nitrobenzene.title": "Benzene Nitro", - "quests.high_voltage.nitrobenzene.desc": "Making &aNitrobenzene&r will boost the energy efficiency of &aBenzene&r roughly &6fourfold&r. You love to see it.\n\nThe catch here is that it takes &dDistilled Water&r, and consumes a bit of &dSulfur&r with every step.", + "quests.high_voltage.nitrobenzene.subtitle": "A shadow of its former self", + "quests.high_voltage.nitrobenzene.desc": "In TerraFirmaGreg, &aNitrobenzene&r and &aBenzene&r have been heavily nerfed. They can still be used as fuel, but now most of their use is as ingredients.\n\nNote that crafting Nitrobenzene consumes a bit of &dSulfur&r with every step.", "quests.high_voltage.lcr.title": "Large Chemical Reactor", "quests.high_voltage.lcr.desc.1": "The &3Large Chemical Reactor (LCR)&r is a multiblock &3Chemical Reactor&r with more input/output slots. Its Teflon casings allow it to process extra recipes.\n\nThe &3LCR&r can perform some exclusive reactions which allow you to combine multiple normal &3Chemical Reactor&r steps into a &6single step&r. Examples below:\n\n&9-&r &aNitrogen Dioxide&r (for Nitric Acid and Dinitrogen Tetroxide)\n&9-&r &aSulfuric Acid&r\n&9-&r &aPhenol&r\n&9-&r &aEpichlorohydrin&r (you need it for Epoxy!)\n&9-&r &aEpoxy&r", "quests.high_voltage.lcr.desc.2": "There are also &3LCR&r exclusive recipes. For example, &dRadon&r can only be made in the LCR right now.\n\nAll &dOverclocks&r in the &3LCR&r are &6100%% efficient&r (known as Perfect overclocks); each overclock will &5quadruple the speed&r, as opposed to doubling it.\n\nThe &3LCR&r has yet another &6advantage&r. You can use &32 Energy Hatches&r to allow it to run recipes of the &5next tier&r, similar to the &3Electric Blast Furnace&r.", @@ -2474,6 +2560,8 @@ "quests.high_voltage.final_dust.title": "Infinite Dusts", "quests.high_voltage.final_dust.subtitle": "Finally infinite resources", "quests.high_voltage.final_dust.desc": "This is all the &cinfinite resources&r you can obtain on the &7Moon&r before unlocking the more advanced processing available on &eVenus&r.\n\nWith these, you should have everything you need to keep progressing through &dGregTech&r — especially to secure the &amaintenance&r of your Moon Base.\n\nThese resources are essential for:\n• Crafting &dAE2 components&r\n• Producing an &cinfinite&r supply of &6Railgun Ammo&r\n\nPassive automation is now within your reach — take the step and make it happen!", + "quests.high_voltage.titanium_greate.title": "Titanium-tier Greate", + "quests.high_voltage.titanium_greate.desc": "This is the final tier of Greate that's accessible in TerraFirmaGreg. The only \"extreme\" it's doing is being extremely optional.", "quests.low_voltage": "&7LV&r - Low Voltage", "quests.low_voltage.subtitle": "Tame electricity and begin your GregTech journey", "quests.low_voltage.lv_machine_hull.title": "Your second machine hull", @@ -2505,7 +2593,7 @@ "quests.low_voltage.link_chapter.title": "Explain energy to me", "quests.low_voltage.link_chapter.subtitle": "There is a whole chapter about energy", "quests.low_voltage.link_chapter.desc": "View the chapter by clicking here", - "quests.low_voltage.link_chapter.task": "Read it", + "quests.low_voltage.link_chapter.task": "I read it", "quests.low_voltage.lv_combuston_gen.title": "The Combustion Generator", "quests.low_voltage.lv_combuston_gen.subtitle": "It does boom and make energy", "quests.low_voltage.lv_combuston_gen.desc": "The &7LV Combustion Generator&r may be a bit more expensive to craft compared to other generators, but its fuels carry a lot of energy. This makes it easier to move, or if you need to power a generator far from your base, a drum filled with &2Bio Diesel&r can transport a large amount of EU.\n\nLike other &7LV Generators&r, it produces &a32 EU/t&r.", @@ -2519,6 +2607,15 @@ "quests.low_voltage.lv_seeds.subtitle": "These are tall plants", "quests.low_voltage.lv_seeds.desc": "If you come across these plants, you should pick them up and start a farm.\n\nThey will be your best source of &aSeed Oil&r, a liquid used for producing &eBio Diesel&r. Canola is a bit more resistant to lower temperatures, while Sunflowers are happier in warmer climates. You also could grow them in your Electric Greenhouse if you don't want to spend as much time farming, at the expense of having to spend a little power to grow them.", "quests.low_voltage.lv_seeds.task": "Canola or Sunflowers", + "quests.low_voltage.lv_gas_turbine.title": "The Gas Turbine", + "quests.low_voltage.lv_gas_turbine.subtitle": "It needs more circuits but less materials", + "quests.low_voltage.lv_gas_turbine.desc": "With the help of &7Syngas&r, you now have a viable way to use the &8Gas Turbine&r at &7LV&r. They work exactly like the other &6generators&r but should be a tiny bit cheaper than the &6Combustion Generator&r.", + "quests.low_voltage.lv_gas_syngas.title": "Syngas", + "quests.low_voltage.lv_gas_syngas.subtitle": "Not Wood Gas", + "quests.low_voltage.lv_gas_syngas.desc": "Making &7Syngas&r is really easy. You simply need &b3 Coke Ovens&r for each &6Brewery&r or &6Vacuum Chamber&r. Then you collect &7wood&r with the help of a &bCreate Tree Farm&r to minimize the energy costs, and you can enjoy this weak but easy-to-make &7gas fuel&r.", + "quests.low_voltage.lv_naphtha_light.title": "Naphtha and Light Oil", + "quests.low_voltage.lv_naphtha_light.subtitle": "You can make plastic with them", + "quests.low_voltage.lv_naphtha_light.desc": "If you really hate farming and prefer adventuring in the &6desert&r or mining massive amounts of &7Oilsands&r, then maybe &7Naphtha&r (better from &7Raw Oil&r) or &7Light Fuel&r (better from &7Oil&r) should be fuels you could look at.\n\nBeing quite good for how easy they are to produce, they need to be manually harvested at that point though.", "quests.low_voltage.lv_turbo_charge.title": "Turbo Charger", "quests.low_voltage.lv_turbo_charge.subtitle": "Useful to charge your electric tools faster", "quests.low_voltage.lv_turbo_charge.desc": "&oThis quest's subject is optional, but may still be of interest to you. We've put it here in the name of completeness.&r\n\nThe &3Turbo Charger&r charges &6RF and EU&r items such as &9Drills&r extremely quickly.\n\nIt accepts up to 4 Amps for every item it charges, making it &6twice as fast&r as the &3Battery Buffer&r. It cannot discharge, though.\n\n&eAny&r Charger will complete this Quest.", @@ -2685,7 +2782,7 @@ "quests.low_voltage.lv_nitrogen.task": "Nitrogen", "quests.low_voltage.lv_arc_furnace.title": "The Arc Furnace", "quests.low_voltage.lv_arc_furnace.subtitle": "The Arc Furnace has never been so good", - "quests.low_voltage.lv_arc_furnace.desc.1": "The &3Arc Furnace&r uses a lil' bit of &9Oxygen&r to smelt items in a different fashion than Furnaces.\n\nYou can use it to make easier &aWrought Iron&r, double your &aGlass&r, and gain access to &aAnnealed Copper&r for cheaper electronic components. It's also your new best way to make &4Red Steel&r and &1Blue Steel&r Ingots!\n\nIt can also recycle various components and machines back to their original materials.", + "quests.low_voltage.lv_arc_furnace.desc.1": "The &3Arc Furnace&r uses a lil' bit of &9Oxygen&r to smelt items in a different fashion than Furnaces.\n\nYou can use it to make easier &aWrought Iron&r, double your &aGlass&r, and gain access to &aAnnealed Copper&r for cheaper electronic components.\n\nIt can also recycle various components and machines back to their original materials.", "quests.low_voltage.lv_arc_furnace.desc.2": "&l&3Lore:&r&o Previous GregTech versions had both the Arc Furnace and the &bPlasma Arc Furnace&f. In that case, why not use one machine for both? Well, that's exactly what we thought - but we ultimately decided to remove one of the two &bplasma&f recipes. And then the other &bplasma&f recipe.\n\n&oIn short, the &bPlasma Arc Furnace&f is &4gone&f. RIP.", "quests.low_voltage.lv_extractor.title": "Basic Liquid Extraction", "quests.low_voltage.lv_extractor.subtitle": "The Extractor extracts...", @@ -2707,7 +2804,7 @@ "quests.low_voltage.mold_plate.desc": "Stop wasting your time with your &6Alloy Smelter&r. You're gonna need a lot of &6Rubber Sheets&r, and later on you will also use it for other kinds of plastics.\n\nYou may think you can use the Extruder to make rubber sheets instead, but the &6Fluid Solidifier&r can do so much more, while the Extruder is pretty useless until &bMV&r.", "quests.low_voltage.cupronickel_ingot.title": "Cupronickel Ingots", "quests.low_voltage.cupronickel_ingot.subtitle": "It's an alloy", - "quests.low_voltage.cupronickel_ingot.desc": "&7A big part of progression in GregTech revolves around gaining access to new materials\nthat you'll use to upgrade your machines or unlock advanced components.&r\n\nThe first alloy you'll encounter is &bCupronickel&r — the beginning of a long journey.\nThis material is used to upgrade your &6Electric Blast Furnace&r, an essential step in your industrial growth.\n\nLuckily, this first step is fairly simple: a basic &7LV Alloy Smelter&r will get the job done.\nSo even if the recipe asks for &b128 Cupronickel&r, don't worry — it's easier than it looks!&r\n\nLater on, their counterparts will become much more complex, so enjoy the simplicity while it lasts!", + "quests.low_voltage.cupronickel_ingot.desc": "A big part of progression in GregTech revolves around gaining access to new materials that you'll use to upgrade your machines or unlock advanced components.\n\nOne such material you'll encounter is &bCupronickel&r — the beginning of a long journey.\nThis material is used to build your first &6Electric Blast Furnace&r, an essential step in your industrial growth.\n\nLuckily, this first step is fairly simple: an Alloy Smelter will get the job done.\nSo even if the recipe asks for &b128 Cupronickel&r, don't worry — it's easier than it looks!&r\n\nLater on, their counterparts will become much more complex, so enjoy the simplicity while it lasts!", "quests.low_voltage.cupronickel_coil.title": "Cupronickel Coils", "quests.low_voltage.cupronickel_coil.subtitle": "Baby's first heating coil", "quests.low_voltage.cupronickel_coil.desc": "Prepare &a128 Cupronickel&r, &a32 Bronze&r and &a16 Tin Alloy&r to craft the Heating Coils required for your first Electric Blast Furnace.\n\nThis is still less than half (!) of the cost of the whole EBF in raw materials. You will also need about a stack each of Invar and Steel, so get mining.\n\nThe Cupronickel Coils will allow the EBF to perform recipes up to &d1,800K&r (ignoring Voltage bonuses). That's pretty hot if you ask us.\n\n&6Tutorial on Coils in the &lGregTech Energy&r&6 tab - check it out to learn more!&r", @@ -2736,6 +2833,12 @@ "quests.low_voltage.mv_hull.subtitle": "This is going quite well, only 7 to go!", "quests.low_voltage.mv_hull.desc1": "Good job, you now have your &bMV Machine Hull&r, your first &bMV Circuit&r and your first &6Circuit Assembler&r.\n\nThis is the gist of &6GregTech&r, every tier you are going to make new &6machines&r using new &6materials&r and &6chemicals&r. You are going to have &5so much fun&r, we are kinda jealous!", "quests.low_voltage.mv_hull.desc2": "Before going further into &bMV&r, remember that in &6TFG&r you can use &6Create&r to reinforce your infrastructure if you don't want to use too much of GregTech. Aluminium Shafts and Cogwheels have 4x the stress capacity of steel ones, so you should be able to run all your machines much faster with them!", + "quests.low_voltage.aluminium_greate.title": "Aluminium-tier Greate", + "quests.low_voltage.aluminium_greate.subtitle": "Also known as Medium Stress", + "quests.low_voltage.aluminium_greate.desc": "It's been a while since your last upgrade, but now you have access to the next tier of Greate cogs and shafts. Like before, the aluminium ones have &bfour times&r the stress capacity of steel.\n\nContinuing with Greate beyond this point is very optional, and we encourage you to move over to GregTech, but the upgrade may help you de-spaghettify some of your old setups if you'd like to continue using them.\n\nYou can scale up your stress more with a &eSteam Engine&r, or convert EU into SU via the &9Create Additions&r &eElectric Motor&r.", + "quests.low_voltage.oil.title": "Found Oil early?", + "quests.low_voltage.oil.subtitle": "For LV overachievers", + "quests.low_voltage.oil.desc": "If you've found any Oilsands ores or Oil spouts (in deserts) in your travels, you can actually start using a little bit of it in LV.\n\nYou can either convert it into Heavy Fuel and put it in your boilers, or better yet, use it to make a little &bPolyethylene&r!\n\nThe details of this are in the MV chapter, but at this point you can use the polyethylene to make a few things such as cheaper Machine Hulls and Diodes.", "quests.medium_voltage": "&bMV&r - Medium Voltage", "quests.medium_voltage.subtitle": "Venture into petrochemistry and refine electronics", "quests.medium_voltage.mv_machine_hull.title": "Welcome to MV!", @@ -2747,7 +2850,7 @@ "quests.medium_voltage.mv_miner.title": "Automatic Mining", "quests.medium_voltage.mv_miner.subtitle": "So are you bored of mining yourself?", "quests.medium_voltage.mv_miner.desc.1": "This kind soul&r will mine ores for you when placed above a vein.\n\nVertical range is unlimited below the miner. Horizontal range is displayed in the tooltip.\n\nThe &bMV&r variant may not have the range to mine a full vein, but the &6HV&r variant does, so you may wish hold off for now. Get &eeither&r to complete this Quest.", - "quests.medium_voltage.mv_miner.desc.2": "You will need &9Power&r. &aCharged Batteries&r may work, but they tend to run out of power, which is a bit inconvenient.\n\nOur top suggestion is to use a filled &3Drum&r of some kind of fuel &7(if you're using Steam, no dice!)&r and a &3Generator&r.\n\nPlace the Drum above your Generator and right-click it with a &5Soft Mallet&r to auto-output into the Generator.", + "quests.medium_voltage.mv_miner.desc.2": "You will need &9Power&r. &aCharged Batteries&r may work, but they tend to run out of power, which is a bit inconvenient.\n\nOur top suggestion is to use a filled &3Drum&r of some kind of fuel &7(if you're using Steam, no dice!)&r and a &3Generator&r.\n\nPlace the Drum above your Generator and right-click it with a &5Soft Mallet&r or &5Screwdriver&r to auto-output into the Generator.", "quests.medium_voltage.mv_miner.desc.3": "&cNote:&r Do not forget to &dchunkload&r all 9 chunks of the ore vein &7(open the map, claim the chunks with ctrl left-click, and enable force loading after claiming them)&r.\n\n&9Tip:&r You can either use an &3ME Chest&r, a &3Backpack&r, or a &3GT Crate&r as the output inventory to make transporting the ores back home a simple task. The &3ME Chest&r can be powered with EU directly, by the way.", "quests.medium_voltage.mv_miner.task": "Any miner", "quests.medium_voltage.mv_component.title": "The MV Components", @@ -2795,7 +2898,7 @@ "quests.medium_voltage.mv_fluid_rig.desc.1": "It's quite the investment to own a &3Fluid Drilling Rig&r, but it is &oby far&r the most prominent &6source of Oil&r.\n\nIt pumps fluids from underneath Bedrock itself. Note that the fluids aren't actually there, instead being simulated.\n\nFluid veins are stored within &cchunk-sized regions&r. Each vein has a different fluid, but they are mostly types of Oil.\n\nYou can't carry out prospecting for fluid veins &oyet&r - this will come at &6HV&r.", "quests.medium_voltage.mv_fluid_rig.desc.2": "Each vein generates with a different base yield. This is typically between &d150L&r to &d300L per second&r.\n\nWhen drained, fluid veins will slowly deplete. This will cause the fluid yield to decrease over time until it reaches its depletion yield. At that point, you should move the Rig to a different vein.\n\nA &3Basic Fluid Drilling Rig&r will last for 100,000 operations (with 1 second per operation) until depletion. This is enough for &6well over 10,000&r buckets of Oil. Higher tier Rigs will massively increase the yield, while also decreasing the depletion rate.", "quests.medium_voltage.mv_fluid_rig.desc.3": "&lWhat you can find in the &2Overworld&r&l:&r\n\n&9Oil:&r richer in &aLight Fuel&r, the most appreciated variant.\n&9Light Oil:&r richer in &aRefinery Gas&r, usable for power.\n&9Heavy Oil:&r richer in &aHeavy Fuel&r, which has uses that are more niche but notably Toluene.\n&9Raw Oil:&r richer in &aNaphtha&r, the best source of the early-game oil products.\n&9Natural Gas:&r grants &aRefinery Gas&r with no distillation required.\n&9Sea Water:&r grants &aSodium&r and &aChlorine&r, useful later.", - "quests.medium_voltage.mv_fluid_rig.desc.4": "&lWhat you can find in the &cNether&r&l:&r\n\n&9Natural Gas:&r grants &aRefinery Gas&r but with higher yield than the Overworld vein.\n&9Lava:&r hopefully, you know what this is.\n\nWhen starting out, you may have to tap randomly until you find something you like. Remember that whatever you pump could also be used to refuel your Fluid Rig.", + "quests.medium_voltage.mv_fluid_rig.desc.4": "&lWhat you can find in the &cBeneath&r&l:&r\n\n&9Natural Gas:&r grants &aRefinery Gas&r but with higher yield than the Overworld vein.\n&9Lava:&r hopefully, you know what this is.\n\nWhen starting out, you may have to tap randomly until you find something you like. Remember that whatever you pump could also be used to refuel your Fluid Rig.", "quests.medium_voltage.mv_oilsands.title": "America Simulator", "quests.medium_voltage.mv_oilsands.subtitle": "This quest was sponsored by the US Military", "quests.medium_voltage.mv_oilsands.desc": "Underground, you may come across pure Oilsands ore veins. You can &3centrifuge&r the Dust to get &aOil&r.\n\n&9&lNote:&r&l The Oil path is one path towards &9&lEthylene&r&l. The other paths involve getting natural with some Ethanol.&r\n\nFor now, Oil is &doptional&r. It becomes mandatory much later when you get to &5EV&r.\n\nOil can also be refined in the form of &aLight Fuel&r, &aDiesel&r or even &aGasoline&r, which are excellent power options.\n\nIf you chose this path, you should use it for both Power and Ethylene.\n\nOilsands are a &6great starting point&r - they'll tide you over until you unlock Fluid Drilling Rigs.", @@ -2819,17 +2922,25 @@ "quests.medium_voltage.mv_distillery.desc.3": "This doesn't mean that the &3Distillery&r is the worse of the two. It is unlocked earlier, and it is &dsmaller&r, &dcheaper&r, and &dmore energy efficient&r per recipe.\n\nHell, in many cases, you won't even mind losing the other Fluids.\n\n&3Distilleries&r are an essential component for power generation, whether you pick &aDiesel&r or &aBenzene&r.\n\nYou'll probably want many of them at as low-tier as possible to avoid the energy losses from Overclocking.", "quests.medium_voltage.mv_distillery.task": "Either an LV or MV Distillery", "quests.medium_voltage.mv_benzene.title": "The Church of Benzene", - "quests.medium_voltage.mv_benzene.subtitle": "In the end, it's always Benzene", + "quests.medium_voltage.mv_benzene.subtitle": "In the end, it &lwas&r always Benzene", "quests.medium_voltage.mv_benzene.desc.1": "&aBenzene&r is a &9Gas Fuel&r. To skip some frustration, let's check out the two best ways to obtain it.\n\nThe first option is typically &dWood based&r. Put Logs in the &3Pyrolyse Oven&r for &9Wood Tar&r. The Charcoal you obtain can then be processed in &3Extractors&r for even more &9Wood Tar&r, which you &3distill&r for &aBenzene&r.\n\nYour second option is &dHeavy Oil based&r. Put Heavy Oil in a &3Distillery&r for &9Heavy Fuel&r, which you &aseverely steam-crack&r and &3distill&r again for &aBenzene&r.", - "quests.medium_voltage.mv_benzene.desc.2": "For information on how to process Oil, check the Light Fuel and Naphtha Quests.\n\nIn general, it is better to prioritize placing down more machines (&dparallelisation&r) over overclocking the recipes. That way, you end up losing less energy processing the resources.\n\n&aBenzene&r is burned in a &3Gas Turbine&r. This power source starts weaker than its &eDiesel&r cousin, but gets a big boost when refined to &6Nitrobenzene&r in &6HV&r. Ultimately, your power source is your choice.", + "quests.medium_voltage.mv_benzene.desc.2": "For information on how to process Oil, check the Light Fuel and Naphtha Quests.\n\nIn general, it is better to prioritize placing down more machines (&dparallelisation&r) over overclocking the recipes. That way, you end up losing less energy processing the resources.\n\n&aBenzene&r is burned in a &3Gas Turbine&r at a pretty terrible rate. This power source starts weaker than its &eDiesel&r cousin, but can be enhanced by being refined into &6Reformate Gas&r. Ultimately, your power source is your choice.", + "quests.medium_voltage.mv_benzene.desc.3": "&l&3Lore:&r&o Benzene has been one of the most powerful gas fuels since GTCEu - so good that it became a meme. Nowadays, its days are numbered everywhere.", + "quests.medium_voltage.reformate_gas.title": "The Reformate Church", + "quests.medium_voltage.reformate_gas.subtitle": "When one giant falls, a new one arises", + "quests.medium_voltage.reformate_gas.desc": "The &8Reformate Gas&r is your new go-to gas fuel at &bMV&r if that's the path you want to take. For perfect efficiency, you only need &61 Coal Liquefaction Tower&r and &62 Pyrolyze Ovens&r, and you can start producing this precious gas non-stop.\n\nOh wait, first you need to find &5Rhenium&r, a new material only found within the hot and dry region of &7TerraFirmaCraft&r. The amounts consumed are so low that one vein should last you to the end of the modpack, or at the very least to &6HV&r, where - with the help of the &6Cracker&r - this gas can become truly infinite.", "quests.medium_voltage.mv_light_fuel.title": "Light Fuel", - "quests.medium_voltage.mv_light_fuel.subtitle": "Turn up the Lights in here, baby", + "quests.medium_voltage.mv_light_fuel.subtitle": "Turn up the lights in here, baby", "quests.medium_voltage.mv_light_fuel.desc": "Distillating &aOil&r will give you Fuel that you will need to desulfurize.\n\n&aHydrogen Sulfide&r is perfectly &drecycled&r in an &3Electrolyzer&r.\n\nTo automate this process, simply place your &3Chemical Reactor&r and your &3Electrolyzer&r next to each other. Be sure to use your &5Screwdriver&r to &4enable input from the output side&r.\n\n&aLight Fuel&r is a good &9Power&r option, but there's something even greater... check the Quest to the left.", "quests.medium_voltage.mv_diesel.title": "The Church of Diesel", "quests.medium_voltage.mv_diesel.subtitle": "Mother, how is diesel made?", "quests.medium_voltage.mv_diesel.desc.1": "&aDiesel&r is a &dOil-based &9Combustion Fuel&r.\n\nTo mix &aLight Fuel&r and &aHeavy Fuel&r, the right ratio for &3Distilleries&r is &63:2&r from &dOil&r or &dRaw Oil&r.\n\nThis would necessitate 3 Distilleries for Light Fuel, or 2 Distilleries for Heavy Fuel.", "quests.medium_voltage.mv_diesel.desc.2": "You can cut the amount of &dOil&r required &6drastically&r by using &dHeavy Oil&r for &aHeavy Fuel&r specifically. &dOilsands&r is a great option if you wish to go down this route!\n\n&o(For the math nerds, you go from 8.33 Oil -> 6 Diesel, to 5 Oil + 0.4 Heavy Oil -> 6 Diesel)&r\n\n&eNote:&r Do &cnot attempt&r to put Oil in the &3Distillation Tower&r You might think it's a good idea because it gives both Light Fuel and Heavy Fuel. However, this process requires a lot of overclocking to be worth your time, and you will lose more energy than what the byproducts are worth.", "quests.medium_voltage.mv_diesel.desc.3": "In general, it is better to prioritize placing down more machines (&dparallelisation&r) over overclocking the recipes. That way, you end up losing less energy processing the resources.\n\n&aDiesel&r is burned in a &3Combustion Generator&r. It can be further refined to &6Cetane-Boosted Diesel&r in &6HV&r. Compared to the other power sources, it is generally more efficient, but a more demanding processing line. If you take the &eOil&r route for &aPolyethylene&r, this can work great with existing infrastructure. Ultimately, the power source you want to use is your choice.", + "quests.medium_voltage.coal_tower.title": "Coal Liquefaction Tower", + "quests.medium_voltage.coal_tower.subtitle": "Who doesn't love new Multiblocks", + "quests.medium_voltage.coal_tower.desc.1": "The &bCoal Liquefaction Tower&r is a new &bmultiblock&r used in the process of making &aReformate Gas&r and its byproducts, &7Coal Tar&r and &7Syngas&r. Depending on the &9Coil&r you use, you will get a discount on the &7EU/t&r cost of every recipe. Simply use shift-click while hovering on a coil to know its bonuses.\n\nNotice that the &9Coal Liquefaction Tower&r can be boosted by using &8Hydrogen&r, reducing the duration and therefore the cost. Don't forget to set the right &6circuit&r so it works.\n\nBy the way, if you don't know, a second is 20 ticks. So the amount it consumes per tick has to be multiplied by 20 to know how much it consumes per second.", + "quests.medium_voltage.coal_tower.desc.2": "&l&3Lore:&r&o The same person who made the Fission Reactor also made the first design of the Coal Liquefaction Tower, isn't it crazy.", "quests.medium_voltage.mv_jetpack.title": "I Believe I Can Fly", "quests.medium_voltage.mv_jetpack.subtitle": "...well, almost Fly", "quests.medium_voltage.mv_jetpack.desc": "This Jetpack takes most &aCombustion Fuels&r (excluding oils) to enable a primitive form of flight.\n\nFill it like you would fill a Drum, or with a &3Canning Machine&r.\n\nPress &4H&r (default) to enable Hover Mode.", @@ -2860,7 +2971,7 @@ "quests.medium_voltage.mv_aciditic.title": "It will Melt Your Flesh", "quests.medium_voltage.mv_aciditic.subtitle": "...if you don't read this quest.", "quests.medium_voltage.mv_aciditic.desc.1": "You may notice that some fluids say they are &aAcidic&r, with &9Sulfuric Acid&r being one of them.\n\nThis means that many fluid pipes will not be able to transport them safely!\n\nAt &bMV&r, the cheapest pipes for acid transportation are probably &aGold&r, with the more expensive &aVanadium Steel&r or &aChrome&r pipes taking second and third place.\n\n&aStainless Steel&r or &aPolytetrafluoroethylene&r (try saying that fast) will be valid options once you are in &6HV&r.", - "quests.medium_voltage.mv_aciditic.desc.2": "You have three options for acid storage at around this point: &dGlass Vials&r, &dGold Drums&r, or &dSuper Tanks&r. Glass Vials are like &9Fluid Cells&r, and are made to store acids. Gold Drums are self-explanatory. Super Tanks will be unlocked after &9Polyethylene&r, and can store any fluid without restriction.\n\n&cWARNING:&r Acids in the wrong pipes will cause &cvoiding&r, &cpipe burning&r, and high chance of &cdeath&r! Be careful!\n\n&l&3Lore:&r&o The acid transportation and storage mechanics originate from GregTech 6.", + "quests.medium_voltage.mv_aciditic.desc.2": "You have three practical options for acid storage at around this point: &dGlass Vials&r, &dGold Drums&r, or &dSuper Tanks&r. Glass Vials are like &9Fluid Cells&r, and are made to store acids. Gold Drums are self-explanatory. Super Tanks can store any fluid without restriction, but are the most expensive.\n\n&cWARNING:&r Acids in the wrong pipes will cause &cvoiding&r, &cpipe burning&r, and high chance of &cdeath&r! Be careful!\n\n&l&3Lore:&r&o The acid transportation and storage mechanics originate from GregTech 6.", "quests.medium_voltage.mv_aciditic.task": "I'm an acid professional, don't worry", "quests.medium_voltage.mv_hydrochloric.title": "Hydrochloric Acid", "quests.medium_voltage.mv_hydrochloric.subtitle": "You'll need a lot of this!", @@ -2881,9 +2992,6 @@ "quests.medium_voltage.mv_polyethylene.title": "Polyethylene", "quests.medium_voltage.mv_polyethylene.subtitle": "Baby's first polymer!", "quests.medium_voltage.mv_polyethylene.desc": "If you want to be less fancy, just call it plastic.\n\nFor the polymerization process, add &aOxygen&r, which gives better returns than Air, then solidify like you would with Rubber.\n\n&aPolyethylene (PE)&r is the key to unlocking &6many new things&r. It's commonly used as &dSheets&r, or in &dFluid&r form.\n\n&l&3Lore:&r&o The OreDict and fluid name for Polyethylene in 1.12.2 GTCEu was &bplastic&f, for cross-mod compatibility.", - "quests.medium_voltage.mv_tank.title": "Super Tank", - "quests.medium_voltage.mv_tank.subtitle": "Super Tanks are OP!", - "quests.medium_voltage.mv_tank.desc": "No, but seriously.\n\nThis is the &cu&6l&et&ai&bm&9a&5t&4e&r portable Fluid storage solution. &64,000 buckets of storage&r - in one single block without any regards to temperature or acidity!\n\nLike Drums, Super Tanks &6keep their fluids when broken&r, and can be cleared in the crafting grid.\n\nIf you hunger for &9even more&r storage, take a look at higher tier Super Tanks or AE2 Fluid Storage Cells.", "quests.medium_voltage.mv_pvc.title": "Polyvinyl Chloride", "quests.medium_voltage.mv_pvc.subtitle": "You've already made one polymer, what's two?", "quests.medium_voltage.mv_pvc.desc": "&aPolyvinyl Chloride (PVC)&r is the 3rd-most produced plastic in real life. Here in CEu, it can be substituted for Polyethylene in the production of &aPlastic Circuit Boards&r and other items to increase the yield. It is required from &5EV&r onwards to wrap Cables.\n\nPVC item pipes also have the &6highest throughput&r available for a while, but most of your setups right now won't need such speed. Still, it's good to keep this knowledge in your pocket.\n\n&9Pro tip:&r The fluid form of PVC is never used in base GTCEu, so feel free to solidify all of it into sheets.", @@ -2980,6 +3088,9 @@ "quests.medium_voltage.lsb.title": "Getting very steamy", "quests.medium_voltage.lsb.subtitle": "If you have unlimited fuel, it can still be good", "quests.medium_voltage.lsb.desc": "If you're &lstill&r running off the &3Large Bronze Boiler&r, you may want to upgrade to the &3Large Steel Boiler&r.\n\nIt's slightly more efficient than the &3LBB&r, and produces &d1800 mB/t of Steam&r.\n\nWe'd recommend you try other power options at this point.", + "quests.medium_voltage.stainless_greate.title": "Stainless Steel-tier Greate", + "quests.medium_voltage.stainless_greate.subtitle": "High Stress", + "quests.medium_voltage.stainless_greate.desc": "This quest is just here to let you know that Greate has another upgrade at this point.\n\nYou may find the next tier of Crushing Wheels useful, as they can give the full amount of byproducts, just like the HV Macerator, but also process multiple items at the same time!", "quests.metal_age": "Metallurgy Age", "quests.metal_age.subtitle": "Your First Technological Advancements.", "quests.metal_age.weld_bronze_ingots.title": "Welding Bronze", @@ -3075,7 +3186,7 @@ "quests.metal_age.weak_steel.task3": "1 Part Black Bronze", "quests.metal_age.highcarb_black_steel.title": "Black Steel Ingredients", "quests.metal_age.highcarb_black_steel.subtitle": "Conservation of matter does not apply", - "quests.metal_age.highcarb_black_steel.desc": "The final two anvils are made out of complex alloys that will require a lot of metal to be created. Weak Steel and Pig Iron can be welded to create High Carbon Black Steel, which can then be worked on an anvil into Black Steel.", + "quests.metal_age.highcarb_black_steel.desc": "The final two anvils are made out of complex alloys that will require a lot of metal to be created. Weak Steel and Pig Iron can be welded to create High Carbon Black Steel, which can then be worked on an anvil into Black Steel.\n\nOnce you get a Steam Alloy Smelter, use that instead to &6double your output&r.", "quests.metal_age.black_steel_anvil.title": "T5 Anvil: Black Steel", "quests.metal_age.black_steel_anvil.subtitle": "Steam power is within your grasp", "quests.metal_age.black_steel_anvil.desc": "With the Black Steel Anvil you'll now be able to work Black Steel Ingots into different items.\n\nYou've also now opened up a massive new section in the Early Automation chapter related to high pressure Steam Power!\n\nFrom here, you can either dive straight into industrialization or finish up the last tier of anvils if you'd like. You can't avoid colored steel forever, though!", @@ -3100,17 +3211,17 @@ "quests.metal_age.weak_blue_steel.sterling_silver": "1 Part Sterling Silver", "quests.metal_age.weak_blue_steel.bismuth_bronze": "1 Part Bismuth Bronze", "quests.metal_age.highcarb_red_steel.title": "Red Steel Ingredients", - "quests.metal_age.highcarb_red_steel.subtitle": "Could deleting matter like this power a nuclear bomb?", - "quests.metal_age.highcarb_red_steel.desc": "Red Steel first starts as High Carbon Red Steel, which is made by welding Weak Red Steel and Black Steel. It needs to be worked on the Anvil to turn it into Red Steel", + "quests.metal_age.highcarb_red_steel.subtitle": "Minecraft is not a physics simulator", + "quests.metal_age.highcarb_red_steel.desc": "Red Steel first starts as High Carbon Red Steel, which is made by welding Weak Red Steel and Black Steel. It needs to be worked on the Anvil to turn it into Red Steel.\n\nIf you have a Steam Alloy Smelter, use that instead to &6double your output&r.", "quests.metal_age.highcarb_blu_steel.title": "Blue Steel Ingredients", "quests.metal_age.highcarb_blu_steel.subtitle": "Lavoisier is rolling in his grave", - "quests.metal_age.highcarb_blu_steel.desc": "Blue Steel first starts as High Carbon Blue Steel, which is made by welding Weak Blue Steel and Black Steel. It needs to be worked on the Anvil to turn it into Blue Steel", + "quests.metal_age.highcarb_blu_steel.desc": "Blue Steel first starts as High Carbon Blue Steel, which is made by welding Weak Blue Steel and Black Steel. It needs to be worked on the Anvil to turn it into Blue Steel.\n\nIf you have a Steam Alloy Smelter, use that instead to &6double your output&r.", "quests.metal_age.redblu_anvil.title": "T6 Anvil: Red or Blue Steel", "quests.metal_age.redblu_anvil.subtitle": "It's over", "quests.metal_age.redblu_anvil.desc": "The final tier of Anvil! With the Tier 6 Anvil you'll be able to work both Red and Blue Steel Ingots into different items.\n\nThis marks the end of TerraFirmaCraft's progression. Now it's time to finish the Industrial Age and create your very first Low Voltage circuitry.", "quests.metal_age.red_steel_flask.title": "Red Steel Flask", "quests.metal_age.red_steel_flask.subtitle": "This got nothing on the Iron Flask", - "quests.metal_age.red_steel_flask.desc": "The Red Steel Flask is the best Flask available. It may hold the same amount of liquid as an Iron Flask, but the Red Steel Flask never breaks.", + "quests.metal_age.red_steel_flask.desc": "The Red Steel Flask is the best Flask available. It may hold the same amount of liquid as an Iron Flask, but the Red Steel Flask never breaks.\n\nFor the Silk, Phantoms can be found all over the Beneath, but are more common in the bottom layer.", "quests.metal_age.redblu_buckets.title": "Bucket Components", "quests.metal_age.redblu_buckets.subtitle": "Bucket Fusion Reactor", "quests.metal_age.redblu_buckets.desc": "The final task in the Metallurgy Age is creating a Bucket. Unlike the wooden bucket and other fluid containers you've been using until now, the Bucket can be used to carry Lava and move around source blocks of other fluids.", @@ -3257,7 +3368,7 @@ "quests.space_survival.stone_dust_centrifuging.title": "Helium-3", "quests.space_survival.stone_dust_centrifuging.subtitle": "Clown gas", "quests.space_survival.stone_dust_centrifuging.desc.1": "The Moon is full of &eHelium-3&r, another important resource, but it's stuck inside the stone! There's two ways to get your hands on some:\n\n1) If you haven't set up any stone dust centrifuging automation before, here's a quick introduction: A Rock Crusher can produce infinite raw stone, which a Macerator crushes into dust for a Centrifuge to process.\n\nHere on the Moon, Anorthosite, Norite, and Phonolite can thus be processed into an infinite source of Helium-3!", - "quests.space_survival.stone_dust_centrifuging.desc.2": "2) Pump it out of the ground with a &9Fluid Rig&r This method is simpler, but doesn't come with any useful byproducts.\n\nHelium-3 is used for several things, of which the most important is making more air to breathe via &6Heliox-3&r! You can also use it as \"fertiliser\" for Chorus Fruit in the Electric Greenhouse, and eventually as another fuel for Fusion Power.", + "quests.space_survival.stone_dust_centrifuging.desc.2": "2) Pump it out of the ground with a &9Fluid Rig&r This method is simpler, but doesn't come with any useful byproducts.\n\nHelium-3 is used for several things, of which the most important is making more air to breathe via &6Heliox-3&r! You can also use it as \"fertilizer\" for Chorus Fruit in the Electric Greenhouse, and eventually as another fuel for Fusion Power.", "quests.space_survival.stone_dust_centrifuging.task": "Any ", "quests.space_survival.compressed_gases.title": "Compressed Breathable Gases", "quests.space_survival.compressed_gases.subtitle": "Because pure Oxygen is deadly", @@ -3356,7 +3467,7 @@ "quests.space_survival.t2_space_suit.desc": "With this next space suit, you'll be able to survive both the &bcoldest&r and the &chottest&r environments that space can throw at you! It's required to stop you from immediately combusting as soon as you set foot on &6Venus&r and &5Mercury&r.\n\nAs a bonus, it also comes with some extra armor and air capacity!", "quests.space_survival.mars_tapping.title": "Crimsene and Warpane", "quests.space_survival.mars_tapping.subtitle": "You LOVE tree tapping!", - "quests.space_survival.mars_tapping.desc": "Crimson and Warped Mushrooms can be tree tapped for &4Crimsene&r and &3Warpane&r respectively.\n\nYou'll need both to get started on producing &9Iodine&r, but they don't often grow in the same place, so you might need to travel a bit. Crimson Mushrooms grow more on the East side of Mars, while Warped grow more on the West.\n\nDon't forget that you can tap directly into open GregTech fluid pipes!\n\n&9Tip:&r Want to show off? You can also build a canoe out of Crimson Stems, and build a Rowboat or Sloop out of Warped ones!", + "quests.space_survival.mars_tapping.desc": "Crimson and Warped Mushrooms can be tree tapped for &4Crimsene&r and &3Warpane&r respectively.\n\nYou'll need both to get started on producing &9Iodine&r, but they don't often grow in the same place, so you might need to travel a bit. Crimson Mushrooms grow more on the East side of Mars, while Warped grow more on the West. You can also obtain the saplings from the corresponding Endermen.\n\nDon't forget that you can tap directly into open GregTech fluid pipes!\n\n&9Tip:&r Want to show off? You can also build a canoe out of Crimson Stems, and build a Rowboat or Sloop out of Warped ones!", "quests.space_survival.iodine.title": "The Iodine Line", "quests.space_survival.iodine.subtitle": "Mushroom chemistry!", "quests.space_survival.iodine.desc": "Mix together the Crimsene and Warpane, along with some Krypton from Mars Air Distillation (it's looped) and the heat from your Fission Reactor, and you'll get Iodine!\n\nThis process is slow, but you shouldn't need a lot of it for now, and there will be better methods of obtaining Iodine on further planets.", @@ -3480,7 +3591,7 @@ "quests.steam_age.fluid_pipes.desc.2": "&aReminder:&r 1 second = 20 ticks... assuming the server isn't lagging.\n\n&dNote:&r GT6-style Pipes are enabled. It means that placing Pipes connects them only to the block they were placed against. To open more connections, use your Wrench on the pipe.\n\nYou can also shift-right click with your Wrench to disable input from a side. This can help counteract sloshing (liquids travelling in an undesired direction).", "quests.steam_age.fluid_drums.title": "Efficient Fluid Storage", "quests.steam_age.fluid_drums.subtitle": "I don't think a wooden barrel can hold molten steel", - "quests.steam_age.fluid_drums.desc.1": "&6TFG&r can quickly get &4overwhelming&r with the plethora of fluids it introduces, so you may be looking for a way to store them.\n\nIntroducing... &aDrums&r! They have large internal buffers, and any &aDrum&r can be broken and picked up and will &dkeep the fluid&r inside. A right-click with a Soft Mallet allows a Drum to drain its content into another container placed below it.", + "quests.steam_age.fluid_drums.desc.1": "&6TFG&r can quickly get &4overwhelming&r with the plethora of fluids it introduces, so you may be looking for a way to store them.\n\nIntroducing... &aDrums&r! They have large internal buffers, and any &aDrum&r can be broken and picked up and will &dkeep the fluid&r inside. A right-click with a Soft Mallet or Screwdriver allows a Drum to drain its content into another container placed below it.", "quests.steam_age.fluid_drums.desc.2": "&l&3Lore:&r&o These drums are actually ported from GregTech 6.", "quests.steam_age.boilers.title": "Steam Boilers", "quests.steam_age.boilers.subtitle": "Portable Steamroom", @@ -3526,7 +3637,7 @@ "quests.steam_age.extractor.desc": "Not many items are made in the &3Extractor&r during the &6Steam Age&r, as it lacks the capability to extract fluids.", "quests.steam_age.glass_tube.title": "Glass Tubes", "quests.steam_age.glass_tube.subtitle": "You'll want a lot of these", - "quests.steam_age.glass_tube.desc": "While you could make all of these by hand with glassblowing, it's much more time efficient to create them in your Alloy Smelter with the appropriate mold instead. Need a lot of glass dust? You can either glassblow 16 panes at once to macerate them, or use the Rock Crusher and Forge Hammer to get lots of sand, then add a little Flint dust to turn it into glass dust.", + "quests.steam_age.glass_tube.desc": "While you'll need to make your first glass tubes by hand with glassblowing, it'll soon be much more time efficient to create them in your Alloy Smelter with the appropriate mold instead. Need a lot of glass dust? You can either glassblow 16 panes at once to macerate them, or use the Rock Crusher and Forge Hammer to get lots of sand, then add a little Flint dust to turn it into glass dust.", "quests.steam_age.treated_planks.title": "Treated Planks", "quests.steam_age.treated_planks.subtitle": "Also known as Treated Plywood", "quests.steam_age.treated_planks.desc": "Hope you've been saving up your creosote, because making these pulped and compressed planks is another use for it.\n\n&l&3Lore:&r&o In earlier versions of TerraFirmaGreg, this was the point when you could actually start Create!", @@ -3592,7 +3703,7 @@ "quests.steam_age.lathe.desc": "The &3Belt Grinder&r can automatically turn a single ingot into two rods, single bolts into screws, polish gems, and a few other things. If you're needing a lot of rods and screws, and you will be, this machine will be a good investment.", "quests.steam_age.steel_saw.title": "Steel Mechanical Saw", "quests.steam_age.steel_saw.subtitle": "A stonecutter and LV Cutter in one!", - "quests.steam_age.steel_saw.desc": "It's an upgrade to your Basic Mechanical Saw that can also process some metal recipes, like turning rods into four bolts, and cutting blocks into plates. These recipes will all require a fluid to work, but you can just use water for now.\n\nYou can also use this for cheaper Rubber Sheets, if you first use an Alloy Smelter to turn your pulp into a block.", + "quests.steam_age.steel_saw.desc": "It's an upgrade to your Basic Mechanical Saw that can also process some metal recipes, like turning rods into four bolts, and cutting blocks into plates. These recipes will all require a fluid to work, but you can just use water for now.\n\nYou can also use this for cheaper Rubber Sheets, if you first use an Alloy Smelter to turn your pulp into a block.\n\nHaven't made Cobalt Brass before? You can either alloy it in a Crucible using anything that melts into Aluminium Silicate, or use a Mixer with Aluminium Dust from ore processing.", "quests.steam_age.rolling_mill.title": "Rolling Mill", "quests.steam_age.rolling_mill.subtitle": "The other half of the LV Bender", "quests.steam_age.rolling_mill.desc.1": "Of all the steam age machines you could make, the &3Rolling Mill&r is one of the best, for the simple reason that it makes single plates out of single ingots. It can also make thin sheets cheaper than by hand, as a bonus!", @@ -3631,6 +3742,10 @@ "quests.steam_age.steel_mech_press.subtitle": "Almost a Forge Hammer", "quests.steam_age.steel_mech_press.desc.1": "The High Pressure Steam Forge Hammer is right around the corner and can do almost everything that this machine can do, but if you're desperate for some higher tier automatic welding recipes, this is your ticket.\n\nIf you're unfamiliar with the Forge Hammer, both it and the Steel Mechanical Press can crush ores (without byproducts), turn rock into cobble into gravel into sand, and crack bricks. However, only the Forge Hammer can provide a &3cheaper recipe for metal plates&r...", "quests.steam_age.steel_mech_press.desc.2": "&l&3Lore:&r&o The Create Mechanical Press used to be a key piece of late steam age progression prior to version 0.9 of TerraFirmaGreg, because it produced plates at an even better ratio of 5 to 4. However, its implementation was actually \"20 percent of the time, you get nothing\", which caused many people to proclaim how much they loved gambling while using it.", + "quests.steam_age.supers.title": "Super Chests and Super Tanks", + "quests.steam_age.supers.subtitle": "Super Storage Drawers", + "quests.steam_age.supers.desc": "This is the &cu&6l&et&ai&bm&9a&5t&4e&r portable item and storage solution if you have a lot of single items or fluids. While these &dBasic&r (&8ULV&r) ones start out relatively small, higher tiers of Super chests and tanks can hold an insane amount of stuff - all in one single block without any regards to temperature or acidity!\n\nLike Drums, Super Tanks and Chests &6keep their contents when broken&r, can be cleared in the crafting grid, and can automatically void any overflow.\n\nIf you hunger for &9even more&r storage, take a look at higher tier Quantum Chests and Tanks or AE2 Storage Cells.", + "quests.steam_age.supers.task": "Any super chest or tank", "quests.stone_age": "Stone Age", "quests.stone_age.subtitle": "Humble Beginnings", "quests.stone_age.foods.title": "Hungry?", @@ -3886,7 +4001,7 @@ "quests.tfg_tips.red_steel_backpack.title": "Red Steel Backpack", "quests.tfg_tips.red_steel_backpack.subtitle": "Cooler than a Blue Steel Backpack", "quests.tfg_tips.red_steel_backpack.desc": "A &4Red Steel Backpack&r is your first proper backpack inventory upgrade. It has a total slot count of &c54&r and can hold &atwo upgrades.&r", - "quests.tfg_tips.aluminium_backpack.title": "Aluminium Steel Backpack", + "quests.tfg_tips.aluminium_backpack.title": "Aluminium Backpack", "quests.tfg_tips.aluminium_backpack.subtitle": "Is it Aluminum or Aluminium?", "quests.tfg_tips.aluminium_backpack.desc": "An &bAluminium Backpack&r is your second proper backpack inventory upgrade. It has a total slot count of &c81&r and can hold &athree upgrades.&r", "quests.tfg_tips.titanium_backpack.title": "Titanium Backpack", @@ -3912,7 +4027,7 @@ "quests.tfg_tips.gt.desc": "&3GregTech&r can be quite intimidating, this quest branch should help you out.", "quests.tfg_tips.nano_saber.title": "Nano Saber", "quests.tfg_tips.nano_saber.subtitle": "26 Attack Damage when active!", - "quests.tfg_tips.nano_saber.desc": "The &6Nano Saber&r is a powerful weapon you’ll be able to unlock once you reach &5EV&r. Simply use &dShift + Right-Click&r to activate the &cbzzzzz mode&r.", + "quests.tfg_tips.nano_saber.desc": "The &6Nano Saber&r is a powerful weapon you’ll be able to unlock once you reach late &5EV&r. Simply use &dShift + Right-Click&r to activate the &cbzzzzz mode&r.", "quests.tfg_tips.gt_tools.title": "GregTech Tools", "quests.tfg_tips.gt_tools.subtitle": "", "quests.tfg_tips.gt_tools.desc": "Most &5GregTech&r tools are crafted from a &6Tool Head&r. Try using &aEMI&r to explore what you can do with them — just remember two important things:\n\n- The &ehigher the Tool Head tier&r, the more &cpowerful&r the tool will be, and the &6larger the battery&r it will use.\n- Not every tool supports every Tool Head tier. For example, the &6Chainsaw&r can only be crafted with a &7LV Tool Head&r.", @@ -4187,7 +4302,7 @@ "quests.tfg_tips.create_tree_sugar.task": "Maple or Birch Sugar", "quests.tfg_tips.create_rubber_ingot.title": "Rubber Ingot", "quests.tfg_tips.create_rubber_ingot.subtitle": "Insulate them cables", - "quests.tfg_tips.create_rubber_ingot.desc": "Utilizing the &bVacuum Chamber&r and some additional heating, you can process &aLatex&r from various trees into &dRaw Rubber Pulp&r through a specific process. You can then smelt together 3 &dRaw Rubber Pulp&r with a bit of &eSulfur Dust&r in an &bAlloy Smelter&r to create &dRubber Ingots&r, perfect for insulating cables and very much necessary to advance in the &2Voltaic Age&r and beyond...", + "quests.tfg_tips.create_rubber_ingot.desc": "Utilizing the &bVacuum Chamber&r and some additional heating, you can process &aLatex&r from various trees into &dRaw Rubber Pulp&r through a specific process. You can then smelt together 3 &dRaw Rubber Pulp&r with a bit of &eSulfur Dust&r in an &bAlloy Smelter&r to create &dRubber Ingots&r, perfect for insulating cables and very much necessary to advance in the &2Voltaic Age&r and beyond...\n\n&9Tip:&r As you progress, there will be several ways to make this process cheaper and easier. Keep checking EMI! You'll be using Rubber for a long time, so it's well worth automating.", "quests.tfg_tips.transportation.title": "Transportation", "quests.tfg_tips.transportation.subtitle": "For travelling this vast world", "quests.tfg_tips.transportation.desc": "The world is a very big place, you may end up travelling great distances to find specific resources for survival and advancement. The mods in this section will provide with a variety of transportation options.", @@ -4195,8 +4310,8 @@ "quests.tfg_tips.glider.subtitle": "This is not Breath of the Wild", "quests.tfg_tips.glider.desc": "A &dHang Glider&r can be used to glide along the air. You &ccannot gain altitude&r with this but it can be useful to traverse long distances if you jump from high up.\nGreat synergy with &bJetpacks&r though!", "quests.tfg_tips.reinforced_glider.title": "Reinforced Glider", - "quests.tfg_tips.reinforced_glider.subtitle": "Elytra well spent...?", - "quests.tfg_tips.reinforced_glider.desc": "If you combine an &aElytra&r, made in &6HV&r, with a &aHang Glider&r, you'll obtain a &dReinforced Glider.&r It has greater durability and a higher velocity ceiling.", + "quests.tfg_tips.reinforced_glider.subtitle": "Light as a feather!", + "quests.tfg_tips.reinforced_glider.desc": "A &dReinforced Hang Glider&r is the improved version of a &aHang Glider&r. With an upgraded &aAluminium&r frame and a fabric made of either &aReinforced Fabric&r or &aLightweight Cloth&r, you can now soar through the skies at &cdouble the speed&r!\nIt also has &cmore durability&r than the normal hang glider, and can be &crepaired&r in an assembler.\n\n&3Pro tip:&r\nUsing either &aSilk Cloth&r or &aPhantom Silk&r obtained in the &4Beneath&r reduces the fabric cost by &e2/3rds&r for both crafting and repairing!\nOnce you enter &6HV&r, you can also use &aPolycaprolactam Fabric&r as one of the fabrics with a reduced cost.", "quests.tfg_tips.immersive_aircraft.title": "Immersive Aircraft", "quests.tfg_tips.immersive_aircraft.subtitle": "Fly across the skies, with style.", "quests.tfg_tips.immersive_aircraft.desc": "&2Immersive Aircraft&r is a mod all about aircrafts, allowing traversing large distances in the skies.", @@ -4335,7 +4450,7 @@ "quests.tfg_tips.beehive.desc": "To begin your journey as a beekeeper, you'll need both a &bBeehive&r and a &aBeehive Frame.&r\nUnlike regular Minecraft, hives do not spawn naturally, instead bees only spawn in player-made &bBeehives&r with frames populated by &eQueens.&r The chance for a queen to populate your frame is tied to RNG, but you can increase your odds by placing &dflowers&r around the hive.\n\nOnce your frames is populated, it'll begin spawning bees which will produce honey.", "quests.tfg_tips.not_the_bees.title": "Beekeeper Armor", "quests.tfg_tips.not_the_bees.subtitle": "NOT THE BEES!", - "quests.tfg_tips.not_the_bees.desc": "Bees don't like it when people disrupt them and harvest their precious honey and wax. There are three ways to do it safely:\n\n* &dHarvesting at night time&r\n* &dUsing a campfire&r\n* &dUsing Beekeeper Armor&r", + "quests.tfg_tips.not_the_bees.desc": "Bees don't like it when people disrupt them and harvest their precious honey and wax or move their frames around. There are three ways to do it safely:\n\n* &dHarvesting at night time&r\n* &dUsing a campfire&r\n* &dUsing Beekeeper Armor&r", "quests.tfg_tips.not_the_bees.task": "I'll use either the Campfire or wait for Nightfall.", "quests.tfg_tips.honey.title": "Honey", "quests.tfg_tips.honey.subtitle": "Oh bother...", diff --git a/kubejs/assets/tfg/lang/fr_fr.json b/kubejs/assets/tfg/lang/fr_fr.json index 2579ad75f..5c9304fd3 100644 --- a/kubejs/assets/tfg/lang/fr_fr.json +++ b/kubejs/assets/tfg/lang/fr_fr.json @@ -1039,6 +1039,8 @@ "ore_vein.tfg.normal_copper": "Copper & Chalcopyrite", "ore_vein.tfg.normal_garnet_tin": "Garnet & Cassiterite Sands", "ore_vein.tfg.normal_garnierite": "Garnierite & Cobaltite", + "ore_vein.tfg.normal_garnierite.emi.0": "Tip: Gabbro is always", + "ore_vein.tfg.normal_garnierite.emi.1": "underneath Basalt.", "ore_vein.tfg.normal_gold": "Gold, Limonite, & Hematite", "ore_vein.tfg.normal_graphite": "Graphite & Diamond", "ore_vein.tfg.normal_gypsum": "Gypsum & Calcite", @@ -1054,12 +1056,18 @@ "ore_vein.tfg.normal_olivine": "Bentonite & Olivine", "ore_vein.tfg.normal_quartz": "Quartzes", "ore_vein.tfg.normal_redstone": "Redstone, Cinnabar, & Ruby", + "ore_vein.tfg.normal_redstone.emi.0": "Tip: Granite is always", + "ore_vein.tfg.normal_redstone.emi.1": "underneath Rhyolite.", "ore_vein.tfg.normal_salt": "Salts & Borax", "ore_vein.tfg.normal_saltpeter": "Saltpeter & Electrotine", "ore_vein.tfg.normal_silver": "Silver, Galena, & Lead", "ore_vein.tfg.normal_sphalerite": "Sphalerite & Pyrite", "ore_vein.tfg.normal_spodumene": "Spodumene & Lepidolite", "ore_vein.tfg.normal_sulfur": "Sulfur & Pyrite", + "ore_vein.tfg.normal_tarkianite": "Tarkianite & Oilsands", + "ore_vein.tfg.normal_tarkianite.emi.0": "Only in dry climates.", + "ore_vein.tfg.normal_tarkianite.emi.1": "Min temp: 7°C", + "ore_vein.tfg.normal_tarkianite.emi.2": "Max rainfall: 100mm", "ore_vein.tfg.normal_tetrahedrite": "Tetrahedrite (Normal)", "ore_vein.tfg.surface_bismuthinite": "Bismuth (Surface)", "ore_vein.tfg.surface_cassiterite": "Cassiterite (Surface)", @@ -1804,7 +1812,7 @@ "quests.gregtech_energy.overclock.title": "Overclock", "quests.gregtech_energy.overclock.subtitle": "Basic upgrade mechanic", "quests.gregtech_energy.overclock.desc.1": "Have you heard about Overclocking, but don't really understand what it is? Let's take some time to explain it.\n\nWe should start with the basics:\n&dLV&r represents a maximum of 32 EU/t — sometimes less, but never more.\n&dMV&r goes up to 128 EU/t.\n&dHV&r reaches 512 EU/t.\nBasically, every tier is a 4x increase in power usage.", - "quests.gregtech_energy.overclock.desc.2": "What happens when you run a lower-tier recipe in a higher-tier machine? That's what we call &eOverclocking&r!\n\nAn &dMV&r recipe (33–128 EU/t) run in an &dHV&r machine will both: 1) Use 4x more energy, and 2) Be 2x faster.\n\nThe same MV recipe in an &dEV&r machine? 8x the energy cost, but only 4x faster.\n\nAs you can see, it's more power efficient to use multiple machines rather than overclocking a single one.\nBut let's be real: in most setups, you’ll prefer overclocking to building a ton of the same machines.\n\nStill, it's good to know this early on, when energy is tight.", + "quests.gregtech_energy.overclock.desc.2": "What happens when you run a lower-tier recipe in a higher-tier machine? That's what we call &eOverclocking&r!\n\nAn &dMV&r recipe (33–128 EU/t) run in an &dHV&r machine will both: 1) Use 4x more energy, and 2) Be 2x faster.\n\nThe same MV recipe in an &dEV&r machine? 16x the energy cost, but only 4x faster.\n\nAs you can see, it's more power efficient to use multiple machines rather than overclocking a single one.\nBut let's be real: in most setups, you’ll prefer overclocking to building a ton of the same machines.\n\nStill, it's good to know this early on, when energy is tight.", "quests.gregtech_energy.overclock.desc.3": "There’s a special kind of overclocking exclusive to just a few multiblocks: &ePerfect Overclocking&r.\nHere, instead of 4x energy for 2x speed, you get &a4x energy&r for &a4x speed&r! This makes it just as efficient as running multiple machines.\n\nCurrently in TerraFirmaGreg, only the following multiblocks support this:\n- Electric Blast Furnace\n- Alloy Blast Smelter\n- Rotary Heat Furnace\n- Large Chemical Reactor\n- Electric Greenhouse", "quests.gregtech_energy.overclock.task": "So the red ones go faster, got it", "quests.gregtech_energy.blast_oc.title": "The Blast Overclocking", @@ -2237,7 +2245,7 @@ "quests.low_voltage.lv_nitrogen.task": "Nitrogen", "quests.low_voltage.lv_arc_furnace.title": "The Arc Furnace", "quests.low_voltage.lv_arc_furnace.subtitle": "The Arc Furnace has never been so good", - "quests.low_voltage.lv_arc_furnace.desc.1": "The &3Arc Furnace&r uses a lil' bit of &9Oxygen&r to smelt items in a different fashion than Furnaces.\n\nYou can use it to make easier &aWrought Iron&r, double your &aGlass&r, and gain access to &aAnnealed Copper&r for cheaper electronic components. It's also your new best way to make &4Red Steel&r and &1Blue Steel&r Ingots!\n\nIt can also recycle various components and machines back to their original materials.", + "quests.low_voltage.lv_arc_furnace.desc.1": "The &3Arc Furnace&r uses a lil' bit of &9Oxygen&r to smelt items in a different fashion than Furnaces.\n\nYou can use it to make easier &aWrought Iron&r, double your &aGlass&r, and gain access to &aAnnealed Copper&r for cheaper electronic components.\n\nIt can also recycle various components and machines back to their original materials.", "quests.low_voltage.lv_arc_furnace.desc.2": "&l&3Lore:&r&o Previous GregTech versions had both the Arc Furnace and the &bPlasma Arc Furnace&f. In that case, why not use one machine for both? Well, that's exactly what we thought - but we ultimately decided to remove one of the two &bplasma&f recipes. And then the other &bplasma&f recipe.\n\n&oIn short, the &bPlasma Arc Furnace&f is &4gone&f. RIP.", "quests.low_voltage.lv_extractor.title": "Basic Liquid Extraction", "quests.low_voltage.lv_extractor.subtitle": "The Extractor extracts...", @@ -2298,7 +2306,7 @@ "quests.medium_voltage.mv_miner.title": "Automatic Mining", "quests.medium_voltage.mv_miner.subtitle": "So are you bored of mining yourself?", "quests.medium_voltage.mv_miner.desc.1": "This kind soul&r will mine ores for you when placed above a vein.\n\nVertical range is unlimited below the miner. Horizontal range is displayed in the tooltip.\n\nThe &bMV&r variant may not have the range to mine a full vein, but the &6HV&r variant does, so you may wish hold off for now. Get &eeither&r to complete this Quest.", - "quests.medium_voltage.mv_miner.desc.2": "You will need &9Power&r. &aCharged Batteries&r may work, but they tend to run out of power, which is a bit inconvenient.\n\nOur top suggestion is to use a filled &3Drum&r of some kind of fuel &7(if you're using Steam, no dice!)&r and a &3Generator&r.\n\nPlace the Drum above your Generator and right-click it with a &5Soft Mallet&r to auto-output into the Generator.", + "quests.medium_voltage.mv_miner.desc.2": "You will need &9Power&r. &aCharged Batteries&r may work, but they tend to run out of power, which is a bit inconvenient.\n\nOur top suggestion is to use a filled &3Drum&r of some kind of fuel &7(if you're using Steam, no dice!)&r and a &3Generator&r.\n\nPlace the Drum above your Generator and right-click it with a &5Soft Mallet&r or &5Screwdriver&r to auto-output into the Generator.", "quests.medium_voltage.mv_miner.desc.3": "&cNote:&r Do not forget to &dchunkload&r all 9 chunks of the ore vein &7(open the map, claim the chunks with ctrl left-click, and enable force loading after claiming them)&r.\n\n&9Tip:&r You can either use an &3ME Chest&r, a &3Backpack&r, or a &3GT Crate&r as the output inventory to make transporting the ores back home a simple task. The &3ME Chest&r can be powered with EU directly, by the way.", "quests.medium_voltage.mv_miner.task": "Any miner", "quests.medium_voltage.mv_component.title": "The MV Components", @@ -2346,7 +2354,7 @@ "quests.medium_voltage.mv_fluid_rig.desc.1": "It's quite the investment to own a &3Fluid Drilling Rig&r, but it is &oby far&r the most prominent &6source of Oil&r.\n\nIt pumps fluids from underneath Bedrock itself. Note that the fluids aren't actually there, instead being simulated.\n\nFluid veins are stored within &cchunk-sized regions&r. Each vein has a different fluid, but they are mostly types of Oil.\n\nYou can't carry out prospecting for fluid veins &oyet&r - this will come at &6HV&r.", "quests.medium_voltage.mv_fluid_rig.desc.2": "Each vein generates with a different base yield. This is typically between &d150L&r to &d300L per second&r.\n\nWhen drained, fluid veins will slowly deplete. This will cause the fluid yield to decrease over time until it reaches its depletion yield. At that point, you should move the Rig to a different vein.\n\nA &3Basic Fluid Drilling Rig&r will last for 100,000 operations (with 1 second per operation) until depletion. This is enough for &6well over 10,000&r buckets of Oil. Higher tier Rigs will massively increase the yield, while also decreasing the depletion rate.", "quests.medium_voltage.mv_fluid_rig.desc.3": "&lWhat you can find in the &2Overworld&r&l:&r\n\n&9Oil:&r richer in &aLight Fuel&r, the most appreciated variant.\n&9Light Oil:&r richer in &aRefinery Gas&r, usable for power.\n&9Heavy Oil:&r richer in &aHeavy Fuel&r, which has uses that are more niche but notably Toluene.\n&9Raw Oil:&r richer in &aNaphtha&r, the best source of the early-game oil products.\n&9Natural Gas:&r grants &aRefinery Gas&r with no distillation required.\n&9Sea Water:&r grants &aSodium&r and &aChlorine&r, useful later.", - "quests.medium_voltage.mv_fluid_rig.desc.4": "&lWhat you can find in the &cNether&r&l:&r\n\n&9Natural Gas:&r grants &aRefinery Gas&r but with higher yield than the Overworld vein.\n&9Lava:&r hopefully, you know what this is.\n\nWhen starting out, you may have to tap randomly until you find something you like. Remember that whatever you pump could also be used to refuel your Fluid Rig.", + "quests.medium_voltage.mv_fluid_rig.desc.4": "&lWhat you can find in the &cBeneath&r&l:&r\n\n&9Natural Gas:&r grants &aRefinery Gas&r but with higher yield than the Overworld vein.\n&9Lava:&r hopefully, you know what this is.\n\nWhen starting out, you may have to tap randomly until you find something you like. Remember that whatever you pump could also be used to refuel your Fluid Rig.", "quests.medium_voltage.mv_oilsands.title": "America Simulator", "quests.medium_voltage.mv_oilsands.subtitle": "This quest was sponsored by the US Military", "quests.medium_voltage.mv_oilsands.desc": "Underground, you may come across pure Oilsands ore veins. You can &3centrifuge&r the Dust to get &aOil&r.\n\n&9&lNote:&r&l The Oil path is one path towards &9&lEthylene&r&l. The other paths involve getting natural with some Ethanol.&r\n\nFor now, Oil is &doptional&r. It becomes mandatory much later when you get to &5EV&r.\n\nOil can also be refined in the form of &aLight Fuel&r, &aDiesel&r or even &aGasoline&r, which are excellent power options.\n\nIf you chose this path, you should use it for both Power and Ethylene.\n\nOilsands are a &6great starting point&r - they'll tide you over until you unlock Fluid Drilling Rigs.", @@ -2411,7 +2419,7 @@ "quests.medium_voltage.mv_aciditic.title": "It will Melt Your Flesh", "quests.medium_voltage.mv_aciditic.subtitle": "...if you don't read this quest.", "quests.medium_voltage.mv_aciditic.desc.1": "You may notice that some fluids say they are &aAcidic&r, with &9Sulfuric Acid&r being one of them.\n\nThis means that many fluid pipes will not be able to transport them safely!\n\nAt &bMV&r, the cheapest pipes for acid transportation are probably &aGold&r, with the more expensive &aVanadium Steel&r or &aChrome&r pipes taking second and third place.\n\n&aStainless Steel&r or &aPolytetrafluoroethylene&r (try saying that fast) will be valid options once you are in &6HV&r.", - "quests.medium_voltage.mv_aciditic.desc.2": "You have three options for acid storage at around this point: &dGlass Vials&r, &dGold Drums&r, or &dSuper Tanks&r. Glass Vials are like &9Fluid Cells&r, and are made to store acids. Gold Drums are self-explanatory. Super Tanks will be unlocked after &9Polyethylene&r, and can store any fluid without restriction.\n\n&cWARNING:&r Acids in the wrong pipes will cause &cvoiding&r, &cpipe burning&r, and high chance of &cdeath&r! Be careful!\n\n&l&3Lore:&r&o The acid transportation and storage mechanics originate from GregTech 6.", + "quests.medium_voltage.mv_aciditic.desc.2": "You have three practical options for acid storage at around this point: &dGlass Vials&r, &dGold Drums&r, or &dSuper Tanks&r. Glass Vials are like &9Fluid Cells&r, and are made to store acids. Gold Drums are self-explanatory. Super Tanks can store any fluid without restriction, but are the most expensive.\n\n&cWARNING:&r Acids in the wrong pipes will cause &cvoiding&r, &cpipe burning&r, and high chance of &cdeath&r! Be careful!\n\n&l&3Lore:&r&o The acid transportation and storage mechanics originate from GregTech 6.", "quests.medium_voltage.mv_aciditic.task": "I'm an acid professional, don't worry", "quests.medium_voltage.mv_hydrochloric.title": "Hydrochloric Acid", "quests.medium_voltage.mv_hydrochloric.subtitle": "You'll need a lot of this!", @@ -2807,7 +2815,7 @@ "quests.space_survival.stone_dust_centrifuging.title": "Helium-3", "quests.space_survival.stone_dust_centrifuging.subtitle": "Clown gas", "quests.space_survival.stone_dust_centrifuging.desc.1": "The Moon is full of &eHelium-3&r, another important resource, but it's stuck inside the stone! There's two ways to get your hands on some:\n\n1) If you haven't set up any stone dust centrifuging automation before, here's a quick introduction: A Rock Crusher can produce infinite raw stone, which a Macerator crushes into dust for a Centrifuge to process.\n\nHere on the Moon, Anorthosite, Norite, and Phonolite can thus be processed into an infinite source of Helium-3!", - "quests.space_survival.stone_dust_centrifuging.desc.2": "2) Pump it out of the ground with a &9Fluid Rig&r This method is simpler, but doesn't come with any useful byproducts.\n\nHelium-3 is used for several things, of which the most important is making more air to breathe via &6Heliox-3&r! You can also use it as \"fertiliser\" for Chorus Fruit in the Electric Greenhouse, and eventually as another fuel for Fusion Power.", + "quests.space_survival.stone_dust_centrifuging.desc.2": "2) Pump it out of the ground with a &9Fluid Rig&r This method is simpler, but doesn't come with any useful byproducts.\n\nHelium-3 is used for several things, of which the most important is making more air to breathe via &6Heliox-3&r! You can also use it as \"fertilizer\" for Chorus Fruit in the Electric Greenhouse, and eventually as another fuel for Fusion Power.", "quests.space_survival.stone_dust_centrifuging.task": "Any ", "quests.space_survival.compressed_gases.title": "Compressed Breathable Gases", "quests.space_survival.compressed_gases.subtitle": "Because pure Oxygen is deadly", @@ -2946,7 +2954,7 @@ "quests.steam_age.fluid_pipes.desc.2": "&aReminder:&r 1 second = 20 ticks... assuming the server isn't lagging.\n\n&dNote:&r GT6-style Pipes are enabled. It means that placing Pipes connects them only to the block they were placed against. To open more connections, use your Wrench on the pipe.\n\nYou can also shift-right click with your Wrench to disable input from a side. This can help counteract sloshing (liquids travelling in an undesired direction).", "quests.steam_age.fluid_drums.title": "Efficient Fluid Storage", "quests.steam_age.fluid_drums.subtitle": "I don't think a wooden barrel can hold molten steel", - "quests.steam_age.fluid_drums.desc.1": "&6TFG&r can quickly get &4overwhelming&r with the plethora of fluids it introduces, so you may be looking for a way to store them.\n\nIntroducing... &aDrums&r! They have large internal buffers, and any &aDrum&r can be broken and picked up and will &dkeep the fluid&r inside. A right-click with a Soft Mallet allows a Drum to drain its content into another container placed below it.", + "quests.steam_age.fluid_drums.desc.1": "&6TFG&r can quickly get &4overwhelming&r with the plethora of fluids it introduces, so you may be looking for a way to store them.\n\nIntroducing... &aDrums&r! They have large internal buffers, and any &aDrum&r can be broken and picked up and will &dkeep the fluid&r inside. A right-click with a Soft Mallet or Screwdriver allows a Drum to drain its content into another container placed below it.", "quests.steam_age.fluid_drums.desc.2": "&l&3Lore:&r&o These drums are actually ported from GregTech 6.", "quests.steam_age.boilers.title": "Steam Boilers", "quests.steam_age.boilers.subtitle": "Portable Steamroom", @@ -3352,7 +3360,7 @@ "quests.tfg_tips.red_steel_backpack.title": "Red Steel Backpack", "quests.tfg_tips.red_steel_backpack.subtitle": "Cooler than a Blue Steel Backpack", "quests.tfg_tips.red_steel_backpack.desc": "A &4Red Steel Backpack&r is your first proper backpack inventory upgrade. It has a total slot count of &c54&r and can hold &atwo upgrades.&r", - "quests.tfg_tips.aluminium_backpack.title": "Aluminium Steel Backpack", + "quests.tfg_tips.aluminium_backpack.title": "Aluminium Backpack", "quests.tfg_tips.aluminium_backpack.subtitle": "Is it Aluminum or Aluminium?", "quests.tfg_tips.aluminium_backpack.desc": "An &bAluminium Backpack&r is your second proper backpack inventory upgrade. It has a total slot count of &c81&r and can hold &athree upgrades.&r", "quests.tfg_tips.titanium_backpack.title": "Titanium Backpack", @@ -3378,7 +3386,7 @@ "quests.tfg_tips.gt.desc": "&3GregTech&r can be quite intimidating, this quest branch should help you out.", "quests.tfg_tips.nano_saber.title": "Nano Saber", "quests.tfg_tips.nano_saber.subtitle": "26 Attack Damage when active!", - "quests.tfg_tips.nano_saber.desc": "The &6Nano Saber&r is a powerful weapon you’ll be able to unlock once you reach &5EV&r. Simply use &dShift + Right-Click&r to activate the &cbzzzzz mode&r.", + "quests.tfg_tips.nano_saber.desc": "The &6Nano Saber&r is a powerful weapon you’ll be able to unlock once you reach late &5EV&r. Simply use &dShift + Right-Click&r to activate the &cbzzzzz mode&r.", "quests.tfg_tips.gt_tools.title": "GregTech Tools", "quests.tfg_tips.gt_tools.subtitle": "", "quests.tfg_tips.gt_tools.desc": "Most &5GregTech&r tools are crafted from a &6Tool Head&r. Try using &aEMI&r to explore what you can do with them — just remember two important things:\n\n- The &ehigher the Tool Head tier&r, the more &cpowerful&r the tool will be, and the &6larger the battery&r it will use.\n- Not every tool supports every Tool Head tier. For example, the &6Chainsaw&r can only be crafted with a &7LV Tool Head&r.", @@ -3798,7 +3806,7 @@ "quests.tfg_tips.beehive.desc": "To begin your journey as a beekeeper, you'll need both a &bBeehive&r and a &aBeehive Frame.&r\nUnlike regular Minecraft, hives do not spawn naturally, instead bees only spawn in player-made &bBeehives&r with frames populated by &eQueens.&r The chance for a queen to populate your frame is tied to RNG, but you can increase your odds by placing &dflowers&r around the hive.\n\nOnce your frames is populated, it'll begin spawning bees which will produce honey.", "quests.tfg_tips.not_the_bees.title": "Beekeeper Armor", "quests.tfg_tips.not_the_bees.subtitle": "NOT THE BEES!", - "quests.tfg_tips.not_the_bees.desc": "Bees don't like it when people disrupt them and harvest their precious honey and wax. There are three ways to do it safely:\n\n* &dHarvesting at night time&r\n* &dUsing a campfire&r\n* &dUsing Beekeeper Armor&r", + "quests.tfg_tips.not_the_bees.desc": "Bees don't like it when people disrupt them and harvest their precious honey and wax or move their frames around. There are three ways to do it safely:\n\n* &dHarvesting at night time&r\n* &dUsing a campfire&r\n* &dUsing Beekeeper Armor&r", "quests.tfg_tips.not_the_bees.task": "I'll use either the Campfire or wait for Nightfall.", "quests.tfg_tips.honey.title": "Honey", "quests.tfg_tips.honey.subtitle": "Oh bother...", diff --git a/kubejs/assets/tfg/lang/ja_jp.json b/kubejs/assets/tfg/lang/ja_jp.json index d6fed9bac..1966130dc 100644 --- a/kubejs/assets/tfg/lang/ja_jp.json +++ b/kubejs/assets/tfg/lang/ja_jp.json @@ -172,6 +172,7 @@ "block.tfg.rock.gravel_deepslate": "混成岩の砂利", "block.tfg.spike.deepslate_spike": "混成岩のつらら石", "block.tfg.loose.deepslate": "混成岩の小石", + "block.tfg.rock.aqueduct_deepslate": "混成岩の用水路", "block.tfg.rock.hardened_blackstone": "硬い輝岩", "block.tfg.rock.cobble_blackstone_stairs": "輝岩の丸石の階段", "block.tfg.rock.cobble_blackstone_slab": "輝岩の丸石のハーフブロック", @@ -213,6 +214,7 @@ "block.tfg.rock.gravel_dripstone": "鍾乳石の砂利", "block.tfg.spike.dripstone_spike": "鍾乳石のつらら石", "block.tfg.loose.dripstone": "鍾乳石の小石", + "block.tfg.rock.aqueduct_dripstone": "鍾乳石の用水路", "block.tfg.rock.crackrack_stairs": "角斑岩の階段", "block.tfg.rock.crackrack_slab": "角斑岩のハーフブロック", "block.tfg.rock.crackrack_wall": "角斑岩の塀", @@ -237,6 +239,7 @@ "block.tfg.rock.mossy_bricks_nether_wall": "苔むした角斑岩のレンガの塀", "block.tfg.rock.gravel_crackrack": "角斑岩の砂利", "block.tfg.loose.crackrack": "角斑岩の小石", + "block.tfg.rock.aqueduct_nether": "角斑岩の用水路", "block.tfg.rock.hardened_moon_stone": "硬い斜長岩", "block.tfg.rock.moon_stone_wall": "斜長岩の塀", "block.tfg.rock.cobble_moon_stone_wall": "斜長岩の丸石の塀", @@ -252,6 +255,7 @@ "block.tfg.rock.gravel_moon": "斜長岩の砂利", "block.tfg.spike.moon_stone_spike": "斜長岩のつらら石", "block.tfg.loose.moon_stone": "斜長岩の小石", + "block.tfg.rock.aqueduct_moon_stone": "斜長岩の用水路", "block.tfg.rock.hardened_moon_deepslate": "硬いノーライト", "block.tfg.rock.moon_deepslate_stairs": "ノーライトの階段", "block.tfg.rock.moon_deepslate_slab": "ノーライトのハーフブロック", @@ -284,6 +288,7 @@ "block.tfg.rock.gravel_moon_deepslate": "ノーライトの砂利", "block.tfg.spike.moon_deepslate_spike": "ノーライトのつらら石", "block.tfg.loose.moon_deepslate": "ノーライトの小石", + "block.tfg.rock.aqueduct_moon_deepslate": "ノーライトの用水路", "block.tfg.rock.hardened_mars_stone": "硬い粘土質岩の", "block.tfg.rock.mars_stone_wall": "粘土質岩の塀", "block.tfg.rock.cobble_mars_stone_wall": "粘土質岩の丸石の塀", @@ -301,6 +306,7 @@ "block.tfg.rock.gravel_mars": "粘土質岩の砂利", "block.tfg.spike.mars_stone_spike": "粘土質岩のつらら石", "block.tfg.loose.mars_stone": "粘土質岩の小石", + "block.tfg.rock.aqueduct_mars_stone": "粘土質岩の用水路", "block.tfg.rock.hardened_venus_stone": "硬い粗面岩", "block.tfg.rock.venus_stone_wall": "粗面岩の塀", "block.tfg.rock.cobble_venus_stone_wall": "粗面岩の丸石の塀", @@ -318,6 +324,7 @@ "block.tfg.rock.gravel_venus": "粗面岩の砂利", "block.tfg.spike.venus_stone_spike": "粗面岩のつらら石", "block.tfg.loose.venus_stone": "粗面岩の小石", + "block.tfg.rock.aqueduct_venus_stone": "粗面岩の用水路", "block.tfg.rock.hardened_mercury_stone": "硬いコマチアイト", "block.tfg.rock.mercury_stone_wall": "コマチアイトの塀", "block.tfg.rock.cobble_mercury_stone_wall": "コマチアイトの丸石の塀", @@ -335,6 +342,7 @@ "block.tfg.rock.gravel_mercury": "コマチアイトの砂利", "block.tfg.spike.mercury_stone_spike": "コマチアイトのつらら石", "block.tfg.loose.mercury_stone": "コマチアイトの小石", + "block.tfg.rock.aqueduct_mercury_stone": "コマチアイトの用水路", "block.tfg.rock.hardened_glacio_stone": "硬い響岩の", "block.tfg.rock.glacio_stone_wall": "響岩の塀", "block.tfg.rock.cobble_glacio_stone_wall": "響岩の丸石の塀", @@ -352,6 +360,7 @@ "block.tfg.rock.gravel_glacio": "響岩の砂利", "block.tfg.spike.glacio_stone_spike": "響岩のつらら石", "block.tfg.loose.glacio_stone": "響岩の小石", + "block.tfg.rock.aqueduct_glacio_stone": "響岩の用水路", "block.tfg.rock.hardened_permafrost": "硬い永久凍土", "block.tfg.rock.permafrost_stairs": "永久凍土の階段", "block.tfg.rock.permafrost_slab": "永久凍土のハーフブロック", @@ -372,6 +381,7 @@ "block.tfg.rock.gravel_permafrost": "永久凍土の砂利", "block.tfg.spike.permafrost_spike": "永久凍土のつらら石", "block.tfg.loose.permafrost": "永久凍土の小石", + "block.tfg.rock.aqueduct_permafrost": "永久凍土の用水路", "block.tfg.rock.hardened_red_granite": "硬い赤色花崗岩", "block.tfg.rock.red_granite_stairs": "赤色花崗岩の階段", "block.tfg.rock.red_granite_slab": "赤色花崗岩のハーフブロック", @@ -397,12 +407,14 @@ "block.tfg.rock.gravel_red_granite": "赤色花崗岩の砂利", "block.tfg.loose.red_granite": "赤色花崗岩の小石", "block.tfg.spike.red_granite_spike": "赤色花崗岩のつらら石", + "block.tfg.rock.aqueduct_red_granite": "赤色花崗岩の用水路", "block.tfg.rock.stone_wall": "石の塀", "block.tfg.rock.smooth_stone_stairs": "磨かれた石の階段", "block.tfg.rock.smooth_stone_wall": "磨かれた石の塀", "block.tfg.rock.cracked_bricks_stone_stairs": "ひび割れた石のレンガの階段", "block.tfg.rock.cracked_bricks_stone_slab": "ひび割れた石のレンガのハーフブロック", "block.tfg.rock.cracked_bricks_stone_wall": "ひび割れた石のレンガの塀", + "block.tfg.rock.aqueduct_stone": "石レンガの用水路", "block.tfg.rock.smooth_red_sandstone_wall": "滑らかな赤鉄質の砂岩の塀", "block.tfg.rock.cut_red_sandstone_wall": "研がれた赤鉄質の砂岩の塀", "block.tfg.rock.raw.stromatolite": "ストロマトライト", @@ -560,9 +572,9 @@ "block.tfg.casings.bioculture_rotor_primary": "Primary Bioculture Rotor", "block.tfg.casings.bioculture_rotor_secondary": "Secondary Bioculture Rotor", "block.tfg.casings.machine_casing_ostrum_carbon": "オストラム製マシン外装", - "block.tfg.casings.heat_pipe_casing": "熱伝導パイプ外装", - "block.tfg.glacian_wool_frame": "氷塊羊毛の枠組み", - "block.tfg.aes_insulation_frame": "AES断熱材の枠組み", + "block.tfg.casings.heat_pipe_casing": "ヒートパイプ外装", + "block.tfg.glacian_wool_frame": "氷塊羊毛の耐熱フレーム", + "block.tfg.aes_insulation_frame": "AES断熱材の耐熱フレーム", "block.tfg.sand.fluorapatite.blue": "青いフッ素燐灰石の砂", "block.tfg.sandstone.raw.fluorapatite.blue": "青いフッ素燐灰石砂岩", "block.tfg.sandstone.wall.raw.fluorapatite.blue": "青いフッ素燐灰石砂岩の塀", @@ -645,11 +657,16 @@ "block.tfg.growth_monitor": "Growth Monitor", "block.tfg.sample_rack": "Sample Rack", "block.tfg.casings.machine_casing_sterilizing_pipes": "Sterilizing Pipes", + "block.tfg.moderate_core": "モデレートコア", + "block.tfg.impure_moderate_core": "不純なモデレートコア", + "block.tfg.moderate_core_frame": "モデレートコアフレーム", + "block.tfg.impure_moderate_core_frame": "不純なモデレートコアフレーム", "fluid.tfg.nether_slurry": "ネザー泥漿", "fluid.tfg.enriched_nether_slurry": "Enriched Nether Slurry", "fluid.tfg.ender_slurry": "エンダー泥漿", "fluid.tfg.enriched_ender_slurry": "Enriched Ender Slurry", "fluid.tfg.semiheavy_ammoniacal_water": "アンモニア交じりの半重水", + "fluid.tfg.heavy_ammoniacal_water": "アンモニア交じりの重水", "fluid.tfg.sulfur_fumes": "Sulfur Fumes", "fluid.tfg.super_heated_slurry": "Super Heated Slurry", "fluid.tfg.cryogenized_fluix": "超低温液化フルーシュ", @@ -659,16 +676,16 @@ "item.tfg.poison_pill": "毒の丸薬", "item.tfg.regeneration_pill": "再生の丸薬", "item.tfg.slowness_pill": "鈍足の丸薬", - "item.tfg.speed_pill": "疾走の丸薬", + "item.tfg.speed_pill": "俊敏の丸薬", "item.tfg.water_breathing_pill": "水中呼吸の丸薬", "item.tfg.weakness_pill": "弱体化の丸薬", - "item.tfg.antipoison_tablet": "解毒の錠剤", + "item.tfg.antipoison_tablet": "万能薬", "item.tfg.haste_tablet": "採掘の錠剤", "item.tfg.night_vision_tablet": "暗視の錠剤", "item.tfg.poison_tablet": "毒の錠剤", "item.tfg.regeneration_tablet": "再生の錠剤", "item.tfg.slowness_tablet": "鈍足の錠剤", - "item.tfg.speed_tablet": "疾走の錠剤", + "item.tfg.speed_tablet": "俊敏の錠剤", "item.tfg.water_breathing_tablet": "水中呼吸の錠剤", "item.tfg.weakness_tablet": "弱体化の錠剤", "item.tfg.absorption_salvo": "衝撃吸収の軟膏", @@ -697,6 +714,7 @@ "item.tfg.conifer_rosin": "針葉樹脂", "item.tfg.hardwood_strip": "剥いだ堅木", "item.tfg.soaked_hardwood_strip": "剥いで浸した堅木", + "item.tfg.soaked_unrefined_paper": "濡れた未精製の紙", "item.tfg.prepared_leather_gloves": "準備された革のグローブ", "item.tfg.latex_soaked_gloves": "ラテックスに浸されたグローブ", "item.tfg.unfired_chalk": "チョークの素体", @@ -769,7 +787,6 @@ "item.tfg.food.cooked_limpet": "焼いたLimpet", "item.tfg.food.raw_moon_rabbit": "生の月ウサギ肉", "item.tfg.food.cooked_moon_rabbit": "焼いた月ウサギ肉", - "item.tfg.spawn_egg.moon_rabbit": "月ウサギのスポーンエッグ", "item.tfg.food.freeze_dried.red_grapes": "赤ブドウのフリーズドライ", "item.tfg.food.freeze_dried.white_grapes": "白ブドウのフリーズドライ", "item.tfg.food.freeze_dried.glow_berries": "グロウベリーのフリーズドライ", @@ -807,10 +824,8 @@ "item.tfg.food.ice_soup": "アイススープ", "item.tfg.food.raw_glacian_mutton": "生の氷界ヒツジ肉", "item.tfg.food.cooked_glacian_mutton": "焼き氷界ヒツジ肉", - "item.tfg.spawn_egg.glacian_ram": "氷界ヒツジのスポーンエッグ", "item.tfg.food.raw_sniffer_beef": "生のスニッファー肉", "item.tfg.food.cooked_sniffer_beef": "焼きスニッファー肉", - "item.tfg.spawn_egg.sniffer": "スニッファーのスポーンエッグ", "item.tfg.food.raw_wraptor": "生のラプター肉", "item.tfg.food.cooked_wraptor": "焼きラプター肉", "item.tfg.food.raw_springling_collar": "生のSpringling Collar", @@ -825,8 +840,8 @@ "item.tfg.food.cooked_crusher_meat": "焼いたクラッシャー肉", "item.tfg.food.raw_goober_meat": "生のグーバー肉", "item.tfg.food.cooked_goober_meat": "焼いたグーバー肉", - "item.tfg.food.raw_long_pig_filet": "Raw Long Pig Filet", - "item.tfg.food.cooked_long_pig_filet": "Cooked Long Pig Filet", + "item.tfg.food.raw_long_pig_filet": "生の奇妙な肉", + "item.tfg.food.cooked_long_pig_filet": "焼き奇妙な肉", "item.tfg.food.raw_surfer_steak": "生のサーファー肉", "item.tfg.food.cooked_surfer_steak": "サーファーステーキ", "item.tfg.food.raw_stackatick_chunks": "Raw Stackatick Chunks", @@ -834,11 +849,39 @@ "item.tfg.food.cooked_stickastackatick": "Cooked Stick'a'Stackatick", "item.tfg.food.raw_cruncher_ribs": "Raw Cruncher Ribs", "item.tfg.food.cooked_cruncher_ribs": "Cooked Cruncher Ribs", + "item.tfg.food.raw_dino_nugget": "Prepared Dinosaur Nugget", + "item.tfg.food.cooked_dino_nugget": "Beer Battered Dinosaur Nugget", + "item.tfg.food.raw_beer_battered_cheese_curds": "Beer Battered Cheese Curds", + "item.tfg.food.cooked_beer_battered_cheese_curds": "Fried Beer Battered Cheese Curds", + "item.tfg.food.raw_fries": "刻んだジャガイモ", + "item.tfg.food.cooked_fries": "フライドポテト", + "item.tfg.food.poutine": "プーティン", + "item.tfg.food.brioche_dough": "ブリオッシュの生地", + "item.tfg.food.brioche_bun": "ブリオッシュのバンズ", + "item.tfg.food.raw_burger_patty": "生のパティ", + "item.tfg.food.cooked_burger_patty": "バーガーパティ", + "item.tfg.food.slice_of_cheese": "スライス「チーズ」", + "item.tfg.food.hamburger": "ハンバーガー", + "item.tfg.food.cheeseburger": "チーズバーガー", + "item.tfg.food.oatmeal": "オートミール", + "item.tfg.food.raw_instant_mac": "インスタントのマカロニ&チーズ", + "item.tfg.food.cooked_instant_mac": "マカロニ&チーズ", + "item.tfg.spice.bay_leaf": "ローリエの葉", + "item.tfg.spice.cardamom_pods": "カルダモンの種子", + "item.tfg.spice.cilantro_leaves": "コリアンダーの葉", + "item.tfg.spice.cumin_seeds": "クミンシード", + "item.tfg.spice.oregano_leaves": "オレガノの葉", + "item.tfg.spice.allspice": "オールスパイス", "item.tfg.roasted_sunflower_seeds": "ヒマワリの種のロースト", "item.tfg.sunflower_seeds": "ヒマワリの種", "item.tfg.sunflower_product": "ヒマワリの花冠", "item.tfg.rapeseed_seeds": "キャノーラの種", "item.tfg.rapeseed_product": "キャノーラの胚", + "item.tfg.spawn_egg.moon_rabbit": "月ウサギのスポーンエッグ", + "item.tfg.spawn_egg.surfer": "サーファーのスポーンエッグ", + "item.tfg.spawn_egg.wraptor": "ラプターのスポーンエッグ", + "item.tfg.spawn_egg.glacian_ram": "氷界ヒツジのスポーンエッグ", + "item.tfg.spawn_egg.sniffer": "スニッファーのスポーンエッグ", "item.tfg.flintlock_mechanism": "フリントロック機構", "item.tfg.advanced_clockwork_mechanism": "精密歯車仕掛け機構", "item.tfg.certus_mechanism": "高精度ケルタス機構", @@ -872,6 +915,7 @@ "item.tfg.compressed_heliox_3_bucket": "ヘリオックス3 バケツ", "item.tfg.compressed_trimix_bucket": "50/30/20 トリミックス バケツ", "item.tfg.compressed_trimix_3_bucket": "50/30/20 トリミックス3 バケツ", + "item.tfg.heavy_ammoniacal_water_bucket": "アンモニア交じりの重水 バケツ", "item.tfg.semiheavy_ammoniacal_water_bucket": "アンモニア交じりの半重水 バケツ", "item.tfg.harvest_basket": "収穫かご", "item.tfg.aluminium_harvest_basket": "アルミニウム製収穫かご", @@ -932,9 +976,11 @@ "item.tfg.high_density_treated_fiberboard": "防腐繊維板", "item.tfg.flax_seeds": "亜麻の種", "item.tfg.flax_product": "亜麻の茎", + "item.tfg.flax_bundle": "束ねた亜麻", "item.tfg.flax_line": "亜麻の繊維", "item.tfg.flax_tow": "亜麻の短繊維", "item.tfg.flax_waste": "亜麻屑", + "item.tfg.bundled_scraped_flax": "束ねた亜麻屑", "item.tfg.linen_thread": "リネンの糸", "item.tfg.linen_cloth": "リネン", "item.tfg.ulled": "§dウルトラヴァイオレット§fLED", @@ -949,7 +995,7 @@ "item.tfg.uranium_rod": "ウラン燃料棒", "item.tfg.plutonium_rod": "プルトニウム燃料棒", "item.tfg.tbu_232_rod": "TBU-232燃料棒", - "item.tfg.refrigerant_pellet": "冷却材ペレット", + "item.tfg.refrigerant_pellet": "冷媒ペレット", "item.tfg.graphite_compound": "グラファイト混合物", "item.tfg.raw_graphite_briquette": "グラファイト成形炭", "item.tfg.faulty_graphite_briquette": "欠けたグラファイト成形炭", @@ -957,14 +1003,10 @@ "item.tfg.pure_graphite_rod": "純粋なグラファイトロッド", "item.tfg.impure_graphite_rod": "不純なグラファイトロッド", "item.tfg.annealed_graphite_rod": "焼成グラファイトロッド", - "item.tfg.impure_annealed_graphite_row": "不純な焼成グラファイトロッド", - "item.tfg.moderate_core": "Moderate Core", - "item.tfg.impure_moderate_core": "Impure Moderate Core", - "item.tfg.moderate_core_frame": "Moderate Core Frame", - "item.tfg.impure_moderate_core_frame": "Impure Moderate Core Frame", - "item.tfg.graphite_moderator": "Graphite Moderator", - "item.tfg.impure_graphite_moderator": "Impure Graphite Moderator", - "item.tfg.advanced_polymer_binder": "Advanced Polymer Binder", + "item.tfg.impure_annealed_graphite_rod": "不純な焼成グラファイトロッド", + "item.tfg.graphite_moderator": "グラファイトモデレーター", + "item.tfg.impure_graphite_moderator": "不純なグラファイトモデレーター", + "item.tfg.advanced_polymer_binder": "発展型ポリマーバインダー", "item.tfg.beaker": "Beaker", "item.tfg.beaker.filled": "Beaker of %s", "item.tfg.flask": "Flask", @@ -994,6 +1036,13 @@ "item.tfg.trapdoor_casting_mold": "金型(トラップドア)", "item.tfg.chain_casting_mold": "金型(鎖)", "item.tfg.bell_casting_mold": "金型(鐘)", + "item.tfg.rnr_plow": "Paving Cart", + "item.tfg.cobalt_brass_wheel": "Cobalt Brass Wheel", + "item.tfg.cellulose_matrix": "セルロースマトリックス", + "item.tfg.smooth_endoplasmic_reticula": "滑面小胞体", + "item.tfg.rough_endoplasmic_reticula": "粗面小胞体", + "item.tfg.alpha_keratin": "α-ケラチン", + "item.tfg.progenitor_cells": "前駆細胞", "material.tfg.latex": "ラテックス", "material.tfg.vulcanized_latex": "加硫処理ラテックス", "material.tfg.fluix": "フルーシュ", @@ -1030,7 +1079,7 @@ "material.tfg.kaolinite": "カオリナイト", "material.tfg.vitrified_pearl": "ガラス化したエンダー", "material.tfg.aes_mix": "アルカリアースシリケート混合物", - "material.tfg.molten_aes": "溶融アルカリアースシリケート", + "material.tfg.molten_aes": "熔融アルカリアースシリケート", "material.tfg.compressed_nitrox": "圧縮ナイトロックス", "material.tfg.compressed_heliox": "圧縮ヘリオックス", "material.tfg.compressed_heliox_3": "圧縮ヘリオックス-3", @@ -1083,6 +1132,31 @@ "material.tfg.cooked_mycelienzane": "1,3-Mycelienzane", "material.tfg.iodomethane": "ヨードメタン", "material.tfg.trideuteroiodomethane": "三重ヨードメタン", + "material.tfg.lauryl_alcohol": "ラウリルアルコール", + "material.tfg.chlorosulfuric_acid": "塩化スルホン酸", + "material.tfg.sodium_dodecyl_sulfate": "ドデシル硫酸ナトリウム", + "material.tfg.sodium_hypochlorite": "次亜塩素酸ナトリウム", + "material.tfg.mutative_yeast": "変異酵母", + "material.tfg.proto_growth_medium": "プロト生育培地", + "material.tfg.fibroblast_feeder_cells": "線維芽フィーダー細胞", + "material.tfg.gram_stain": "グラム染色液", + "material.tfg.crystal_violet": "クリスタルバイオレット", + "material.tfg.n_n_dimethylaniline": "N,N-ジメチルアニリン", + "material.tfg.triglyceride_oil": "トリグリセリドオイル", + "material.tfg.cholesterol": "コレステロール", + "material.tfg.butyric_acid": "酪酸", + "material.tfg.citric_acid": "クエン酸", + "material.tfg.sodium_dihydrogen_citrate": "クエン酸二水素ナトリウム", + "material.tfg.light_stock": "スープストック", + "material.tfg.rich_stock": "高級なスープストック", + "material.tfg.brown_gravy": "グレービーソース", + "material.tfg.zircon": "ジルコン", + "material.tfg.silicon_tetrachloride": "四塩化ケイ素", + "material.tfg.zirconium_tetrachloride": "塩化ジルコニウム(IV)", + "material.tfg.zirconium_oxide": "ジルコニア", + "material.tfg.zirconium_bromide": "臭化ジルコニウム(IV)", + "material.tfg.zirconium_diboride": "二ホウ化ジルコニウム", + "material.tfg.boron_carbide": "炭化ホウ素", "ore_vein.tfg.deep_sheldonite": "Cooperite & Bornite", "ore_vein.tfg.deep_garnet_amethyst": "Amethyst & Garnet", "ore_vein.tfg.deep_garnet_opal": "Opal & Garnet", @@ -1537,7 +1611,7 @@ "quests.ae2.extractor.subtitle": "生搾りフルーシュ", "quests.ae2.extractor.desc": "フルーシュの水晶は、&5液化フルーシュ&rに加工してから使うことが多いです。\nもちろん水晶のまま必要になることもあるので、少しは残しておきましょう。\n\n&e抽出機&rがあれば液化することができます。特別な装置を使う必要はありません。", "quests.ae2.extractor.task": "Any Extractor", - "quests.ae2.fluix_liquid.title": "Liquid Fluix", + "quests.ae2.fluix_liquid.title": "液化フルーシュ", "quests.ae2.fluix_liquid.subtitle": "月に住んでる方限定!大特価セール!", "quests.ae2.fluix_liquid.desc": "液体フルーシュが大量に必要になると言いましたが、実はその生成効率を大幅に上げる方法があります。\n\nそれが「&b超低温液化フルーシュ&r」です。これは月面でのみ作れる超低温の液体で、&b真空冷却機&rで、液化フルーシュとヘリウム3を組み合わせて冷却することで生成できます。\n\n超低温フルーシュは、液化フルーシュを使うほとんどのレシピで代わりに使うことができます。ただし、月面でのクラフト限定です。\n\nAE2のレシピを月面で行うことには多くのメリットがあります。電力消費が減ったり、必要素材が少なくなったり、あるいはその両方の場合もあります。\nAE2専用の月面拠点を整えることは大規模な事業になりますが、宇宙時代の初期では確実に役に立ってくれるでしょう。\n\n現時点では必須ではありませんが、将来的に惑星規模の施設が重要になるため、早めに第2拠点を作っておくと後が楽になります。――先取りしておくのも悪くないでしょう?", "quests.ae2.ae_processor.title": "プロセッサ", @@ -1765,250 +1839,250 @@ "quests.development.hull_zpm.title": "&cZPM&rで作成可能", "quests.development.hull_zpm.subtitle": "ウィットに富んだ", "quests.development.hull_zpm.desc": "これは&9ウェットウェア&r回路ラインです。\n\nこのmodpackで直面する最大の自動化の課題になります。頑張ってください。", - "quests.extreme_voltage": "&5EV&r - Extreme Voltage", - "quests.extreme_voltage.subtitle": "Reach Mars, discover Nuclear Fission, and build new massive multiblocks", - "quests.extreme_voltage.welcome_to_ev.title": "This is Extreme Voltage", - "quests.extreme_voltage.welcome_to_ev.subtitle": "Let's go Nuclear on Mars", - "quests.extreme_voltage.welcome_to_ev.desc.1": "You’ve built new &6chemistry lines&r, manufactured advanced &balloys&r, and even launched a &dRocket&r to reach the Moon. We hope you enjoyed the ride, because now things get even more complex, with powerful new machines and demanding processes ahead.\n\nIn the &5EV Chapter&r, your main objective will be to craft your very first &1IV&r and &dLuV&r Circuits.", - "quests.extreme_voltage.welcome_to_ev.desc.2": "Along the way, several key challenges await you:\n\n• Build your first &6Alloy Blast Smelter&r, a faster version of the EBF, specialized for alloys. With it, you’ll be able to construct your first Large Machine: the &6Large Centrifuge&r, essential for the Nuclear Fission Line. It also lets you upgrade ore processing with a faster Thermal Centrifuge.\n\n• Master our original &eTungsten Line&r - looping all the required materials will test both your knowledge and your patience.\n\n• Prepare to fly to &4Mars&r where you’ll become an &aextraterrestrial farmer&r while also learning to harness the &cpower of the atom&r.\n\nGood luck, this is where GregTech begins to show its true depth!", - "quests.extreme_voltage.distillation_tower.title": "The Distillation Tower", - "quests.extreme_voltage.distillation_tower.subtitle": "Mr. President, another Distillation Tower has hit the factory floor", - "quests.extreme_voltage.distillation_tower.desc.1": "&6The Distillation Tower&r (DT) is a direct multiblock upgrade of the &6Distillery&r. You won't have to choose outputs any more as the DT will handle them all automatically, at an increased power cost.\n\nThis machine will be your future bread and butter for anything involving &ePetrochem&r or &eOrganic distillation.", - "quests.extreme_voltage.distillation_tower.desc.2": "Like the &6Cleanroom&r, the DT can be made taller, though not wider. Starting from the second layer, each added level requires an &9Output Hatch&r and grants one additional fluid output slot; if a level lacks its output hatch, the corresponding fluid will be voided. Count the number of outputs with &dEMI&r so you know how many layers you need. As always, use the Multiblock Preview tab in &dEMI&r and click the multiblock to see where you can place each part.", - "quests.extreme_voltage.distillation_tower.desc.3": "&cNote:&r Be careful not to over-overclock the DT when producing fuels! Excessive overclocking can reduce the overall power yield, especially for Diesel. Do the math and double-check your calculations.", - "quests.extreme_voltage.cracker.subtitle": "You Crack Me Up", - "quests.extreme_voltage.cracker.desc": "The &3Cracker&r is a multiblock built with the sole purpose of cracking fluids. It comes with all the recipes of &3Chemical Reactor&r Cracking, but it is &6lossless&r.\n\nThis is a great way to save a lot of Fuel in the long term!\n\nHigher Coil tiers provide a small energy discount - up to 70%% with the best Coils available.", - "quests.extreme_voltage.ev_components.title": "Extreme Voltage Components", - "quests.extreme_voltage.ev_components.subtitle": "The \"Fun\" will never stop", - "quests.extreme_voltage.ev_components.desc": "&7By now, you should be getting used to the pattern with every new Energy Tier comes a fresh batch of components.&r\n\nThe &5EV&r tier comes with a few twists - first, &eNeodymium&r. You might already have some stored from your earlier mining trips, but you’ll also find it in large quantities when processing &eMonazite Ore&r.\n\nSecondly, Sensors and Emitters require &bCryogenized Fluix Pearls&r. Hopefully your &dMoon&r infrastructure is up and running to supply them efficiently.\n\nLastly, Motors require Kanthal wire. If you've been diligently upgrading your EBF, these should be significantly faster to craft than when you made them in MV (and you can recycle your old coils too!), but the Alloy Blast Smelter will be able to make this even faster.", - "quests.extreme_voltage.t2_rocket.title": "Rocket 2: Titanium Boogaloo", - "quests.extreme_voltage.t2_rocket.subtitle": "This one's purple", - "quests.extreme_voltage.t2_rocket.desc": "This new rocket shouldn’t be too difficult to assemble, but you’ll notice a clear jump in material costs compared to your previous model.\n\nThe upgraded &6Rocket Alloys&r now require both &bDistilled Water&r and &bCryogenized Fluix&r for cooling.\n\nMake sure you've fully set up your &eTitanium&r production line, as you're going to need a lot of it going forward! A continuous production line will save you a lot of frustration down the road.", - "quests.extreme_voltage.mars.title": "I'm on &4Mars&r!", - "quests.extreme_voltage.mars.subtitle": "The Red Planet", - "quests.extreme_voltage.mars.desc.1": "Before landing on &4Mars&r, there are a few important things to keep in mind.\n\nFirst, like the Moon, &4Mars&r will have some hostile surface mobs as well. If you haven't already figured out how to make your Space Suit stay with you after dying or invested in new EV-tier weaponry, you'll have a rough time.\n\nThe planet is mostly a &edesert world&r, dotted with \"&aislands&r\" where you’ll find &bwater&r, lush fauna, and much safer places to build your first base. Meanwhile, the open desert is extremely dangerous if you don't watch your step, but contains some other crucial resources!", - "quests.extreme_voltage.mars.desc.2": "All &bfluid veins&r are spread across Mars, except for &eHeavy Ammoniacial Water&r which can only be found outside of the desert. That’s another good reason to set up your base there.\n\nEnergy-wise, &4Mars&r will not be kind to you at first.\n\nNearly every common &6energy generation method&r is disabled or worthless on the planet, which means you’ll have to rely almost entirely on &cFission&r to power your base.\n\nAt the very beginning, we recommend bringing along some &bfilled batteries&r such as &bLapotron Crystals&r to get started, and then look towards setting up Thorium Fuel Rods.\n\nAchieving energy stability on Mars will take time and effort, but once your systems are running smoothly, you’ll feel like &9unlimited power&r is right in the palm of your hand.", - "quests.extreme_voltage.mars.desc.3": "And one last tip: don’t kill everything you see. Some &aanimals&r can be &franched&r, and you’ll definitely need them later in your progression.\n\nBe sure to check out the &aSpace Survival&r chapter for more Mars-related tips too!\n\nStay alert, plan ahead, and Mars will reward your courage.", + "quests.extreme_voltage": "&5EV&r - 超高電圧時代 ", + "quests.extreme_voltage.subtitle": "人は過ちを繰り返す", + "quests.extreme_voltage.welcome_to_ev.title": "EV時代が始まる", + "quests.extreme_voltage.welcome_to_ev.subtitle": "火星に行き、原子力を掌握せよ", + "quests.extreme_voltage.welcome_to_ev.desc.1": "あなたは高度な&b合金&rを製造し、先進的な&6科学技術&rを発達させ、さらには&dロケット&rを打ち上げてついには月にまで到達しました。ここまでの旅路を楽しんでいただけたなら幸いです。\n\nこれからはさらに複雑さが増し、より強力な機械や要求の厳しい加工が待ち受けています。&5EV&rでは、&1IV&r回路と&dLuV&r回路を作ることが主な目標となります。", + "quests.extreme_voltage.welcome_to_ev.desc.2": "EVを進めていくには、いくつもの重要な課題が待ち受けています。\n\n•&6合金高炉&rを作りましょう。これは高速な合金精錬に特化した大型機械です。そして&6大型遠心分離機&rに必要な合金が作れるようになります。\n大型遠心分離機は熱遠心分離と遠心分離の両方に対応しており、並列制御ユニットやエネハッチでの昇圧を利用して高速で処理できるようになります。EVを進める上では核分裂炉ラインに必須です。\n\n•TFG独自の&eタングステンライン&rを構築しましょう。完全な循環型ラインを組むにはかなりの知識と資源が要求されます。\n\n•&4火星&rへ向かう準備を整えましょう。火星では&a固有の生態系&rの理解を深めつつ、&c原子力&rを扱う技術も身につけることになります。\n\n幸運を祈ります。ここから先、GregTechの本領が発揮されていきます!", + "quests.extreme_voltage.distillation_tower.title": "蒸留塔", + "quests.extreme_voltage.distillation_tower.subtitle": "蒸留豆腐", + "quests.extreme_voltage.distillation_tower.desc.1": "&6蒸留塔&rは、&6蒸留機&rの大型版です。蒸留塔の何よりの利点は、複数の蒸留先のすべてを同時に生産することができる点です。もっとも、その分消費電力は増加してしまいますが。\n\nこの装置は、&e石油化学&rや&e有機蒸留&rに関するあらゆる工程の中核を担います。", + "quests.extreme_voltage.distillation_tower.desc.2": "&6クリーンルーム&rのように、蒸留塔はサイズの拡張性があります。ただし、変えられるのは高さだけです。\n\n蒸留塔の高さを1段重ねるたびに、&9搬出ハッチ&rを1つ追加することができ、液体の出力スロットが1つずつ増えていきます。搬出ハッチが設置されていない層があると、その層に対応する液体は生産されません。\n\n&dEMI&rでレシピの出力スロットの数を確認し、必要な階層数を把握しましょう。いつものように、&dEMI&rのマルチブロック情報で、構造を確認できます。その際、右上のP:0の表示をクリックすると、高さを変えた際の構造と必要な資材数を確認できます", + "quests.extreme_voltage.distillation_tower.desc.3": "&cメモ:&r燃料の生産に利用する際、過度にオーバークロックしないようにしましょう。オーバークロックで総消費電力が増えてしまうため、発電の収支が減少してしまいます。赤字にならないように発電量と消費電力のバランスを計算してみましょう。", + "quests.extreme_voltage.cracker.subtitle": "燃料生産もらっくらく", + "quests.extreme_voltage.cracker.desc": "&3クラッカー&rは、液体の分解(クラッキング)に特化した大型機械です。&3化学反応器&rで行うクラッキングを&6損失なし&rで処理することができます。\n長期的に見れば、燃料を大幅に節約できます。\n\n高品質なコイルを使用することで、エネルギー消費を抑えることができ、最上位のコイルでは最大70%お得になります。", + "quests.extreme_voltage.ev_components.title": "EVコンポーネント", + "quests.extreme_voltage.ev_components.subtitle": "新たな刺客たち", + "quests.extreme_voltage.ev_components.desc": "&7ここまで来れば、電圧が上がるたびに新しいコンポーネントが登場する流れにも慣れてきたことでしょう。&r\n\n&5EV&rティアでは新しい素材が要求されます。\nまずは&eネオジム&rです。鉱脈から掘り出すこともできますし、&eモナザイト&rを処理することでも大量に入手できます。\nセンサーとエミッターには&b超低温フルーシュパール&rが必要になります。&d月面&r基地の建造が完了していれば、困ることはないと思います。\nモーターの製作にはカンタルワイヤーが必要です。EBFをしっかりとアップグレードしてきたなら、MVのときよりもずっと早く作れるでしょう。合金高炉があれば、合金精錬を高速で処理できます。", + "quests.extreme_voltage.t2_rocket.title": "2等級ロケット", + "quests.extreme_voltage.t2_rocket.subtitle": "宇宙船火星号", + "quests.extreme_voltage.t2_rocket.desc": "この新型ロケットは、前のモデルと比べて作成コストが大幅に跳ね上がります。\n\n新たな&6ロケット合金&rは、冷却のために&b蒸留水&rと&b超低温液化フルーシュ&rの両方を必要とします。\n\n今後は&eチタン&rを大量に使うことになるため、生産ラインの自動化などに注力するのもいいでしょう。", + "quests.extreme_voltage.mars.title": "&4火星&r上陸", + "quests.extreme_voltage.mars.subtitle": "テラフォーマークラフト", + "quests.extreme_voltage.mars.desc.1": "&4火星&rに降り立つ前に、いくつか重要な注意点があります。\n\nまず、月と同じように&4火星&rでも敵対的なモブが出現します。宇宙服を死亡後も保持できるようにしていなかったり、EVティア相当の新しい武器を用意していない場合は、かなり苦戦するでしょう。\n\n火星は基本的に&e砂地の惑星&rですが、その中に&aオアシス&rとも呼べるような&b水&rと豊かな動植物が存在する安全な地域が点在しています。基地を建てるには最適です。\n\n一方で、砂漠地帯は非常に危険で、足元に注意しなければ命取りになることもありますが、そこには重要な資源も眠っています!", + "quests.extreme_voltage.mars.desc.2": "&b液体鉱脈&rは火星全体に分布していますが、&eアンモニア交じりの重水&rだけは砂漠地帯の外でしか見つかりません。これもまた、基地を砂漠の外に建てるべき理由の一つです。\n\n&4火星&rではエネルギー面において最初はかなり苦労するでしょう。一般的な&6発電方法&rのほとんどがこの惑星では使えない、もしくはまったく役に立たないため、火星での発電はほぼ完全に&c核分裂炉&rに頼ることになります。\n&bラポトロンクリスタル&rなどの&b充電済みバッテリー&rを初動の電源として持っていき、トリウム燃料棒での核分裂炉の運用を目指すのがおすすめです。\n\n火星で電力を安定供給できるようにするには時間と手間がかかりますが、すべてのシステムが順調に稼働し始めたとき、あなたはまるで&9無限の力&rを手にしたように感じるでしょう。", + "quests.extreme_voltage.mars.desc.3": "最後にもう一つのアドバイスです。動物は大事にしましょう。中には&a家畜&rとして&f飼いならす&rことができる動物もおり、後の進行で必ず必要になります。\n\nまた、「&a宇宙のあるきかた&r」の章にも火星での生活に関する情報があるので、ぜひ確認してみてください。\n\n常に警戒を怠らず、計画的に行動すれば、火星はあなたの勇気に必ず報いてくれるでしょう。", "quests.extreme_voltage.mars.task": "Land on Mars", - "quests.extreme_voltage.nuclear_fuel_factory.title": "Nuclear Fuel Factory", - "quests.extreme_voltage.nuclear_fuel_factory.subtitle": "Hot Rod", - "quests.extreme_voltage.nuclear_fuel_factory.desc": "The &6Nuclear Fuel Factory&r has one purpose: producing fuel rods for your &cFission Reactor&r.\n\nIt supports &9Parallel Hatches&r which you’ll unlock soon but they aren’t mandatory yet. Functionally, it works much like the Pyrolyse Oven: the &ebetter the coils&r you install, the faster the recipes will run.\n\nSince fuel rod production is both &cslow&r and &cexpensive&r, we strongly recommend using the &ahighest tier coils&r available. Don’t waste your time with Cupronickel, you’ll only be nerfing yourself.", - "quests.extreme_voltage.heavy_water.title": "Heavy Water", - "quests.extreme_voltage.heavy_water.subtitle": "Water for the Hardcore", - "quests.extreme_voltage.heavy_water.desc": "To run your Fission Reactor, you’ll need a steady supply of &bHeavy Water&r, and there’s only one place to find it.\n\nIt’s located in &adeep fluid veins&r found exclusively beneath the &alush islands&r of Mars. Grab your &6Ore Prospector&r, switch it to &bFluid Mode&r, and start scanning.\n\nBecause the amount of &bHeavy Water&r required to keep your reactor running is enormous, you should seriously consider investing in a &6Large Centrifuge&r to produce it yourself.\n\nInstall a &516A EV Energy Hatch&r, and you’ll be ready for true mass production ensuring your reactor never runs dry.\n\nReliable cooling means reliable power - build smart!", - "quests.extreme_voltage.nuclear_turbine.title": "Nuclear Steam Turbine", - "quests.extreme_voltage.nuclear_turbine.subtitle": "Steam power's back, baby", - "quests.extreme_voltage.nuclear_turbine.desc": "With Fission, you gain access to a brand new &6Dedicated Turbine&r! (The normal Large Steam Turbine can only handle regular Steam.)\n\nIt works just like the previous turbines, but similar to the Gas Turbine, it requires at least an &5EV Rotor Holder&r to operate.\n\nThe coils inside this turbine must be &7Cupronickel&r, and they don’t affect performance in any way (but we have to admit, they look pretty good).\n\nIn this quest, we suggest two &aRotors&r that fit nicely for the turbine at this stage, but feel free to experiment and use any &brotor&r that suits your setup best.", - "quests.extreme_voltage.reactor_components.title": "Reactor Heat Management", - "quests.extreme_voltage.reactor_components.subtitle": "Active and Passive ways to cool your reactor", - "quests.extreme_voltage.reactor_components.desc.1": "One of the most interesting features of the Fission Reactor is its ability to have blocks added inside to modify its &emaximum heat capacity&r.\n\nYou can place certain &6Component Blocks&r within the corners of the reactor, allowing for up to &e20 blocks&r in total. As an example, you can use &9Material Holders&r and insert cooling items with input buses, which help manage heat buildup.\n\nIt’s also important to note that Material Holders are the &conly way&r to enable the &brecipe processing&r part of the Fission Reactor.\n\nSmart internal configuration will make the difference between a stable reactor and one on cooldown, so plan your layout carefully!", - "quests.extreme_voltage.reactor_components.desc.2": "As discussed earlier, running three &eThorium Rods&r will push your reactor’s heat to around &c420&r, just above the default limit. However, you can safely reach that threshold by improving your &6reactor insulation&r.&r\n\nAdding &e10 Framed Glacial Wool&r or &e20 Framed AES Insulation&r blocks inside the structure will raise your reactor’s Max Heat to &e420&r, allowing you to operate with three Thorium Rods without triggering cooldown mode.&r\n\nKeep in mind, though, that increasing the number of active rods will also accelerate their &adurability loss&r. This means each rod will produce less steam per tick on average, reducing its &aefficiency&r, but on the other hand, it will &bspeed up fission material production&r significantly.\n\nWhether you prefer &aefficiency&r or &bthroughput&r is entirely up to you - that’s the balancing act at the heart of mastering the &6Fission Reactor&r.", - "quests.extreme_voltage.heat_exchanger.title": "Heat Exchanger", - "quests.extreme_voltage.heat_exchanger.subtitle": "All that heat's gotta go somewhere!", - "quests.extreme_voltage.heat_exchanger.desc.1": "The &6Heat Exchanger&r is a critical component for the next step of your Fission Line - not only for cooling, but also for producing more &eHigh Pressure Steam&r, the steam that powers your Nuclear Turbine.\n\nIt features &bPerfect Overclocking&r and &bSubtick Processing&r. If these terms sound unfamiliar, we strongly recommend reviewing the &dGregTech Energy Chapter&r to fully understand how they affect performance.", - "quests.extreme_voltage.heat_exchanger.desc.2": "Don’t hold back! Install a &516A EV Energy Hatch&r right from the start so you’ll never have to worry about speed or throughput limitations.\n\nWe also provide you with a &9Machine Controller&r to attach to your Heat Exchanger’s main controller. We’ve noticed that the machine can sometimes disable itself unexpectedly, so be sure to enable &ePrevent Power Failing&r. This will counter the GregTech mechanic that shuts down machines when they momentarily lose power.", - "quests.extreme_voltage.refrigerant_pellet.title": "Refrigerant Pellets", - "quests.extreme_voltage.refrigerant_pellet.subtitle": "A temporary solution to extreme temperatures", - "quests.extreme_voltage.refrigerant_pellet.desc": "The &dPlutonium Fuel Rod&r runs at extremely high temperatures - so high, in fact, that you’ll need to use &bRefrigerant Pellets&r inside your reactor to prevent it from going into cooldown mode.\n\nThese pellets are quite expensive to produce, but you should still be able to mass-produce them early on, or at least enough to keep your first few plutonium rods operational. You need approximatively &9256&r to run a full Plutonium Rod.\n\nLater on, if you don’t like constantly crafting these consumables, you’ll gain access to &6advanced reactor components&r. With those installed, your reactor will be able to safely reach up to &e600 Max Heat&r, greatly improving efficiency and stability.\n\nInvest in better internal parts early, to spend less time babysitting your power core.", - "quests.extreme_voltage.important_info.title": "Before starting", - "quests.extreme_voltage.important_info.subtitle": "Not an easy place to start", - "quests.extreme_voltage.important_info.desc.1": "Before you start building your base on &cMars&r, here are a few important tips to help you settle in successfully.&r\n\nWhile exploring, you might come across &6Martian Ruins&r containing &eAtomic Casings&r and &eHigh Temperature Smelting Casings&r. These won’t replace the massive number you’ll need later, but they can give you a small head start while scouting for the perfect base location.&r", - "quests.extreme_voltage.important_info.desc.2": "When it comes to your Martian infrastructure, there are two main approaches:&r\n\n• &aPreparation-focused&r: Build everything required for your full &6Fission Line&r before establishing your base. This means an enormous material investment, but allows you to be self-sufficient once operational.\n\n• &aProgressive setup&r: Start smaller with your &6Nuclear Fuel Factory&r, your first &6Fission Reactor&r (running on &eThorium&r), and a &6Nuclear Turbine&r. This route is faster to start, but managing energy will be rough until your fission system stabilizes.\n\nEither way, we always recommend having an exploration mission before you start settling down!", - "quests.extreme_voltage.important_info.desc.3": "Because every kind of combustion-based energy won't work on Mars, you’ll want to bring a good stock of &bLapotron Crystals&r to power your first recipes and oxygen systems.\n\nWe also strongly recommend setting up a &6Distillation Tower&r. &eMartian Air&r can be processed into breathable &bAir&r and several other useful gases. Alternatively, everything for Compressed Nitrox can come from the local Semiheavy Ammoniacal Water.\n\nSurvival on Mars isn’t about luck, it’s about preparation!", + "quests.extreme_voltage.nuclear_fuel_factory.title": "核燃料形成機", + "quests.extreme_voltage.nuclear_fuel_factory.subtitle": "危険な熱い棒", + "quests.extreme_voltage.nuclear_fuel_factory.desc": "&6核燃料形成機&rは、&c核分裂炉&r用の燃料棒を作るための機械です。\n\n動作の仕組みは熱分解炉とほぼ同じで、&eより高性能なコイル&rを使うほど処理速度が速くなります。燃料棒の製造は&c非常に遅く&r、&c消費電力も多い&rため、可能な限り&a上位のコイル&rを使うことを強くおすすめします。\n\nもうすぐ解禁される&9並列制御ユニット&rにも対応していますが、現時点では使う必要がありません。", + "quests.extreme_voltage.heavy_water.title": "重水", + "quests.extreme_voltage.heavy_water.subtitle": "重たいお水", + "quests.extreme_voltage.heavy_water.desc": "核分裂炉を動かすには、&b重水&rを安定して供給する必要があります。しかし、重水を直接採取できるのは火星の&alush_islands&rの液体鉱脈だけです。&6発展型電動探査機&rの&b液体探知モード&rで見つけられます。\n\n原子炉を稼働させ続けるためには膨大な量の&b重水&rが必要なので、&6遠心分離&rでの確保のために大型遠心分離機を導入することも検討しましょう。&5EV16Aエネルギーハッチ&rで稼働させれば、本格的な大量生産ができ、核分裂炉の冷却が途切れる心配もなくなります。\n\n冷却が安定すれば、電力も安定します。計画的に設備を整えましょう!", + "quests.extreme_voltage.nuclear_turbine.title": "原子力蒸気タービン", + "quests.extreme_voltage.nuclear_turbine.subtitle": "蒸気時代が帰ってきたぜ", + "quests.extreme_voltage.nuclear_turbine.desc": "核分裂ラインでの発電では&6専用のタービン&rを使います。(普通の大型蒸気タービンでは通常の蒸気しか扱えません。)\n\n動作自体はこれまでのタービンと同じですが、ガスタービン同様、最低でも&5EVローターホルダー&rが必要になります。内部のコイルは&7キュプロニッケル&rでなければならず、性能には影響しません(見た目がいいというだけですね)。\n\nこのクエストでは、この段階で使いやすい&aローター&rを2種類紹介していますが、もちろん他の自分が使いたい&bローター&rを使って構いません。", + "quests.extreme_voltage.reactor_components.title": "核分裂炉の熱管理", + "quests.extreme_voltage.reactor_components.subtitle": "冷却手段のいろは", + "quests.extreme_voltage.reactor_components.desc.1": "核分裂炉には、内部に特定のブロックを組み込んで&e耐熱許容量&rを調整できるという独特な仕組みがあります。\n\n炉内の四隅の部分には最大&e20ブロック&rまで&6コンポーネントブロック&rを設置でき、たとえば&9Material_Holders&rに冷却材を投入して冷却する、といったことができます。Material_Holdersは、核分裂炉での&bレシピ処理&rを行うための&c唯一の手段&rでもあります。\n\n安定稼働ができるかどうかは内部の構成次第です。配置はよく考えて行うことをおすすめします。", + "quests.extreme_voltage.reactor_components.desc.2": "&eトリウム燃料棒&rを3本同時に使うと、熱量は約&c420&rに達し、デフォルトの上限を少し超えてしまいます。しかし、&6耐熱フレーム&rを組み込むことで、高温でも安全に動かせます。\n\n内部に&e10個の氷塊羊毛の耐熱フレーム&r、または&e20個のAESの耐熱フレーム&rを組み込むことで最大熱上限が&e420&rに引き上がり、3本での稼働でもクールダウンによる稼働停止しなくなります。\n\nただし、燃料棒の本数が増えると&a耐久消耗&rが早く進むため、1本あたりからの蒸気生産量は減り、&a効率&rは落ちてしまいます。その代わり、&b核分裂素材の生成速度&rは大幅に向上するため、どちらを重視するかはプレイスタイル次第です。\n\n効率か速度か...この調整の妙こそが、&6核分裂炉&rを使いこなすうえで重要な点です。", + "quests.extreme_voltage.heat_exchanger.title": "熱交換機", + "quests.extreme_voltage.heat_exchanger.subtitle": "熱エネルギーの移動", + "quests.extreme_voltage.heat_exchanger.desc.1": "&6熱交換機&rは、核分裂炉運用を次の段階へ進めるうえで非常に重要な機械です。冷却に使えるだけでなく、原子力蒸気タービンを動かすための&e高圧蒸気&rを作り出すことができます。\n\nまた、この機械は&bPOC&rと&bサブティック&rに対応しており、仕組みを理解しておくことで性能を最大限活かせます。\n\nもしこれらの概念に覚えがなければ、「&dGregTechの電力システム&r」の章を読み返して理解を深めることをおすすめします。", + "quests.extreme_voltage.heat_exchanger.desc.2": "ここは思い切って、&5EV16Aエネルギーハッチ&rを付けておくのがおすすめです。こうしておけば、処理速度や処理量の上限を気にせず運用できます。\n\n熱交換機用に&9マシンコントローラ&rを配布しておきます。この機械はまれに勝手に停止することがあるため、マシンコントローラで&ePrevent_Power_Failing&rをオンにしておくと安心です。これは、瞬間的な電力切れで機械が止まってしまうGregTech特有の挙動を防いでくれます。", + "quests.extreme_voltage.refrigerant_pellet.title": "冷媒ペレット", + "quests.extreme_voltage.refrigerant_pellet.subtitle": "超高温の対処法", + "quests.extreme_voltage.refrigerant_pellet.desc": "&dプルトニウム燃料棒&rは非常に高温で動作するため、そのままではすぐにクールダウンモードに入ってしまいます。そこで、炉内に&b冷媒ペレット&rを投入して温度を抑える必要があります。\n\nペレットはやや高価ですが、序盤でも十分量産でき、数本のプルトニウムロッドを動かす分は問題なく確保できます。プルトニウムロッド1本を使い切るには、だいたい&9256個&rほど必要です。\n\n後々、こうした消耗品を作り続けるのが煩わしいと感じるようになったら、&6上位の耐熱フレーム&rを作りましょう。これらを組み込めば、原子炉は最大&e600Heat&rまで安全に耐えられるようになり、効率も安定性も大きく向上します。\n\n早いうちからコンポーネントを改善して、より楽な核分裂ライフを送りましょう!", + "quests.extreme_voltage.important_info.title": "火星での暮らし方", + "quests.extreme_voltage.important_info.subtitle": "火星移住プロジェクト", + "quests.extreme_voltage.important_info.desc.1": "ここでは&c火星&rでの拠点づくりに役立つ情報をお教えします。\n\n探索中に見つけた&6火星の遺跡&rの中から、&e原子マシン外装&rや&e高温精錬用マシン外装&rなどを入手できることがあります。これだけで十分に確保するのは厳しいですが、資源が足りない時のちょっとした助けになるでしょう。&r", + "quests.extreme_voltage.important_info.desc.2": "火星でインフラをどう整えるかについては、大きく二つの方針があります。\n\n&r•&aすべてを用意する&r:拠点を構える前に、&6核分裂ライン&rを完全に動かすために必要な設備をすべて揃えておく方法です。膨大な素材を必要としますが、稼働後は自給自足が可能になります。\n\n•&a段階的に進める&r:最初は、最低限核分裂ラインを動かすための、&6核燃料形成機&r、&eトリウム&r、&6核分裂炉&rそして&6原子力蒸気タービン&rのみを用意する方法です。\nこのやり方は早く始められますが、核分裂システムが安定するまではエネルギー管理がかなり大変です。\n\nどちらを選ぶにしても、拠点建造前に必ず火星の探索を行うことを強くおすすめします!", + "quests.extreme_voltage.important_info.desc.3": "火星ではどの種類の燃焼系発電も一切使えないため、最初に機械を稼働させるときや酸素供給システムの稼働のために、&bラポトロンクリスタル&rをいくつか持ち込む必要があります。\n\nまた、&6蒸留塔&rの運用も強くおすすめします。&e火星の空気&rは処理することで、呼吸可能な&b空気&rや、ほかにもさまざまな有用ガスに変換できます。\n\n別の方法としては、圧縮ナイトロックスに必要な材料をすべて、現地で採取できるアンモニア交じりの半重水から調達することも可能です。\n\n火星で生き残るのに必要なのは運ではなく、準備です!", "quests.extreme_voltage.important_info.task": "It's Marsing Time", - "quests.extreme_voltage.dense_lead.title": "Faster Dense Lead Plates", - "quests.extreme_voltage.dense_lead.subtitle": "Don't expect it for other dense plates", - "quests.extreme_voltage.dense_lead.desc": "Because of the tremendous amount of Dense Lead Plates you will need for Atomic Casings, we offer a new, albeit less efficient, recipe with the help of the Implosion Compressor. Feel free to use it if you don't want to wait forever for your benders.", - "quests.extreme_voltage.thorium_rod.title": "Fuel Rods", - "quests.extreme_voltage.thorium_rod.subtitle": "Handle with care", - "quests.extreme_voltage.thorium_rod.desc.1": "Each &6Fuel Rod&r comes with its own set of properties including &adurability&r (how long it lasts in the reactor), &cheat generation&r (how much heat it produces), and even different &eproducts&r and &bsteam output levels&r. You can view all of this information directly in the &aEMI&r tabs for each rod.&r\n\nBefore diving into how the Fission Reactor functions, here are some key points to understand:&r", - "quests.extreme_voltage.thorium_rod.desc.2": "• The &eHeat Percentage&r shown on a fuel rod translates to slightly less than double its value inside the reactor. For example, a &eThorium Rod&r with a &cHeat&r of 70%% will generate just under 140 heat when enough &bHeavy Water&r is pumped into your reactor. This heat increase is &aadditive&r, meaning that 2 Thorium Rods will raise your reactor’s total heat to around 280.&r", - "quests.extreme_voltage.thorium_rod.desc.3": "• &aDurability&r decreases at the same base rate for all rods. However, the higher the reactor’s temperature, the faster the rods degrade. Because of this, even if a certain rod type has 4× the durability of another, it doesn’t necessarily mean it will last 4× longer, as &ctemperature directly impacts longevity&r.&r\n\nBalancing the amount of rods within the reactor will be your first challenge with Fission.", - "quests.extreme_voltage.fission_reactor.title": "Fission Reactor", - "quests.extreme_voltage.fission_reactor.subtitle": "Oh no, it's on cooldown again", - "quests.extreme_voltage.fission_reactor.desc.1": "To start off, if you’re looking for a deeper dive into &6Fission Reactor&r mechanics including formulas, detailed calculations, and system behavior, check out the quest in the &aGregTech Energy&r chapter. It covers everything you’ll need if you want to get into the math behind the heat and efficiency systems.&r\n\nFor now, let’s focus on your very first &6Thorium Reactor&r. Its base &cMax Heat&r is &e400&r. As explained in the previous quest, running two Thorium Rods will push your internal heat to around &e280&r, which is perfectly safe. However, adding a third rod raises the total to about &c420 Heat&r, exceeding the limit and triggering &ccooldown mode&r.", - "quests.extreme_voltage.fission_reactor.desc.2": "Don’t worry, there’s no explosion, but your reactor will shut down and won’t restart until it fully cools back to 0 Heat. This will completely halt both your &aenergy production&r and your &afission product&r generation - a major setback.\n\nManaging how many rods are active will therefore be your first &6challenge&r and the main minigame of Fission.\n\nThere are multiple ways to approach this, and experimentation is part of the fun.\n\nOne way is by attaching a &6Redstone Port&r to your reactor, and using a &aWrench&r on it switches its monitoring mode between &erod count&r and &cheat level&r.\n\nFinally, note that all rods are stored inside the &6Fuel Holder&r. That means limiting the number of active rods isn’t as simple as having 2 rods in the input bus, &cyou’ll need to control what enters the Input Bus&r to fine-tune your reactor’s operation.", - "quests.extreme_voltage.high_pressure_steam.title": "High Pressure Steam", - "quests.extreme_voltage.high_pressure_steam.subtitle": "Better steam, bigger turbine", - "quests.extreme_voltage.high_pressure_steam.desc": "&4Important Info&r: If the reactor doesn't have enough space to output High Pressure Steam, it will simply void.\n\nFor balancing (and pipe throughput) reasons, the &6Fission Reactor&r does not produce regular steam. Instead, it generates &bHigh Pressure Steam&r, which can only be used in a &6Nuclear Steam Turbine&r.\n\nAttempting to run it through a standard Steam Turbine will &cnot work&r.", - "quests.extreme_voltage.ev_superconductor.title": "EV Superconductors", - "quests.extreme_voltage.ev_superconductor.subtitle": "Bigger Amp ability", - "quests.extreme_voltage.ev_superconductor.desc": "Now that you've processed some &eUranium&r, you should check out the &5EV Superconductors&r.\n\nThese superconductors have higher amp capacity, helping you move energy efficiently across your base and ensuring your &6Nuclear Steam Turbines&r output reaches all your machines without loss.", - "quests.extreme_voltage.uraninite_dust.subtitle": "That's a lot of rods", - "quests.extreme_voltage.uraninite_dust.desc": "To craft your &eUranium Fuel Rods&r, you’ll need a substantial amount of &eUraninite&r - around &c240 Dust&r per rod. Start mining it early to keep up with demand later.\n\nThe largest veins can be found on Mars, where some deposits reach &aimpressive sizes&r. Later in your progression, you’ll be able to produce Pitchblende and Uraninite Dust &ainfinitely&r using the &6Ostrum Linear Accelerator&r, but we’ll cover that in more detail in a future quest.", - "quests.extreme_voltage.uranium_line.title": "The Uranium Line", - "quests.extreme_voltage.uranium_line.subtitle": "That's one more new processing line", - "quests.extreme_voltage.uranium_line.desc": "To process &eUranium&r and its &eUranium 235&r &eIsotope&r, you’ll need to set up a dedicated small processing line. \n\nRest assured, you can &aloop the Fluorine&r, so the only input you’ll need is &eUraninite Dusts&r.\n\nYou can build this line on Earth, but it may be more convenient to operate it on Mars, where the majority of Uraninite Ore should be harvested.", - "quests.extreme_voltage.radioactive_waste.title": "Radioactive Waste", - "quests.extreme_voltage.radioactive_waste.subtitle": "One man's trash is another man's progression material", - "quests.extreme_voltage.radioactive_waste.desc": "Radioactive Waste is a &ccritical byproduct&r for crafting your next fuel rods, so always ensure there’s enough space to output it. If the Fission Reactor cannot find an available output, it will simply &cvoid the waste&r, losing valuable resources.\n\nWe recommend either:\n- Installing a dedicated Output Hatch in &blocked mode&r\n- Using a Super Tank with an Advanced Fluid Detector Cover\n\nIf you have an &dME Network&r on Mars, another option is the recently unlocked &6ME Output Hatch&r.", - "quests.extreme_voltage.uranium_rod.subtitle": "Finally, some real power!", - "quests.extreme_voltage.uranium_rod.desc.1": "This is the second-generation reactor fuel - it offers &a4× more durability&r and produces &a5× more steam&r compared to a standard &eThorium Rod&r. However, there are important trade-offs you must plan for.\n\n&9Production cost and setup:&r\n• Producing this fuel consumes &eThorium Rods&r continuously, so it’s recommended to dedicate a separate &6Fission Reactor&r for each of these advanced rods, although if you're up for the challenge of juggling them in one reactor, that's an option too.", - "quests.extreme_voltage.uranium_rod.desc.2": "Heat and mitigation options: A single Uranium Fuel Rod generates about &c435 Heat&r inside a standard reactor, far above the default limit. To handle this you have three main options:\n\n&7→&r &eInstall 20 Framed Glacial Wool&r blocks inside the reactor to raise &cMax Heat&r to &e440&r, allowing one rod to run safely.\n\n&7→&r &6Use Material Holders&r and pump large quantities of &bDry Ice&r to drop the reactor temperature. This requires a robust infrastructure and access to a &bLiquid CO2 fluid vein&r on Mars.\n\n&7→&r &bUse Refrigerant Pellets&r placed in Material Holders. They behave like Dry Ice but are far more potent. Note that Refrigerant Pellets consume a decent amount of &eFluorine&r to craft, and you do not have infinite Fluorine at this point.\n\nObviously, you can also make your own sauce and mix all of these options together.", - "quests.extreme_voltage.uranium_rod.desc.3": "&cImportant note for Uranium Fuel Rods:&r Reactors running &eUranium Rods&r require a drastically larger supply of &bHeavy Water&r for cooling. Ensure you have abundant Heavy Water production or storage before attempting to run these rods, or your reactor will quickly hit critical cooling limits.\n\nPlan your supply lines and cooling strategy carefully - these fuels are powerful, but they demand serious infrastructure.", - "quests.extreme_voltage.uranium_waste.title": "Uranium Waste and Radioactive Steam", - "quests.extreme_voltage.uranium_waste.subtitle": "You guessed it, more processing", - "quests.extreme_voltage.uranium_waste.desc.1": "The products from &eUranium Fuel Rods&r are a bit more involved than thorium.\n\n&6• Uranium Waste&r is the feedstock that starts the &dPlutonium Line&r. It can be processed immediately.\n\n&6• Radioactive Steam&r, unlike normal steam, will need to be handled by a &6Heat Exchanger&r. Send the radioactive steam through a Heat Exchanger to recover High Pressure Steam.", - "quests.extreme_voltage.uranium_waste.desc.2": "Additionally, your Radioactive Steam should heat &eAmmonium Formate&r into &eFormamide&r, a core precursor for producing plutonium fuels. This means that before you can reliably obtain High Pressure Steam from a Uranium Reactor for energy use, you must ensure a continuous supply of &eAmmonium Formate&r for the conversion chain.\n\n&cPractical note:&r Set up a dedicated, continuous line to produce &eAmmonium Formate&r. Without steady Ammonium Formate production, your plutonium workflow and your High Pressure Steam production will stall.", - "quests.extreme_voltage.ammonium_formate.title": "Ammonium Formate", - "quests.extreme_voltage.ammonium_formate.subtitle": "Always keep a backlog!", - "quests.extreme_voltage.ammonium_formate.desc": "Being able to make infinite &eAmmonium Formate&r is mandatory to ensure a constant energy production, as you won’t be able to process &bRadioactive Steam&r into High Pressure Steam without it. It's not very hard, though!\n\nFirst, to make &eFormic Acid&r, simply combine CO₂ that you can get from Mars Air with Water from an Aqueous Accumulator.\n\nThen, for &eAmmonia&r, you can simply electrolyze the &eAmmonium Chloride Dust&r you got from centrifuging (Semi) Heavy Ammoniacal Water.\n\nAs you will get a surplus of &bOxygen&r and &bHydrochloric Acid&r, make sure to void these fluids above a threshold so they don’t clog your &eAmmonium Formate&r production.", - "quests.extreme_voltage.nuclear_residue_dust.title": "Nuclear Residue Dust", - "quests.extreme_voltage.nuclear_residue_dust.subtitle": "Oh, this is where Radon comes from", - "quests.extreme_voltage.nuclear_residue_dust.desc": "Obtaining &eNuclear Residue Dust&r is the first step in the &dPlutonium Line&r.\nIt requires a &5EV Gas Pressurizer&r on Mars to produce.\n\nThe process will also generate &bRadon&r as a byproduct, and even though you will need Radon for later steps, the surplus from this line will be significant. It will be your only reliable source of Radon for now.\n\nLuckily for you, &eNuclear Residue&r requires no complex loop: simply feed in the outputs from your Uranium Reactor and Heat Exchanger, add &eMartian Sludge&r, and the &6Gas Pressurizer&r will produce Nuclear Residue Dust. You’ll be ready to continue the Plutonium chain immediately.", - "quests.extreme_voltage.oxidized_nuclear_residue_dust.subtitle": "What is this weird concoction?", - "quests.extreme_voltage.oxidized_nuclear_residue_dust.desc.1": "This next step is the start of the many loops surrounding the &dPlutonium Line&r.\n\nTo make &bOxidized Nuclear Residue Dust&r you will require &bDioxygen Difluoride&r. Thankfully, we do not ask you to have an infinite amount of Fluorine, so for this recipe to run continuously you will recover Fluorine later as &bHydrofluoric Acid&r that you can electrolyze.", - "quests.extreme_voltage.oxidized_nuclear_residue_dust.desc.2": "Because the recipes take a long time, we still advise adding a good starter stock of Fluorine to kickstart the loop.\n\nAs always, during this loop, be wary of storage: a full tank or a blocked buffer can stop your entire line, and flying to Mars to fix it would be a bother. &aSuper Tanks&r or whitelisted &aAE2 disks&r with void upgrades are helpful solutions.\n\nNote that the recipe also produces &eResidual Radioactive Concoction&r. Try not to void this one, it will be a useful material for future systems such as the &6Ostrum Linear Accelerator&r (infinite ores from Mars), the &6Growth Chamber&r (first steps into Bioengineering) and even &6Fission Reactors&r outside of Mars.", - "quests.extreme_voltage.refined_nuclear_dust.subtitle": "Ah, this where my Fluorine went", - "quests.extreme_voltage.refined_nuclear_dust.desc": "The &eRefined Nuclear Residue Dust&r lets you recover Fluorine as Hydrofluoric Acid so you can loop it back into &bDioxygen Difluoride&r.\n\nYou should already know how to make Distilled Water, and don’t forget to void any surplus Oxygen if you have nowhere to store it.\n\nThis recipe is very slow. If you feel confident energy-wise, consider running it in a &6Large Centrifuge&r to speed things up. Be cautious, though, you don’t want to drain too much power early in your progression.", - "quests.extreme_voltage.plutonium.title": "Plutonium", - "quests.extreme_voltage.plutonium.subtitle": "Look at this massive atomic mass", - "quests.extreme_voltage.plutonium.desc": "You’ve finally reached Plutonium! Its only practical use right now is to craft &dPlutonium Fuel Rods&r, so don’t bother hoarding it.\n\nAny extra steam produced can be voided or used in a regular steam turbine, but the &6Nuclear Steam Turbine&r will not accept this steam&r.\n\nIf you want to recover energy, route the surplus to conventional steam turbines; otherwise safely void the excess to prevent backups.", - "quests.extreme_voltage.plutonium_rod.subtitle": "Once upon a time, I had power issues", - "quests.extreme_voltage.plutonium_rod.desc.1": "Let’s be clear: the &dPlutonium Fuel Rod&r may be a real bother to craft, but it’s an absolute &abeast of energy&r. It outputs nearly &e4× more High Pressure Steam&r than the Uranium Rod, making it perfect for scaling your Martian infrastructure, even if you run it less frequently.", - "quests.extreme_voltage.plutonium_rod.desc.2": "However, its &cmassive heat&r poses a serious challenge. Reaching up to &6595 Heat&r, it’s impossible to run it safely for the time being without &bRefrigerant Pellets&r. Check the quest on the right for more details about this material, which you can insert into a &6Material Holder&r.\n\nThe good news? You can stabilize the reactor with just &61 Material Holder&r, bringing the temperature down to around &e430 Heat&r manageable with some &fFramed Glacial Wool&r. Otherwise, &62 Material Holders&r should keep it perfectly under control.", - "quests.extreme_voltage.tritiated_water.title": "Tritiated Water", - "quests.extreme_voltage.tritiated_water.subtitle": "Radioactive Water? Is everything radioactive?", - "quests.extreme_voltage.tritiated_water.desc": "This &bRadioactive Water&r is a key component for producing &eNano CPU Wafers&r and ultimately, your &6first IV Circuits&r.\n\nIt’s also used in the Ostrum Linear Accelerator and can be electrolyzed into &6Tritium&r, though you won’t need that for quite some time.\n\n&cBe extremely careful&r: &bTritiated Water&r is incredibly precious, so don’t lose a single drop of it!", - "quests.extreme_voltage.nano_cpu_wafer.subtitle": "That sounds like marketing", - "quests.extreme_voltage.nano_cpu_wafer.desc": "The &dNano CPU Wafer&r is your gateway to IV Circuits and also to the &bAE2 64k Storage Cells&r.\n\nYou’ll need a huge amount of these circuits, as they’re used in nearly every advanced circuit tier from now on, whether by &eupgrading the Wafer&r itself or crafting the &ahighest-end circuit versions&r.\n\nThey’re also required for your &6IV Batteries&r, the &dLapotronic Energy Orbs&r.\n\nFor reference, &b1 Plutonium Fuel Rod&r will produce enough Tritiated Water for &eexactly 9 Nano CPU Wafers&r.", - "quests.extreme_voltage.first_iv_circuit.title": "Mainframes - First IV Circuits!", - "quests.extreme_voltage.first_iv_circuit.subtitle": "Are we done with EV yet?", - "quests.extreme_voltage.first_iv_circuit.desc": "Finally, after all this time, you’ve obtained a new circuit and unlocked an entirely new tier. Many possibilities are now open to you, but your main focus should be the &6IV Assembler&r first, as it will allow you to craft the &eFramed Moderate Core&r which greatly increases your reactor’s &cMax Heat&r, eliminating the need for Refrigerant Pellets.\n\nYou can also build the &5EV Circuit Assembler&r to unlock &bNanoprocessor Circuits&r. Keep in mind, though, that these will require Nano CPU Chips, so you’ll need a well-established fission setup to support them.\n\nMore details will be provided in the &6IV Chapter&r, so you can finally feel fully comfortable progressing into this new tier.", - "quests.extreme_voltage.moderate_core.subtitle": "That's a big upgrade", - "quests.extreme_voltage.moderate_core.desc": "It’s time for a major upgrade to your &6Fission Reactor&r. The &eFramed Moderate Cores&r come in two versions, depending on your luck. The better version allows your &dPlutonium Reactor&r to run &aone rod fully passively&r, so you can say goodbye to constantly making &bRefrigerant Pellets&r! You could also experiment by combining them with the new framed components, potentially running &atwo Plutonium Rods&r simultaneously.\n\nAlso known as the &6Graphite Line&r, the processing line to craft these new blocks is somewhat random: you might fail the craft or get a lower-tier version. This can make full automation with &dAE2&r slightly trickier, though it’s still possible with careful setup.\n\nWe’ll leave it to you to experiment and figure out the most efficient way to produce these cores.", - "quests.extreme_voltage.abs.subtitle": "We love this heater", - "quests.extreme_voltage.abs.desc": "The &6Alloy Blast Smelter&r is a very special multiblock. It works similarly to the &6EBF&r, with better coils allowing for Perfect Overclocking (see the Energy Chapter), and it can process most EBF recipes &a25%% faster&r. Note that it outputs molten fluids instead of hot ingots!\n\nOne key feature of the &6ABS&r is its ability to craft the alloys needed for &6Large Multiblock Machines&r. Essentially, every basic machine like the Macerator or the Distillery has its own multiblock, offering extensive customization options such as multiple Input/Output Buses/Hatches or even adding a Parallel Hatch.\n\nFor more details about these multiblocks, refer to the &6Gregtech Energy Chapter&r.", - "quests.extreme_voltage.ev_mixer.title": "&5EV Mixer&r", - "quests.extreme_voltage.ev_mixer.subtitle": "Faster than your local bartender", - "quests.extreme_voltage.ev_mixer.desc": "Some machines are critical for progression, and the &6Mixer&r is one of them.\n\nIt unlocks several essential alloys required to move forward, notably the &6RTM Alloy&r, which you’ll need to upgrade the coils of your &6EBF&r. This alloy is gated behind both the Tungsten Line and part of the Platline, so don’t expect it to be an easy one.\n\nSoon, you’ll also unlock the &5Large Mixer&r, which allows you to install two Energy Hatches. This could be the last time you’ll need to build a single-block Mixer, though as always, the choice is yours.", - "quests.extreme_voltage.rtm.title": "RTM Alloy", - "quests.extreme_voltage.rtm.subtitle": "Ruthenium-Tungsten-Molybdenum Alloy", - "quests.extreme_voltage.rtm.desc": "To craft &6RTM Alloy&r, you’ll need both &dRuthenium&r, a product of the infamous &dPlatline&r and &aTungsten&r, which has been made a bit harder to obtain in TFG.\n\nBefore rushing into RTM production, make sure both of these lines are running smoothly.\n\nIn regular GregTech, RTM Alloy is often just a short stepping stone, but not here. In &bTerraFirmaGreg&r, you’ll require RTM Alloy for several parts of your upcoming Fission multiblocks. Since HSS-G Coils are still far down the line, we strongly recommend using &6RTM Coils&r as a powerful upgrade for many of your existing multiblocks.", - "quests.extreme_voltage.rtm_coil.subtitle": "How hot can it get?", - "quests.extreme_voltage.rtm_coil.desc": "The &6RTM Coils&r can reach an impressive &e4500 K&r, unlocking access to Tantalum Carbide, a key material for your progression. You’ll need it to craft the &5Alloy Blast Smelter&r, and it will also greatly speed up recipes in your EBF or Nuclear Fuel Factory.\n\nThese coils can even help reduce the cost of extracting &aLunar Regolith&r and &dOstrum&r, making them valuable beyond their primary purpose.\n\nNormally, you’d move on to HSS-G rather quickly, but in &bTFG&r you won’t be able to craft your &1IV Assembler&r until you’ve completed the &5Fission Progression&r, making &6RTM Coils&r a far more important and long-lasting upgrade.", - "quests.extreme_voltage.ruthenium.title": "Ruthenium", - "quests.extreme_voltage.ruthenium.subtitle": "A rare material", - "quests.extreme_voltage.ruthenium.desc": "To help you along, here’s an overview of all the steps required to obtain &dRuthenium&r through the Platline. Don’t worry, you don’t need to complete the entire &dPlatline&r yet.\n\n(Note that &7the platline may change with &4Venus&r later.)", - "quests.extreme_voltage.gcym_alloys.title": "Large Multiblock Alloys", - "quests.extreme_voltage.gcym_alloys.subtitle": "More alloys means more fun!", - "quests.extreme_voltage.gcym_alloys.desc": "Welcome to the world of &dLarge Multiblocks&r. All these alloys will be required for a lot of upcoming multiblocks, and they all start with the &eAlloy Blast Smelter&r. Some will also be required for the &eHigh Temperature Smelting Casings&r, which are essential components for the Nuclear Multiblocks.\n\n&o&6&lLore&r:&r &oGregicality Multiblocks originally began as a mod for GTCEu on Minecraft 1.12, adding the large versions of GregTech machines and the &6Parallel Hatch&r. &oWhen GTCEu was ported to 1.20, this mod was fully integrated into &dGTm&r - &osomething no one ever complained about&r. For the 1.12 enjoyers out there, you might remember them as the &dGCYM multis&r.", - "quests.extreme_voltage.tungsten_steel.title": "Tungstensteel", - "quests.extreme_voltage.tungsten_steel.subtitle": "The main material of IV", - "quests.extreme_voltage.tungsten_steel.desc": "You know the drill at this point. &6Tungstensteel&r will be your main material for &1IV&r, and you can expect to need a very large quantity of it. Make sure you have a dedicated &6Tungsten line&r running to sustain your production before moving further.\n\nIf you ever need more &aScheelite&r or &aTungstate&r, remember that Mars has some incredibly large veins you can mine. If you are concerned about the sand worm, investing in a &bLarge Miner&r could be very helpful, as it won’t attract the sandworm.\n\nMaybe it’s because of the drilling fluid?", - "quests.extreme_voltage.tungsten.title": "Tungsten", - "quests.extreme_voltage.tungsten.subtitle": "Fully self-sustaining, just like Titanium", - "quests.extreme_voltage.tungsten.desc": "Congrats on making your first &6Tungsten&r! We hope you enjoy this small increase in complexity. Remember that, at first, the small amount of &6Tungsten&r you require can be achieved by simply inputting the &aSoda Ash&r you mined. This may inspire you to fully loop the process so you can automate it peacefully.\n\nAlso remember that the further you progress, the more important it will be to build dedicated and passive lines for all these complex processes that will be required until the end of the pack. Don’t be afraid of lacking resources, be afraid of lacking time.", - "quests.extreme_voltage.iv_hull.subtitle": "IV Already?", - "quests.extreme_voltage.iv_hull.desc": "Even though you have already unlocked the &1IV&r Machine Hull, it may not be very useful until you complete the Fission line, as &1IV&r Circuits are gated behind the processing of &dPlutonium Rods&r. Still, you may find one or two uses for it, and at least you will be ready to build the &1IV Assembler&r as soon as you unlock your first &1IV&r Circuits.", - "quests.extreme_voltage.large_miner.title": "The Large Miner MK I", - "quests.extreme_voltage.large_miner.subtitle": "Your first actually good miner", - "quests.extreme_voltage.large_miner.desc": "The &bLarge Miner&r is a very impressive multiblock for mining the formidable veins you can encounter. It will output ores in their &acrushed forms&r, and rewarding an average of 50%% more resources! It does have some limitations, as you will need to keep it chunkloaded and provide it with a constant supply of drilling fluid.\n\nWe strongly advise moving it around using the &bCopy Paste Tool&r from Building Gadgets once you unlock it. You can add a battery buffer, a large reserve of drilling fluid, and adequate storage (such as a well-upgraded Backpack or ME Chest) to ensure it runs smoothly for a long time.", - "quests.extreme_voltage.ostrum_harvester.title": "Ostrum Harvester", - "quests.extreme_voltage.ostrum_harvester.subtitle": "Better coils means less energy usage", - "quests.extreme_voltage.ostrum_harvester.desc": "The &bOstrum Harvester&r is a close cousin of the &6Lunar Regolith Harvester&r. It can also be upgraded with better coils to reduce energy costs, but it does not require a specific biome. You will need to build it over an &aOstrum Deposit&r for the multiblock to form.\n\nOne more thing: unlike the moon version, this one requires drilling fluid to operate, so you'll want to set up some two-way automation to keep it running.", - "quests.extreme_voltage.ostrum_dust.title": "Ostrum Iodide", - "quests.extreme_voltage.ostrum_dust.subtitle": "I have to do what again?!", - "quests.extreme_voltage.ostrum_dust.desc": "There are many uses for &aOstrum&r, but right now there is one you should be especially concerned about: making &aOstrum Iodide&r, as it will be required to craft your Heat Exchanger.\n\nThere is nothing too complicated about it, except maybe obtaining the &eIodine&r you need. We will let you refer to the quest on the left to make the &l6&r Iodine required to complete the Fission Line.", - "quests.extreme_voltage.formamide.title": "Formamide", - "quests.extreme_voltage.formamide.subtitle": "Also a solvent with many IRL uses", - "quests.extreme_voltage.formamide.desc": "Get ready to void any surplus you produce if you don’t want your steam production to stop.", - "quests.extreme_voltage.radioactive_concoction.title": "Residual Radioactive Concoction", - "quests.extreme_voltage.radioactive_concoction.subtitle": "Don't void this one!", - "quests.extreme_voltage.radioactive_concoction.desc": "The &dResidual Radioactive Concoction&r is a very important byproduct of the Fission Line. Its main use is to produce infinite ores with the &bOstrum Linear Accelerator&r, but it is also required to unlock the &bGrowth Chamber&r.\n\nIf you want to build Fission Reactors outside of Mars, you will also need a continuous supply of it.", - "quests.extreme_voltage.ostrum_linear.subtitle": "Infinite but next level", - "quests.extreme_voltage.ostrum_linear.desc": "The &bOstrum Linear Accelerator&r allows you to create various materials using different products from the Fission Line. This multiblock supports a large number of &bInput Buses&r and &bInput Hatches&r, and since all of its recipes are quite fast, a single unit should be enough to cover all your needs.\n\nWe strongly recommend crafting some &eSpray Cans&r with different colors to organize your inputs and outputs. For example, if you color an Input Bus and an Input Hatch in &9blue&r, only those two will interact together, preventing recipe conflicts and ensuring smoother automation.", - "quests.extreme_voltage.pss.subtitle": "A glorified battery", - "quests.extreme_voltage.pss.desc": "The &ePower Substation&r was moved from &1IV&r to &5EV&r so you can build it directly on Mars, where energy management can be quite challenging with Fission Power. It’s not mandatory, so feel free to skip it if you prefer.\n\nIf you want to learn more about how this multiblock works, check out its detailed entry in the &aEnergy Chapter&r.", - "quests.extreme_voltage.liquid_air.title": "Earth Air", - "quests.extreme_voltage.liquid_air.subtitle": "So many gases", - "quests.extreme_voltage.liquid_air.desc": "Distilling &bLiquid Air&r is a core mechanic in &6GregTech&r to obtain an &oinfinite supply&r of certain rare gases.\n\nEarth Air Distillation is a good way to get your hands on &bArgon&r, &6Oxygen&r, &eHelium&r, &3Nitrogen&r and &aCarbon Dioxide&r.", - "quests.extreme_voltage.liquid_mars_air.title": "Martian Air", - "quests.extreme_voltage.liquid_mars_air.subtitle": "Even more gases", - "quests.extreme_voltage.liquid_mars_air.desc": "Distilling &bLiquid Air&r is a core mechanic in &6GregTech&r to obtain an &linfinite supply&r of certain rare materials. Since you can’t obtain Nether Air or Ender Air in TFG, we provide an alternative with &cMartian Air&r.\n\nIt’s highly rich in &bArgon&r and &aCarbon Dioxide&r, but it can also yield rare gases such as &eNeon&r, &3Krypton&r, and &9Xenon&r, all unavailable elsewhere.\n\nNote that future updates may move around some of these Noble Gases as we finish more planets. Always remember to check the &6changelogs&r for updates!", - "quests.extreme_voltage.epoxy.title": "Epoxy", - "quests.extreme_voltage.epoxy.subtitle": "Artificial Resin", - "quests.extreme_voltage.epoxy.desc.1": "&aEpoxy&r is the foundation for all future Circuit Boards in the game!\n\n&9&lNote:&r This Quest is quite complicated, so tackle everything else before trying to make Epoxy. You'll need all the help you can get!", - "quests.extreme_voltage.epoxy.desc.2": "There are several ways to obtain the ingredients for &aEpoxy&r.\n\nWe will ignore recipes related to Glycerol, as they're never worth it.\n\nTry and use &3Large Chemical Reactors&r to shortcut recipes.", - "quests.extreme_voltage.epoxy.desc.3": "&dChlorine&r is only partially recycled, so you'll need a constant supply. Feeding it manually will be sufficient at first.\n\nRecipes involving &dSodium Hydroxide&r could be looped by electrolyzing the &9Salt Water&r co-product.\n\nDoing this will probably require you to make some Quadruple Pipes, Pump Covers, Fluid Filters... or route everything using AE2.\n\nIn general, closed loop setups are nice to prevent overproduction or overconsumption, but go for whatever's more fun for you.", - "quests.extreme_voltage.epichlorohydrin.title": "Epichlorohydrin", - "quests.extreme_voltage.epichlorohydrin.desc": "You're going to want to use the &3LCR&r recipe for your first &aEpichlorohydrin&r.\n\nThis recipe requires &aPropene&r, which means that &dOil Processing&r and &dFuel Cracking&r are now necessary ventures. We're truly sorry if you've been dragging your heels!\n\nIt's quite important that you make your first &3Distillation Tower&r before progressing to the right.\n\nLast of all, if you haven't noticed, you can loop the &dSalt Water&r byproduct to bootstrap the &dSodium Hydroxide&r.", - "quests.extreme_voltage.phenol.title": "Phenol", - "quests.extreme_voltage.phenol.desc.1": "Obtain &aPhenol&r from:\n\n&91 -&r &aWood Tar&r distillation.\n\n&92 -&r Reacting &aBenzene&r with &dChlorine&r and &dSodium Hydroxide&r This should be performed in an &3LCR&r, and the Chlorine is perfectly looped.\n\n&93 -&r Shortcutting the above recipe by ignoring the &dSodium Hydroxide&r. This is net negative on &dChlorine&r.\n\n&94 -&r Reacting &aBenzene&r, &dPropene&r and &dOxygen&r using a small amount of &4Phosphoric Acid&r - normally a catalyst, but consumed here in small quantities. This is called the Cumene process.", - "quests.extreme_voltage.phenol.desc.2": "If you're having trouble deciding between the options presented, here's the appeal of each route:\n\n&91 -&r Great if you're willing to set up a &3Pyrolyse Oven&r + &3Distillation Tower&r combo.\n\n&92 -&r This one's our preference! You can use the &dSalt&r to make more &dSalt Water&r, then electrolyze to create a loop.\n\n&93 -&r Very appealing if you have an infinite supply of &dChlorine&r. You could achieve this by setting up a &3Fluid Drilling Rig&r on a Salt Water vein.\n\n&94 -&r ...&4Phosphoric Acid&r is a pain to produce. You'd be mad to consider this.", - "quests.extreme_voltage.phenol.desc.3": "&l&3Lore:&r&o The Benzene + Oxygen recipe was added in GTCE with the intent of fixing missing chemical recipes, as the Large Chemical Reactor didn't exist. Now that CEu provides more realistic options, we may remove the recipe in future.", - "quests.extreme_voltage.acetone.title": "Acetone", - "quests.extreme_voltage.acetone.desc.1": "While distilling &aWood Vinegar&r gives &aAcetone&r, the yield is low and might not meet your needs.\n\nYou might want to use the direct &3LCR&r recipe from &aAcetic Acid&r to obtain &aAcetone&r.\n\nIf you want to be fancy, you can also the good old &aAcetic Acid&r -> &dDissolved Calcium Acetate&r -> &aAcetone&r loop, which does not require a &3LCR&r, but still recycles the Calcium compound perfectly.", - "quests.extreme_voltage.acetone.desc.2": "We've been talking about Acetic Acid, but we're yet to tell you how to obtain it. Wouldn't that be great?\n\n&aAcetic Acid&r can be synthesized in the &3Chemical Reactor&r. Our favorite recipe is from &dEthylene&r.", - "quests.extreme_voltage.aes_insulation.title": "Alkaline Earth Silicate Insulation", - "quests.extreme_voltage.aes_insulation.subtitle": "Also known as Rockwool", - "quests.extreme_voltage.aes_insulation.desc": "A new tier means a new kind of insulation!\n\nTo get started with this one, you'll want to look at the mixer recipe for &dAlkaline Earth Silicate Mixture Dust&r. Eventually, you'll be able to make an infinite supply of this on Mars through Sniffer and Wraptor shearing, as it's used for more than just your next Rocket.", - "quests.extreme_voltage.epoxy_board.subtitle": "A new board, there is more to come", - "quests.extreme_voltage.epoxy_board.desc": "Epoxy Circuit Boards are a key component required to craft your &bNano Circuits&r, but they won’t have much use outside of that purpose.", - "quests.extreme_voltage.ev_circuit_assembler.title": "The &5EV&r Circuit Assembler", - "quests.extreme_voltage.ev_circuit_assembler.subtitle": "Less useful than the Assembler for now", - "quests.extreme_voltage.ev_circuit_assembler.desc": "The &5EV Circuit Assembler&r won’t be of much use until you have a steady supply of &bNano CPU Wafers&r. Still, it will allow you to craft microprocessor circuits much faster and eventually give you access to your first &dLuV Circuits&r, which will be useful once you have an &1IV Assembler&r.", - "quests.extreme_voltage.nano_hv_circuit.subtitle": "It doesn't &olook&r that much smaller...", - "quests.extreme_voltage.nano_hv_circuit.desc": "Your first &eNano Circuits&r! They will require &bNano CPUs&r and therefore a continuous line of &cFission Reactors&r burning Plutonium Rods to produce the necessary &dTritiated Water&r.\n\nAt first, &eNano Circuits&r will feel quite expensive, but once your &dFission Line&r becomes fully passive, they will turn into one of your cheapest ones!", - "quests.extreme_voltage.nano_ev.subtitle": "Back to the usual circuit progression", - "quests.extreme_voltage.nano_ev.desc": "These could actually be cheaper to make than the &bMicroprocessor&r equivalent if you manage to mass-produce &bNano CPU&r efficiently. Once your &cFission Line&r is fully automated, these circuits will become an extremely cost-effective option for your high-end builds.\n\nAlso, note that you can use advanced SMD components from now on!", - "quests.extreme_voltage.nano_iv.subtitle": "Getting closer to LuV technology", - "quests.extreme_voltage.nano_iv.desc": "These &1IV&r Circuits still require one &bNano CPU Chip&r, so in that regard they aren’t actually cheaper than the &bMicroprocessors&r.\n\nHowever, they will be essential for progressing toward the next tier of technology.", - "quests.extreme_voltage.nano_luv.subtitle": "Your first IV circuits", - "quests.extreme_voltage.nano_luv.desc": "Congrats on successfully reaching a new tier of circuits! These &dLuV&r Circuits won’t have much use just yet, as you can’t craft any &dLuV&r machines before completing the &bPlatline&r, but they’ll still be valuable for crafting new &dAE2&r tools and components.\n\nMost of these recipes will require an &1IV&r Assembler, so be sure you have one ready.", - "quests.extreme_voltage.me_part.title": "ME Multiblock Parts", - "quests.extreme_voltage.me_part.subtitle": "Connect GregTech directly to your AE2 network", + "quests.extreme_voltage.dense_lead.title": "高密度な鉛プレートの高速化", + "quests.extreme_voltage.dense_lead.subtitle": "鉛プレート限定特別サービス", + "quests.extreme_voltage.dense_lead.desc": "原子マシン外装を作るには大量の高密度な鉛プレートが必要になるため、収量はやや減りますが、&6内破圧縮機&rを使った新しいレシピを用意しました。金属加工機の作業を永遠に待ち続けたくない場合は、ぜひこちらを活用してください。", + "quests.extreme_voltage.thorium_rod.title": "燃料棒", + "quests.extreme_voltage.thorium_rod.subtitle": "取り扱い注意", + "quests.extreme_voltage.thorium_rod.desc.1": "それぞれの&6燃料棒&rには固有の特性があり、&a耐久値&r(炉内でどれだけ長く持つか)、&c発熱量&r(どれだけ熱を生み出すか)、さらには&e生成物&rや&b蒸気の発生量&rまで異なります。\n\nこれらの情報は、各燃料棒の&aEMI&rタブからすべて確認できます。\n\nここでは、核分裂炉を運用する上で、まず理解しておくべき重要なポイントを紹介していきます。", + "quests.extreme_voltage.thorium_rod.desc.2": "・燃料棒に表示されている&eHeat:%&rは、炉内ではその値のおよそ2倍弱として扱われます。たとえば、&eトリウム燃料棒&rの&c熱量&rは70%なので、炉に十分な&b重水&rが供給されているときは、炉内の熱量は140弱になります。\n\nさらにこの熱量は&a加算式&rで積み上がるため、トリウム燃料棒を2本入れれば、炉内の総熱量はおよそ280まで上昇します。", + "quests.extreme_voltage.thorium_rod.desc.3": "・&a耐久値&rはどの燃料棒でも基本的には同じ速度で減っていきます。しかし炉の温度が高いほど早く耐久が減ります。そのため、ある燃料棒が別の燃料棒の4倍の耐久値を持っていたとしても、必ずしも4倍長持ちするとは限りません。&c温度が寿命に直接影響する&rためです。\n\n核分裂炉では、炉内に入れる燃料棒の本数や組み合わせをどう調整するかが、最初の大きな課題となります。", + "quests.extreme_voltage.fission_reactor.title": "核分裂炉", + "quests.extreme_voltage.fission_reactor.subtitle": "世界一安全な原子炉", + "quests.extreme_voltage.fission_reactor.desc.1": "まず、&6核分裂炉&rの仕組みをより深く理解したい場合――熱量計算や詳細な挙動、効率に関する数学的な部分まで知りたいなら、「&aGregTechの電力システム&r」の章にあるクエストを確認してみてください。熱システムと効率システムを理解するために必要な情報がすべて載っています。\n\nここでは、とりあえず&6トリウムでの核分裂&rに話を絞りましょう。この炉の&c基礎耐熱上限&rは&e400&rです。前のクエストでも説明したとおり、トリウム燃料棒2本で運転すると内部熱量はおよそ&e280&rとなり、安全圏に収まります。しかし3本目を追加すると、総熱量はおよそ&c420&rに達し、上限を超えるため、&cクールダウンモード&rが発動します。", + "quests.extreme_voltage.fission_reactor.desc.2": "心配はいりません。熱が上限を超えても炉心融解で爆発することなどはありません。その代わりに炉は停止し、完全に冷えるまで再起動できなくなります。その間は&a電力の生産&rも&a核分裂生成物&rの生産もすべて止まってしまい、大きなロスになります。\n\nそのため、「何本の燃料棒を稼働させるか」を調整することが、核分裂炉における最初の&6課題&rであり、いわばこのミニゲームのメインの部分です。\n\nやり方はいくつもあります。試行錯誤を楽しみましょう。\n\n一つの例として、炉に&6レッドストーンポート&rを取り付けて、&aレンチ&rで、監視モードを&e燃料棒の数&rか&c熱量&rに切り替えられます。\n\n最後に重要な点として、すべての燃料棒は&6燃料棒格納部&r内に格納されます。つまり、稼働中の燃料棒の本数を制限することは、搬入バス内に燃料棒を2本入れるというだけの単純な話ではなく、&c搬入バスに何が入るかを制御する必要がある&rということです。これによって炉の動作を精密に調整できます。", + "quests.extreme_voltage.high_pressure_steam.title": "高圧蒸気", + "quests.extreme_voltage.high_pressure_steam.subtitle": "ULVの再来", + "quests.extreme_voltage.high_pressure_steam.desc": "&4重要事項&r:高圧蒸気を排出するための搬出ハッチが埋まっている場合、その蒸気はそのまま消えてしまいます。\n\nバランス調整(およびパイプの処理能力)を理由に、&6核分裂炉&rは通常の蒸気を生み出しません。その代わり、&b高圧蒸気&rを生成し、これは&6原子力蒸気タービン&rでしか利用できません。&r\n\n標準の蒸気タービンに流そうとしても、&c動作しません&r。", + "quests.extreme_voltage.ev_superconductor.title": "EVの超伝導体", + "quests.extreme_voltage.ev_superconductor.subtitle": "超高電圧・高電流両対応", + "quests.extreme_voltage.ev_superconductor.desc": "&eウラン&rの処理を進めたら、&5三白金ウランワイヤー&rを作ってみてもいいでしょう。\n\nこの超伝導ケーブルはより多くのアンペアを流せるため、基地全体でエネルギーを効率よく送電でき、&6原子力蒸気タービン&rからの出力を損失なく各機械へ届けることができます。", + "quests.extreme_voltage.uraninite_dust.subtitle": "膨大な数の棒", + "quests.extreme_voltage.uraninite_dust.desc": "&eウラン燃料棒&rを作るには大量の&e閃ウラン鉱&rを掘り出すことが必要で、1本あたりおよそ&c240個&rほど使います。そのため、後で不足しないよう早めに採掘を始めておくことをおすすめします。\n\n火星には最大規模の鉱脈が存在するため、一つの鉱脈から大量に確保することができます。\n\nゲームを進めると、&6Ostrum Linear Accelerator&rを使って瀝青ウラン鉱や閃ウラン鉱を&無限&rに生産できるようになります。詳しい説明は先のクエストで確認できます。", + "quests.extreme_voltage.uranium_line.title": "ウランライン", + "quests.extreme_voltage.uranium_line.subtitle": "新しい処理ライン", + "quests.extreme_voltage.uranium_line.desc": "&eウラン&rと、その同位体である&eウラン235&rを処理するには、専用の小規模な処理ラインを用意する必要があります。\n\n安心して下さい、フッ素は&ループ可能&rなので、必要なものは&e閃ウラン鉱の粉&rだけです。\n\nこのラインは地球でも組めますが、閃ウラン鉱の大半は火星で採掘することになるため、火星で稼働させた方が便利な場合もあります。", + "quests.extreme_voltage.radioactive_waste.title": "放射性廃棄物", + "quests.extreme_voltage.radioactive_waste.subtitle": "ガラクタだっていう人もいるけど、俺は宝物って呼んでる", + "quests.extreme_voltage.radioactive_waste.desc": "放射性廃棄物は次の燃料棒づくりに欠かせない&c重要資源&rです。必ず搬出ハッチに十分な空き容量を確保しておいて下さい。搬出先がないと、&c放射性廃棄物は消滅してしまい&r、大切な資源を失うことになります。\n\n対策としては以下がおすすめです:\n-&b液体ロックを有効&rに設定した専用の搬出ハッチを使う\n-スーパータンクと発展型液体検出器の組み合わせで管理する\n\n火星で&dMEネットワーク&rを構築済みなら、新たに解禁された&6ME搬出ハッチ&rを使ってみるのもいいかもしれません。", + "quests.extreme_voltage.uranium_rod.subtitle": "念願のウラン燃料", + "quests.extreme_voltage.uranium_rod.desc.1": "これはこれは核分裂燃料の第二世代で、&eトリウム燃料棒&rと比べて耐久は&a4倍&r、発生させる蒸気量は&a5倍&rと大幅に強化されています。ただし、その分、事前に考慮すべき注意点もあります。\n\n&9生産コストと運用準備:&r\n•この燃料の製造には&eトリウム燃料棒&rを消費するため、基本的には高性能燃料棒1本につき1基の&6核分裂炉&rを割り当てるのがおすすめです。もちろん、1基の核分裂炉で複数本をうまく切り替えながら運用するという方法もあります。", + "quests.extreme_voltage.uranium_rod.desc.2": "ウラン燃料棒は1本で約&c435&rの熱を生み出すため、初期状態の許容範囲を大きく超えてしまいます。そこで、温度管理のために次の3つの主要な方法があります。\n\n&7→&r原子炉の中に&e20個の氷塊羊毛の耐熱フレーム&rを入れて&c耐熱上限&rを&e440&rまで引き上げれば、1本の燃料棒を安全に運用できます。\n\n&7→&r&6マテリアルホルダー&rに大量の&bドライアイス&rを送り込み、強制的に温度を下げることができます。ただし、この方法のためには、火星の&b液化CO2鉱脈&rを確保して、ドライアイスの供給ラインを組む必要があります。\n\n&7→&r&b冷媒ペレット&rをマテリアルホルダーに入れて冷却する方法もあります。ドライアイスとやり方はあまり変わりませんが、冷却能力はこちらの方がはるかに高いです。ただし作成にはかなりの量の&eフッ素&rを使うため、現時点では乱用できません。\n\nもちろん、これらを状況に応じて組み合わせるなど、独自の方法で解決するのもいいでしょう。", + "quests.extreme_voltage.uranium_rod.desc.3": "&eウラン燃料棒&rで核分裂炉を稼働されるには、冷却のために膨大な量の&b重水&rを消費します。稼働前に、重水を十分に生産・確保できる体制が整っていなければ、原子炉はすぐにクールダウンモードになるでしょう。\n\n供給網や冷却方法は入念に計画して下さい。これらの燃料は非常に強力ですが、そのぶん相応のインフラ整備が必須となります。", + "quests.extreme_voltage.uranium_waste.title": "ウラニウム残留物と放射性蒸気", + "quests.extreme_voltage.uranium_waste.subtitle": "残り物には福がある", + "quests.extreme_voltage.uranium_waste.desc.1": "&eウラン燃料棒&rを使った場合に出る副産物は、トリウムのときより少し複雑です。\n\n&6•ウラニウム残留物&rは&dプルトニウムライン&rの起点となる重要な素材で、そのまま即座に加工に回せます。\n\n&6•放射性蒸気&rは普通の蒸気とは違い、そのままでは扱えません。&6熱交換機&rに通すことで安全に処理され、高圧蒸気として利用できるようになります。", + "quests.extreme_voltage.uranium_waste.desc.2": "さらに、放射性蒸気は &eギ酸アンモニウム&rを加熱して&eホルムアミド&rに変換する役割も担います。ホルムアミドはプルトニウム燃料づくりの要となる中間素材です。そのため、ウラン燃料棒で高圧蒸気をエネルギー源として安定利用したい場合、まずはこの工程のために&eギ酸アンモニウム&rの供給体制を整える必要があります。\n\n&cまとめ:&rウラン燃料棒を運用する際には&eギ酸アンモニウム&rを生産し続ける専用ラインを必ず用意して下さい。ここが止まると、プルトニウム関連の工程も高圧蒸気の供給も完全にストップしてしまいます。", + "quests.extreme_voltage.ammonium_formate.title": "ギ酸アンモニウム", + "quests.extreme_voltage.ammonium_formate.subtitle": "必須栄養素", + "quests.extreme_voltage.ammonium_formate.desc": "安定して高圧蒸気を生産するためには、&eギ酸アンモニウム&rを無限に生産できる体制が必須です。これがないと&b放射性蒸気&rを高圧蒸気に変換できず、発電が止まってしまいます。ただし、生産体制の構築自体はそこまで難しくありません。\n\nまず&eギ酸&rは、火星の空気から取り出したCO₂と、水を合わせるだけで簡単に作れます。\n\nそして&eアンモニア&rは、アンモニア交じりの半重水を遠心分離して出た&e塩化アンモニウムの粉&rを電解すれば生成できます。\n\nこの工程では &b酸素&rや&b塩酸&rが余るため、余剰を破棄してラインが詰まらないようにし、&eギ酸アンモニウム&rの生産が滞らないようにして下さい。", + "quests.extreme_voltage.nuclear_residue_dust.title": "核分裂残留物の粉", + "quests.extreme_voltage.nuclear_residue_dust.subtitle": "空の大怪獣の卵", + "quests.extreme_voltage.nuclear_residue_dust.desc": "&e核分裂残留物の粉&rは、&dプルトニウムライン&rのための重要な素材です。火星で&5EVガス圧縮機&rを使うことで生産できます。\n\nこの処理では副産物として&bラドン&rも生成されます。後の工程でラドンを使う場面はあるものの、当面の間はここが唯一の安定供給源になります。\n\n&e核分裂残留物&rの生産には複雑な循環工程を組む必要がありません。核分裂炉と熱交換機からの生産物に&e火星の泥漿&rを混ぜて&6ガス圧縮機&rで加工するだけで核分裂残留物の粉が生成され、そのまま次のプルトニウムラインに利用できます。", + "quests.extreme_voltage.oxidized_nuclear_residue_dust.subtitle": "悪魔の卵", + "quests.extreme_voltage.oxidized_nuclear_residue_dust.desc.1": "ここから先は、&dプルトニウムライン&rのための複雑な循環工程を組む必要があります。\n\n&b酸化核分裂残留物の粉&rを作るには&b二フッ化二酸素&rが必要です。\nその際、フッ素は&bフッ化水素酸&rを電解して回収することで、ループさせることができます。", + "quests.extreme_voltage.oxidized_nuclear_residue_dust.desc.2": "この工程は処理時間が長いため、ループを安定して回すために、ある程度まとまった量のフッ素を確保してから始めることを強くおすすめします。\n\nタンクが一杯になったりバッファが詰まったりすると、ライン全体が止まってしまい、わざわざ火星まで飛んでいって対処する羽目になります。&aスーパータンク&rや、必要な液体だけ受け入れるようフィルタリングと余剰を廃棄するよう設定した&aストレージセル&rなどで管理すると安全です。\n\nさらに、このレシピでは&e残留放射性混合物&rが副産物として生産されます。これは将来的に&6オストラムリニアアクセラレーター&r(火星での無限鉱石生成)や&6Growth Chamber&r(バイオエンジニアリング導入)、さらに火星外の &6Fission Reactors&rでも利用する重要資源になるため、極力捨てずに確保しておくことをおすすめします。", + "quests.extreme_voltage.refined_nuclear_dust.subtitle": "フッ素を大切に", + "quests.extreme_voltage.refined_nuclear_dust.desc": "&e精製核分裂残留物の粉&rを作る工程で発生するフッ化水素酸からフッ素を取り出し、それを再び&b二フッ化二酸素&rの生成に回すことで、フッ素をループさせられます。\n\n蒸留水については問題ないでしょう。酸素が余った場合は、必要に応じて自動で破棄するようにしましょう。\n\nこのレシピは処理速度が非常に遅いので、電力に余裕があるなら &6大型遠心分離機&rで高速化してもいいかもしれません。ただし、序盤で電力を浪費しすぎると全体の進行に差支えが出るため、運用には慎重さが求められます。", + "quests.extreme_voltage.plutonium.title": "プルトニウム", + "quests.extreme_voltage.plutonium.subtitle": "デーモンコア", + "quests.extreme_voltage.plutonium.desc": "ついにプルトニウムに辿りつきました!今のところ用途は&dプルトニウム燃料棒&rの作成だけなので、大量に貯蔵しておく必要はありません。\n\nプルトニウム精製時に発生した蒸気はそのまま捨てるか通常の蒸気タービンで使えます。通常の蒸気は&6原子力蒸気タービン&rで使えないので気を付けてください&r。", + "quests.extreme_voltage.plutonium_rod.subtitle": "エネルギー問題に終止符を打つ", + "quests.extreme_voltage.plutonium_rod.desc.1": "はっきりと申し上げます。&dプルトニウム燃料棒&rは作成に手間こそかかりますが、その性能はまさに&a悪魔級&rです。\nウラン燃料棒と比べて約&e4倍の高圧蒸気&rを生み出すため、常時稼働していなくとも火星基地の設備増強が可能になるほどの強力な燃料です。", + "quests.extreme_voltage.plutonium_rod.desc.2": "ただし、この燃料棒は&cとてつもない熱&rを生み出すため注意が必要です。熱量は最高で&6595&rにもなるため、現状では&b冷媒ペレット&rを使わない限り安全運転はできません。\n右側のクエストに、この材料の詳しい説明があります。冷媒ペレットは&6マテリアルホルダー&rに投入して使います。\n\nとはいえ、&6マテリアルホルダー1つ&rで、炉内の熱を&e430&rまで下げられるため、&f氷塊羊毛の耐熱フレーム&rで十分なレベルになります。\n&6マテリアルホルダー&rを2つ使えば、炉を完全な安定状態に保つことができます。", + "quests.extreme_voltage.tritiated_water.title": "トリチウム水", + "quests.extreme_voltage.tritiated_water.subtitle": "水素水の3倍の効能!", + "quests.extreme_voltage.tritiated_water.desc": "&bトリチウム水&rは、&eNanoCPUウェハー&rの作成、そして最終的に&6IV回路&rを作るために欠かせない重要素材です。\n\nさらに、オストラムリニアアクセラレーターでも必要になったり、電解して&6三重水素ガス&rに変換することもできますが、それが必要になるのはまだまだ先です。\n\n&cマジ&rの注意——&bトリチウム水&rは極めて貴重なので、一滴たりとも無駄にしないよう細心の注意を払って扱ってください!", + "quests.extreme_voltage.nano_cpu_wafer.subtitle": "こちらお高くなっております!", + "quests.extreme_voltage.nano_cpu_wafer.desc": "&dNanoCPUウェハー&rは、IV回路を作るための最初の関門であり、&b64kストレージコンポーネント&rを作るためにも必須となる重要素材です。\n\nこれから先の上位回路は、&eいかなる方法で作る場合でも&r、このウェハーを大量に消費するため、本当に大量の確保が必要になります。\n\nさらに、IV時代のバッテリーである&dラポラトニックエネルギーオーブ&rの製造にも要求されます。\n\n目安として、&bプルトニウム燃料棒1本&rから生成される量のトリチウム水から、&eちょうど9枚のNanoCPUウェハー&rを作ることができます。", + "quests.extreme_voltage.first_iv_circuit.title": "メインフレーム - 初のIV回路", + "quests.extreme_voltage.first_iv_circuit.subtitle": "EVはもう終わりか?", + "quests.extreme_voltage.first_iv_circuit.desc": "ようやく新しい回路を手に入れ、新たなステージへと進むことができます。選択肢は一気に広がりますが、まず最初に目指すべきは &6IV組立機&r です。これを作れるようになると、炉のコンポーネントである&eモデレートコアの耐熱フレーム&rを作成でき、炉の&c耐熱上限&rが大幅に向上し、冷媒ペレットに頼らずに安定稼働できるようになります。\n\nさらに、&5EV回路作成機&rを作れば&bナノプロセッサー系統の回路&rが解禁されます。もちろん、これらの回路にはNanoCPUチップが必要になるため、安定した核分裂システムが整っていることが前提になります。\n\n詳細は&6IV&rの章でしっかり説明されているので、新しいティアへ進むにあたり安心して準備を進められるはずです。", + "quests.extreme_voltage.moderate_core.subtitle": "素晴らしいアップグレード", + "quests.extreme_voltage.moderate_core.desc": "ここまでくれば&6核分裂炉&rを本格的に強化することができます。&eモデレートコア耐熱フレーム&rは2種類あり、どちらを作れるかは運次第です。\n\n性能の良い方なら、&dプルトニウム燃料棒1本&rの核分裂炉を&a冷却材の供給なしで&r稼働できるようになります。これで、面倒な&bR冷媒ペレット&r作りから解放されます。もちろん、冷却材と組み合わせれば、&a2プルトニウム燃料棒2本&rで稼働できる可能性もあります。\n\nこのコアを作る工程は「&6グラファイトライン&r」と呼ばれます。失敗したり性能が低いコアができてしまうなど、ランダム要素を楽しむことができます。そのため&dAE2&rによる全自動化は少し工夫が要りますが、不可能ではありません。\n\n最適なやり方というのは環境によっても変わるため、ぜひ実際に構築しながら効率の良い方法を見つけてみてください。", + "quests.extreme_voltage.abs.subtitle": "溶かして混ぜちゃえ", + "quests.extreme_voltage.abs.desc": "&6合金高炉&r(通称:ABS)は、かなり特別なマルチブロックです。&6EBF&rに似た仕組みをしており、高性能なコイルを使えば「POC」が可能になります。また、EBFのほとんどのレシピを&a通常より25%速く&r処理できるのも大きな強みです。なお、インゴットではなく「熔融液体」になる点はご注意ください。\n\nABSの最大の利点は、&6大型機械&rの構築に必要となる合金を作れることです。粉砕機や蒸留機のような基本機械には、それぞれ大型版(マルチブロック版)が存在し、搬入・搬出ハッチの増設や並列制御ユニットの追加など、柔軟にカスタマイズできます。\n\n大型機械の詳しい仕組みについては、「&6Gregtechの電力システム&r」の章をご覧ください。", + "quests.extreme_voltage.ev_mixer.title": "&5EVミキサー&r", + "quests.extreme_voltage.ev_mixer.subtitle": "バーテンダーより混ぜ上手", + "quests.extreme_voltage.ev_mixer.desc": "&6ミキサー&rは進行において非常に重要です。新しい合金をいくつも扱えるようになり、その中でも&6RTM合金&rは必須です。これは&6EBF&rの新しいコイルに使う合金ですが、タングステンラインと白金族ラインの両方をある程度進めないと作れないため、やや作るのが難しいです。\n\nいずれは&5大型混合機&rも開放され、エネルギーハッチを2基搭載できるようになります。小型のミキサーを作るのはこれが最後になるかもしれません。", + "quests.extreme_voltage.rtm.title": "RTM合金", + "quests.extreme_voltage.rtm.subtitle": "Ruthenium-Tungsten-Molybdenum合金", + "quests.extreme_voltage.rtm.desc": "&6RTM合金&rを作るには、白金族ラインで確保できる&dルテニウム&rと、TFGでは入手難度が上がっている&aタングステン&rの両方が必要になります。\n\nRTMを量産したい場合は、まずこの二つのラインの安定稼働を目指しましょう。\n\n通常のGregTechではRTM合金はそれほど重要ではない中間素材ですが、TFGでは事情が異なります。これから作る核分裂関連のマルチブロックでRTM合金を多用することになるのです。\n\nまた、HSS-Gコイルを作れるのはさらに先になるので、今は&6RTMコイル&rを使うのがおすすめです。", + "quests.extreme_voltage.rtm_coil.subtitle": "RealTrainModじゃないですよ", + "quests.extreme_voltage.rtm_coil.desc": "&6RTMコイル&rは最大&e4500K&rの高温を扱えるため、ゲーム進行にとても重要な炭化タンタルの製造が可能になります。&5合金高炉&rの作成に必須で、EBFや核燃料成形機の処理速度も大きく向上します。\n\nさらに、このコイルは&a月面堆積粉塵&rや&dオストラム&rの抽出コストを下げることにも役立ってくれます\n\n通常のGregTechならすぐ次のHSS-Gを作る流れですが、TFGでは&5核分裂関連の進行&rを終えるまで&1IV組立機&rを作れないため、&6RTMコイル&rが長い間活躍してくれるでしょう。", + "quests.extreme_voltage.ruthenium.title": "ルテニウム", + "quests.extreme_voltage.ruthenium.subtitle": "レアメタル", + "quests.extreme_voltage.ruthenium.desc": "白金族ラインで&dルテニウム&rを手に入れるまでの全体的な流れをまとめておきました。\n\nただし、今の段階ですべての&d白金族ライン&rを完成させる必要はないのでご安心ください。\n\n(なお、&7白金族ラインは今後予定されている&4金星&rアップグレードの際に変更される可能性があります&7。)", + "quests.extreme_voltage.gcym_alloys.title": "大型機械用合金", + "quests.extreme_voltage.gcym_alloys.subtitle": "また合金か...?また合金なのか...!?", + "quests.extreme_voltage.gcym_alloys.desc": "&d大型機械&rの運用がついに始まります!これから作る多くの大型機械には大量の合金が必要になり、その入口となるのが&e合金高炉&rです。核分裂炉系の機械に用いる&e高温製錬用マシン外装&rの素材のためにも必要になります。\n\n&o&6&l余談&r:&r &o「Gregicality Multiblocks」はMinecraft1.12のGTCEuのためのModで、大型版のGT機械と&6並列制御ユニット&rを追加したんだ。それで、後にGTCEuが1.20へと移植された際に、このModは&dGTm&rにそのまま組み込まれたんだ。もちろん、誰も文句を言ったりしなかったよ。1.12時代を遊んでいた人だったら、当時は&dGCYMマルチ&rと呼ばれていたのを覚えているかもね。", + "quests.extreme_voltage.tungsten_steel.title": "タングステンスチール", + "quests.extreme_voltage.tungsten_steel.subtitle": "IVのメイン金属", + "quests.extreme_voltage.tungsten_steel.desc": "あなたの想像通り、&6タングステンスチール&rは&1IV&rの進行の核となる素材で、とにかく大量に使います。先に進む前に、安定生産するための&6タングステンライン&rを必ず整えておきましょう。\n\nもし&a灰重石&rや&aタングステン酸塩&rが不足していても、火星にはとても巨大な鉱脈が眠っているので心配ありません。サンドワームが怖い場合は、&b大型採掘機&rを使うのがおすすめです。大型採掘機はサンドワームを呼び寄せないので安全に採掘できます。\n...掘削油に虫除け効果があるんですかね?", + "quests.extreme_voltage.tungsten.title": "タングステン", + "quests.extreme_voltage.tungsten.subtitle": "チタンより上位の金属。テラリアは忘れてください", + "quests.extreme_voltage.tungsten.desc": "まずは大変な工程を超えて&6タングステン&rを製造したことを称えましょう。元の工程から少しだけ変化していますが、きっとそれも楽しんでいただけたでしょう。タングステンを少しだけ使いたいというときは、&a炭酸ナトリウム&rを無理にループさせず、そのまま使うだけでも構いません。これをきっかけに、工程を完全にループさせて自動化したくなるかもしれません。\n\n先に進むほどに、終盤の複雑な工程の基礎を支えるための、パッシブラインを整える重要性が増していきます。そのうち、資源よりも時間が足りなくなってきますからね...", + "quests.extreme_voltage.iv_hull.subtitle": "IV到達?", + "quests.extreme_voltage.iv_hull.desc": "すでに&1IV&rマシン筐体は作れたかもしれませんが、&1IV&r回路は&dプルトニウム燃料棒&rの加工を進めるまで入手できないため、核分裂ラインが完成するまではあまり使い道はないかもしれません。\nとはいえ、いくらかの使い道はありますし、&1IV&r回路さえ手に入れれば、そのまま&1IV組立機&rをすぐに作ることができるはずです。", + "quests.extreme_voltage.large_miner.title": "大型採掘機MK I", + "quests.extreme_voltage.large_miner.subtitle": "今日からはこいつに任せよう", + "quests.extreme_voltage.large_miner.desc": "&b大型採掘機&rは、巨大な鉱脈を自動で掘り尽くしてくれる、とても頼もしい大型機械です。鉱石は&a粉砕された状態&rで出力され、産出量は通常の50%増です!ただし、チャンクが読み込まれていること、そして掘削油を絶えず供給し続けることが必要です。\n\n運用の際は、「Building Gadgets」の「&bCopy Paste Gadget&r」を使えば移設も簡単です。蓄電器、十分な量の掘削油、さらに強化バックパックやMEチェストといった大容量ストレージを組み合わせれば、安定して稼働させられます。", + "quests.extreme_voltage.ostrum_harvester.title": "オストラムハーベスター", + "quests.extreme_voltage.ostrum_harvester.subtitle": "良いコイルを使って節電しよう", + "quests.extreme_voltage.ostrum_harvester.desc": "&bオストラムハーベスター&rは、&6ムーンハーベスター&rに非常によく似た装置です。良いコイルに交換して省エネ化できる点は共通しています。こちらは特定バイオームでなくても機能しますが、その代わり、&aオストラムが混じった砂&rの真上に建てる必要があります。\n\nまた、ムーンハーベスターと違って、こちらは稼働に掘削油が必要です。そのため、掘削液の供給ラインも組んだ方が良いでしょう。", + "quests.extreme_voltage.ostrum_dust.title": "ヨウ化オストラム", + "quests.extreme_voltage.ostrum_dust.subtitle": "何をどうすればいいの?", + "quests.extreme_voltage.ostrum_dust.desc": "&aオストラム&rにはさまざまな使い道がありますが、今の段階で最も重要なのは&aヨウ化オストラム&rの製造です。これは熱交換機を作るために必要な素材です。\n\n基本的に難しい工程はありませんが、&eヨウ素&rの確保だけは少し苦労するかもしれません。核分裂ラインを進めるには&l6&r個のヨウ素が必要です。作り方については、左のクエストを参照しましょう。", + "quests.extreme_voltage.formamide.title": "ホルムアミド", + "quests.extreme_voltage.formamide.subtitle": "現実でもよく使われています", + "quests.extreme_voltage.formamide.desc": "バッファーが詰まって蒸気生産が停止しないよう、余剰は破棄するように設定しておくことをおすすめします。", + "quests.extreme_voltage.radioactive_concoction.title": "残留放射性混合物", + "quests.extreme_voltage.radioactive_concoction.subtitle": "これを捨てるなんてとんでもない!", + "quests.extreme_voltage.radioactive_concoction.desc": "&d残留放射性混合物&rは、核分裂ラインで発生するとても重要な副産物です。主な役割は、&bオストラムリニアアクセラレーター&rを使って無限鉱石を作り出すことです。&bGrowth_Chamber&rの解放にも必須です。\n\n火星以外で核分裂炉を運用したい場合、この液体を途切れず供給し続ける仕組みが欠かせません。", + "quests.extreme_voltage.ostrum_linear.subtitle": "さらなる無限化", + "quests.extreme_voltage.ostrum_linear.desc": "&bオストラムリニアアクセラレーター&rは、核分裂ラインで作られるさまざまな素材を利用して、資源を生産することができる便利な装置です。&b搬入バス&rや&b搬入ハッチ&rを多く取り付けることができ、処理速度も非常に速いので、基本的には1台で全レシピをまかなえる性能があります。\n\n入力・出力の混雑を防ぐために、色分け用の&eスプレー缶&rをいくつか作っておくのがおすすめです。例えば、搬入バスと搬入ハッチを同じ&9青色&rに染めれば、そのペアだけがつながり、レシピの取り違えや詰まりを防ぐことができます。", + "quests.extreme_voltage.pss.subtitle": "圧倒的蓄電量", + "quests.extreme_voltage.pss.desc": "&e大型蓄電器&rは、以前までは&1IV&rで解放されましたが、現在は&5EV&rから使えるようになりました。そのため、火星に築き上げた拠点で利用するということもできます。核分裂発電は安定させるのが難しいため、かなり役立つと思います。もちろん、必須ではありませんが。\n\n詳しい動作や仕組みを知りたい場合は、「&aGregTechの電力システム&r」の章にある解説を参照しましょう。", + "quests.extreme_voltage.liquid_air.title": "地球の空気", + "quests.extreme_voltage.liquid_air.subtitle": "あなたの大好物", + "quests.extreme_voltage.liquid_air.desc": "&b液体空気&rの蒸留によって、希ガスを&o無限に&r安定生産することができます。これは&6GregTech&rを進めるうえで非常に重要な工程です。\n\n空気(地球産のものですよ)を蒸留すれば、&bアルゴン&r、&6酸素&r、&eヘリウム&r、&3窒素&r、そして&a二酸化炭素&rといった主要ガスをまとめて確保できるので、とても便利です。", + "quests.extreme_voltage.liquid_mars_air.title": "火星の空気", + "quests.extreme_voltage.liquid_mars_air.subtitle": "あなたの隣人の大好物", + "quests.extreme_voltage.liquid_mars_air.desc": "&b液体空気&rの蒸留は、特定の希少資源を&l無限に&r安定生産するための、&6GregTech&rでも特に重要な基本システムです。TFGではネザーの空気やエンダーの空気が手に入らないため、その代わりとして&c火星空気&rが用意されています。\n\n火星の空気には&bアルゴン&rと&a二酸化炭素&rが豊富に含まれているほか、&eネオン&r、&3クリプトン&r、&9キセノン&rといった他の場所では確保できない希ガスも抽出できます。\n\n注意:今後のアップデートで、これら希ガスの入手経路が新しい惑星の追加に合わせて変更される可能性があります。アプデの際は&6変更履歴&rのチェックをお忘れなく!", + "quests.extreme_voltage.epoxy.title": "エポキシ", + "quests.extreme_voltage.epoxy.subtitle": "人工樹脂", + "quests.extreme_voltage.epoxy.desc.1": "&aエポキシ&rは、これから先に登場するあらゆる回路基板の土台となる、とても重要な素材です!\n\n&9&l注意:&rこのクエストはやや手間がかかるため、まずはほかの作業を進めて様々な資源を揃えてから挑んだ方がいいです。資源や設備が整っているほどスムーズに進められます。", + "quests.extreme_voltage.epoxy.desc.2": "&aエポキシ&rを作るための素材には複数の入手経路があります。\n\nグリセロールを使う経路のレシピはコスパが悪いので完全に除外して構いません。\n\n&3大型化学反応炉&rを使うことで、いくつかのレシピをショートカットすることができます。", + "quests.extreme_voltage.epoxy.desc.3": "&d塩素&rは完全にループされることができないので、外部からの供給が必要です。最初は手動でつぎ足すのでも十分でしょう。\n\n&d水酸化ナトリウム&rを使うレシピは、副産物の&9塩水&rを電解することでループできます。\n\n最善を尽くすなら、四重パイプやポンプカバー、液体フィルターなどを用意したり、思い切ってAE2で全ラインを制御する必要があるでしょう。\n\n閉鎖ループ構成は生産過多・消費過多の防止に便利です。最終的にどの方法を選ぶかは自分で選びましょう。", + "quests.extreme_voltage.epichlorohydrin.title": "エピクロロヒドリン", + "quests.extreme_voltage.epichlorohydrin.desc": "最初の&aエピクロロヒドリン&rは、&3LCR&rレシピでスムーズにつくることができます。\n\nただしこのレシピには&aプロペン&rが必要です。そのためには本格的に&d原油処理&rや&dクラッキング&rに手を出す必要があります。もしあなたが原油処理を後回しにし続けていたのだとしたら、ついに向き合う時が来たということですよ。\n\nまた、&3蒸留塔&rは絶対に建てておきましょう。原油処理において非常に重要な機械です。\n\nそして副産物の&d塩水&rはループさせることで&d水酸化ナトリウム&rを自給できるので、気づいていなかった場合はぜひ活用してください。", + "quests.extreme_voltage.phenol.title": "フェノール", + "quests.extreme_voltage.phenol.desc.1": "&aフェノール&rの製作経路は多岐に渡るため、ここでは特に主流な4つの方法を紹介します:\n\n&9(1)&r&a木質タール&rを蒸留する。もっともシンプルな方法です。\n\n&9(2)&r&aベンゼン&r、&d塩素&r、&d水酸化ナトリウム&rの化学反応。&3LCR&rで行えば塩素を完全に循環できるため、とても安定した作り方です。\n\n&9(3)&r上のレシピから&d水酸化ナトリウム&rを抜いて時短する方法。ただし&d塩素&rが減っていくのでコストは悪めです。\n\n&9(4)&r &aベンゼン&r、&dプロペン&r、&d酸素&rを少量の&4リン酸&rと反応させる「クメン法」。リン酸は本来触媒ですが、このレシピでは少しずつ消費されます。", + "quests.extreme_voltage.phenol.desc.2": "どの選択肢にするか悩んでいる方に向けて、それぞれの魅力を紹介します。\n\n&9(1)&rは&3熱分解炉&rと&3蒸留塔&rをセットで稼働させる余裕があれば、とても良い方法です。\n\n&9(2)&rは私たちがおすすめする方法です!副産物の&d塩&rから&d塩水&rを作り、それを電解することでベンゼン以外を循環させられるので扱いやすいです。\n\n&9(3)&rは&d塩素&rを無限に確保できていれば優秀な方法です。たとえば塩水の鉱脈に&3大型液体採掘機&rを設置するなどの方法があります。\n\n&9(4)&rは...&4リン酸&rの製造には本当に手間がかかるので...このルートはかなり厳しいですよ。", + "quests.extreme_voltage.phenol.desc.3": "&l&3余談:&r&o昔は大型化学反応炉がなかったから、足りない化学レシピを補う目的でベンゼン+酸素のレシピがGTCEに追加されてたんだ。でも今はCEuで現実的な処理方法が用意されたから、このレシピは将来削除されるかも。", + "quests.extreme_voltage.acetone.title": "アセトン", + "quests.extreme_voltage.acetone.desc.1": "&a木酢&rを蒸留すれば&aアセトン&rは作れますが、収率が低くて必要量には届かないことがあります。\n\nしっかり量を確保したいなら、&a酢酸&rから直接&3LCR&rで合成するレシピを使うのがおすすめです。\n\nさらにこだわるなら、&a酢酸&r→&d酢酸カルシウム溶液&r→&aアセトン&rという循環レシピも利用できます。&3LCR&r不要で、無駄なく循環できる優秀な方法です。", + "quests.extreme_voltage.acetone.desc.2": "ここまで&a酢酸&rの話をしてきましたが、肝心の作り方をまだ説明していませんでしたね。そろそろ知りたいところではないでしょうか。\n\n&a酢酸&rは&3化学反応器&rで精製できます。私たちとしては&dエチレン&rを使うレシピが最もおすすめです。", + "quests.extreme_voltage.aes_insulation.title": "アルカリアースシリケート断熱材", + "quests.extreme_voltage.aes_insulation.subtitle": "またの名をロックウール", + "quests.extreme_voltage.aes_insulation.desc": "ティアが上がると、新しいタイプの断熱材が必要になります!\n\nまずはミキサーで&dアルカリアースシリケート混合物の粉&rのレシピを確認してみましょう。\n\n進めていけば、スニッファーやラプターの毛を刈ることで火星にてこの粉末を無限に生産できるようになります。これは次のロケットだけでなく、さまざまな用途で使う重要な素材です。", + "quests.extreme_voltage.epoxy_board.subtitle": "将来性のある回路基板", + "quests.extreme_voltage.epoxy_board.desc": "エポキシ樹脂回路基板は&bナノ回路&rを作成するための重要素材ですが、それ以外で使う場面はほとんどありません。", + "quests.extreme_voltage.ev_circuit_assembler.title": "&5EV&r回路作成機", + "quests.extreme_voltage.ev_circuit_assembler.subtitle": "将来性のある回路作成機", + "quests.extreme_voltage.ev_circuit_assembler.desc": "&5EV回路作成機&rは、&bNanoCPUウェハー&rを十分に確保できるようになるまでは大きな活躍はしません。とはいえ、これを使えばマイクロプロセッサー系の回路を高速で作成できるようになり、やがては&dLuV回路&rを作れるようにもなります。&1IV組立機&rを入手したあとからはとても役立つようになります。", + "quests.extreme_voltage.nano_hv_circuit.subtitle": "こんなの作れないよ!", + "quests.extreme_voltage.nano_hv_circuit.desc": "ついに&eナノ回路&rの制作段階に入りました!これを作るには&bNanoCPUチップ&rが必要で、そのためにはプルトニウムロッドから&dトリチウム水&rを生産するための&c核分裂炉&rの常時稼働ラインが必須です。\n\n作り始めの頃は&eNano回路&rがどうしようもないほど高コストに思うかもしれませんが、&d核分裂ライン&rを完全自動化してしまえば、一気に最安クラスの回路へと変貌します!", + "quests.extreme_voltage.nano_ev.subtitle": "回路が小さすぎる", + "quests.extreme_voltage.nano_ev.desc": "&bNanoCPU&rの量産体制さえ整えば、これらの回路は&bマイクロプロセッサー&r系より簡単に作れるようになってしまうかもしれません。&c核分裂ライン&rの完全自動化さえ済ませれば、上位の機械を作るのもかなり楽になります。\n\nまた、ここから先は上位のSMD部品も使えるようになることも覚えておいてください!", + "quests.extreme_voltage.nano_iv.subtitle": "LuVの技術力に接近しつつある", + "quests.extreme_voltage.nano_iv.desc": "こちらの&1IV&r回路も&bNanoCPUチップ&rを1つ使うという点では&bマイクロプロセッサーメインフレーム&rと同等のコストと言えます。とはいえ、こちらは次の段階へ進むために欠かせない重要な回路でもあります。", + "quests.extreme_voltage.nano_luv.subtitle": "初めてのIV回路", + "quests.extreme_voltage.nano_luv.desc": "&dLuV&r回路の作成、おめでとうございます!&b白金族ライン&rを完遂するまでは&dLuV&r機械を作ることができませんが、それまでは&dAE2&rの新しい強力な装置たちを作るのに使えます。\n\n多くのレシピで&1IV&r組立機が必要になるので、事前に用意しておくことをおすすめします。", + "quests.extreme_voltage.me_part.title": "MEマルチブロックパーツ", + "quests.extreme_voltage.me_part.subtitle": "GregTechとAE2を直接接続", "quests.extreme_voltage.me_part.task": "Any ME Bus or Hatch", - "quests.extreme_voltage.me_part.desc": "These blocks can replace your usual Input and Output Buses/Hatches in multiblocks. The &bOutput&r versions are particularly useful as they can store a massive amount of items or fluids, more than enough to handle most setups. This makes them perfect for sharing resources between multiblocks, or avoiding output clogging.\n\nThey connect directly to &dAE2&r cables, letting you skip the use of Storage Buses or Interfaces. However, be careful because they behave like Interfaces, not as actual storage. This means you can’t access their contents through another Interface.", - "quests.extreme_voltage.tunsgten_line_step.title": "Looping Soda Ash", - "quests.extreme_voltage.tunsgten_line_step.subtitle": "You may not want to mine it forever", - "quests.extreme_voltage.tunsgten_line_step.desc.1": "Looping the &5Tungsten Line&r perfectly isn’t the easiest task, so we’ll use this quest to guide you in the right direction.\n\nThe &bSalt&r you obtain should be combined with &aCarbon Dioxide&r and &6Ammonia&r to produce &3Ammonium Chloride&r, which you can then electrolyze to recycle your &6Ammonia&r and obtain the &9Hydrochloric Acid&r needed for &eSodium Tungstate&r.\n\nThis process also produces &bSodium Bicarbonate&r, which you should electrolyze to recover your &dSoda Ash&r.", - "quests.extreme_voltage.tunsgten_line_step.desc.2": "Finally, to close the loop, you need to manage your &aCarbon Dioxide&r. You can either split a portion of your &dSoda Ash&r and electrolyze it to recover &aCarbon&r and &9Oxygen&r, allowing you to get back some &aCarbon Dioxide&r, or brute force it by using &bLiquid Air&r distillation to produce an infinite supply of &aCarbon Dioxide&r.", - "quests.extreme_voltage.tunsgten_line_step_1.title": "The new Tungsten Line", - "quests.extreme_voltage.tunsgten_line_step_1.subtitle": "Why? Just why?", - "quests.extreme_voltage.tunsgten_line_step_1.desc": "The &eTungsten Line&r in TerraFirmaGreg has been completely reworked and you’ll be happy (or not) to know that it’s now &cmuch harder&r.\n\nIt’s possible to &afully loop&r every material in the Tungsten Line, but doing so requires a lot of engineering. Alternatively, you can brute-force your way through by &cmass-producing&r the resources you need.\n\nA little tip: &4Mars&r has several &agood ore veins&r for &eSoda Ash&r and &eTungsten&r.\n\nTake your time, optimize, and the Tungsten Line will become the foundation of your mid-to-late game progress.", - "quests.extreme_voltage.tunsgten_line_step_2.title": "Last part of the Tungsten Line", - "quests.extreme_voltage.tunsgten_line_step_2.subtitle": "This part loops itself", - "quests.extreme_voltage.tunsgten_line_step_2.desc": "Once you’ve obtained the &bTungstic Acid&r and looped the &cSoda Ash&r, you’ve completed the hardest part. From here, you’ll only need an &6Evaporation Tower&r to fully loop the &aHydrogen&r required for the &6Arc Furnace&r, and a &6Pyrolyse Oven&r to recover the &3Ammonia&r you used at the start.\n\nNothing too difficult, so enjoy your &5Tungsten&r!", - "quests.extreme_voltage.advanced_fluid_rig.title": "Extreme Fluid Drilling", - "quests.extreme_voltage.advanced_fluid_rig.subtitle": "Extreme is an apt descriptor", - "quests.extreme_voltage.advanced_fluid_rig.desc.1": "At the cost of 4x the drilling Power, the &3Advanced Fluid Drilling Rig&r gains &616x the output&r in Fluid.\n\nThe depletion of veins is also halved. This means you will get a total of &632x&r as much Oil (or whatever fluid) from a bedrock fluid vein until depletion!\n\nEven when depleted, you can still use this and be firmly power positive.\n\nOne single &3Advanced Fluid Drilling Rig&r should be enough to supply Power for a base up to &dLuV&r... and possibly beyond!", - "quests.extreme_voltage.advanced_fluid_rig.desc.2": "As a &9reminder&r, since this last appeared in &bMV&r:\n\n&9-&r &aLight Oil&r can be used for &dLPG&r and &dMethane&r to run in &3Large Gas Turbines&r.\n\n&9-&r &aOil&r can be used for &dDiesel&r and &dCetane-Boosted Diesel&r to run in &3Large Combustion Engines&r.\n\n&9-&r &aHeavy Oil&r can be used for &dNitrobenzene&r to run in &3Large Gas Turbines&r.", + "quests.extreme_voltage.me_part.desc": "これらのブロックは、マルチブロックを組み立てる際に普段使っている搬入・搬出バス/ハッチの代わりとして使用できます。特に&b搬出&r版は非常に便利で、大量のアイテムや液体を保管でき、ほとんどのレシピを処理するのに十分すぎるほどの容量があります。そのため、マルチブロックの共有や、排出詰まりを防いだりするのに最適です。\n\nさらに、これらは&dAE2&rケーブルに直接接続できるため、ストレージバスやインターフェースを挟む必要がありません。ただし注意点として、実際のストレージとしての容量は存在しないため、パターンプロパイダーや手動での搬出入などで内容物へアクセスすることはできません。", + "quests.extreme_voltage.tunsgten_line_step.title": "炭酸ナトリウムの循環構成", + "quests.extreme_voltage.tunsgten_line_step.subtitle": "もう採掘は必要なし!", + "quests.extreme_voltage.tunsgten_line_step.desc.1": "&5タングステンライン&rを完全に循環させるのは簡単ではないため、このクエストでは正しい進め方を案内します。\n\nまず&b塩&r、&a二酸化炭素&r、&6アンモニア&rを組み合わせて&3塩化アンモニウム&rを作ります。その後、これを電解することで&6アンモニア&rを再利用でき、さらに&eタングステン酸ナトリウム&rの作成に必要な&9塩酸&rを得られます。また、この工程では &b炭酸水素ナトリウム&rも生成されるため、電解して&d炭酸ナトリウム&rを回収しましょう。", + "quests.extreme_voltage.tunsgten_line_step.desc.2": "完全な閉鎖ループを作るには、&a二酸化炭素&rの管理が必要になります。これには&d炭酸ナトリウム&r の一部を分解して電解し、&a炭素&rと&9酸素&rを回収して、そこから&a二酸化炭素&rを回収する方法があります。\n\n力技ですが、&b液体空気&rの蒸留で無限生産した&a二酸化炭素&rを供給し続けるという方法もあります。", + "quests.extreme_voltage.tunsgten_line_step_1.title": "新しいタングステンライン", + "quests.extreme_voltage.tunsgten_line_step_1.subtitle": "どうしてそんなことするの?", + "quests.extreme_voltage.tunsgten_line_step_1.desc": "TerraFirmaGregの&eタングステンライン&rは全面的に改修されており、以前より&cかなり難解&rになっています。嬉しいですね!(嬉しいですよね?)\n\nタングステンラインに含まれる全ての素材は&a完全にループ&rさせることが可能ですが、そのためには高度なライン構築の技術が必要です。一方で、必要な資源を&c大量生産&rしてゴリ押しで進めることもできます。\n\nちょっとしたヒントですが、&4火星&rには&e炭酸ナトリウム&rと&eタングステン&rのための&a大きい鉱脈&rがいくつか存在しています。\n\nタングステンラインは中盤から終盤にかけての進行の土台となるため、時間をかけてでも最適化しておきましょう。", + "quests.extreme_voltage.tunsgten_line_step_2.title": "タングステンライン最終工程", + "quests.extreme_voltage.tunsgten_line_step_2.subtitle": "お膳立てされたループ構造", + "quests.extreme_voltage.tunsgten_line_step_2.desc": "&bタングステン酸の粉&rを作成し、&c炭酸ナトリウム&rの循環機構が完成すれば、最も大変な部分はもう終わりです。ここから先は、&6アーク炉&rで必要となる&a水素&rを完全に循環させるための&6蒸発塔&rと、最初に使用した&3アンモニア&rを回収するための&6熱分解炉&rを用意するだけです。\n\nあとはもう、夢の&5タングステン&rに向けて一直線です!", + "quests.extreme_voltage.advanced_fluid_rig.title": "超高性能液体採掘機", + "quests.extreme_voltage.advanced_fluid_rig.subtitle": "超高性能と言っても過言じゃない", + "quests.extreme_voltage.advanced_fluid_rig.desc.1": "&3発展型液体採掘機II&rは1つ前のモデルと比べて消費電力が4倍増加しますが、液体の産出量が&616倍&rも増加してしまいます。\n\nさらに、鉱脈の枯渇速度も半分になるため、枯渇するまでに得られる最終的な採取量はなんと&632倍&rにもなります!\n\n前世代と比べて消費電力に対する産出量の比率が圧倒的に改善されているため、枯渇後に稼働させ続けても、電力収支はしっかりプラスになります。\n\n&3発展型液体採掘機II&r1基だけで、&dLuV&rどころか、それ以上の規模の拠点に必要な電力をまかなうこともできます!", + "quests.extreme_voltage.advanced_fluid_rig.desc.2": "&bMV&rの&9復習&r:\n\n&9-&r&a軽油&rは、&dLPG&rや&dメタン&rに加工して、&3大型ガスタービン&rの燃料として使えます。\n\n&9-&r&a原油(原料油)&rは、&dディーゼル&rや&dセタン添加ディーゼル&rに加工して、&3大型燃焼エンジン&rの燃料として使えます。\n\n&9-&r&a重油&rは、&dニトロベンゼン&rに加工して、&3大型ガスタービン&rの燃料として使えます。", "quests.extreme_voltage.mpic_chip.title": "Power Integrated Circuit", - "quests.extreme_voltage.mpic_chip.desc": "New Cutting Machine? &a✓&r\n\nNew Lens? &a✓&r\n\nNew Power Circuit? &a✓&r\n\nNew EBF Metal required? &a✓&r\n\nNew Coil for Energy Hatch? &a✓&r", - "quests.extreme_voltage.ev_energy_hatch.desc": "Another tier, another energy hatch. You know what to do with this!", - "quests.extreme_voltage.ev_dynamo_hatch.title": "EV Dynamo Hatch", - "quests.extreme_voltage.ev_dynamo_hatch.desc": "If you haven't encountered them yet, Dynamo Hatches are essentially the Output equivalent of Energy Hatches. You'll want to use these on your new Large Generators for some proper EV power, covered in the next quests.", + "quests.extreme_voltage.mpic_chip.desc": "新裁断機?&a✓&r\n\n新レンズ?&a✓&r\n\n新PICチップ?&a✓&r\n\nEBF製新金属?&a✓&r\n\nエネルギーハッチのための新コイル?&a✓&r", + "quests.extreme_voltage.ev_energy_hatch.desc": "新しい電圧に到達するということは新しいエネルギーハッチを作るということです。今更言うまでもないですね。", + "quests.extreme_voltage.ev_dynamo_hatch.title": "EVダイナモハッチ", + "quests.extreme_voltage.ev_dynamo_hatch.desc": "ご存知ない方のために説明すると、ダイナモハッチはエネルギーハッチの「出力版」のようなものです。次のクエストで扱う新しい大型発電機で、相当の電力を出力するために、これらを使用することになるでしょう。", "quests.extreme_voltage.ev_dynamo_hatch.task": "Any EV Dynamo Hatch", - "quests.extreme_voltage.oil_distillation.title": "True Oil Distillation", - "quests.extreme_voltage.oil_distillation.desc": "Here are the four most relevant &dHydrocarbons&r you will be obtaining from distilling Steam-Cracked Fuels.\n\nYou will want to set this up &lbefore&r moving to &1IV&r.\n\n&aSteam-Cracked Light Fuel&r as input is probably the most favorable, but you are free to experiment.\n\nIf you don't want the Carbon output, feel free to slap a Voiding Cover on it.", + "quests.extreme_voltage.oil_distillation.title": "真の石油蒸留", + "quests.extreme_voltage.oil_distillation.desc": "こちらが、蒸気分解(クラック)をよく利用する、主要な4種の&d炭化水素&r類です。\n\nこれらの処理ライン&1IV&rに進む&l前&rに整えておくことを強くおすすめします。\n\n&a蒸気で分解された軽質燃料&rを使うのが最も扱いやすいと思われますが、もちろん自由に試して問題ありません。\n\n副産物の炭素が不要であれば、消去カバーなどで廃棄してしまってもいいんじゃないでしょうか。", "quests.extreme_voltage.oil_distillation.task": "Any oil", - "quests.extreme_voltage.wood_distillation.title": "True Organic Distillation", - "quests.extreme_voltage.wood_distillation.desc.1": "This Quest requires the &3Pyrolyse Oven&r and is &doptional&r, yet convenient.\n\nThese four fluids are the important products of &aWood Tar&r Distillation:\n\n&9-&r Phenol: useful for Epoxy and PBI\n&9-&r Benzene: an important hydrocarbon\n&9-&r Toluene: useful for TNT\n&9-&r Dimethylbenzene: useful for PBI\n\nUnlike Oil, putting &aWood Tar&r in the &3Distillation Tower&r for the byproducts, and using &dNitrobenzene&r for power is arguably worth it.", - "quests.extreme_voltage.wood_distillation.desc.2": "These three are the important products from &aWood Vinegar&r Distillation:\n\n&9-&r Acetic Acid: useful to make more Acetone\n\n&9-&r Methanol: a moderately important hydrocarbon\n\n&9-&r Acetone: useful for Epoxy and Gasoline", - "quests.extreme_voltage.wood_distillation.desc.3": "It's also possible to use a \"full combo\" of 4 &3DTs&r - input &aCharcoal Byproducts&r into a first tower, splitting into &aWood Tar&r, &aWood Gas&r and &aWood Vinegar&r.\n\nThis isn't the most efficient cost-to-production ratio, but the option is there if you get bored.", + "quests.extreme_voltage.wood_distillation.title": "真の有機蒸留", + "quests.extreme_voltage.wood_distillation.desc.1": "有機蒸留では&3熱分解炉&rを使用します。基本的に必須の工程ではありませんが、様々なところで役立ってくれます。\n\n以下の4種類の液体は、&a木質タール&rの蒸留で得られる重要な生成物です:\n\n&9-&rフェノール:エポキシやPBIの材料\n&9-&rベンゼン:重要な炭化水素\n&9-&rトルエン:TNTの材料\n&9-&rジメチルベンゼン:PBIに使用\n\n石油とは違い、&a木質タール&rを&3蒸留塔&rで処理し副産物を得つつ、&dニトロベンゼン&rを発電に利用するという、素敵な選択肢があります。", + "quests.extreme_voltage.wood_distillation.desc.2": "こちらの3つは、&a木酢&rの蒸留で得られる重要な生成物です:\n\n&9-&r酢酸:アセトンの追加生産\n\n&9-&rメタノール:そこそこ重要な炭化水素\n\n&9-&rアセトン:エポキシやガソリンの材料。", + "quests.extreme_voltage.wood_distillation.desc.3": "4基の&3蒸留塔&rを使った「フルコンボ」構成も可能です。&a木炭副生成物&rを一つ目の塔に投入し、&a木質タール&r、&a木質ガス&r、&a木酢&rに分離する方式です。\n\nコストに対する生産効率は最適とは言えませんが、暇つぶしとしていかがでしょうか。", "quests.extreme_voltage.wood_distillation.task": "Any of these", - "quests.extreme_voltage.new_qol.title": "New QoL?", - "quests.extreme_voltage.new_qol.desc": "Here's some useful tools that you've unlocked with the EV Assembler.", + "quests.extreme_voltage.new_qol.title": "新しいQoL?", + "quests.extreme_voltage.new_qol.desc": "EV組立機を解禁したことで、新たに利用できる便利なツールがいくつかあります。", "quests.extreme_voltage.building_gadgets.title": "Building Gadgets", - "quests.extreme_voltage.building_gadgets.subtitle": "Paving over beautiful landscapes with just one press of a button!", - "quests.extreme_voltage.building_gadgets.desc": "Looking to expand your factory building even further? Want to just paste down another multiblock? Or is that mountain blocking your view?\n\nLook no further than Building Gadgets, a collection of tools that can do all that and more. These are your perfect building tools going forward, and they come with a manual too!", - "quests.extreme_voltage.gasoline.title": "Gasoline", - "quests.extreme_voltage.gasoline.desc": "&aGasoline&r is an extremely powerful Combustion Fuel. It's over &63 times&r as energy dense as &dDiesel&r!\n\n&9Note:&r This Combustion Fuel exists solely as a &echallenge&r for you to overcome if you desire to take on it.\n\nIt's completely &doptional&r, so we'll let you figure out how to obtain it, without any further tips.", - "quests.extreme_voltage.radiation.title": "Dealing with Radiation", - "quests.extreme_voltage.radiation.subtitle": "Extra Spicy Materials", - "quests.extreme_voltage.radiation.desc.1": "While GregTech doesn't have any sort of \"ambient radiation\" like some other mods do, &aradioactive materials&r are still dangerous to the player when held! This applies to any item that says it's &eCarcinogenic&r and is caused by &eAny Contact&r.\n\nThere's a few ways to mitigate this, and the easiest is to just avoid contact with the items in the first place - move them around with pipes, backpacks, or even Small Vessels. The less time you have them in your inventory, the better!", - "quests.extreme_voltage.radiation.desc.2": "Besides this, you'll want some other ways to protect yourself. Wearing equipment tagged as &e#ppe_armor&r in all four slots will protect you from radiation. However, this will still damage the equipment over time (at a rate equivalent to how much the radiation would affect you), &oexcept&r for the &6Hazardous Material Suit&r, which will never take damage from it.\n\nThe downside is that the hazmat suit isn't a space suit, so on Mars it's up to you whether you want to set up an enclosed Oxygenated base for the hazmat suit, or just take the durability damage on your space suit.", - "quests.extreme_voltage.radiation.desc.3": "Lastly, you can check your radiation poisoning at any time with the &a/medical_condition query&r command. If it gets too high, you will start taking occasional damage or just suddenly die, so you want to prevent it.\n\nThe only other way to treat it is to craft and eat &bRad Away&r pills, which will each remove 50%% of the build-up.", + "quests.extreme_voltage.building_gadgets.subtitle": "ジャングルがボタン一つでコンクリートジャングルに!", + "quests.extreme_voltage.building_gadgets.desc": "工場をもっと拡張したい?マルチブロックをそのままコピーして設置したい?それとも目の前の山が邪魔で景色が見えない?\n\nそんな悩みは「Building Gadgets」で全部解決!建築を便利にしてくれる優秀なガジェットが一式そろっていて、使い方のマニュアルまで付いています。これからの建築作業が一気に楽になります!", + "quests.extreme_voltage.gasoline.title": "ガソリン", + "quests.extreme_voltage.gasoline.desc": "&aガソリン&rはとんでもなく強力な燃焼燃料で、なんと&dディーゼル&rの3倍以上の燃料価を誇ります!\n\n&9補足:&rガソリンの精製は、石油処理の愛好家や強力な燃料を欲する挑戦者に向けた高難易度チャレンジです。\n\n完全に任意の要素なので、作成工程はあえてノーヒントです。あなたはいったいどう攻略するのでしょうか!?", + "quests.extreme_voltage.radiation.title": "放射性物質の取り扱い方", + "quests.extreme_voltage.radiation.subtitle": "なかなか刺激的な物質", + "quests.extreme_voltage.radiation.desc.1": "GregTechでは、他のMODのように「放射線が周囲に漂う」といったことはありませんが、&a放射性のアイテム&rは危険です!\n\n説明欄に&e「発がん性」&rと書かれていて、&e「接続先」&rとあるものはすべて対象になります。\n\n対策はいくつかありますが、一番手っ取り早く確実なのは持ち歩かないことです。パイプで流したり、バックパックや小型容器に入れて運んだりして、自身のインベントリ内に入っている時間を極力減らしましょう!", + "quests.extreme_voltage.radiation.desc.2": "どうしても持ち歩かなくてはならないという時もあるでしょう、そのための方法も説明します。\n\n4つのスロットすべてに&e#ppe_armor&rとタグ付けされた装備を着用すると、放射線から身を守ることができます。しかし、これは時間とともに装備の耐久値にダメージが入ってしまいます(放射線があなたに与える影響量と同等の速度で)。ただし、&6危険物用スーツ&r(ハズマットスーツとも呼ばれます)だけは例外で、危険物からの影響を一切受けなくなります。\n\nただし、ハザマットスーツは宇宙服ではないため、火星ではハザマットスーツの着用が可能な密閉された酸素供給基地を設置するか、宇宙服の耐久値をすり減らすかを選びましょう。", + "quests.extreme_voltage.radiation.desc.3": "最後に、&a/medical_condition query&rコマンドを使えば、いつでも自分の放射能汚染度を確認できます。数値が高くなりすぎると、一定間隔でダメージを受けたり、いきなり死亡してしまうこともあるため、事前に対策しておくことが大切です。\n\nもう1つの対処方法として、&bRadAway&r錠を製作し摂取する手段があります。これを1つ使用すると、蓄積している放射能汚染が50%ずつ減少します。", "quests.extreme_voltage.radiation.task": "Safety First!", - "quests.extreme_voltage.hexafluorosilic_acid.title": "Hexafluorosilic Acid", - "quests.extreme_voltage.hexafluorosilic_acid.subtitle": "There's something in the water...", - "quests.extreme_voltage.hexafluorosilic_acid.desc": "Hexafluorosilic Acid is obtained by bathing Red Granite, Trachyte, or Argillite Dust in Hydrofluoric acid. You can get an infinite amount of this dust from a Rock Crusher.", - "quests.extreme_voltage.martian_sludge.title": "Martian Sludge", - "quests.extreme_voltage.martian_sludge.subtitle": "The Slop Line", - "quests.extreme_voltage.martian_sludge.desc": "Centrifuge the Hexafluorosilic Acid to get your Fluorine back, along with some &6Martian Sludge&r - required for Radon and Nuclear Residue.", - "quests.extreme_voltage.large_generators.title": "Extreme Power Generation", - "quests.extreme_voltage.large_generators.desc": "The various single-block generators only go up to HV, so from here on, you'll have to use multiblocks to generate more power. Two of the best options at EV are the &dLarge Gas Turbine&r and &dLarge Combustion Engine&r, so head over to the GregTech Energy chapter to learn more about them.", + "quests.extreme_voltage.hexafluorosilic_acid.title": "六フッ化ケイ酸", + "quests.extreme_voltage.hexafluorosilic_acid.subtitle": "フッ酸の中に、石が、ある!", + "quests.extreme_voltage.hexafluorosilic_acid.desc": "六フッ化ケイ酸は、赤色花崗岩、粗面岩、または粘土質岩の粉末を化学槽でフッ化水素酸に浸すことで作れます。これらの粉末は、破砕機を使えば無限に入手可能です。", + "quests.extreme_voltage.martian_sludge.title": "火星の泥漿", + "quests.extreme_voltage.martian_sludge.subtitle": "べちゃべちゃな工程", + "quests.extreme_voltage.martian_sludge.desc": "六フッ化ケイ酸を遠心分離すると、フッ素を回収できるほか、&6火星の泥漿&rも得られます。これはラドンや核分裂残留物の生成に必要な素材です。", + "quests.extreme_voltage.large_generators.title": "大型発電機", + "quests.extreme_voltage.large_generators.desc": "シングルブロックの発電機はHVまでしか対応していないため、これ以降はより大きな発電量を確保するには大型の発電機を使う必要があります。EV帯で特に優秀なのは、&d大型ガスタービン&rと&d大型燃焼エンジン&rの2つです。\n\n詳しく知りたい場合は、「GregTechの電力システム」の章をご覧ください。", "quests.gregtech_energy": "GregTechの電力システム", "quests.gregtech_energy.subtitle": "第一種電気主任技術者を目指して", "quests.gregtech_energy.start.title": "説明しよう", @@ -2029,7 +2103,7 @@ "quests.gregtech_energy.moving_amp.title": "アンペアの扱い", "quests.gregtech_energy.moving_amp.subtitle": "うわっ!燃えた!?", "quests.gregtech_energy.moving_amp.desc.1": "それぞれのワイヤーには&e最大アンペア数&rが設定されています。これは、そのケーブルが焼き切れずに安全に流せる電流量(アンペア)の上限です。\n実際にケーブルをどれだけのアンペアが流れるかを知るには、次の2点を考慮する必要があります。\n\n- 発電機やバッテリーの出力アンペア数:\n蓄電器は、中に入っているバッテリーの数だけアンペアを出力します。\n1ブロックの発電機は、どれも出力が&e1A&rです。\nマルチブロックの発電機の場合は、&aダイナモエネルギーハッチ&rによって出力が決まり、その値はツールチップに表示されています。\n\nまた、出力されるアンペア数は「機械からの要求」にも左右されます。電線につながっている各機械は、自分の内部容量を満たすために必要な分のアンペアを要求します。", - "quests.gregtech_energy.moving_amp.desc.2": "具体的な例を見てみましょう。\nあなたは&e8個のバッテリー&rを入れた&e8スロット蓄電器&rに、&e6台の機械&rを接続しています。\nこの蓄電器は各機械に&e1A&rずつ送るので、合計で&e6A&rの電流を流そうとします。\n電力は、最も近い機械から順番に送られ、最後の機械が一番遅く受け取ります。\nこの場合、もしケーブルが&c4A&rまでしか対応していなければ、ケーブルは&c焼き切れてしまいます&r。この場合は&a8A対応ケーブル&rを使う必要があります。\n\n&bヒント:&r一番最初の機械に接続するケーブルは&e8A&rを扱えるものが必要ですが、最後の機械の部分では&e1A&rしか流れないので、細いケーブルでも問題なかったりします。\n&c⚠ 注意:&rただし、あとから機械を追加すると、ケーブルが許容量を超えて焼損するおそれがあります。", + "quests.gregtech_energy.moving_amp.desc.2": "具体的な例を見てみましょう。\nあなたは&e8個のバッテリー&rを入れた&e8スロット蓄電器&rに、&e6台の機械&rを接続しています。\nこの蓄電器は各機械に&e1A&rずつ送るので、合計で&e6A&rの電流を流そうとします。\n電力は、最も近い機械から順番に送られ、最後の機械が一番遅く受け取ります。\nこの場合、もしケーブルが&c4A&rまでしか対応していなければ、ケーブルは&c焼き切れてしまいます&r。この場合は&a8A対応ケーブル&rを使う必要があります。\n\n&bヒント:&r一番最初の機械に接続するケーブルは&e8A&rを扱えるものが必要ですが、最後の機械の部分では&e1A&rしか流れないので、細いケーブルでも問題なかったりします。\n&c⚠注意:&rただし、あとから機械を追加すると、ケーブルが許容量を超えて焼損するおそれがあります。", "quests.gregtech_energy.moving_amp.task": "I got it", "quests.gregtech_energy.produce_energy.title": "発電について", "quests.gregtech_energy.produce_energy.subtitle": "電力の生産", @@ -2120,8 +2194,8 @@ "quests.gregtech_energy.battery_buffer.task.2": "Another one", "quests.gregtech_energy.pss.title": "大型蓄電器", "quests.gregtech_energy.pss.subtitle": "ところがどっこい...夢じゃありません!", - "quests.gregtech_energy.pss.desc.1": "&d大型蓄電器&r(通称:&dPSS&r)は、&6超強力な蓄電用のマルチブロック&rです。\n&1EV&rから使えるようになります。もし、電力に不安を抱えていたらすぐにでも作りましょう。あなたの不安を消し飛ばすほどの莫大な蓄電量を誇ります。\n\n桁外れの蓄電容量だけでなく、そのほかにも電力の管理を非常に楽にしてくれる要素を持っています。", - "quests.gregtech_energy.pss.desc.2": "&e扱い方&r:\n-まず&aパラジウム製大型蓄電器用外装&rで本体を組み立てましょう。\n-入力用に&bエネルギーハッチ&rを1つ、出力用に&bダイナモハッチ&rを1つ以上設置します。\n-対応ハッチは自由で、&8アンペア型&rでも&6レーザー型&rでもOK。\n-&c爆発の心配は不要&rです——使った蓄電ブロックにかかわらず&aどんな電圧でも&r受け入れます。\n\n&e蓄電層について&r:\n-上部には最大&d17層&rまでの&9蓄電ブロック&rを積み重ねられます。\n-各層は&c隙間なく&r設置する必要があります。\n- &f空&rのものと&6バッテリーが入っている&rものが混ざっていても構いません。\n\nそして蓄電層を&b合わせガラス&rで囲めば完成です。\n\n正直言って、&c17層も積む必要なんてまずありません&r...ロマンを追い求めるなら別ですが。\nもし本当に17層フルのPSSを作ったなら、&lSNSで自慢しましょう&r。", + "quests.gregtech_energy.pss.desc.1": "&d大型蓄電器&r(通称:&dPSS&r)は、&6超強力な蓄電用のマルチブロック&rです。\n\nEVから使えるようになるので、もし、電力に不安を抱えていたらすぐにでも作りましょう。あなたの不安を消し飛ばすほどの莫大な蓄電量を誇ります。\n\n桁外れの蓄電容量だけでなく、そのほかにも電力の管理を非常に楽にしてくれる要素を持っています。", + "quests.gregtech_energy.pss.desc.2": "&e扱い方&r:\n-まず&aパラジウム製大型蓄電器用外装&rで本体を組み立てましょう。\n-入力用に&bエネルギーハッチ&rを1つ、出力用に&bダイナモハッチ&rを1つ以上設置します。\n-対応ハッチは自由で、&8アンペア型&rでも&6レーザー型&rでもOK。\n-&c爆発の心配は不要&rです——使った蓄電ブロックにかかわらず&aどんな電圧でも&r受け入れます。\n\n&e蓄電層について&r:\n-上部には最大&d17層&rまでの&9蓄電ブロック&rを積み重ねられます。\n-各層は&c隙間なく&r設置する必要があります。\n-&f空&rのものと&6バッテリーが入っている&rものが混ざっていても構いません。\n\nそして蓄電層を&b合わせガラス&rで囲めば完成です。\n\n正直言って、&c17層も積む必要なんてまずありません&r...ロマンを追い求めるなら別ですが。\nもし本当に17層フルのPSSを作ったなら、&lSNSで自慢しましょう&r。", "quests.gregtech_energy.batteries.title": "強力なバッテリー", "quests.gregtech_energy.batteries.subtitle": "IC2のその先へ", "quests.gregtech_energy.batteries.desc": "&7LV&rや&bMV&rの頃に、ナトリウム電池やリチウム電池を初めて作ったと思います。\n\nその頃は、バッテリーの性能に満足できないこともあったと思います。\n\nこのクエストでは、そのようなバッテリーとは比べ物にならないほど強力な「&aクリスタルバッテリー&r」系統を紹介します。\nエネルギー容量も出力も段違いで、きっとバッテリーで不満を感じることはなくなるでしょう。\n\nもちろんコストはやや高めです。ですが、そんなの問題じゃありません。\n電力は正義。細かいことを気にする必要はないのです", @@ -2136,14 +2210,14 @@ "quests.gregtech_energy.overclock.title": "オーバークロック", "quests.gregtech_energy.overclock.subtitle": "電圧と処理時間の関係", "quests.gregtech_energy.overclock.desc.1": "「オーバークロック」ってよく聞くけど、実際どういう意味なのか分からないですか? それなら、ここでしっかり勉強しておきましょう。\n\n基礎知識:\n&dLV&rは最大で32EU/tです。状況によってはそれ以下になることもありますが、超えることはありません。\n&dMV&rは128EU/t、\n&dHV&rは512EU/tまで出力できます。\nつまり、電圧のティアが1段階上がるごとに必要な電力はおよそ4倍になる、という仕組みです。", - "quests.gregtech_energy.overclock.desc.2": "下位電圧のレシピを上位電圧の機械で動かすとどうなるでしょう?\nそれが、いわゆる&eオーバークロック&rです!\n\n例えば、&dMV&rレシピ(33〜128EU/t)を&dHV&r機械で処理すると、消費電力は4倍、速度は2倍になります。\n\n同じMVレシピを&dEV&r機械で動かすと、消費電力は8倍にもなるのに、速度は4倍しか上がりません。\n\nつまり、電力効率の面では、1台をオーバークロックするよりも複数の機械を動かした方が得なのです。\nとはいえ、現実的には同じ機械を大量に並べるより、オーバークロックしてスピードアップする方が便利なことが多いと思います。\n\nエネルギーが貴重な序盤のうちは、この仕組みを理解しておいた方がよいでしょう。", - "quests.gregtech_energy.overclock.desc.3": " 特定の大型機械だけが持つ特別な機能、それが&eパーフェクトオーバークロック&r(通称:POC)です。\n通常のオーバークロックでは「4倍の電力で2倍の速度」ですが、POCでは「&a4倍の電力&rで&a4倍の速度&r」になります。つまり、複数台の機械を動かすのと同じ効率で動作するというわけです。\n\n現時点でTerraFirmaGreg内でPOCに対応している大型機械は以下の通りです:\n-工業用電気炉(EBF)\n-合金高炉(ABS)\n-回転式炉床炉(RHF)\n-大型化学反応炉(LCR)\n-電気温室", + "quests.gregtech_energy.overclock.desc.2": "下位電圧のレシピを上位電圧の機械で動かすとどうなるでしょう?\nそれが、いわゆる&eオーバークロック&rです!\n\n例えば、&dMV&rレシピ(33〜128EU/t)を&dHV&r機械で処理すると、消費電力は4倍、速度は2倍になります。\n\n同じMVレシピを&dEV&r機械で動かすと、消費電力は16倍にもなるのに、速度は4倍しか上がりません。\n\nつまり、電力効率の面では、1台をオーバークロックするよりも複数の機械を動かした方が得なのです。\nとはいえ、現実的には同じ機械を大量に並べるより、オーバークロックしてスピードアップする方が便利なことが多いと思います。\n\nエネルギーが貴重な序盤のうちは、この仕組みを理解しておいた方がよいでしょう。", + "quests.gregtech_energy.overclock.desc.3": " 特定の大型機械だけが持つ特別な機能、それが&eパーフェクトオーバークロック&r(通称:POC)です。\n通常のオーバークロックでは「4倍の電力で2倍の速度」ですが、POCでは「&a4倍の電力&rで&a4倍の速度&r」になります。つまり、複数台の機械を動かすのと同じ効率で動作するというわけです。\n\n現時点でTerraFirmaGreg内でPOCに対応している大型機械は以下の通りです:\n-工業用電気炉(EBF)...高温稼働時のみ\n-合金高炉(ABS)...高温稼働時のみ\n-回転式炉床炉(RHF)...高温稼働時のみ\n-大型化学反応炉(LCR)\n-電気温室", "quests.gregtech_energy.overclock.task": "So the red ones go faster, got it", "quests.gregtech_energy.blast_oc.title": "機械高炉の仕組みについて", "quests.gregtech_energy.blast_oc.subtitle": "完全に理解しろとは言いません", "quests.gregtech_energy.blast_oc.desc.1": "まだPOCについて学んでいない場合は、1つ上のクエストを先に読んでください。\n\nこれら3つの大型機械には共通の特別な仕様があります。それは、&c機械の温度&rに応じて&ePOC&rになるというものです。現在の温度はコントローラーをクリックすることで確認できます。\n\n温度を上げる方法は2つあります:\n1)高電圧の電力を使用する\n2)コイルをアップグレードする", "quests.gregtech_energy.blast_oc.desc.2": "コイルの性能は、カーソルを合わせて&3Shiftキー&rを押すと確認できます。\n\n機械の温度が分かったら、次はレシピの要求温度を確認しましょう。これはEMIから確認できます。\n\n両方の値が分かれば、POCが適用されるかどうかを簡単に計算できます:\n&b機械の温度は、レシピが要求する温度よりもオーバークロックティアごとに少なくとも1800K高くなければなりません。", - "quests.gregtech_energy.blast_oc.desc.3": "例:\n-ステンレスの要求温度&c1700K&rで、&aHV&rティアです。\n-EBFは&bLuV&rティアで、温度は&c5900K&rだとします。\n-HVからLuVまでは&a3段階のオーバークロック&rです。\n- 1800x3=&c5400K&r→レシピ基準の温度を加えると...5400+1700=&c7100K&rがPOCに必要な温度です。\n-しかし、機械の温度は&c5900K&rしかないので、HV→EVおよびEV→IVのときはPOCになりますが、IV→LuVは通常のオーバークロックになります。\n\nその結果、レシピの処理時間は、完全にPOCの場合は0.85秒ですが、今回の事例では1.7秒かかります。\n\n覚えにくいですか? とにかくこれだけ覚えておけばOK:コイルをアップグレードすれば、レシピはより速く、より省エネで作れます。", + "quests.gregtech_energy.blast_oc.desc.3": "例:\n-ステンレスの要求温度&c1700K&rで、&aHV&rティアです。\n-EBFは&bLuV&rティアで、温度は&c5900K&rだとします。\n-HVからLuVまでは&a3段階のオーバークロック&rです。\n- 1800x3=&c5400K&r→レシピ基準の温度を加えると...5400+1700=&c7100K&rがPOCに必要な温度です。\n-しかし、機械の温度は&c5900K&rしかないので、HV→EVおよびEV→IVのときはPOCになりますが、IV→LuVは通常のオーバークロックになります。\n\nその結果、レシピの処理時間は、完全にPOCの場合は0.85秒ですが、今回の事例では1.7秒かかります。\n\n覚えにくいですか?とにかくこれだけ覚えておけばOKです:コイルをアップグレードすれば、レシピはより速く、より省エネで作れます。", "quests.gregtech_energy.blast_oc.task": "Better coils more gooder, got it", "quests.gregtech_energy.subtick.title": "サブティック", "quests.gregtech_energy.subtick.subtitle": "並列処理?", @@ -2160,14 +2234,14 @@ "quests.gregtech_energy.rotor.desc.2": "もちろん、効率・パワー・耐久値の3つをすべてが高い方がいいですが、現実的には「燃料生産量」「タービンの数」「ローター交換の手間」などによって最適解は変わります。つまり、これといった正解はないのです。&8(まあ、ニュートロニウムを除けばですが...)&r\n\n迷った場合は、&6HV&r帯ではバナジウム鋼、&5EV&rではアルティメット、&9IV&rではHSS-Sを使うのがおすすめです。\n\n\n\nなお、ローターホルダーは正面が塞がっていると動作しないため、新しいローターをパイプなどで自動補充することはできませんが、&aメカニカルアーム&rであれば問題なく交換できます!", "quests.gregtech_energy.rotor.task": "Any Turbine Rotor", "quests.gregtech_energy.fission_reactor.title": "核分裂炉MK I", - "quests.gregtech_energy.fission_reactor.subtitle": "ここで一発ドカンと一気に理解してしまいましょう!", - "quests.gregtech_energy.fission_reactor.desc.1": "&d核分裂炉&rは、GregTechの中でも珍しい存在で、そのコンセプトも仕組みも少し特殊です。でも心配はいりません。この重要で多用途な大型機械の使い方について、しっかりと説明します!\n\n難解な物理学の話はさておき、&eエンジニア&rとしてまず知っておくべきことは、「この炉は巨大な熱エネルギーを利用した&d蓄電・発電装置&rのようなもの」だということです。\n適切な燃料を投入すると、&cHeat&r(&6EU/t&rのようなもの)というエネルギーを発生させ、それを炉内に&crising_temperature&rとして蓄積します(つまり、&6EU&rを貯めているのです)。\n\nその熱を&9冷却液&rに移してタービンを回したり、熱が余っていたら熱を利用したクラフトに使うことなどもできます。\n\n副産物として新しい元素を入手し、新しい核燃料や上位の回路などを作ることもできます。ついでに太陽系の探検でもしてみますか?まあそんなことに興味はないですよね。", - "quests.gregtech_energy.fission_reactor.desc.2": "まずは&dトリウム&rを用意してください。取扱いは危険ですので必ず保護具を着用してください。(&eディーテック宇宙技術社&rは不慮の事故の責任を負いません。危険防止クエストで安全な手順を確認してください。)\n\n次に、空の&dFuel_Rods&r(燃料棒)を作って&d核分裂燃料形成機&rで燃料を注入してください。燃料棒は再利用できますから大量に作る必要はなく、最初は1本だけ作れば十分です。\n\n次に、核分裂炉を完成させてください。構造はEMIで確認できます。\n中央には燃料を入れるための「Fuel_Holder」を立てて、周囲にコンポーネントやMaterial_Holderを追加できる構成になっています(詳しくは後ほど)。\n\n「なぜ1本だけ?」と疑問に思いましたか。良い疑問です。次のページで核分裂炉の仕組みをじっくり解説いたします。", - "quests.gregtech_energy.fission_reactor.desc.3": "炉内に入れる&d燃料棒&rが多いほど、&c温度は上昇しやすく&rなります。そして温度が高いほど、より多くの熱を冷却液などへと移すことができます。しかし耐えられる熱には限界があり、炉は&c一定の温度&rまでにしか達しないため、あまり多くの燃料棒を入れすぎないようにしてください。\n\nとはいえご安心ください!&0Mek至上主義者&rの喧伝は誤りであり、核分裂というのは&a完璧に安全&rです!\n炉内の温度が危険域に近づくと、炉は&9自動的にクールダウン期間&rに入り、すべての熱が&a安全域まで発散&rされるまで再稼働しません。ただしクールダウン期間はかなり長いです。\n\nもっと高温かつ高速にする方法はあるのか、気になってきましたか?&e我々が誇る素晴らしき部隊&rがあなたのための解決策を用意しています。", - "quests.gregtech_energy.fission_reactor.desc.4": "5つの&dFuel_Holder&rのほかに、最大で&o20個&rの&dコンポーネント&rを組み込むことができます。他社の核分裂炉は厄介な構造なものも多くありますが、当社製の核分裂炉はとてもスマートです。設置したコンポーネントの&6ステータス&rは単純に&6合算&rされ、その結果が反映されます。\n\n現時点の核分裂炉で利用できるコンポーネントの効果は次の3種類です:\n&e1)&r最大温度上昇&7(耐熱性強化)&r\n&e2)&r効率向上&7(燃料の消費を抑える)&r\n&e3)&rスロットル調整&7(反応速度を制御)&r\n\n&8*)&rただし、あなたの手の届く場所にある素材では、まだすべてのコンポーネントを作ることはできないかもしれません。現在のところ、初歩的なコンポーネント用の素材しか確認されていないようです。\n\nそれから注意点として&c温度&rを上げることには&cデメリット&rも伴います。", + "quests.gregtech_energy.fission_reactor.subtitle": "ここで一発ドカンと理解してしまいましょう!", + "quests.gregtech_energy.fission_reactor.desc.1": "&d核分裂炉&rは、GregTechの中でも珍しい存在で、そのコンセプトも仕組みも少し特殊です。でも心配はいりません。この重要で多用途な大型機械の使い方について、しっかりと説明します!\n\n難解な物理学の話はさておき、&eエンジニア&rとしてまず知っておくべきことは、「この炉は巨大な熱エネルギーを利用した&d蓄電・発電装置&rのようなもの」だということです。\n適切な燃料を投入すると、&c熱量&r(&6EU/t&rのようなもの)というエネルギーを発生させ、それを炉内に&c熱&rとして蓄積します(つまり、&6EU&rを貯めているのです)。\n\nその熱を&9冷却液&rに移してタービンを回したり、熱が余っていたら熱を利用したクラフトに使うことなどもできます。\n\n副産物として新しい元素を入手し、新しい核燃料や上位の回路などを作ることもできます。ついでに太陽系の探検でもしてみますか?まあそんなことに興味はないですよね。", + "quests.gregtech_energy.fission_reactor.desc.2": "まずは&dトリウム&rを用意してください。取扱いは危険ですので必ず保護具を着用してください。(&eディーテック宇宙技術社&rは一切の事故の責任を負いません。危険防止クエストで安全な手順を確認してください。)\n\n次に、空の&d燃料棒&rを作って&d核燃料形成機&rで燃料を注入してください。燃料棒は再利用できますから大量に作る必要はなく、最初は1本だけ作れば十分です。\n\n次に、核分裂炉を完成させてください。構造はEMIで確認できます。\n中央には燃料を入れるための「燃料棒格納部」を立てて、周囲に耐熱フレームやマテリアルホルダーなどの「コンポーネント」を追加できる構成になっています(詳しくは後ほど)。\n\n「なぜ1本だけ?」と疑問に思いましたか。良い疑問です。次のページで核分裂炉の仕組みをじっくり解説いたします。", + "quests.gregtech_energy.fission_reactor.desc.3": "炉内に入れる&d燃料棒&rが多いほど、&c温度は上昇しやすく&rなります。そして温度が高いほど、より多くの熱を冷却液などへと移すことができます。しかし耐えられる熱には限界があり、炉は&c一定の温度&rまでにしか達しないため、あまり多くの燃料棒を入れすぎないようにしてください。\n\nとはいえご安心ください!&0Mek至上主義者&rの喧伝は誤りであり、核分裂というのは&a完璧に安全&rです!\n炉内の温度が危険域に近づくと、炉は&9自動的にクールダウンモード&rに入り、すべての熱が&a安全域まで発散&rされるまで再稼働しません。ただしクールダウン期間はかなり長いです。\n\nもっと高温かつ高速にする方法はあるのか、気になってきましたか?&e我々が誇る素晴らしき部隊&rがあなたのための解決策を用意しています。", + "quests.gregtech_energy.fission_reactor.desc.4": "5つの&d燃料棒格納部&rのほかに、最大で&o20個&rの「&dコンポーネント&r」を組み込むことができます。他社の核分裂炉は厄介な構造なものも多くありますが、当社製の核分裂炉はとてもスマートです。設置したコンポーネントの&6ステータス&rは単純に&6合算&rされ、その結果が反映されます。\n\n現時点の核分裂炉で利用できるコンポーネントの効果は次の3種類です:\n&e1)&r最大温度上昇&7(耐熱性強化)&r\n&e2)&r効率向上&7(燃料の消費を抑える)&r\n&e3)&rスロットル調整&7(反応速度を制御)&r\n\n&8*)&rただし、あなたの手の届く場所にある素材では、まだすべてのコンポーネントを作ることはできないかもしれません。現在のところ、初歩的なコンポーネント用の素材しか確認されていないようです。\n\nそれから注意点として&c温度&rを上げることには&cデメリット&rも伴います。", "quests.gregtech_energy.fission_reactor.desc.5": "炉内の&c温度が上昇&rするほど冷却液の加熱などの処理速度は&c向上&rしますが、&d燃料棒&rの消耗が激しくなります。各燃料棒の耐久は温度に比例して減少し、また高温にするためには、必要本数も増えるため、全体の損耗は&n二次的&rに増加します。\n\n燃料効率を考えるならば低温運転が有利ですし、燃料をより早く消費し、副産物に変換したいなら耐熱性能が許す限り高温にするのがよいでしょう。", "quests.gregtech_energy.fission_reactor.desc.6": "これで核分裂炉を運用する際の事前知識は揃いました。それでは、具体的にどのようなレシピを実行できるのか確認しましょう。&d核分裂炉MK_I&rを&eEMI&rで調べると、3つのレシピが表示されます:\n\n&e1)&rFission_Reactor&7(対応している燃料と冷却液の一覧)&r\n&e2)&rFission_Heat_Processing&7(例:EBFのような高温処理)&r\n&e3)&rFission_Products&7(燃料が使い切られたときの副産物)&r\n&e4)&rマルチブロック情報\n\nそれぞれの&a燃料&rは特定の&9冷却液&rとしか組み合わせられないため、対応関係をよく確認してください。\nまた燃料棒が寿命を迎えると、新たな元素へと遷移します。\n\n一方で、処理レシピは十分な温度があれば燃料の種類に関係なく動作します。", - "quests.gregtech_energy.fission_reactor.desc.7": "簡略化した計算は次の通りです。十分な量の冷却液と&cHeat:100%&rの燃料棒を使用すると、炉内は約&c200&rの温度に達します。これはHeatレベル、または単に「Heat」とも呼ばれます。&d2&r本の&c100%&r燃料棒を使用することは、&d1&r本の&c200%&r燃料棒を使用するのと同じで、どちらも約&c400&rのHeatを生み出します。\n\nこれは燃料棒が1本あたり&6200HU/t&r(Heat_Units)を生成するためです。冷却液は&c1&r度あたり&61HU/t&rの熱を吸収できます。\n\n炉の耐熱上限が&c190&rの場合、&c100%&rの燃料棒でも過熱状態になってしまいます。これを回避するには、コンポーネントを追加して耐熱上限を上げるか、あるいは&d冷却材&rを使用します。使う冷却材によって冷却性能は異なります。", + "quests.gregtech_energy.fission_reactor.desc.7": "簡略化した計算は次の通りです。十分な量の冷却液と&cHeat:100%&rの燃料棒を使用すると、炉内は約&c200&rの温度に達します。これは熱量レベル、または単に「熱」とも呼ばれます。&d2&r本の&c100%&r燃料棒を使用することは、&d1&r本の&c200%&r燃料棒を使用するのと同じで、どちらも約&c400&rのHeatを生み出します。\n\nこれは燃料棒が1本あたり&6200HU/t&r(Heat_Units)を生成するためです。冷却液は&c1&r度あたり&61HU/t&rの熱を吸収できます。\n\n炉の耐熱許容量が&c190&rの場合、&c100%&rの燃料棒でも過熱状態になってしまいます。これを回避するには、コンポーネントを追加して耐熱許容量を上げるか、あるいは&d冷却材&rを使用します。使う冷却材によって冷却性能は異なります。", "quests.gregtech_energy.fission_reactor.desc.8": "たとえば、レシピの温度が&c100K&rで、影響が&6Heat:-10HU/t&rの場合、炉の温度が&c190&rのときに&619HU/t&r分だけ冷却することができます。\n\nこれにより、炉をより低い最大温度で稼働させ、過熱を防ぐことが可能になります。温度が&c100&r未満の場合、EBFのレシピと同様に稼働しません。\n\n今お教えできるのはここまでです。さらなる研究や改良が進んだら、ぜひまた戻ってきてください。&e核エンジニアの同胞より&r", "quests.high_voltage": "&6HV&r - 高電圧時代", "quests.high_voltage.subtitle": "さぁ、月へ出かけよう", @@ -2182,11 +2256,11 @@ "quests.high_voltage.chem_bath.desc": "&3発展型化学槽II&rは、&a化学染料&rを使ってレンズを&d着色する&rことができます。これによって、扱えるウェハーの種類が増えます。そのほかの用途として、熱いインゴットの冷却にも利用できます。", "quests.high_voltage.maintenance_hatches.title": "上位版メンテナスハッチ", "quests.high_voltage.maintenance_hatches.subtitle": "放任か過保護か", - "quests.high_voltage.maintenance_hatches.desc.1": "新たに2種類の&3メンテナンスハッチ&rが使えるようになりました。どちらも設置直後は&6メンテナンス不要&rなのが特徴です。\n\nまず、&3自動メンテナンスハッチ&rはとてもシンプルで、一度設置すれば&6永遠にメンテナンスが不要&rになります。\n\nもう一方の&3制御可能なメンテナンスハッチ&rは少し特殊で、設定によってレシピの処理時間を&a10%短縮&rできますが、その代償としてメンテナンスの発生が3倍の速度になります(現実時間で約&d16時間&r稼働します)。さらに、マルチブロック発電機に使うことで、レシピの動作時間を延ばして燃料効率を10%向上させることもできます。\n\n&9補足:&rメンテナンスハッチにテープを入れておくと、問題が発生しても自動で修理してくれます。", - "quests.high_voltage.maintenance_hatches.desc.2": "&l&3余談:&r&o 自動メンテナンスハッチの見た目と機能は、GregTech:New_Horizons用のアドオンMod「TecTech」から取り入れたものです。\n\n&o終盤に入ると、TecTechの要素がさらに登場しますのでお楽しみに。", - "quests.high_voltage.hv_components.title": "HV機械部品", + "quests.high_voltage.maintenance_hatches.desc.1": "新たに2種類の&3メンテナンスハッチ&rが使えるようになりました。どちらも設置直後は&6メンテナンス不要&rなのが特徴です。\n\nまず、&3自動メンテナンスハッチ&rはとてもシンプルで、一度設置すれば&6永遠にメンテナンスが不要&rになります。\n\nもう一方の&3制御可能なメンテナンスハッチ&rは少し特殊で、設定によってレシピの処理時間を&a10%短縮&rできますが、その代償としてメンテナンスの発生が3倍の速度になります(現実時間で約&d16時間&r稼働します)。さらに、マルチブロック発電機に使うことで、レシピの動作時間を延ばして燃料効率を10%向上させることもできます。\n\n&9補足:&rメンテナンスハッチにテープを入れておくと、問題が発生しても自動で修理してくれます。", + "quests.high_voltage.maintenance_hatches.desc.2": "&l&3余談:&r&o 自動メンテナンスハッチの見た目と機能は、GregTech:New_Horizons用のアドオンMod「TecTech」から取り入れたんだ。\n\n&o終盤に入ると、TecTechの要素がさらに登場するから楽しみにしておいてね。", + "quests.high_voltage.hv_components.title": "HVコンポーネント", "quests.high_voltage.hv_components.subtitle": "ただの中間素材だと油断できなくなってきました", - "quests.high_voltage.hv_components.desc.1": "&bMV&rのときと同じように、また上位の機械部品を作る必要があります。\n\nこれまでは&d傷のない宝石&rを使っていましたが、今度は&dガラス化したエンダーパール&rを使います。&aモーター&rには&d2倍銀ケーブルが2本&r必要になります。\n&aマシン筐体&rや&a各種機械&rなどには&d金ケーブル&rが必要になります。\n\nようやく、貯め込んでいた金の使い道ができましたね!", + "quests.high_voltage.hv_components.desc.1": "&bMV&rのときと同じように、また上位のコンポーネントを作る必要があります。\n\nこれまでは&d傷のない宝石&rを使っていましたが、今度は&dガラス化したエンダーパール&rを使います。&aモーター&rには&d2倍銀ケーブルが2本&r必要になります。\n&aマシン筐体&rや&a各種機械&rなどには&d金ケーブル&rが必要になります。\n\nようやく、貯め込んでいた金の使い道ができましたね!", "quests.high_voltage.hv_components.desc.2": "&9&l暮らしの知恵:&r\n\n-&dエレクトロチン&rを分解したり、&d鉱石処理&rを行うことで&eエレクトラム&rを効率よく入手できます。\n-&3化学槽&rで&d水銀&rを使えば、さまざまな鉱石から&e金&rや&e銀&rを抽出できるのでとても便利です。", "quests.high_voltage.assembler.title": "HV組立機", "quests.high_voltage.assembler.desc": "&3発展型組立機II&rは、技術の発展のために欠かせない重要な機械です。いくつかの便利な装置や機能もアンロックされるので、このクエスト周辺もチェックしてみてください。\n\n&dロケット&rの製作にも、&6HV組立機&rが必須になります。", @@ -2227,7 +2301,7 @@ "quests.high_voltage.cleanroom.title": "クリーンルーム", "quests.high_voltage.cleanroom.subtitle": "あなたは白い部屋が好きですか?", "quests.high_voltage.cleanroom.desc.1": "&3クリーンルーム&rは、内部の空間を清潔に保つマルチブロックです。これから先、ほとんどの&a回路関連レシピ&rや、&3核融合炉マシン外装&rなどの特殊なブロックは、クリーンルームの中でしか作れなくなります。\n\n建設には大量の&dプラスクリート&rや&dクリーンルームガラス&rが必要になるため、&aポリエチレン&rの量産体制を整える必要があります。\n\n最初は5x5x5の基本的なクリーンルームから始めましょう。窮屈に感じ始めたら、どんどん拡張していけばいいのです。", - "quests.high_voltage.cleanroom.desc.2": "&l&3設定資料:&r&oクリーンルームの仕組みはGT5から引き継がれたものなんだけど、その頃は今よりもずっと大変な仕様だったんだ。清潔度に関係なくクラフトはできたんだけど、クリーンルームの清浄度に比例して完成確率が変わってたから、ちゃんとしてないとアイテムが消えたりしたんだよ!\n\n&oあと、クリーンルームにメンテナンスされてないと清潔度の上限が90%に制限されるから、いつのまにか10%の確率で成果物が消えるようになったりしてたんだ。理不尽だね。\n\n&oGTCEu版のクリーンルームなら、アイテムが&6消失&fすることはまずないから安心してね。", + "quests.high_voltage.cleanroom.desc.2": "&l&3余談:&r&oクリーンルームの仕組みはGT5から引き継がれたものなんだけど、その頃は今よりもずっと大変な仕様だったんだ。清潔度に関係なくクラフトはできたんだけど、クリーンルームの清浄度に比例して完成確率が変わってたから、ちゃんとしてないとアイテムが消えたりしたんだよ!\n\n&oあと、クリーンルームにメンテナンスされてないと清潔度の上限が90%に制限されるから、いつのまにか10%の確率で成果物が消えるようになったりしてたんだ。理不尽だね。\n\n&oGTCEu版のクリーンルームなら、アイテムが&6消失&fすることはまずないから安心してね。", "quests.high_voltage.prospector.title": "発展型電動探知機", "quests.high_voltage.prospector.desc.1": "この探知機は、&7LV&r版よりも&6探知範囲が広がっています&r。さらに、新しい機能も追加されています。\n\n探知機を手に持った状態でスニーク右クリックすると、モードが&6液体鉱脈モード&rに変わります。このモードでは液体鉱脈の&d埋蔵量&rが表示されます。\n\n月で&9ヘリウム3&rや&9岩盤鉱脈&rを見つけるときなどにも非常に役立ってくれるでしょう。", "quests.high_voltage.prospector.desc.2": "&9注意:&r &3液体採掘機&rの出力量は鉱脈の「埋蔵量」に比例します。最終的に、出力はCEuコンフィグのデフォルトの量になります。\n\n&9Tips:&r埋蔵量が30%以下になった場合、電力効率を考えて採取場所を移した方が良いですよ。また&5EV&rから使うことができる&3発展型液体採掘機&rを目標にするのも良いでしょう。これにより出力が超大幅に増加し、鉱脈の消耗速度も低下します。\n\n&c注意:&rバグにより、探鉱機の表示が1チャンクずれることがあります。液体鉱脈の端で液体採掘機を稼働するのは避けてください。狙っていない液体を汲み上げてしまうかもしれません!", @@ -2238,7 +2312,7 @@ "quests.high_voltage.ptfe.subtitle": "またの名をテフロン", "quests.high_voltage.ptfe.desc": "&aポリテトラフルオロエチレン(通称:PTFE)&rは、&7炭素&rと&bフッ素&rからなる高分子化合物です。PVCと同様に、PTFEはプラスチック製回路基板などの製作効率を向上させる用途に使えます。現在では、&3大型化学反応炉&rの素材としても使用されています。\n\nこの生成過程では&3塩素&rも要求されていますが、生成される&a塩化水素&rを電解すれば、&6完全にループ&rさせることができます。\n\n&bフッ素&rは、今後&aウラン&rや&7ナクアダ&rの精製にも使います。\n\n&9Tips:&rこれ以降は、ポリマー類は&dインゴット&rの形で保管しておくのがおすすめです。&3押出機&rを使って、簡単に成形できます。", "quests.high_voltage.nitrobenzene.title": "ニトロベンゼン", - "quests.high_voltage.nitrobenzene.desc": "&aニトロベンゼン&rを作ると、&aベンゼン&rの燃料価が約&64倍&rに向上します。素晴らしいですね。\n\nただし、作るのには&d蒸留水&rが必要で、&d硫黄&rを消費します。", + "quests.high_voltage.nitrobenzene.desc": "&aニトロベンゼン&rを作ると、&aベンゼン&rの燃料価が約&64倍&rに向上します。素晴らしいですね。\n\nただし、作るには&d蒸留水&rが必要で、&d硫黄&rを消費します。", "quests.high_voltage.lcr.title": "大型化学反応炉", "quests.high_voltage.lcr.desc.1": "&3大型化学反応炉(通称:LCR)&rは、通常の&3化学反応器&rの大型機械であり、より多くの搬入・搬出スロットを備えています。外装にはPTFE(テフロン)が使われており、これによって通常の化学反応器では扱えないレシピも処理できます。\n\n&3LCR&rでは、一部の&3化学反応器&rのレシピを&6一気に処理することができます&r。以下がその例です:\n\n&9-&r&a二酸化窒素&r(硝酸や四酸化二窒素の製造用)\n&9-&r&a硫酸&r\n&9-&r&aフェノール&r\n&9-&r&aエピクロロヒドリン&r(エポキシ樹脂の製造に必要)\n&9-&r&aエポキシ&r", "quests.high_voltage.lcr.desc.2": "&3LCR&rには専用レシピも存在します。たとえば、&d直留ガソリン&rはLCRでしか作ることができません。\n\nLCRの&dオーバークロック&rは完全に&6100%効率&r、いわゆる「パーフェクトオーバークロック」(POC)です。つまり、各段階で処理速度が&54倍&rずつ向上していきます(通常は2倍です)。\n\nさらにもう一つの&6利点&rとして、&32基のエネルギーハッチ&rを取り付けることで、&5上位電圧&rのレシピを利用できるようになります。これは&3EBF&rと同様の仕組みです。", @@ -2285,7 +2359,7 @@ "quests.high_voltage.ev_circuits.desc": "こんな見た目の回路は見たことがないでしょう。&bMV&rの時点でも作ることはできますが、&aさすがに作るには早いです&r。\n\nHVに入ってから作りましょう。", "quests.high_voltage.hv_hull.title": "HVへようこそ!", "quests.high_voltage.hv_hull.subtitle": "偉大な一歩を踏み出そう", - "quests.high_voltage.hv_hull.desc.1": "そろそろ&2&9GregTech&rに慣れてきましたか?ここからは、より一層できることが増えていきます。\nこの章では、&e高度なマルチブロック&rや&e複雑な工程&rを扱い、そしてついに&f月&rへと向かう準備を始めます!\n\n&6この章の主な目標は以下の2つです:&r\n-&5EV&rマシン筐体を作ること\n-&f月&rへの冒険を始めること\n\n月へ到達すると、&bケルタスクォーツ&rが採掘できるようになり、&dAE2&rの要素が解禁されます。どちら目指すのも自由です。", + "quests.high_voltage.hv_hull.desc.1": "そろそろ&2&9GregTech&rに慣れてきましたか?ここからは、より一層できることが増えていきます。\nこの章では、&e高度なマルチブロック&rや&e複雑な工程&rを扱い、そしてついに&f月&rへと向かう準備を始めます!\n\n&6この章の主な目標は以下の2つです:&r\n-&5EV&rマシン筐体を作ること\n-&f月&rへの冒険を始めること\n\n月へ到達すると、&bケルタスクォーツ&rが採掘できるようになり、&dAE2&rの要素が解禁されます。どちらを目指すのも自由です。", "quests.high_voltage.hv_hull.desc.2": "&5EV&rマシン筐体を作るためには、次の準備が必要です:\n-&aクリーンルーム&rを建造する\n-熱いインゴットを冷やすための&b真空冷却機&rを用意する\n-&9ルチル&rを加工して&7チタン&rを精製する\n\n&f月&rでは&9ルチル&rが豊富に見つかりますが、&aオーバーワールド&rの&eボーキサイト&r鉱脈などからも多少は入手可能です。", "quests.high_voltage.hv_hull.desc.3": "月に行くためには、以下の工程を踏みましょう:\n-大量の&6ロケット合金&rを用意する\n-&8内破圧縮機&rと&3熱分解炉&rで、&eエンダーパール&rを加工する\n- 宇宙空間で&b生存できる&rように、必要な&b宇宙服&rを揃える\n\n&b真空冷却機&rや&6上位のコイル&rを使えば&6ロケット合金&rの製造速度を上げられますが、なくても問題はありません。\n\n&dさあ、自分の進む道を選びましょう!&r", "quests.high_voltage.nichrome.title": "ニクロムインゴット", @@ -2293,7 +2367,7 @@ "quests.high_voltage.nichrome.desc": "これは3番目の&6EBF&rコイルの素材です。\nこれまでと同じく&9128個のインゴット&rが必要です。\n冷却には&6化学槽&rではなく、&6真空冷却機&rを使わなければなりません。真空冷却機なら冷却処理をより効率的に行うことができます。\n\n今回は&6ニクロム&rのみを使ってコイルを作りますが、この素材は後の&5RTMコイル&rの製作でも再び必要になりますので覚えておきましょう。", "quests.high_voltage.rocket_t1.title": "月面探査用ロケット", "quests.high_voltage.rocket_t1.subtitle": "ロケットで突き抜けろ!", - "quests.high_voltage.rocket_t1.desc": "さあ、ついに念願の&6ロケット&rの完成です!\n\n機体は全て&d8ロケット合金&rで構築し、断熱材として&b2304mb&rの&b液化ケイ素&r(&b16インゴット分&r)と16個の&fガラス化した粉末&rが必要です。\n\nガラス化した粉末は2種類あります:\n&e-&r&eホウ素ケイ酸ガラスの粉&r—&6ミキサー&rで&dホウ素&rと&fガラスの粉&rを混ぜる\n\n&e-&r&5ガラス化した石綿&r—&6熱分解炉&rで石綿を加熱。\n\nどちらを選んでも構いません。作りやすい方をどうぞ。", + "quests.high_voltage.rocket_t1.desc": "さあ、ついに念願の&6ロケット&rの完成です!\n\n機体は全て&dロケット合金&rで構築し、断熱材として&b2304mb&rの&b液化ケイ素&r(&b16インゴット分&r)と16個の&fガラス化した粉末&rが必要です。\n\nガラス化した粉末は2種類あります:\n&e-&r&eホウ素ケイ酸ガラスの粉&r—&6ミキサー&rで&dホウ素&rと&fガラスの粉&rを混ぜる\n\n&e-&r&5ガラス化した石綿&r—&6熱分解炉&rで石綿を加熱。\n\nどちらを選んでも構いません。作りやすい方をどうぞ。", "quests.high_voltage.vitrified_pearl.title": "ガラス化したエンダーパール", "quests.high_voltage.vitrified_pearl.subtitle": "死んだような目", "quests.high_voltage.vitrified_pearl.desc": "エンダーパールといくつかの素材を&e熱分解炉&rに入れて加熱し、&3陶器&rのようにガラス化させましょう。\n\n今はまだ大量に作る必要はありません。最低限、&6ロケット&r用に1つと、&6発展型回路作成機II&r用にもう1つあれば十分です。\nただし、&5EV&r以降では需要が一気に増えていきます。", @@ -2306,7 +2380,7 @@ "quests.high_voltage.linked_quest_energy.task": "Have a look at the Energy Chapter", "quests.high_voltage.ev_machine_hull.title": "&5EV&rマシン筐体", "quests.high_voltage.ev_machine_hull.subtitle": "GregTechの中間地点", - "quests.high_voltage.ev_machine_hull.desc": "いやぁ、ここまで大変でしたね!&9ルチル&r処理ライン、&5真空冷却機&r、&5クリーンルーム&rなどの運用を通して、GregTechをかなり理解してきたことでしょう。\n\nいや本当に素晴らしいですね...というのも、実はここはまだModPackにおける中間地点にすぎないのです。\n\n&f月&rには行きましたか?まだなら、それを目指しましょう。今後の進行に欠かせない&d重要な仕組み&rを学べるほか、、&aより豊富な鉱脈&rを掘り出せるようになり、なにより&bAE2&rが解放されます。\n\nもしすでに月へ到達しているなら、インフラの整備にも注力しましょう。これから&5EV&r段階へと突入し、&7さらなる知識&rを学び、工場を次のレベルへ押し上げる時が来ます。", + "quests.high_voltage.ev_machine_hull.desc": "いやぁ、ここまで大変でしたね!&9ルチル&r処理ライン、&5真空冷却機&r、&5クリーンルーム&rなどの運用を通して、GregTechをかなり理解してきたことでしょう。\n\nいや本当に素晴らしいですね...というのも、実はここはまだModPackにおける中間地点にすぎないのです。\n\n&f月&rには行きましたか?まだなら、それを目指しましょう。今後の進行に欠かせない&d重要な仕組み&rを学べるほか、&aより豊富な鉱脈&rを掘り出せるようになり、なにより&bAE2&rが解放されます。\n\nもしすでに月へ到達しているなら、インフラの整備にも注力しましょう。これから&5EV&r段階へと突入し、&7さらなる知識&rを学び、工場を次のレベルへ押し上げる時が来ます。", "quests.high_voltage.250_iq.title": "IQ250", "quests.high_voltage.250_iq.subtitle": "他のことに熱中したいでしょう", "quests.high_voltage.250_iq.desc.1": "これは、&l全種類の&r熱いインゴットに対応した自動冷却機構を作るためのガイドです。\n\n何も考えず、フィルターにそれぞれのインゴットを1つずつ手動登録する手もありますが...そんなの面倒ですよね!もっと効率的で面白いやり方を試しましょう。\n\nまず、&3化学槽&rの側面に&aアイテムタグフィルター&rカバーを取り付けます。フィルターの設定でホワイトリストを-&e&lhot_ingots&r-に設定してください。\n\nあとは、自動運搬機構を組むだけです。", @@ -2341,7 +2415,7 @@ "quests.high_voltage.gun.subtitle": "いいセンスだ", "quests.high_voltage.gun.task1": "Any gun", "quests.high_voltage.gun.task2": "Any medicine or aged alcohol", - "quests.high_voltage.gun.desc": "地球での一人暮らしは快適でしたか?月では、あなたの孤独を埋めてくれる素敵な敵対MOBたちが、あなたをお出迎えしてくれます。\n迎え撃ちましょう。ただし、剣やジャベリンでは心もとないですよ。\n\nご想像の通り、&4月はとても危険な場所です&r。せっかくのロケットを失わないためには何が必要だと思いますか?\n\n&o\"Clockwork\"Sniper&rなどがおすすめです。弾薬を用意し、余裕があればアタッチメントでカスタマイズしてみても良いでしょう。\n\nさらに、活力を付けるための栄養満点な食事(フリーズドライ食品など)や、バフ・回復用のお薬やお酒も携帯していると安心できます。", + "quests.high_voltage.gun.desc": "地球での一人暮らしは快適でしたか?月では、あなたの孤独を埋めてくれる素敵な敵対モブたちが、あなたをお出迎えしてくれます。\n迎え撃ちましょう。ただし、剣やジャベリンでは心もとないですよ。\n\nご想像の通り、&4月はとても危険な場所です&r。せっかくのロケットを失わないためには何が必要だと思いますか?\n\n&o\"Clockwork\"Sniper&rなどがおすすめです。弾薬を用意し、余裕があればアタッチメントでカスタマイズしてみても良いでしょう。\n\nさらに、活力を付けるための栄養満点な食事(フリーズドライ食品など)や、バフ・回復用のお薬やお酒も携帯していると安心できます。", "quests.high_voltage.space_survival.title": "月面基地", "quests.high_voltage.space_survival.subtitle": "別荘", "quests.high_voltage.space_survival.desc": "まだ見ていないなら、ぜひ「&3宇宙のあるきかた&r」の章を確認しておきましょう!月で本格的な拠点を築くために必要なすべてがそこに掲載されています。", @@ -2386,7 +2460,7 @@ "quests.low_voltage.lv_age_progression.task": "I... might have some sense of direction now", "quests.low_voltage.lv_steam_turbine.title": "蒸気タービン発電", "quests.low_voltage.lv_steam_turbine.subtitle": "タービンを回すんだ", - "quests.low_voltage.lv_steam_turbine.desc.1": "&3蒸気タービン発電機&rは、&7LV&rでは数少ない実用的な発電機の一つです。\n&2将来的には&r、天然ガスや石油を利用した、より高度な発電方法も使えるようになります。\n\nスチームを供給すると、この発電機は&d蒸気2mbにつき1EU&rの比率で発電してくれます。", + "quests.low_voltage.lv_steam_turbine.desc.1": "&3蒸気タービン発電機&rは、&7LV&rでは数少ない実用的な発電機の一つです。\n&2将来的には&r、天然ガスや石油を利用した、より高度な発電方法も使えるようになります。\n\n蒸気を供給すると、この発電機は&d蒸気2mbにつき1EU&rの比率で発電してくれます。", "quests.low_voltage.lv_steam_turbine.desc.2": "&3蒸気タービン&rを1基だけ使う場合は、電力の輸送は&a1倍錫ケーブル&rを使えば問題ありません。\nただし、&32基の蒸気タービン&rに増設したときは、&a2倍錫ケーブル&rを使う必要があります。そうしないと、ケーブルが&c過電流により焼けてしまう&rかもしれません\n\nこれは&9アンペア(電流量)&rという仕組みが関係していますが、そのあたりの詳しい説明はもう少し後で行います。\nまずは安心してプレイを楽しんでください!", "quests.low_voltage.lbb.title": "ブロンズ製大型ボイラー", "quests.low_voltage.lbb.subtitle": "蒸気時代が終わるとどうなる? 知らんのか 蒸気時代が始まる", @@ -2418,7 +2492,7 @@ "quests.low_voltage.lv_turbo_charge.desc": "&oこのクエストは進行に必須ではありません。快適な充電に興味のある人は参考にしてください。&r\n\n&3高速充電器&rは、&9ドリル&rなどの&6電力(RFやEU)&rを使うツールを非常に高速で充電できる装置です。\n\n1つのアイテムにつき最大4アンペアで充電することができるため、&3蓄電器&rなどの&6約2倍のスピード&rで充電できます。\nただし、蓄めた電力は、他の機械を動かすためには使えません!\n\n&eどの充電器でも&rこのクエストは達成できます。", "quests.low_voltage.lv_turbo_charge.task": "Any Turbo Charger will do", "quests.low_voltage.lv_fisher.title": "魚釣り機", - "quests.low_voltage.lv_fisher.subtitle": "TFC対応も抜群!", + "quests.low_voltage.lv_fisher.subtitle": "魚と糸の等価交換", "quests.low_voltage.lv_fisher.desc": "&oこのクエストは進行に必須ではありません。快適な食料供給に興味のある人は参考にしてください。&r\n\n&3魚釣り機&rは、水の上で稼働させると自動的に魚を釣ってくれる機械です。具体的には真下に5×5の水域がないと動作しません。\n出てくる内容は通常の釣りと同じで、1回の動作ごとに糸を1本と、そのTierに応じたEU(&7LV&rなら32EU)を消費します。使い道としてはそれくらいです。\n\n魚からは&e魚油&rを抽出することができるため、&6バイオディーゼル&rの原料としても利用できます。", "quests.low_voltage.lv_fisher.task": "Any Fisher will do", "quests.low_voltage.lv_rock_crusher.title": "破砕機", @@ -2518,7 +2592,7 @@ "quests.low_voltage.lv_electroliser.desc.2": "&l鉱石処理の用途:&r\n\nさて、これは厳密には鉱石処理に使用されるわけではなく、実際には&a粉の分解&rに使用されます。ただし、有用な電解レシピのほとんどは&bMV&rで解禁されます。\nアイテムのツールチップにある&e分子式&rを見れば、電解によって何が得られるかがわかります。", "quests.low_voltage.lv_electroliser.desc.3": "&c注意:&r粉末を直接インゴットに精錬すると、電解するよりも金属の収量が多くなることがあります。しかし、その場合は粉末に含まれる他の副産物を失うことになります。主産物を優先するか、副産物を重視するかに応じて各自で対応してください", "quests.low_voltage.lv_mixer.title": "基本型ミキサー", - "quests.low_voltage.lv_mixer.subtitle": "混ぜる", + "quests.low_voltage.lv_mixer.subtitle": "混合、撹拌", "quests.low_voltage.lv_mixer.desc": "ミキサーを使うと、赤鋼・青鋼の製造が&6格段に速く&rなります。特に、&4赤鋼&rは機械の筐体に使うので、かなり有用な生産手段になるでしょう。\nもし、今は必要ないと思っていても、後々&6必須&rになってきます。", "quests.low_voltage.lv_mixer.task": "From Create or GregTech", "quests.low_voltage.soldering_alloy.title": "はんだ合金", @@ -2526,10 +2600,10 @@ "quests.low_voltage.soldering_alloy.desc": "&aはんだ合金&rは、基本的に&9液体&rの状態で使います。回路を作るレシピで、錫の&d代用品&rとして使うことが多いです。\n\nどちらを選ぶかはあなた次第です。材料を節約したいならはんだ合金を作り、作る手間を減らしたいなら錫を使うのがオススメです。", "quests.low_voltage.gallium_arsenide.title": "ヒ化ガリウム", "quests.low_voltage.gallium_arsenide.subtitle": "副産物の産物", - "quests.low_voltage.gallium_arsenide.desc": "今後、多くの素材は鉱石から直接精錬して取得することができなくなります。代わりに、他の鉱石を処理したときの副産物として手に入ります。ガリウムやヒ素はその&4代表例&rです。\n\n&dガリウム&rを入手する手段は、難易度と収量から考えて、低効率なものから順に以下の通りです:\n\n&9-&3最も効率が悪い手段は、&a閃亜鉛鉱&rを&3電解&rして、低確率で粉を入手する方法です。この方法は亜鉛の収量を減らしてしまいます。\n\n&9-&r次に&a砕いたボーキサイト&rを&3化学槽&rで処理するという手段があります。この方法には&9過硫酸ナトリウム&rが必要になります。\n\n&9-&r最適な手段として&a閃亜鉛鉱&rの鉱石処理の中で&3熱遠心分離機&rまたは&3遠心分離機&rを使い、副産物として入手するという方法があります。\n\n&dヒ素&rについては、&a鶏冠石の粉&rを&3遠心分離&rするか、&a輝コバルト鉱&rをEBFにかける方法があります。", + "quests.low_voltage.gallium_arsenide.desc": "今後、多くの素材は鉱石を精錬するだけでは取得できなくなります。代わりに、他の鉱石を処理したときの副産物として手に入ります。ガリウムやヒ素はその&4代表例&rです。\n\n&dガリウム&rを入手する手段は、難易度と収量から考えて、低効率なものから順に以下の通りです:\n\n&9-&3最も効率が悪い手段は、&a閃亜鉛鉱&rを&3電解&rして、低確率で粉を入手する方法です。この方法は亜鉛の収量を減らしてしまいます。\n\n&9-&r次に&a砕いたボーキサイト&rを&3化学槽&rで処理するという手段があります。この方法には&9過硫酸ナトリウム&rが必要になります。\n\n&9-&r最適な手段として&a閃亜鉛鉱&rの鉱石処理の中で&3熱遠心分離機&rまたは&3遠心分離機&rを使い、副産物として入手するという方法があります。\n\n&dヒ素&rについては、&a鶏冠石の粉&rを&3遠心分離&rするか、&a輝コバルト鉱&rをEBFにかける方法があります。", "quests.low_voltage.lv_assembler.title": "基本型組立機", "quests.low_voltage.lv_assembler.subtitle": "真のクラフター", - "quests.low_voltage.lv_assembler.desc.1": "この機械は進行においてとても重要なものですが、他の機械と比べて&c作成コストが高いです&r。\n組立機を使ったほとんどのレシピでは&c液体&rを扱います。、要求される液体や素材がそろってから運用するのがよいでしょう。\n\nともあれ、&3組立機&rはGregを進めるにおいて極めて重要な機械です。マイクラにおける作業台と同じくらい重要な存在だと考えてください。ただし、必要なのは木材4つではなく回路4つですがね。", + "quests.low_voltage.lv_assembler.desc.1": "この機械は進行においてとても重要なものですが、他の機械と比べて&c作成コストが高いです&r。\n組立機を使ったほとんどのレシピでは&c液体&rを扱います。要求される液体や素材がそろってから運用するのがよいでしょう。\n\nともあれ、&3組立機&rはGregを進めるにおいて極めて重要な機械です。マイクラにおける作業台と同じくらい重要な存在だと考えてください。ただし、必要なのは木材4つではなく回路4つですがね。", "quests.low_voltage.lv_assembler.desc.2": "十分に資材や設備が整っていれば、次のようなアイテムをより効率よく作れるようになります:\n\n-&6真空管&r:以前の2倍以上の効率で製作できます。\n\n&9-&r抵抗器:1回のクラフトで4個も作れます。\n\n-&6樹脂プリント基板&r:使用する銅の量を大幅に削減できます。\n\nたまりませんね!\n\n&l&3余談:&r&o昔のGregTech2の時代だと、組立機はスロットがたった2つしかなくて、主に回路の代替品や筐体のレシピにしか使われなかったんだよ。ずいぶんと成長したね。", "quests.low_voltage.lv_assembler.task": "Basic Assembler", "quests.low_voltage.t2_circuit_board.subtitle": "素敵な木の基板", @@ -2543,7 +2617,7 @@ "quests.low_voltage.1_mv_circuit.desc": "さて、アルミニウムインゴットは持っていますか?\n\nGregTechには、それぞれの段階に対応する回路があります。\n「改良型電子回路」は、3種類ある&bMV&r回路のうち、&d最初に作れるMV回路&rです。\n\n回路をもっと安く作るために、新しいティアの&2回路作成機&rを作り、新たなレシピを解禁しましょう。MV回路があれば初めての回路作成機を作ることができます!デプロイヤーよりもよっぽど優秀ですよ。\n\n&6この回路とアルミニウムがあれば、ついにMV機械をつくることができます。&r\n\nもしGregTechの回路システムが複雑すぎて混乱しているなら、「&6進捗表&r」の章を参考にすると良いでしょう。", "quests.low_voltage.lv_circuit_assembler.title": "回路作成機", "quests.low_voltage.lv_circuit_assembler.subtitle": "LVからの出口", - "quests.low_voltage.lv_circuit_assembler.desc.1": "これからは、すべての回路を&3回路作成機&rで作るようにしましょう。&6LVやMV回路を簡単に&r作れるようになります。\n\n&3回路作成機&rを新しいティアにアップグレードするたびに、より&d高性能な種類の回路&rを作れるようになります。必要な素材は&c複雑な&rものや&m少し貴重な&rものもありますが、全体的に制作効率が良くなります。", + "quests.low_voltage.lv_circuit_assembler.desc.1": "これからは、すべての回路を&3回路作成機&rで作るようにしましょう。&6LVやMV回路を簡単に&r作れるようになります。\n\n&3回路作成機&rを新しいティアにアップグレードするたびに、より&d高性能な種類の回路&rを作れるようになります。必要な素材は&c複雑な&rものや&m少し&r珍しいものもありますが、全体的に制作効率が良くなります。", "quests.low_voltage.lv_circuit_assembler.desc.2": "&l&3余談:&r&o回路作成機は、歴代のGregTechで登場したり姿を消したりしてたんだ。GT5では登場せず、GT5Unofficialで再び追加された。GTCEでは見送られて、GTCEuではまた登場して...神出鬼没だね。", "quests.low_voltage.lv_greenhouse.title": "電気温室", "quests.low_voltage.lv_greenhouse.subtitle": "KubeJSは全てを解決する", @@ -2570,7 +2644,7 @@ "quests.low_voltage.lv_oxygen.title": "酸素の入手経路", "quests.low_voltage.lv_oxygen.subtitle": "酸素が足りてない方へ", "quests.low_voltage.lv_oxygen.desc.1": "酸素の入手経路は非常に多岐にわたり、効率の良いレシピを探そうとEMIを延々と眺めているうちに、&o&e天寿を全うしてしまうかもしれません。&r実際、さまざまな鉱石から電解によって酸素を得ることができます。\n\nクエストブックになにか情報が載っていればいいんですけどねえ...", - "quests.low_voltage.lv_oxygen.desc.2": "というわけで、用意しておいたのがこちらになります。\n\n私たちが最もおすすめする方法は、&dガス収集機&rで集めた&ac空気を遠心分離&rすることです。\nこの方法では同時に&a窒素&rも得られるため、&3EBF&rでのいくつかのレシピの高速化に使えます。ただし、まだガス収集機を作れない場合もあるかもしれません。\n\n次に効率が良い方法は&a二酸化ケイ素を電解&rすることです。二酸化ケイ素は、ガラス粉末や様々な石の粉末から入手できます。\nこの方法については後ほど&6詳しく紹介&rします。&6神&rといっても差し支えないほど素晴らしい方法ですよ!", + "quests.low_voltage.lv_oxygen.desc.2": "というわけで、用意しておいたのがこちらになります。\n\n私たちが最もおすすめする方法は、&dガス収集機&rで集めた&a空気を遠心分離&rすることです。\nこの方法では同時に&a窒素&rも得られるため、&3EBF&rでのいくつかのレシピの高速化に使えます。ただし、まだガス収集機を作れない場合もあるかもしれません。\n\n次に効率が良い方法は&a二酸化ケイ素を電解&rすることです。二酸化ケイ素は、ガラス粉末や様々な石の粉末から入手できます。\nこの方法については後ほど&6詳しく紹介&rします。&6神&rといっても差し支えないほど素晴らしい方法ですよ!", "quests.low_voltage.lv_oxygen.desc.3": "3番目に良い方法は&a水を電解&rすることです。水の電解は電力コストが高いため、&a水素の生成&rに適しています。\n&4この方法は酸素の主要な供給源にはなりません&r、あくまで&1水素&rの確保がメインです。水素の作り方については後ほど詳しく説明します。\n\n4番目に良い方法は&aコツコツ貯めておく&rことです!酸素は様々なクラフトで副産物としてでてくるので、タンクに保管しておきましょう。\n\n&e補足:&rクエストをクリアするには、この液体が入った&l任意の&rタンクをインベントリに入れます。バケツでも構いません。", "quests.low_voltage.lv_oxygen.task": "Oxygen", "quests.low_voltage.lv_nitrogen.title": "窒素", @@ -2579,7 +2653,7 @@ "quests.low_voltage.lv_nitrogen.task": "Nitrogen", "quests.low_voltage.lv_arc_furnace.title": "アーク炉", "quests.low_voltage.lv_arc_furnace.subtitle": "恐竜を飼いならそう!", - "quests.low_voltage.lv_arc_furnace.desc.1": "&3アーク炉&rは、少量の&9酸素&rを使用して、通常のかまどとは異なる方法でアイテムを精錬します。\n\nこれを使うことで、より簡単に&a錬鉄&rを作れたり、&aガラス&rを2倍多く作れたり、電子部品の大量確保のための&aなまし銅&rを精錬することができます。\nさらに、&4赤鋼&rや&1青鋼&rインゴットをさらに簡単に作ることができるようになります!\n\nまた、さまざまな部品や機械を元の素材へ分解して再利用することも可能です。", + "quests.low_voltage.lv_arc_furnace.desc.1": "&3アーク炉&rは、少量の&9酸素&rを使用して、通常のかまどとは異なる方法でアイテムを精錬します。\n\nこれを使うことで、より簡単に&a錬鉄&rを作れたり、&aガラス&rを2倍多く作れたり、電子部品の大量確保のための&aなまし銅&rを精錬することができます。\n\nまた、さまざまな部品や機械を元の素材へ分解して再利用することも可能です。", "quests.low_voltage.lv_arc_furnace.desc.2": "&l&3余談:&r&o以前のGregTechには、アーク炉と&bプラズマアーク炉&fの2種類があったんだ。でも「これは一つの機械にまとめてよくね?」って思ったらしくて...\n\n&oそうして、&bプラズマアーク炉&fは&4お亡くなりになりました&f。ご冥福をお祈りします。", "quests.low_voltage.lv_extractor.title": "基本型抽出機", "quests.low_voltage.lv_extractor.subtitle": "抽出?融解では?", @@ -3220,10 +3294,10 @@ "quests.space_survival.sandworm.title": "サンドワーム", "quests.space_survival.sandworm.subtitle": "SHAI-HULUD", "quests.space_survival.sandworm.desc": "砂漠であまり大きい音を立てると、&6サンドワーム&rという強敵が現れることがあります。これはボスというよりも災害に近いものであるので、遭遇してしまったら逃げましょう。\n\n頭に一定回数&b爆発ダメージ&rを与えることができれば、しばらくの間サンドワームは大人しくなります。\n\nなお、サンドワームには地形破壊能力がなく、&6プレイヤーの足音&rにのみ反応するので、他の野生生物や、乗り物、列車などに対しては反応しません。", - "quests.space_survival.spice.title": "オストラムの堆積物", + "quests.space_survival.spice.title": "オストラムが混じった砂", "quests.space_survival.spice.subtitle": "とても見つけにくいアイテム", - "quests.space_survival.spice.desc": "火星砂漠バイオームには、&dオストラムの堆積物&rという回収不可ブロックが存在します。これらは小さな塊として砂漠に生成されます。破壊することは可能なので、坂などに生成されていても、オストラムハーベスターを設置するための場所は確保できます。望遠鏡があれば、探しやすくなります。\n\nまた、オストラムを利用するには、手に入れたオストラムを拠点に持ち帰るための手段も確保する必要があります。\n\nオストラムは&5EV&r時代に必要となる資源であるほか、核分裂炉の稼働にも必要です。", - "quests.space_survival.spice.task": "オストラムの堆積物を見つける", + "quests.space_survival.spice.desc": "火星砂漠バイオームには、&dオストラムが混じった砂&rという回収不可ブロックが存在します。これらは小さな塊として砂漠に生成されます。破壊することは可能なので、坂などに生成されていても、オストラムハーベスターを設置するための場所は確保できます。望遠鏡があれば、探しやすくなります。\n\nまた、オストラムを利用するには、手に入れたオストラムを拠点に持ち帰るための手段も確保する必要があります。\n\nオストラムは&5EV&r時代に必要となる資源であるほか、核分裂炉の稼働にも必要です。", + "quests.space_survival.spice.task": "オストラムが混じった砂を見つける", "quests.space_survival.mars_islands.title": "火星の森", "quests.space_survival.mars_islands.subtitle": "きょ、恐竜!?", "quests.space_survival.mars_islands.desc": "砂漠に覆われた火星には、時折小さなオアシスが存在しており、そこには生物や木々が見られます。拠点を作るのであれば、ここに作るとよいでしょう。砂漠よりもずっと生活しやすいです。", @@ -3248,10 +3322,10 @@ "quests.space_survival.t2_space_suit.desc": "この宇宙服があれば、&b極低温&r、&c極高温&rのいずれにも対応できます。さもなくば、&6金星&rや&5水星&rでは、足を踏み入れた途端に死んでしまうでしょう。\n\nちなみに、防御力と酸素の容量も上昇しています。", "quests.space_survival.mars_tapping.title": "赤い樹液と歪んだ樹液", "quests.space_survival.mars_tapping.subtitle": "樹液集めはお好き?", - "quests.space_survival.mars_tapping.desc": "真紅のキノコ、歪んだキノコからは、それぞれ専用の樹液が得られます。\n\n&9イオジン&rを作るには、両方の樹液が必要です。ただし、両者は多くの場合別々の場所に生えているため、ある程度探索も必要になるでしょう。真紅のキノコは主に東側で、歪んだキノコは西側でみられます。\n\nちなみに、樹液はGregtechのパイプでも集めることができます。\n\n&9おまけ:&r真紅のキノコからはカヌーを、歪んだキノコからはボートやスループを作成することができます。", - "quests.space_survival.iodine.title": "イオジン", + "quests.space_survival.mars_tapping.desc": "真紅のキノコ、歪んだキノコからは、それぞれ専用の樹液が得られます。\n\n&9ヨウ素&rを作るには、両方の樹液が必要です。ただし、両者は多くの場合別々の場所に生えているため、ある程度探索も必要になるでしょう。真紅のキノコは主に東側で、歪んだキノコは西側でみられます。\n\nちなみに、樹液はGregtechのパイプでも集めることができます。\n\n&9おまけ:&r真紅のキノコからはカヌーを、歪んだキノコからはボートやスループを作成することができます。", + "quests.space_survival.iodine.title": "ヨウ素", "quests.space_survival.iodine.subtitle": "キノコ化学のはじまり", - "quests.space_survival.iodine.desc": "歪んだキノコ、真紅のキノコの樹液を混ぜたものに、火星の大気を蒸留して得られるクリプトンを加え、それを核分裂炉の熱で熱することにより、イオジンを手に入れることができます。\n\nこの加工には時間がかかりますが、使用量は多くないので心配ご無用。Ad Astraをさらに進めれば、もっと簡単にイオジンを作れるようになります。", + "quests.space_survival.iodine.desc": "歪んだキノコ、真紅のキノコの樹液を混ぜたものに、火星の大気を蒸留して得られるクリプトンを加え、それを核分裂炉の熱で熱することにより、ヨウ素を手に入れることができます。\n\nこの加工には時間がかかりますが、使用量は多くないので心配ご無用。Ad Astraをさらに進めれば、もっと簡単にヨウ素を作れるようになります。", "quests.space_survival.mars_crops.title": "火星の植物", "quests.space_survival.mars_crops.subtitle": "こんなもので栄養を!?", "quests.space_survival.mars_crops.desc": "火星では6種の新たな作物が手に入ります。うち3種は果物、2種は野菜、1種は穀物です。地球上の作物と同様の栄養素が含まれており、同様の料理を作ることができます。\n\n一部の作物は生で食べると毒があるため、必ず調理してから食べましょう。\n\n詳しい育て方については、ガイドを参照してください。FirmalifeやGregtechの温室でも栽培することができます。", @@ -3400,7 +3474,7 @@ "quests.steam_age.rock_crusher.desc": "高圧蒸気式破砕機は一ブロックの丸石生産機です。岩または丸石を入れれば、わずかな蒸気のコストで多くの石を生成できます。\n進行には必要ないですが、レンガをたくさん作りたい場合などは、この機械が最適です。", "quests.steam_age.forge_hammer.title": "高圧蒸気式鍛造機", "quests.steam_age.forge_hammer.subtitle": "高圧蒸気式鍛造機は、鍛造をします", - "quests.steam_age.forge_hammer.desc": "この機械により、これまで鍛造が必要だった多くのレシピを任せられるようになりました!\n\n&b丸石を砂利に&r、&d砂利を砂に&r粉砕処理することもできます。それも、非常に高速に。\n\nなにより重要なこととして、&aプレート&rをより低コストに作成します:&63つのインゴットで2枚のプレートが!&rお得ですね!\n\nそれに加えて、Helve_Hammerのように、時間をかけて塊鉄を錬鉄に、銑鉄をスチールにすることができます!", + "quests.steam_age.forge_hammer.desc": "この機械により、これまで鍛造が必要だった多くのレシピを任せられるようになりました!\n\n&b丸石を砂利に&r、&d砂利を砂に&r粉砕処理することもできます。それも、非常に高速に。\n\nなにより重要なこととして、&aプレート&rをより低コストに作成できます。なんと&63つのインゴットで2枚のプレートが!&rお得ですね!\n\nそれに加えて、Helve_Hammerのように、時間をかけて塊鉄を錬鉄に、銑鉄をスチールにすることができます!", "quests.steam_age.alloy_smelter.title": "高圧蒸気式合金製錬機", "quests.steam_age.alloy_smelter.subtitle": "高圧蒸気式合金製錬機は、合金精錬をします", "quests.steam_age.alloy_smelter.desc": "&b高圧蒸気式合金製錬機&rは、まあ、合金精錬に使用されます。効率的な&6ブロンズ&r作成レシピと、近い将来、&4赤合金&rの作成に必要になります。\n\nまた、高炭素系インゴットをより効率的に作ることもできます!\n\nすべての&6蒸気時代の&r機械の中で、これは最も蒸気を消費します。蒸気がなくなった場合は、機械を&a優しく、愛をこめて&r&dソフトマレットでぶっ叩いて&rあげると、一時停止します。", @@ -3418,7 +3492,7 @@ "quests.steam_age.extractor.desc": "&3高圧蒸気式抽出機&rは、液体を抽出する性能が弱いため、&6蒸気時代&rだとまだ作れないアイテムが多くあります。", "quests.steam_age.glass_tube.title": "ガラス管", "quests.steam_age.glass_tube.subtitle": "たくさん用意しておきましょう", - "quests.steam_age.glass_tube.desc": "ガラス管はガラス吹きによって手作業で作成することもできますが、代わりに適切な金型を使用して合金製錬炉で作成する方がはるかに楽で時短になります。\n\nガラスの粉が大量に必要になります。そのためには、16枚のガラス板を一度にガラス吹きして粉砕するか、高圧蒸気式破砕機などと鍛造機を使用して大量の砂を入手し、それに少しの火打石の粉を混ぜてガラス粉に変えることができます。", + "quests.steam_age.glass_tube.desc": "ガラス管はガラス吹きによって手作業で作成することもできますが、代わりに適切な金型を使用して合金製錬炉で作成する方がはるかに楽で時短になります。\n\nガラスの粉が大量に必要になります。そのためには、16枚のガラス板を一度にガラス吹きして粉砕するのが効率的な方法です。\n\n真空管を作ってからは、破砕機と鍛造機を使って大量の砂を確保し、メカニカルミキサーで少しの火打石の粉を混ぜることでガラス粉を大量生産することができます。", "quests.steam_age.treated_planks.title": "防腐木材の板", "quests.steam_age.treated_planks.subtitle": "a.k.a防腐木材の繊維板", "quests.steam_age.treated_planks.desc": "クレオソートが残っていたらいいのですが...実は、クレオソートは防腐木材のパルプ化と、その圧縮された板を作ることにも使われるんです。\n\n&l&3余談:&r&oTerraFirmaGregの前までのバージョンだと、これがないとCreateを始められなかったんだよね!", @@ -3727,7 +3801,7 @@ "quests.tfg.capture_territory.desc": "マルチプレイをしているとき、他のプレイヤーに邪魔されないように自分の領地を確保したいと思うことがあるかもしれません。そんな時はOpen_Claimキー(デフォルトだとCtrl+M)を使ってウィンドウを開き、左クリックでチャンクを確保、右クリックで解放することができます。 ただし、これには制限があります。世界のすべてを領地にすることはできないですよ。また、Shift+左クリックでチャンクロード状態にすることもできます。Shift+右クリックで解除することができます。そして、これらは同じチーム内で共有されます。", "quests.tfg.field_guide.title": "クエストに関する重要な情報!", "quests.tfg.field_guide.subtitle": "もっといろいろ知りたいですか?", - "quests.tfg.field_guide.desc": "クエストはまだ開発中で、常に改善に努めています!特定のゲーム内の仕様に関する多くの情報は、インベントリの「本」タブからアクセスできるフィールドガイドにも記載されています。\n\nクエストですべてが説明されるわけではないので、EMIとフィールドガイドはあなたの強い味方になることを覚えておいてください。\n\n追記:この文章は日本語の時のみ表示されます。クエストの文章がおかしなところで改行されることなどで悩んでいる場合は「Better Line Break」というModを導入することをお勧めします。このModは日本語でのクエストの表示を改善してくれます", + "quests.tfg.field_guide.desc": "クエストはまだ開発中で、常に改善に努めています!特定のゲーム内の仕様に関する多くの情報は、インベントリの「本」タブからアクセスできるフィールドガイドにも記載されています。\n\nクエストですべてが説明されるわけではないので、EMIとフィールドガイドはあなたの強い味方になることを覚えておいてください。\n\n追記:この文章は日本語の時のみ表示されます。クエストの文章がおかしなところで改行されることなどで悩んでいる場合は「Better Line Break」というModを導入することをお勧めします。このModは日本語でのクエストの表示を改善してくれます。\nまた、クエストは日本語で読みたいけれど、アイテムは英語で検索したいという場合は「Untranslated Items」というModの導入をお勧めします。ツールチップに日本語名と英語名の両方が表示されるようにしてくれます。", "quests.tfg.books_again.title": "本をなくした方へ", "quests.tfg.books_again.desc": "クエストブックとフィールドガイドの本がまた欲しいですか?コピーはこのクエストで何度でももらえるので安心してください。", "quests.tfg_tips": "Tips - サバイバル", @@ -3852,7 +3926,7 @@ "quests.tfg_tips.lava_lamp.desc": "非常に耐熱性の高い金属である&9青鋼&rを使用すると、&d青鋼のランタン&rを作成できます。これには&c溶岩&rをいれることができ、永久の光源になります。\n\nただし、溶岩が入ったランタンの取り扱いには注意してください。非常に&cHOTです...&r", "quests.tfg_tips.glowstone_lamp.title": "ランタン燃料:グロウストーン", "quests.tfg_tips.glowstone_lamp.subtitle": "最高のランタン燃料", - "quests.tfg_tips.glowstone_lamp.desc": "&dグロウストーン&rを液化するには、&7LV&r以上の機械を使う必要がありますが、&lどの素材でできたランタン&でも、&6液体グロウストーン&rを入れることで永久の光源になります。\nそして、&c溶岩&rとは異なり、これは熱くありません!", + "quests.tfg_tips.glowstone_lamp.desc": "&dグロウストーン&rを液化するには、&7LV&r以上の機械を使う必要がありますが、&lどの素材でできたランタン&rでも、&6液体グロウストーン&rを入れることで永久の光源になります。\nそして、&c溶岩&rとは異なり、これは熱くありません!", "quests.tfg_tips.charcoal_pile.title": "伏せ焼き", "quests.tfg_tips.charcoal_pile.subtitle": "重要事項です", "quests.tfg_tips.charcoal_pile.desc.1": "&a伏せ焼き&rは、初期の&d木炭&rの確保法です。\n&2TFG&rで成り上がっていくには、木炭が&o大量に&r必要になります。炉での&3精錬&rと&b錬鉄&rのための&3塊鉄炉&rの稼働で特に多く要求されます。\n\nではまず、地面を掘り下げましょう。", @@ -4375,10 +4449,10 @@ "quests.tfg_tips.trowel.desc": "&4こて&rは、ホットバーにあるブロックを&bランダムに&r設置できる建築家向けのツールです。\nこては、レンガやその他の使用可能なアイテムを使用して、&5RNR_Roads&rのタイルをランダムに設置することなどに使えます。", "quests.tfg_tips.lunchbox.title": "ランチボックス", "quests.tfg_tips.lunchbox.subtitle": "ポケットの中の冷蔵庫!", - "quests.tfg_tips.lunchbox.desc": "ランチボックスには9つの食品スロットがあり、食品を保冷し、長持ちさせます。\nCooling_Lunch_Boxは通常のものよりも保存効果が強いですが、氷または冷却セルを入れておく必要があります。", + "quests.tfg_tips.lunchbox.desc": "ランチボックスには9つの食品スロットがあり、食品を保冷し、長持ちさせます。\n保冷ランチボックスは通常のものよりも保存効果が強いですが、氷または冷却用のセルを入れておく必要があります。", "quests.tfg_tips.lunchbox.task.1": "任意のランチボックス", "quests.tfg_tips.lunchbox.task.2": "任意の氷のブロック", - "quests.tfg_tips.lunchbox.task.3": "液体氷を含む任意のセル", + "quests.tfg_tips.lunchbox.task.3": "液体氷泥を含む任意のセル", "quests.tfg_tips.transportation_tips.title": "Tips - 移動手段", "quests.tfg_tips.transportation_tips.subtitle": "この世界の歩き方", "quests.tfg_tips.tools_tips.title": "Tips - ツール", @@ -4417,7 +4491,7 @@ "quests.tfg_tips.tools_tips.base_course.subtitle": "すべての道の基礎", "quests.tfg_tips.tools_tips.base_course.task": "Look at Base Course", "quests.tfg_tips.tools_tips.gravel_roads.title": "砂利道", - "quests.tfg_tips.tools_tips.gravel_roads.subtitle": "ナマステ", + "quests.tfg_tips.tools_tips.gravel_roads.subtitle": "ありきたりな道", "quests.tfg_tips.tools_tips.gravel_roads.task": "Any Gravel Road Material", "quests.tfg_tips.tools_tips.gravel_roads.desc": "これらの材料をbase_courseに使用すると、歩行速度が&b&l10%%&r&rアップする道路を作ることができます。", "quests.tfg_tips.tools_tips.brick_roads.title": "レンガ歩道", diff --git a/kubejs/assets/tfg/lang/pt_br.json b/kubejs/assets/tfg/lang/pt_br.json index a7043fe14..a8797019a 100644 --- a/kubejs/assets/tfg/lang/pt_br.json +++ b/kubejs/assets/tfg/lang/pt_br.json @@ -831,6 +831,7 @@ "ore_vein.tfg.normal_sphalerite": "Esfalerita e Pirita", "ore_vein.tfg.normal_spodumene": "Espodumena e Lepidolita", "ore_vein.tfg.normal_sulfur": "Enxofre e Pirita", + "ore_vein.tfg.normal_tarkianite": "Tarcianita e Areias Petrolíferas", "ore_vein.tfg.normal_tetrahedrite": "Tetraedrita (Normal)", "ore_vein.tfg.surface_bismuthinite": "Bismuto (Superfície)", "ore_vein.tfg.surface_cassiterite": "Cassiterita (Superfície)", @@ -1522,7 +1523,7 @@ "quests.low_voltage.lv_nitrogen.task": "Nitrogênio", "quests.low_voltage.lv_arc_furnace.title": "O Forno a Arco", "quests.low_voltage.lv_arc_furnace.subtitle": "O Forno a Arco nunca foi tão bom", - "quests.low_voltage.lv_arc_furnace.desc.1": "O &3Forno a Arco&r usa um pouquinho de &9Oxigênio&r para fundir itens de uma maneira diferente das Fornalhas.\n\nVocê pode usá-lo para fazer &aFerro Forjado&r mais facilmente, dobrar seu &aVidro&r e obter acesso a &aCobre Recozido&r para componentes eletrônicos mais baratos. É também a sua nova melhor maneira de fazer &4Lingotes de &1Aço Rubro&r e &1Aço Azul&r!\n\nEle também pode reciclar vários componentes e máquinas de volta aos seus materiais originais.", + "quests.low_voltage.lv_arc_furnace.desc.1": "O &3Forno a Arco&r usa um pouquinho de &9Oxigênio&r para fundir itens de uma maneira diferente das Fornalhas.\n\nVocê pode usá-lo para fazer &aFerro Forjado&r mais facilmente, dobrar seu &aVidro&r e obter acesso a &aCobre Recozido&r para componentes eletrônicos mais baratos.\n\nEle também pode reciclar vários componentes e máquinas de volta aos seus materiais originais.", "quests.low_voltage.lv_arc_furnace.desc.2": "&l&3Lore:&r&o As versões anteriores do GregTech tinham o Forno a Arco e o &bForno a Arco de Plasma&f. Nesse caso, por que não usar uma máquina para ambos? Bem, foi exatamente o que pensamos - mas, no final das contas, decidimos remover uma das duas receitas de &bplasma&f. E então outra receita de &bplasma&f.\n\n&oResumindo, o &bForno a Arco de Plasma&f se &4foi&f. Descanse em paz.", "quests.low_voltage.lv_extractor.title": "Extração Líquida Básica", "quests.low_voltage.lv_extractor.subtitle": "O Extrator extrai...", diff --git a/kubejs/assets/tfg/lang/ru_ru.json b/kubejs/assets/tfg/lang/ru_ru.json index 7bd2b17cf..7c2118662 100644 --- a/kubejs/assets/tfg/lang/ru_ru.json +++ b/kubejs/assets/tfg/lang/ru_ru.json @@ -695,8 +695,8 @@ "item.tfg.phantom_thread": "Фантомная нить", "item.tfg.polycaprolactam_fabric": "Поликапролактамовая ткань", "item.tfg.polycaprolactam_string": "Поликапролактамовая нить", - "item.tfg.space_suit_fabric": "Space Suit Fabric", - "item.tfg.vitrified_pearl": "Vitrified Ender Pearl", + "item.tfg.space_suit_fabric": "Ткань скафандра", + "item.tfg.vitrified_pearl": "Остеклованный эндер-жемчуг", "item.tfg.fishing_net.wood": "Рыболовная сеть (Дерево)", "item.tfg.fishing_net.brass": "Рыболовная сеть (Латунь)", "item.tfg.fishing_net.rose_gold": "Рыболовная сеть (Розовое золото)", @@ -713,28 +713,28 @@ "item.tfg.unfired_chalk": "Необожженная палочка мела", "item.tfg.armor_stand_arms": "Стойка для брони с руками", "item.tfg.flint_club_head": "Навершие булавы (Кремень)", - "item.tfg.unfinished_electron_tube": "Unfinished Electron Tube", - "item.tfg.unfinished_vacuum_tube": "Unfinished Vacuum Tube", - "item.tfg.unfinished_basic_electronic_circuit": "Unfinished Basic Electronic Circuit", - "item.tfg.unfinished_good_electronic_circuit": "Unfinished Good Electronic Circuit", - "item.tfg.unfinished_inscriber_accumulation_press": "Unfinished Inscriber Accumulation Press", + "item.tfg.unfinished_electron_tube": "Незаконченная электронная лампа", + "item.tfg.unfinished_vacuum_tube": "Незаконченная электровакуумная лампа", + "item.tfg.unfinished_basic_electronic_circuit": "Незаконченная обычная микросхема", + "item.tfg.unfinished_good_electronic_circuit": "Незаконченная хорошая электронная микросхема", + "item.tfg.unfinished_inscriber_accumulation_press": "Незаконченный аккумулирующий пресс", "item.tfg.brick.deepslate": "Мигматитовый кирпич", "item.tfg.brick.dripstone": "Травертиновый кирпич", "item.tfg.loose.moon_stone": "Камешек анортозита", "item.tfg.brick.moon_stone": "Анортозитовый кирпич", - "item.tfg.loose.moon_deepslate": "Loose Norite", - "item.tfg.brick.moon_deepslate": "Norite Brick", - "item.tfg.loose.mars_stone": "Loose Argillite", + "item.tfg.loose.moon_deepslate": "Камешек норита", + "item.tfg.brick.moon_deepslate": "Норитовый кирпич", + "item.tfg.loose.mars_stone": "Камешек аргиллита", "item.tfg.brick.mars_stone": "Аргиллитовый кирпич", - "item.tfg.loose.venus_stone": "Loose Trachyte", + "item.tfg.loose.venus_stone": "Камушек трахита", "item.tfg.brick.venus_stone": "Трахитовый кирпич", - "item.tfg.loose.mercury_stone": "Loose Komatiite", + "item.tfg.loose.mercury_stone": "Камушек коматиита", "item.tfg.brick.mercury_stone": "Коматиитовый кирпич", - "item.tfg.loose.glacio_stone": "Loose Phonolite", + "item.tfg.loose.glacio_stone": "Камушек фонолита", "item.tfg.brick.glacio_stone": "Фонолитовый кирпич", "item.tfg.loose.permafrost": "Permafrost Chunk", "item.tfg.brick.permafrost": "Кирпич вечной мерзлоты", - "item.tfg.loose.red_granite": "Loose Red Granite", + "item.tfg.loose.red_granite": "Камушек красного гранита", "item.tfg.brick.red_granite": "Кирпич красного гранита", "item.tfg.terra_firma_greg": "TerraFirmaGreg", "item.tfg.scaffolding_frame": "Обшивка строительных лесов", @@ -765,7 +765,7 @@ "item.tfg.zpm_universal_circuit": "Универсальная схема ZPM", "item.tfg.uv_universal_circuit": "Универсальная схема UV", "item.tfg.uhv_universal_circuit": "Универсальная схема UHV", - "item.tfg.chipboard_composite": "ДСП", + "item.tfg.chipboard_composite": "Древесная стружка", "item.tfg.piglin_disguise": "Маскировка Пиглина", "item.tfg.trowel": "Мастерок", "item.tfg.foil_pack": "Фольгированный пакет", @@ -810,43 +810,43 @@ "item.tfg.food.freeze_dried.melon_slice": "Лиофилизированный ломтик арбуза", "item.tfg.food.freeze_dried.fig": "Лиофилизированный инжир", "item.tfg.food.freeze_dried.pineapple": "Лиофилизированный ананас", - "item.tfg.food.freeze_dried.blossom_berry": "Freeze Dried Blossom Berry", - "item.tfg.food.freeze_dried.shadow_berry": "Freeze Dried Nox Berry", - "item.tfg.food.freeze_dried.cave_pumpkin": "Freeze Dried Bulbkin Chunks", + "item.tfg.food.freeze_dried.blossom_berry": "Лиофилизированная цветущая ягода", + "item.tfg.food.freeze_dried.shadow_berry": "Лиофилизированная нокс-ягода", + "item.tfg.food.freeze_dried.cave_pumpkin": "Лиофилизированная лукыквенная мякоть", "item.tfg.food.calorie_paste": "Калорийная паста", "item.tfg.food.meal_bag": "Лиофилизированное мясо", "item.tfg.food.ice_soup": "Ледяной суп", - "item.tfg.food.raw_glacian_mutton": "Raw Glacian Mutton", - "item.tfg.food.cooked_glacian_mutton": "Cooked Glacian Mutton", - "item.tfg.spawn_egg.glacian_ram": "Glacian Spawn Egg", - "item.tfg.food.raw_sniffer_beef": "Raw Sniffer Beef", - "item.tfg.food.cooked_sniffer_beef": "Cooked Sniffer Beef", - "item.tfg.spawn_egg.sniffer": "Sniffer Spawn Egg", - "item.tfg.food.raw_wraptor": "Raw Wraptor", - "item.tfg.food.cooked_wraptor": "Cooked Wraptor", - "item.tfg.food.raw_springling_collar": "Raw Springling Collar", - "item.tfg.food.cooked_springling_collar": "Cooked Springling Collar", - "item.tfg.food.raw_walker_steak": "Raw Walker Steak", - "item.tfg.food.cooked_walker_steak": "Cooked Walker Steak", - "item.tfg.food.raw_glider_wings": "Raw Glider Wings", - "item.tfg.food.cooked_glider_wings": "Cooked Glider Wings", - "item.tfg.food.raw_whole_soarer": "Raw Whole Soarer", - "item.tfg.food.cooked_whole_soarer": "Cooked Whole Soarer", - "item.tfg.food.raw_crusher_meat": "Raw Crusher Meat", - "item.tfg.food.cooked_crusher_meat": "Cooked Crusher Meat", - "item.tfg.food.raw_goober_meat": "Raw Goober Meat", - "item.tfg.food.cooked_goober_meat": "Cooked Goober Meat", - "item.tfg.food.raw_long_pig_filet": "Raw Long Pig Filet", - "item.tfg.food.cooked_long_pig_filet": "Cooked Long Pig Filet", - "item.tfg.food.raw_surfer_steak": "Raw Surfer Steak", - "item.tfg.food.cooked_surfer_steak": "Cooked Surfer Steak", - "item.tfg.food.raw_stackatick_chunks": "Raw Stackatick Chunks", - "item.tfg.food.raw_stickastackatick": "Raw Stick'a'Stackatick", - "item.tfg.food.cooked_stickastackatick": "Cooked Stick'a'Stackatick", - "item.tfg.food.raw_cruncher_ribs": "Raw Cruncher Ribs", - "item.tfg.food.cooked_cruncher_ribs": "Cooked Cruncher Ribs", - "item.tfg.food.raw_dino_nugget": "Prepared Dinosaur Nugget", - "item.tfg.food.cooked_dino_nugget": "Beer Battered Dinosaur Nugget", + "item.tfg.food.raw_glacian_mutton": "Сырая гласианская баранина", + "item.tfg.food.cooked_glacian_mutton": "Приготовленная гласианская баранина", + "item.tfg.spawn_egg.glacian_ram": "Яйцо призыва гласианского барана", + "item.tfg.food.raw_sniffer_beef": "Сырое мясо нюхача", + "item.tfg.food.cooked_sniffer_beef": "Приготовленное мясо нюхача", + "item.tfg.spawn_egg.sniffer": "Яйцо призыва нюхача", + "item.tfg.food.raw_wraptor": "Сырое мясо ираптора", + "item.tfg.food.cooked_wraptor": "Приготовленное мясо ираптора", + "item.tfg.food.raw_springling_collar": "Сырая шейка долгошея", + "item.tfg.food.cooked_springling_collar": "Приготовленная шейка долгошея", + "item.tfg.food.raw_walker_steak": "Сырое мясо ходуна", + "item.tfg.food.cooked_walker_steak": "Приготовленное мясо ходуна", + "item.tfg.food.raw_glider_wings": "Сырые крылышки глайдера", + "item.tfg.food.cooked_glider_wings": "Приготовленные крылышки глайдера", + "item.tfg.food.raw_whole_soarer": "Сырое крылышки пархателя", + "item.tfg.food.cooked_whole_soarer": "Приготовленное крылышки пархателя", + "item.tfg.food.raw_crusher_meat": "Сырое мясо крушителя", + "item.tfg.food.cooked_crusher_meat": "Приготовленное мясо крушителя", + "item.tfg.food.raw_goober_meat": "Сырое мясо слюпика", + "item.tfg.food.cooked_goober_meat": "Приготовленное мясо слюпика", + "item.tfg.food.raw_long_pig_filet": "Сырая человечина", + "item.tfg.food.cooked_long_pig_filet": "Приготовленная человечина", + "item.tfg.food.raw_surfer_steak": "Сырой стейк из сёрфера", + "item.tfg.food.cooked_surfer_steak": "Приготовленный стейк из сёрфера", + "item.tfg.food.raw_stackatick_chunks": "Сырое мясо жука-перевозчика", + "item.tfg.food.raw_stickastackatick": "Сырой жук-перевозчик на палочке", + "item.tfg.food.cooked_stickastackatick": "Приготовленный жук-перевозчик на палочке", + "item.tfg.food.raw_cruncher_ribs": "Сырые ребрышки кусача", + "item.tfg.food.cooked_cruncher_ribs": "Приготовленное ребрышки кусача", + "item.tfg.food.raw_dino_nugget": "Сырые наггетсы из динозавра", + "item.tfg.food.cooked_dino_nugget": "Приготовленные наггетсы из динозавра в пивном кляре", "item.tfg.roasted_sunflower_seeds": "Обжаренные семена подсолнуха", "item.tfg.sunflower_seeds": "Семена подсолнуха", "item.tfg.sunflower_product": "Шляпка подсолнуха", @@ -859,106 +859,106 @@ "item.tfg.large_bullet_casing": "Большая гильза", "item.tfg.shell_bullet_casing": "Дробовая гильза", "item.tfg.nitrocellulose": "Нитроцеллюлоза", - "item.tfg.aes_wool": "Alkaline Earth Silicate Wool", - "item.tfg.aes_compressed_wool": "Compressed Alkaline Earth Silicate Wool", - "item.tfg.aes_insulation_sheet": "Sheet of Alkaline Earth Silicate Insulation", - "item.tfg.aes_insulation_roll": "Roll of Alkaline Earth Silicate Insulation", - "item.tfg.rocket_cone_t2": "Improved Rocket Nose Cone", - "item.tfg.rocket_fin_t2": "Improved Rocket Fin", - "item.tfg.cryo_fluix_pearl": "Cryogenized Fluix Pearl", + "item.tfg.aes_wool": "Щелочноземельная силикатная шерсть", + "item.tfg.aes_compressed_wool": "Плотная щелочноземельная силикатная шерсть", + "item.tfg.aes_insulation_sheet": "Щелочноземельная силикатная шерстяная пластина", + "item.tfg.aes_insulation_roll": "Рулон щелочноземельных силикатных шерстяных пластин", + "item.tfg.rocket_cone_t2": "Улучшенный ракетный обтекатель", + "item.tfg.rocket_fin_t2": "Улучшенный ракетный стабилизатор", + "item.tfg.cryo_fluix_pearl": "Криогенный флюисовый жемчуг", "item.tfg.marker.earth_orbit": "Орбита Земли", "item.tfg.marker.moon_orbit": "Орбита Луны", "item.tfg.marker.mars_orbit": "Орбита Марса", "item.tfg.marker.venus_orbit": "Орбита Венеры", "item.tfg.marker.mercury_orbit": "Орбита Меркурия", "item.tfg.marker.glacio_orbit": "Орбита Европы", - "item.tfg.railgun_ammo_shell": "Railgun Ammo Shell", - "item.tfg.sulfur_fumes_bucket": "Sulfur Fumes Bucket", + "item.tfg.railgun_ammo_shell": "Гильза снаряда рельсотрона", + "item.tfg.sulfur_fumes_bucket": "Ведро (Пары серы)", "item.tfg.super_heated_slurry_bucket": "Super Heated Slurry Bucket", - "item.tfg.cryogenized_fluix_bucket": "Cryogenized Fluix Bucket", - "item.tfg.fluix_bucket": "Liquid Fluix Bucket", - "item.tfg.latex_bucket": "Latex Bucket", - "item.tfg.vulcanized_latex_bucket": "Vulcanized Latex Bucket", - "item.tfg.conifer_pitch_bucket": "Conifer Pitch Bucket", - "item.tfg.compressed_nitrox_bucket": "Nitrox Bucket", - "item.tfg.compressed_heliox_bucket": "Heliox Bucket", - "item.tfg.compressed_heliox_3_bucket": "Heliox-3 Bucket", - "item.tfg.compressed_trimix_bucket": "50/30/20 Trimix Bucket", - "item.tfg.compressed_trimix_3_bucket": "50/30/20 Trimix-3 Bucket", - "item.tfg.semiheavy_ammoniacal_water_bucket": "Semiheavy Ammoniacal Water Bucket", + "item.tfg.cryogenized_fluix_bucket": "Ведро (Криогенный флюис)", + "item.tfg.fluix_bucket": "Ведро (Флюис)", + "item.tfg.latex_bucket": "Ведро (Латекс)", + "item.tfg.vulcanized_latex_bucket": "Ведро (Вулканизированный латекс)", + "item.tfg.conifer_pitch_bucket": "Ведро (Хвойная смола)", + "item.tfg.compressed_nitrox_bucket": "Ведро (Нитрокс)", + "item.tfg.compressed_heliox_bucket": "Ведро (Гелиокс)", + "item.tfg.compressed_heliox_3_bucket": "Ведро (Гелиокс-3)", + "item.tfg.compressed_trimix_bucket": "Ведро (50/30/20 Тримикс)", + "item.tfg.compressed_trimix_3_bucket": "Ведро (50/30/20 Тримикс-3)", + "item.tfg.semiheavy_ammoniacal_water_bucket": "Ведро (Полутяжелая аммиачная вода)", "item.tfg.harvest_basket": "Лукошко", "item.tfg.aluminium_harvest_basket": "Лукошко (Алюминий)", "item.tfg.wood.lumber.aeronos": "Доска из конусообразного гриба", "item.tfg.wood.lumber.strophar": "Доска из строфарового гриба", "item.tfg.wood.lumber.glacian": "Доска из гласивника", - "item.tfg.twigs.aeronos": "Aeronos Twig", - "item.tfg.twigs.strophar": "Strophar Twig", - "item.tfg.twigs.glacian": "Glacian Twig", - "item.tfg.twigs.alphacene": "Alphacene Twig", - "item.tfg.crimsene_gem": "Crimsene Rosin", - "item.tfg.warpane_gem": "Warpane Rosin", - "item.tfg.glacian_wool": "Glacian Wool", - "item.tfg.sniffer_wool": "Mineral Rich Tufts", - "item.tfg.sniffer_egg": "Sniffer Egg", - "item.tfg.wraptor_wool": "Mineral Rich Down Feathers", - "item.tfg.wraptor_egg": "Wraptor Egg", - "item.tfg.wraptor_sugar": "Wraptor Sugar", - "item.tfg.aes_polyurethane": "Bio-AES Reinforced R-Polyurethane Foam", - "item.tfg.mli_shielding": "Multi-Layer Insulated Shielding", - "item.tfg.rocket_cone_t3": "Advanced Rocket Nose Cone", - "item.tfg.rocket_fin_t3": "Advanced Rocket Fin", - "item.tfg.elite_power_thruster": "§aElite Power Thruster", - "item.tfg.silica_aerogel": "Silica Aerogel", - "item.tfg.better_space_suit_fabric": "Adaptive Space Suit Fabric", - "item.tfg.universal_compost_browns": "Brown Universal Compost", - "item.tfg.universal_compost_greens": "Green Universal Compost", - "item.tfg.etching_diamond_tip": "Etching Diamond Tip", + "item.tfg.twigs.aeronos": "Веточка конусообразного гриба", + "item.tfg.twigs.strophar": "Веточка строфарового гриба", + "item.tfg.twigs.glacian": "Веточка гласивника", + "item.tfg.twigs.alphacene": "Веточка альфаценового гриба", + "item.tfg.crimsene_gem": "Багряная смола", + "item.tfg.warpane_gem": "Искаженная смола", + "item.tfg.glacian_wool": "Гласианская шерсть", + "item.tfg.sniffer_wool": "Богатая минералами шерсть нюхача", + "item.tfg.sniffer_egg": "Яйцо нюхача", + "item.tfg.wraptor_wool": "Богатые минералами перья ираптора", + "item.tfg.wraptor_egg": "Яйцо ираптора", + "item.tfg.wraptor_sugar": "Сахар ираптора", + "item.tfg.aes_polyurethane": "Био-ЩЗС укрепленный R-полиуретановый пенопласт", + "item.tfg.mli_shielding": "Многослойное изоляционное покрытие", + "item.tfg.rocket_cone_t3": "Продвинутый ракетный обтекатель", + "item.tfg.rocket_fin_t3": "Продвинутый ракетный стабилизатор", + "item.tfg.elite_power_thruster": "§aПродвинутый силовой двигатель", + "item.tfg.silica_aerogel": "Силикатный аэрогель", + "item.tfg.better_space_suit_fabric": "Пластичная ткань скафандра", + "item.tfg.universal_compost_browns": "Коричневый универсальный компост", + "item.tfg.universal_compost_greens": "Зеленый универсальный компост", + "item.tfg.etching_diamond_tip": "Гравировочная алмазная игла", "item.tfg.spade_head_extruder_mold": "Форма экструдера (Оголовье заступа)", - "item.tfg.mining_hammer_head_extruder_mold": "Extruder Mold (Mining Hammer Head)", - "item.tfg.sword_head_extruder_mold": "Extruder Mold (Sword Head)", - "item.tfg.pickaxe_head_extruder_mold": "Extruder Mold (Pickaxe Head)", - "item.tfg.shovel_head_extruder_mold": "Extruder Mold (Shovel Head)", - "item.tfg.axe_head_extruder_mold": "Extruder Mold (Axe Head)", - "item.tfg.hoe_head_extruder_mold": "Extruder Mold (Hoe Head)", - "item.tfg.scythe_head_extruder_mold": "Extruder Mold (Sycthe Head)", - "item.tfg.file_head_extruder_mold": "Extruder Mold (File Head)", - "item.tfg.hammer_head_extruder_mold": "Extruder Mold (Hammer Head)", - "item.tfg.saw_head_extruder_mold": "Extruder Mold (Saw Head)", - "item.tfg.knife_head_extruder_mold": "Extruder Mold (Knife Head)", - "item.tfg.butchery_knife_head_extruder_mold": "Extruder Mold (Butchery Knife Head)", - "item.tfg.propick_head_extruder_mold": "Extruder Mold (Prospector's Pick Head)", - "item.tfg.javelin_head_extruder_mold": "Extruder Mold (Javelin Head)", - "item.tfg.chisel_head_extruder_mold": "Extruder Mold (Chisel Head)", - "item.tfg.mace_head_extruder_mold": "Extruder Mold (Mace Head)", - "item.tfg.mattock_head_extruder_mold": "Extruder Mold (Mattock Head)", - "item.tfg.fish_hook_extruder_mold": "Extruder Mold (Fish Hook)", - "item.tfg.whisk_extruder_mold": "Extruder Mold (Whisk)", - "item.tfg.screwdriver_tip_extruder_mold": "Extruder Mold (Screwdriver Tip)", - "item.tfg.wrench_tip_extruder_mold": "Extruder Mold (Wrench Tip)", - "item.tfg.wire_cutter_head_extruder_mold": "Extruder Mold (Wire Cutter Head)", - "item.tfg.small_casing_extruder_mold": "Extruder Mold (Small Bullet Casing)", - "item.tfg.shell_casing_extruder_mold": "Extruder Mold (Shell Bullet Casing)", - "item.tfg.large_casing_extruder_mold": "Extruder Mold (Large Bullet Casing)", + "item.tfg.mining_hammer_head_extruder_mold": "Форма экструдера (Огловье шахтерского молота)", + "item.tfg.sword_head_extruder_mold": "Форма экструдера (Оголовье меча)", + "item.tfg.pickaxe_head_extruder_mold": "Форма экструдера (Оголовье кирки)", + "item.tfg.shovel_head_extruder_mold": "Форма экструдера (Оголовье лопаты)", + "item.tfg.axe_head_extruder_mold": "Форма экструдера (Оголовье топора)", + "item.tfg.hoe_head_extruder_mold": "Форма экструдера (Оголовье мотыги)", + "item.tfg.scythe_head_extruder_mold": "Форма экструдера (Оголовье косы)", + "item.tfg.file_head_extruder_mold": "Форма экструдера (Оголовье напильника)", + "item.tfg.hammer_head_extruder_mold": "Форма экструдера (Оголовье молота)", + "item.tfg.saw_head_extruder_mold": "Форма экструдера (Оголовье пилы)", + "item.tfg.knife_head_extruder_mold": "Форма экструдера (Оголовье ножа)", + "item.tfg.butchery_knife_head_extruder_mold": "Форма экструдера (Оголовье тесака)", + "item.tfg.propick_head_extruder_mold": "Форма экструдера (Головка геологического молотка)", + "item.tfg.javelin_head_extruder_mold": "Форма экструдера (Наконечник копья)", + "item.tfg.chisel_head_extruder_mold": "Форма экструдера (Головка зубила)", + "item.tfg.mace_head_extruder_mold": "Форма экструдера (Навершие булавы)", + "item.tfg.mattock_head_extruder_mold": "Форма экструдера (Оголовье кайла)", + "item.tfg.fish_hook_extruder_mold": "Форма экструдера (Крючок)", + "item.tfg.whisk_extruder_mold": "Форма экструдера (Венчик)", + "item.tfg.screwdriver_tip_extruder_mold": "Форма экструдера (Наконечник отвертки)", + "item.tfg.wrench_tip_extruder_mold": "Форма экструдера (Торцевая головка ключа)", + "item.tfg.wire_cutter_head_extruder_mold": "Форма экструдера (Насадка кусачек)", + "item.tfg.small_casing_extruder_mold": "Форма экструдера (Маленькая гильза)", + "item.tfg.shell_casing_extruder_mold": "Форма экструдера (Дробовая гильза)", + "item.tfg.large_casing_extruder_mold": "Форма экструдера (Большая гильза)", "item.tfg.photo_cell_t1": "Обычная фотоэлектрическая ячейка", "item.tfg.electric_extendo_grip": "Electric Extendo Grip", - "item.tfg.treated_chipboard_composite": "Treated Chipboard Composite", - "item.tfg.high_density_treated_fiberboard": "Medium Density Treated Fiberboard", - "item.tfg.flax_seeds": "Flax Seeds", - "item.tfg.flax_product": "Flax Stems", - "item.tfg.flax_bundle": "Flax Bundle", - "item.tfg.flax_line": "Flax Line Fibers", - "item.tfg.flax_tow": "Flax Tow Fibers", - "item.tfg.flax_waste": "Scraped Flax", - "item.tfg.bundled_scraped_flax": "Bundled Scraped Flax", - "item.tfg.linen_thread": "Linen Thread", - "item.tfg.linen_cloth": "Linen Cloth", - "item.tfg.uv_led": "§dUltraviolet §fLED", - "item.tfg.smd_uv_led": "§fSMD §dUltraviolet §fLED", - "item.tfg.empty_dna_syringe": "Empty Syringe", - "item.tfg.filled_dna_syringe": "Filled Syringe", - "item.tfg.dirty_dna_syringe": "Dirty Syringe", - "item.tfg.clean_dna_syringe": "Clean Syringe", - "item.tfg.stainless_steel_needle": "Stainless Steel Needle", + "item.tfg.treated_chipboard_composite": "Обработанный ДСП", + "item.tfg.high_density_treated_fiberboard": "ДСП", + "item.tfg.flax_seeds": "Семена льна", + "item.tfg.flax_product": "Льняной стебель", + "item.tfg.flax_bundle": "Связка льна", + "item.tfg.flax_line": "Волокна льна", + "item.tfg.flax_tow": "Kьняные очёски", + "item.tfg.flax_waste": "Костра льна", + "item.tfg.bundled_scraped_flax": "Связка костры льна", + "item.tfg.linen_thread": "Льные нитки", + "item.tfg.linen_cloth": "Льняная ткань", + "item.tfg.uv_led": "§dУльтрафиолетовый §fСИД", + "item.tfg.smd_uv_led": "§fSMD §dУльтрафиолетовый §fСИД", + "item.tfg.empty_dna_syringe": "Пустой шприц", + "item.tfg.filled_dna_syringe": "Заполненный шприц", + "item.tfg.dirty_dna_syringe": "Грязный шприц", + "item.tfg.clean_dna_syringe": "Чистый шприц", + "item.tfg.stainless_steel_needle": "Игла из нержавеющей стали", "item.tfg.empty_rod": "Empty Fissile Fuel Rod", "item.tfg.thorium_rod": "Thorium Fuel Rod", "item.tfg.uranium_rod": "Uranium Fuel Rod", @@ -988,27 +988,27 @@ "item.tfg.vial.filled": "Флакон (%s)", "item.tfg.lab_equipment": "Лабораторное оборудование", "item.tfg.dirty_lab_equipment": "Грязное лабораторное оборудование", - "item.tfg.wireless_card": "Interplanetary Wireless Card", - "item.tfg.wet_magenta_chalk": "Wet Magenta Chalk", - "item.tfg.wet_pink_chalk": "Wet Pink Chalk", - "item.tfg.wet_green_chalk": "Wet Green Chalk", - "item.tfg.wet_lime_chalk": "Wet Lime Chalk", - "item.tfg.wet_light_gray_chalk": "Wet Light Gray Chalk", - "item.tfg.wet_yellow_chalk": "Wet Yellow Chalk", - "item.tfg.wet_black_chalk": "Wet Black Chalk", - "item.tfg.wet_light_blue_chalk": "Wet Light Blue Chalk", - "item.tfg.wet_brown_chalk": "Wet Brown Chalk", - "item.tfg.wet_cyan_chalk": "Wet Cyan Chalk", - "item.tfg.wet_orange_chalk": "Wet Orange Chalk", - "item.tfg.wet_red_chalk": "Wet Red Chalk", - "item.tfg.wet_gray_chalk": "Wet Gray Chalk", - "item.tfg.wet_white_chalk": "Wet White Chalk", - "item.tfg.wet_blue_chalk": "Wet Blue Chalk", - "item.tfg.wet_purple_chalk": "Wet Purple Chalk", - "item.tfg.lamp_casting_mold": "Lamp Casting Mold", - "item.tfg.trapdoor_casting_mold": "Trapdoor Casting Mold", - "item.tfg.chain_casting_mold": "Chain Casting Mold", - "item.tfg.bell_casting_mold": "Bell Casting Mold", + "item.tfg.wireless_card": "Межпланетная беспроводная карта", + "item.tfg.wet_magenta_chalk": "Мокрый пурпурный мелок", + "item.tfg.wet_pink_chalk": "Мокрый розовый мелок", + "item.tfg.wet_green_chalk": "Мокрый зеленый мелок", + "item.tfg.wet_lime_chalk": "Мокрый лаймовый мелок", + "item.tfg.wet_light_gray_chalk": "Мокрый светло-серый мелок", + "item.tfg.wet_yellow_chalk": "Мокрый жёлтый мелок", + "item.tfg.wet_black_chalk": "Мокрый черный мелок", + "item.tfg.wet_light_blue_chalk": "Мокрый голубой мелок", + "item.tfg.wet_brown_chalk": "Мокрый коричневый мелок", + "item.tfg.wet_cyan_chalk": "Мокрый бирюзовый мелок", + "item.tfg.wet_orange_chalk": "Мокрый оранжевый мелок", + "item.tfg.wet_red_chalk": "Мокрый красный мелок", + "item.tfg.wet_gray_chalk": "Мокрый серый мелок", + "item.tfg.wet_white_chalk": "Мокрый белый мелок", + "item.tfg.wet_blue_chalk": "Мокрый синий мелок", + "item.tfg.wet_purple_chalk": "Мокрый фиолетовый мелок", + "item.tfg.lamp_casting_mold": "Отливная форма (Фонарь)", + "item.tfg.trapdoor_casting_mold": "Отливная форма (Люк)", + "item.tfg.chain_casting_mold": "Отливная форма (Цепь)", + "item.tfg.bell_casting_mold": "Отливная форма (Колокол)", "material.tfg.latex": "Латекс", "material.tfg.vulcanized_latex": "Вулканический латекс", "material.tfg.fluix": "Флакс", @@ -1140,6 +1140,7 @@ "ore_vein.tfg.normal_sphalerite": "Сфалерит & Пирит", "ore_vein.tfg.normal_spodumene": "Сподумен и Лепидолит", "ore_vein.tfg.normal_sulfur": "Сера и Пирит", + "ore_vein.tfg.normal_tarkianite": "Таркианит и Нефтеносный песок", "ore_vein.tfg.normal_tetrahedrite": "Тетраэдрит (обычный)", "ore_vein.tfg.surface_bismuthinite": "Висмут (Поверхностный)", "ore_vein.tfg.surface_cassiterite": "Касситерит (Поверхностный)", @@ -2154,7 +2155,7 @@ "quests.gregtech_energy.overclock.title": "Overclock", "quests.gregtech_energy.overclock.subtitle": "Basic upgrade mechanic", "quests.gregtech_energy.overclock.desc.1": "Have you heard about Overclocking, but don't really understand what it is? Let's take some time to explain it.\n\nWe should start with the basics:\n&dLV&r represents a maximum of 32 EU/t — sometimes less, but never more.\n&dMV&r goes up to 128 EU/t.\n&dHV&r reaches 512 EU/t.\nBasically, every tier is a 4x increase in power usage.", - "quests.gregtech_energy.overclock.desc.2": "What happens when you run a lower-tier recipe in a higher-tier machine? That's what we call &eOverclocking&r!\n\nAn &dMV&r recipe (33–128 EU/t) run in an &dHV&r machine will both: 1) Use 4x more energy, and 2) Be 2x faster.\n\nThe same MV recipe in an &dEV&r machine? 8x the energy cost, but only 4x faster.\n\nAs you can see, it's more power efficient to use multiple machines rather than overclocking a single one.\nBut let's be real: in most setups, you’ll prefer overclocking to building a ton of the same machines.\n\nStill, it's good to know this early on, when energy is tight.", + "quests.gregtech_energy.overclock.desc.2": "What happens when you run a lower-tier recipe in a higher-tier machine? That's what we call &eOverclocking&r!\n\nAn &dMV&r recipe (33–128 EU/t) run in an &dHV&r machine will both: 1) Use 4x more energy, and 2) Be 2x faster.\n\nThe same MV recipe in an &dEV&r machine? 16x the energy cost, but only 4x faster.\n\nAs you can see, it's more power efficient to use multiple machines rather than overclocking a single one.\nBut let's be real: in most setups, you’ll prefer overclocking to building a ton of the same machines.\n\nStill, it's good to know this early on, when energy is tight.", "quests.gregtech_energy.overclock.desc.3": "There’s a special kind of overclocking exclusive to just a few multiblocks: &ePerfect Overclocking&r.\nHere, instead of 4x energy for 2x speed, you get &a4x energy&r for &a4x speed&r! This makes it just as efficient as running multiple machines.\n\nCurrently in TerraFirmaGreg, only the following multiblocks support this:\n- Electric Blast Furnace\n- Alloy Blast Smelter\n- Rotary Heat Furnace\n- Large Chemical Reactor\n- Electric Greenhouse", "quests.gregtech_energy.overclock.task": "So the red ones go faster, got it", "quests.gregtech_energy.blast_oc.title": "The Blast Overclocking", @@ -2597,7 +2598,7 @@ "quests.low_voltage.lv_nitrogen.task": "Азот", "quests.low_voltage.lv_arc_furnace.title": "Дуговая Печь", "quests.low_voltage.lv_arc_furnace.subtitle": "Дуговая Печь ещё никогда не была так хороша", - "quests.low_voltage.lv_arc_furnace.desc.1": "&3Дуговая печь&r использует немного &9кислорода&r для плавки предметов другим способом, чем обычные печи.\n\nВы можете использовать её для более лёгкого получения &aкованого железа&r, удвоения количества &aстекла&r и доступа к &aотожжённой меди&r для более дешёвых электронных компонентов. Это также ваш новый лучший способ изготовления &4Красной стали&r и &1Синей стали&r в виде слитков!\n\nОна также может перерабатывать различные компоненты и машины обратно в исходные материалы.", + "quests.low_voltage.lv_arc_furnace.desc.1": "&3Дуговая печь&r использует немного &9кислорода&r для плавки предметов другим способом, чем обычные печи.\n\nВы можете использовать её для более лёгкого получения &aкованого железа&r, удвоения количества &aстекла&r и доступа к &aотожжённой меди&r для более дешёвых электронных компонентов.\n\nОна также может перерабатывать различные компоненты и машины обратно в исходные материалы.", "quests.low_voltage.lv_arc_furnace.desc.2": "&l&3Интересный Факт:&r&o В предыдущих версиях GregTech существовали как Дуговая печь, так и &bПлазменная дуговая печь&f. В таком случае, почему бы не использовать одну машину для обеих функций? Именно так мы и подумали — но в итоге решили удалить один из двух &bплазменных&r рецептов. А затем и второй &bплазменный&r рецепт.\n\n&o&oКороче говоря, &bПлазменная дуговая печь&f &4исчезла&f. RIP.", "quests.low_voltage.lv_extractor.title": "Обычный Экстрактор", "quests.low_voltage.lv_extractor.subtitle": "Экстрактор извлекает...", @@ -3031,115 +3032,115 @@ "quests.metal_age.this_is_a_bucket.desc": "Поздравляем с созданием ведра. Век металлургии официально завершен.\n\nТеперь можешь приступать к созданию компонентов низкого напряжения!", "quests.ore_proc": "Переработка руд", "quests.ore_proc.subtitle": "Всё, что вам нужно, чтобы получать по максимуму от ваших руд", - "quests.ore_proc.native_ore.title": "Welcome to Ore Processing", - "quests.ore_proc.native_ore.subtitle": "To Process, Ore Not To Process", - "quests.ore_proc.native_ore.desc": "An important part of &6GregTech&r is its &dOre Processing Mechanics&r, but it can get pretty complicated, so this chapter is here to help!\n\nTo start with, you should be aware of the &6Ore Processing Diagram&r tab in EMI - Press the Show Uses key (default &bU&r) on any item related to ore processing and look for the tab with the vanilla Iron Ore icon. This diagram may look overwhelming at first, but we'll take it step by step.\n\nA major part of GregTech philosophy is that there's not just one way to solve a problem, but we've marked everything important with a &estar&r, so if you're completely lost, try following those!", - "quests.ore_proc.native_ore.task": "I agree to not just dump everything in a furnace", - "quests.ore_proc.robot_arm.title": "Ore processing with GregTech's own tools", - "quests.ore_proc.robot_arm.subtitle": "Providing answers to its own problems", - "quests.ore_proc.robot_arm.desc": "GregTech comes with its own tools to help solve ore processing logistics.\n\nThe &6Robot Arm&r can move precice numbers of items into a machine, such as only moving flawed gems into a Laser Engraver once you have two of them. The &6Tag Filter&r can filter items by tag, such as '&5*purified_ores*&r' to match all Purified Ores.\n\nThe &4Smart Filter&r can filter items depending on their &6recipe&r. For example, if you use it with a robot arm on an electrolyzer, and set the robot arm to supply exact, it will only move your dusts into the electrolyzer once it has as many inputs as the recipe requires!", - "quests.ore_proc.ae2.title": "Ore processing with Applied Energistics 2", - "quests.ore_proc.ae2.subtitle": "A tag storage bus? What's that?", - "quests.ore_proc.ae2.desc": "AE2 is great at moving items around without tons of spaghetti cables! You can use the &dTag Storage Bus&r to tell your network where to put items that match an item's tag, which you can view by pressing F3 + H. For example, if you want to send all your Purified Ores to a chest, slap a Tag Storage Bus on it and set its filter to '&5*purified_ores*&r'.\n\nThere's many online guides on how to set up an AE2 system, but a subnet to handle all ore processing before it goes into your main storage is a solid choice!", - "quests.ore_proc.gtcy.title": "Ore processing but bigger", - "quests.ore_proc.gtcy.subtitle": "When size does matter", - "quests.ore_proc.gtcy.desc": "Once you get to IV, you'll gain access to multiblock versions of all of GregTech's single block machines. They do the exact same recipes as their single block cousins, but are more flexible - you can put lots of huge Input Buses on them, you can overclock them with higher tier &6Energy Hatches&r instead of making new ones every tier, and they even support &6Parallel Hatches&r to do multiple recipes simultaneously!\n\nAll of these machines require alloys created with the &bAlloy Blast Smelter&r, found at the end of &dEV&r.", - "quests.ore_proc.copper_tier.title": "Copper Age Ore Processing", - "quests.ore_proc.copper_tier.desc": "This row is for the very basics of ore processing. There's no byproducts and no automation.", - "quests.ore_proc.bronze_tier.title": "Bronze Age Ore Processing", - "quests.ore_proc.bronze_tier.desc": "This row is for what's available once you've obtained any Bronze Anvil.", - "quests.ore_proc.steel_tier.title": "Steel Age Ore Processing", - "quests.ore_proc.steel_tier.desc": "A Steel Anvil unlocks your first byproducts from ore washing.", - "quests.ore_proc.steam_tier.title": "Steam Age Ore Processing", - "quests.ore_proc.steam_tier.desc": "Steam machines give access to your second byproducts from centrifuging.", - "quests.ore_proc.lv_tier.title": "&7LV&r Ore Processing", - "quests.ore_proc.lv_tier.desc": "LV comes with a ton of machines that can process your ores in many different ways. The most important is probably the Thermal Centrifuge.", - "quests.ore_proc.mv_tier.title": "&bMV&r Ore Processing", - "quests.ore_proc.mv_tier.desc": "Not much happens at MV except that the electrolyzer becomes much more powerful.", - "quests.ore_proc.hv_tier.title": "&6HV&r Ore Processing", - "quests.ore_proc.hv_tier.desc": "HV Macerators now output byproducts! If you don't have a dedicated ore processing setup yet, now is definitely the time to build one.", - "quests.ore_proc.ev_tier.title": "&5EV&r Ore Processing", - "quests.ore_proc.ev_tier.desc": "EV is the first tier where you'll need to need to start splitting up your ore processing into different \"lines\".", - "quests.ore_proc.iv_tier.title": "&9IV&r Ore Processing", - "quests.ore_proc.iv_tier.desc": "With IV comes the big huge multiblocks to really ramp up your ore processing speeds.", - "quests.ore_proc.luv_tier.title": "&dLuV&r Ore Processing", - "quests.ore_proc.luv_tier.desc": "LuV's Naquadah line will be a real test of your ore processing. Can your machines keep up?", - "quests.ore_proc.raw_ore.title": "Raw Ore", - "quests.ore_proc.raw_ore.desc": "This column shows ways to process raw ore, the first step of ore processing!", - "quests.ore_proc.crushed_ore.title": "Crushed Ore", - "quests.ore_proc.crushed_ore.desc": "This column shows how to process crushed ore, which is almost always the second step.", - "quests.ore_proc.purified_ore.title": "Purified Ore", - "quests.ore_proc.purified_ore.desc": "This column shows what to do with your purified ore.", - "quests.ore_proc.refined_ore.title": "Refined Ore", - "quests.ore_proc.refined_ore.desc": "The only thing you can really do with refined ore is crush it.", - "quests.ore_proc.impure_dust.title": "Impure Dust", - "quests.ore_proc.impure_dust.desc": "Wash that dirty dust!", - "quests.ore_proc.purified_dust.title": "Purified Dust", - "quests.ore_proc.purified_dust.desc": "This column shows what you can do with your purified dust.", - "quests.ore_proc.dust_processed.title": "Your final dust", - "quests.ore_proc.dust_processed.subtitle": "Or is it?", - "quests.ore_proc.dust_processed.desc": "&6Dusts&r are the final form of almost every ore.\n\nFrom here, you can put it in a &cFurnace&r, send it to &estorage&r, or even start using it right away! Some dusts will require one last step before they become truly useful.\n\nRemember to keep your &6ore processing line&r in top shape! You'll want to keep expanding and upgrading it as you progress, so you can spend less time mining and more time gregging.", - "quests.ore_proc.macerator_byproduct.title": "Crushing with byproducts", - "quests.ore_proc.macerator_byproduct.subtitle": "I can get even more from my ores!", - "quests.ore_proc.macerator_byproduct.desc": "While looking at &bEMI&r, you've probably noticed that your &dMacerator&r or &dMillstone&r lists more &boutputs&r than what you're actually getting.\n\nGregTech doesn't communicate this very well, but these extra slots are only available in &6HV&r. Once you make it to that tier, the &6HV&r macerator becomes incredibly powerful, giving a huge amount of bonus byproducts from each ore.", - "quests.ore_proc.macerator_byproduct.task": "Either an HV Macerator or HS Crushing Wheels", - "quests.ore_proc.sodium_persulfate.title": "Bathe them in Sodium Persulfate", - "quests.ore_proc.sodium_persulfate.subtitle": "Not just for circuit board etching", - "quests.ore_proc.sodium_persulfate.desc": "Once you get to LV, you may be interested in using a &bChemical Bath&r with &dSodium persulfate&r to get some extra byproducts. Not all ores can be processed this way, but the ones that can, will get around a &670 percent&r chance of byproducts, compared to the &630 percent&r of the &bOre Washer&r.\n\nSodium persulfate can be a little annoying to mass produce, though if you want, &9Sea Water&r is a great starting point.\n\nThe quest on the left gives some examples that might be worth the investment.", - "quests.ore_proc.sodium_ores.title": "Sodium Persulfate bathing examples", - "quests.ore_proc.sodium_ores.subtitle": "A useful time saver", - "quests.ore_proc.sodium_ores.desc": "Here's some recommendations for Sodium Persulfate bathing:\n\n- &6Crushed Aluminium&r: for &dRutile&r (Titanium)\n\n- &6Crushed Bauxite&r: &dGallium&r\n\n- &6Crushed Cobalt&r: &dCobaltite&r for &dArsenic&r", - "quests.ore_proc.ore_washer.title": "Bathe them in Water", - "quests.ore_proc.ore_washer.subtitle": "The standard option for most ores", - "quests.ore_proc.ore_washer.desc": "Most ores don't need any fancy bathing setups, and running them through an &dOre Washer&r or &9Bulk Washing&r with an &dEncased Fan&r will suffice.\n\nIf you use the &bOre Washer&r, make sure to use &9Distilled Water&r to double the speed of the recipe.\n\nDon't have access to either of these yet? You can just throw your crushed ores into water to purify them, though this won't get you any byproducts.", - "quests.ore_proc.ore_washer.task": "Any Ore Washer", - "quests.ore_proc.mercury_ores.title": "Bathe them in Mercury", - "quests.ore_proc.mercury_ores.subtitle": "Don't stick your finger in it", - "quests.ore_proc.mercury_ores.desc": "Bathing certain ores in &dMercury&r can give some other useful byproducts. Not all ores can be processed this way, but the ones that can, will get around a &670 percent&r chance of byproducts, compared to the &630 percent&r of the &bOre Washer&r.\n\n&dMercury&r can be easily obtained from &cRedstone&r or &cCinnabar&r.\n\nThe quest on the right gives some examples are good to process in Mercury.", - "quests.ore_proc.mercury.title": "Mercury bathing examples", - "quests.ore_proc.mercury.subtitle": "Liquid metal bath time", - "quests.ore_proc.mercury.desc": "Here's some recommendations for Mercury bathing:\n\n- &6Crushed Platinum&r: &dPalladium&r\n\n- &6Crushed Cooperite&r: &dPalladium&r\n\n- &6Crushed Nickel&r: &dPlatinum&r\n\n- &6Crushed Gold&r: &dSilver&r", - "quests.ore_proc.indium.title": "The Indium Line", - "quests.ore_proc.indium.subtitle": "We say line, but really it's just a two step process", - "quests.ore_proc.indium.desc": "The &6Indium Line&r shouldn't be needed before &9IV&r, but it will require purified &bSphalerite&r and &bGalena&r.", - "quests.ore_proc.platline.title": "The Infamous Platline", - "quests.ore_proc.platline.subtitle": "GregTech players vs Mekanism players when they need Osmium:", - "quests.ore_proc.platline.desc": "The &6Platinum Line&r will be your first real challenge to process, providing you with essential platinum-group metals: &bPlatinum&r, &bPalladium&r, &bRuthenium&r, &bRhodium&r, &bIridium&r, and &bOsmium&r.\n\nWhile there's easier ways to obtain &bPlatinum&r and &bPalladium&r, this line will be &amandatory&r for accessing the others.\n\nThe Platline can be started at &6HV&r, but you won’t be able to complete it fully until later in &5EV&r.", - "quests.ore_proc.electro_separator.title": "Electromagnetic Separator", - "quests.ore_proc.electro_separator.subtitle": "Probably the least useful GregTech machine", - "quests.ore_proc.electro_separator.desc": "The &6Electromagnetic Separator&r can extract things like Iron and Gold from &dRefined Ores&r, which you can get by crushing your purified ones. For now, we recommend using it primarily for &dNaquadah&r. If you need more &aNeodymium&r, you can also process &dBastnasite&r.", - "quests.ore_proc.electro_separator.task": "Any Electromagnetic Separator", - "quests.ore_proc.macerator_separator.title": "The Macerator", - "quests.ore_proc.macerator_separator.subtitle": "(again)", - "quests.ore_proc.macerator_separator.desc": "The macerator can sometimes yield different byproducts from your Purified ores than other routes, but these are still locked to &6HV&r like every other macerator byproduct.", - "quests.ore_proc.macerator_separator.task": "Any Macerator", - "quests.ore_proc.thermal_centrifuge.title": "The Thermal Centrifuge", - "quests.ore_proc.thermal_centrifuge.subtitle": "The go-to for most purified ores", - "quests.ore_proc.thermal_centrifuge.desc": "For all your other Purified Ores that doesn't need special treatment, it's best to run them through the &dThermal Centrifuge&r. This machine can produce byproducts at a reliable rate, while only using electricity. It's quite slow, however, so we suggest making multiple machines.", - "quests.ore_proc.thermal_centrifuge.task": "Any Thermal Centrifuge", - "quests.ore_proc.sifter.title": "The Sifter", - "quests.ore_proc.sifter.subtitle": "The Skyblock Simulator", - "quests.ore_proc.sifter.desc": "The &6Sifter&r should be used for all your &aGems&r. It gives far more yield per ore than any other method, and is the only way to obtain Exquisite and Flawless gems before &6HV&r laser engraving.", - "quests.ore_proc.sifter.task": "Any Sifter", - "quests.ore_proc.centrifuge_sifter.title": "Centrifuging the dust", - "quests.ore_proc.centrifuge_sifter.subtitle": "Byproducts of byproducts", - "quests.ore_proc.centrifuge_sifter.desc": "The &6Sifter&r can output &6Purified Dust&r, which you can toss into a centrifuge for a few extra byproducts.", - "quests.ore_proc.centrifuge_sifter.task": "Any Centrifuge", - "quests.ore_proc.electrolyzer.title": "Further refinement", - "quests.ore_proc.electrolyzer.subtitle": "An encore for ore!", - "quests.ore_proc.electrolyzer.desc": "Certain &6Dusts&r have no direct use. For example, &2Tantalite&r must be processed in an &6Electrolyzer&r to extract the raw elements of &dTantalum&r and &dManganese&r.\n\nMost of these recipes will only be available with an &bMV Electrolyzer&r, so come back to this later!", - "quests.ore_proc.electrolyzer.task": "Any Electrolyzer", - "quests.ore_proc.packer.title": "The Packer", - "quests.ore_proc.packer.subtitle": "It's real fast", - "quests.ore_proc.packer.desc": "Back in the old days of GregTech, this little bad boy saw a lot of use—you used to get a ton of &6Small&r and &6Tiny Dusts&r from ore processing.\n\nNowadays, it's only really useful for automatic packing, such as &dRare Earth&r in a &6Centrifuge&r returning many &6Small Piles of Dust&r.\n\nDon't forget: a &eRobot Arm&r set to Supply Exact mode can be useful to avoid clogging the input slots.", - "quests.ore_proc.packer.task": "Any Packer", - "quests.ore_proc.bauxite.title": "The Bauxite Line", - "quests.ore_proc.bauxite.subtitle": "New to modern GregTech versions!", - "quests.ore_proc.bauxite.desc": "You &ocould&r just electrolyze all your Bauxite dust to get a measly 6 Aluminium and 1 Rutile per 15 Bauxite... Or you could try out the &6Bauxite Line&r!\n\nThis new processing line returns about 2x as much &bAluminium&r and 3x as much &4Rutile&r per Bauxite, while also giving you a bunch of Gallium, Iron, Neodymium, and Chromium for free!", - "quests.ore_proc.gem_slurry.title": "Gem Slurries", - "quests.ore_proc.gem_slurry.subtitle": "We... are the crystal—hblrlrlr", - "quests.ore_proc.gem_slurry.desc": "&6Gem Slurries&r are optional but short processing lines for Ruby, Sapphire, and Green Sapphire to squeeze a bit more resources out of them. Compared to electrolysis:\n\n- &cRuby Slurry&r returns almost 3x as much Aluminium and Chromium\n\n- &9Sapphire Slurry&r returns 2x as much Aluminium\n\n- &aGreen Sapphire Slurry&r returns 2x as much Aluminium and a little extra Beryllium\n\nAnd on top of that, they all have a small chance to return some extra Titanium, Iron, and Vanadium too!", - "quests.ore_proc.gem_slurry.task": "Any Gem Slurry Ore", + "quests.ore_proc.native_ore.title": "Добро пожаловать в переработку руды", + "quests.ore_proc.native_ore.subtitle": "Перерабатывать или не перерабатывать", + "quests.ore_proc.native_ore.desc": "Важной частью &6GregTech&r являются его &dМеханики Переработки Руды&r, но они могут оказаться довольно сложными, поэтому эта глава создана, чтобы помочь!\n\nДля начала стоит обратить внимание на вкладку &6Ore Processing Diagram&r в EMI — нажмите клавишу просмотра использований (по умолчанию &bU&r) на любом предмете, связанном с переработкой руды, и найдите вкладку с иконкой ванильной железной руды. На первый взгляд эта диаграмма может показаться перегруженной, но мы разберём всё шаг за шагом.\n\nБольшая часть философии GregTech заключается в том, что для решения проблемы существует не один путь, но мы отметили всё важное &eзвёздочкой&r, так что если вы полностью потерялись — попробуйте следовать этим отметкам!", + "quests.ore_proc.native_ore.task": "Я согласен не закидывать всё подряд в печь", + "quests.ore_proc.robot_arm.title": "Переработка руды с помощью инструментов GregTech", + "quests.ore_proc.robot_arm.subtitle": "Решая собственные проблемы собственными средствами", + "quests.ore_proc.robot_arm.desc": "GregTech поставляется с собственными инструментами, которые помогают решать логистику переработки руды.\n\n&6Роботизированный Манипулятор&r может перемещать точное количество предметов в машину — например, помещать в Лазерный Гравёр только повреждённые (flawed) драгоценные камни и только тогда, когда у вас есть ровно два.\n\n&6Тег-Фильтр&r позволяет фильтровать предметы по тегу, например '&5*purified_ores*&r', чтобы выбирать все очищенные руды.\n\n&4Умный Фильтр&r может фильтровать предметы в зависимости от их &6рецепта&r. Например, если использовать его вместе с роботизированной рукой на электролизёре и установить руке точную подачу (exact), она будет перемещать пыль (dusts) в электролизёр только тогда, когда их количество соответствует требованиям рецепта!", + "quests.ore_proc.ae2.title": "Переработка руды с Applied Energistics 2", + "quests.ore_proc.ae2.subtitle": "Шина хранения по тегам? Что это такое?", + "quests.ore_proc.ae2.desc": "AE2 отлично подходит для перемещения предметов без километров кабельной лапши! Вы можете использовать &dШину Храненения по Тегам&r, чтобы указать вашей сети, куда складывать предметы, соответствующие тегу выбранного предмета. Посмотреть его можно, нажав F3 + H. Например, если вы хотите отправлять все Очищенные Руды в сундук, просто установите на него Шину Храненения по Тегам и задайте фильтр '&5*purified_ores*&r'.\n\nСуществует множество онлайн-гайдов по настройке AE2, но отдельная подсеть (subnet) для обработки всей руды перед попаданием в ваше основное хранилище — очень хорошая идея!", + "quests.ore_proc.gtcy.title": "Переработка руды, но крупнее", + "quests.ore_proc.gtcy.subtitle": "Когда размер действительно имеет значение", + "quests.ore_proc.gtcy.desc": "Когда вы добираетесь до IV, вам открывается доступ к мультиблочным версиям всех одноблочных машин GregTech. Они выполняют те же рецепты, что и их одноблочные аналоги, но гораздо гибче — вы можете установить на них множество огромных Входных Люком, можете разгонять их с помощью Энергетических Входных Разъемов более высокого уровня, вместо создания новой машины на каждый тир, а также можете использовать &6Параллельные Разъемы&r для выполнения нескольких рецептов одновременно!\n\nВсе эти машины требуют сплавов, создаваемых в &bДоменной Печи для Сплавов&r, доступной в конце тира &dEV&r.", + "quests.ore_proc.copper_tier.title": "Переработка руд в Медной Эпохе", + "quests.ore_proc.copper_tier.desc": "Этот ряд описывает самые базовые способы переработки руды. Никаких побочных продуктов и никакой автоматизации.", + "quests.ore_proc.bronze_tier.title": "Переработка руд в Бронзовой Эпохе", + "quests.ore_proc.bronze_tier.desc": "Этот ряд посвящён тому, что становится доступно после получения любой Бронзовой Наковальни.", + "quests.ore_proc.steel_tier.title": "Переработка руд в Стальной Эпохе", + "quests.ore_proc.steel_tier.desc": "Стальная Наковальня открывает ваши первые побочные продукты от промывки руды.", + "quests.ore_proc.steam_tier.title": "Переработка руд в Паровой Эпохе", + "quests.ore_proc.steam_tier.desc": "Паровые машины дают доступ ко вторым побочным продуктам — от центрифугирования.", + "quests.ore_proc.lv_tier.title": "Переработка руд в &7LV&r", + "quests.ore_proc.lv_tier.desc": "LV приносит множество машин, способных перерабатывать руды различными способами. Самой важной, вероятно, является Термальная Центрифуга.", + "quests.ore_proc.mv_tier.title": "Переработка руд в &bMV&r", + "quests.ore_proc.mv_tier.desc": "На MV происходит немногое, кроме того, что электролизёр становится куда более мощным.", + "quests.ore_proc.hv_tier.title": "Переработка руд в &6HV&r", + "quests.ore_proc.hv_tier.desc": "HV Дробители теперь выдают побочные продукты! Если у вас всё ещё нет выделенной системы переработки руд, сейчас определённо самое время её построить.", + "quests.ore_proc.ev_tier.title": "Переработка руд в &5EV&r", + "quests.ore_proc.ev_tier.desc": "EV — первый тир, на котором вам потребуется разбивать переработку руды на разные «линии».", + "quests.ore_proc.iv_tier.title": "Переработка руд в &9IV&r", + "quests.ore_proc.iv_tier.desc": "На IV становятся доступны огромные мультиблоки, которые значительно ускорят переработку руд.", + "quests.ore_proc.luv_tier.title": "Переработка руд в &dLuV&r", + "quests.ore_proc.luv_tier.desc": "Линия Наквада уровня LuV станет настоящим испытанием вашей системы переработки руд. Справятся ли ваши машины?", + "quests.ore_proc.raw_ore.title": "Сырая Руда", + "quests.ore_proc.raw_ore.desc": "Этот столбец показывает способы обработки сырой руды — первый шаг переработки руд!", + "quests.ore_proc.crushed_ore.title": "Дроблённая Руда", + "quests.ore_proc.crushed_ore.desc": "Этот столбец показывает, как переработать дроблённую руду, что почти всегда является вторым шагом.", + "quests.ore_proc.purified_ore.title": "Очищенная Руда", + "quests.ore_proc.purified_ore.desc": "Этот столбец показывает, что можно сделать с очищенной рудой.", + "quests.ore_proc.refined_ore.title": "Обработанная Руда", + "quests.ore_proc.refined_ore.desc": "Единственное, что действительно можно сделать с обработанной рудой — это раздробить её.", + "quests.ore_proc.impure_dust.title": "Грязная кучка пыли", + "quests.ore_proc.impure_dust.desc": "Отмой эту грязную пыль!", + "quests.ore_proc.purified_dust.title": "Очищенная кучка пыли", + "quests.ore_proc.purified_dust.desc": "Этот столбец показывает, что можно сделать с очищенной пылью.", + "quests.ore_proc.dust_processed.title": "Ваша последняя пыль", + "quests.ore_proc.dust_processed.subtitle": "А может и нет?", + "quests.ore_proc.dust_processed.desc": "&6Кучки Пыли&r — это окончательная форма почти каждой руды.\n\nОтсюда вы можете отправить её в &cПечь&r, сложить в &eхранилище&r или даже начать использовать прямо сейчас! Некоторые пыли потребуют ещё одного последнего шага, прежде чем станут по-настоящему полезными.\n\nНе забывайте поддерживать свою &6линию переработки руд&r в идеальном состоянии! По мере развития вам захочется расширять и улучшать её, чтобы тратить меньше времени на шахтёрство и больше на грегтеччинг.", + "quests.ore_proc.macerator_byproduct.title": "Дробление с побочными продуктами", + "quests.ore_proc.macerator_byproduct.subtitle": "Можно выжать ещё больше из руды!", + "quests.ore_proc.macerator_byproduct.desc": "Просматривая &bEMI&r, вы, вероятно, заметили, что ваш &dИзмельчитель&r или &dЖернов&r показывают больше &bвыходов&r, чем вы фактически получаете.\n\nGregTech объясняет это не очень ясно, но эти дополнительные слоты доступны только на уровне &6HV&r. Когда вы достигнете этого тира, &6HV&r-измельчитель станет невероятно мощным, давая огромное количество бонусных побочных продуктов с каждой руды.", + "quests.ore_proc.macerator_byproduct.task": "Либо HV Измельчитель, либо HS Crushing Wheels", + "quests.ore_proc.sodium_persulfate.title": "Купание в персульфате натрия", + "quests.ore_proc.sodium_persulfate.subtitle": "Не только для травления плат", + "quests.ore_proc.sodium_persulfate.desc": "Когда вы доберётесь до LV, вас может заинтересовать использование &bХимической Ванны&r с &dПерсульфатом натрия&r, чтобы получить дополнительные побочные продукты. Не все руды можно обработать таким способом, но те, которые можно, дадут примерно &670 процентов&r шанса на побочку, по сравнению с &630 процентами&r у &bРудопромывочной Машиной&r.\n\nПерсульфат натрия может быть немного раздражающим в массовом производстве, но &9Морская Вода&r — отличный источник.\n\nКвест снизу приводит примеры, которые могут стоить вложений.", + "quests.ore_proc.sodium_ores.title": "Примеры купания в персульфате", + "quests.ore_proc.sodium_ores.subtitle": "Полезный способ сэкономить время", + "quests.ore_proc.sodium_ores.desc": "Вот несколько рекомендаций по купанию в персульфате натрия:\n\n- &6Дроблённый алюминий&r: для &dРутила&r (Титан)\n\n- &6Дроблённая бокситовая руда&r: &dГаллий&r\n\n- &6Дроблённый кобальт&r: &dКобальтит&r для &dМышьяка&r", + "quests.ore_proc.ore_washer.title": "Купание в воде", + "quests.ore_proc.ore_washer.subtitle": "Стандартный вариант для большинства руд", + "quests.ore_proc.ore_washer.desc": "Большинство руд не требуют никакой особой ванны — достаточно пропустить их через &dРудопромывочную Машину&r или использовать &9Массовое Мытьё&r с &dВентилятором в Корпусе&r.\n\nЕсли используете &bРудопромывочная Машина&r, убедитесь, что применяете &9Дистиллированную воду&r — она удваивает скорость рецепта.\n\nНет доступа ни к тому, ни к другому? Просто бросьте дроблёную руду в воду, чтобы очистить её — хотя побочных продуктов такой способ не даст.", + "quests.ore_proc.ore_washer.task": "Любая Рудопромывочная Машина", + "quests.ore_proc.mercury_ores.title": "Купание в ртути", + "quests.ore_proc.mercury_ores.subtitle": "Не суй туда палец", + "quests.ore_proc.mercury_ores.desc": "Купание некоторых руд в &dРтути&r может дать полезные побочные продукты. Не все руды можно обработать таким способом, но те, что можно, дадут примерно &670 процентов&r шанса на побочку, по сравнению с &630 процентами&r у &bРудопромывочной Машиной&r.\n\n&dРтуть&r легко получить из &cРедстоуна&r или &cКиновари&r.\n\nКвест снизу приводит хорошие примеры руд для обработки ртутью.", + "quests.ore_proc.mercury.title": "Примеры купания в ртути", + "quests.ore_proc.mercury.subtitle": "Время ванны с жидким металлом", + "quests.ore_proc.mercury.desc": "Вот несколько рекомендаций по купанию в ртути:\n\n- &6Дроблённая платиновая руда&r: &dПалладий&r\n\n- &6Дроблённая куперитовая руда&r: &dПалладий&r\n\n- &6Дроблённый никель&r: &dПлатина&r\n\n- &6Дроблённое золото&r: &dСеребро&r", + "quests.ore_proc.indium.title": "Линия Индия", + "quests.ore_proc.indium.subtitle": "Мы называем это линией, но на самом деле это всего два шага", + "quests.ore_proc.indium.desc": "&6Линия Индия&r вам, скорее всего, не понадобится до &9IV&r, но она потребует очищенные &bСфалерит&r и &bГалену&r.", + "quests.ore_proc.platline.title": "Та самая знаменитая Платиновая Линия", + "quests.ore_proc.platline.subtitle": "Игроки GregTech vs. игроки Mekanism, когда им нужен Осмий:", + "quests.ore_proc.platline.desc": "&6Платиновая Линия&r станет вашим первым серьёзным испытанием в переработке руды, обеспечивая доступ к важнейшим металлам платиновой группы: &bПлатина&r, &bПалладий&r, &bРутений&r, &bРодий&r, &bИридий&r и &bОсмий&r.\n\nХотя существуют способы проще получить &bПлатину&r и &bПалладий&r, эта линия будет &aобязательной&r для доступа ко всем остальным.\n\nНачать Платиновую Линию можно на &6HV&r, но полностью завершить её вы не сможете до более позднего &5EV&r.", + "quests.ore_proc.electro_separator.title": "Электромагнитный сепаратор", + "quests.ore_proc.electro_separator.subtitle": "Вероятно, самая бесполезная машина GregTech", + "quests.ore_proc.electro_separator.desc": "&6Электромагнитный сепаратор&r может извлекать железо и золото из &dОбработанных руд&r, которые вы получите дроблением очищенных руд. На данный момент мы рекомендуем использовать его в первую очередь для &dНаквады&r. Если вам нужно больше &aНеодима&r, можно также перерабатывать &dБастнезит&r.", + "quests.ore_proc.electro_separator.task": "Любой Электромагнитный Сепаратор", + "quests.ore_proc.macerator_separator.title": "Измельчитель", + "quests.ore_proc.macerator_separator.subtitle": "(снова)", + "quests.ore_proc.macerator_separator.desc": "Измельчитель иногда может давать другие побочные продукты из очищенных руд, чем другие маршруты, но всё это остаётся привязанным к уровню &6HV&r, как и любые другие побочные продукты измельчения.", + "quests.ore_proc.macerator_separator.task": "Любой Измельчитель", + "quests.ore_proc.thermal_centrifuge.title": "Термальная центрифуга", + "quests.ore_proc.thermal_centrifuge.subtitle": "Лучший вариант для большинства очищенных руд", + "quests.ore_proc.thermal_centrifuge.desc": "Для всех остальных Очищенных руд, которые не требуют особой обработки, лучше всего пропустить их через &dТермальную центрифугу&r. Эта машина производит побочные продукты с хорошей стабильностью, используя только электричество. Однако она довольно медленная, поэтому мы рекомендуем сделать несколько таких машин.", + "quests.ore_proc.thermal_centrifuge.task": "Любая Термальная центрифуга", + "quests.ore_proc.sifter.title": "Просеиватель", + "quests.ore_proc.sifter.subtitle": "Симулятор скайблока", + "quests.ore_proc.sifter.desc": "&6Просеиватель&r должен использоваться для всех ваших &aСамоцветов&r. Он даёт значительно больше выхода с одной руды, чем любые другие методы, и это единственный способ получить Непревзойдённые и Безупречные самоцветы до лазерной гравировки на &6HV&r.", + "quests.ore_proc.sifter.task": "Любой Просеиватель", + "quests.ore_proc.centrifuge_sifter.title": "Центрифугирование пыли", + "quests.ore_proc.centrifuge_sifter.subtitle": "Побочные продукты от побочных продуктов", + "quests.ore_proc.centrifuge_sifter.desc": "&6Просеиватель&r может выдавать &6Очищенную пыль&r, которую можно отправить в центрифугу, чтобы получить ещё немного побочных продуктов.", + "quests.ore_proc.centrifuge_sifter.task": "Любая Центрифуга", + "quests.ore_proc.electrolyzer.title": "Дальнейшая переработка", + "quests.ore_proc.electrolyzer.subtitle": "Анкор для руды!", + "quests.ore_proc.electrolyzer.desc": "Некоторые &6Кучки Пыли&r не имеют прямого применения. Например, &2Танталит&r нужно обработать в &6Электролизёре&r, чтобы извлечь сырьевые элементы &dТантала&r и &dМарганца&r.\n\nБольшинство этих рецептов будет доступно только с &bMV Электролизёром&r, так что возвращайтесь к этому позже!", + "quests.ore_proc.electrolyzer.task": "Любой Электролизёр", + "quests.ore_proc.packer.title": "Упаковщик", + "quests.ore_proc.packer.subtitle": "Он реально быстрый", + "quests.ore_proc.packer.desc": "В старые времена GregTech этот маленький парень использовался очень активно — из переработки руды получалось много &6Малых&r и &6Крошечных Кучек Пыли&r.\n\nСейчас он в основном полезен для автоматической упаковки, например, &dРедкоземельных&r элементов в &6Центрифуге&r, возвращая множество &6Малых Кучек Пыли&r.\n\nНе забывайте: &eРоботизированный Манипулятор&r в режиме Supply Exact может быть полезен, чтобы не забивать входные слоты.", + "quests.ore_proc.packer.task": "Любой Упаковщик", + "quests.ore_proc.bauxite.title": "Линия Бокситов", + "quests.ore_proc.bauxite.subtitle": "Новинка для современных версий GregTech!", + "quests.ore_proc.bauxite.desc": "Вы &oможете&r просто электролизовать всю вашу Бокситовую пыль, чтобы получить жалкие 6 алюминия и 1 рутил с 15 бокситов... Или вы можете попробовать &6Линию Бокситов&r!\n\nЭта новая линия переработки даёт примерно в 2 раза больше &bАлюминия&r и в 3 раза больше &4Рутила&r с каждого боксита, а также бесплатно даёт немного Галлия, Железа, Неодима и Хрома!", + "quests.ore_proc.gem_slurry.title": "Дроблённые Руды (Самоцветы)", + "quests.ore_proc.gem_slurry.subtitle": "Мы... кристаллы...", + "quests.ore_proc.gem_slurry.desc": "&6Дроблённые Самоцветы&r — это опциональные, но короткие линии переработки для Рубинов, Сапфиров и Зелёных Сапфиров, чтобы выжать немного больше ресурсов из них. В сравнении с электролизом:\n\n- &cДробленный Рубин&r даёт почти в 3 раза больше Алюминия и Хрома\n\n- &9Дробленный Сапфир&r даёт в 2 раза больше Алюминия\n\n- &aДробленный Зелёный Сапфир&r даёт в 2 раза больше Алюминия и немного Бериллия\n\nИ вдобавок, все они имеют небольшой шанс дать немного Титана, Железа и Ванадия!", + "quests.ore_proc.gem_slurry.task": "Любой Дробленный Самоцвет", "quests.space_survival": "Советы - Космическое выживание", "quests.space_survival.subtitle": "Единственное место, которое не было испорчено капитализмом... Космос!", "quests.space_survival.preparations.title": "Pre-Launch Preparations", @@ -3168,7 +3169,7 @@ "quests.space_survival.stone_dust_centrifuging.title": "Helium-3", "quests.space_survival.stone_dust_centrifuging.subtitle": "Clown gas", "quests.space_survival.stone_dust_centrifuging.desc.1": "The Moon is full of &eHelium-3&r, another important resource, but it's stuck inside the stone! There's two ways to get your hands on some:\n\n1) If you haven't set up any stone dust centrifuging automation before, here's a quick introduction: A Rock Crusher can produce infinite raw stone, which a Macerator crushes into dust for a Centrifuge to process.\n\nHere on the Moon, Anorthosite, Norite, and Phonolite can thus be processed into an infinite source of Helium-3!", - "quests.space_survival.stone_dust_centrifuging.desc.2": "2) Pump it out of the ground with a &9Fluid Rig&r This method is simpler, but doesn't come with any useful byproducts.\n\nHelium-3 is used for several things, of which the most important is making more air to breathe via &6Heliox-3&r! You can also use it as \"fertiliser\" for Chorus Fruit in the Electric Greenhouse, and eventually as another fuel for Fusion Power.", + "quests.space_survival.stone_dust_centrifuging.desc.2": "2) Pump it out of the ground with a &9Fluid Rig&r This method is simpler, but doesn't come with any useful byproducts.\n\nHelium-3 is used for several things, of which the most important is making more air to breathe via &6Heliox-3&r! You can also use it as \"fertilizer\" for Chorus Fruit in the Electric Greenhouse, and eventually as another fuel for Fusion Power.", "quests.space_survival.stone_dust_centrifuging.task": "Any ", "quests.space_survival.compressed_gases.title": "Compressed Breathable Gases", "quests.space_survival.compressed_gases.subtitle": "Because pure Oxygen is deadly", @@ -3267,7 +3268,7 @@ "quests.space_survival.t2_space_suit.desc": "With this next space suit, you'll be able to survive both the &bcoldest&r and the &chottest&r environments that space can throw at you! It's required to stop you from immediately combusting as soon as you set foot on &6Venus&r and &5Mercury&r.\n\nAs a bonus, it also comes with some extra armor and air capacity!", "quests.space_survival.mars_tapping.title": "Crimsene and Warpane", "quests.space_survival.mars_tapping.subtitle": "You LOVE tree tapping!", - "quests.space_survival.mars_tapping.desc": "Crimson and Warped Mushrooms can be tree tapped for &4Crimsene&r and &3Warpane&r respectively.\n\nYou'll need both to get started on producing &9Iodine&r, but they don't often grow in the same place, so you might need to travel a bit. Crimson Mushrooms grow more on the East side of Mars, while Warped grow more on the West.\n\nDon't forget that you can tap directly into open GregTech fluid pipes!\n\n&9Tip:&r Want to show off? You can also build a canoe out of Crimson Stems, and build a Rowboat or Sloop out of Warped ones!", + "quests.space_survival.mars_tapping.desc": "Crimson and Warped Mushrooms can be tree tapped for &4Crimsene&r and &3Warpane&r respectively.\n\nYou'll need both to get started on producing &9Iodine&r, but they don't often grow in the same place, so you might need to travel a bit. Crimson Mushrooms grow more on the East side of Mars, while Warped grow more on the West. You can also obtain the saplings from the corresponding Endermen.\n\nDon't forget that you can tap directly into open GregTech fluid pipes!\n\n&9Tip:&r Want to show off? You can also build a canoe out of Crimson Stems, and build a Rowboat or Sloop out of Warped ones!", "quests.space_survival.iodine.title": "The Iodine Line", "quests.space_survival.iodine.subtitle": "Mushroom chemistry!", "quests.space_survival.iodine.desc": "Mix together the Crimsene and Warpane, along with some Krypton from Mars Air Distillation (it's looped) and the heat from your Fission Reactor, and you'll get Iodine!\n\nThis process is slow, but you shouldn't need a lot of it for now, and there will be better methods of obtaining Iodine on further planets.", diff --git a/kubejs/assets/tfg/lang/uk_ua.json b/kubejs/assets/tfg/lang/uk_ua.json index 7c9cdbe18..248b8b4b0 100644 --- a/kubejs/assets/tfg/lang/uk_ua.json +++ b/kubejs/assets/tfg/lang/uk_ua.json @@ -1199,6 +1199,7 @@ "ore_vein.tfg.normal_sphalerite": "Сфалерит і Пірит", "ore_vein.tfg.normal_spodumene": "Сподумен та Лепідоліт", "ore_vein.tfg.normal_sulfur": "Сірка та Пірит", + "ore_vein.tfg.normal_tarkianite": "Таркіаніт та Нафтові піски", "ore_vein.tfg.normal_tetrahedrite": "Тетраедрит (Звичайний)", "ore_vein.tfg.surface_bismuthinite": "Вісмут (Поверхня)", "ore_vein.tfg.surface_cassiterite": "Каситерит (Поверхнивий)", @@ -1447,7 +1448,7 @@ "tfg.tooltip.machine.one_energy_hatch": "Приймає рівно §6Один§r енергетичний люк", "tfg.tooltip.machine.two_energy_hatches": "Приймає до §6Двох§r енергетичних люків", "tfg.tooltip.machine.subtick": "Ця машина підтримує §2Підтакт§r!", - "tfg.tooltip.machine.coil_energy_discount": "Кожна котушка після §6Мельхіору§7 зменшує споживання енергії на §r10%§7.§r", + "tfg.tooltip.machine.coil_energy_discount": "Кожна котушка після §6Мельхіору§r зменшує споживання енергії на §r10%§7.§r", "tfg.tooltip.machine.bioreactor_1": "§7Хімія зустрічається з Біологією§r", "tfg.tooltip.machine.bioreactor_2": "§7Поєднує органічні та неорганічні інгредієнти для отримання синтетичних біологічних продуктів.§r", "tfg.tooltip.machine.growth_chamber_1": "§7Вирощування нового життя§r", @@ -2678,7 +2679,7 @@ "quests.low_voltage.lv_nitrogen.task": "Азот", "quests.low_voltage.lv_arc_furnace.title": "Дуговa Піч", "quests.low_voltage.lv_arc_furnace.subtitle": "Дугова піч ще ніколи не була такою гарною", - "quests.low_voltage.lv_arc_furnace.desc.1": "&3Дугова піч&r використовує трохи &9кисню&r для виплавки предметів іншим способом, ніж звичайні печі. \n\nТи можеш використовувати її для простішого виробництва &aкованого заліза&r, подвоєння &aскла&r та отримання &aвідпаленого міді&r для дешевших електронних компонентів. Це також твій новий найкращий спосіб створення &4червоного сталі&r та &1синього сталі&r у злитках! \n\nВона також може переробляти різні компоненти та машини назад у їхні вихідні матеріали.", + "quests.low_voltage.lv_arc_furnace.desc.1": "&3Дугова піч&r використовує трохи &9кисню&r для виплавки предметів іншим способом, ніж звичайні печі. \n\nТи можеш використовувати її для простішого виробництва &aкованого заліза&r, подвоєння &aскла&r та отримання &aвідпаленого міді&r для дешевших електронних компонентів.\n\nВона також може переробляти різні компоненти та машини назад у їхні вихідні матеріали.", "quests.low_voltage.lv_arc_furnace.desc.2": "&l&3Лор:&r&o У попередніх версіях GregTech були і Дугова піч, і &bПлазмова дугова піч&f. У такому разі, чому б не використовувати одну машину для обох? \nНу, саме так ми і думали — але врешті-решт вирішили прибрати один із двох &bплазмових&f рецептів. А потім і другий &bплазмовий&f рецепт. \n\n&oКоротко кажучи, &bПлазмова дугова піч&f &4зникла&f. RIP.", "quests.low_voltage.lv_extractor.title": "Основи рідинної екстракції", "quests.low_voltage.lv_extractor.subtitle": "Екстрактор екстрагує...", diff --git a/kubejs/assets/tfg/lang/zh_cn.json b/kubejs/assets/tfg/lang/zh_cn.json index c4296a2aa..048f7f4a5 100644 --- a/kubejs/assets/tfg/lang/zh_cn.json +++ b/kubejs/assets/tfg/lang/zh_cn.json @@ -103,8 +103,8 @@ "block.tfg.gabbro_support": "辉长岩支撑梁", "block.tfg.shale_support_horizontal": "页岩水平支撑梁", "block.tfg.shale_support": "页岩支撑梁", - "block.tfg.claystone_support_horizontal": "粘土岩水平支撑梁", - "block.tfg.claystone_support": "粘土岩支撑梁", + "block.tfg.claystone_support_horizontal": "黏土岩水平支撑梁", + "block.tfg.claystone_support": "黏土岩支撑梁", "block.tfg.limestone_support_horizontal": "石灰岩水平支撑梁", "block.tfg.limestone_support": "石灰岩支撑梁", "block.tfg.conglomerate_support_horizontal": "砾岩水平支撑梁", @@ -494,14 +494,14 @@ "block.tfg.uv_gas_pressurizer": "§3终极气体加压器§r", "block.tfg.fluid.semiheavy_ammoniacal_water": "半重氨水", "block.tfg.grass.mars_dirt": "火星土壤", - "block.tfg.grass.mars_clay_dirt": "火星粘土质土壤", + "block.tfg.grass.mars_clay_dirt": "火星黏土质土壤", "block.tfg.grass.mars_farmland": "火星农田", "block.tfg.grass.mars_path": "火星路径", "block.tfg.grass.amber_mycelium": "琥珀菌丝", "block.tfg.grass.amber_clay_mycelium": "琥珀黏土菌丝", "block.tfg.grass.amber_kaolin_mycelium": "琥珀高岭土菌丝", "block.tfg.grass.rusticus_mycelium": "红锈菌丝", - "block.tfg.grass.rusticus_clay_mycelium": "红锈粘土菌丝", + "block.tfg.grass.rusticus_clay_mycelium": "红锈黏土菌丝", "block.tfg.grass.rusticus_kaolin_mycelium": "红锈高岭土菌丝", "block.tfg.grass.sangnum_mycelium": "赤血菌丝", "block.tfg.grass.sangnum_clay_mycelium": "赤血黏土菌丝", @@ -1040,7 +1040,7 @@ "item.tfg.etching_diamond_tip": "蚀刻钻石钻头", "item.tfg.spade_head_extruder_mold": "模头(锹头)", "item.tfg.mining_hammer_head_extruder_mold": "模头(采矿锤头)", - "item.tfg.sword_head_extruder_mold": "模头(剑头)", + "item.tfg.sword_head_extruder_mold": "模头(剑身)", "item.tfg.pickaxe_head_extruder_mold": "模头(镐头)", "item.tfg.shovel_head_extruder_mold": "模头(铲头)", "item.tfg.axe_head_extruder_mold": "模头(斧头)", @@ -1144,7 +1144,7 @@ "material.gtceu.lactose": "乳糖", "material.tfg.gabbro": "辉长岩", "material.tfg.shale": "页岩", - "material.tfg.claystone": "粘土岩", + "material.tfg.claystone": "黏土岩", "material.tfg.limestone": "石灰岩", "material.tfg.conglomerate": "砾岩", "material.tfg.dolomite": "白云岩", @@ -1251,6 +1251,21 @@ "material.tfg.zirconium_bromide": "溴化锆(IV)", "material.tfg.zirconium_diboride": "二硼化锆", "material.tfg.boron_carbide": "碳化硼", + "material.tfg.syngas": "合成气", + "material.tfg.raw_aromatic_mix": "粗芳香混合物", + "material.tfg.aromatic_feedstock": "芳香原料", + "material.tfg.reformed_aromatic_feedstock": "重整芳香原料", + "material.tfg.reformate_gas": "重整气", + "material.tfg.cracker_off_gas": "裂化重整尾气", + "material.tfg.glucose": "葡萄糖", + "material.tfg.galactose": "半乳糖", + "material.tfg.fructose": "果糖", + "material.tfg.sorbitol": "山梨醇", + "material.tfg.14_sorbitan": "1,4-脱水山梨醇", + "material.tfg.isosorbide": "异山梨醇", + "material.tfg.linolenic_acid": "α-亚麻酸", + "material.tfg.isosorbide_ln": "亚麻酸异山梨醇酯", + "material.tfg.epox_isosorbide_ln": "环氧化亚麻酸异山梨醇酯", "ore_vein.tfg.deep_sheldonite": "硫铂矿, 斑铜矿", "ore_vein.tfg.deep_garnet_amethyst": "紫水晶, 石榴石", "ore_vein.tfg.deep_garnet_opal": "蛋白石, 石榴石", @@ -1293,6 +1308,7 @@ "ore_vein.tfg.normal_sphalerite": "闪锌矿, 黄铁矿", "ore_vein.tfg.normal_spodumene": "锂辉石, 锂云母", "ore_vein.tfg.normal_sulfur": "硫, 黄铁矿", + "ore_vein.tfg.normal_tarkianite": "塔基安矿, 油砂", "ore_vein.tfg.normal_tetrahedrite": "黝铜矿 (普通)", "ore_vein.tfg.surface_bismuthinite": "辉铋矿 (地表)", "ore_vein.tfg.surface_cassiterite": "锡石矿 (地表)", @@ -1478,10 +1494,14 @@ "tfg.emi.ore_veins.rock_types": "存在于岩石类型:", "tfg.emi.ore_veins.rarity": "稀有度:%d", "tfg.emi.ore_veins.density": "密度:%d", - "tfg.emi.ore_veins.y_ranges": "深度:%d 至 %d", + "tfg.emi.ore_veins.y_ranges": "Y轴高度:%d 至 %d", "tfg.emi.ore_veins.size": "尺寸:%d", "tfg.emi.ore_veins.height": "高度:%d", "tfg.emi.ore_veins.radius": "半径:%d", + "ore_vein.tfg.rose_quartz": "玫瑰石英", + "ore_vein.tfg.rose_quartz.emi.0": "生成于海拔较低", + "ore_vein.tfg.rose_quartz.emi.1": "且气候低于-10°C的", + "ore_vein.tfg.rose_quartz.emi.2": "生物群系中。", "emi.category.tfg.ore_vein_info": "矿脉信息", "tfg.emi.liquid_bb_burn_time": "耗时:%s秒", "tfg.emi.liquid_bb_superheat": "§l过热", @@ -1541,7 +1561,7 @@ "tfg.tooltip.machine.one_energy_hatch": "只允许有且仅有§61个§f能源仓", "tfg.tooltip.machine.two_energy_hatches": "允许有最多§62个§r能源仓", "tfg.tooltip.machine.subtick": "这台机器支持§2子刻机制§r!", - "tfg.tooltip.machine.coil_energy_discount": "使用§6白铜§7后的每个线圈等级可以减少§f10%§7的能源消耗。", + "tfg.tooltip.machine.coil_energy_discount": "使用§6白铜§r后的每个线圈等级可以减少§f10%§7的能源消耗。", "tfg.tooltip.machine.bioreactor_1": "§7化学与生物学的交汇§r", "tfg.tooltip.machine.bioreactor_2": "§7通过融合有机与无机成分制造合成生物制品§r", "tfg.tooltip.machine.growth_chamber_1": "§7孕育新生§r", @@ -2568,6 +2588,8 @@ "quests.high_voltage.final_dust.title": "无限尘埃", "quests.high_voltage.final_dust.subtitle": "终于!无限资源!", "quests.high_voltage.final_dust.desc": "这是在解锁&e金星&r上更高级的加工设施前,你能在&7月球&r上获取的所有&c无限资源&r。\n\n有了这些资源,你将拥有持续推进&d格雷科技&r进程所需的一切——尤其是维护月球基地&a正常运作&r的必需品。\n\n这些资源对以下用途至关重要:\n• 制作&dAE2组件&r\n• 生产&c无限&r供应的&6轨道炮弹药&r\n\n被动自动化现在就在你触手可及之处——迈步向前,让它成为现实!", + "quests.high_voltage.titanium_greate.title": "钛级格雷机械", + "quests.high_voltage.titanium_greate.desc": "这是在 TFG 中可达成的最终等级格雷机械。若说它有何“极限”之处——那便是极致的可选性(完全不做也行)。", "quests.low_voltage": "&7LV&r - 低压", "quests.low_voltage.subtitle": "驯服电力,开启你的格雷科技之旅", "quests.low_voltage.lv_machine_hull.title": "你的第二个机器外壳", @@ -2599,7 +2621,7 @@ "quests.low_voltage.link_chapter.title": "给我解释一下能量", "quests.low_voltage.link_chapter.subtitle": "有一整章关于能量的内容", "quests.low_voltage.link_chapter.desc": "点击此处查看章节", - "quests.low_voltage.link_chapter.task": "阅读它", + "quests.low_voltage.link_chapter.task": "我读完了", "quests.low_voltage.lv_combuston_gen.title": "内燃发电机", "quests.low_voltage.lv_combuston_gen.subtitle": "它会轰隆作响并产生能量", "quests.low_voltage.lv_combuston_gen.desc": "&7LV内燃发电机&r的制作成本可能略高于其他发电机,但其燃料蕴含极高能量。这使得它更便于携带——当需要为远离基地的发电机供能时,一桶&2生物柴油&r即可传输大量电力。\n\n与其他&7LV发电机&r一样,它可产生&a32EU/t&r的能量。", @@ -2779,7 +2801,7 @@ "quests.low_voltage.lv_nitrogen.task": "氮", "quests.low_voltage.lv_arc_furnace.title": "电弧炉", "quests.low_voltage.lv_arc_furnace.subtitle": "电弧炉从未如此出色", - "quests.low_voltage.lv_arc_furnace.desc.1": "&3电弧炉&r通过消耗少量&9氧气&r实现与传统熔炉截然不同的冶炼方式。\n\n借助它,你可以更轻松地制备&a锻铁&r、实现&a玻璃&r产量翻倍,并获取制造廉价电子元件所需的&a退火铜&r。它还是冶炼&4红钢&r与&1蓝钢&r锭的最高效新途径!\n\n该设备还能将各类组件和机器回收分解为原始材料。", + "quests.low_voltage.lv_arc_furnace.desc.1": "&3电弧炉&r通过消耗少量&9氧气&r实现与传统熔炉截然不同的冶炼方式。\n\n借助它,你可以更轻松地制备&a锻铁&r、实现&a玻璃&r产量翻倍,并获取制造廉价电子元件所需的&a退火铜&r。\n\n该设备还能将各类组件和机器回收分解为原始材料。", "quests.low_voltage.lv_arc_furnace.desc.2": "&l&3背景知识:&r&o旧版格雷科技曾同时存在电弧炉和&b等离子电弧炉&f。既然如此,何不将两者功能合并?事实上我们确实这样设想过——但最终移除了其中一个&b等离子&f配方,接着又移除了另一个&b等离子&f配方。\n\n&o简而言之,&b等离子电弧炉&f已&4正式退场&f。就此成为历史。", "quests.low_voltage.lv_extractor.title": "基础液体提取", "quests.low_voltage.lv_extractor.subtitle": "提取机用于提取……", @@ -2801,7 +2823,7 @@ "quests.low_voltage.mold_plate.desc": "别再用&6合金炉&r浪费时间了。你将需要大量&6橡胶片&r,后续阶段还会用它处理其他类型的塑料制品。\n\n或许你认为能用压模器制作橡胶片,但&6流体固化机&r功能多样,而压模器在&bMV&r阶段前几乎没用。", "quests.low_voltage.cupronickel_ingot.title": "白铜锭", "quests.low_voltage.cupronickel_ingot.subtitle": "它是一种合金", - "quests.low_voltage.cupronickel_ingot.desc": "&7格雷科技进阶的一大核心在于获取新材料,这些材料将用于升级机器和解锁高级组件。&r\n\n你将接触的第一种合金是&b白铜&r——这仅是漫长征程的起点。\n该材料用于升级&6电力高炉&r,乃是工业发展不可或缺的关键步骤。\n\n幸运的是,这第一步相当简单:基础的&7LV合金炉&r即可胜任。\n因此即便配方显示需要&b128个白铜&r也无需担忧——实际操作比看起来容易得多!&r\n\n后续阶段的合金制备将日趋复杂,趁简单的时候好好享受吧!", + "quests.low_voltage.cupronickel_ingot.desc": "格雷科技进阶的一大核心在于获取新材料,这些材料将用于升级机器和解锁高级组件。\n\n你即将接触的其中一种材料是&b白铜&r——这仅是漫长征程的起点。\n该材料用于建造你的第一座&6电力高炉&r,乃是工业发展不可或缺的关键步骤。\n\n幸运的是,这第一步相当简单:一台&7合金炉&r即可胜任。\n因此即便配方显示需要&b128个白铜&r也无需担忧——实际操作比看起来容易得多!&r\n\n后续阶段的合金制备将日趋复杂,趁简单的时候好好享受吧!", "quests.low_voltage.cupronickel_coil.title": "白铜线圈", "quests.low_voltage.cupronickel_coil.subtitle": "宝宝的第一个加热线圈", "quests.low_voltage.cupronickel_coil.desc": "准备&a128份白铜&r、&a32份青铜&r与&a16份锡合金&r,用于制造初代电力高炉所需的加热线圈。\n\n这仍不到整座电力高炉原材料成本的一半(!)。你还需要准备约各一组的殷钢与钢材,请尽快投入采矿作业。\n\n白铜线圈能使电力高炉处理最高&d1800K&r的配方(未计入电压增益)。这个温度在我们看来相当炙热。\n\n&6线圈详解教程位于&l格雷科技能源&r&6标签页——前往查阅以了解更多!&r", @@ -2830,6 +2852,12 @@ "quests.low_voltage.mv_hull.subtitle": "进展相当顺利,只剩7个了!", "quests.low_voltage.mv_hull.desc1": "干得漂亮!你现在已经有了&bMV机器外壳&r、第一块&bMV电路&r和第一台&6电路组装机&r。\n\n这正是&6格雷科技&r的精髓所在——每个阶段你都将运用全新的&6材料&r与&6化工产品&r来制造新一代&6机器&r。接下来你将体验&5酣畅淋漓的创造乐趣&r,我们都有点羡慕了!", "quests.low_voltage.mv_hull.desc2": "在深入&bMV&r阶段之前请记住,若不想过度依赖格雷科技,在&6TFG&r整合包中你可以运用&6机械动力&r来强化基础设施。铝制传动杆与齿轮的应力容量是钢制的四倍,装配后所有机器都能更快地运转!", + "quests.low_voltage.aluminium_greate.title": "铝级格雷机械", + "quests.low_voltage.aluminium_greate.subtitle": "也被称为“中应力”阶段", + "quests.low_voltage.aluminium_greate.desc": "距上次升级已有一段时日,现在你终于解锁了全新等级的格雷机械齿轮与传动轴。与之前一样,铝质部件的应力容量达到了钢质的&b四倍&r。\n\n继续推进格雷机械系列内容完全属于可选流程——我们更建议你转向格雷科技主线发展。但若你希望继续沿用原有设备,本次升级将帮助你&b理顺&r部分旧装置的杂乱布局。\n\n你可以通过&e蒸汽引擎&r进一步提升整体应力规模,或利用&9Create Additions&r的&e电动马达&r将EU电能转化为SU应力单位。", + "quests.low_voltage.oil.title": "提前发现石油了?", + "quests.low_voltage.oil.subtitle": "致LV阶段的卷王", + "quests.low_voltage.oil.desc": "若你在旅途中发现任何油砂矿或(沙漠中的)石油喷口,其实在LV阶段便可稍加利用。\n\n你可将其转化为重燃油用于锅炉,或更佳——用它生产少量&b聚乙烯&r!\n\n相关细节虽在MV章节,但此刻你已可用聚乙烯制造数种物品,例如成本更低的机器外壳与二极管。", "quests.medium_voltage": "&bMV&r - 中压", "quests.medium_voltage.subtitle": "进军石油化工,精炼电子技术", "quests.medium_voltage.mv_machine_hull.title": "欢迎来到MV!", @@ -2841,7 +2869,7 @@ "quests.medium_voltage.mv_miner.title": "自动采矿", "quests.medium_voltage.mv_miner.subtitle": "所以你自己挖矿挖烦了?", "quests.medium_voltage.mv_miner.desc.1": "当这位&r好心的帮手被放置在矿脉上方时能替你采集矿石。\n\n矿机下方的垂直范围无限,水平范围显示在提示信息中。\n\n&bMV&r型号可能不足以覆盖整个矿脉范围,但&6HV&r型号可以做到,因此建议你暂时等待后续型号。本任务只需获得&e任意一种&r型号即可完成。", - "quests.medium_voltage.mv_miner.desc.2": "你将需要&9电力&r。&a充电电池&r或许能应急,但容易耗尽电力,操作起来不太方便。\n\n我们首推使用装有某种燃料的&3桶&r&7(若使用蒸汽则行不通!)&r配合&3发电机&r使用。\n\n将桶放置在发电机上方,用&5软槌&r右键即可自动将燃料输入发电机。", + "quests.medium_voltage.mv_miner.desc.2": "你将需要&9电力&r。&a充电电池&r或许能应急,但容易耗尽电力,操作起来不太方便。\n\n我们首推使用装有某种燃料的&3桶&r&7(若使用蒸汽则行不通!)&r配合&3发电机&r使用。\n\n将桶放置在发电机上方,用&5软槌&r或&5螺丝刀&r右键即可自动将燃料输入发电机。", "quests.medium_voltage.mv_miner.desc.3": "&c注意:&r不要忘记对矿脉所有&d9个区块进行区块加载&r&7(打开地图,按住Ctrl+左键点击申领区块,申领后启用强制加载)&r。\n\n&9提示:&r你可以选择使用&3ME箱子&r、&3背包&r或&3格雷板条箱&r作为输出容器,便于将矿石运回基地。顺带一提,&3ME箱子&r可直接通过EU供电。", "quests.medium_voltage.mv_miner.task": "任何采矿机", "quests.medium_voltage.mv_component.title": "MV组件", @@ -2850,7 +2878,7 @@ "quests.medium_voltage.electrolyzer.title": "MV电解机", "quests.medium_voltage.electrolyzer.subtitle": "我们成功进入了MV时代,不过...", "quests.medium_voltage.electrolyzer.desc.1": "&b这个设备看起来应该很熟悉&r——你之前已经见过它了。\n&2我们强烈建议你尽快制作它&r,因为它将解锁大量新的&7铝&r来源。\n\n在此之前,你唯一获取&7铝粉&r的方法是&9电解蓝宝石&r。\n但随着&bMV&r电解机的出现,资源的利用将开启全新领域。", - "quests.medium_voltage.electrolyzer.desc.2": "&6以下是一些需要寻找的关键材料:&r\n&9红宝石&r – 同时提供&7铝&r和&5铬&r。\n&9镁铝榴石&r – 通常与蓝宝石矿脉一起找到。\n&9锂云母&r – 提供大量有价值的副产物选择。\n&9方钠石&r – 附带&3氯&r和&b硅&r。\n&9黄玉&r – 以固体形式产出&3氟&r和&7铝&r。\n\n&2而这仅仅是个开始!&r使用&aEMI&r探索更多选项——我们保证,有很多东西等着你去发现。\n\n&c哦,顺便说一下:&r电解粘土现在被锁定在&6HV&r之后。\n&8我们并不抱歉。&r", + "quests.medium_voltage.electrolyzer.desc.2": "&6以下是一些需要寻找的关键材料:&r\n&9红宝石&r – 同时提供&7铝&r和&5铬&r。\n&9镁铝榴石&r – 通常与蓝宝石矿脉一起找到。\n&9锂云母&r – 提供大量有价值的副产物选择。\n&9方钠石&r – 附带&3氯&r和&b硅&r。\n&9黄玉&r – 以固体形式产出&3氟&r和&7铝&r。\n\n&2而这仅仅是个开始!&r使用&aEMI&r探索更多选项——我们保证,有很多东西等着你去发现。\n\n&c哦,顺便说一下:&r电解黏土现在被锁定在&6HV&r之后。\n&8我们并不抱歉。&r", "quests.medium_voltage.mv_extruder.title": "高级压模器", "quests.medium_voltage.mv_extruder.subtitle": "你将进行最重大的升级", "quests.medium_voltage.mv_extruder.desc": "我们&l真诚地&r希望你&c从未&r制作过&7LV&r压模器,因为只有&bMV&r压模器才真正实用。如果已经制作了,请立即通过电弧炉将其&a回收&r。\n\n压模器能使用&a锭&r将固体材料塑造成(几乎!)任何形状。这是减少微合成步骤并保持高转化效率的绝佳方式。\n\n压模器可以单步最高效地制作&6螺栓&r、&6小型齿轮&r、&6齿轮&r和&6环&r!\n\n你还可以用它来制造&d管道&r、&d螺丝&r和&d转子&r。", @@ -2975,9 +3003,6 @@ "quests.medium_voltage.mv_polyethylene.title": "聚乙烯", "quests.medium_voltage.mv_polyethylene.subtitle": "宝宝的第一种聚合物!", "quests.medium_voltage.mv_polyethylene.desc": "如果你不想那么花哨,可以直接叫它塑料。\n\n在聚合过程中添加&a氧气&r能获得比空气更佳的产出效率,后续固化操作与橡胶处理方式相同。\n\n&a聚乙烯(PE)&r是解锁&6众多新内容&r的关键材料,通常以&d板&r或&d流体&r形态使用。\n\n&l&3背景知识:&r&o为保持跨模组兼容性,1.12.2版本GTCEu中聚乙烯的矿物词典与流体名称均登记为&b塑料&f。", - "quests.medium_voltage.mv_tank.title": "超级缸", - "quests.medium_voltage.mv_tank.subtitle": "超级缸太超模了!", - "quests.medium_voltage.mv_tank.desc": "不,但说真的。\n\n这确实是&c终&6极&e便&a携&b式&9流&5体&4存储解决方案。&6单方块容纳4,000桶&r,完全无视温度与酸度限制!\n\n与流体桶特性相同,超级缸&6被破坏时会保留内部流体&r,可通过合成栏清空其内容物。\n\n若你渴望&9更大存储容量&r,可看看更高等级的超级缸或AE2流体存储单元。", "quests.medium_voltage.mv_pvc.title": "聚氯乙烯", "quests.medium_voltage.mv_pvc.subtitle": "既然已成功合成一种聚合物,再添一种又何妨?", "quests.medium_voltage.mv_pvc.desc": "&a聚氯乙烯(PVC)&r是现实世界中产量排名第三的塑料。在GTCEu中,它可在&a塑料电路板&r等物品的生产中替代聚乙烯以提高产量。从&5EV&r阶段起需用其包裹电缆。\n\nPVC物品管道在一段时间内将拥有&6最高流通量&r,不过当前大部分产线尚不需如此高速的传输。但掌握这个特性总有益处。\n\n&9专业提示:流体形态的PVC在&rGTCEu中基本从未使用,可放心将其全部固化成板。", @@ -3074,6 +3099,9 @@ "quests.medium_voltage.lsb.title": "蒸汽腾腾", "quests.medium_voltage.lsb.subtitle": "若你拥有无限燃料,这仍是可行方案", "quests.medium_voltage.lsb.desc": "若你&l仍在&r使用&3大型青铜锅炉&r,建议升级至&3大型钢锅炉&r。\n\n它的效率比&3大型青铜锅炉&r略高,可产生&d1800mB/t的蒸汽&r。\n\n现阶段我们建议你尝试其他发电方案。", + "quests.medium_voltage.stainless_greate.title": "不锈钢级格雷机械", + "quests.medium_voltage.stainless_greate.subtitle": "高应力", + "quests.medium_voltage.stainless_greate.desc": "本任务仅用于告知:格雷机械在此阶段迎来了又一次升级。\n\n你可能会发现新一代粉碎轮颇为实用——它们不仅能像HV研磨机一样提供全额副产物,还可同时处理多个物品!", "quests.metal_age": "冶金时代", "quests.metal_age.subtitle": "你的第一次技术进步。", "quests.metal_age.weld_bronze_ingots.title": "焊接青铜", @@ -3110,9 +3138,9 @@ "quests.metal_age.wrought_iron_goodies.title": "锻铁级机械动力", "quests.metal_age.wrought_iron_goodies.subtitle": "你说的这个“安山合金”是什么?", "quests.metal_age.wrought_iron_goodies.desc": "有了锻铁,你已解锁了对金属外壳的访问,这是机械动力中许多机械方块(如齿轮箱)的基础。更高级的一些将需要钢,但此时建造一个全自动的树场和农场是可行的。\n\n杂酚油用于制造防腐木板,这些木板可以制成水轮和风车,这是对动物动力的显著改进。", - "quests.metal_age.fire_clay_ingredients.title": "耐火粘土原料", + "quests.metal_age.fire_clay_ingredients.title": "耐火黏土原料", "quests.metal_age.fire_clay_ingredients.subtitle": "群峦传说的成人礼。", - "quests.metal_age.fire_clay_ingredients.desc": "耐火粘土是一种由高岭石、石墨和普通粘土制成的特殊粘土,特别耐高温。它的两个主要用途是坩埚(作为用于金属熔炼和合金化的容器的改进版本)和高炉(这是制作下一级砧和金属等级——钢——所必需的)。\n\n你可能需要长途跋涉,远离你的基地才能获得石墨和高岭土,所以准备是关键!", + "quests.metal_age.fire_clay_ingredients.desc": "耐火黏土是一种由高岭土、石墨和普通黏土制成的特殊黏土,特别耐高温。它的两个主要用途是坩埚(作为用于金属熔炼和合金化的容器的改进版本)和高炉(这是制作下一级砧和金属等级——钢——所必需的)。\n\n你可能需要长途跋涉,远离你的基地才能获得石墨和高岭土,所以准备是关键!", "quests.metal_age.overworld_kaolin.title": "高岭土来源:主世界", "quests.metal_age.overworld_kaolin.subtitle": "欢迎来到丛林", "quests.metal_age.overworld_kaolin.desc": "高岭土只能在具有高海拔、温度(至少18°C)和湿度(至少300mm降雨量)组合的地区找到。高岭土生成要求的完整列表和提示可以在《野外指南》中找到。\n\n你很可能需要向东南方向旅行非常、非常远,很可能要穿越海洋。用铁制水壶、大量食物、某种水上交通工具(如独木舟、划艇或皮划艇)以及额外的便携式存储设备来装备自己,以便尽可能多地带回家高岭土。\n\nTerraFirmaGreg任务的“提示与技巧”章节中有关于便携式存储和水上交通工具的任务。", @@ -3129,17 +3157,17 @@ "quests.metal_age.beneath_graphite.task": "穿越主世界基岩并到达幽冥之地", "quests.metal_age.kaolin_clay.title": "高岭土", "quests.metal_age.kaolin_clay.subtitle": "高岭土之旅:次时代", - "quests.metal_age.kaolin_clay.desc": "一旦你找到高岭土,你应该尽可能多地带回来!不幸的是,只有20%%的高岭土能成功烧制成高岭石粉,所以建议在现场用坑窑烘烤,以节省库存空间。\n\n在你制作了坩埚和高炉之后,你就不再需要太多高岭土了,但多带一些你认为需要的量仍然是一个好主意,以避免重复旅程。\n\n附注:如果你找到了火球花但没有找到粘土,试着再往下挖一点!有时它生成在地下一点的地方。", + "quests.metal_age.kaolin_clay.desc": "一旦你找到高岭土,你应该尽可能多地带回来!不幸的是,只有20%%的高岭土能成功烧制成高岭石粉,所以建议在现场用坑窑烘烤,以节省库存空间。\n\n在你制作了坩埚和高炉之后,你就不再需要太多高岭土了,但多带一些你认为需要的量仍然是一个好主意,以避免重复旅程。\n\n附注:如果你找到了火球花但没有找到黏土,试着再往下挖一点!有时它生成在地下一点的地方。", "quests.metal_age.graphite.title": "石墨", "quests.metal_age.graphite.subtitle": "铅笔不存在", "quests.metal_age.graphite.desc": "一旦你找到石墨,你应该尽可能多地带回来!虽然你不需要像高岭土那么多。\n石墨矿脉也富含煤和钻石,而你很快就会需要煤来制造钢。", "quests.metal_age.graphite.task": "任何形式的石墨", - "quests.metal_age.fire_clay.title": "耐火粘土", + "quests.metal_age.fire_clay.title": "耐火黏土", "quests.metal_age.fire_clay.subtitle": "终于", - "quests.metal_age.fire_clay.desc": "加热高岭土以获得高岭石粉。你可以使用木炭炉单独加热它们,但在坑窑中用小缸大批量烘烤可能更快。\n\n对于石墨,正常处理矿石,然后再次粉碎石墨粉尘以获得石墨粉。\n\n最后,将4份石墨粉、4份高岭石粉和1份粘土组合来合成耐火粘土。", - "quests.metal_age.fire_clay_products.title": "耐火粘土产品", - "quests.metal_age.fire_clay_products.subtitle": "极度耐热的粘土", - "quests.metal_age.fire_clay_products.desc": "就像普通粘土一样,耐火粘土可以通过塑性来制造你需要烧制的东西。最重要的是,耐火粘土用于制造坩埚和耐火砖,这两者都是高炉所必需的。\n\n你还将能够创建一个铸模台和浇注通道,让你可以一次将金属从坩埚铸入多个模具。\n\n最后,还有耐火锭模具,它只有1%%的几率破裂,而不是普通粘土的10%%。", + "quests.metal_age.fire_clay.desc": "加热高岭土以获得高岭石粉。你可以使用木炭炉单独加热它们,但在坑窑中用小缸大批量烘烤可能更快。\n\n对于石墨,正常处理矿石,然后再次粉碎石墨粉尘以获得石墨粉。\n\n最后,将4份石墨粉、4份高岭石粉和1份黏土组合来合成耐火黏土。", + "quests.metal_age.fire_clay_products.title": "耐火黏土产品", + "quests.metal_age.fire_clay_products.subtitle": "极度耐热的黏土", + "quests.metal_age.fire_clay_products.desc": "就像普通黏土一样,耐火黏土可以通过捏制来制造你需要烧制的东西。最重要的是,耐火黏土用于制造坩埚和耐火砖,这两者都是高炉所必需的。\n\n你还将能够创建一个铸模台和浇注道,让你可以一次将金属从坩埚铸入多个模具。\n\n最后,还有耐火锭模具,它只有1%%的几率破裂,而不是普通黏土的10%%。", "quests.metal_age.crucible.title": "坩埚", "quests.metal_age.crucible.subtitle": "像专业人士一样熔化金属", "quests.metal_age.crucible.desc": "将坩埚放置在木炭炉上方。它带有9个物品栏槽位,可容纳4032mB的流体,包括一个检查你合金化比例的界面。它们在破碎时也会保留其内容物。当放置在高炉下方时,它们也可以收集生铁。\n\n请记住,坩埚会尝试合金化里面的所有东西——它不像匠魂冶炼炉那样将金属分开保存——所以当你不使用它时,保持清洁是一个好主意。", @@ -3169,7 +3197,7 @@ "quests.metal_age.weak_steel.task3": "1份黑青铜", "quests.metal_age.highcarb_black_steel.title": "黑钢成分", "quests.metal_age.highcarb_black_steel.subtitle": "物质守恒定律在这里不适用", - "quests.metal_age.highcarb_black_steel.desc": "最后两个砧是由复杂的合金制成的,需要大量的金属来制造。脆钢和生铁可以焊接成高碳黑钢,然后可以在砧上加工成黑钢。", + "quests.metal_age.highcarb_black_steel.desc": "最后两个砧是由复杂的合金制成的,需要大量的金属来制造。脆钢和生铁可以焊接成高碳黑钢,然后可以在砧上加工成黑钢。\n\n一旦你拥有了蒸汽合金炉,就可以用它来获取&6双倍产出&r。", "quests.metal_age.black_steel_anvil.title": "五级砧:黑钢", "quests.metal_age.black_steel_anvil.subtitle": "蒸汽动力触手可及", "quests.metal_age.black_steel_anvil.desc": "有了黑钢砧,你现在可以将黑钢锭加工成不同的物品。\n\n你现在还在早期自动化章节中开启了一个庞大的新部分,涉及高压蒸汽动力!\n\n从这里,你可以直接投入工业化,或者如果你愿意,完成最后一级的砧。不过,你无法永远避开彩色钢!", @@ -3194,17 +3222,17 @@ "quests.metal_age.weak_blue_steel.sterling_silver": "1份纯银", "quests.metal_age.weak_blue_steel.bismuth_bronze": "1份铋青铜", "quests.metal_age.highcarb_red_steel.title": "红钢成分", - "quests.metal_age.highcarb_red_steel.subtitle": "像这样删除质量能否为核弹提供动力?", - "quests.metal_age.highcarb_red_steel.desc": "红钢最初是高碳红钢,由脆红钢和黑钢焊接而成。它需要在砧上加工才能变成红钢", + "quests.metal_age.highcarb_red_steel.subtitle": "《我的世界》可不是物理模拟器", + "quests.metal_age.highcarb_red_steel.desc": "红钢最初是高碳红钢,由脆红钢和黑钢焊接而成。它需要在砧上加工才能变成红钢。\n\n如果你有蒸汽合金炉,就可以用它来获得&6双倍产出&r。", "quests.metal_age.highcarb_blu_steel.title": "蓝钢成分", "quests.metal_age.highcarb_blu_steel.subtitle": "拉瓦锡在坟墓里打滚", - "quests.metal_age.highcarb_blu_steel.desc": "蓝钢最初是高碳蓝钢,由脆蓝钢和黑钢焊接而成。它需要在砧上加工才能变成蓝钢", + "quests.metal_age.highcarb_blu_steel.desc": "蓝钢最初是高碳蓝钢,由脆蓝钢和黑钢焊接而成。它需要在砧上加工才能变成蓝钢。\n\n如果你有蒸汽合金炉,就可以用它来获得&6双倍产出&r。", "quests.metal_age.redblu_anvil.title": "六级砧:红钢或蓝钢", "quests.metal_age.redblu_anvil.subtitle": "结束了", "quests.metal_age.redblu_anvil.desc": "最终级的砧!有了六级砧,你将能够将红钢和蓝钢锭加工成不同的物品。\n\n这标志着群峦传说进程的结束。现在是时候完成工业时代并制造你的第一个低电压电路了。", "quests.metal_age.red_steel_flask.title": "红钢水壶", "quests.metal_age.red_steel_flask.subtitle": "这和铁制水壶没法比", - "quests.metal_age.red_steel_flask.desc": "红钢水壶是可用最好的水壶。它可能持有与铁制水壶相同量的液体,但红钢水壶永远不会破裂。", + "quests.metal_age.red_steel_flask.desc": "红钢水壶是可用最好的水壶。它可能持有与铁制水壶相同量的液体,但红钢水壶永远不会破裂。\n\n关于丝绸,幻翼遍布于幽冥之地各处,但在下层区域更为常见。", "quests.metal_age.redblu_buckets.title": "水桶的组件", "quests.metal_age.redblu_buckets.subtitle": "桶聚变反应堆", "quests.metal_age.redblu_buckets.desc": "冶金时代的最终任务是制造一个桶。与你到目前为止一直在使用的木桶和其他流体容器不同,桶可用于携带熔岩并移动其他流体的源方块。", @@ -3450,7 +3478,7 @@ "quests.space_survival.t2_space_suit.desc": "穿上这套新一代太空服,你将能抵御宇宙中的&b极寒&r与&c酷热&r环境!它是你踏上&6金星&r和&5水星&r时,防止自身因高温而瞬间自燃的必备装备。\n\n此外,它还额外提供了一定的护甲值和氧气容量!", "quests.space_survival.mars_tapping.title": "绯红液与诡异液", "quests.space_survival.mars_tapping.subtitle": "你可真是钟情于采集树液啊!", - "quests.space_survival.mars_tapping.desc": "绯红菌和诡异菌可通过树液采集器分别获取&4绯红液&r与&3诡异液&r。\n\n这两种液体是生产&9碘&r的必备原料,但由于它们通常不生长在同一区域,你可能需要长途跋涉。绯红菌多分布于火星东半球,而诡异菌则更常见于西半球。\n\n请注意:你可以直接将采集器接入格雷科技的开放式流体管道!\n\n&9提示:&r想要展示创意?你还可以用绯红菌柄制作独木舟,用诡异菌柄建造划艇或单桅纵帆船!", + "quests.space_survival.mars_tapping.desc": "绯红菌和诡异菌可通过树液采集器分别获取&4绯红液&r与&3诡异液&r。\n\n这两种液体是生产&9碘&r的必备原料,但由于它们通常不生长在同一区域,你可能需要长途跋涉。绯红菌多分布于火星东半球,而诡异菌则更常见于西半球。你也可以从对应的末影人那里获取树苗。\n\n请注意:你可以直接将采集器接入格雷科技的开放式流体管道!\n\n&9提示:&r想要展示创意?你还可以用绯红菌柄制作独木舟,用诡异菌柄建造划艇或单桅纵帆船!", "quests.space_survival.iodine.title": "碘生产线", "quests.space_survival.iodine.subtitle": "蘑菇化学!", "quests.space_survival.iodine.desc": "将绯红液与诡异液混合,同时注入来自火星空气蒸馏系统(该流程可循环运作)的氪气,再借助裂变反应堆提供的高温环境,便可制得碘!\n\n此过程较为缓慢,但现阶段需求量不大,且后续在其它行星上还将解锁更高效的碘获取方法。", @@ -3509,7 +3537,7 @@ "quests.steam_age.basic_millstone.desc": "&3石磨&r是手推磨的自动化版本。你可以把任何你想粉碎的东西从顶部扔进去,然后右键单击取出粉碎后的物品。如果你直接把它连接到动物曲柄上,它会相当慢,但你可以使用齿轮比来提高它的速度。\n\n请注意:产出物仅会出现在第一个槽位。其余槽位属于格雷科技机制的一部分,在&6HV&r阶段前都无需关注。", "quests.steam_age.horse_crank.title": "你的第一个动力源", "quests.steam_age.horse_crank.subtitle": "让你的牲畜付租金", - "quests.steam_age.horse_crank.desc.1": "&3动物曲柄&r 是你第一个可获得的机械动力源。要使用它,将曲柄放在一个 7x7 清理区域的中心,并用拴绳将动物拴在上面。不同的动物会提供不同数量的动力,而下面的方块会增加输出动力的速度。多个曲柄的区域可以重叠。\n\n你可能需要手持第二根拴绳来拴住动物。", + "quests.steam_age.horse_crank.desc.1": "&3动物曲柄&r 是你第一个可获得的机械动力源。要使用它,将曲柄放在一个7x7清空区域的中心,并用拴绳将动物拴在上面。不同的动物会提供不同数量的动力,而下面的方块会增加输出动力的速度。多个曲柄的区域可以重叠。\n\n你可能需要手持第二根拴绳来拴住动物。", "quests.steam_age.horse_crank.desc.2": "&3小型动物 (4 SU):&r\n狼, 狗, 猪, 绵羊, 山羊, 羊驼\n\n&3中型动物 (6 SU):&r\n牛, 驴\n\n&3大型动物 (8 SU):&r\n马, 骡, 麝牛, 牦牛", "quests.steam_age.poor_paths.title": "劣质路面", "quests.steam_age.poor_paths.subtitle": "这只是土", @@ -3574,7 +3602,7 @@ "quests.steam_age.fluid_pipes.desc.2": "&a提醒:&r1秒=20游戏刻……前提是服务器没有卡顿。\n\n&d注意:&r 已启用格雷科技6风格的管道。这意味着放置管道时,它们仅会连接到其放置时所对准的方块。需要使用扳手点击管道以打开更多连接。\n\n你也可以在潜行状态下使用扳手右键点击来禁用特定侧的输入。这有助于防止回流(液体向非预期方向流动)。", "quests.steam_age.fluid_drums.title": "高效流体存储", "quests.steam_age.fluid_drums.subtitle": "木桶恐怕无法盛放熔融的钢水。", - "quests.steam_age.fluid_drums.desc.1": "&6TFG&r整合包引入了&4数量庞大&r的流体,容易让人应接不暇,因此你可能在寻找存储它们的方法。\n\n来认识一下……&a储液桶&r!它们拥有巨大的内部容量,任何&a储液桶&r在被破坏拾取后都会&d保留其中的流体&r。使用软木槌右键点击,可将其中的流体排入下方放置的其他容器中。", + "quests.steam_age.fluid_drums.desc.1": "&6TFG&r整合包引入了&4数量庞大&r的流体,容易让人应接不暇,因此你可能在寻找存储它们的方法。\n\n来认识一下……&a储液桶&r!它们拥有巨大的内部容量,任何&a储液桶&r在被破坏拾取后都会&d保留其中的流体&r。使用软木槌或螺丝刀右键点击,可将其中的流体排入下方放置的其他容器中。", "quests.steam_age.fluid_drums.desc.2": "&l&3背景知识:&r&o这些储液桶实际上移植自格雷科技6。", "quests.steam_age.boilers.title": "蒸汽锅炉", "quests.steam_age.boilers.subtitle": "便携式蒸汽室", @@ -3686,7 +3714,7 @@ "quests.steam_age.lathe.desc": "&3砂带磨床&r能自动将一个锭加工成两根杆,将单个螺栓变成螺丝,并能抛光宝石及执行其他加工作业。若你需要大量杆与螺丝(而你也确实会需要),这台机器将是一项明智的投资。", "quests.steam_age.steel_saw.title": "钢动力锯", "quests.steam_age.steel_saw.subtitle": "切石机和LV切割机合的二合一!", - "quests.steam_age.steel_saw.desc": "这台设备是基础动力锯的升级版,不仅能处理木材,还可执行部分金属加工配方,例如将金属杆制成四枚螺栓,或将方块切割成板材。这些配方均需使用流体介质,现阶段仅需用水即可。\n\n若先将橡胶末在合金炉中铸成块状,再利用此设备进行切割,还能以更低成本制作橡胶片。", + "quests.steam_age.steel_saw.desc": "这台设备是基础动力锯的升级版,不仅能处理木材,还可执行部分金属加工配方,例如将金属杆制成四枚螺栓,或将方块切割成板材。这些配方均需使用流体介质,现阶段仅需用水即可。\n\n若先将橡胶末在合金炉中铸成块状,再利用此设备进行切割,还能以更低成本制作橡胶片。\n\n未曾炼制过钴黄铜?你有两种选择:其一,可在坩埚中使用任何能熔化为硅酸铝的材料进行合金冶炼;其二,可利用搅拌机,配合从矿石处理中获得的铝粉进行制作。", "quests.steam_age.rolling_mill.title": "轧机", "quests.steam_age.rolling_mill.subtitle": "LV卷板机的另一半", "quests.steam_age.rolling_mill.desc.1": "在蒸汽时代所有可制造的机器中,&3轧机&r堪称最实用的设备之一,原因很简单:它能将单个金属锭直接轧制成单个板材。更值得一提的是,它制作薄板的成本比手工合成更低,实为附赠优势!", @@ -3725,6 +3753,10 @@ "quests.steam_age.steel_mech_press.subtitle": "几乎是锻造锤了", "quests.steam_age.steel_mech_press.desc.1": "高压蒸汽锻造锤近在咫尺,几乎可以做这台机器能做的一切,但如果你迫切需要一些更高级的自动焊接配方,这是你的门票。\n\n如果你不熟悉锻造锤,它和钢动力冲压机都可以粉碎矿石(无副产品),将石头变成圆石变成沙砾变成沙子,并裂解砖块。然而,只有锻锤能提供 &3更便宜的金属板件配方&r……", "quests.steam_age.steel_mech_press.desc.2": "&l&3背景知识:&r&o在TerraFirmaGreg的0.9版本之前,机械动力冲压机曾是蒸汽时代后期的关键设备,因其能以5:4的更优比例生成板材。然而当时的实现机制实为“20%%概率血本无归”,这让许多使用者一边高呼自己热爱赌博一边继续使用。", + "quests.steam_age.supers.title": "超级箱与超级缸", + "quests.steam_age.supers.subtitle": "超级存储抽屉", + "quests.steam_age.supers.desc": "如果你有大量单一物品或流体,这是&c终&6极&e便&a携&b式&物&5品&4存储解决方案。虽然这些&d基础&r(&8ULV&r)型号起初容量相对较小,但更高级的超级箱和超级缸能容纳惊人数量的物品——所有东西都储存在单个方块中,且完全无视温度或酸度影响!\n\n与桶类似,超级缸和超级箱在&6被破坏时会保留内部物品&r,可通过合成栏清空其内容,并能自动清空任何溢出的内容。\n\n如果你渴望&9更大&r的存储空间,可以看看更高级的量子箱、量子缸或AE2存储元件。", + "quests.steam_age.supers.task": "任何超级箱或超级缸", "quests.stone_age": "石器时代", "quests.stone_age.subtitle": "简陋开端", "quests.stone_age.foods.title": "饿了?", @@ -3738,7 +3770,7 @@ "quests.stone_age.cook_meat.desc": "烹饪生肉是获取蛋白质的重要一步——它不仅会增加肉的整体保质期,还会为你需求旺盛的身体释放更多的营养物质。\n\n最简单的烹饪肉类的方法是使用篝火坑。查看下方的任务学习制作方法。", "quests.stone_age.soup_time.title": "汤", "quests.stone_age.soup_time.subtitle": "你刚才在哪家店里?", - "quests.stone_age.soup_time.desc": "用粘土烧纸一个陶锅和一些碗,你就能做出汤了!\n\n汤是制作更复杂餐点的最初也是最简单的方法之一。与食用普通食材不同,汤能提供更多的饱食度,并让你一次性摄入多种营养素!", + "quests.stone_age.soup_time.desc": "用黏土烧制一个陶锅和一些碗,你就能做出汤了!\n\n汤是制作更复杂餐点的最初也是最简单的方法之一。与食用普通食材不同,汤能提供更多的饱食度,并让你一次性摄入多种营养素!", "quests.stone_age.meals.title": "餐点", "quests.stone_age.meals.subtitle": "快到碗里来!", "quests.stone_age.meals.desc": "这些只是你可以制作的一些基本餐点。汤、沙拉和三明治是你制作高饱食度混合餐点的首选,而披萨是唯一能同时包含所有营养类型的食物。", @@ -3823,24 +3855,24 @@ "quests.stone_age.firepit.subtitle": "夜晚即将来临", "quests.stone_age.firepit.desc.1": "既然你有一些原木,是时候建造你的第一个篝火坑了!虽然怪物不会在夜晚的地表生成,但夜行掠食者会醒来并四处徘徊。\n\n你首先需要制造一个起火器,一种可以让你生火的工具。", "quests.stone_age.firepit.desc.2": "要创建你的篝火坑,将至少一根原木和最多3根木棍扔到地上,然后右键单击并按住起火器点燃下面的方块。你也可以添加一些稻草使其更容易点燃。\n\n篝火坑不仅是光和热的来源,还可以用来点燃火把和烹饪生肉。你可以通过与它互动并向UI中添加原木来保持篝火坑燃烧。如果火熄灭了,只需添加更多原木并用你的起火器再次点燃即可。", - "quests.stone_age.find_clay.title": "粘土来源", + "quests.stone_age.find_clay.title": "黏土来源", "quests.stone_age.find_clay.subtitle": "你需要很多这个", - "quests.stone_age.find_clay.desc": "粘土是石器时代技术的核心要素!与打制石器类似,粘土可以捏制成不同形状后放入坑窑烧制,从而创造出各式物品。在掌握金属加工技术前,石器与陶器将是你生存发展的基石。\n\n黏土以小块形态埋藏于地下,通常被草覆盖。不过有一种名为\"粘土标识植物\"的特殊植被会生长在黏土上方。请查阅野外指南了解你所在气候区可能生长的标识植物种类。", - "quests.stone_age.clay.title": "粘土", - "quests.stone_age.clay.subtitle": "是粘土!", - "quests.stone_age.clay.desc": "收集至少25块粘土。你需要制作至少5种不同物品才能进展(详见后续任务)。塑形完成后,将它们放入坑窑中烧制成陶瓷。虽然粘土捏制方式与打制石器类似(每件物品需消耗5块黏土),但即使误操作并不会损失黏土。", + "quests.stone_age.find_clay.desc": "黏土是石器时代技术的核心要素!与打制石器类似,黏土可以捏制成不同形状后放入坑窑烧制,从而创造出各式物品。在掌握金属加工技术前,石器与陶器将是你生存发展的基石。\n\n黏土以小块形态埋藏于地下,通常被草覆盖。不过有一种名为\"黏土标识植物\"的特殊植被会生长在黏土上方。请查阅野外指南了解你所在气候区可能生长的标识植物种类。", + "quests.stone_age.clay.title": "黏土", + "quests.stone_age.clay.subtitle": "是黏土!", + "quests.stone_age.clay.desc": "收集至少25块黏土。你需要制作至少5种不同物品才能进展(详见后续任务)。塑形完成后,将它们放入坑窑中烧制成陶瓷。虽然黏土捏制方式与打制石器类似(每件物品需消耗5块黏土),但即使误操作并不会损失黏土。", "quests.stone_age.pit_kiln.title": "坑窑", "quests.stone_age.pit_kiln.subtitle": "现在事情变得火热了", - "quests.stone_age.pit_kiln.desc": "坑窑是游戏前期用于加热物品的装置。我们不仅可以用它烧制粘土制品,更重要的是还能熔炼最基础的矿石,制作出第一件金属工具——锯子。\n\n制作坑窑需要八捆稻草、八根原木、待加热物品以及一个起火器。具体制作方法请查阅《野外指南》的\"坑窑\"章节——注意它不同于篝火坑!", - "quests.stone_age.clay_products.title": "粘土制品", - "quests.stone_age.clay_products.subtitle": "我告诉过你粘土用途广泛。", - "quests.stone_age.clay_products.desc": "这些是你可以用粘土制作的所有产品。模具用于金属加工,容器用于存放物品,其他物品的用途在野外指南中有说明。你觉得你能把它们都捏出来吗?", + "quests.stone_age.pit_kiln.desc": "坑窑是游戏前期用于加热物品的装置。我们不仅可以用它烧制黏土制品,更重要的是还能熔炼最基础的矿石,制作出第一件金属工具——锯子。\n\n制作坑窑需要八捆稻草、八根原木、待加热物品以及一个起火器。具体制作方法请查阅《野外指南》的\"坑窑\"章节——注意它不同于篝火坑!", + "quests.stone_age.clay_products.title": "黏土制品", + "quests.stone_age.clay_products.subtitle": "我告诉过你黏土用途广泛。", + "quests.stone_age.clay_products.desc": "这些是你可以用黏土制作的所有产品。模具用于金属加工,容器用于存放物品,其他物品的用途在野外指南中有说明。你觉得你能把它们都捏出来吗?", "quests.stone_age.make_jug.title": "陶壶", "quests.stone_age.make_jug.subtitle": "早期游戏流体容器", "quests.stone_age.make_jug.desc": "陶壶是最容易制作的流体容器,但它只能容纳100mB。你也可以用它喝水,并向它吹气来发出噪音!", "quests.stone_age.make_saw_mold.title": "锯子模具", "quests.stone_age.make_saw_mold.subtitle": "是时候制作你的第一个金属工具了", - "quests.stone_age.make_saw_mold.desc": "你需要用粘土制作的第一个模具是锯子模具。通过它和少量金属,你就能制作出锯子。锯子作为重要工具,不仅是制作&l木材&r的必要工具,更重要的是,你将借助它打造属于自己的第一个&l&o工作台&r。", + "quests.stone_age.make_saw_mold.desc": "你需要用黏土制作的第一个模具是锯子模具。通过它和少量金属,你就能制作出锯子。锯子作为重要工具,不仅是制作&l木材&r的必要工具,更重要的是,你将借助它打造属于自己的第一个&l&o工作台&r。", "quests.stone_age.make_vessel.title": "小缸", "quests.stone_age.make_vessel.subtitle": "有用的小罐子。", "quests.stone_age.make_vessel.desc": "小缸的作用类似于收纳袋,可将多个物品收纳于单个格子中,但更重要的是,这是你初步接触金属加工的首件工具。\n\n右键点击小缸即可打开其小型物品栏,用于存放矿石。小缸的工具栏还会显示矿石可熔炼产出的金属类型,这在制作合金时尤为实用!\n\n将小缸置于坑窑中加热,即可熔炼其中的金属。\n\n若敢于尝试,你可在其中混合不同金属来制作合金。合金需要特定的金属配比比例。虽然铜能直接使用,但你也可以选择用青铜来打造你的第一套金属工具。", @@ -3862,7 +3894,7 @@ "quests.stone_age.workbench.desc": "恭喜!工作台的制成标志着你已正式迈入石器时代的巅峰。通过它,你将能用目前收集的材料制作众多新物品。\n\n现在,你将迎来原始时代的主要目标:使用铜砧进行规范的金属加工。\n\n温馨提示:虽然当前已可收集足够材料制作14块青铜锭,但若未先锻造铜砧则无法将其制成青铜砧。所幸砧具可回收利用,你的所有投入皆不会浪费。", "quests.stone_age.inventory.title": "早期存储选项", "quests.stone_age.inventory.subtitle": "是时候停止把所有垃圾都放在容器里了", - "quests.stone_age.inventory.desc": "在早期游戏中,你有4个简单的存储解决方案可用:\n\n&l箱子&r:箱子便宜且易于制作,但只有18个槽位,不能容纳任何大型或更大的物品。\n\n&l板条箱&r:板条箱是单方块库存,最便宜的有27个槽位,但制作起来更昂贵。\n\n&l马车&r:马车有巨大的54个槽位,可以随身携带,但占用大量空间。\n\n&l大缸&r:制作最便宜,只需要粘土,是食物保存的理想选择。还有多种颜色可供选择!", + "quests.stone_age.inventory.desc": "在早期游戏中,你有4个简单的存储解决方案可用:\n\n&l箱子&r:箱子便宜且易于制作,但只有18个槽位,不能容纳任何大型或更大的物品。\n\n&l板条箱&r:板条箱是单方块库存,最便宜的有27个槽位,但制作起来更昂贵。\n\n&l马车&r:马车有巨大的54个槽位,可以随身携带,但占用大量空间。\n\n&l大缸&r:制作最便宜,只需要黏土,是食物保存的理想选择。还有多种颜色可供选择!", "quests.stone_age.portable_storage.title": "便携式存储?", "quests.stone_age.portable_storage.subtitle": "因为你的库存被垃圾填满很糟糕", "quests.stone_age.portable_storage.desc": "在&lTerraFirmaGreg提示与技巧&r章节中,有一个部分涵盖了你的所有不同便携式存储选项,用于扩展你在世界各地旅行时可以携带的物品数量。如果你很难找到这些任务,它们位于任务树最右边的分支上。", @@ -3892,7 +3924,7 @@ "quests.stone_age.create_forge.title": "木炭炉", "quests.stone_age.create_forge.subtitle": "顺带一提,织物不存在。", "quests.stone_age.create_forge.desc": "木炭炉是一种先进的工作站,可用于将材料加热至高温。其加热速度相比坑窑显著更快,且温度控制更为精准。\n\n制作锻炉至少需要7块木炭和5个岩石类方块(如天然岩石或圆石)。\n木炭炉的燃料仅可使用木炭、煤炭或焦炭,不可使用原木。\n\n具体制作方法请查阅《野外指南》中关于木炭坑和木炭炉的详细图文教程。", - "quests.stone_age.rock_anvil.title": "石头砧", + "quests.stone_age.rock_anvil.title": "石砧", "quests.stone_age.rock_anvil.subtitle": "其使用寿命较为有限", "quests.stone_age.rock_anvil.desc": "砧是早期金属加工的基础。要制作真正的金属砧,你需要使用前一级别的砧进行金属锭的焊接操作。由于铜属于最初阶的金属,你必须通过岩石砧台来完成铜锭的焊接——只需用锤子右键单击天然火成岩即可制作石砧。需要注意的是,石砧的功能极为有限,仅能进行焊接操作。若要实现金属的塑形锻造,你仍需升级至对应的金属砧。", "quests.stone_age.quern.title": "手推磨和磨盘", @@ -3909,7 +3941,7 @@ "quests.stone_age.clean_dust.desc": "最终,将含杂粉或精炼粉投入水中浸泡数秒即可完成清洗,获得最终形态的纯净矿粉。此时的产出价值已堪比整块金属锭,所有付出都是值得的!", "quests.stone_age.flux.title": "助焊石", "quests.stone_age.flux.subtitle": "它基本上是金属胶水", - "quests.stone_age.flux.desc": "助熔剂是一种主要用于金属加工中将东西焊接在一起的物品,尽管它也有一些其他用途。\n某些类型的岩石,如白垩、石灰石和大理石,可以被粉碎制成助熔剂,各种海洋动物的壳也可以。", + "quests.stone_age.flux.desc": "助焊剂是一种主要用于焊接金属的物品,尽管它也有一些别的用途。\n某些类型的岩石,如白垩、石灰石和大理石,可以被粉碎制成助焊剂,各种海洋动物的壳也可以。", "quests.stone_age.weld_copper_ingots.title": "焊接铜锭", "quests.stone_age.weld_copper_ingots.subtitle": "离铜砧如此之近", "quests.stone_age.weld_copper_ingots.desc": "点燃木炭炉并投入至少2块铜锭。密切关注铜锭加热时的状态提示——当显示\"可加工\"时仍需等待,直至达到\"可焊接\"状态(即将达到熔点的临界阶段)。\n\n一旦达到可焊接温度,请立即用副手持木钳将其快速夹取至石台界面,同时添加少量助焊剂。最后潜行状态下右键点击砧台,趁热将两块铜锭焊接为一体。可使用水或雪快速冷却新制成的双锭。", @@ -3963,7 +3995,7 @@ "quests.tfg_tips.frame_pack.subtitle": "多些选择总不是坏事!", "quests.tfg_tips.frame_pack.desc": "&5大背包&r提供&318&r个物品栏位,每个栏位最多可容纳&c64&r个物品。其优势在于能够&b突破原版物品的默认堆叠上限&r,这意味着你总共可携带多达&c1152&r个物品!", "quests.tfg_tips.vessels.title": "小罐和大缸", - "quests.tfg_tips.vessels.subtitle": "粘土大有用处", + "quests.tfg_tips.vessels.subtitle": "黏土大有用处", "quests.tfg_tips.vessels.desc": "&d小罐&r有4格物品栏,而&6大缸&r有9格!&d小罐&r不仅存物,更是熔炼基础金属的必要设备。\n&6大缸&r更重但能更好保存食物。\n\n&l&3技巧:&r&o大缸可兼作早期背包!", "quests.tfg_tips.portable_cells.title": "便携式物品与流体存储元件", "quests.tfg_tips.portable_cells.subtitle": "这会不会太超前了?", @@ -4006,7 +4038,7 @@ "quests.tfg_tips.gt.desc": "&3格雷科技&r令人望而生畏,此分支任务将提供帮助。", "quests.tfg_tips.nano_saber.title": "纳米剑", "quests.tfg_tips.nano_saber.subtitle": "激活时26点攻击伤害!", - "quests.tfg_tips.nano_saber.desc": "&6纳米剑&r是&5EV&r阶段的强力武器。&dShift+右击&r激活&c嗡嗡模式&r。", + "quests.tfg_tips.nano_saber.desc": "&6纳米剑&r是&5EV&r阶段后期的强力武器。&dShift+右击&r激活&c嗡嗡模式&r。", "quests.tfg_tips.gt_tools.title": "格雷科技工具", "quests.tfg_tips.gt_tools.subtitle": "", "quests.tfg_tips.gt_tools.desc": "多数&5格雷科技&r工具由&6工具头&r打造。用&aEMI&r查看配方——记住两点:\n\n-&e工具头等级越高&r,工具越&c强力&r,所需&6电池越大&r\n-非所有工具支持所有工具头等级。如&6链锯&r仅能用&7LV工具头&r制作", @@ -4132,7 +4164,7 @@ "quests.tfg_tips.grappling_hook.desc": "将2个&a黄麻绳&r与1个&b锻铁镐头&r组合,便可制作出&d抓钩&r!它是翻越崇山峻岭、探索巨洞深渊、纵横天地四方的理想工具。抓钩内置&e升级系统&r,可让你随心所欲地自由搭配与改造你的&d抓钩&r。", "quests.tfg_tips.grapple_repair.title": "抓钩警告", "quests.tfg_tips.grapple_repair.subtitle": "请阅读本说明,否则你日后可能会后悔!", - "quests.tfg_tips.grapple_repair.desc": "&d抓钩&r的所有&a升级&r数据都储存在物品的NBT标签内。这意味着若尝试使用&c另一个&r抓钩进行修复,&l&c将会永久损毁所有升级数据!&r\n\n正确修复方式:将你的&d抓钩&r与一些&b锻铁粉&r放入&3工作台&r进行修复。\n\n另外,在主世界与幽冥世界之间穿梭时切勿使用抓钩,这是非常危险的。", + "quests.tfg_tips.grapple_repair.desc": "&d抓钩&r的所有&a升级&r数据都储存在物品的NBT标签内。这意味着若尝试使用&c另一个&r抓钩进行修复,&l&c将会永久损毁所有升级数据!&r\n\n正确修复方式:将你的&d抓钩&r与一些&b锻铁粉&r放入&3工作台&r进行修复。\n\n另外,在主世界与幽冥之地之间穿梭时切勿使用抓钩,这是非常危险的。", "quests.tfg_tips.grapple_upgrades.title": "升级你的抓钩", "quests.tfg_tips.grapple_upgrades.subtitle": "当然是围绕TFG平衡过了!", "quests.tfg_tips.grapple_upgrades.desc.1": "升级&d抓钩&r需要通过&3工作台&r为其添加或移除物品。\n\n若想查看&d抓钩&r所有的可升级内容,可按&2EMI&r的\"用途\"键。\n每个自定义配方都会附有文字,说明其所能带来的具体改变。", @@ -4289,8 +4321,8 @@ "quests.tfg_tips.glider.subtitle": "这不是荒野之息", "quests.tfg_tips.glider.desc": "&d悬挂式滑翔翼&r可用于空中滑翔。虽然你&c无法提升高度&r,但从高处跃下时,它将成为长途穿越的绝佳工具。\n与&b喷气背包&r是绝配!", "quests.tfg_tips.reinforced_glider.title": "强化滑翔翼", - "quests.tfg_tips.reinforced_glider.subtitle": "鞘翅用得值...?", - "quests.tfg_tips.reinforced_glider.desc": "将&6HV&r阶段制作的&a鞘翅&r与&a悬挂式滑翔翼&r结合,获得&d强化滑翔翼&r。耐久更高,速度上限更高。", + "quests.tfg_tips.reinforced_glider.subtitle": "轻如鸿毛!", + "quests.tfg_tips.reinforced_glider.desc": "&d强化悬挂滑翔翼&r是&a悬挂滑翔翼&r的改进版本。它采用了升级的&a铝&r制框架,以及由&a强化布料&r或&a轻质布料&r制成的翼面,现在你可以以&c双倍速度&r翱翔天际!\n它也比普通滑翔翼拥有&c更高的耐久度&r,并且可以在组装机中&c修复&r。\n\n&3专业提示:&r\n使用在&4幽冥之地&r维度获得的&a丝质布料&r或&a幻影丝&r,能在制作和修复时将布料消耗降低&e三分之二&r!\n当你进入&6HV&r阶段后,也可以使用&a聚己内酰胺布料&r作为其中一种布料,并享受消耗降低的效果。", "quests.tfg_tips.immersive_aircraft.title": "沉浸式飞机", "quests.tfg_tips.immersive_aircraft.subtitle": "翱翔天空,风格独具", "quests.tfg_tips.immersive_aircraft.desc": "&2沉浸式飞机&r模组专注于飞机,让你能够翱翔天空跨越长途。", @@ -4552,9 +4584,9 @@ "quests.tfg_tips.blue_steel_diving.title": "蓝钢潜水装备", "quests.tfg_tips.blue_steel_diving.subtitle": "完美用于洗个温暖的岩浆浴", "quests.tfg_tips.blue_steel_diving.desc": "&9蓝钢潜水装备&r是特殊护甲套装,让你在穿着时完全不受&c岩浆&r影响。降低的&a温暖值&r但高&b隔热值&r意味着你在&4幽冥之地&r能保持非常稳定的核心体温。", - "quests.tfg_tips.juicer.title": "榨汁机", + "quests.tfg_tips.juicer.title": "榨汁器", "quests.tfg_tips.juicer.subtitle": "应急饮水", - "quests.tfg_tips.juicer.desc": "&3榨汁机&r是一种特殊工具,能提取&a水果&r与&a蘑菇&r中蕴含的水分,转化为可饮用的&d水&r。\n\n在&4幽冥之地&r,水源仅常见于上层区域。随着不断深入,水资源将愈发稀缺。不过,&a蘑菇&r在&4幽冥之地&r中随处可见,有了它,你应该不至于渴死!", + "quests.tfg_tips.juicer.desc": "&3榨汁器&r是一种特殊工具,能提取&a水果&r与&a蘑菇&r中蕴含的水分,转化为可饮用的&d水&r。\n\n在&4幽冥之地&r,水源仅常见于上层区域。随着不断深入,水资源将愈发稀缺。不过,&a蘑菇&r在&4幽冥之地&r中随处可见,有了它,你应该不至于渴死!", "quests.tfg_tips.how_to_go_beneath.title": "如何前往幽冥之地", "quests.tfg_tips.how_to_go_beneath.subtitle": "无需黑曜石", "quests.tfg_tips.how_to_go_beneath.desc": "到达&4幽冥之地&r,你必须在&b主世界基岩&r站上几秒钟,之后你将&o传送&r到下界。\n\n&3&l提示:&r&o你将保持完全相同的X和Z坐标,所以它可能传送你进一些岩石。不过它会给你3x3x3空间工作,所以确保带一些支撑物挖隧道出去!", diff --git a/kubejs/assets/tfg/models/block/machines/ostrum_linear_accelerator.json b/kubejs/assets/tfg/models/block/machines/ostrum_linear_accelerator.json new file mode 100644 index 000000000..aed8c8b02 --- /dev/null +++ b/kubejs/assets/tfg/models/block/machines/ostrum_linear_accelerator.json @@ -0,0 +1,90 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "tfg:ostrum_linear_accelerator", + "texture_overrides": { + "all": "tfg:block/casings/machine_casing_mars" + }, + "variants": { + "is_formed=false,recipe_logic_status=idle": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_emissive" + } + } + }, + "is_formed=false,recipe_logic_status=suspend": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_paused", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_paused_emissive" + } + } + }, + "is_formed=false,recipe_logic_status=waiting": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active_emissive" + } + } + }, + "is_formed=false,recipe_logic_status=working": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=idle": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=suspend": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_paused", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_paused_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=waiting": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=working": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active_emissive" + } + } + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/machines/smr_generator.json b/kubejs/assets/tfg/models/block/machines/smr_generator.json new file mode 100644 index 000000000..bc0f0fd56 --- /dev/null +++ b/kubejs/assets/tfg/models/block/machines/smr_generator.json @@ -0,0 +1,90 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "tfg:smr_generator", + "texture_overrides": { + "all": "tfg:block/casings/machine_casing_desh_ptfe" + }, + "variants": { + "is_formed=false,recipe_logic_status=idle": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_desh_ptfe", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_emissive" + } + } + }, + "is_formed=false,recipe_logic_status=suspend": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_desh_ptfe", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_paused", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_paused_emissive" + } + } + }, + "is_formed=false,recipe_logic_status=waiting": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_desh_ptfe", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active_emissive" + } + } + }, + "is_formed=false,recipe_logic_status=working": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_desh_ptfe", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=idle": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_desh_ptfe", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=suspend": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_desh_ptfe", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_paused", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_paused_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=waiting": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_desh_ptfe", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=working": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_desh_ptfe", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active_emissive" + } + } + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/ostrum_linear_accelerator.json b/kubejs/assets/tfg/models/item/ostrum_linear_accelerator.json new file mode 100644 index 000000000..88514629b --- /dev/null +++ b/kubejs/assets/tfg/models/item/ostrum_linear_accelerator.json @@ -0,0 +1,3 @@ +{ + "parent": "tfg:block/machines/ostrum_linear_accelerator" +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/smr_generator.json b/kubejs/assets/tfg/models/item/smr_generator.json new file mode 100644 index 000000000..1d79809a3 --- /dev/null +++ b/kubejs/assets/tfg/models/item/smr_generator.json @@ -0,0 +1,3 @@ +{ + "parent": "tfg:block/machines/smr_generator" +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.btx_fuel.png b/kubejs/assets/tfg/textures/block/fluids/fluid.btx_fuel.png new file mode 100644 index 000000000..74cc01926 Binary files /dev/null and b/kubejs/assets/tfg/textures/block/fluids/fluid.btx_fuel.png differ diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.btx_fuel.png.mcmeta b/kubejs/assets/tfg/textures/block/fluids/fluid.btx_fuel.png.mcmeta new file mode 100644 index 000000000..c5d457f93 --- /dev/null +++ b/kubejs/assets/tfg/textures/block/fluids/fluid.btx_fuel.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png b/kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png new file mode 100644 index 000000000..115a2347d Binary files /dev/null and b/kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png differ diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png.mcmeta b/kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png.mcmeta new file mode 100644 index 000000000..c5d457f93 --- /dev/null +++ b/kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png b/kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png new file mode 100644 index 000000000..aa275d6cf Binary files /dev/null and b/kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png differ diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png.mcmeta b/kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png.mcmeta new file mode 100644 index 000000000..c5d457f93 --- /dev/null +++ b/kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg_excludes.zip b/kubejs/assets/tfg_excludes.zip index 3a91c3105..bf2b199b0 100644 Binary files a/kubejs/assets/tfg_excludes.zip and b/kubejs/assets/tfg_excludes.zip differ diff --git a/kubejs/client_scripts/example.js b/kubejs/client_scripts/example.js deleted file mode 100644 index c283f7462..000000000 --- a/kubejs/client_scripts/example.js +++ /dev/null @@ -1,3 +0,0 @@ -// priority: 1 - -console.log('TerraFirmaGreg the best modpack in the world :)') \ No newline at end of file diff --git a/kubejs/client_scripts/tooltips.js b/kubejs/client_scripts/tooltips.js index 7ea2a2440..e33e5b69b 100644 --- a/kubejs/client_scripts/tooltips.js +++ b/kubejs/client_scripts/tooltips.js @@ -5,7 +5,7 @@ */ const registerTooltips = (event) => { //Your IDE may say that "item" and "advanced" are never used, but they are required! So dont remove them <3 - + event.addAdvanced(['minecraft:name_tag'], (item, advanced, text) => { text.add(1, Text.translate('tfg.tooltip.nametag')) }) @@ -19,85 +19,91 @@ const registerTooltips = (event) => { text.add(1, Text.translate('tfg.tooltip.blaze_burner')) }) event.addAdvanced(['tfg:electric_greenhouse'], (item, advanced, text) => { - text.add(1, Text.translate('tfg.tooltip.machine.electric_greenhouse_1')), - text.add(2, Text.translate('tfg.tooltip.machine.electric_greenhouse_2')), - text.add(3, Text.translate('tfg.tooltip.machine.perfect_overclock')), - text.add(4, Text.translate('tfg.tooltip.machine.two_energy_hatches')), - text.add(5, Text.translate('tfg.tooltip.machine.customize_interior')) + text.add(1, Text.translate('tfg.tooltip.machine.electric_greenhouse_1')); + text.add(2, Text.translate('tfg.tooltip.machine.electric_greenhouse_2')); + text.add(3, Text.translate('tfg.tooltip.machine.perfect_overclock')); + text.add(4, Text.translate('tfg.tooltip.machine.two_energy_hatches')); + text.add(5, Text.translate('tfg.tooltip.machine.customize_interior')); }) event.addAdvanced(['tfg:growth_chamber'], (item, advanced, text) => { - text.add(1, Text.translate('tfg.tooltip.machine.growth_chamber_1')), - text.add(2, Text.translate('tfg.tooltip.machine.growth_chamber_2')), - text.add(5, Text.translate('tfg.tooltip.machine.two_energy_hatches')) + text.add(1, Text.translate('tfg.tooltip.machine.growth_chamber_1')); + text.add(2, Text.translate('tfg.tooltip.machine.growth_chamber_2')); + text.add(3, Text.translate('tfg.tooltip.machine.two_energy_hatches')); }) event.addAdvanced(['tfg:evaporation_tower'], (item, advanced, text) => { - text.add(1, Text.translate('tfg.tooltip.machine.evaporation_tower_1')), - text.add(2, Text.translate('tfg.tooltip.machine.evaporation_tower_2')), - text.add(3, Text.translate('tfg.tooltip.machine.two_energy_hatches')) + text.add(1, Text.translate('tfg.tooltip.machine.evaporation_tower_1')); + text.add(2, Text.translate('tfg.tooltip.machine.evaporation_tower_2')); + text.add(3, Text.translate('tfg.tooltip.machine.two_energy_hatches')); }) event.addAdvanced(['tfg:bioreactor'], (item, advanced, text) => { - text.add(1, Text.translate('tfg.tooltip.machine.bioreactor_1')), - text.add(2, Text.translate('tfg.tooltip.machine.bioreactor_2')), - text.add(3, Text.translate('tfg.tooltip.machine.two_energy_hatches')) + text.add(1, Text.translate('tfg.tooltip.machine.bioreactor_1')); + text.add(2, Text.translate('tfg.tooltip.machine.bioreactor_2')); + text.add(3, Text.translate('tfg.tooltip.machine.two_energy_hatches')); }) event.addAdvanced(['tfg:cooling_tower'], (item, advanced, text) => { - text.add(1, Text.translate('tfg.tooltip.machine.cooling_tower_1')), - text.add(2, Text.translate('tfg.tooltip.machine.cooling_tower_2')), - text.add(3, Text.translate('tfg.tooltip.machine.perfect_overclock')), - text.add(4, Text.translate('tfg.tooltip.machine.subtick')), - text.add(5, Text.translate('tfg.tooltip.machine.one_energy_hatch')) + text.add(1, Text.translate('tfg.tooltip.machine.cooling_tower_1')); + text.add(2, Text.translate('tfg.tooltip.machine.cooling_tower_2')); + text.add(3, Text.translate('tfg.tooltip.machine.perfect_overclock')); + text.add(4, Text.translate('tfg.tooltip.machine.subtick')); + text.add(5, Text.translate('tfg.tooltip.machine.one_energy_hatch')); }) event.addAdvanced(['gtceu:moon_dust_harvester'], (item, advanced, text) => { - text.add(1, Text.translate('gtceu.tooltip.machine.moon_dust_harvester_1')), - text.add(2, Text.translate('gtceu.tooltip.machine.moon_dust_harvester_2')), - text.add(3, Text.translate('tfg.tooltip.machine.coil_energy_discount')), - text.add(4, Text.translate('tfg.tooltip.machine.two_energy_hatches')) + text.add(1, Text.translate('gtceu.tooltip.machine.moon_dust_harvester_1')); + text.add(2, Text.translate('gtceu.tooltip.machine.moon_dust_harvester_2')); + text.add(3, Text.translate('tfg.tooltip.machine.coil_energy_discount')); + text.add(4, Text.translate('tfg.tooltip.machine.two_energy_hatches')); }) event.addAdvanced(['gtceu:ostrum_harvester'], (item, advanced, text) => { - text.add(1, Text.translate('gtceu.tooltip.machine.ostrum_harvester_1')), - text.add(2, Text.translate('gtceu.tooltip.machine.ostrum_harvester_2')), - text.add(3, Text.translate('tfg.tooltip.machine.coil_energy_discount')), - text.add(4, Text.translate('tfg.tooltip.machine.two_energy_hatches')) + text.add(1, Text.translate('gtceu.tooltip.machine.ostrum_harvester_1')); + text.add(2, Text.translate('gtceu.tooltip.machine.ostrum_harvester_2')); + text.add(3, Text.translate('tfg.tooltip.machine.coil_energy_discount')); + text.add(4, Text.translate('tfg.tooltip.machine.two_energy_hatches')); }) - event.addAdvanced(['gtceu:ostrum_linear_accelerator'], (item, advanced, text) => { - text.add(1, Text.translate('gtceu.tooltip.machine.ostrum_linear_accelerator_1')), - text.add(2, Text.translate('gtceu.tooltip.machine.ostrum_linear_accelerator_2')), - text.add(3, Text.translate('tfg.tooltip.machine.two_energy_hatches')) + event.addAdvanced(['tfg:ostrum_linear_accelerator'], (item, advanced, text) => { + text.add(1, Text.translate('gtceu.tooltip.machine.ostrum_linear_accelerator_1')); + text.add(2, Text.translate('gtceu.tooltip.machine.ostrum_linear_accelerator_2')); + text.add(3, Text.translate('tfg.tooltip.machine.two_energy_hatches')); }) event.addAdvanced(['gtceu:heat_exchanger'], (item, advanced, text) => { - text.add(1, Text.translate('gtceu.tooltip.machine.heat_exchanger_1')), - text.add(2, Text.translate('gtceu.tooltip.machine.heat_exchanger_2')), - text.add(3, Text.translate('tfg.tooltip.machine.perfect_overclock')), - text.add(4, Text.translate('tfg.tooltip.machine.subtick')), - text.add(5, Text.translate('tfg.tooltip.machine.one_energy_hatch')) + text.add(1, Text.translate('gtceu.tooltip.machine.heat_exchanger_1')); + text.add(2, Text.translate('gtceu.tooltip.machine.heat_exchanger_2')); + text.add(3, Text.translate('tfg.tooltip.machine.perfect_overclock')); + text.add(4, Text.translate('tfg.tooltip.machine.subtick')); + text.add(5, Text.translate('tfg.tooltip.machine.one_energy_hatch')); }) event.addAdvanced(['gtceu:nuclear_fuel_factory'], (item, advanced, text) => { - text.add(1, Text.translate('gtceu.tooltip.machine.nuclear_fuel_factory_1')), - text.add(2, Text.translate('gtceu.tooltip.machine.nuclear_fuel_factory_2')), - text.add(3, Text.translate('tfg.tooltip.machine.one_energy_hatch')) + text.add(1, Text.translate('gtceu.tooltip.machine.nuclear_fuel_factory_1')); + text.add(2, Text.translate('gtceu.tooltip.machine.nuclear_fuel_factory_2')); + text.add(3, Text.translate('tfg.tooltip.machine.one_energy_hatch')); }) event.addAdvanced(['gtceu:steam_bloomery'], (item, advanced, text) => { - text.add(1, Text.translate('gtceu.tooltip.machine.steam_bloomery_1')), - text.add(2, Text.translate('gtceu.tooltip.machine.steam_bloomery_2')) + text.add(1, Text.translate('gtceu.tooltip.machine.steam_bloomery_1')); + text.add(2, Text.translate('gtceu.tooltip.machine.steam_bloomery_2')); }) event.addAdvanced(['gtceu:large_chemical_reactor'], (item, advanced, text) => { - text.add(1, Text.translate('tfg.tooltip.machine.perfect_overclock')), - text.add(2, Text.translate('tfg.tooltip.machine.subtick')) + text.add(1, Text.translate('tfg.tooltip.machine.perfect_overclock')); + text.add(2, Text.translate('tfg.tooltip.machine.subtick')); + }) + event.addAdvanced(['gtceu:coal_liquefaction_tower'], (item, advanced, text) => { + text.add(1, Text.translate('gtceu.tooltip.machine.coal_liquefaction_tower_1')); + text.add(2, Text.translate('gtceu.tooltip.machine.coal_liquefaction_tower_2')); + text.add(3, Text.translate('tfg.tooltip.machine.coil_energy_discount')); + text.add(3, Text.translate('tfg.tooltip.machine.one_energy_hatch')); }) // Insulation event.addAdvanced(['create:copper_diving_helmet', 'create:copper_backtank', 'create:copper_diving_boots'], (item, advanced, text) => { text.add(1, Text.translate('tfg.tooltip.armor.copper_diving_suit_warmth')), - text.add(2, Text.translate('tfg.tooltip.armor.copper_diving_suit_insulation')) + text.add(2, Text.translate('tfg.tooltip.armor.copper_diving_suit_insulation')) }) event.addAdvanced(['create:netherite_diving_helmet', 'create:netherite_backtank', 'create:netherite_diving_boots', 'minecraft:netherite_leggings', 'minecraft:netherite_boots'], (item, advanced, text) => { text.add(1, Text.translate('tfg.tooltip.armor.netherite_diving_suit_warmth')), - text.add(2, Text.translate('tfg.tooltip.armor.netherite_diving_suit_insulation')) + text.add(2, Text.translate('tfg.tooltip.armor.netherite_diving_suit_insulation')) text.add(3, Text.translate('tfg.tooltip.armor.netherite_diving_suit_set')) }) event.addAdvanced(['gtceu:nanomuscle_helmet', 'gtceu:nanomuscle_chestplate', 'gtceu:nanomuscle_leggings', 'gtceu:nanomuscle_boots', 'gtceu:advanced_nanomuscle_chestplate'], (item, advanced, text) => { text.add(1, Text.translate('tfg.tooltip.armor.nanomuscle_warmth')), - text.add(2, Text.translate('tfg.tooltip.armor.nanomuscle_insulation')) + text.add(2, Text.translate('tfg.tooltip.armor.nanomuscle_insulation')) text.add(3, Text.translate('tfg.tooltip.armor.nanomuscle_set')) if (item === 'gtceu:nanomuscle_leggings') { text.add(4, Text.translate('tfg.tooltip.armor.nanomuscle_legs_buff')) @@ -105,7 +111,7 @@ const registerTooltips = (event) => { }) event.addAdvanced(['gtceu:quarktech_helmet', 'gtceu:quarktech_chestplate', 'gtceu:quarktech_leggings', 'gtceu:quarktech_boots', 'gtceu:advanced_quarktech_chestplate'], (item, advanced, text) => { text.add(1, Text.translate('tfg.tooltip.armor.quarktech_warmth')), - text.add(2, Text.translate('tfg.tooltip.armor.quarktech_insulation')) + text.add(2, Text.translate('tfg.tooltip.armor.quarktech_insulation')) text.add(3, Text.translate('tfg.tooltip.armor.quarktech_set')) }) event.addAdvanced([ @@ -114,7 +120,7 @@ const registerTooltips = (event) => { 'ad_astra:jet_suit_helmet', 'ad_astra:jet_suit', 'ad_astra:jet_suit_pants', 'ad_astra:jet_suit_boots' ], (item, advanced, text) => { text.add(1, Text.translate('tfg.tooltip.armor.space_suit_warmth')), - text.add(2, Text.translate('tfg.tooltip.armor.space_suit_insulation')) + text.add(2, Text.translate('tfg.tooltip.armor.space_suit_insulation')) text.add(3, Text.translate('tfg.tooltip.armor.space_suit_set')) }) @@ -177,38 +183,38 @@ const registerTooltips = (event) => { event.addAdvanced(['species:petrified_egg'], (item, advanced, text) => { text.add(1, Text.translate('tfg.tooltip.petrified_egg')) }) - + event.addAdvanced(['tfg:sniffer_egg'], (item, advanced, text) => { text.add(1, Text.translate('tfg.tooltip.attribution.sniffer')), - text.add(2, Text.translate('tfg.tooltip.large_egg')) + text.add(2, Text.translate('tfg.tooltip.large_egg')) }) - + event.addAdvanced(['tfg:wraptor_egg'], (item, advanced, text) => { text.add(1, Text.translate('tfg.tooltip.attribution.wraptor')), - text.add(2, Text.translate('tfg.tooltip.large_egg')) + text.add(2, Text.translate('tfg.tooltip.large_egg')) }) - + event.addAdvanced(['tfg:sniffer_wool'], (item, advanced, text) => { text.add(1, Text.translate('tfg.tooltip.sniffer_wool')) }) - + event.addAdvanced(['tfg:wraptor_wool'], (item, advanced, text) => { text.add(1, Text.translate('tfg.tooltip.wraptor_wool')) }) - + event.addAdvanced(['tfg:wraptor_sugar'], (item, advanced, text) => { text.add(1, Text.translate('tfg.tooltip.wraptor_sugar')) }) - + // Temperature changing foods event.addAdvanced(['#tfg:cooling_foods'], (item, advanced, text) => { text.add(1, Text.translate('tfg.tooltip.cooling_foods')) }) - + event.addAdvanced(['#tfg:cooling_foods_strong'], (item, advanced, text) => { text.add(1, Text.translate('tfg.tooltip.cooling_foods_strong')) }) - + event.addAdvanced(['#tfg:warming_foods'], (item, advanced, text) => { text.add(1, Text.translate('tfg.tooltip.warming_foods')) }) @@ -221,11 +227,58 @@ const registerTooltips = (event) => { text.add(1, Text.translate("greate.tooltip.max_capacity").append(Text.translate("tfg.greate.ls_limit"))) }) + // Fluid + item containers global.LAB_EQUIPMENT_CONTAINERS.forEach(container => { event.addAdvanced([`tfg:${container.type}`], (item, advanced, text) => { - text.add(1, Text.translate('tfg.tooltip.lab_equipment.part').append(`§e${container.capacity.toString()}mB`)) + text.add(1, Text.translate('gtceu.universal.tooltip.fluid_storage_capacity', `${container.capacity}`)) }) }) + event.addAdvanced(['#firmalife:big_barrels'], (item, advanced, text) => { + text.add(1, Text.translate("gtceu.universal.tooltip.item_storage_capacity", "36")) + text.add(2, Text.translate("gtceu.universal.tooltip.fluid_storage_capacity", "80,000")) + }) + event.addAdvanced(['create:fluid_tank', 'create_connected:fluid_vessel'], (item, advanced, text) => { + text.add(1, Text.translate("gtceu.universal.tooltip.fluid_storage_capacity", "16,000")) + }) + event.addAdvanced(['#tfc:barrels'], (item, advanced, text) => { + text.add(1, Text.translate("gtceu.universal.tooltip.fluid_storage_capacity", "10,000")) + }) + event.addAdvanced(['tfc:crucible'], (item, advanced, text) => { + text.add(1, Text.translate("gtceu.universal.tooltip.fluid_storage_capacity", "4,032")) + }) + event.addAdvanced(['waterflasks:red_steel_flask'], (item, advanced, text) => { + text.add(1, Text.translate("gtceu.universal.tooltip.fluid_storage_capacity", "2,000")) + }) + event.addAdvanced(['waterflasks:iron_flask', 'tfc:wooden_bucket', 'firmalife:mixing_bowl'], (item, advanced, text) => { + text.add(1, Text.translate("gtceu.universal.tooltip.fluid_storage_capacity", "1,000")) + }) + event.addAdvanced(['waterflasks:leather_flask'], (item, advanced, text) => { + text.add(1, Text.translate("gtceu.universal.tooltip.fluid_storage_capacity", "500")) + }) + event.addAdvanced(['tfc:hematitic_glass_bottle', 'tfc:silica_glass_bottle', 'tfc:volcanic_glass_bottle', 'tfc:olivine_glass_bottle'], (item, advanced, text) => { + text.add(1, Text.translate("gtceu.universal.tooltip.fluid_storage_capacity", "400")) + }) + event.addAdvanced(['#tfc:lamps'], (item, advanced, text) => { + text.add(1, Text.translate("gtceu.universal.tooltip.fluid_storage_capacity", "250")) + }) + event.addAdvanced(['tfc:ceramic/jug', 'firmalife:hollow_shell'], (item, advanced, text) => { + text.add(1, Text.translate("gtceu.universal.tooltip.fluid_storage_capacity", "100")) + }) + event.addAdvanced(['#tfcastikorcarts:supply_cart'], (item, advanced, text) => { + text.add(1, Text.translate("gtceu.universal.tooltip.item_storage_capacity", "54")) + }) + event.addAdvanced(['framedblocks:framed_chest'], (item, advanced, text) => { + text.add(1, Text.translate("gtceu.universal.tooltip.item_storage_capacity", "27")) + }) + event.addAdvanced(['create:item_vault', 'create_connected:item_silo'], (item, advanced, text) => { + text.add(1, Text.translate("gtceu.universal.tooltip.item_storage_capacity", "20")) + }) + event.addAdvanced(['#forge:chests/wooden'], (item, advanced, text) => { + text.add(1, Text.translate("gtceu.universal.tooltip.item_storage_capacity", "18")) + }) + event.addAdvanced(['#tfc:fired_large_vessels'], (item, advanced, text) => { + text.add(1, Text.translate("gtceu.universal.tooltip.item_storage_capacity", "9")) + }) //Nuclear Fission Tooltips @@ -264,7 +317,7 @@ const registerTooltips = (event) => { text.add(2, Text.translate("tfg.tooltip.cheese_slice_microplastics")) }; }); - + // AE2 event.addAdvanced(['tfg:wireless_card'], (item, advanced, text) => { @@ -277,4 +330,48 @@ const registerTooltips = (event) => { event.addAdvanced(['vintageimprovements:lathe'], (item, advanced, text) => { text.add(1, Text.translate('tfg.tooltip.obsolete.depreciated')) }) + + // Drink effects + event.addAdvanced(['tfc_gurman:compote_bucket'], (item, advanced, text) => { + text.add(1, Text.of("Jump Boost II (00:30)").blue()); + }) + event.addAdvanced(['tfc_gurman:kvass_bucket'], (item, advanced, text) => { + text.add(1, Text.of("Strength (01:20)").blue()); + text.add(2, Text.translate('tfg.tooltip.cooling_foods')); + }) + event.addAdvanced(['tfc_gurman:lemonade_bucket'], (item, advanced, text) => { + text.add(1, Text.of("Haste (00:30)").blue()); + text.add(2, Text.translate('tfg.tooltip.cooling_foods')); + }) + event.addAdvanced(['tfc_gurman:coffee_bucket'], (item, advanced, text) => { + text.add(1, Text.of("Speed (00:30)").blue()); + text.add(2, Text.translate('tfg.tooltip.warming_foods')); + }) + event.addAdvanced(['tfc_gurman:cocoa_bucket'], (item, advanced, text) => { + text.add(1, Text.of("Haste (00:30)").blue()); + text.add(2, Text.translate('tfg.tooltip.warming_foods')); + }) + event.addAdvanced(['tfc_gurman:tea_mint_bucket'], (item, advanced, text) => { + text.add(1, Text.of("Regeneration (00:30)").blue()); + text.add(2, Text.translate('tfg.tooltip.warming_foods')); + }) + event.addAdvanced(['tfc_gurman:tea_chamomile_bucket'], (item, advanced, text) => { + text.add(1, Text.of("Resistance (00:30)").blue()); + text.add(2, Text.translate('tfg.tooltip.warming_foods')); + }) + event.addAdvanced(['tfc_gurman:tea_nettle_bucket'], (item, advanced, text) => { + text.add(1, Text.of("Slow Falling (00:30)").blue()); + text.add(2, Text.translate('tfg.tooltip.warming_foods')); + }) + event.addAdvanced(['tfc_gurman:tea_rosehip_bucket'], (item, advanced, text) => { + text.add(1, Text.of("Absorption (00:30)").blue()); + text.add(2, Text.translate('tfg.tooltip.warming_foods')); + }) + event.addAdvanced(['tfc_gurman:nalivka_bucket'], (item, advanced, text) => { + text.add(1, Text.of("Strength (02:40)").blue()); + text.add(2, Text.translate('tfg.tooltip.cooling_foods')); + }) + event.addAdvanced(['tfc:bucket/spring_water'], (item, advanced, text) => { + text.add(1, Text.translate('tfg.tooltip.warming_foods')); + }) } diff --git a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/biomass.json b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/biomass.json index 199fbd6c1..52fb82baf 100644 --- a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/biomass.json +++ b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/biomass.json @@ -1,6 +1,6 @@ { "fluid": "gtceu:biomass", - "burnTime": 70, + "burnTime": 66, "superHeat": false, "amountConsumedPerTick" : 5 } diff --git a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/creosote.json b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/creosote.json index f97604eb6..48345d7d4 100644 --- a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/creosote.json +++ b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/creosote.json @@ -1,6 +1,6 @@ { "fluid": "gtceu:creosote", - "burnTime": 88, + "burnTime": 22, "superHeat": false, "amountConsumedPerTick" : 25 } diff --git a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/fish_oil.json b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/fish_oil.json index 43a493b0c..b8c9f6c54 100644 --- a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/fish_oil.json +++ b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/fish_oil.json @@ -1,6 +1,6 @@ { "fluid": "gtceu:fish_oil", - "burnTime": 88, + "burnTime": 50, "superHeat": false, "amountConsumedPerTick" : 25 } diff --git a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/heavy_fuel.json b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/heavy_fuel.json index 6c232dfc3..20b4e071c 100644 --- a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/heavy_fuel.json +++ b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/heavy_fuel.json @@ -1,6 +1,6 @@ { "fluid": "gtceu:heavy_fuel", - "burnTime": 210, + "burnTime": 70, "superHeat": false, "amountConsumedPerTick" : 2 } diff --git a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/heavy_oil.json b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/heavy_oil.json index 35c685f71..358f02c42 100644 --- a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/heavy_oil.json +++ b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/heavy_oil.json @@ -1,6 +1,6 @@ { "fluid": "gtceu:oil_heavy", - "burnTime": 88, + "burnTime": 50, "superHeat": false, "amountConsumedPerTick" : 5 } diff --git a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/light_oil.json b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/light_oil.json new file mode 100644 index 000000000..6956a6e5f --- /dev/null +++ b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/light_oil.json @@ -0,0 +1,6 @@ +{ + "fluid": "gtceu:light_oil", + "burnTime": 50, + "superHeat": false, + "amountConsumedPerTick" : 32 +} diff --git a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/oil.json b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/oil.json index 9dc65463a..bbad0fe66 100644 --- a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/oil.json +++ b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/oil.json @@ -1,6 +1,6 @@ { "fluid": "gtceu:oil", - "burnTime": 90, + "burnTime": 50, "superHeat": false, "amountConsumedPerTick" : 32 } diff --git a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/olive_oil.json b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/olive_oil.json index d778bf834..ba8eabec4 100644 --- a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/olive_oil.json +++ b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/olive_oil.json @@ -1,6 +1,6 @@ { "fluid": "tfc:olive_oil", - "burnTime": 88, + "burnTime": 50, "superHeat": false, "amountConsumedPerTick" : 25 } diff --git a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/raw_oil.json b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/raw_oil.json new file mode 100644 index 000000000..8ba4d1621 --- /dev/null +++ b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/raw_oil.json @@ -0,0 +1,6 @@ +{ + "fluid": "gtceu:raw_oil", + "burnTime": 50, + "superHeat": false, + "amountConsumedPerTick" : 32 +} diff --git a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/seed_oil.json b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/seed_oil.json index ad5d2eebd..252f8a3e9 100644 --- a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/seed_oil.json +++ b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/seed_oil.json @@ -1,6 +1,6 @@ { "fluid": "gtceu:seed_oil", - "burnTime": 88, + "burnTime": 50, "superHeat": false, "amountConsumedPerTick" : 25 } diff --git a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/soybean_oil.json b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/soybean_oil.json index 52c8e1f85..99cf8b56e 100644 --- a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/soybean_oil.json +++ b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/soybean_oil.json @@ -1,6 +1,6 @@ { "fluid": "firmalife:soybean_oil", - "burnTime": 88, + "burnTime": 50, "superHeat": false, "amountConsumedPerTick" : 25 } diff --git a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/sulfuric_heavy.json b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/sulfuric_heavy.json index 92a70c3aa..88329eb8b 100644 --- a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/sulfuric_heavy.json +++ b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/sulfuric_heavy.json @@ -1,6 +1,6 @@ { "fluid": "gtceu:sulfuric_heavy_fuel", - "burnTime": 80, + "burnTime": 45, "superHeat": false, "amountConsumedPerTick" : 5 } diff --git a/kubejs/data/create_liquid_fuel/blaze_burner_fuel/tallow.json b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/tallow.json new file mode 100644 index 000000000..47010fc80 --- /dev/null +++ b/kubejs/data/create_liquid_fuel/blaze_burner_fuel/tallow.json @@ -0,0 +1,6 @@ +{ + "fluid": "tfc:tallow", + "burnTime": 50, + "superHeat": false, + "amountConsumedPerTick" : 25 +} diff --git a/kubejs/data/endermanoverhaul/loot_tables/entities/crimson_enderman.json b/kubejs/data/endermanoverhaul/loot_tables/entities/crimson_forest_enderman.json similarity index 79% rename from kubejs/data/endermanoverhaul/loot_tables/entities/crimson_enderman.json rename to kubejs/data/endermanoverhaul/loot_tables/entities/crimson_forest_enderman.json index dd94d9a88..22fd9ab62 100644 --- a/kubejs/data/endermanoverhaul/loot_tables/entities/crimson_enderman.json +++ b/kubejs/data/endermanoverhaul/loot_tables/entities/crimson_forest_enderman.json @@ -11,6 +11,16 @@ ], "rolls": 1.0 }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "tfg:saplings/crimson" + } + ], + "rolls": 1.0 + }, { "bonus_rolls": 0.0, "entries": [ diff --git a/kubejs/data/endermanoverhaul/loot_tables/entities/warped_enderman.json b/kubejs/data/endermanoverhaul/loot_tables/entities/warped_forest_enderman.json similarity index 79% rename from kubejs/data/endermanoverhaul/loot_tables/entities/warped_enderman.json rename to kubejs/data/endermanoverhaul/loot_tables/entities/warped_forest_enderman.json index 14b5db23c..373c8bdf1 100644 --- a/kubejs/data/endermanoverhaul/loot_tables/entities/warped_enderman.json +++ b/kubejs/data/endermanoverhaul/loot_tables/entities/warped_forest_enderman.json @@ -11,6 +11,16 @@ ], "rolls": 1.0 }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "tfg:saplings/warped" + } + ], + "rolls": 1.0 + }, { "bonus_rolls": 0.0, "entries": [ diff --git a/kubejs/data/gtceu/loot_tables/blocks/ulv_hermetic_casing.json b/kubejs/data/gtceu/loot_tables/blocks/ulv_hermetic_casing.json new file mode 100644 index 000000000..428a7f64b --- /dev/null +++ b/kubejs/data/gtceu/loot_tables/blocks/ulv_hermetic_casing.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "gtceu:ulv_hermetic_casing" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/kubejs/data/primitive_creatures/forge/biome_modifier/nahida_biome_modifier.json b/kubejs/data/primitive_creatures/forge/biome_modifier/nahida_biome_modifier.json index 2d96022cf..1396763f1 100644 --- a/kubejs/data/primitive_creatures/forge/biome_modifier/nahida_biome_modifier.json +++ b/kubejs/data/primitive_creatures/forge/biome_modifier/nahida_biome_modifier.json @@ -1,3 +1,29 @@ { - "type": "forge:none" + "type": "forge:add_spawns", + "biomes": [ + "tfc:badlands", + "tfc:canyons", + "tfc:highlands", + "tfc:hills", + "tfc:inverted_badlands", + "tfc:low_canyons", + "tfc:lowlands", + "tfc:mountains", + "tfc:oceanic_mountains", + "tfc:old_mountains", + "tfc:plains", + "tfc:plateau", + "tfc:rolling_hills", + "tfc:salt_marsh", + "tfc:shore", + "tfc:tidal_flats", + "tfc:volcanic_mountains", + "tfc:volcanic_oceanic_mountains" + ], + "spawners": { + "type": "primitive_creatures:nahida", + "weight": 1, + "minCount": 1, + "maxCount": 1 + } } \ No newline at end of file diff --git a/kubejs/data/species/loot_tables/blocks/birt_dwelling.json b/kubejs/data/species/loot_tables/blocks/birt_dwelling.json deleted file mode 100644 index d0045080e..000000000 --- a/kubejs/data/species/loot_tables/blocks/birt_dwelling.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "name": "loot_pool", - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "create:asurine" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/kubejs/data/tfc/tfc/drinkables/cocoa.json b/kubejs/data/tfc/tfc/drinkables/cocoa.json new file mode 100644 index 000000000..5d403ba69 --- /dev/null +++ b/kubejs/data/tfc/tfc/drinkables/cocoa.json @@ -0,0 +1,16 @@ +{ + "ingredient": "tfc_gurman:cocoa", + "thirst": 15, + "effects": [ + { + "type": "minecraft:haste", + "duration": 600, + "amplifier": 0 + }, + { + "type": "tfg:warming", + "duration": 20, + "amplifier": 0 + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfc/tfc/drinkables/coffee.json b/kubejs/data/tfc/tfc/drinkables/coffee.json new file mode 100644 index 000000000..13dec7feb --- /dev/null +++ b/kubejs/data/tfc/tfc/drinkables/coffee.json @@ -0,0 +1,16 @@ +{ + "ingredient": "tfc_gurman:coffee", + "thirst": 15, + "effects": [ + { + "type": "minecraft:speed", + "duration": 600, + "amplifier": 0 + }, + { + "type": "tfg:warming", + "duration": 20, + "amplifier": 0 + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfc/tfc/drinkables/compote.json b/kubejs/data/tfc/tfc/drinkables/compote.json new file mode 100644 index 000000000..6956998dd --- /dev/null +++ b/kubejs/data/tfc/tfc/drinkables/compote.json @@ -0,0 +1,11 @@ +{ + "ingredient": "tfc_gurman:compote", + "thirst": 15, + "effects": [ + { + "type": "minecraft:jump_boost", + "duration": 600, + "amplifier": 1 + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfc/tfc/drinkables/kvass.json b/kubejs/data/tfc/tfc/drinkables/kvass.json new file mode 100644 index 000000000..052d6cd35 --- /dev/null +++ b/kubejs/data/tfc/tfc/drinkables/kvass.json @@ -0,0 +1,16 @@ +{ + "ingredient": "tfc_gurman:kvass", + "thirst": 15, + "effects": [ + { + "type": "minecraft:strength", + "duration": 1600, + "amplifier": 0 + }, + { + "type": "tfg:cooling", + "duration": 20, + "amplifier": 0 + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfc/tfc/drinkables/lemonade.json b/kubejs/data/tfc/tfc/drinkables/lemonade.json new file mode 100644 index 000000000..66d8a3f8c --- /dev/null +++ b/kubejs/data/tfc/tfc/drinkables/lemonade.json @@ -0,0 +1,16 @@ +{ + "ingredient": "tfc_gurman:lemonade", + "thirst": 15, + "effects": [ + { + "type": "minecraft:haste", + "duration": 600, + "amplifier": 0 + }, + { + "type": "tfg:cooling", + "duration": 20, + "amplifier": 0 + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfc/tfc/drinkables/nalivka.json b/kubejs/data/tfc/tfc/drinkables/nalivka.json new file mode 100644 index 000000000..8e4d8f5a0 --- /dev/null +++ b/kubejs/data/tfc/tfc/drinkables/nalivka.json @@ -0,0 +1,16 @@ +{ + "ingredient": "tfc_gurman:nalivka", + "thirst": 15, + "effects": [ + { + "type": "minecraft:strength", + "duration": 3200, + "amplifier": 0 + }, + { + "type": "tfg:cooling", + "duration": 20, + "amplifier": 0 + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfc/tfc/drinkables/spring_water.json b/kubejs/data/tfc/tfc/drinkables/spring_water.json new file mode 100644 index 000000000..c9d0bff85 --- /dev/null +++ b/kubejs/data/tfc/tfc/drinkables/spring_water.json @@ -0,0 +1,11 @@ +{ + "ingredient": "tfc:spring_water", + "thirst": 10, + "effects": [ + { + "type": "tfg:warming", + "duration": 20, + "amplifier": 0 + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfc/tfc/drinkables/tea_chamomile.json b/kubejs/data/tfc/tfc/drinkables/tea_chamomile.json new file mode 100644 index 000000000..f1de9b399 --- /dev/null +++ b/kubejs/data/tfc/tfc/drinkables/tea_chamomile.json @@ -0,0 +1,16 @@ +{ + "ingredient": "tfc_gurman:tea_chamomile", + "thirst": 15, + "effects": [ + { + "type": "minecraft:resistance", + "duration": 600, + "amplifier": 0 + }, + { + "type": "tfg:warming", + "duration": 20, + "amplifier": 0 + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfc/tfc/drinkables/tea_mint.json b/kubejs/data/tfc/tfc/drinkables/tea_mint.json new file mode 100644 index 000000000..f5a181be8 --- /dev/null +++ b/kubejs/data/tfc/tfc/drinkables/tea_mint.json @@ -0,0 +1,16 @@ +{ + "ingredient": "tfc_gurman:tea_mint", + "thirst": 15, + "effects": [ + { + "type": "minecraft:regeneration", + "duration": 600, + "amplifier": 0 + }, + { + "type": "tfg:warming", + "duration": 20, + "amplifier": 0 + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfc/tfc/drinkables/tea_nettle.json b/kubejs/data/tfc/tfc/drinkables/tea_nettle.json new file mode 100644 index 000000000..cc2c300bb --- /dev/null +++ b/kubejs/data/tfc/tfc/drinkables/tea_nettle.json @@ -0,0 +1,16 @@ +{ + "ingredient": "tfc_gurman:tea_nettle", + "thirst": 15, + "effects": [ + { + "type": "minecraft:slow_falling", + "duration": 600, + "amplifier": 0 + }, + { + "type": "tfg:warming", + "duration": 20, + "amplifier": 0 + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfc/tfc/drinkables/tea_rosehip.json b/kubejs/data/tfc/tfc/drinkables/tea_rosehip.json new file mode 100644 index 000000000..ad3d523f9 --- /dev/null +++ b/kubejs/data/tfc/tfc/drinkables/tea_rosehip.json @@ -0,0 +1,16 @@ +{ + "ingredient": "tfc_gurman:tea_rosehip", + "thirst": 15, + "effects": [ + { + "type": "minecraft:absorption", + "duration": 600, + "amplifier": 0 + }, + { + "type": "tfg:warming", + "duration": 20, + "amplifier": 0 + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/configured_feature/earth/vein/normal_coal.json b/kubejs/data/tfg/worldgen/configured_feature/earth/vein/normal_coal.json index 59a041a82..ca40e8b52 100644 --- a/kubejs/data/tfg/worldgen/configured_feature/earth/vein/normal_coal.json +++ b/kubejs/data/tfg/worldgen/configured_feature/earth/vein/normal_coal.json @@ -123,11 +123,7 @@ "blocks": [ { "block": "gtceu:coal_indicator", - "weight": 95 - }, - { - "block": "gtceu:coal_bud_indicator", - "weight": 5 + "weight": 100 } ] } diff --git a/kubejs/data/tfg/worldgen/configured_feature/earth/vein/normal_graphite.json b/kubejs/data/tfg/worldgen/configured_feature/earth/vein/normal_graphite.json index bd03ebf27..1b1f7a1a1 100644 --- a/kubejs/data/tfg/worldgen/configured_feature/earth/vein/normal_graphite.json +++ b/kubejs/data/tfg/worldgen/configured_feature/earth/vein/normal_graphite.json @@ -403,7 +403,7 @@ "weight": 45 }, { - "block": "gtceu:coal_indicator", + "block": "gtceu:coal_bud_indicator", "weight": 30 }, { diff --git a/kubejs/data/tfg/worldgen/configured_feature/earth/vein/normal_mica.json b/kubejs/data/tfg/worldgen/configured_feature/earth/vein/normal_mica.json index 224a8dc2c..43d612cd9 100644 --- a/kubejs/data/tfg/worldgen/configured_feature/earth/vein/normal_mica.json +++ b/kubejs/data/tfg/worldgen/configured_feature/earth/vein/normal_mica.json @@ -218,8 +218,8 @@ } ], "indicator": { - "rarity": 15, - "depth": 40, + "rarity": 12, + "depth": 60, "underground_rarity": 40, "underground_count": 200, "blocks": [ diff --git a/kubejs/data/tfg/worldgen/configured_feature/earth/vein/normal_tarkianite.json b/kubejs/data/tfg/worldgen/configured_feature/earth/vein/normal_tarkianite.json new file mode 100644 index 000000000..24b8ad813 --- /dev/null +++ b/kubejs/data/tfg/worldgen/configured_feature/earth/vein/normal_tarkianite.json @@ -0,0 +1,505 @@ +{ + "__credits__": "This vein was automatically generated by OresToFieldGuide.", + "type": "tfc:pipe_vein", + "config": { + "height": 60, + "radius": 10, + "min_skew": 6, + "max_skew": 18, + "min_slant": 0, + "max_slant": 4, + "sign": 0, + "rarity": 140, + "density": 0.35, + "min_y": 20, + "max_y": 120, + "random_name": "normal_tarkianite", + "blocks": [ + { + "replace": [ + "tfc:rock/raw/gabbro" + ], + "with": [ + { + "block": "gtceu:gabbro_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:gabbro_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:gabbro_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:gabbro_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/granite" + ], + "with": [ + { + "block": "gtceu:granite_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:granite_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:granite_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:granite_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/diorite" + ], + "with": [ + { + "block": "gtceu:diorite_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:diorite_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:diorite_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:diorite_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/schist" + ], + "with": [ + { + "block": "gtceu:schist_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:schist_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:schist_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:schist_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/gneiss" + ], + "with": [ + { + "block": "gtceu:gneiss_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:gneiss_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:gneiss_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:gneiss_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/quartzite" + ], + "with": [ + { + "block": "gtceu:quartzite_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:quartzite_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:quartzite_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:quartzite_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/phyllite" + ], + "with": [ + { + "block": "gtceu:phyllite_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:phyllite_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:phyllite_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:phyllite_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/slate" + ], + "with": [ + { + "block": "gtceu:slate_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:slate_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:slate_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:slate_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/marble" + ], + "with": [ + { + "block": "gtceu:marble_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:marble_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:marble_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:marble_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/dacite" + ], + "with": [ + { + "block": "gtceu:dacite_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:dacite_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:dacite_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:dacite_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/rhyolite" + ], + "with": [ + { + "block": "gtceu:rhyolite_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:rhyolite_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:rhyolite_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:rhyolite_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/andesite" + ], + "with": [ + { + "block": "gtceu:andesite_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:andesite_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:andesite_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:andesite_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/basalt", + "minecraft:basalt" + ], + "with": [ + { + "block": "gtceu:basalt_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:basalt_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:basalt_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:basalt_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/shale" + ], + "with": [ + { + "block": "gtceu:shale_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:shale_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:shale_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:shale_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/claystone" + ], + "with": [ + { + "block": "gtceu:claystone_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:claystone_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:claystone_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:claystone_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/limestone" + ], + "with": [ + { + "block": "gtceu:limestone_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:limestone_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:limestone_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:limestone_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/conglomerate" + ], + "with": [ + { + "block": "gtceu:conglomerate_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:conglomerate_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:conglomerate_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:conglomerate_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/dolomite" + ], + "with": [ + { + "block": "gtceu:dolomite_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:dolomite_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:dolomite_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:dolomite_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/chert" + ], + "with": [ + { + "block": "gtceu:chert_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:chert_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:chert_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:chert_trona_ore", + "weight": 10 + } + ] + }, + { + "replace": [ + "tfc:rock/raw/chalk" + ], + "with": [ + { + "block": "gtceu:chalk_tarkianite_ore", + "weight": 35 + }, + { + "block": "gtceu:chalk_oilsands_ore", + "weight": 35 + }, + { + "block": "gtceu:chalk_borax_ore", + "weight": 20 + }, + { + "block": "gtceu:chalk_trona_ore", + "weight": 10 + } + ] + } + ], + "indicator": { + "rarity": 15, + "depth": 20, + "underground_rarity": 40, + "underground_count": 200, + "blocks": [ + { + "block": "gtceu:tarkianite_indicator", + "weight": 35 + }, + { + "block": "gtceu:oilsands_indicator", + "weight": 35 + }, + { + "block": "gtceu:borax_indicator", + "weight": 20 + }, + { + "block": "gtceu:trona_indicator", + "weight": 10 + } + ] + } + } +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/tree/crimson.json b/kubejs/data/tfg/worldgen/configured_feature/mars/tree/crimson.json index 40b85088f..7c0687012 100644 --- a/kubejs/data/tfg/worldgen/configured_feature/mars/tree/crimson.json +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/tree/crimson.json @@ -4,7 +4,8 @@ "features": [ "tfg:mars/tree/crimson_amber", "tfg:mars/tree/crimson_rusticus", - "tfg:mars/tree/crimson_sangnum" + "tfg:mars/tree/crimson_sangnum", + "tfg:mars/tree/crimson_dirt" ] } } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/tree/crimson_dirt.json b/kubejs/data/tfg/worldgen/configured_feature/mars/tree/crimson_dirt.json new file mode 100644 index 000000000..2d006ee26 --- /dev/null +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/tree/crimson_dirt.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:huge_fungus", + "config": { + "decor_state": { + "Name": "beneath:wood/leaves/crimson" + }, + "hat_state": { + "Name": "minecraft:nether_wart_block" + }, + "planted": false, + "replaceable_blocks": { + "type": "minecraft:replaceable" + }, + "stem_state": { + "Name": "beneath:wood/log/crimson", + "Properties": { + "axis": "y", + "branch_direction": "down" + } + }, + "valid_base_block": { + "Name": "tfg:grass/mars_dirt" + } + } +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/tree/warped.json b/kubejs/data/tfg/worldgen/configured_feature/mars/tree/warped.json index ae09354ad..4efc472cf 100644 --- a/kubejs/data/tfg/worldgen/configured_feature/mars/tree/warped.json +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/tree/warped.json @@ -4,7 +4,8 @@ "features": [ "tfg:mars/tree/warped_amber", "tfg:mars/tree/warped_rusticus", - "tfg:mars/tree/warped_sangnum" + "tfg:mars/tree/warped_sangnum", + "tfg:mars/tree/warped_dirt" ] } } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/tree/warped_dirt.json b/kubejs/data/tfg/worldgen/configured_feature/mars/tree/warped_dirt.json new file mode 100644 index 000000000..2b5789a94 --- /dev/null +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/tree/warped_dirt.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:huge_fungus", + "config": { + "decor_state": { + "Name": "beneath:wood/leaves/warped" + }, + "hat_state": { + "Name": "minecraft:warped_wart_block" + }, + "planted": false, + "replaceable_blocks": { + "type": "minecraft:replaceable" + }, + "stem_state": { + "Name": "beneath:wood/log/warped", + "Properties": { + "axis": "y", + "branch_direction": "down" + } + }, + "valid_base_block": { + "Name": "tfg:grass/mars_dirt" + } + } +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/earth/oil_spout.json b/kubejs/data/tfg/worldgen/placed_feature/earth/oil_spout.json new file mode 100644 index 000000000..89f7aa725 --- /dev/null +++ b/kubejs/data/tfg/worldgen/placed_feature/earth/oil_spout.json @@ -0,0 +1,33 @@ +{ + "feature": "gtceu:raw_oil_sprout", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 128 + }, + { + "type": "tfc:climate", + "min_temperature": 0, + "min_rainfall": 0, + "max_rainfall": 100 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:biome" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 40 + }, + "min_inclusive": { + "absolute": 10 + } + } + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/earth/vein/normal_tarkianite.json b/kubejs/data/tfg/worldgen/placed_feature/earth/vein/normal_tarkianite.json new file mode 100644 index 000000000..b65ab875b --- /dev/null +++ b/kubejs/data/tfg/worldgen/placed_feature/earth/vein/normal_tarkianite.json @@ -0,0 +1,21 @@ +{ + + + + + "__credits__": "REVERT THIS FILE AFTER RUNNING ORES TO FIELD GUIDE. Otherwise it wipes the climate stuff.", + + + + + + "feature": "tfg:earth/vein/normal_tarkianite", + "placement": [ + { + "type": "tfc:climate", + "min_temperature": 7, + "min_rainfall": 0, + "max_rainfall": 100 + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/tree/crimson_dirt.json b/kubejs/data/tfg/worldgen/placed_feature/mars/tree/crimson_dirt.json new file mode 100644 index 000000000..3aae30456 --- /dev/null +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/tree/crimson_dirt.json @@ -0,0 +1,4 @@ +{ + "feature": "tfg:mars/tree/crimson_dirt", + "placement": [] +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/tree/warped_dirt.json b/kubejs/data/tfg/worldgen/placed_feature/mars/tree/warped_dirt.json new file mode 100644 index 000000000..349608694 --- /dev/null +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/tree/warped_dirt.json @@ -0,0 +1,4 @@ +{ + "feature": "tfg:mars/tree/warped_amber", + "placement": [] +} \ No newline at end of file diff --git a/kubejs/server_scripts/ad_astra/data.js b/kubejs/server_scripts/ad_astra/data.js index 2ed5e30c5..ac8b03a0b 100644 --- a/kubejs/server_scripts/ad_astra/data.js +++ b/kubejs/server_scripts/ad_astra/data.js @@ -13,10 +13,10 @@ function registerTFCDataForAdAstra(event) { event.itemSize('ad_astra:launch_pad', 'very_large', 'very_heavy') event.foodItem('ad_astra:cheese', food => { - food.hunger(4) - food.saturation(12) - food.dairy(5) - food.decayModifier(10) + food.hunger(3) + food.saturation(3) + food.dairy(1.2) + food.decayModifier(0.9) }) global.AD_ASTRA_WOOD.forEach(wood => { diff --git a/kubejs/server_scripts/ad_astra/recipes.js b/kubejs/server_scripts/ad_astra/recipes.js index 3e7a73a00..250a1732d 100644 --- a/kubejs/server_scripts/ad_astra/recipes.js +++ b/kubejs/server_scripts/ad_astra/recipes.js @@ -8,426 +8,6 @@ const registerAdAstraRecipes = (event) => { event.remove({ mod: 'ad_astra' }) - //#region Rocket parts - - event.recipes.gtceu.shaped('ad_astra:launch_pad', [ - 'BAB', - 'AAA', - 'BAB' - ], { - A: '#forge:plates/steel', - B: '#forge:rods/steel' - }).addMaterialInfo().id('tfg:launch_pad') - - //#region Tier 1 rocket - - event.recipes.gtceu.assembler('tfg:rocket_nose_cone_t1') - .itemInputs( - 'gtceu:hv_emitter', - ChemicalHelper.get(TagPrefix.plateDense, TFGHelpers.getMaterial('rocket_alloy_t1'), 1), - ChemicalHelper.get(TagPrefix.plateDouble, GTMaterials.StainlessSteel, 3)) - .inputFluids(Fluid.of('gtceu:polyethylene', 144 * 16)) - .itemOutputs('ad_astra:rocket_nose_cone') - .duration(1200) - .circuit(2) - .EUt(480) - .addMaterialInfo(true, true) - - - event.recipes.gtceu.pyrolyse_oven('tfg:pyrolyse_vitrified_asbestos_dust') - .inputFluids(Fluid.of('gtceu:nitrogen', 100)) - .itemInputs('gtceu:asbestos_dust') - .itemOutputs('gtceu:vitrified_asbestos_dust') - .duration(80) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.mixer('tfg:rocket_alloy_t1') - .itemInputs('6x #forge:dusts/aluminium', '2x #forge:dusts/stainless_steel') - .inputFluids(Fluid.of('gtceu:red_steel', 144)) - .itemOutputs('9x #forge:dusts/rocket_alloy_t1') - .duration(580) - .circuit(2) - .EUt(480) - - event.recipes.gtceu.chemical_bath('tfg:rocket_alloy_cool_down_water') - .itemInputs('#forge:hot_ingots/rocket_alloy_t1') - .inputFluids(Fluid.of('minecraft:water', 100)) - .itemOutputs('#forge:ingots/rocket_alloy_t1') - .duration(400) - .EUt(120) - - event.recipes.gtceu.chemical_bath('tfg:rocket_alloy_cool_down_distilled_water') - .itemInputs('#forge:hot_ingots/rocket_alloy_t1') - .inputFluids(Fluid.of('gtceu:distilled_water', 100)) - .itemOutputs('#forge:ingots/rocket_alloy_t1') - .duration(250) - .EUt(120) - - event.recipes.gtceu.assembler(`tfg:rocket_fin_t1`) - .itemInputs( - ChemicalHelper.get(TagPrefix.plate, TFGHelpers.getMaterial('rocket_alloy_t1'), 1), - ChemicalHelper.get(TagPrefix.plateDouble, GTMaterials.StainlessSteel, 1) - ) - .itemOutputs('ad_astra:rocket_fin') - .duration(150) - .circuit(2) - .EUt(GTValues.VA[GTValues.HV]) - .addMaterialInfo(true) - - - event.recipes.gtceu.assembler('tfg:rocket_steel_engine') - .itemInputs( - ChemicalHelper.get(TagPrefix.plateDouble, GTMaterials.StainlessSteel, 2), - '2x #gtceu:circuits/hv', - 'gtceu:hv_electric_pump', - '2x gtceu:power_thruster', - ChemicalHelper.get(TagPrefix.rotor, GTMaterials.StainlessSteel, 1) - ) - .inputFluids(Fluid.of('gtceu:blue_steel', 144 * 8)) - .itemOutputs('ad_astra:steel_engine') - .duration(600) - .circuit(2) - .EUt(GTValues.VA[GTValues.HV]) - .addMaterialInfo(true, true) - - event.recipes.gtceu.assembler('ad_astra:assembler_tier_1_rocket') - .itemInputs( - ChemicalHelper.get(TagPrefix.plateDense, TFGHelpers.getMaterial('rocket_alloy_t1'), 8), - '4x ad_astra:rocket_fin', - '1x ad_astra:steel_engine', - '1x ad_astra:rocket_nose_cone', - '16x #forge:insulation_t1', - '4x #gtceu:circuits/hv' - ) - .inputFluids(Fluid.of('gtceu:silicon', 144 * 16)) - .itemOutputs('ad_astra:tier_1_rocket') - .duration(1200) - .circuit(2) - .EUt(GTValues.VA[GTValues.HV]) - .addMaterialInfo(true, true) - - //#endregion - - - //region tier 2 rocket - - event.remove({ mod: 'gtceu', input: 'gtceu:hot_rocket_alloy_t2_ingot' }) - - event.recipes.gtceu.alloy_blast_smelter('gtceu:alloy_blast_smelter/rocket_alloy_t2') - .itemInputs('19x #forge:dusts/titanium', '3x #forge:dusts/chromium', '3x #forge:dusts/tin', '3x #forge:dusts/aluminium') - .inputFluids(Fluid.of('gtceu:vanadium', 144 * 4), Fluid.of('gtceu:distilled_water', 16000)) - .outputFluids(Fluid.of('gtceu:molten_rocket_alloy_t2', 144 * 32)) - .duration(1320 * 20) - .circuit(2) - .blastFurnaceTemp(3200) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.alloy_blast_smelter('gtceu:alloy_blast_smelter/rocket_alloy_t2_gas') - .itemInputs('19x #forge:dusts/titanium', '3x #forge:dusts/chromium', '3x #forge:dusts/tin', '3x #forge:dusts/aluminium') - .inputFluids(Fluid.of('gtceu:vanadium', 144 * 4), Fluid.of('gtceu:distilled_water', 16000), Fluid.of('gtceu:helium', 3200)) - .outputFluids(Fluid.of('gtceu:molten_rocket_alloy_t2', 144 * 32)) - .duration(17688) - .circuit(12) - .blastFurnaceTemp(3200) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.vacuum_freezer('tfg:vacuum_freezer/cool_molten_rocket_alloy_t2') - .notConsumable('gtceu:ingot_casting_mold') - .inputFluids(Fluid.of('gtceu:molten_rocket_alloy_t2', 144), Fluid.of('tfg:cryogenized_fluix', 288)) - .itemOutputs('#forge:ingots/rocket_alloy_t2') - .duration(120) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.mixer('tfg:rocket_alloy_t2') - .itemInputs('19x #forge:dusts/titanium', '3x #forge:dusts/chromium', '3x #forge:dusts/tin', '3x #forge:dusts/aluminium') - .inputFluids(Fluid.of('gtceu:vanadium', 144 * 4)) - .itemOutputs('32x #forge:dusts/rocket_alloy_t2') - .duration(15 * 20) - .circuit(5) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.vacuum_freezer('tfg:vacuum_freezer/cool_rocket_alloy_t2') - .itemInputs('#forge:hot_ingots/rocket_alloy_t2') - .inputFluids(Fluid.of('gtceu:distilled_water', 500), Fluid.of('tfg:cryogenized_fluix', 288)) - .itemOutputs('#forge:ingots/rocket_alloy_t2') - .duration(120) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.assembler('tfg:rocket_fin_t2') - .itemInputs('#forge:plates/rocket_alloy_t2', - '#forge:double_plates/titanium') - .itemOutputs('tfg:rocket_fin_t2') - .duration(180) - .circuit(3) - .EUt(GTValues.VA[GTValues.EV]) - .addMaterialInfo(true) - - event.recipes.gtceu.assembler('tfg:rocket_cone_t2') - .itemInputs('gtceu:ev_emitter', '#forge:dense_plates/rocket_alloy_t2', '#forge:double_plates/titanium', - '#forge:double_plates/desh') - .itemOutputs('tfg:rocket_cone_t2') - .duration(1440) - .circuit(3) - .EUt(GTValues.VA[GTValues.EV]) - .addMaterialInfo(true) - - - event.recipes.gtceu.assembler('tfg:rocket_desh_engine') - .itemInputs( - ChemicalHelper.get(TagPrefix.plateDouble, GTMaterials.Titanium, 4), - '2x #gtceu:circuits/ev', - 'gtceu:ev_electric_pump', - '3x gtceu:advanced_power_thruster', - ChemicalHelper.get(TagPrefix.rod, GTMaterials.NeodymiumMagnetic, 4), - ChemicalHelper.get(TagPrefix.rotor, GTMaterials.Titanium, 1)) - .inputFluids(Fluid.of('gtceu:desh', 144 * 12)) - .itemOutputs('ad_astra:desh_engine') - .duration(800) - .circuit(3) - .EUt(GTValues.VA[GTValues.EV]) - .addMaterialInfo(true, true) - - event.recipes.gtceu.assembler('ad_astra:tier_2_rocket') - .itemInputs( - ChemicalHelper.get(TagPrefix.plateDense, TFGHelpers.getMaterial('rocket_alloy_t2'), 12), - '4x tfg:rocket_fin_t2', - '1x ad_astra:desh_engine', - '1x tfg:rocket_cone_t2', - '12x #forge:insulation_t2/roll', - '4x #gtceu:circuits/ev' - ) - .inputFluids(Fluid.of('gtceu:titanium', 144 * 16)) - .itemOutputs('ad_astra:tier_2_rocket') - .duration(1440) - .circuit(3) - .EUt(GTValues.VA[GTValues.EV]) - .addMaterialInfo(true, true) - - //#endregion - - //region Tier 3 DISABLED UNTIL IV - event.remove({ id: "gtceu:vacuum_freezer/cool_hot_rocket_alloy_t3_ingot" }) - event.remove({ id: "gtceu:vacuum_freezer/rocket_alloy_t3" }) - /* - event.recipes.gtceu.vacuum_freezer('tfg:cool_rocket_alloy_t3') - .inputFluids(Fluid.of('gtceu:molten_rocket_alloy_t3', 144), Fluid.of('gtceu:ice', 4000)) - .notConsumable('gtceu:ingot_casting_mold') - .itemOutputs('#forge:ingots/rocket_alloy_t3') - .duration(800) - .EUt(GTValues.VA[GTValues.HV]) - event.recipes.gtceu.vacuum_freezer('tfg:cool_hot_rocket_alloy_t3') - .itemInputs('#forge:hot_ingots/rocket_alloy_t3') - .inputFluids(Fluid.of('gtceu:liquid_helium', 500)) - .itemOutputs('#forge:ingots/rocket_alloy_t3') - .outputFluids(Fluid.of('gtceu:helium', 250)) - .duration(400) - .EUt(GTValues.VA[GTValues.HV]) - - //Add some unique cooling thing for molten ingots - - event.recipes.gtceu.assembler('tfg:rocket_fin_t3') - .itemInputs('#forge:plates/rocket_alloy_t3', '#forge:double_plates/tungsten_steel') - .itemOutputs('tfg:rocket_fin_t3') - .duration(220) - .circuit(4) - .EUt(GTValues.VA[GTValues.IV]) - .addMaterialInfo(true) - - event.recipes.gtceu.assembler('tfg:rocket_cone_t3') - .itemInputs('gtceu:iv_emitter', '#forge:dense_plates/rocket_alloy_t3', '#forge:double_plates/tungsten_steel', - '#forge:double_plates/ostrum', 'gtceu:plutonium_nugget') //change this to the pellet - .itemOutputs('tfg:rocket_cone_t3') - .duration(1700) - .circuit(4) - .EUt(GTValues.VA[GTValues.IV]) - .addMaterialInfo(true) - - event.recipes.gtceu.assembler('tfg:elite_power_thruster') - .itemInputs('gtceu:ev_electric_motor', '2x #forge:rings/titanium', '#forge:rods/titanium', - 'gtceu:ultimet_rotor', '2x gtceu:aluminium_single_cable') - .itemOutputs('tfg:elite_power_thruster') - .duration(200) - .EUt(GTValues.VA[GTValues.LV]) - .addMaterialInfo(true) - - event.recipes.gtceu.assembler('tfg:rocket_ostrum_engine') - .itemInputs( - '6x #forge:double_plates/tungsten_steel', - '4x #gtceu:circuits/iv', - 'gtceu:iv_electric_pump', - '3x tfg:elite_power_thruster', - '4x #forge:insulation_t3/cryo', - '6x #forge:rods/magnetic_neodymium', - '#forge:rotors/tungsten_steel') - .inputFluids(Fluid.of('gtceu:ostrum', 144 * 16)) - .itemOutputs('ad_astra:ostrum_engine') - .duration(960) - .circuit(4) - .EUt(GTValues.VA[GTValues.IV]) - .addMaterialInfo(true, true) - - event.recipes.gtceu.assembler('tfg:rocket_ostrum_tank') - .itemInputs( - '4x #forge:double_plates/rocket_alloy_t3', - 'gtceu:iv_electric_pump', - 'tfg:elite_power_thruster', - '2x #forge:insulation_t3/cryo') - .inputFluids(Fluid.of('gtceu:ostrum', 144 * 4)) - .itemOutputs('ad_astra:ostrum_tank') - .duration(400) - .circuit(4) - .EUt(GTValues.VA[GTValues.IV]) - .addMaterialInfo(true, true) - - event.recipes.gtceu.assembler('ad_astra:tier_3_rocket') - .itemInputs( - '16x #forge:dense_plates/rocket_alloy_t3', - '4x tfg:rocket_fin_t3', - '1x ad_astra:ostrum_engine', - '2x ad_astra:ostrum_tank', - '1x tfg:rocket_cone_t3', - '8x #forge:insulation_t3/sheet' - ) - .inputFluids(Fluid.of('gtceu:bromine', 1000 * 16)) - .itemOutputs('ad_astra:tier_3_rocket') - .duration(1700) - .circuit(4) - .EUt(GTValues.VA[GTValues.IV]) - .addMaterialInfo(true, true) - - //#endregion -*/ - //#region space suits NETHERITE STUFF DISABLED UNTIL IV - - event.recipes.gtceu.forming_press('space_suit_fabric') - .itemInputs( - '#forge:foils/aluminium', - 'gtceu:carbon_fiber_mesh', - '#forge:foils/silicone_rubber', - 'tfg:polycaprolactam_fabric' - ) - .itemOutputs('2x tfg:space_suit_fabric') - .duration(20 * 10) - .EUt(GTValues.VA[GTValues.HV]) - .addMaterialInfo(true) - - event.recipes.gtceu.forming_press('better_space_suit_fabric') - .itemInputs( - '#forge:foils/polybenzimidazole', - 'gtceu:carbon_fiber_mesh', - '#forge:aerogels', - 'tfg:glacian_wool' - ) - .itemOutputs('2x tfg:better_space_suit_fabric') - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.IV]) - .addMaterialInfo(true) - - event.recipes.gtceu.shaped('ad_astra:space_helmet', [ - 'AAA', - 'ADA', - 'BBB' - ], { - A: 'gtceu:tempered_glass', - B: 'tfg:space_suit_fabric', - D: '#forge:small_fluid_pipes/polyethylene' - }).addMaterialInfo().id('tfg:space_helmet') - - event.recipes.gtceu.assembler('ad_astra:netherite_space_helmet') - .itemInputs( - 'ad_astra:space_helmet', - '2x #forge:plates/tungsten_steel', - '1x #forge:plates/ostrum', - '3x tfg:better_space_suit_fabric', - '5x gtceu:laminated_glass' - ) - .itemOutputs('ad_astra:netherite_space_helmet') - .duration(400) - .EUt(GTValues.VA[GTValues.IV]) - .addMaterialInfo(true) - - event.recipes.gtceu.shaped('ad_astra:space_suit', [ - 'B B', - 'BDB', - 'BBB' - ], { - B: 'tfg:space_suit_fabric', - D: 'ad_astra:oxygen_gear' - }).addMaterialInfo().id('tfg:space_suit') - - event.shapeless('ad_astra:space_suit', ['ad_astra:space_suit']) - .id('tfg:empty_space_suit') - - event.recipes.gtceu.assembler('ad_astra:netherite_space_suit') - .itemInputs( - 'ad_astra:space_suit', - '3x #forge:plates/tungsten_steel', - '2x #forge:plates/ostrum', - '5x tfg:better_space_suit_fabric' - ) - .itemOutputs('ad_astra:netherite_space_suit') - .duration(400) - .EUt(GTValues.VA[GTValues.IV]) - .addMaterialInfo(true) - - event.shapeless('ad_astra:netherite_space_suit', ['ad_astra:netherite_space_suit']) - .id('tfg:empty_netherite_space_suit') - - event.recipes.gtceu.shaped('ad_astra:space_pants', [ - 'BAB', - 'B B', - 'B B' - ], { - A: 'gtceu:hv_electric_motor', - B: 'tfg:space_suit_fabric', - }).addMaterialInfo().id('tfg:space_pants') - - event.recipes.gtceu.assembler('ad_astra:netherite_space_pants') - .itemInputs( - 'ad_astra:space_pants', - '2x #forge:plates/tungsten_steel', - '2x #forge:plates/ostrum', - '4x tfg:better_space_suit_fabric' - ) - .itemOutputs('ad_astra:netherite_space_pants') - .duration(400) - .EUt(GTValues.VA[GTValues.IV]) - .addMaterialInfo(true) - - event.recipes.gtceu.shaped('ad_astra:space_boots', [ - 'B B', - 'A A' - ], { - A: '#forge:plates/polyphenylene_sulfide', - B: 'tfg:space_suit_fabric' - }).addMaterialInfo().id('tfg:space_boots') - - event.recipes.gtceu.assembler('ad_astra:netherite_space_boots') - .itemInputs( - 'ad_astra:space_boots', - '1x #forge:plates/tungsten_steel', - '1x #forge:plates/ostrum', - '2x tfg:better_space_suit_fabric' - ) - .itemOutputs('ad_astra:netherite_space_boots') - .duration(400) - .EUt(GTValues.VA[GTValues.IV]) - .addMaterialInfo(true) - - - event.recipes.gtceu.shaped('ad_astra:oxygen_gear', [ - 'BAB', - 'ECE', - 'BDB' - ], { - A: '#gtceu:circuits/hv', - B: '#forge:tiny_fluid_pipes/stainless_steel', - C: 'gtceu:hv_electric_pump', - D: 'gtceu:fluid_detector_cover', - E: 'ad_astra:gas_tank' - }).addMaterialInfo().id('tfg:oxygen_gear') - - //#endregion //#region Gas tanks @@ -919,28 +499,6 @@ const registerAdAstraRecipes = (event) => { event.stonecutting('ad_astra:encased_etrium_block', '#tfg:ad_astra_etrium_blocks') event.stonecutting('ad_astra:etrium_plateblock', '#tfg:ad_astra_etrium_blocks') - event.recipes.tfc.loom( - '8x ad_astra:glacian_fur', - '8x tfg:glacian_wool', - 8, - 'ad_astra:block/glacian_fur' - ) - - event.recipes.gtceu.assembler('tfg:assembler/glacian_fur') - .itemInputs('tfg:glacian_wool') - .circuit(10) - .itemOutputs('ad_astra:glacian_fur') - .duration(100) - .EUt(4) - - event.shaped('minecraft:pink_bed', [ - 'AAA', - 'BBB' - ], { - A: 'ad_astra:glacian_fur', - B: '#tfc:lumber' - }).id('tfg:shaped/glacian_bed') - //#endregion //#region Space stations @@ -949,10 +507,10 @@ const registerAdAstraRecipes = (event) => { type: "ad_astra:space_station_recipe", dimension: "ad_astra:earth_orbit", ingredients: [ - { count: 43, ingredient: { item: "gtceu:aluminium_frame" }}, - { count: 24, ingredient: { item: "gtceu:glass_plate" }}, - { count: 4, ingredient: { item: "minecraft:glowstone_dust" }}, - { count: 1, ingredient: { item: "ad_astra:launch_pad" }} + { count: 43, ingredient: { item: "gtceu:aluminium_frame" } }, + { count: 24, ingredient: { item: "gtceu:glass_plate" } }, + { count: 4, ingredient: { item: "minecraft:glowstone_dust" } }, + { count: 1, ingredient: { item: "ad_astra:launch_pad" } } ], structure: "tfg:orbit/space_station" }) @@ -961,10 +519,10 @@ const registerAdAstraRecipes = (event) => { type: "ad_astra:space_station_recipe", dimension: "ad_astra:moon_orbit", ingredients: [ - { count: 43, ingredient: { item: "gtceu:aluminium_frame" }}, - { count: 24, ingredient: { item: "gtceu:glass_plate" }}, - { count: 4, ingredient: { item: "minecraft:glowstone_dust" }}, - { count: 1, ingredient: { item: "ad_astra:launch_pad" }} + { count: 43, ingredient: { item: "gtceu:aluminium_frame" } }, + { count: 24, ingredient: { item: "gtceu:glass_plate" } }, + { count: 4, ingredient: { item: "minecraft:glowstone_dust" } }, + { count: 1, ingredient: { item: "ad_astra:launch_pad" } } ], structure: "tfg:orbit/space_station" }) @@ -973,10 +531,46 @@ const registerAdAstraRecipes = (event) => { type: "ad_astra:space_station_recipe", dimension: "ad_astra:mars_orbit", ingredients: [ - { count: 43, ingredient: { item: "gtceu:aluminium_frame" }}, - { count: 24, ingredient: { item: "gtceu:glass_plate" }}, - { count: 4, ingredient: { item: "minecraft:glowstone_dust" }}, - { count: 1, ingredient: { item: "ad_astra:launch_pad" }} + { count: 43, ingredient: { item: "gtceu:aluminium_frame" } }, + { count: 24, ingredient: { item: "gtceu:glass_plate" } }, + { count: 4, ingredient: { item: "minecraft:glowstone_dust" } }, + { count: 1, ingredient: { item: "ad_astra:launch_pad" } } + ], + structure: "tfg:orbit/space_station" + }) + + event.custom({ + type: "ad_astra:space_station_recipe", + dimension: "ad_astra:venus_orbit", + ingredients: [ + { count: 43, ingredient: { item: "gtceu:aluminium_frame" } }, + { count: 24, ingredient: { item: "gtceu:glass_plate" } }, + { count: 4, ingredient: { item: "minecraft:glowstone_dust" } }, + { count: 1, ingredient: { item: "ad_astra:launch_pad" } } + ], + structure: "tfg:orbit/space_station" + }) + + event.custom({ + type: "ad_astra:space_station_recipe", + dimension: "ad_astra:mercury_orbit", + ingredients: [ + { count: 43, ingredient: { item: "gtceu:aluminium_frame" } }, + { count: 24, ingredient: { item: "gtceu:glass_plate" } }, + { count: 4, ingredient: { item: "minecraft:glowstone_dust" } }, + { count: 1, ingredient: { item: "ad_astra:launch_pad" } } + ], + structure: "tfg:orbit/space_station" + }) + + event.custom({ + type: "ad_astra:space_station_recipe", + dimension: "ad_astra:glacio_orbit", + ingredients: [ + { count: 43, ingredient: { item: "gtceu:aluminium_frame" } }, + { count: 24, ingredient: { item: "gtceu:glass_plate" } }, + { count: 4, ingredient: { item: "minecraft:glowstone_dust" } }, + { count: 1, ingredient: { item: "ad_astra:launch_pad" } } ], structure: "tfg:orbit/space_station" }) @@ -984,45 +578,12 @@ const registerAdAstraRecipes = (event) => { //#endregion //#region Wood - event.remove({ type: 'greate:cutting', input: '#ad_astra:aeronos_caps' }) - event.remove({ type: 'greate:cutting', input: 'ad_astra:aeronos_planks' }) - event.remove({ type: 'greate:cutting', input: '#ad_astra:strophar_caps' }) - event.remove({ type: 'greate:cutting', input: 'ad_astra:glacian_log' }) - event.remove({ type: 'greate:cutting', input: 'ad_astra:stripped_glacian_log' }) - event.remove({ type: 'greate:cutting', input: 'ad_astra:strophar_planks' }) - event.remove({ type: 'greate:cutting', input: 'ad_astra:glacian_planks' }) - - global.AD_ASTRA_WOOD.forEach(wood => { - woodBuilder(event, wood.name, wood.lumber, wood.logs, wood.log, wood.stripped_log, wood.plank, wood.stair, wood.slab, wood.door, wood.trapdoor, wood.fence, wood.fence_gate, wood.support, wood.pressure_plate, wood.button) - }) - - event.shaped('16x ad_astra:aeronos_ladder', [ - 'A A', - 'ABA', - 'A A' - ], { - A: 'tfg:wood/lumber/aeronos', - B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Wood, 1), - }).id('tfg:shaped/aeronos_ladder') - - event.shaped('16x ad_astra:strophar_ladder', [ - 'A A', - 'ABA', - 'A A' - ], { - A: 'tfg:wood/lumber/strophar', - B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Wood, 1), - }).id('tfg:shaped/strophar_ladder') - - - generateGreenHouseRecipe(event, '8x tfg:saplings/strophar', 'tfg:semiheavy_ammoniacal_water', 16000, - '64x ad_astra:strophar_stem', 'tfg:green_house/strophar_mushroom', 'ad_astra:mars', 8, - '16x ad_astra:strophar_cap', GTValues.VA[GTValues.MV]) - generateGreenHouseRecipe(event, '8x tfg:saplings/aeronos', 'tfg:semiheavy_ammoniacal_water', 16000, - '64x ad_astra:aeronos_stem', 'tfg:green_house/aeronos_mushroom', 'ad_astra:mars', 8, - '16x ad_astra:aeronos_cap', GTValues.VA[GTValues.MV]) - generateGreenHouseRecipe(event, '8x tfg:saplings/glacian', 'tfg:semiheavy_ammoniacal_water', 16000, - '64x ad_astra:glacian_log', 'tfg:green_house/glacian_tree', 'ad_astra:mars', 8, - '8x species:alphacene_moss_block', GTValues.VA[GTValues.MV]) + event.remove({ type: 'greate:cutting', input: '#ad_astra:aeronos_caps' }) + event.remove({ type: 'greate:cutting', input: 'ad_astra:aeronos_planks' }) + event.remove({ type: 'greate:cutting', input: '#ad_astra:strophar_caps' }) + event.remove({ type: 'greate:cutting', input: 'ad_astra:glacian_log' }) + event.remove({ type: 'greate:cutting', input: 'ad_astra:stripped_glacian_log' }) + event.remove({ type: 'greate:cutting', input: 'ad_astra:strophar_planks' }) + event.remove({ type: 'greate:cutting', input: 'ad_astra:glacian_planks' }) //#endregion } diff --git a/kubejs/server_scripts/ad_astra/tags.js b/kubejs/server_scripts/ad_astra/tags.js index f29b93dc4..b6578ed62 100644 --- a/kubejs/server_scripts/ad_astra/tags.js +++ b/kubejs/server_scripts/ad_astra/tags.js @@ -11,7 +11,6 @@ const registerAdAstraFluidTags = (event) => { // Using this to represent 'breathable air' instead of oxygen event.removeAllTagsFrom('ad_astra:oxygen') - event.removeAll('ad_astra:fuel') event.removeAll('ad_astra:efficient_fuel') @@ -33,6 +32,9 @@ const registerAdAstraFluidTags = (event) => { event.add('ad_astra:evaporates_in_space', 'tfc:salt_water') event.add('ad_astra:evaporates_in_space', 'tfc:spring_water') event.add('ad_astra:evaporates_in_space', '#tfc:alcohols') + event.add('ad_astra:evaporates_in_space', '#tfc:milks') + event.add('ad_astra:evaporates_in_space', '#tfc:dyes') + event.add('ad_astra:evaporates_in_space', '#tfc:drinkables') global.BREATHABLE_COMPRESSED_AIRS.forEach(x => { event.add('ad_astra:zip_gun_propellants', x) @@ -49,38 +51,6 @@ const registerAdAstraItemTags = (event) => { event.add('c:hidden_from_recipe_viewers', 'ad_astra:alphacene_mushroom') event.add('c:hidden_from_recipe_viewers', 'ad_astra:strophar_mushroom') - event.add('gtceu:ppe_armor', '#ad_astra:space_suit_items') - event.add('minecraft:trimmable_armor', '#ad_astra:space_suit_items') - - event.add('forge:cobblestone', 'ad_astra:moon_cobblestone') - event.add('forge:cobblestone', 'ad_astra:mars_cobblestone') - event.add('forge:cobblestone', 'ad_astra:venus_cobblestone') - event.add('forge:cobblestone', 'ad_astra:mercury_cobblestone') - event.add('forge:cobblestone', 'ad_astra:glacio_cobblestone') - - // Insulation Tier 1 - event.add('forge:insulation_t1', 'gtceu:borosilicate_glass_dust') - event.add('forge:insulation_t1', 'gtceu:vitrified_asbestos_dust') - - //Insulation Tier 2 - event.add('forge:insulation_t2/sheet', 'tfg:aes_insulation_sheet') - event.add('forge:insulation_t2/roll', 'tfg:aes_insulation_roll') - - //Insulation Tier3 - event.add('forge:insulation_t3/foam', 'tfg:aes_polyurethane') - event.add('forge:insulation_t3/sheet', 'tfg:mli_shielding') - event.add('forge:insulation_t3/cryo', 'tfg:silica_aerogel') - - event.add('forge:aerogels', 'tfg:silica_aerogel') - - //Rocket Engines - event.add('ad_astra:rocket_engine', 'ad_astra:steel_engine') - event.add('ad_astra:rocket_engine', 'ad_astra:desh_engine') - event.add('ad_astra:rocket_engine', 'ad_astra:ostrum_engine') - - //Rocket Tank - event.add('ad_astra:rocket_tank', 'ad_astra:ostrum_tank') - // Deco blocks const DECO_BLOCKS = [ 'iron', 'steel', 'desh', 'calorite', 'ostrum' ]; DECO_BLOCKS.forEach(block => { @@ -97,46 +67,6 @@ const registerAdAstraItemTags = (event) => { event.add('tfg:ad_astra_etrium_blocks', 'ad_astra:encased_etrium_block') event.add('tfg:ad_astra_etrium_blocks', 'ad_astra:etrium_plateblock') event.add('tfg:ad_astra_etrium_blocks', 'ad_astra:etrium_panel') - - event.add('tfc:foods', 'ad_astra:cheese') - event.add('tfc:foods/dairy', 'ad_astra:cheese') - event.add('tfc:foods/usable_in_sandwich', 'ad_astra:cheese') - event.add('tfc:foods/usable_in_jam_sandwich', 'ad_astra:cheese') - event.add('tfc:foods/usable_in_jam_sandwich_2', 'ad_astra:cheese') - event.add('firmalife:foods/cheeses', 'ad_astra:cheese') - - event.add('ad_astra:space_suit_items', 'gtceu:quarktech_helmet') - event.add('ad_astra:space_suit_items', 'gtceu:quarktech_chestplate') - event.add('ad_astra:space_suit_items', 'gtceu:advanced_quarktech_chestplate') - event.add('ad_astra:space_suit_items', 'gtceu:quarktech_leggings') - event.add('ad_astra:space_suit_items', 'gtceu:quarktech_boots') - - event.add('ad_astra:freeze_resistant_armor', 'gtceu:quarktech_helmet') - event.add('ad_astra:freeze_resistant_armor', 'gtceu:quarktech_chestplate') - event.add('ad_astra:freeze_resistant_armor', 'gtceu:advanced_quarktech_chestplate') - event.add('ad_astra:freeze_resistant_armor', 'gtceu:quarktech_leggings') - event.add('ad_astra:freeze_resistant_armor', 'gtceu:quarktech_boots') - - event.add('ad_astra:heat_resistant_armor', 'gtceu:quarktech_helmet') - event.add('ad_astra:heat_resistant_armor', 'gtceu:quarktech_chestplate') - event.add('ad_astra:heat_resistant_armor', 'gtceu:advanced_quarktech_chestplate') - event.add('ad_astra:heat_resistant_armor', 'gtceu:quarktech_leggings') - event.add('ad_astra:heat_resistant_armor', 'gtceu:quarktech_boots') - - event.remove('minecraft:wool', 'ad_astra:glacian_fur') - - event.add('tfc:compost_greens', 'ad_astra:aeronos_cap') - event.add('tfc:compost_greens', 'ad_astra:strophar_cap') - - // these are log tags - event.remove('ad_astra:aeronos_caps', 'ad_astra:aeronos_cap') - event.remove('ad_astra:strophar_caps', 'ad_astra:strophar_cap') - event.add('minecraft:wart_blocks', 'ad_astra:aeronos_cap') - event.add('minecraft:wart_blocks', 'ad_astra:strophar_cap') - - event.add('tfc:makes_tannin', '#ad_astra:glacian_logs') - event.add('tfc:makes_tannin', '#tfc:crimson_logs') - event.add('tfc:makes_tannin', '#tfc:warped_logs') global.AD_ASTRA_WOOD.forEach(wood => { @@ -156,13 +86,6 @@ const registerAdAstraItemTags = (event) => { event.add('tfg:softwood', wood.logs) } }) - - event.add('forge:smooth_stone_slab', 'ad_astra:polished_moon_stone_slab') - event.add('forge:smooth_stone_slab', 'ad_astra:polished_mars_stone_slab') - event.add('forge:smooth_stone_slab', 'ad_astra:polished_venus_stone_slab') - event.add('forge:smooth_stone_slab', 'ad_astra:polished_mercury_stone_slab') - event.add('forge:smooth_stone_slab', 'ad_astra:polished_glacio_stone_slab') - event.add('forge:smooth_stone_slab', 'ad_astra:polished_permafrost_slab') } const registerAdAstraBlockTags = (event) => { @@ -172,273 +95,6 @@ const registerAdAstraBlockTags = (event) => { event.add('c:hidden_from_recipe_viewers', item) }) - // All new stones - global.EXTRATERRESTRIAL_RAW_ROCKS.forEach(rock => { - event.add('forge:stone', rock) - event.add('tfc:breaks_when_isolated', rock) - event.add('tfc:rock/raw', rock) - event.add('minecraft:mineable/pickaxe', rock) - event.add('tfc:can_carve', rock) - // Collapse tags also require a collapse recipe to work. - // Don't add the recipe if you don't want them to actually collapse! - event.add('tfc:can_collapse', rock) - event.add('tfc:can_trigger_collapse', rock) - event.add('tfc:can_start_collapse', rock) - event.add('tfc:powderkeg_breaking_blocks', rock) - event.add('tfc:bloomery_insulation', rock) - event.add('firmalife:oven_insulation', rock) - event.add('tfc:forge_insulation', rock) - }) - - global.EXTRATERRESTRIAL_HARDENED_ROCKS.forEach(rock => { - event.add('minecraft:mineable/pickaxe', rock) - event.add('tfc:can_collapse', rock) - event.add('tfc:can_trigger_collapse', rock) - event.add('tfc:powderkeg_breaking_blocks', rock) - event.add('tfc:bloomery_insulation', rock) - event.add('firmalife:oven_insulation', rock) - event.add('tfc:forge_insulation', rock) - event.add('tfc:can_carve', rock) - }) - - // Moon - event.add('ad_astra:moon_stone_replaceables', 'ad_astra:moon_sand') - event.add('ad_astra:moon_stone_replaceables', 'tfg:rock/hardened_moon_stone') - event.add('ad_astra:moon_stone_replaceables', 'tfc:sand/white') - event.add('ad_astra:moon_stone_replaceables', 'tfc:sand/black') - event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/gravel/diorite') - event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/gravel/gabbro') - event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/gravel/basalt') - event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/gravel/rhyolite') - event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/gravel/andesite') - event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/gravel/dacite') - event.add('ad_astra:moon_stone_replaceables', 'tfg:rock/gravel_moon') - event.add('ad_astra:moon_stone_replaceables', 'tfg:rock/gravel_moon_deepslate') - event.add('ad_astra:moon_stone_replaceables', 'tfg:rock/gravel_glacio') - event.add('ad_astra:moon_stone_replaceables', 'tfg:rock/hardened_moon_deepslate') - event.add('ad_astra:moon_stone_replaceables', 'ad_astra:glacio_stone') - event.add('ad_astra:moon_stone_replaceables', 'tfg:rock/hardened_glacio_stone') - event.add('ad_astra:moon_stone_replaceables', 'ad_astra:glacio_cobblestone') - event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/basalt') - event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/basalt') - event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/gabbro') - event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/gabbro') - event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/diorite') - event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/diorite') - event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/rhyolite') - event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/rhyolite') - event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/andesite') - event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/andesite') - event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/dacite') - event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/dacite') - - // Mars - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/dacite') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/dacite') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/dacite') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/basalt') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/basalt') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/basalt') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/gabbro') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/gabbro') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/gabbro') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/diorite') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/diorite') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/diorite') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/rhyolite') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/rhyolite') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/rhyolite') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/andesite') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/andesite') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/andesite') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/chert') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/chert') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/chert') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/conglomerate') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/conglomerate') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/conglomerate') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/claystone') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/claystone') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/claystone') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/limestone') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/limestone') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/limestone') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/dolomite') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/dolomite') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/dolomite') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/shale') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/shale') - event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/shale') - event.add('ad_astra:mars_stone_replaceables', 'ad_astra:mars_stone') - event.add('ad_astra:mars_stone_replaceables', 'tfg:rock/hardened_mars_stone') - event.add('ad_astra:mars_stone_replaceables', 'tfg:rock/gravel_mars') - event.add('ad_astra:mars_stone_replaceables', 'minecraft:red_sandstone') - event.add('ad_astra:mars_stone_replaceables', 'ad_astra:venus_stone') - event.add('ad_astra:mars_stone_replaceables', 'ad_astra:venus_sandstone') - event.add('ad_astra:mars_stone_replaceables', 'tfg:rock/hardened_venus_stone') - event.add('ad_astra:mars_stone_replaceables', 'tfg:rock/gravel_venus') - event.add('ad_astra:mars_stone_replaceables', 'gtceu:red_granite') - event.add('ad_astra:mars_stone_replaceables', 'tfg:rock/hardened_red_granite') - event.add('ad_astra:mars_stone_replaceables', 'tfg:rock/gravel_red_granite') - event.add('ad_astra:mars_stone_replaceables', 'create:ochrum') - event.add('tfg:mars_soil', 'minecraft:red_sand') - event.add('tfg:mars_soil', 'ad_astra:mars_sand') - event.add('tfg:mars_soil', 'ad_astra:venus_sand') - event.add('tfg:mars_soil', 'tfg:rock/gravel_venus') - event.add('tfg:mars_soil', 'tfg:rock/gravel_mars') - event.add('tfg:mars_soil', 'tfc:rock/gravel/dacite') - event.add('tfg:mars_soil', 'tfc:rock/gravel/basalt') - event.add('tfg:mars_soil', 'tfc:rock/gravel/gabbro') - event.add('tfg:mars_soil', 'tfc:rock/gravel/diorite') - event.add('tfg:mars_soil', 'tfc:rock/gravel/rhyolite') - event.add('tfg:mars_soil', 'tfc:rock/gravel/andesite') - event.add('tfg:mars_soil', 'tfc:rock/gravel/conglomerate') - event.add('tfg:mars_soil', 'tfc:rock/gravel/claystone') - event.add('tfg:mars_soil', 'tfc:rock/gravel/limestone') - event.add('tfg:mars_soil', 'tfc:rock/gravel/dolomite') - event.add('tfg:mars_soil', 'tfc:rock/gravel/shale') - event.add('tfg:mars_soil', 'tfc:sand/black') - event.add('tfg:mars_soil', 'tfc:sand/red') - event.add('tfg:mars_soil', 'tfc:sand/pink') - event.add('tfg:mars_soil', 'tfg:grass/mars_dirt') - event.add('tfg:mars_soil', 'tfg:grass/mars_clay_dirt') - event.add('tfg:mars_soil', 'tfg:grass/amber_mycelium') - event.add('tfg:mars_soil', 'tfg:grass/rusticus_mycelium') - event.add('tfg:mars_soil', 'tfg:grass/sangnum_mycelium') - event.add('tfg:mars_soil', 'tfg:grass/amber_clay_mycelium') - event.add('tfg:mars_soil', 'tfg:grass/rusticus_clay_mycelium') - event.add('tfg:mars_soil', 'tfg:grass/sangnum_clay_mycelium') - event.add('tfg:mars_soil', 'tfg:grass/amber_kaolin_mycelium') - event.add('tfg:mars_soil', 'tfg:grass/rusticus_kaolin_mycelium') - event.add('tfg:mars_soil', 'tfg:grass/sangnum_kaolin_mycelium') - event.add('ad_astra:mars_stone_replaceables', '#tfg:mars_soil') - event.add('minecraft:animals_spawnable_on', '#tfg:mars_soil') - event.add('minecraft:animals_spawnable_on', '#tfg:mars_plants') - event.add('minecraft:valid_spawn', '#minecraft:animals_spawnable_on') - - // Venus - event.add('ad_astra:venus_stone_replaceables', 'ad_astra:venus_stone') - event.add('ad_astra:venus_stone_replaceables', 'tfg:rock/hardened_venus_stone') - event.add('ad_astra:venus_stone_replaceables', 'gtceu:red_granite') - event.add('ad_astra:venus_stone_replaceables', 'tfg:rock/hardened_red_granite') - event.add('ad_astra:venus_stone_replaceables', 'ad_astra:moon_deepslate') - event.add('ad_astra:venus_stone_replaceables', 'tfg:rock/hardened_moon_deepslate') - event.add('ad_astra:venus_stone_replaceables', 'minecraft:deepslate') - event.add('ad_astra:venus_stone_replaceables', 'tfg:rock/hardened_deepslate') - event.add('ad_astra:venus_stone_replaceables', 'minecraft:dripstone_block') - event.add('ad_astra:venus_stone_replaceables', 'tfg:rock/hardened_dripstone') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/granite') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/granite') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/diorite') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/diorite') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/gabbro') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/gabbro') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/basalt') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/basalt') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/rhyolite') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/andesite') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/dacite') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/dacite') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/slate') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/slate') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/schist') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/schist') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/gneiss') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/gneiss') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/phyllite') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/phyllite') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/quartzite') - event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/quartzite') - event.add('ad_astra:venus_stone_replaceables', 'tfg:sand/fluorapatite/blue') - event.add('ad_astra:venus_stone_replaceables', 'tfg:sandstone/raw/fluorapatite/blue') - event.add('ad_astra:venus_stone_replaceables', 'tfg:sand/fluorapatite/green') - event.add('ad_astra:venus_stone_replaceables', 'tfg:sandstone/raw/fluorapatite/green') - event.add('ad_astra:venus_stone_replaceables', 'tfg:sand/fluorapatite/brown') - event.add('ad_astra:venus_stone_replaceables', 'tfg:sandstone/raw/fluorapatite/brown') - event.add('ad_astra:venus_stone_replaceables', 'tfg:sand/fluorapatite/orange') - event.add('ad_astra:venus_stone_replaceables', 'tfg:sandstone/raw/fluorapatite/orange') - event.add('ad_astra:venus_stone_replaceables', 'tfg:sand/fluorapatite/white') - event.add('ad_astra:venus_stone_replaceables', 'tfg:sandstone/raw/fluorapatite/white') - event.add('ad_astra:venus_stone_replaceables', 'tfg:sand/fluorapatite/yellow') - event.add('ad_astra:venus_stone_replaceables', 'tfg:sandstone/raw/fluorapatite/yellow') - event.add('ad_astra:venus_stone_replaceables', 'tfg:geyser_slurry') - event.add('ad_astra:venus_stone_replaceables', 'tfg:sulfur_fumes') - event.add('ad_astra:venus_stone_replaceables', 'minecraft:lava') - event.add('ad_astra:venus_stone_replaceables', 'create:scoria') - event.add('ad_astra:venus_stone_replaceables', 'create:scorchia') - event.add('ad_astra:venus_stone_replaceables', 'minecraft:tuff') - - event.add('tfc:can_carve', '#ad_astra:moon_stone_replaceables') - event.add('tfc:can_carve', '#ad_astra:mars_stone_replaceables') - event.add('tfc:can_carve', '#ad_astra:venus_stone_replaceables') - - event.add('minecraft:rabbits_spawnable_on', '#ad_astra:moon_stone_replaceables') - event.add('species:limpet_spawnable_on', '#ad_astra:moon_stone_replaceables') - - event.add('tfc:can_landslide', 'ad_astra:moon_sand') - event.add('tfc:can_landslide', 'ad_astra:mars_sand') - event.add('tfc:can_landslide', 'ad_astra:venus_sand') - event.add('tfc:can_landslide', 'minecraft:red_sand') - - event.add('tfc:can_landslide', 'ad_astra:moon_cobblestone') - event.add('tfc:can_landslide', 'ad_astra:mars_cobblestone') - event.add('tfc:can_landslide', 'ad_astra:venus_cobblestone') - event.add('tfc:can_landslide', 'ad_astra:mercury_cobblestone') - event.add('tfc:can_landslide', 'ad_astra:glacio_cobblestone') - event.add('tfc:can_landslide', 'gtceu:red_granite_cobblestone') - - event.add('forge:cobblestone', 'ad_astra:moon_cobblestone') - event.add('forge:cobblestone', 'ad_astra:mars_cobblestone') - event.add('forge:cobblestone', 'ad_astra:venus_cobblestone') - event.add('forge:cobblestone', 'ad_astra:mercury_cobblestone') - event.add('forge:cobblestone', 'ad_astra:glacio_cobblestone') - - event.add('tfc:can_landslide', 'ad_astra:moon_cobblestone_slab') - event.add('tfc:can_landslide', 'ad_astra:mars_cobblestone_slab') - event.add('tfc:can_landslide', 'ad_astra:venus_cobblestone_slab') - event.add('tfc:can_landslide', 'ad_astra:mercury_cobblestone_slab') - event.add('tfc:can_landslide', 'ad_astra:glacio_cobblestone_slab') - - event.add('tfc:can_landslide', 'ad_astra:moon_cobblestone_stairs') - event.add('tfc:can_landslide', 'ad_astra:mars_cobblestone_stairs') - event.add('tfc:can_landslide', 'ad_astra:venus_cobblestone_stairs') - event.add('tfc:can_landslide', 'ad_astra:mercury_cobblestone_stairs') - event.add('tfc:can_landslide', 'ad_astra:glacio_cobblestone_stairs') - - event.add('tfg:rock_stairs', 'ad_astra:moon_stone_stairs') - event.add('tfg:rock_stairs', 'ad_astra:mars_stone_stairs') - event.add('tfg:rock_stairs', 'ad_astra:venus_stone_stairs') - event.add('tfg:rock_stairs', 'ad_astra:mercury_stone_stairs') - event.add('tfg:rock_stairs', 'ad_astra:glacio_stone_stairs') - - event.add('tfg:rock_slabs', 'ad_astra:moon_stone_slab') - event.add('tfg:rock_slabs', 'ad_astra:mars_stone_slab') - event.add('tfg:rock_slabs', 'ad_astra:venus_stone_slab') - event.add('tfg:rock_slabs', 'ad_astra:mercury_stone_slab') - event.add('tfg:rock_slabs', 'ad_astra:glacio_stone_slab') - - event.add('ad_astra:destroyed_in_space', '#tfc:wild_fruits') - event.add('ad_astra:destroyed_in_space', '#minecraft:saplings') - - event.remove('ad_astra:strophar_caps', 'ad_astra:strophar_cap') - event.remove('ad_astra:aeronos_caps', 'ad_astra:aeronos_cap') - - event.add('tfg:heightmap_ignore', 'ad_astra:strophar_cap') - event.add('tfg:heightmap_ignore', 'ad_astra:strophar_stem') - event.add('tfg:heightmap_ignore', 'ad_astra:aeronos_cap') - event.add('tfg:heightmap_ignore', 'ad_astra:aeronos_stem') - event.add('tfg:heightmap_ignore', 'minecraft:nether_wart_block') - event.add('tfg:heightmap_ignore', 'minecraft:warped_wart_block') - event.add('tfg:heightmap_ignore', 'species:alphacene_mushroom_block') - event.add('tfg:heightmap_ignore', 'species:alphacene_mushroom_growth') - event.add('tfg:heightmap_ignore', 'tfg:glacian_leaves') - event.add('tfg:heightmap_ignore', 'betterend:glacian_hymenophore') - event.add('tfg:heightmap_ignore', 'species:alphacene_moss_block') - event.add('tfg:heightmap_ignore', 'minecraft:ice') - - event.add('tfc:can_be_snow_piled', 'ad_astra:aeronos_mushroom') - event.add('tfc:can_be_snow_piled', 'ad_astra:strophar_mushroom') - global.AD_ASTRA_WOOD.forEach(wood => { if (wood.log) { @@ -454,298 +110,5 @@ const registerAdAstraBlockTags = (event) => { } const registerAdAstraBiomeTags = (event) => { - event.removeAll('ad_astra:has_structure/oil_well') - - global.MOON_BIOMES.forEach(biome => { - event.add('tfg:moon_biomes', biome) - event.add('tfg:has_structure/meteors', biome) - event.add('tfg:has_structure/cheese_ores', biome) - event.add('tfg:has_structure/moonbase', biome) - event.add('tfg:has_structure/moon_rabbit_houses', biome) - event.add('species:limpet_spawns', biome) - }) - - global.MARS_BIOMES.forEach(biome => { - event.add('tfg:mars_biomes', biome) - }) - - global.VENUS_BIOMES.forEach(biome => { - event.add('tfg:venus_biomes', biome); - event.add('ad_astra:has_acid_rain', biome); - }) - - event.add('sandworm_mod:can_spawn_sandworms', 'tfg:mars/martian_dunes') - event.add('sandworm_mod:can_spawn_sandworms', 'tfg:mars/martian_deep_desert') - - event.add('tfg:has_dark_sand_particles', 'tfg:mars/martian_dunes') - event.add('tfg:has_dark_sand_particles', 'tfg:mars/martian_deep_desert') - event.add('tfg:has_dark_sand_particles', 'tfg:mars/martian_mountains') - event.add('tfg:has_medium_sand_particles', 'tfg:mars/amber_plains') - event.add('tfg:has_medium_sand_particles', 'tfg:mars/amber_hills') - event.add('tfg:has_medium_sand_particles', 'tfg:mars/rusticus_plains') - event.add('tfg:has_medium_sand_particles', 'tfg:mars/rusticus_hills') - event.add('tfg:has_medium_sand_particles', 'tfg:mars/sangnum_plains') - event.add('tfg:has_medium_sand_particles', 'tfg:mars/sangnum_hills') - event.add('tfg:has_light_sand_particles', 'tfg:mars/martian_dune_edge') - event.add('tfg:has_light_sand_particles', 'tfg:mars/amber_edge') - event.add('tfg:has_light_sand_particles', 'tfg:mars/rusticus_edge') - event.add('tfg:has_light_sand_particles', 'tfg:mars/sangnum_edge') - event.add('tfg:has_light_sand_particles', 'tfg:mars/martian_river') - - event.add('tfg:has_mild_dust_storms', 'tfg:mars/martian_mountains') - event.add('tfg:has_mild_dust_storms', 'tfg:mars/martian_river') - event.add('tfg:has_mild_dust_storms', 'tfg:mars/amber_hills') - event.add('tfg:has_mild_dust_storms', 'tfg:mars/rusticus_hills') - event.add('tfg:has_mild_dust_storms', 'tfg:mars/sangnum_hills') - event.add('tfg:has_moderate_dust_storms', 'tfg:mars/amber_plains') - event.add('tfg:has_moderate_dust_storms', 'tfg:mars/amber_edge') - event.add('tfg:has_moderate_dust_storms', 'tfg:mars/rusticus_plains') - event.add('tfg:has_moderate_dust_storms', 'tfg:mars/rusticus_edge') - event.add('tfg:has_moderate_dust_storms', 'tfg:mars/sangnum_plains') - event.add('tfg:has_moderate_dust_storms', 'tfg:mars/sangnum_edge') - event.add('tfg:has_severe_dust_storms', 'tfg:mars/martian_dunes') - event.add('tfg:has_severe_dust_storms', 'tfg:mars/martian_deep_desert') -} - -const registerAdAstraEntityTypeTags = (event) => { - - const COLD_ENTITIES = [ - // moon - 'tfc:rat', - 'tfg:moon_rabbit', - 'minecraft:enderman', - 'minecraft:shulker', - 'minecraft:shulker_bullet', - 'minecraft:skeleton', - 'minecraft:stray', - 'species:limpet', - 'species:birt', - 'endermanoverhaul:windswept_hills_enderman', - 'endermanoverhaul:soulsand_valley_enderman', - 'endermanoverhaul:spirit', - 'endermanoverhaul:end_enderman', - 'endermanoverhaul:end_islands_enderman', - // mars - 'tfg:sniffer', - 'tfg:glacian_ram', - 'tfg:wraptor', - 'species:goober', - 'species:cruncher', - 'species:springling', - 'species:quake', - 'species:stackatick', - 'endermanoverhaul:crimson_forest_enderman', - 'endermanoverhaul:warped_forest_enderman', - 'endermanoverhaul:badlands_enderman', - 'endermanoverhaul:cave_enderman', - 'wan_ancient_beasts:walker', - 'wan_ancient_beasts:eater', - 'wan_ancient_beasts:crusher', - 'wan_ancient_beasts:soarer', - 'wan_ancient_beasts:glider', - 'wan_ancient_beasts:toxlacanth', - 'wan_ancient_beasts:surfer', - 'tfg:surfer', - // europa - 'endermanoverhaul:coral_enderman', - 'endermanoverhaul:snowy_enderman', - 'endermanoverhaul:ice_spikes_enderman', - 'species:deepfish', - 'species:leaf_hanger' - ] - - const HOT_ENTITIES = [ - // venus - 'minecraft:enderman', - "endermanoverhaul:desert_enderman", - "endermanoverhaul:savanna_enderman", - "endermanoverhaul:nether_wastes_enderman", - "ad_astra:sulfur_creeper", - 'species:cliff_hanger', - ] - - COLD_ENTITIES.forEach(entity => { - event.add('ad_astra:can_survive_extreme_cold', entity) - event.add('ad_astra:lives_without_oxygen', entity) - }) - - HOT_ENTITIES.forEach(entity => { - event.add('ad_astra:can_survive_extreme_heat', entity) - event.add('ad_astra:lives_without_oxygen', entity) - }) - - event.add('ad_astra:can_survive_in_space', 'railways:conductor') - - event.add('tfc:deals_crushing_damage', 'minecraft:enderman') - event.add('tfc:deals_crushing_damage', 'minecraft:stray') - event.add('tfc:deals_crushing_damage', 'endermanoverhaul:windswept_hills_enderman') - event.add('tfc:deals_crushing_damage', 'endermanoverhaul:soulsand_valley_enderman') - event.add('tfc:deals_piercing_damage', 'endermanoverhaul:end_enderman') - event.add('tfc:deals_crushing_damage', 'endermanoverhaul:end_islands_enderman') - event.add('tfc:deals_crushing_damage', 'ad_astra:star_crawler') - - event.add('tfg:ignores_gravity', 'minecraft:shulker_bullet') - event.add('tfg:ignores_gravity', 'endermanoverhaul:spirit') - event.add('tfg:ignores_gravity', 'species:birt') - event.add('tfg:ignores_gravity', 'ad_astra:star_crawler') - - // this guy has a bounce animation that looks silly in low grav - event.add('tfg:ignores_gravity', 'wan_ancient_beasts:crusher') - // this huge guy also looks silly in low grav - event.add('tfg:ignores_gravity', 'wan_ancient_beasts:walker') - event.add('tfg:ignores_gravity', 'wan_ancient_beasts:eater') - // flying mobs - event.add('tfg:ignores_gravity', 'wan_ancient_beasts:soarer') - event.add('tfg:ignores_gravity', 'wan_ancient_beasts:glider') - // swimming mobs - event.add('tfg:ignores_gravity', 'tfg:surfer') - event.add('tfg:ignores_gravity', 'wan_ancient_beasts:toxlacanth') - event.add('tfg:ignores_gravity', 'endermanoverhaul:coral_enderman') -} - -const registerAdAstraPlacedFeatures = (event) => { - - //#region Moon - event.add('tfg:moon_craters', 'tfg:moon/crater/extra_large') - event.add('tfg:moon_craters', 'tfg:moon/crater/large') - event.add('tfg:moon_craters', 'tfg:moon/crater/medium') - event.add('tfg:moon_craters', 'tfg:moon/crater/small') - - global.MOON_STONE_TYPES.forEach(stone => { - // only in the sparse ones - event.add('tfg:moon_large_rock_features', `tfg:moon/surface/delta/${stone}`) - // in all moon biomes - event.add('tfg:moon_small_rock_features', `tfg:moon/surface/pile/${stone}`) - event.add('tfg:moon_small_rock_features', `tfg:moon/surface/loose/${stone}`) - }) - - event.add('tfg:moon_small_rock_features', 'tfg:moon/surface/pile_moon_sand') - event.add('tfg:moon_small_rock_features', 'tfg:moon/surface/pile_white_sand') - event.add('tfg:moon_small_rock_features', 'tfg:moon/surface/pile_black_sand') - //#endregion - - //#region Mars - // Underground decoration - event.add('tfg:mars_underground_decoration', 'tfg:mars/underground/loose_rocks') - event.add('tfg:mars_underground_decoration', 'tfc:cave_spike') - event.add('tfg:mars_underground_decoration', 'tfc:cave_column') - event.add('tfg:mars_underground_decoration', 'tfc:large_cave_spike') - event.add('tfg:mars_underground_decoration', 'tfg:mars/underground/noise_cave_stalagmite') - event.add('tfg:mars_underground_decoration', 'tfg:mars/underground/noise_cave_stalagtite') - - event.add('tfg:mars_underground_decoration', 'tfg:mars/underground/calcite') - event.add('tfg:mars_underground_decoration', 'tfg:mars/underground/mega_calcite') - - event.add('tfg:mars_underground_decoration', 'tfg:mars/underground/ice_cave') - event.add('tfg:mars_underground_decoration', 'tfg:mars/underground/icicle') - event.add('tfg:mars_underground_decoration', 'tfg:mars/underground/icicle_extra') - event.add('tfg:mars_underground_decoration', 'tfg:mars/underground/ochrum_blob') - - event.add('tfg:mars_underground_decoration', "tfg:earth/geode/amethyst") - event.add('tfg:mars_underground_decoration', "tfg:earth/geode/barite") - event.add('tfg:mars_underground_decoration', "tfg:earth/geode/calcite") - event.add('tfg:mars_underground_decoration', "tfg:earth/geode/gypsum") - event.add('tfg:mars_underground_decoration', "tfg:earth/geode/opal") - event.add('tfg:mars_underground_decoration', "tfg:earth/geode/pyrite") - event.add('tfg:mars_underground_decoration', "tfg:earth/geode/quartzite") - - // Vegetation - event.add("tfg:mars_global_small_plants", "tfg:mars/tree/lucernia") - event.add("tfg:mars_global_small_plants", "tfg:mars/tree/lucernia_common") - event.add("tfg:mars_global_small_plants", "tfg:mars/tree/cave_bush") - event.add("tfg:mars_global_small_plants", "tfg:mars/tree/cave_bush_common") - event.add("tfg:mars_global_small_plants", "tfg:mars/surface/charnia") - event.add("tfg:mars_global_small_plants", "tfg:mars/surface/flamaea") - event.add("tfg:mars_global_small_plants", "tfg:mars/surface/lacugrove") - - event.add("tfg:mars_amber_vegetal_decoration", "#tfg:mars_global_small_plants") - event.add("tfg:mars_rusticus_vegetal_decoration", "#tfg:mars_global_small_plants") - event.add("tfg:mars_sangnum_vegetal_decoration", "#tfg:mars_global_small_plants") - - - event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/crop/amber_root") - event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/crop/blossom_berry") - event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/crop/bolux_mushroom") - event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/crop/cave_pumpkin") - event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/crop/chorus_mushroom") - - event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/lanceleaf") - event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/lanceleaf_small") - - event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/bulb_moss") - event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/aurant_polypore") - event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/filalux_wings") - event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/filalux_wings_top") - - event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/amber_grass") - event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/flammalix") - event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/lutebus") - event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/orango") - - - event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/crop/amber_root") - event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/crop/blossom_berry") - event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/crop/bolux_mushroom") - event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/crop/chorus_mushroom") - event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/crop/shadow_berry") - - event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/lucernia_outer_leaves") - - event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/bulb_moss") - event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/aurant_polypore") - event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/purple_polypore") - - event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/aeridium") - event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/flammalix") - event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/lamellarium") - event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/lutebus") - event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/orango") - event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/ruscus") - - - event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/crop/blossom_berry") - event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/crop/bolux_mushroom") - event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/crop/cave_pumpkin") - event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/crop/chorus_mushroom") - event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/crop/shadow_berry") - - event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/small_amaranita_mushroom") - event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/large_amaranita_mushroom") - - event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/purple_polypore") - event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/filalux_wings") - event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/filalux_wings_top") - - event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/cave_grass") - event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/clawfern") - event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/globulagus") - event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/lamellarium") - event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/ruscus") - - // Top layer - event.add("tfg:mars_top_layer_modification", "tfg:glow_lichen") - event.add("tfg:mars_top_layer_modification", "tfc:surface_loose_rocks") - event.add("tfg:mars_top_layer_modification", "tfg:mars/terrain/mars_poles") - - //#endregion - - //#region Venus - - // Underground decoration - event.add("tfg:venus_underground_decoration", "tfg:glow_lichen") - event.add('tfg:venus_underground_decoration', 'tfg:venus/underground/loose_rocks') - event.add('tfg:venus_underground_decoration', 'tfc:cave_spike') - event.add('tfg:venus_underground_decoration', 'tfc:cave_column') - event.add('tfg:venus_underground_decoration', 'tfc:large_cave_spike') - event.add('tfg:venus_underground_decoration', 'tfg:venus/underground/noise_cave_stalagmite') - event.add('tfg:venus_underground_decoration', 'tfg:venus/underground/noise_cave_stalagtite') - - event.add("tfg:venus_top_layer_modification", "tfc:surface_loose_rocks") - //#endregion - - //#region Glacio - event.add("tfg:glacio_top_layer_modification", "tfg:glow_lichen") - event.add("tfg:glacio_top_layer_modification", "tfc:surface_loose_rocks") - //#endregion } diff --git a/kubejs/server_scripts/ae2/recipes.js b/kubejs/server_scripts/ae2/recipes.js index 1c5087d56..0bc16b7c4 100644 --- a/kubejs/server_scripts/ae2/recipes.js +++ b/kubejs/server_scripts/ae2/recipes.js @@ -327,6 +327,17 @@ const registerAE2Recipes = (event) => { D: '#forge:gems/fluix', }).addMaterialInfo().id('tfg:crafting/me_p2p_tunnel') + event.shapeless('ae2:me_p2p_tunnel', ['ae2:me_p2p_tunnel']) + .id('tfg:shapeless/me_p2p_tunnel') + event.shapeless('ae2:redstone_p2p_tunnel', ['ae2:redstone_p2p_tunnel']) + .id('tfg:shapeless/redstone_p2p_tunnel') + event.shapeless('ae2:item_p2p_tunnel', ['ae2:item_p2p_tunnel']) + .id('tfg:shapeless/item_p2p_tunnel') + event.shapeless('ae2:fluid_p2p_tunnel', ['ae2:fluid_p2p_tunnel']) + .id('tfg:shapeless/fluid_p2p_tunnel') + event.shapeless('ae2:light_p2p_tunnel', ['ae2:light_p2p_tunnel']) + .id('tfg:shapeless/light_p2p_tunnel') + // ME Chest event.recipes.gtceu.shaped('ae2:chest', [ 'AEA', @@ -2295,16 +2306,6 @@ const registerAE2Recipes = (event) => { .category(GTRecipeCategories.MACERATOR_RECYCLING) .EUt(GTValues.VA[GTValues.ULV]) - // Cryogenized Fluix - - event.recipes.gtceu.vacuum_freezer('gtceu:cryo_fluix') - .inputFluids(Fluid.of('gtceu:helium_3', 1000)) - .inputFluids(Fluid.of('tfg:fluix', 144)) - .outputFluids(Fluid.of('tfg:cryogenized_fluix', 576)) - .duration(30 * 20) - .EUt(GTValues.VA[GTValues.MV]) - .dimension('ad_astra:moon') - // Certus deco blocks event.stonecutting('ae2:quartz_block', '#tfg:certus_quartz_blocks') diff --git a/kubejs/server_scripts/afc/recipes.js b/kubejs/server_scripts/afc/recipes.js index 4bc552380..305f4ff47 100644 --- a/kubejs/server_scripts/afc/recipes.js +++ b/kubejs/server_scripts/afc/recipes.js @@ -16,10 +16,10 @@ const registerAFCRecipes = (event) => { event.remove({ id: "afc:pot/rubber" }) event.remove({ id: "afc:tree_tapping/hevea_latex" }) event.remove({ id: "afc:tree_tapping/rubber_fig_latex" }) - event.remove({ id: "afc:crafting/1_birch_sugar"}) - event.remove({ id: "afc:crafting/1_maple_sugar"}) - event.remove({ id: "afc:crafting/0_birch_sugar_bucket"}) - event.remove({ id: "afc:crafting/0_maple_sugar_bucket"}) + event.remove({ id: "afc:crafting/1_birch_sugar" }) + event.remove({ id: "afc:crafting/1_maple_sugar" }) + event.remove({ id: "afc:crafting/0_birch_sugar_bucket" }) + event.remove({ id: "afc:crafting/0_maple_sugar_bucket" }) // #endregion @@ -48,7 +48,7 @@ const registerAFCRecipes = (event) => { generateCutterRecipe(event, `afc:wood/planks/${wood}_slab`, `2x afc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_slab`) - + // ? -> Деревянная нажимная пластина event.shaped(`afc:wood/planks/${wood}_pressure_plate`, [ ' B ', @@ -72,10 +72,10 @@ const registerAFCRecipes = (event) => { event.remove({ id: `afc:crafting/wood/${wood}_button` }) generateCutterRecipe(event, `afc:wood/planks/${wood}_pressure_plate`, `6x afc:wood/planks/${wood}_button`, 50, 2, `${wood}_button`) - + //Stomping Barrel - event.remove({ id: `afc:crafting/wood/${wood}_stomping_barrel`}) - + event.remove({ id: `afc:crafting/wood/${wood}_stomping_barrel` }) + event.shaped(`afc:wood/stomping_barrel/${wood}`, [ 'ABA', 'AAA', @@ -83,9 +83,9 @@ const registerAFCRecipes = (event) => { ], { A: `afc:wood/lumber/${wood}`, B: 'tfc:glue' - + }).id(`afc:crafting/wood/${wood}_stomping_barrel`) - + }) // #endregion @@ -108,86 +108,6 @@ const registerAFCRecipes = (event) => { .resultFluid(Fluid.of('gtceu:copper', 144)) .id('tfg:heating/tree_tap') - //Custom rubber and hevea tappings - event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/rubber_fig")) - .resultFluid(Fluid.of("tfg:latex", 2)) - .minTemp(4) - .requiresNaturalLog(true) - .id("tfg:tree_tapping/latex/rubber_fig") - event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/ancient_rubber_fig")) - .resultFluid(Fluid.of("tfg:latex", 2)) - .minTemp(4) - .requiresNaturalLog(true) - .id("tfg:tree_tapping/latex/ancient_rubber_fig") - - event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/hevea")) - .resultFluid(Fluid.of("tfg:latex", 3)) - .minTemp(8) - .requiresNaturalLog(true) - .id("tfg:tree_tapping/latex/hevea") - event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/ancient_hevea")) - .resultFluid(Fluid.of("tfg:latex", 3)) - .minTemp(8) - .requiresNaturalLog(true) - .id("tfg:tree_tapping/latex/ancient_hevea") - - event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/kapok")) - .resultFluid(Fluid.of("tfg:latex", 4)) - .minTemp(12) - .requiresNaturalLog(true) - .id("tfg:tree_tapping/kapok_latex") - event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/ancient_kapok")) - .resultFluid(Fluid.of("tfg:latex", 4)) - .minTemp(12) - .requiresNaturalLog(true) - .id("tfg:tree_tapping/ancient_kapok_latex") - - - // Pine/etc resin - event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/aspen")) - .resultFluid(Fluid.of('tfg:conifer_pitch', 2)) - .minTemp(-10) - .requiresNaturalLog(true) - .id("tfg:tree_tapping/aspen_resin") - event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/ancient_aspen")) - .resultFluid(Fluid.of('tfg:conifer_pitch', 2)) - .minTemp(-10) - .requiresNaturalLog(true) - .id("tfg:tree_tapping/ancient_aspen_resin") - - event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/spruce")) - .resultFluid(Fluid.of('tfg:conifer_pitch', 4)) - .minTemp(-15) - .requiresNaturalLog(true) - .id("tfg:tree_tapping/spruce_resin") - event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/ancient_spruce")) - .resultFluid(Fluid.of('tfg:conifer_pitch', 4)) - .minTemp(-15) - .requiresNaturalLog(true) - .id("tfg:tree_tapping/ancient_spruce_resin") - - event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/white_cedar")) - .resultFluid(Fluid.of('tfg:conifer_pitch', 3)) - .minTemp(-8) - .requiresNaturalLog(true) - .id("tfg:tree_tapping/white_cedar_resin") - event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/ancient_white_cedar")) - .resultFluid(Fluid.of('tfg:conifer_pitch', 3)) - .minTemp(-8) - .requiresNaturalLog(true) - .id("tfg:tree_tapping/ancient_white_cedar_resin") - - event.recipes.afc.tree_tapping(TFC.blockIngredient('tfc:wood/log/douglas_fir')) - .resultFluid(Fluid.of('tfg:conifer_pitch', 2)) - .minTemp(-8) - .requiresNaturalLog(true) - .id("tfg:tree_tapping/douglas_fir_resin") - event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/ancient_douglas_fir")) - .resultFluid(Fluid.of('tfg:conifer_pitch', 2)) - .minTemp(-8) - .requiresNaturalLog(true) - .id("tfg:tree_tapping/ancient_douglas_fir_resin") - //Syrups event.remove({ id: "afc:tree_tapping/maple_syrup" }) event.remove({ id: "afc:tree_tapping/birch_syrup" }) @@ -198,87 +118,17 @@ const registerAFCRecipes = (event) => { .maxTemp(5) .requiresNaturalLog(true) .id("tfg:tree_tapping/maple_log") - - event.recipes.afc.tree_tapping(TFC.blockIngredient('tfc:wood/log/birch')) + + event.recipes.afc.tree_tapping(TFC.blockIngredient('tfc:wood/log/birch')) .resultFluid(Fluid.of('afc:birch_sap', 5)) .minTemp(-15) .maxTemp(5) .requiresNaturalLog(true) .id("tfg:tree_tapping/birch_log") - // Mars stuff - - event.recipes.afc.tree_tapping(TFC.blockIngredient('beneath:wood/log/crimson')) - .resultFluid(Fluid.of('tfg:crimsene', 1)) - .minTemp(-110) - .maxTemp(-15) - .requiresNaturalLog(true) - .id("tfg:tree_tapping/crimson_log") - - event.recipes.afc.tree_tapping(TFC.blockIngredient('beneath:wood/wood/crimson')) - .resultFluid(Fluid.of('tfg:crimsene', 1)) - .minTemp(-110) - .maxTemp(-15) - .requiresNaturalLog(true) - .id("tfg:tree_tapping/crimson_wood") - - event.recipes.afc.tree_tapping(TFC.blockIngredient('beneath:wood/log/warped')) - .resultFluid(Fluid.of('tfg:warpane', 1)) - .minTemp(-110) - .maxTemp(-15) - .requiresNaturalLog(true) - .id("tfg:tree_tapping/warped_log") - - event.recipes.afc.tree_tapping(TFC.blockIngredient('beneath:wood/wood/warped')) - .resultFluid(Fluid.of('tfg:warpane', 1)) - .minTemp(-110) - .maxTemp(-15) - .requiresNaturalLog(true) - .id("tfg:tree_tapping/warped_wood") - //#region Extractor Recipe - // Latex - - event.recipes.gtceu.extractor('latex_from_log') - .itemInputs('#tfg:latex_logs') - .outputFluids(Fluid.of('tfg:latex', 250)) - .duration(600) - .EUt(20) - - event.recipes.gtceu.extractor('latex_from_sapling') - .itemInputs('#tfg:rubber_saplings') - .outputFluids(Fluid.of('tfg:latex', 100)) - .duration(750) - .EUt(20) - - event.recipes.gtceu.extractor('latex_from_leaves') - .itemInputs('#tfg:rubber_leaves') - .outputFluids(Fluid.of('tfg:latex', 50)) - .duration(750) - .EUt(20) - - // Conifer Pitch - - event.recipes.gtceu.extractor('conifer_from_log') - .itemInputs('#tfg:rosin_logs') - .outputFluids(Fluid.of('tfg:conifer_pitch', 250)) - .duration(600) - .EUt(20) - - event.recipes.gtceu.extractor('conifer_from_sapling') - .itemInputs('#tfg:rosin_saplings') - .outputFluids(Fluid.of('tfg:conifer_pitch', 100)) - .duration(750) - .EUt(20) - - event.recipes.gtceu.extractor('conifer_from_leaves') - .itemInputs('#tfg:rosin_leaves') - .outputFluids(Fluid.of('tfg:conifer_pitch', 50)) - .duration(750) - .EUt(20) - - // Maple Sirup + // Maple Syrup event.recipes.gtceu.extractor('maple_from_log') .itemInputs('#tfc:maple_logs') @@ -298,7 +148,7 @@ const registerAFCRecipes = (event) => { .duration(750) .EUt(20) - // Birch Sirup + // Birch Syrup event.recipes.gtceu.extractor('birch_from_log') .itemInputs('#tfc:birch_logs') @@ -321,25 +171,6 @@ const registerAFCRecipes = (event) => { //#endregion // Из бревна капока / Logs Centrifuge - event.recipes.gtceu.centrifuge('rubber_log_separation') - .itemInputs('#tfg:latex_logs') - .chancedOutput('gtceu:raw_rubber_dust', 5000, 0) - .chancedOutput('gtceu:plant_ball', 3750, 0) - .chancedOutput('gtceu:sticky_resin', 2500, 0) - .chancedOutput('gtceu:wood_dust', 2500, 0) - .outputFluids(Fluid.of('gtceu:methane', 60)) - .duration(20*20) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.centrifuge('conifer_log_separation') - .itemInputs('#tfg:rosin_logs') - .chancedOutput('tfg:conifer_rosin', 7500, 0) - .chancedOutput('gtceu:plant_ball', 3750, 0) - .chancedOutput('gtceu:sticky_resin', 2500, 0) - .chancedOutput('gtceu:wood_dust', 2500, 0) - .outputFluids(Fluid.of('gtceu:methane', 60)) - .duration(20*20) - .EUt(GTValues.VA[GTValues.MV]) event.recipes.gtceu.centrifuge('maple_syrup_log_separation') .itemInputs('#tfc:maple_logs') @@ -347,7 +178,7 @@ const registerAFCRecipes = (event) => { .chancedOutput('gtceu:plant_ball', 3750, 0) .chancedOutput('gtceu:hardwood_dust', 2500, 0) .outputFluids(Fluid.of('gtceu:methane', 60), Fluid.of('afc:maple_syrup', 100)) - .duration(20*20) + .duration(20 * 20) .EUt(GTValues.VA[GTValues.MV]) event.recipes.gtceu.centrifuge('birch_syrup_log_separation') @@ -356,52 +187,52 @@ const registerAFCRecipes = (event) => { .chancedOutput('gtceu:plant_ball', 3750, 0) .chancedOutput('gtceu:hardwood_dust', 2500, 0) .outputFluids(Fluid.of('gtceu:methane', 60), Fluid.of('afc:birch_syrup', 100)) - .duration(20*20) + .duration(20 * 20) .EUt(GTValues.VA[GTValues.MV]) //#endregion - //region gt sap processing + //#region GT sap processing event.recipes.gtceu.fluid_heater('maple_sap_condense') .inputFluids(Fluid.of('afc:maple_sap', 1000)) .outputFluids(Fluid.of('afc:maple_syrup', 100)) - .duration(20*25) + .duration(20 * 25) .EUt(GTValues.VA[GTValues.ULV]) event.recipes.gtceu.fluid_heater('birch_sap_condense') .inputFluids(Fluid.of('afc:birch_sap', 1000)) .outputFluids(Fluid.of('afc:birch_syrup', 100)) - .duration(20*35) + .duration(20 * 35) .EUt(GTValues.VA[GTValues.ULV]) - - - //endregion + event.recipes.gtceu.fluid_solidifier('maple_syrup') .inputFluids(Fluid.of('afc:maple_syrup', 100)) .itemOutputs('afc:maple_sugar') - .duration(20*12) + .duration(20 * 12) .EUt(GTValues.VHA[GTValues.ULV]) event.recipes.gtceu.fluid_solidifier('birch_syrup') .inputFluids(Fluid.of('afc:birch_syrup', 100)) .itemOutputs('afc:birch_sugar') - .duration(20*12) + .duration(20 * 12) .EUt(GTValues.VHA[GTValues.ULV]) + //#endregion + // Syrup into sugar event.recipes.tfc.barrel_sealed(24000) - .inputFluid(Fluid.of('afc:maple_syrup', 100)) - .outputItem('afc:maple_sugar') - .id('tfg:barrel/maple_syrup_to_sugar') + .inputFluid(Fluid.of('afc:maple_syrup', 100)) + .outputItem('afc:maple_sugar') + .id('tfg:barrel/maple_syrup_to_sugar') event.recipes.tfc.barrel_sealed(24000) - .inputFluid(Fluid.of('afc:birch_syrup', 100)) - .outputItem('afc:birch_sugar') - .id('tfg:barrel/birch_syrup_to_sugar') + .inputFluid(Fluid.of('afc:birch_syrup', 100)) + .outputItem('afc:birch_sugar') + .id('tfg:barrel/birch_syrup_to_sugar') // Stripped logs diff --git a/kubejs/server_scripts/asticor_carts/recipes.js b/kubejs/server_scripts/asticor_carts/recipes.js index 12d70352b..f68341ca5 100644 --- a/kubejs/server_scripts/asticor_carts/recipes.js +++ b/kubejs/server_scripts/asticor_carts/recipes.js @@ -6,4 +6,25 @@ const registerAsticorCartsRecipes = (event) => { event.remove({ id: 'astikorcarts:supply_cart' }) event.remove({ id: 'astikorcarts:plow' }) event.remove({ id: 'astikorcarts:wheel' }) + + event.recipes.gtceu.macerator(`tfg:recycle_astikor_animal_cart`) + .itemInputs('#tfcastikorcarts:animal_cart') + .itemOutputs('#forge:dusts/brass') + .duration(100) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.macerator(`tfg:recycle_astikor_supply_cart`) + .itemInputs('#tfcastikorcarts:supply_cart') + .itemOutputs('#forge:dusts/brass') + .duration(100) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.macerator(`tfg:recycle_astikor_plow`) + .itemInputs('#tfcastikorcarts:plow') + .itemOutputs('#forge:dusts/brass') + .duration(100) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) } \ No newline at end of file diff --git a/kubejs/server_scripts/asticor_carts/tags.js b/kubejs/server_scripts/asticor_carts/tags.js index 4c25eb160..0c5d83cec 100644 --- a/kubejs/server_scripts/asticor_carts/tags.js +++ b/kubejs/server_scripts/asticor_carts/tags.js @@ -7,6 +7,10 @@ const registerAsticorCartsItemTags = (event) => { event.removeAllTagsFrom(item) event.add('c:hidden_from_recipe_viewers', item) }) + + global.TFC_WOOD_TYPES.forEach(wood => { + event.add('c:hidden_from_recipe_viewers', `tfcastikorcarts:postilion/${wood}`) + }) } const registerAsticorCartsBlockTags = (event) => { diff --git a/kubejs/server_scripts/beneath/recipes.js b/kubejs/server_scripts/beneath/recipes.js index 9c56912e3..ba4208649 100644 --- a/kubejs/server_scripts/beneath/recipes.js +++ b/kubejs/server_scripts/beneath/recipes.js @@ -10,12 +10,15 @@ const registerBeneathRecipes = (event) => { event.remove({ id: 'beneath:collapse/basalt' }) event.remove({ id: 'beneath:collapse/nether_bricks' }) + event.remove({ id: 'beneath:crafting/nether_bricks' }) event.remove({ id: 'beneath:crafting/blackstone' }) event.remove({ id: 'beneath:crafting/blackstone_uncraft' }) + event.remove({ id: 'beneath:crafting/blackstone_bricks' }) event.remove({ id: 'beneath:crafting/blackstone_bricks_from_soot' }) event.remove({ id: 'beneath:crafting/blackstone_from_soot' }) event.remove({ id: 'beneath:crafting/blackstone_plate' }) event.remove({ id: 'beneath:crafting/blackstone_button' }) + event.remove({ id: 'beneath:crafting/blackstone_aqueduct' }) event.remove({ id: 'beneath:crafting/hellbricks' }) event.remove({ id: 'beneath:crafting/nether_brick' }) event.remove({ id: 'beneath:quern/slime' }) @@ -67,12 +70,6 @@ const registerBeneathRecipes = (event) => { event.recipes.tfc.landslide('beneath:soul_clay', 'beneath:soul_clay') - generateGreenHouseRecipe(event, '8x tfg:saplings/warped', 'tfg:semiheavy_ammoniacal_water', 16000, - '64x beneath:wood/log/warped', 'tfg:green_house/warped_fungus', 'ad_astra:mars', 8, - '32x minecraft:warped_wart_block', GTValues.VA[GTValues.MV]) - generateGreenHouseRecipe(event, '8x tfg:saplings/crimson', 'tfg:semiheavy_ammoniacal_water', 16000, - '64x beneath:wood/log/crimson', 'tfg:green_house/crimson_fungus', 'ad_astra:mars', 8, - '32x minecraft:nether_wart_block', GTValues.VA[GTValues.MV]) Ingredient.of('#beneath:mushrooms').stacks.forEach(element => { const itemId = element.id; @@ -82,26 +79,6 @@ const registerBeneathRecipes = (event) => { recipeId, 'minecraft:the_nether', 8, element.withCount(4), GTValues.VH[GTValues.LV]); }); - // don't pass in the items like doors, trapdoors etc because beneath already has good recipes for those - woodBuilder(event, 'crimson', 'beneath:wood/lumber/crimson', '#tfc:crimson_logs', 'beneath:wood/log/crimson', - 'beneath:wood/stripped_log/crimson', 'beneath:wood/planks/crimson', null, - 'beneath:wood/planks/crimson_slab', null, null, null, null, null, 'beneath:wood/planks/crimson_pressure_plate', - 'beneath:wood/planks/crimson_button') - - event.recipes.gtceu.lathe(`tfg:cutter/crimson_stripped_wood_from_wood`) - .itemInputs('beneath:wood/wood/crimson') - .itemOutputs('beneath:wood/stripped_wood/crimson') - .duration(50) - .EUt(GTValues.VA[GTValues.ULV]) - - event.custom({ - type: 'vintageimprovements:polishing', - ingredients: [{ item: 'beneath:wood/wood/crimson' }], - results: [{ item: 'beneath:wood/stripped_wood/crimson' }], - speed_limits: 0, - processingTime: 50 - }).id(`tfg:vi/lathe/stripping_crimson_wood`) - event.shaped('beneath:wood/sewing_table/crimson', [ ' AB', 'CCC', @@ -113,26 +90,6 @@ const registerBeneathRecipes = (event) => { D: 'beneath:wood/log/crimson' }).id('tfg:shaped/crimson_sewing_table') - - woodBuilder(event, 'warped', 'beneath:wood/lumber/warped', '#tfc:warped_logs', 'beneath:wood/log/warped', - 'beneath:wood/stripped_log/warped', 'beneath:wood/planks/warped', null, - 'beneath:wood/planks/warped_slab', null, null, null, null, null, 'beneath:wood/planks/warped_pressure_plate', - 'beneath:wood/planks/warped_button') - - event.recipes.gtceu.lathe(`tfg:cutter/warped_stripped_wood_from_wood`) - .itemInputs('beneath:wood/wood/warped') - .itemOutputs('beneath:wood/stripped_wood/warped') - .duration(50) - .EUt(GTValues.VA[GTValues.ULV]) - - event.custom({ - type: 'vintageimprovements:polishing', - ingredients: [{ item: 'beneath:wood/wood/warped' }], - results: [{ item: 'beneath:wood/stripped_wood/warped' }], - speed_limits: 0, - processingTime: 50 - }).id(`tfg:vi/lathe/stripping_warped_wood`) - event.shaped('beneath:wood/sewing_table/warped', [ ' AB', 'CCC', diff --git a/kubejs/server_scripts/betterend/recipes.js b/kubejs/server_scripts/betterend/recipes.js deleted file mode 100644 index 7bdb90325..000000000 --- a/kubejs/server_scripts/betterend/recipes.js +++ /dev/null @@ -1,59 +0,0 @@ -// priority: 0 -"use strict"; - -function registerBetterEndRecipes(event) { - - Ingredient.of('#tfg:moon_plants').stacks.forEach(element => { - const itemId = element.id; - const recipeId = `betterend:greenhouse_${itemId.replace(':', '_')}`; - - event.recipes.gtceu.greenhouse(recipeId) - .notConsumable(element.id) - .itemOutputs(`8x ${element.id}`) - .chancedOutput(element.id, 750, 0) - .chancedOutput(element.id, 500, 0) - .duration(36000) // 30 mins - .circuit(1) - .EUt(GTValues.VA[GTValues.MV]) - .dimension('ad_astra:moon') - - event.recipes.gtceu.greenhouse(`${recipeId}_helium`) - .notConsumable(element.id) - .inputFluids(Fluid.of('gtceu:helium_3', 500)) - .itemOutputs(`8x ${element.id}`) - .chancedOutput(element.id, 4000, 0) - .chancedOutput(element.id, 3000, 0) - .duration(12000) // 30 mins - .circuit(2) - .EUt(GTValues.VA[GTValues.MV]) - .dimension('ad_astra:moon') - }); - - Ingredient.of('#tfg:mars_plants').stacks.forEach(element => { - const itemId = element.id; - const recipeId = `greenhouse_${itemId.replace(':', '_')}`; - - generateGreenHouseRecipe(event, itemId, 'tfg:semiheavy_ammoniacal_water', 8000, `8x ${itemId}`, - recipeId, 'ad_astra:mars', 8, null, GTValues.VA[GTValues.LV]); - }); - - generateGreenHouseRecipe(event, '8x betterend:amber_root_seeds', 'tfg:semiheavy_ammoniacal_water', 8000, - '24x betterend:amber_root_product', 'amber_root', 'ad_astra:mars', 8, null, GTValues.VA[GTValues.LV]) - - generateGreenHouseRecipe(event, '8x betterend:blossom_berry_seeds', 'tfg:semiheavy_ammoniacal_water', 8000, - '24x betterend:blossom_berry_product', 'blossom_berry', 'ad_astra:mars', 8, null, GTValues.VA[GTValues.LV]) - - generateGreenHouseRecipe(event, '8x betterend:bolux_mushroom_seeds', 'tfg:semiheavy_ammoniacal_water', 8000, - '24x betterend:bolux_mushroom_product', 'bolux_mushroom', 'ad_astra:mars', 8, null, GTValues.VA[GTValues.LV]) - - generateGreenHouseRecipe(event, '8x betterend:cave_pumpkin_plant_seeds', 'tfg:semiheavy_ammoniacal_water', 8000, - '24x betterend:cave_pumpkin', 'cave_pumpkin', 'ad_astra:mars', 8, null, GTValues.VA[GTValues.LV]) - - generateGreenHouseRecipe(event, '8x betterend:chorus_mushroom_seeds', 'tfg:semiheavy_ammoniacal_water', 8000, - '24x betterend:chorus_mushroom_product', 'chorus_mushroom', 'ad_astra:mars', 8, null, GTValues.VA[GTValues.LV]) - - generateGreenHouseRecipe(event, '8x betterend:shadow_berry_seeds', 'tfg:semiheavy_ammoniacal_water', 8000, - '24x betterend:shadow_berry_product', 'shadow_berry', 'ad_astra:mars', 8, null, GTValues.VA[GTValues.LV]) - - event.recipes.firmalife.oven('betterend:cave_pumpkin_pie_raw', 400, 60 * 20, 'betterend:cave_pumpkin_pie') -} \ No newline at end of file diff --git a/kubejs/server_scripts/betterend/tags.js b/kubejs/server_scripts/betterend/tags.js deleted file mode 100644 index a7cc94002..000000000 --- a/kubejs/server_scripts/betterend/tags.js +++ /dev/null @@ -1,48 +0,0 @@ -// priority: 0 -"use strict"; - -function registerBetterEndItemTags(event) { - - event.add('forge:seeds', 'betterend:amber_root_seeds') - event.add('forge:seeds', 'betterend:blossom_berry_seeds') - event.add('forge:seeds', 'betterend:bolux_mushroom_seeds') - event.add('forge:seeds', 'betterend:cave_pumpkin_seeds') - event.add('forge:seeds', 'betterend:shadow_berry_seeds') - - event.add('tfc:foods', 'betterend:amber_root_product') - event.add('tfc:foods/grains', 'betterend:amber_root_product') - - event.add('tfc:foods', 'betterend:blossom_berry_product') - event.add('tfc:foods/fruits', 'betterend:blossom_berry_product') - - event.add('tfc:foods', 'betterend:bolux_mushroom_product') - event.add('tfc:foods/vegetables', 'betterend:bolux_mushroom_product') - event.add('forge:mushrooms', 'betterend:bolux_mushroom_product') - event.add('tfc:foods', 'betterend:bolux_mushroom_cooked') - event.add('tfc:foods/vegetables', 'betterend:bolux_mushroom_cooked') - event.add('forge:mushrooms', 'betterend:bolux_mushroom_cooked') - - event.add('tfc:foods', 'betterend:cave_pumpkin') - event.add('tfc:foods', 'betterend:cave_pumpkin_chunks') - event.add('tfc:foods/fruits', 'betterend:cave_pumpkin_chunks') - event.add('tfc:foods', 'betterend:cave_pumpkin_pie_dough') - event.add('tfc:foods', 'betterend:cave_pumpkin_pie_raw') - event.add('tfc:foods', 'betterend:cave_pumpkin_pie') - event.add('firmalife:foods/washable', 'betterend:cave_pumpkin_pie_raw') - event.add('firmalife:foods/washable', 'betterend:cave_pumpkin_pie') - - event.add('tfc:foods', 'betterend:chorus_mushroom_product') - event.add('tfc:foods/vegetables', 'betterend:chorus_mushroom_product') - event.add('forge:mushrooms', 'betterend:chorus_mushroom_product') - event.add('tfc:foods', 'betterend:chorus_mushroom_cooked') - event.add('tfc:foods/vegetables', 'betterend:chorus_mushroom_cooked') - event.add('forge:mushrooms', 'betterend:chorus_mushroom_cooked') - - event.add('tfc:foods', 'betterend:shadow_berry_product') - event.add('tfc:foods/fruits', 'betterend:shadow_berry_product') - event.add('tfc:foods', 'betterend:shadow_berry_cooked') - event.add('tfc:foods/fruits', 'betterend:shadow_berry_cooked') - - event.add('forge:mushrooms', 'betterend:flammalix') - event.add('forge:mushrooms', 'betterend:small_amaranita_mushroom') -} \ No newline at end of file diff --git a/kubejs/server_scripts/create/events.js b/kubejs/server_scripts/create/events.js deleted file mode 100644 index 63935d65b..000000000 --- a/kubejs/server_scripts/create/events.js +++ /dev/null @@ -1,13 +0,0 @@ -"use strict"; - -PlayerEvents.tick((event) => { - const { player } = event; - if (player.age % 100 === 0 - && player.headArmorItem === 'create:netherite_diving_helmet' - && player.chestArmorItem === 'create:netherite_backtank' - && player.legsArmorItem === 'minecraft:netherite_leggings' - && (player.feetArmorItem === 'create:netherite_diving_boots' - || player.feetArmorItem === 'minecraft:netherite_boots')) { - player.potionEffects.add("minecraft:fire_resistance", 350, 0, true, false); - } -}); diff --git a/kubejs/server_scripts/create/recipes.js b/kubejs/server_scripts/create/recipes.js index 4637747d2..bf6d47c34 100644 --- a/kubejs/server_scripts/create/recipes.js +++ b/kubejs/server_scripts/create/recipes.js @@ -23,7 +23,6 @@ const registerCreateRecipes = (event) => { { id: 'create:crafting/logistics/content_observer' }, { id: 'create:crafting/logistics/stockpile_switch' }, { id: 'create:crafting/kinetics/nixie_tube' }, - { id: 'create:crafting/kinetics/analog_lever' }, { id: 'create:crafting/kinetics/placard' }, { id: 'create:crafting/logistics/pulse_repeater' }, { id: 'create:crafting/logistics/pulse_extender' }, @@ -680,6 +679,30 @@ const registerCreateRecipes = (event) => { .EUt(4) .addMaterialInfo(true) + // Shadow steel casing + event.recipes.createItemApplication(['create:shadow_steel_casing'], ['#forge:stripped_logs', '#forge:plates/black_steel']) + .id('tfg:create/item_application/shadow_steel_casing') + + event.recipes.gtceu.assembler('tfg:create/shadow_steel_casing') + .itemInputs('#forge:stripped_logs', '#forge:plates/black_steel') + .circuit(11) + .itemOutputs('create:shadow_steel_casing') + .duration(50) + .EUt(4) + .addMaterialInfo(true) + + // Refined radiance casing + event.recipes.createItemApplication(['create:refined_radiance_casing'], ['#forge:stripped_logs', 'gtceu:glowstone_plate']) + .id('tfg:create/item_application/refined_radiance_casing') + + event.recipes.gtceu.assembler('tfg:create/refined_radiance_casing') + .itemInputs('#forge:stripped_logs', 'gtceu:glowstone_plate') + .circuit(11) + .itemOutputs('create:refined_radiance_casing') + .duration(50) + .EUt(4) + .addMaterialInfo(true) + // Корпус поезда event.recipes.createItemApplication(['create:railway_casing'], ['create:brass_casing', '#forge:plates/black_steel']) .id('tfg:create/item_application/railway_casing') @@ -962,70 +985,6 @@ const registerCreateRecipes = (event) => { .duration(200) .EUt(20) - // Электронная трубка - event.shaped('1x create:electron_tube', [ - 'FAG', - 'BCB', - 'DED' - ], { - A: 'gtceu:glass_tube', - B: '#forge:bolts/steel', - C: 'gtceu:wood_plate', - D: 'gtceu:red_alloy_single_wire', - E: '#forge:plates/wrought_iron', - F: '#forge:tools/screwdrivers', - G: '#forge:tools/wire_cutters' - }).id('tfg:create/shaped/electron_tube') - - event.recipes.createSequencedAssembly([ - '2x create:electron_tube', - ], 'gtceu:wood_plate', [ - event.recipes.createDeploying('tfg:unfinished_electron_tube', ['tfg:unfinished_electron_tube', '#forge:plates/wrought_iron']), - event.recipes.createDeploying('tfg:unfinished_electron_tube', ['tfg:unfinished_electron_tube', 'gtceu:red_alloy_single_wire']), - event.recipes.createDeploying('tfg:unfinished_electron_tube', ['tfg:unfinished_electron_tube', 'gtceu:red_alloy_single_wire']), - event.recipes.createDeploying('tfg:unfinished_electron_tube', ['tfg:unfinished_electron_tube', 'gtceu:glass_tube']), - ]).transitionalItem('tfg:unfinished_electron_tube').loops(1).id('tfg:create/sequenced_assembly/electron_tube') - - event.recipes.gtceu.assembler('create:electron_tube') - .itemInputs('#forge:plates/wrought_iron', 'gtceu:glass_tube', '2x gtceu:red_alloy_single_wire') - .itemOutputs('2x create:electron_tube') - .duration(50) - .EUt(7) - .circuit(14) - - event.shaped('4x create:electron_tube', [ - 'FAG', - 'DCD' - ], { - A: 'gtceu:glass_tube', - C: 'gtceu:plastic_circuit_board', - D: 'gtceu:red_alloy_single_wire', - F: '#forge:tools/screwdrivers', - G: '#forge:tools/wire_cutters' - }).id('tfg:create/shaped/electron_tube2') - - event.recipes.gtceu.assembler('create:electron_tube2') - .itemInputs('gtceu:plastic_circuit_board', 'gtceu:glass_tube', '2x gtceu:red_alloy_single_wire') - .itemOutputs('4x create:electron_tube') - .duration(50) - .EUt(7) - - event.shaped('4x create:electron_tube', [ - ' A ', - ' B ', - ' C ' - ], { - A: '#forge:tools/screwdrivers', - B: 'gtceu:nand_chip', - C: 'gtceu:plastic_circuit_board' - }).id('tfg:create/shaped/electron_tube3') - - event.recipes.gtceu.assembler('create:electron_tube3') - .itemInputs('gtceu:plastic_circuit_board', 'gtceu:nand_chip') - .itemOutputs('4x create:electron_tube') - .duration(50) - .EUt(7) - // Тюбик с клеем event.shaped('create:super_glue', [ 'BA', diff --git a/kubejs/server_scripts/create/tags.js b/kubejs/server_scripts/create/tags.js index ee7c1e2b2..0001ac2ad 100644 --- a/kubejs/server_scripts/create/tags.js +++ b/kubejs/server_scripts/create/tags.js @@ -33,11 +33,6 @@ const registerCreateItemTags = (event) => { if (dye !== 'white') event.add('tfg:colored_seats', `create:${dye}_seat`) }) - event.add('minecraft:trimmable_armor', 'create:copper_diving_helmet') - event.add('minecraft:trimmable_armor', 'create:copper_diving_boots') - - event.add('minecraft:trimmable_armor', 'create:netherite_diving_helmet') - event.add('minecraft:trimmable_armor', 'create:netherite_diving_boots') event.add('create:blaze_burner_fuel/regular', "gtceu:poor_raw_coal") event.add('create:blaze_burner_fuel/regular', "gtceu:coal_dust") @@ -148,10 +143,26 @@ const registerCreateBlockTags = (event) => { event.add('create:non_movable', 'gtceu:titanium_crate') event.add('create:non_movable', 'gtceu:tungsten_steel_crate') event.add('create:non_movable', '#create:toolboxes') + event.add('create:non_movable', 'gtceu:ulv_super_chest') event.add('create:non_movable', 'gtceu:lv_super_chest') event.add('create:non_movable', 'gtceu:mv_super_chest') event.add('create:non_movable', 'gtceu:hv_super_chest') event.add('create:non_movable', 'gtceu:ev_super_chest') + event.add('create:non_movable', 'gtceu:iv_quantum_chest') + event.add('create:non_movable', 'gtceu:luv_quantum_chest') + event.add('create:non_movable', 'gtceu:zpm_quantum_chest') + event.add('create:non_movable', 'gtceu:uv_quantum_chest') + event.add('create:non_movable', 'gtceu:uhv_quantum_chest') + event.add('create:non_movable', 'gtceu:ulv_super_tank') + event.add('create:non_movable', 'gtceu:lv_super_tank') + event.add('create:non_movable', 'gtceu:mv_super_tank') + event.add('create:non_movable', 'gtceu:hv_super_tank') + event.add('create:non_movable', 'gtceu:ev_super_tank') + event.add('create:non_movable', 'gtceu:iv_quantum_tank') + event.add('create:non_movable', 'gtceu:luv_quantum_tank') + event.add('create:non_movable', 'gtceu:zpm_quantum_tank') + event.add('create:non_movable', 'gtceu:uv_quantum_tank') + event.add('create:non_movable', 'gtceu:uhv_quantum_tank') event.add('create:non_movable', 'tfg:spice') event.add('create:non_movable', 'tfg:geyser_source') event.add('create:non_movable', 'tfg:geyser_source_small') diff --git a/kubejs/server_scripts/create_picky_wheels/tags.js b/kubejs/server_scripts/create_picky_wheels/tags.js index 708c1e980..4888dc585 100644 --- a/kubejs/server_scripts/create_picky_wheels/tags.js +++ b/kubejs/server_scripts/create_picky_wheels/tags.js @@ -8,8 +8,10 @@ function registerCreatePickyWheelsBiomeTags(event) { event.add('createpickywheels:waterwheels_whitelist', '#tfg:overworld_biomes') event.add('createpickywheels:waterwheels_whitelist', '#tfg:nether_biomes') event.add('createpickywheels:waterwheels_whitelist', '#tfg:mars_biomes') + event.add('createpickywheels:waterwheels_whitelist', '#tfg:venus_biomes') event.add('createpickywheels:windmills_whitelist', '#tfg:overworld_biomes') event.add('createpickywheels:windmills_whitelist', '#tfg:nether_biomes') event.add('createpickywheels:windmills_whitelist', '#tfg:mars_biomes') + event.add('createpickywheels:windmills_whitelist', '#tfg:venus_biomes') } \ No newline at end of file diff --git a/kubejs/server_scripts/deafission/recipes.js b/kubejs/server_scripts/deafission/recipes.js index 99da8fd26..014ea9ab3 100644 --- a/kubejs/server_scripts/deafission/recipes.js +++ b/kubejs/server_scripts/deafission/recipes.js @@ -7,22 +7,4 @@ function registerDeaFissionRecipes(event) { event.remove({ id: 'deafission:fission_reactor_coolant/thorium/nak_to_plasma' }) event.remove({ id: 'deafission:fission_reactor_coolant/uranium/water_to_steam' }) - let component = function (type, block, value) { - event.custom({ - type: 'deafission:fission_component', - componentType: type, - block: block, - data: { - value: value - } - }); - }; - - // Examples: https://bitbucket.org/Vazde/minecraft-fission/src/master/mod/settings-run/kubejs/server_scripts/recipes.js - - component("HEAT", "minecraft:blue_ice", 0.5) - component("HEAT", "tfg:glacian_wool_frame", 2); - component("HEAT", "tfg:aes_insulation_frame", 1); - component("HEAT", "tfg:moderate_core_frame", 10); - component("HEAT", "tfg:impure_moderate_core_frame", 5); } \ No newline at end of file diff --git a/kubejs/server_scripts/extended_ae2/recipes.js b/kubejs/server_scripts/extended_ae2/recipes.js index 6cafbed10..7160e76cb 100644 --- a/kubejs/server_scripts/extended_ae2/recipes.js +++ b/kubejs/server_scripts/extended_ae2/recipes.js @@ -693,13 +693,7 @@ const registerExtendedAE2Recipes = (event) => { .EUt(1920) event.recipes.gtceu.assembler('expatternprovider:ingredient_buffer') - .itemInputs( - 'gtceu:hv_machine_casing', - '2x ae2:quartz_vibrant_glass', - 'gtceu:stainless_steel_drum', - '2x ae2:cell_component_1k', - 'gtceu:hv_robot_arm', - 'gtceu:hv_electric_pump') + .itemInputs('gtceu:hv_buffer', 'ae2:cell_component_1k') .itemOutputs('expatternprovider:ingredient_buffer') .duration(200) .EUt(1920) diff --git a/kubejs/server_scripts/firmalife/recipes.js b/kubejs/server_scripts/firmalife/recipes.js index bffd93485..de40b9c9a 100644 --- a/kubejs/server_scripts/firmalife/recipes.js +++ b/kubejs/server_scripts/firmalife/recipes.js @@ -1015,4 +1015,21 @@ const registerFirmaLifeRecipes = (event) => { }, "duration": 16000 }).id('tfg:barrel/shosha_wheel') + + // #region Oven heating recipes + + event.recipes.tfc.heating(`firmalife:oven_top`, 1399) + .resultItem(`firmalife:cured_oven_top`) + .id(`tfg:heating/oven_top`) + event.recipes.tfc.heating(`firmalife:oven_chimney`, 1399) + .resultItem(`firmalife:cured_oven_chimney`) + .id(`tfg:heating/oven_chimney`) + event.recipes.tfc.heating(`firmalife:oven_bottom`, 1399) + .resultItem(`firmalife:cured_oven_bottom`) + .id(`tfg:heating/oven_bottom`) + event.recipes.tfc.heating(`firmalife:oven_hopper`, 1399) + .resultItem(`firmalife:cured_oven_hopper`) + .id(`tfg:heating/oven_hopper`) + + // #endregion } diff --git a/kubejs/server_scripts/firmalife/tags.js b/kubejs/server_scripts/firmalife/tags.js index 100c1380d..e8746e3c1 100644 --- a/kubejs/server_scripts/firmalife/tags.js +++ b/kubejs/server_scripts/firmalife/tags.js @@ -14,10 +14,6 @@ const registerFirmaLifeItemTags = (event) => { event.add('c:hidden_from_recipe_viewers', item) }) - event.add('minecraft:trimmable_armor', '#firmalife:beekeeper_armor') - - event.add('tfc:foods/usable_in_salad', 'firmalife:food/pickled_egg') - // Удаление тегов у руд event.removeAllTagsFrom("/tfc:ore/[^*]+/[^*]+/") } @@ -74,7 +70,9 @@ const registerFirmaLifeFluidTags = (event) => { // Добавляем тег для скрытия в EMI event.add('c:hidden_from_recipe_viewers', 'firmalife:metal/chromium') + event.add('c:hidden_from_recipe_viewers', 'firmalife:metal/stainless_steel') event.add('c:hidden_from_recipe_viewers', 'firmalife:chocolate') + event.add('c:hidden_from_recipe_viewers', 'firmalife:fruity_fluid') // Im going to leave these, but I dont think this tag does anything(?). event.add('firmalife:mixable', 'tfc:spring_water') @@ -84,6 +82,7 @@ const registerFirmaLifeFluidTags = (event) => { event.add('firmalife:mixable', 'afc:maple_syrup') event.add('firmalife:mixable', 'afc:birch_syrup') + event.add('firmalife:oils', 'tfc:tallow') event.add('firmalife:oils', 'gtceu:seed_oil') event.add('firmalife:oils', 'gtceu:fish_oil') event.add('firmalife:oils', 'tfg:triglyceride_oil') diff --git a/kubejs/server_scripts/greate/recipes.removes.js b/kubejs/server_scripts/greate/recipes.removes.js index 1adb5d2e5..31570b8db 100644 --- a/kubejs/server_scripts/greate/recipes.removes.js +++ b/kubejs/server_scripts/greate/recipes.removes.js @@ -111,4 +111,7 @@ function removeGreateRecipes(event) { event.remove({ id: 'greate:cutting/integration/create/cutting/runtime_generated/compat/minecraft/bamboo_planks_to_bamboo_button' }) event.remove({ id: 'greate:mixing/integration/gtceu/mixer/fire_charge' }) + event.remove({ id: 'toomanyrecipeviewers:/greate/milling/integration/gtceu/macerator/macerate_cocoa' }) + event.remove({ id: 'greate:milling/integration/gtceu/macerator/macerate_honeycomb' }) + event.remove({ id: 'greate:milling/integration/gtceu/macerator/macerate_honeycomb_block'}) } diff --git a/kubejs/server_scripts/gregtech/data.js b/kubejs/server_scripts/gregtech/data.js index 4245617f8..3197bcd1b 100644 --- a/kubejs/server_scripts/gregtech/data.js +++ b/kubejs/server_scripts/gregtech/data.js @@ -134,103 +134,8 @@ const registerGTCEUMetals = (event) => { function registerGTCEUBedrockFluidVeins(event) { - event.add('tfg:moon_helium_3', vein => { - vein.dimensions('ad_astra:moon') - vein.fluid(() => Fluid.of('gtceu:helium_3').fluid) - vein.weight(100) - vein.minimumYield(200) - vein.maximumYield(400) - vein.depletionAmount(1) - vein.depletionChance(1) - vein.depletedYield(200) - }) - - event.add('tfg:moon_helium', vein => { - vein.dimensions('ad_astra:moon') - vein.fluid(() => Fluid.of('gtceu:helium').fluid) - vein.weight(10) - vein.minimumYield(20) - vein.maximumYield(50) - vein.depletionAmount(1) - vein.depletionChance(1) - vein.depletedYield(50) - }) - - event.add('tfg:moon_argon', vein => { - vein.dimensions('ad_astra:moon') - vein.fluid(() => Fluid.of('gtceu:argon').fluid) - vein.weight(5) - vein.minimumYield(10) - vein.maximumYield(30) - vein.depletionAmount(1) - vein.depletionChance(1) - vein.depletedYield(10) - }) - - // Mars Fluid Vein - Credit to Monifactory - - const Registries = Java.loadClass("net.minecraft.core.registries.Registries") - const ResourceKey = Java.loadClass("net.minecraft.resources.ResourceKey") - const martianAmberHillsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/amber_hills") - const martianAmberPlainsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/amber_plains") - const martianMountainsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/martian_mountains") - const martianRusticusHillsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/rusticus_hills") - const martianRusticusPlainsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/rusticus_plains") - const martianSangnumHillsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/sangnum_hills") - const martianSangnumPlainsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/sangnum_plains") - - event.add('tfg:semiheavy_ammoniacal_water', vein => { - vein.dimensions('ad_astra:mars') - vein.fluid(() => Fluid.of('tfg:semiheavy_ammoniacal_water').fluid) - vein.weight(100) - vein.minimumYield(200) - vein.maximumYield(400) - vein.depletionAmount(1) - vein.depletionChance(20) - vein.depletedYield(15) - }) - - event.add('tfg:liquid_carbon_dioxide', vein => { - vein.dimensions('ad_astra:mars') - vein.fluid(() => Fluid.of('gtceu:liquid_carbon_dioxide').fluid) - vein.weight(30) - vein.minimumYield(20) - vein.maximumYield(350) - vein.depletionAmount(1) - vein.depletionChance(20) - vein.depletedYield(5) - }) - - event.add('tfg:liquid_ice', vein => { - vein.dimensions('ad_astra:mars') - vein.fluid(() => Fluid.of('gtceu:ice').fluid) - vein.weight(20) - vein.minimumYield(20) - vein.maximumYield(200) - vein.depletionAmount(1) - vein.depletionChance(20) - vein.depletedYield(5) - }) - - // Heavy Ammonical Water in Specific Biome Credit to Monifactory from https://github.com/ThePansmith/Monifactory/blob/main/kubejs/server_scripts/worldgen/fluidVeins.js - - event.add('tfg:heavy_ammoniacal_water', vein => { - vein.dimensions('ad_astra:mars') - vein.fluid(() => Fluid.of('tfg:heavy_ammoniacal_water').fluid) - vein.biomes(20, martianAmberHillsResourceKey) - vein.biomes(20, martianAmberPlainsResourceKey) - vein.biomes(20, martianRusticusHillsResourceKey) - vein.biomes(20, martianRusticusPlainsResourceKey) - vein.biomes(20, martianSangnumHillsResourceKey) - vein.biomes(20, martianSangnumPlainsResourceKey) - // This one is exclusively far inland, so it's ok to buff it a bit in case the player has bad luck - vein.biomes(50, martianMountainsResourceKey) - vein.weight(0) - vein.minimumYield(100) - vein.maximumYield(650) - vein.depletionAmount(1) - vein.depletionChance(20) - vein.depletedYield(5) - }) + registerTFGMoonBedrockFluidVeins(event) + registerTFGMarsBedrockFluidVeins(event) + registerTFGVenusBedrockFluidVeins(event) } diff --git a/kubejs/server_scripts/gregtech/events.js b/kubejs/server_scripts/gregtech/events.js deleted file mode 100644 index 34a0f1703..000000000 --- a/kubejs/server_scripts/gregtech/events.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; - -PlayerEvents.tick((event) => { - const { player } = event; - if (player.age % 100 === 0 && player.legsArmorItem === 'gtceu:nanomuscle_leggings') { - player.potionEffects.add("minecraft:speed", 350, 0, true, false); - } -}); diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index b76dc2ea4..508996a71 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -9,634 +9,15 @@ const registerGTCEURecipes = (event) => { registerGTCEUMetalRecipes(event) registerGTCEURecyclingRecipes(event) - registerGTCEuTFCMetalsRecipes(event) registerGTCEuMachineRecipes(event) removeGTCEURecipes(event) - //#region Выход: Удобрение - // В обычном миксере - event.recipes.gtceu.mixer('tfg:fertilizer') - .itemInputs( - '#tfc:dirt', - '2x #tfg:wood_dusts', - '4x #forge:sand' - ) - .circuit(1) - .inputFluids("#tfg:clean_water 1000") - .itemOutputs('4x gtceu:fertilizer') - .duration(300) - .EUt(30) - - event.recipes.gtceu.mixer('tfg:fertilizer_2') - .itemInputs('tfc:compost') - .inputFluids('#tfg:clean_water 1000') - .itemOutputs('4x gtceu:fertilizer') - .duration(300) - .EUt(30) - - //#endregion - - //#region Выход: Кварцевый песок - - event.shaped('gtceu:quartz_sand_dust', [ - 'A', - 'B' - ], { - A: '#forge:sand', - B: '#forge:tools/mortars' - }).id('gtceu:shaped/quartz_sand') - - event.recipes.gtceu.macerator('quartz_sand_from_sand') - .itemInputs('#forge:sand') - .itemOutputs('gtceu:quartz_sand_dust') - .duration(30) - .EUt(2) - - //#endregion - - event.recipes.gtceu.macerator('flux') - .itemInputs('#tfc:fluxstone') - .itemOutputs('2x tfc:powder/flux') - .duration(30) - .EUt(2) - - event.recipes.gtceu.forge_hammer('flux') - .itemInputs('#tfc:fluxstone') - .itemOutputs('2x tfc:powder/flux') - .duration(30) - .EUt(2) - - event.recipes.greate.pressing('2x tfc:powder/flux', '#tfc:fluxstone') - .recipeTier(0) - .id('greate:pressing/flux') - - //#region Выход: Диоксид силикона - - event.recipes.gtceu.electrolyzer('sand_electrolysis') - .itemInputs('8x #forge:sand') - .itemOutputs('gtceu:silicon_dioxide_dust') - .duration(500) - .EUt(25) - - //#endregion - - event.recipes.gtceu.centrifuge('tfg:beets_to_sugar') - .itemInputs('5x tfc:food/beet') - .inputFluids(Fluid.of('tfc:salt_water', 1000)) - .itemOutputs('3x minecraft:sugar', '3x gtceu:plant_ball', '1x #forge:dusts/salt') - .outputFluids(Fluid.of('minecraft:water', 1000)) - .duration(800) - .EUt(7) - .circuit(3) - - event.smelting('4x tfc:powder/wood_ash', '1x #minecraft:logs_that_burn').id('tfg:wood_ash') - - //#region Выход: Соленая пыль + Вода - - // Декрафт в центрифуге - event.recipes.gtceu.centrifuge('centrifuging_tfc_salt_water') - .inputFluids(Fluid.of('tfc:salt_water', 1000)) - .itemOutputs('1x gtceu:salt_dust') - .outputFluids(Fluid.of('minecraft:water', 1000)) - .duration(51) - .EUt(30) - .circuit(1) - - // Декрафт в электролайзере - event.recipes.gtceu.electrolyzer('electrolyze_tfc_salt_water') - .inputFluids(Fluid.of('tfc:salt_water', 1000)) - .itemOutputs('1x gtceu:sodium_hydroxide_dust', '2x gtceu:small_sodium_hydroxide_dust') - .outputFluids(Fluid.of('gtceu:chlorine', 500), Fluid.of('gtceu:hydrogen', 500)) - .duration(720) - .EUt(30) - - // Add circuit to gregtech salt water mixer recipe - event.remove({ id: 'gtceu:mixer/salt_water' }) - generateMixerRecipe(event, ['2x #forge:dusts/salt'], Fluid.of('minecraft:water', 1000), [], 1, Fluid.of('gtceu:salt_water', 1000), 40, 7, 64, 'tfg:gtceu/salt_water') - - //#endregion - - //#region Выход: Пропитанные доски - - event.remove({ id: 'gtceu:shaped/treated_wood_planks' }) - - event.recipes.tfc.barrel_sealed(4000) - .outputItem('gtceu:treated_wood_planks') - .inputs('#minecraft:planks', TFC.fluidStackIngredient('#forge:creosote', 100)) - .id('tfg:barrel/treated_wood_planks') - - event.recipes.tfc.barrel_sealed(2000) - .outputItem('gtceu:treated_wood_dust') - .inputs('#tfg:wood_dusts', TFC.fluidStackIngredient('#forge:creosote', 50)) - .id('tfg:barrel/treated_wood_dust') - - //#endregion - - //#region Выход: Капля резины - - // Из латекса - event.recipes.tfc.pot('tfc:powder/wood_ash', Fluid.of('tfg:latex', 1000), 1200, 300) - .itemOutput('gtceu:sticky_resin') - .id('tfg:pot/sticky_resin_from_latex') - - event.recipes.tfc.pot('tfc:powder/wood_ash', Fluid.of('tfg:conifer_pitch', 1000), 1200, 300) - .itemOutput('gtceu:sticky_resin') - .id('tfg:pot/sticky_resin_from_conifer_pitch') - - event.recipes.gtceu.fluid_solidifier('tfg:fluid_solidifier/latex_to_sticky_resin') - .duration(12 * 20) - .EUt(30) - .itemInputs('tfc:powder/wood_ash') - .itemOutputs('gtceu:sticky_resin') - .inputFluids(Fluid.of('tfg:latex', 1000)) - - event.recipes.gtceu.fluid_solidifier('tfg:fluid_solidifier/pitch_to_sticky_resin') - .duration(12 * 20) - .EUt(30) - .itemInputs('tfc:powder/wood_ash') - .itemOutputs('gtceu:sticky_resin') - .inputFluids(Fluid.of('tfg:conifer_pitch', 1000)) - //#endregion - - //#region Выход: Растительный шарик - // 8x Ванильная растительность -> Plant Ball (Compressor) - - event.recipes.gtceu.compressor('plant_ball_from_tfc_seeds') - .itemInputs('4x #tfc:seeds') - .itemOutputs('gtceu:plant_ball') - .duration(300) - .EUt(2) - - let food = Ingredient.of('#tfc:foods') - .subtract('minecraft:brown_mushroom') - .subtract('minecraft:red_mushroom') - .withCount(8) - - event.recipes.gtceu.compressor('plant_ball_from_tfc_food') - .itemInputs(food) - .itemOutputs('gtceu:plant_ball') - .duration(300) - .EUt(2) - - event.recipes.gtceu.compressor('plant_ball_from_tfc_plants') - .itemInputs('4x #tfc:plants') - .itemOutputs('gtceu:plant_ball') - .duration(300) - .EUt(2) - - event.recipes.gtceu.compressor('plant_ball_from_moon_plants') - .itemInputs('4x #tfg:moon_plants') - .itemOutputs('gtceu:plant_ball') - .duration(300) - .EUt(2) - - event.recipes.gtceu.compressor('plant_ball_from_mars_plants') - .itemInputs('4x #tfg:mars_plants') - .itemOutputs('gtceu:plant_ball') - .duration(300) - .EUt(2) - - event.recipes.gtceu.compressor('plant_ball_from_tfc_corals') - .itemInputs('4x #tfc:corals') - .itemOutputs('gtceu:plant_ball') - .duration(300) - .EUt(2) - - event.recipes.gtceu.compressor('plant_ball_from_misc_plants') - .itemInputs('4x #createaddition:plants') - .itemOutputs('gtceu:plant_ball') - .duration(300) - .EUt(2) - - event.recipes.gtceu.compressor('plant_ball_from_wart_blocks') - .itemInputs('4x #minecraft:wart_blocks') - .itemOutputs('gtceu:plant_ball') - .duration(300) - .EUt(2) - - //#endregion - - //#region Выход: Биомасса - - // Ванильная растительность -> Биомасса (Brewery) - - event.recipes.gtceu.brewery('biomass_from_tfc_seeds') - .itemInputs('#tfc:seeds') - .inputFluids("#tfc:any_water 20") - .outputFluids(Fluid.of('gtceu:biomass', 100)) - .duration(100) - .EUt(3) - - event.recipes.gtceu.brewery('biomass_from_tfc_food') - .itemInputs('#tfc:foods') - .inputFluids("#tfc:any_water 20") - .outputFluids(Fluid.of('gtceu:biomass', 100)) - .duration(100) - .EUt(3) - - event.recipes.gtceu.brewery('biomass_from_tfc_plants') - .itemInputs('#tfc:plants') - .inputFluids("#tfc:any_water 20") - .outputFluids(Fluid.of('gtceu:biomass', 100)) - .duration(100) - .EUt(3) - - event.recipes.gtceu.brewery('biomass_from_moon_plants') - .itemInputs('#tfg:moon_plants') - .inputFluids("#tfc:any_water 20") - .outputFluids(Fluid.of('gtceu:biomass', 100)) - .duration(100) - .EUt(3) - - event.recipes.gtceu.brewery('biomass_from_mars_plants') - .itemInputs('#tfg:mars_plants') - .inputFluids("#tfc:any_water 20") - .outputFluids(Fluid.of('gtceu:biomass', 100)) - .duration(100) - .EUt(3) - - event.recipes.gtceu.brewery('biomass_from_tfc_corals') - .itemInputs('#tfc:corals') - .inputFluids("#tfc:any_water 20") - .outputFluids(Fluid.of('gtceu:biomass', 100)) - .duration(100) - .EUt(3) - - event.recipes.gtceu.brewery('biomass_from_spider_eyes') - .itemInputs('minecraft:spider_eye') - .inputFluids("#tfc:any_water 20") - .outputFluids(Fluid.of('gtceu:biomass', 100)) - .duration(100) - .EUt(3) - - event.recipes.gtceu.brewery('biomass_from_leaves') - .itemInputs('#minecraft:leaves') - .inputFluids("#tfc:any_water 20") - .outputFluids(Fluid.of('gtceu:biomass', 20)) - .duration(100) - .EUt(3) - - event.recipes.gtceu.brewery('biomass_from_fallen_leaves') - .itemInputs('#tfc:fallen_leaves') - .inputFluids("#tfc:any_water 20") - .outputFluids(Fluid.of('gtceu:biomass', 20)) - .duration(100) - .EUt(3) - - event.recipes.gtceu.brewery('biomass_from_minecraft_plants') - .itemInputs('#createaddition:plants') - .inputFluids("#tfc:any_water 20") - .outputFluids(Fluid.of('gtceu:biomass', 100)) - .duration(100) - .EUt(3) - - event.recipes.gtceu.brewery('biomass_from_wart_blocks') - .itemInputs('#minecraft:wart_blocks') - .inputFluids("#tfc:any_water 20") - .outputFluids(Fluid.of('gtceu:biomass', 50)) - .duration(100) - .EUt(3) - - //#endregion - - //#region Выход: Рыбье масло - - event.recipes.gtceu.extractor(`tfg/fish_oil`) - .itemInputs('#minecraft:fishes') - .outputFluids(Fluid.of('gtceu:fish_oil', 200)) - .duration(40) - .EUt(4) - - event.recipes.gtceu.extractor(`tfg/tallow`) - .itemInputs('tfc:blubber') - .outputFluids(Fluid.of('tfc:tallow', 200)) - .duration(40) - .EUt(4) - - // you get tallow from killing things like orcas, so this seems close enough - event.recipes.gtceu.mixer('tallow_to_fish_oil') - .inputFluids('tfc:tallow 100', 'tfc:lye 100') - .outputFluids('gtceu:fish_oil 200') - .duration(100) - .EUt(4) - - //#endregion - - //#region Выход: Семянное масло - - event.recipes.gtceu.extractor(`tfg/seed_oil`) - .itemInputs('#tfc:seeds') - .outputFluids(Fluid.of('gtceu:seed_oil', 50)) - .duration(32) - .EUt(2) - - //#endregion - - //#region Выход: Цемент - - const recipe = event.recipes.gtceu.mixer('concrete_from_marble') - .itemInputs(Ingredient.of('#tfg:stone_dusts').subtract('gtceu:marble_dust').withCount(2), 'gtceu:marble_dust', 'gtceu:gypsum_dust') - .inputFluids("#tfg:clean_water 1000") - .outputFluids('gtceu:concrete 1152') - .duration(40) - .EUt(16) - - generateMixerRecipe(event, ['3x #tfg:stone_dusts', 'gtceu:clay_dust'], - "#tfg:clean_water 500", [], null, 'gtceu:concrete 576', 20, 16, 64, 'concrete_from_clay') - - generateMixerRecipe(event, ['3x #tfg:stone_dusts', 'gtceu:calcite_dust', 'gtceu:gypsum_dust'], - "#tfg:clean_water 1000", [], null, 'gtceu:concrete 1152', 40, 16, 64, 'concrete_from_calcite') - - //GT light/dark concrete recipe fix - - event.remove({ id: 'gtceu:fluid_solidifier/solidify_concrete_block' }) - event.remove({ id: 'gtceu:chemical_bath/light_to_dark_concrete' }) - - event.recipes.gtceu.fluid_solidifier('gtceu:fluid_solidifier/solidify_light_concrete') - .inputFluids(Fluid.of('gtceu:concrete', 144)) - .notConsumable('1x gtceu:block_casting_mold') - .itemOutputs('1x gtceu:light_concrete') - .duration(98) - .EUt(7) - - event.recipes.gtceu.chemical_bath('gtceu:chemical_bath/dark_concrete') - .inputFluids(Fluid.of('tfc:black_dye', 18)) - .itemInputs('1x gtceu:light_concrete') - .itemOutputs('1x gtceu:dark_concrete') - .duration(20) - .EUt(7) - - event.recipes.gtceu.extractor('gtceu:extractor/extract_light_concrete') - .itemInputs('1x gtceu:light_concrete') - .outputFluids(Fluid.of('gtceu:concrete', 144)) - .duration(98) - .EUt(30) - - event.stonecutting('gtceu:light_concrete_bricks', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_bricks') - event.stonecutting('gtceu:chiseled_light_concrete', 'gtceu:light_concrete').id('tfg:stonecutting/chiseled_light_concrete') - event.stonecutting('gtceu:light_concrete_tile', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_tile') - event.stonecutting('gtceu:light_concrete_small_tile', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_small_tile') - event.stonecutting('gtceu:light_concrete_windmill_a', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_windmill_a') - event.stonecutting('gtceu:light_concrete_windmill_b', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_windmill_b') - event.stonecutting('gtceu:small_light_concrete_bricks', 'gtceu:light_concrete').id('tfg:stonecutting/small_light_concrete_bricks') - event.stonecutting('gtceu:square_light_concrete_bricks', 'gtceu:light_concrete').id('tfg:stonecutting/square_light_concrete_bricks') - - event.stonecutting('gtceu:dark_concrete_bricks', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_bricks') - event.stonecutting('gtceu:chiseled_dark_concrete', 'gtceu:dark_concrete').id('tfg:stonecutting/chiseled_dark_concrete') - event.stonecutting('gtceu:dark_concrete_tile', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_tile') - event.stonecutting('gtceu:dark_concrete_small_tile', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_small_tile') - event.stonecutting('gtceu:dark_concrete_windmill_a', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_windmill_a') - event.stonecutting('gtceu:dark_concrete_windmill_b', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_windmill_b') - event.stonecutting('gtceu:small_dark_concrete_bricks', 'gtceu:dark_concrete').id('tfg:stonecutting/small_dark_concrete_bricks') - event.stonecutting('gtceu:square_dark_concrete_bricks', 'gtceu:dark_concrete').id('tfg:stonecutting/square_dark_concrete_bricks') - - //#endregion - - //#region GT marble - - event.stonecutting('gtceu:polished_marble', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_polished_marble') - event.stonecutting('gtceu:chiseled_marble', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_chiseled_marble') - event.stonecutting('gtceu:marble_tile', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_marble_tile') - event.stonecutting('gtceu:marble_small_tile', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_marble_small_tile') - event.stonecutting('gtceu:marble_windmill_a', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_marble_windmill_a') - event.stonecutting('gtceu:marble_windmill_b', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_marble_windmill_b') - event.stonecutting('gtceu:small_marble_bricks', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_small_marble_bricks') - event.stonecutting('gtceu:square_marble_bricks', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_square_marble_bricks') - - //#endregion - - //#region Выход: Бурильная жидкость + // Drilling fluid from all stone dusts generateMixerRecipe(event, ['2x #tfg:stone_dusts'], ['gtceu:lubricant 20', "#tfg:clean_water 4000"], [], null, Fluid.of('gtceu:drilling_fluid', 5000), 40, 16, 64, 'drilling_fluid') - //#endregion - - //#region Выход: Пыль мяса - - event.recipes.gtceu.macerator('macerate_meat_to_dust') - .itemInputs('#tfc:foods/meats') - .itemOutputs('gtceu:meat_dust', 'gtceu:tiny_bone_dust') - .duration(100) - .EUt(2) - - //#endregion - - //#region Выход: Пыль какао-бобов - - event.recipes.gtceu.macerator('macerate_cocoa') - .itemInputs('firmalife:food/roasted_cocoa_beans') - .itemOutputs('gtceu:cocoa_dust') - .duration(100) - .EUt(2) - - //#endregion - - //#region Стеклодувка - - // Glass Tube - event.recipes.tfc.glassworking('gtceu:glass_tube', '#tfc:glass_batches_tier_3', ['blow', 'stretch', 'stretch']) - .id('tfg:gtceu/glassworking/glass_tube') - - //#endregion - - // Пыль звезды незера - event.recipes.gtceu.chemical_reactor('tfg:gtceu/nether_star_dust') - .itemInputs('2x #forge:dusts/iridium', '#forge:dusts/diamond') - .circuit(10) - .itemOutputs('gtceu:nether_star_dust') - // TODO: change to something else with venus - .inputFluids(Fluid.of('gtceu:neon', 1000)) - .duration(700) - .EUt(2720) - - // Empty Wooden Form - event.shaped('gtceu:empty_wooden_form', [ - ' AA', - 'BAA' - ], { - A: '#minecraft:planks', - B: '#forge:tools/saws' - }).id('gtceu:shaped/plank_to_wooden_shape') - - // Деревянная шестерня - event.shaped('gtceu:small_wood_gear', [ - 'AB ', - 'BCB', - ' B ' - ], { - A: '#forge:tools/saws', - B: '#forge:rods/wooden', - C: 'tfc:glue' - }).id('gtceu:shaped/small_gear_wood') - - event.shaped('gtceu:wood_gear', [ - 'AB ', - 'BCB', - ' B ' - ], { - A: '#forge:tools/saws', - B: '#minecraft:planks', - C: 'tfc:glue' - }).id('gtceu:shaped/gear_wood') - - // Compressed Coke Clay - event.shaped('gtceu:compressed_coke_clay', [ - 'AAA', - 'BCB', - 'BBB' - ], { - A: 'minecraft:clay_ball', - B: '#minecraft:sand', - C: 'gtceu:brick_wooden_form' - }).replaceIngredient('gtceu:brick_wooden_form', 'gtceu:brick_wooden_form').id('gtceu:shaped/compressed_coke_clay') - - // Coke Oven Brick - event.recipes.tfc.heating('gtceu:compressed_coke_clay', 1399) - .resultItem('gtceu:coke_oven_brick') - .id('tfg:heating/coke_oven_bricks') - - event.recipes.gtceu.alloy_smelter('gtceu:coke_oven_brick') - .itemInputs('3x #minecraft:sand', '2x minecraft:clay_ball') - .itemOutputs('gtceu:coke_oven_brick') - .duration(7.5 * 20) - .EUt(GTValues.VA[GTValues.ULV]) - - // Multi-Smelter - event.shaped('gtceu:multi_smelter', [ - 'AAA', - 'BCB', - 'DBD' - ], { - A: 'gtceu:hp_steam_furnace', - B: '#gtceu:circuits/hv', - C: 'gtceu:heatproof_machine_casing', - D: 'gtceu:copper_single_cable' - }).id('gtceu:shaped/multi_furnace') - - event.shaped('gtceu:multi_smelter', [ - 'AAA', - 'BCB', - 'DBD' - ], { - A: 'gtceu:lv_electric_furnace', - B: '#gtceu:circuits/hv', - C: 'gtceu:heatproof_machine_casing', - D: 'gtceu:copper_single_cable' - }).id('gtceu:shaped/multi_furnace2') - - // Electric Blast Furnace - event.shaped('gtceu:electric_blast_furnace', [ - 'AAA', - 'BCB', - 'DBD' - ], { - A: 'gtceu:hp_steam_furnace', - B: '#gtceu:circuits/lv', - C: 'gtceu:heatproof_machine_casing', - D: 'gtceu:tin_single_cable' - }).id('gtceu:shaped/electric_blast_furnace') - - event.shaped('gtceu:electric_blast_furnace', [ - 'AAA', - 'BCB', - 'DBD' - ], { - A: 'gtceu:lv_electric_furnace', - B: '#gtceu:circuits/lv', - C: 'gtceu:heatproof_machine_casing', - D: 'gtceu:tin_single_cable' - }).id('gtceu:shaped/electric_blast_furnace2') - - // Клей из ТФК клея / Glue from resin - event.recipes.gtceu.extractor('tfg:glue_from_tfc_glue') - .itemInputs('tfc:glue') - .outputFluids(Fluid.of('gtceu:glue', 50)) - .duration(20 * 10) - .EUt(5) - - event.recipes.gtceu.extractor('tfg:glue_from_sticky_resin') - .itemInputs('gtceu:sticky_resin') - .outputFluids(Fluid.of('gtceu:glue', 100)) - .duration(20 * 10) - .EUt(5) - - event.recipes.gtceu.extractor('tfg:glue_from_conifer_resin') - .itemInputs('tfg:conifer_rosin') - .outputFluids(Fluid.of('gtceu:glue', 50)) - .duration(20 * 10) - .EUt(5) - - event.recipes.gtceu.mixer('tfg:glue_from_bone_meal') - .itemInputs('minecraft:bone_meal') - .inputFluids(Fluid.of('tfc:limewater', 500)) - .outputFluids(Fluid.of('gtceu:glue', 50)) - .duration(100) - .EUt(5) - - // Исправление рецепта пыли серебра стерлинга - event.remove({ id: 'gtceu:mixer/sterling_silver' }) - generateMixerRecipe(event, ['#forge:dusts/copper', '4x #forge:dusts/silver'], [], '5x gtceu:sterling_silver_dust', - 1, [], 500, 7, 64, 'gtceu:mixer/sterling_silver') - - // Исправление рецепта пыли розовой бронзы - event.remove({ id: 'gtceu:mixer/rose_gold' }) - generateMixerRecipe(event, ['#forge:dusts/copper', '4x #forge:dusts/gold'], [], '5x gtceu:rose_gold_dust', - 3, [], 500, 7, 64, 'gtceu:mixer/rose_gold') - - //#region Рецепт ULV микросхемы - - event.remove({ id: 'gtceu:shaped/vacuum_tube' }) - event.replaceInput({ id: 'gtceu:assembler/vacuum_tube_plain' }, 'gtceu:steel_bolt', 'gtceu:resin_circuit_board') - event.replaceInput({ id: 'gtceu:assembler/vacuum_tube_red_alloy' }, 'gtceu:steel_bolt', 'gtceu:resin_circuit_board') - event.replaceInput({ id: 'gtceu:assembler/vacuum_tube_red_alloy_annealed' }, 'gtceu:steel_bolt', 'gtceu:resin_circuit_board') - - event.recipes.createSequencedAssembly([ - 'gtceu:vacuum_tube', - ], 'gtceu:resin_circuit_board', [ - event.recipes.createDeploying('tfg:unfinished_vacuum_tube', ['tfg:unfinished_vacuum_tube', '#forge:bolts/steel']), - event.recipes.createDeploying('tfg:unfinished_vacuum_tube', ['tfg:unfinished_vacuum_tube', 'gtceu:copper_single_wire']), - event.recipes.createDeploying('tfg:unfinished_vacuum_tube', ['tfg:unfinished_vacuum_tube', 'gtceu:copper_single_wire']), - event.recipes.createDeploying('tfg:unfinished_vacuum_tube', ['tfg:unfinished_vacuum_tube', 'gtceu:glass_tube']), - event.custom({ type: 'vintageimprovements:vacuumizing', ingredients: [{ item: 'tfg:unfinished_vacuum_tube' }], results: [{ item: 'tfg:unfinished_vacuum_tube' }], processingTime: 80 }) - ]).transitionalItem('tfg:unfinished_vacuum_tube').loops(1).id('tfg:gtceu/sequenced_assembly/vacuum_tube') - - //#endregion - - //#region Рецепт LV микросхемы - - event.remove({ id: 'gtceu:shaped/electronic_circuit_lv' }) - - event.recipes.createSequencedAssembly([ - 'gtceu:basic_electronic_circuit', - ], 'gtceu:resin_printed_circuit_board', [ - event.recipes.createDeploying('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', 'gtceu:resistor']), - event.recipes.createDeploying('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', 'gtceu:resistor']), - event.recipes.createDeploying('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', 'gtceu:vacuum_tube']), - event.recipes.createDeploying('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', 'gtceu:vacuum_tube']), - event.recipes.createDeploying('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', 'create:electron_tube']), - event.recipes.createFilling('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', Fluid.of('gtceu:glue', 50)]), - event.recipes.createDeploying('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', '#forge:plates/steel']), - ]).transitionalItem('tfg:unfinished_basic_electronic_circuit').loops(1).id('tfg:gtceu/sequenced_assembly/basic_electronic_circuit') - - event.remove({ id: 'gtceu:shaped/electronic_circuit_mv' }) - - event.recipes.createSequencedAssembly([ - 'gtceu:good_electronic_circuit', - ], 'gtceu:phenolic_printed_circuit_board', [ - event.recipes.createDeploying('tfg:unfinished_good_electronic_circuit', ['tfg:unfinished_good_electronic_circuit', 'gtceu:diode']), - event.recipes.createDeploying('tfg:unfinished_good_electronic_circuit', ['tfg:unfinished_good_electronic_circuit', 'gtceu:diode']), - event.recipes.createDeploying('tfg:unfinished_good_electronic_circuit', ['tfg:unfinished_good_electronic_circuit', '#forge:single_wires/copper']), - event.recipes.createDeploying('tfg:unfinished_good_electronic_circuit', ['tfg:unfinished_good_electronic_circuit', '#forge:single_wires/copper']), - event.recipes.createDeploying('tfg:unfinished_good_electronic_circuit', ['tfg:unfinished_good_electronic_circuit', 'gtceu:basic_electronic_circuit']), - event.recipes.createDeploying('tfg:unfinished_good_electronic_circuit', ['tfg:unfinished_good_electronic_circuit', 'gtceu:basic_electronic_circuit']), - event.recipes.createDeploying('tfg:unfinished_good_electronic_circuit', ['tfg:unfinished_good_electronic_circuit', 'gtceu:basic_electronic_circuit']), - event.recipes.createDeploying('tfg:unfinished_good_electronic_circuit', ['tfg:unfinished_good_electronic_circuit', '#forge:plates/steel']), - ]).transitionalItem('tfg:unfinished_good_electronic_circuit').loops(1).id('tfg:gtceu/sequenced_assembly/good_electronic_circuit') - - //#endregion - //#region Quantum mainframe stack fix. // // Quantum Mainframes need 48x annealed copper wire but @@ -733,227 +114,6 @@ const registerGTCEURecipes = (event) => { // #endregion - // #region Add all glass colors to macerator/hammer - removeMaceratorRecipe(event, 'macerate_glass'); - event.recipes.gtceu.macerator("gtceu:macerator/macerate_glass") - .itemInputs( - "#forge:glass" - ) - .itemOutputs("gtceu:glass_dust") - .duration(20) - .EUt(2); - - removeMaceratorRecipe(event, 'macerate_glass_pane'); - event.recipes.gtceu.macerator("gtceu:macerator/macerate_glass_pane") - .itemInputs( - "#forge:glass_panes" - ) - .itemOutputs("3x gtceu:tiny_glass_dust") - .duration(6) - .EUt(2) - - event.replaceInput({ id: "gtceu:shaped/glass_dust_hammer" }, - "minecraft:glass", - "#forge:glass" - ); - // #endregion - - // #region Rich coal processing - - event.recipes.gtceu.coke_oven("tfg:poor_coal_to_coke") - .itemInputs('2x gtceu:poor_raw_coal') - .itemOutputs('1x gtceu:coke_gem') - .outputFluids(Fluid.of('gtceu:creosote', 500)) - .duration(900) - - event.recipes.gtceu.coke_oven("tfg:coal_to_coke") - .itemInputs('gtceu:raw_coal') - .itemOutputs('2x gtceu:coke_gem') - .outputFluids(Fluid.of('gtceu:creosote', 1000)) - .duration(900) - - event.recipes.gtceu.coke_oven("tfg:rich_coal_to_coke") - .itemInputs('gtceu:rich_raw_coal') - .itemOutputs('4x gtceu:coke_gem') - .outputFluids(Fluid.of('gtceu:creosote', 2000)) - .duration(900) - - event.recipes.gtceu.pyrolyse_oven("tfg:rich_coal_to_tar") - .itemInputs('3x gtceu:rich_raw_coal') - .chancedOutput('gtceu:dark_ash_dust', 5000, 0) - .outputFluids(Fluid.of('gtceu:coal_tar', 3000)) - .duration(288) - .EUt(96) - .circuit(8) - - event.recipes.gtceu.pyrolyse_oven("tfg:rich_coal_to_coke_creosote") - .itemInputs('4x gtceu:rich_raw_coal') - .itemOutputs('16x gtceu:coke_gem') - .outputFluids(Fluid.of('gtceu:creosote', 8000)) - .duration(576) - .EUt(64) - .circuit(1) - - event.recipes.gtceu.pyrolyse_oven("tfg:coal_to_coal_gas") - .itemInputs('4x gtceu:rich_raw_coal') - .itemOutputs('16x gtceu:coke_gem') - .inputFluids(Fluid.of('gtceu:steam')) - .outputFluids(Fluid.of('gtceu:coal_gas', 4000)) - .duration(288) - .EUt(96) - .circuit(22) - - event.recipes.gtceu.pyrolyse_oven("tfg:coal_to_coke_creosote_nitrogen") - .itemInputs('4x gtceu:rich_raw_coal') - .itemOutputs('16x gtceu:coke_gem') - .inputFluids(Fluid.of('gtceu:nitrogen')) - .outputFluids(Fluid.of('gtceu:creosote', 8000)) - .duration(288) - .EUt(96) - .circuit(2) - - event.recipes.gtceu.coke_oven("tfg:raw_coal_to_coke") - .itemInputs('gtceu:raw_coal') - .itemOutputs('2x gtceu:coke_gem') - .outputFluids(Fluid.of('gtceu:creosote', 2000)) - .duration(1710) - - event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_tar") - .itemInputs('6x gtceu:raw_coal') - .chancedOutput('gtceu:dark_ash_dust', 5000, 0) - .outputFluids(Fluid.of('gtceu:coal_tar', 3000)) - .duration(288) - .EUt(96) - .circuit(8) - - event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_coke_creosote") - .itemInputs('8x gtceu:raw_coal') - .itemOutputs('16x gtceu:coke_gem') - .outputFluids(Fluid.of('gtceu:creosote', 8000)) - .duration(576) - .EUt(64) - .circuit(1) - - event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_coal_gas") - .itemInputs('8x gtceu:raw_coal') - .itemOutputs('16x gtceu:coke_gem') - .inputFluids(Fluid.of('gtceu:steam')) - .outputFluids(Fluid.of('gtceu:coal_gas', 4000)) - .duration(288) - .EUt(96) - .circuit(22) - - event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_coke_creosote_nitrogen") - .itemInputs('8x gtceu:raw_coal') - .itemOutputs('16x gtceu:coke_gem') - .inputFluids(Fluid.of('gtceu:nitrogen')) - .outputFluids(Fluid.of('gtceu:creosote', 8000)) - .duration(288) - .EUt(96) - .circuit(2) - - // #endregion - - // #region Fix TFC hanging sign metal dupe for Macerator and Arc Furnace - - const SIGN_METALS = [ - GTMaterials.Copper, - GTMaterials.Bronze, - GTMaterials.BlackBronze, - GTMaterials.BismuthBronze, - GTMaterials.WroughtIron, - GTMaterials.Steel, - GTMaterials.BlackSteel, - GTMaterials.RedSteel, - GTMaterials.BlueSteel - ]; - - SIGN_METALS.forEach(metal => { - // Arc furnace - global.TFC_WOOD_TYPES.forEach(wood => { - event.remove(`gtceu:arc_furnace/arc_wood/hanging_sign/${metal.getName()}/${wood}`) - event.recipes.gtceu.arc_furnace(`gtceu:arc_furnace/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) - .itemInputs(`tfc:wood/hanging_sign/${metal.getName()}/${wood}`) - .itemOutputs('gtceu:tiny_ash_dust') - .chancedOutput(ChemicalHelper.get(TagPrefix.nugget, metal, 1), 3750, 0) - .inputFluids(Fluid.of('gtceu:oxygen', 12)) - .duration(12) - .EUt(30) - .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) - }) - - global.AFC_WOOD_TYPES.forEach(wood => { - event.recipes.gtceu.arc_furnace(`gtceu:arc_furnace/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) - .itemInputs(`afc:wood/hanging_sign/${metal.getName()}/${wood}`) - .itemOutputs('gtceu:tiny_ash_dust') - .chancedOutput(ChemicalHelper.get(TagPrefix.nugget, metal, 1), 3750, 0) - .inputFluids(Fluid.of('gtceu:oxygen', 12)) - .duration(12) - .EUt(30) - .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) - }) - - // Macerator - global.TFC_HARDWOOD_TYPES.forEach(wood => { - removeMaceratorRecipe(event, `macerate_wood/hanging_sign/${metal.getName()}/${wood}`) - event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) - .itemInputs(`tfc:wood/hanging_sign/${metal.getName()}/${wood}`) - .itemOutputs('gtceu:hardwood_dust') - .chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0) - .duration(108) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - }) - - global.TFC_SOFTWOOD_TYPES.forEach(wood => { - removeMaceratorRecipe(event, `macerate_wood/hanging_sign/${metal.getName()}/${wood}`) - event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) - .itemInputs(`tfc:wood/hanging_sign/${metal.getName()}/${wood}`) - .itemOutputs('gtceu:wood_dust') - .chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0) - .duration(108) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - }) - - global.AFC_HARDWOOD_TYPES.forEach(wood => { - event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) - .itemInputs(`afc:wood/hanging_sign/${metal.getName()}/${wood}`) - .itemOutputs('gtceu:hardwood_dust') - .chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0) - .duration(108) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - }) - - global.AFC_SOFTWOOD_TYPES.forEach(wood => { - event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) - .itemInputs(`afc:wood/hanging_sign/${metal.getName()}/${wood}`) - .itemOutputs('gtceu:wood_dust') - .chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0) - .duration(108) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - }) - }) - // #endregion - - //#region support recycling - event.recipes.gtceu.macerator(`hardwood_support_to_dust`) - .itemInputs('#tfg:hardwood_supports') - .itemOutputs('gtceu:hardwood_dust') - .duration(150) - .EUt(2) - .category(GTRecipeCategories.MACERATOR_RECYCLING); - - event.recipes.gtceu.macerator(`softwood_support_to_dust`) - .itemInputs('#tfg:softwood_supports') - .itemOutputs('gtceu:wood_dust') - .duration(150) - .EUt(2) - .category(GTRecipeCategories.MACERATOR_RECYCLING); - //#endregion - //#region Voiding covers event.replaceInput({ id: 'gtceu:shaped/cover_fluid_voiding' }, @@ -970,102 +130,6 @@ const registerGTCEURecipes = (event) => { //#endregion - // #region Treated Wood - - event.shaped('2x gtceu:treated_wood_door', [ - 'AA ', - 'AA ', - 'AA ' - ], { - A: 'gtceu:treated_wood_plate' - }).id('tfg:shaped/treated_door') - - event.shaped('3x gtceu:treated_wood_trapdoor', [ - 'AAA', - 'AAA', - ' ' - ], { - A: 'gtceu:treated_wood_plate' - }).id('tfg:shaped/treated_trapdoor') - - // #endregion - - // #region Rubber Processing Line - event.recipes.firmalife.vat() - .inputs('tfc:powder/sulfur', Fluid.of('tfg:latex', 1000)) - .outputFluid(Fluid.of('tfg:vulcanized_latex', 1000)) - .length(300) - .temperature(300) - .id('tfg:vat/vulcanized_latex') - - event.recipes.tfc.pot('tfc:powder/sulfur', Fluid.of('tfg:latex', 1000), 1200, 300) - .fluidOutput(Fluid.of('tfg:vulcanized_latex', 1000)) - .id('tfg:pot/vulcanized_latex') - - event.recipes.gtceu.chemical_reactor('tfg:latex_to_vulcanized_latex') - .duration(100) - .EUt(20) - .itemInputs('tfc:powder/sulfur') - .inputFluids(Fluid.of('tfg:latex', 1000)) - .outputFluids(Fluid.of('tfg:vulcanized_latex', 1000)) - - event.recipes.gtceu.fluid_solidifier('tfg:vulcanized_latex_to_raw_rubber_pulp') - .duration(100) - .EUt(20) - .inputFluids(Fluid.of('tfg:vulcanized_latex', 1000)) - .itemOutputs('4x gtceu:raw_rubber_dust') - - // #endregion - - // #region Primitive protection - - event.recipes.tfc.barrel_sealed(2000) - .outputItem('tfg:prepared_leather_gloves') - .inputs('tfchotornot:mittens', Fluid.of('tfc:vinegar', 1000)) - .id('tfg:sealed_barrel/prepared_leather_gloves') - - event.recipes.firmalife.vat() - .outputItem('tfg:latex_soaked_gloves') - .inputs('tfg:prepared_leather_gloves', Fluid.of('tfg:vulcanized_latex', 1000)) - .length(300) - .temperature(200) - .id('tfg:vat/latex_soaked_gloves') - - event.recipes.firmalife.oven('tfg:latex_soaked_gloves', 120, 1200, 'gtceu:rubber_gloves') - .id('tfg:oven/rubber_gloves') - - event.remove({ id: 'gtceu:shaped/rubber_gloves' }) - - event.recipes.gtceu.alloy_smelter('rubber_gloves_alloy_smelter') - .itemInputs('2x #forge:plates/rubber') - .notConsumable('create:brass_hand') - .itemOutputs('gtceu:rubber_gloves') - .duration(200) - .EUt(GTValues.VA[GTValues.ULV]) - .category(GTRecipeCategories.INGOT_MOLDING) - - - event.recipes.tfc.damage_inputs_shaped_crafting( - event.shaped('gtceu:face_mask', [ - 'ACA', - 'ABA', - ' D ' - ], { - A: '#forge:string', - B: '#forge:cloth', - C: 'minecraft:paper', - D: '#tfc:sewing_needles' - }) - ).id('gtceu:shaped/face_mask') - - event.recipes.gtceu.assembler('assemble_face_mask') - .itemInputs('4x #forge:string', '#forge:cloth', 'minecraft:paper') - .itemOutputs('gtceu:face_mask') - .duration(100) - .EUt(GTValues.VA[GTValues.ULV]) - .circuit(7) - - // #endregion event.replaceInput({ id: 'gtceu:shaped/nightvision_goggles' }, 'gtceu:glass_lens', 'tfc:lens') event.replaceInput({ id: 'gtceu:shaped/nightvision_goggles' }, 'gtceu:lv_sodium_battery', '#gtceu:batteries/lv') @@ -1078,99 +142,6 @@ const registerGTCEURecipes = (event) => { event.replaceInput({ id: 'gtceu:shaped/blacklight' }, 'gtceu:tungsten_carbide_screw', '#tfg:components/uv_leds') - event.recipes.gtceu.fluid_solidifier('tfg:solidify_glue') - .inputFluids(Fluid.of('gtceu:glue', 50)) - .notConsumable('gtceu:ball_casting_mold') - .itemOutputs('tfc:glue') - .duration(100) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.centrifuge('tfg:centrifuge_rosin') - .itemInputs('tfg:conifer_rosin') - .outputFluids(Fluid.of('gtceu:glue', 50)) - .itemOutputs('2x #forge:dusts/carbon') - .chancedOutput('gtceu:plant_ball', 7500, 0) - .duration(20 * 20) - .EUt(GTValues.VA[GTValues.LV]) - - event.recipes.gtceu.centrifuge('tfg:centrifuge_sticky_resin') - .itemInputs('gtceu:sticky_resin') - .outputFluids(Fluid.of('gtceu:glue', 100)) - .itemOutputs('3x #forge:dusts/carbon') - .chancedOutput('gtceu:plant_ball', 5000, 0) - .duration(20 * 20) - .EUt(GTValues.VA[GTValues.LV]) - - event.recipes.gtceu.chemical_reactor(`tfg:treat_latex_plants_into_latex`) - .itemInputs('16x #tfg:rubber_plants', 'gtceu:tiny_sodium_hydroxide_dust') - .circuit(1) - .outputFluids(Fluid.of('tfg:latex', 1000)) - .duration(200) - .EUt(20) - - event.recipes.createSequencedAssembly([ - 'gtceu:ulv_voltage_coil', - ], 'gtceu:magnetic_iron_rod', [ - event.recipes.createDeploying('gtceu:magnetic_iron_rod', ['gtceu:magnetic_iron_rod', '#forge:fine_wires/lead']) - ]).transitionalItem('gtceu:magnetic_iron_rod').loops(32).id('tfg:sequenced_assembly/ulv_voltage_coil') - - //#endregion - - //#region Steam Bloomery - - event.recipes.gtceu.steam_bloomery('steam_raw_iron_bloom_coal') - .itemInputs('#forge:ingots/iron', '#tfc:steam_bloomery_basic_fuels') - .itemOutputs('tfc:raw_iron_bloom') - .duration(2400) - .EUt(2) - - event.recipes.gtceu.steam_bloomery('steam_raw_iron_bloom_coalcoke') - .itemInputs('2x #forge:ingots/iron', '#tfc:blast_furnace_fuel') - .itemOutputs('2x tfc:raw_iron_bloom') - .duration(2400) - .EUt(2) - - forEachMaterial(material => { - - const tfcProperty = material.getProperty(TFGPropertyKey.TFC_PROPERTY) - if (tfcProperty === null) - return; - - const outputMaterial = tfcProperty.getOutputMaterial() === null ? material : tfcProperty.getOutputMaterial() - if (outputMaterial === GTMaterials.Iron) { - event.recipes.gtceu.steam_bloomery(`steam_raw_iron_bloom_coal_${material.getName()}`) - .itemInputs(ChemicalHelper.get(TagPrefix.dust, material, 1), '#tfc:steam_bloomery_basic_fuels') - .itemOutputs('tfc:raw_iron_bloom') - .duration(2400) - .EUt(2) - - event.recipes.gtceu.steam_bloomery(`steam_raw_iron_bloom_coalcoke_${material.getName()}`) - .itemInputs(ChemicalHelper.get(TagPrefix.dust, material, 2), '#tfc:blast_furnace_fuel') - .itemOutputs('2x tfc:raw_iron_bloom') - .duration(2400) - .EUt(2) - } - }) - - //#endregion - - //#region Stick Packing - - event.recipes.gtceu.packer('tfg:stick_bunch') - .itemInputs('9x #forge:rods/wooden') - .circuit(5) - .itemOutputs('tfc:stick_bunch') - .duration(50) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.packer('tfg:stick_bundle') - .itemInputs('18x #forge:rods/wooden') - .circuit(8) - .itemOutputs('tfc:stick_bundle') - .duration(50) - .EUt(GTValues.VA[GTValues.ULV]) - - //#endregion // Fix Snow in Compressor @@ -1181,31 +152,7 @@ const registerGTCEURecipes = (event) => { .duration(20 * 10) .EUt(2) - //#region Changing tiers of decomposition recipes - - event.recipes.gtceu.electrolyzer('gtceu:decomposition_electrolyzing_clay') - .itemInputs('13x #forge:dusts/clay') - .itemOutputs('2x #forge:dusts/sodium', '1x #forge:dusts/lithium', '2x #forge:dusts/aluminium', '2x #forge:dusts/silicon') - .outputFluids(Fluid.of('minecraft:water', 6000)) - .duration(GTMaterials.Clay.getMass() * 13) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.centrifuge('gtceu:stone_dust_separation') - .itemInputs('gtceu:stone_dust') - .chancedOutput('#forge:small_dusts/quartzite', 2500, 0) - .chancedOutput('#forge:small_dusts/potassium_feldspar', 2500, 0) - .chancedOutput('#forge:small_dusts/marble', 2222, 0) - .chancedOutput('#forge:small_dusts/biotite', 1111, 0) - .chancedOutput('#forge:small_dusts/metal_mixture', 825, 80) - .chancedOutput('#forge:small_dusts/sodalite', 550, 55) - .duration(12 * 20) - .EUt(GTValues.VA[GTValues.HV]) - - - //#endregion - - //#region Tape - + // Tape event.shaped('gtceu:basic_tape', [ ' A ', 'ABA', @@ -1221,40 +168,8 @@ const registerGTCEURecipes = (event) => { .duration(100) .EUt(GTValues.VA[GTValues.ULV]) - //#endregion - //#region glowstone - event.recipes.gtceu.alloy_blast_smelter('abs:liquid_glowstone') - .itemInputs('#forge:dusts/gold', '#forge:dusts/redstone', '#forge:dusts/sulfur') - .outputFluids(Fluid.of('gtceu:glowstone', 288)) - .duration(20 * 60 / 1.3) - .EUt(GTValues.VA[GTValues.LV]) - .blastFurnaceTemp(1064) - .circuit(9) - //#endregion - - - //#region Large boilers fuel rebalance - - // Balance is based on adjusting to match singeblock boiler efficiency - // High Pressure Steam Solid Boiler produces 288,000 mB steam/coke - // High Pressure Steam Liquid Boiler produces 432 mB steam/creosote - // By Defualt: Large Bronze Boiler produces 50mB steam/creosote, 32000mB steam/coke - // This is a factor of 9x for solids, 8.64x for liquids - // Large boiler fuel burn time is multiplied by 9, resulting in less fuel used over time for the same amount of steam produced per tick - - event.findRecipes({ id: /^gtceu:large_boiler\/.*/, type: "gtceu:large_boiler" }).forEach(large_boiler_recipe => { - - let recipe_duration = large_boiler_recipe.json.getAsJsonPrimitive("duration").asInt - - large_boiler_recipe.json.remove("duration") - large_boiler_recipe.json.add("duration", recipe_duration * 9) - }) - - //#endregion - - - //#region GT Facades + // GT Facades event.remove({ id: 'gtceu:crafting/facade_cover' }) event.shapeless(Item.of('gtceu:facade_cover', 8, '{Facade: {Count:1b,id:"minecraft:stone"}}'), ['3x #forge:plates/iron', "#tfg:whitelisted/facades"]) @@ -1274,8 +189,8 @@ const registerGTCEURecipes = (event) => { result.nbt = facadeNBT return result; }).id('gtceu:facade_cover32'); - //#endregion + // Diamond gear event.recipes.gtceu.laser_engraver('tfg:diamond_gear') .itemInputs('4x #forge:plates/diamond') .itemOutputs('#forge:gears/diamond') @@ -1283,28 +198,6 @@ const registerGTCEURecipes = (event) => { .duration(200) .EUt(GTValues.VA[GTValues.MV]) - //#region Rose Quartz fabrication + decomposition - event.remove({ id: 'gtceu:electrolyzer/decomposition_electrolyzing_chromatic_compound' }); - event.remove({ id: 'gtceu:autoclave/autoclave_dust_rose_quartz_water' }) - event.remove({ id: 'gtceu:autoclave/autoclave_dust_rose_quartz_distilled' }) - - generateMixerRecipe(event, ['gtceu:nether_quartz_dust', '8x minecraft:redstone'], [], '9x gtceu:rose_quartz_dust', 2, [], 180, 60, 64, 'rose_quartz_dust_mixing') - generateMixerRecipe(event, ['gtceu:tiny_nether_quartz_dust', '8x gtceu:tiny_redstone_dust'], [], 'gtceu:rose_quartz_dust', 2, [], 20, 60, 64, 'tiny_rose_quartz_dust_mixing') - - event.recipes.gtceu.autoclave("autoclave_dust_rose_quartz_ice") - .itemInputs('#forge:dusts/rose_quartz') - .inputFluids(Fluid.of("gtceu:ice", 144)) - .itemOutputs("#forge:gems/rose_quartz") - .duration(2000) - .EUt(120) - - event.recipes.gtceu.electrolyzer('electrolyze_rose_quartz_dust') - .itemInputs('9x gtceu:rose_quartz_dust') - .itemOutputs('1x gtceu:nether_quartz_dust', '8x minecraft:redstone') - .duration(7 * 20) - .EUt(60) - //#endregion - //#region Multiblock Tanks event.recipes.gtceu.assembler('tfg:assembler/wood_wall') @@ -1342,13 +235,6 @@ const registerGTCEURecipes = (event) => { //#endregion - event.smelting('minecraft:iron_ingot', '#forge:ingots/wrought_iron') - .id('tfg:revert_wrought_iron_ingot') - - event.replaceOutput({ id: 'gtceu:distillery/distill_biomass_to_water' }, 'gtceu:wood_dust', 'gtceu:carbon_dust') - event.replaceOutput({ id: 'gtceu:distillery/distill_biomass_to_ethanol' }, 'gtceu:wood_dust', 'gtceu:carbon_dust') - event.replaceOutput({ id: 'gtceu:distillation_tower/distill_biomass' }, 'gtceu:wood_dust', 'gtceu:carbon_dust') - //#region Circuit Fixes global.ADD_CIRCUIT.forEach(item => { @@ -1357,55 +243,6 @@ const registerGTCEURecipes = (event) => { //#endregion - //#region Chemical Reaction for Solar Panel - - event.recipes.gtceu.chemical_reactor('tfg:chlorine_pentafluoride') - .inputFluids(Fluid.of('gtceu:fluorine', 5000), Fluid.of('gtceu:chlorine', 1000)) - .outputFluids(Fluid.of('tfg:chlorine_pentafluoride', 1000)) - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.chemical_reactor('tfg:chloryl_fluoride') - .inputFluids(Fluid.of('tfg:chlorine_pentafluoride', 1000), Fluid.of('minecraft:water', 2000)) - .outputFluids(Fluid.of('tfg:chloryl_fluoride', 1000), Fluid.of('gtceu:hydrofluoric_acid', 4000)) - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.large_chemical_reactor('tfg:solar_coolant') - .inputFluids(Fluid.of('tfg:chloryl_fluoride', 3000), Fluid.of('gtceu:helium_3', 8000), Fluid.of('minecraft:water', 8000)) - .outputFluids(Fluid.of('tfg:solar_coolant', 1000), Fluid.of('gtceu:hydrofluoric_acid', 3000), Fluid.of('gtceu:hypochlorous_acid', 3000)) - .duration(20 * 5) - .EUt(GTValues.VH[GTValues.EV]) - - event.recipes.gtceu.large_chemical_reactor('tfg:solar_coolant_t2') - .inputFluids(Fluid.of('tfg:solar_coolant', 8000), Fluid.of('gtceu:argon', 1000)) - .itemInputs(Item.of('#forge:aerogels')) - .outputFluids(Fluid.of('tfg:solar_coolant_tier2', 8000)) - .duration(20 * 15) - .EUt(GTValues.VH[GTValues.IV]) - - //#endregion - - event.replaceInput({ id: 'gtceu:shaped/powderbarrel' }, 'gtceu:wood_plate', '#tfc:lumber') - - event.shaped('gtceu:treated_wood_pressure_plate', [ - ' B ', - 'CDC', - ' E ' - ], { - B: '#tfc:hammers', - C: 'gtceu:treated_wood_slab', - D: '#forge:small_springs', - E: '#forge:tools/screwdrivers' - }).id('gtceu:shaped/treated_pressure_plate') - - event.recipes.gtceu.assembler('gtceu:treated_pressure_plate') - .itemInputs('#forge:small_springs', '2x gtceu:treated_wood_slab') - .itemOutputs('gtceu:treated_wood_pressure_plate') - .circuit(3) - .duration(50) - .EUt(2) - // Matches event.shapeless('4x gtceu:matches', ['#forge:dusts/phosphorus', 'tfc:glue', '4x #forge:bolts/wood']) @@ -1417,21 +254,6 @@ const registerGTCEURecipes = (event) => { event.shapeless(Item.of('gtceu:matchbox', '{usesLeft:8}'), ['minecraft:paper', '8x gtceu:matches']) .id('tfg:shapeless/matchbox') - - event.remove({ id: 'gtceu:chemical_reactor/nano_cpu_wafer' }) - event.remove({ id: 'gtceu:large_chemical_reactor/nano_cpu_wafer' }) - - event.recipes.gtceu.chemical_reactor('tfg:nano_cpu_wafer') - .inputFluids(Fluid.of('gtceu:tritiated_water', 576)) - .itemInputs('gtceu:cpu_wafer', '16x gtceu:carbon_fibers') - .itemOutputs('gtceu:nano_cpu_wafer') - .duration(20*60) - .EUt(GTValues.VA[GTValues.EV]) - .cleanroom(CleanroomType.CLEANROOM) - - event.remove({ id: 'gtceu:chemical_reactor/soda_ash_from_carbon_dioxide' }) - event.remove({ id: 'gtceu:large_chemical_reactor/soda_ash_from_carbon_dioxide' }) - event.recipes.gtceu.implosion_compressor('tfg:dense_lead_plate') .itemInputs('16x #forge:ingots/lead', '16x #forge:ingots/lead', '6x #forge:ingots/lead') .itemInputs('gtceu:industrial_tnt') @@ -1466,75 +288,7 @@ const registerGTCEURecipes = (event) => { F: 'gtceu:stainless_steel_huge_fluid_pipe' }).id('tfg:shaped/large_centrifuge') - event.recipes.gtceu.chemical_reactor('tfg:wood_ash_to_wood_gas_air') - .itemInputs('8x tfc:powder/wood_ash') - .inputFluids(Fluid.of('gtceu:air', 100)) - .outputFluids('gtceu:wood_gas 100') - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.LV]) - - event.remove({ id: 'gtceu:circuit_assembler/mainframe_iv_asmd_soldering_alloy'}) - event.remove({ id: 'gtceu:circuit_assembler/mainframe_iv'}) - event.remove({ id: 'gtceu:circuit_assembler/mainframe_iv_soldering_alloy'}) - event.remove({ id: 'gtceu:circuit_assembler/mainframe_iv_asmd'}) - - event.recipes.gtceu.circuit_assembler('tfg:circuit_assembler/mainframe_iv') - .itemInputs('2x gtceu:aluminium_frame', '2x gtceu:micro_processor_computer', '8x #gtceu:inductors', '16x #gtceu:capacitors', 'gtceu:nano_cpu_chip', '16x gtceu:annealed_copper_single_wire') - .inputFluids(Fluid.of('gtceu:tin', 576)) - .itemOutputs('gtceu:micro_processor_mainframe') - .duration(20 * 40) - .EUt(GTValues.VA[GTValues.HV]) - .cleanroom(CleanroomType.CLEANROOM) - - event.recipes.gtceu.circuit_assembler('tfg:circuit_assembler/mainframe_iv_soldering_alloy') - .itemInputs('2x gtceu:aluminium_frame', '2x gtceu:micro_processor_computer', '8x #gtceu:inductors', '16x #gtceu:capacitors', 'gtceu:nano_cpu_chip', '16x gtceu:annealed_copper_single_wire') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 288)) - .itemOutputs('gtceu:micro_processor_mainframe') - .duration(20 * 40) - .EUt(GTValues.VA[GTValues.HV]) - .cleanroom(CleanroomType.CLEANROOM) - - event.recipes.gtceu.circuit_assembler('tfg:circuit_assembler/mainframe_iv_asmd') - .itemInputs('2x gtceu:aluminium_frame', '2x gtceu:micro_processor_computer', '2x gtceu:advanced_smd_inductor', '4x gtceu:advanced_smd_capacitor', 'gtceu:nano_cpu_chip', '16x gtceu:annealed_copper_single_wire') - .inputFluids(Fluid.of('gtceu:tin', 576)) - .itemOutputs('gtceu:micro_processor_mainframe') - .duration(20 * 20) - .EUt(GTValues.VA[GTValues.HV]) - .cleanroom(CleanroomType.CLEANROOM) - - event.recipes.gtceu.circuit_assembler('tfg:circuit_assembler/mainframe_iv_asmd_soldering_alloy') - .itemInputs('2x gtceu:aluminium_frame', '2x gtceu:micro_processor_computer', '2x gtceu:advanced_smd_inductor', '4x gtceu:advanced_smd_capacitor', 'gtceu:nano_cpu_chip', '16x gtceu:annealed_copper_single_wire') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 288)) - .itemOutputs('gtceu:micro_processor_mainframe') - .duration(20 * 20) - .EUt(GTValues.VA[GTValues.HV]) - .cleanroom(CleanroomType.CLEANROOM) - - // Buttons - removeCutterRecipe(event, 'blackstone_button') - removeCutterRecipe(event, 'blackstone_button_water') - removeCutterRecipe(event, 'blackstone_button_distilled_water') - removeCutterRecipe(event, 'cut_polished_blackstone_brickslab_into_button') - removeCutterRecipe(event, 'cut_polished_blackstone_brickslab_into_button_water') - removeCutterRecipe(event, 'cut_polished_blackstone_brickslab_into_button_distilled_water') - - event.recipes.gtceu.cutter('tfg:blackstone_button') - .itemInputs('minecraft:polished_blackstone_pressure_plate') - .itemOutputs('6x minecraft:polished_blackstone_button') - .EUt(7) - .duration(100) - - - event.replaceOutput({ id: 'gtceu:cutter/bamboo_button' }, 'minecraft:bamboo_button', '6x minecraft:bamboo_button') - event.replaceOutput({ id: 'gtceu:cutter/bamboo_button_water' }, 'minecraft:bamboo_button', '6x minecraft:bamboo_button') - event.replaceOutput({ id: 'gtceu:cutter/bamboo_button_distilled_water' }, 'minecraft:bamboo_button', '6x minecraft:bamboo_button') - - event.replaceOutput({ id: 'gtceu:cutter/treated_button' }, 'gtceu:treated_wood_button', '6x gtceu:treated_wood_button') - event.replaceOutput({ id: 'gtceu:cutter/treated_button_water' }, 'gtceu:treated_wood_button', '6x gtceu:treated_wood_button') - event.replaceOutput({ id: 'gtceu:cutter/treated_button_distilled_water' }, 'gtceu:treated_wood_button', '6x gtceu:treated_wood_button') - - //#region Replace Recipe - + // ME Pattern Buffer event.remove({ id: 'gtceu:assembly_line/me_pattern_buffer_proxy' }) event.recipes.gtceu.assembly_line('tfg:me_pattern_buffer_proxy') .itemInputs( @@ -1557,88 +311,6 @@ const registerGTCEURecipes = (event) => { event.replaceInput({ id: 'gtceu:assembly_line/me_pattern_buffer' }, 'ae2:pattern_provider', '3x expatternprovider:ex_pattern_provider') event.replaceInput({ id: 'gtceu:assembly_line/me_pattern_buffer' }, 'ae2:interface', '3x expatternprovider:oversize_interface') - event.replaceInput({ id: 'gtceu:shaped/large_combustion_engine' }, '#gtceu:circuits/iv', '#gtceu:circuits/ev') - event.replaceInput({ id: 'gtceu:shaped/nano_chestplate_advanced' }, '#gtceu:circuits/iv', '#gtceu:circuits/ev') - event.replaceInput({ id: 'gtceu:assembler/ev_large_miner' }, '#gtceu:circuits/iv', '#gtceu:circuits/ev') - - // the recycling fix only works if the addMaterialInfo() is on the shaped recipe, NOT the assembler - removeMaceratorRecipe(event, 'macerate_palladium_substation') - event.recipes.gtceu.shaped('gtceu:palladium_substation', [ - 'AAA', - ' B ', - 'AAA' - ], { - A: ChemicalHelper.get(TagPrefix.plate, GTMaterials.Palladium, 1), - B: ChemicalHelper.get(TagPrefix.frameGt, GTMaterials.Ultimet, 1) - }).addMaterialInfo().id('tfg:shaped/casing_palladium_substation') - - event.recipes.gtceu.assembler('casing_palladium_substation') - .itemInputs( - ChemicalHelper.get(TagPrefix.plate, GTMaterials.Palladium, 6), - ChemicalHelper.get(TagPrefix.frameGt, GTMaterials.Ultimet, 1) - ) - .itemOutputs('gtceu:palladium_substation') - .duration(20 * 2.5) - .circuit(6) - .EUt(GTValues.VA[GTValues.LV]) - - - removeMaceratorRecipe(event, 'macerate_power_substation') - event.recipes.gtceu.shaped('gtceu:power_substation', [ - 'ABA', - 'CDC', - 'ABA' - ], { - A: 'gtceu:lapotron_crystal', - B: 'gtceu:mpic_chip', - C: '#gtceu:circuits/ev', - D: 'gtceu:palladium_substation' - }).addMaterialInfo().id('gtceu:shaped/power_substation') - - event.replaceInput({ id: 'gtceu:assembler/field_generator_hv' }, 'gtceu:quantum_eye', 'tfg:cryo_fluix_pearl') - event.replaceInput({ id: 'gtceu:assembler/field_generator_ev' }, 'minecraft:nether_star', 'gtceu:quantum_eye') - event.replaceInput({ id: 'gtceu:assembler/field_generator_iv' }, 'gtceu:quantum_star', 'minecraft:nether_star') - - event.recipes.gtceu.shaped('gtceu:hv_field_generator', [ - 'ABA', - 'CDC', - 'ABA' - ], { - A: ChemicalHelper.get(TagPrefix.wireGtQuadruple, GTMaterials.MercuryBariumCalciumCuprate , 1), - B: ChemicalHelper.get(TagPrefix.plate, GTMaterials.StainlessSteel, 1), - C: '#gtceu:circuits/hv', - D: 'tfg:cryo_fluix_pearl' - }).addMaterialInfo().id('gtceu:shaped/field_generator_hv') - - event.recipes.gtceu.shaped('gtceu:ev_field_generator', [ - 'ABA', - 'CDC', - 'ABA' - ], { - A: ChemicalHelper.get(TagPrefix.wireGtQuadruple, GTMaterials.UraniumTriplatinum , 1), - B: ChemicalHelper.get(TagPrefix.plateDouble, GTMaterials.Titanium, 1), - C: '#gtceu:circuits/ev', - D: 'gtceu:quantum_eye' - }).addMaterialInfo().id('gtceu:shaped/field_generator_ev') - - event.recipes.gtceu.shaped('gtceu:iv_field_generator', [ - 'ABA', - 'CDC', - 'ABA' - ], { - A: ChemicalHelper.get(TagPrefix.wireGtQuadruple, GTMaterials.SamariumIronArsenicOxide , 1), - B: ChemicalHelper.get(TagPrefix.plateDouble, GTMaterials.TungstenSteel, 1), - C: '#gtceu:circuits/iv', - D: 'minecraft:nether_star' - }).addMaterialInfo().id('gtceu:shaped/field_generator_iv') - - event.remove({ id: 'gtceu:chemical_bath/quantum_eye' }) - event.recipes.gtceu.chemical_bath('tfg:quantum_eye') - .itemInputs('tfg:cryo_fluix_pearl') - .inputFluids(Fluid.of('gtceu:radon', 250)) - .itemOutputs('gtceu:quantum_eye') - .duration(20 * 24) - .EUt(GTValues.VA[GTValues.HV]) // Modify Rotor Holder to require an Assembler @@ -1685,174 +357,7 @@ const registerGTCEURecipes = (event) => { .duration(20 * 6) .EUt(GTValues.VA[GTValues.UV]) - //# Circuit Board - event.replaceInput({ id: 'gtceu:assembler/phenolic_board' }, '#tfg:wood_dusts', 'tfg:high_density_treated_fiberboard') + event.replaceInput( {output: 'gtceu:nano_saber'}, 'gtceu:ruridit_plate', '#forge:plates/ostrum_iodide' ) - //#region New Tungsten Line - - event.remove({ id: 'gtceu:chemical_bath/tungstic_acid_from_scheelite' }) - event.remove({ id: 'gtceu:chemical_bath/tungstic_acid_from_tungstate' }) - event.remove({ id: 'gtceu:electrolyzer/tungstic_acid_electrolysis' }) - - // Transform Tungstate and Scheelite - - event.recipes.gtceu.large_chemical_reactor('tfg:scheelite_to_sodium_tungstate') - .itemInputs(Item.of('gtceu:scheelite_dust', 6)) - .itemInputs(Item.of('gtceu:soda_ash_dust', 6)) - .itemOutputs(Item.of('tfg:sodium_tungstate_dust', 6)) - .itemOutputs(Item.of('gtceu:calcite_dust', 6)) - .duration(20*12) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.large_chemical_reactor('tfg:tungstate_to_sodium_tungstate') - .itemInputs(Item.of('gtceu:tungstate_dust', 6)) - .itemInputs(Item.of('gtceu:soda_ash_dust', 6)) - .itemOutputs(Item.of('tfg:sodium_tungstate_dust', 6)) - .itemOutputs(Item.of('gtceu:lithium_dust', 2)) - .itemOutputs(Item.of('gtceu:carbon_dust', 1)) - .outputFluids(Fluid.of('gtceu:oxygen', 3000)) - .duration(20*12) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.chemical_bath('tfg:tungstate_to_tungsten_acid') - .inputFluids(Fluid.of('gtceu:hydrochloric_acid', 12000)) - .itemInputs(Item.of('tfg:sodium_tungstate_dust', 6)) - .itemOutputs(Item.of('gtceu:salt_dust', 48)) - .itemOutputs(Item.of('gtceu:tungstic_acid_dust', 6)) - .duration(20*24) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.chemical_bath('tfg:tungsten_acid_to_ammonium_tungstate') - .inputFluids(Fluid.of('gtceu:ammonia', 10000)) - .itemInputs(Item.of('gtceu:tungstic_acid_dust', 12)) - .itemOutputs(Item.of('tfg:ammonium_tungstate_dust', 1)) - .duration(20*16) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.evaporation_tower('tfg:ammonium_tungstate_to_apt_h') - .itemInputs(Item.of('tfg:ammonium_tungstate_dust', 1)) - .itemOutputs(Item.of('tfg:apt_gem', 1)) - .outputFluids(Fluid.of('gtceu:hydrogen', 500)) - .outputFluids(Fluid.of('gtceu:hydrogen', 500)) - .outputFluids(Fluid.of('gtceu:hydrogen', 500)) - .outputFluids(Fluid.of('gtceu:hydrogen', 500)) - .outputFluids(Fluid.of('gtceu:hydrogen', 500)) - .outputFluids(Fluid.of('gtceu:hydrogen', 500)) - .duration(20*90) - .EUt(GTValues.VHA[GTValues.HV]) - - event.recipes.gtceu.distillery('tfg:ammonium_tungstate_to_apt') - .itemInputs(Item.of('tfg:ammonium_tungstate_dust', 1)) - .itemOutputs(Item.of('tfg:apt_gem', 1)) - .outputFluids(Fluid.of('gtceu:hydrogen', 500)) - .duration(20*90) - .EUt(GTValues.VHA[GTValues.HV]) - - event.recipes.gtceu.pyrolyse_oven('tfg:apt') - .itemInputs(Item.of('tfg:apt_gem', 1)) - .itemOutputs(Item.of('tfg:tungsten_oxide_dust', 3)) - .outputFluids(Fluid.of('gtceu:ammonia', 10000)) - .duration(20*36) - .EUt(GTValues.VA[GTValues.EV]) - .circuit(1) - - event.recipes.gtceu.pyrolyse_oven('tfg:apt_nitrogen') - .itemInputs(Item.of('tfg:apt_gem', 1)) - .inputFluids(Fluid.of('gtceu:nitrogen', 1000)) - .itemOutputs(Item.of('tfg:tungsten_oxide_dust', 3)) - .outputFluids(Fluid.of('gtceu:ammonia', 10000)) - .duration(20*18) - .EUt(GTValues.VA[GTValues.EV]) - .circuit(2) - - event.recipes.gtceu.arc_furnace('tfg:tungsten_apt') - .itemInputs(Item.of('tfg:tungsten_oxide_dust', 1)) - .inputFluids(Fluid.of('gtceu:hydrogen', 1000)) - .itemOutputs(Item.of('gtceu:tungsten_dust', 1)) - .duration(20*2.8) - .EUt(GTValues.VA[GTValues.EV]) - - - // New Alloys - - event.recipes.gtceu.mixer('tfg:ostrum_iodide') - .itemInputs('1x #forge:dusts/iodine', '2x #forge:dusts/ostrum') - .itemOutputs('3x #forge:dusts/ostrum_iodide') - .duration(20 * 12) - .circuit(1) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.mixer('tfg:tungsten_bismuth_oxide_composite') - .itemInputs('2x #forge:dusts/bismuth', 'gtceu:tungsten_dust') - .inputFluids(Fluid.of('gtceu:oxygen', 3000)) - .itemOutputs('3x tfg:tungsten_bismuth_oxide_composite_dust') - .duration(20 * 12) - .EUt(GTValues.VA[GTValues.EV]) - - // Handcrafted artisanal concrete - - event.recipes.firmalife.mixing_bowl() - .ingredients(['#tfg:stone_dusts', '#tfg:stone_dusts', '#forge:dusts/marble', '#forge:dusts/gypsum'], Fluid.of('minecraft:water', 1000)) - .outputFluid(Fluid.of('gtceu:concrete', 1000)) - - event.recipes.firmalife.mixing_bowl() - .ingredients(['#tfg:stone_dusts', '#tfg:stone_dusts', '#tfg:stone_dusts', '#forge:dusts/clay'], Fluid.of('minecraft:water', 500)) - .outputFluid(Fluid.of('gtceu:concrete', 500)) - - event.recipes.firmalife.mixing_bowl() - .ingredients(['#tfg:stone_dusts', '#tfg:stone_dusts', '#tfg:stone_dusts', '#forge:dusts/calcite', '#forge:dusts/gypsum'], Fluid.of('minecraft:water', 1000)) - .outputFluid(Fluid.of('gtceu:concrete', 1000)) - - event.recipes.tfc.barrel_sealed(1000) - .inputFluid(Fluid.of('gtceu:concrete', 144)) - .inputItem('gtceu:wood_frame') - .outputItem('gtceu:light_concrete') - .id('tfg:barrel/light_concrete') - - event.recipes.tfc.barrel_sealed(1000) - .inputFluid(Fluid.of('gtceu:concrete', 96)) - .inputItem('tfg:rebar_support') - .outputItem('tfg:reinforced_light_concrete_support') - .id('tfg:barrel/reinforced_light_concrete_support') - - event.recipes.tfc.barrel_sealed(500) - .inputItem('gtceu:light_concrete') - .inputFluid(Fluid.of('tfc:black_dye', 18)) - .outputItem('gtceu:dark_concrete') - .id('tfg:barrel/dark_concrete') - - event.recipes.tfc.barrel_sealed(500) - .inputItem('tfg:light_concrete_support') - .inputFluid(Fluid.of('tfc:black_dye', 10)) - .outputItem('tfg:dark_concrete_support') - .id('tfg:barrel/dark_concrete_support') - - event.recipes.tfc.barrel_sealed(500) - .inputItem('tfg:reinforced_light_concrete_support') - .inputFluid(Fluid.of('tfc:black_dye', 10)) - .outputItem('tfg:reinforced_dark_concrete_support') - .id('tfg:barrel/reinforced_dark_concrete_support') - - event.recipes.gtceu.alloy_smelter('glass_bottle') - .itemInputs('#forge:dusts/glass') - .itemOutputs('tfc:silica_glass_bottle') - .notConsumable('gtceu:bottle_casting_mold') - .EUt(2) - .duration(20 * 5) - .category(GTRecipeCategories.INGOT_MOLDING) - - // Change - - // The 9x buff for large boiler recipes above does not apply to this for some reason, so it gets 3x duration for an effective 1/3 reduction instead - - event.forEachRecipe({ id: /gtceu:large_boiler\/(minecraft_ladder|gtceu_wood_frame)/ }, recipe => { - var newDuration = recipe.get("duration") - recipe.set("duration", newDuration*3) - }) - - event.forEachRecipe({ id: /gtceu:steam_boiler\/(minecraft_ladder|gtceu_wood_frame)/ }, recipe => { - var newDuration = recipe.get("duration") - recipe.set("duration", newDuration/3) - }) } diff --git a/kubejs/server_scripts/gregtech/recipes.machines.js b/kubejs/server_scripts/gregtech/recipes.machines.js index 78e59b039..d51f2945e 100644 --- a/kubejs/server_scripts/gregtech/recipes.machines.js +++ b/kubejs/server_scripts/gregtech/recipes.machines.js @@ -828,427 +828,38 @@ function registerGTCEuMachineRecipes(event) { B: 'gtceu:steam_machine_casing' }).addMaterialInfo().id('gtceu:shaped/steam_output_bus') - //#region Chipboard Composite - - event.recipes.gtceu.mixer('gtceu:chipboard_composite_wax') - .itemInputs('2x #tfg:wood_dusts', - '1x #forge:wax') - .itemOutputs('2x tfg:chipboard_composite') - .duration(100) - .EUt(GTValues.VA[GTValues.LV]) - - event.recipes.gtceu.mixer('gtceu:chipboard_composite_resin') - .itemInputs('4x #tfg:wood_dusts', - '1x gtceu:sticky_resin') - .itemOutputs('4x tfg:chipboard_composite') - .duration(100) - .EUt(GTValues.VA[GTValues.LV]) - - event.recipes.gtceu.mixer('gtceu:chipboard_composite_glue') - .itemInputs('2x #tfg:wood_dusts', - '1x tfc:glue') - .itemOutputs('2x tfg:chipboard_composite') - .duration(100) - .EUt(GTValues.VA[GTValues.LV]) - - - event.recipes.gtceu.mixer('gtceu:chipboard_composite_fluid_glue') - .itemInputs('1x #tfg:wood_dusts') - .inputFluids(Fluid.of('gtceu:glue', 25)) - .itemOutputs('1x tfg:chipboard_composite') - .duration(10) - .EUt(GTValues.VA[GTValues.LV]) - - event.recipes.gtceu.compressor('gtceu:wood_mdf') - .itemInputs('1x tfg:chipboard_composite') - .itemOutputs('gtceu:wood_plate') - .duration(200) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.chemical_bath('gtceu:treated_chipboard_composite') - .itemInputs('1x tfg:chipboard_composite') - .inputFluids(Fluid.of('gtceu:creosote', 50)) - .itemOutputs('tfg:treated_chipboard_composite') - .duration(100) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.chemical_bath('gtceu:bath_high_density_treated_fiberboard') - .itemInputs('1x gtceu:wood_plate') - .inputFluids(Fluid.of('gtceu:creosote', 50)) - .itemOutputs('tfg:high_density_treated_fiberboard') - .duration(100) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.chemical_bath('gtceu:bath_treated_wood_dust') - .itemInputs('#tfg:wood_dusts') - .inputFluids(Fluid.of('gtceu:creosote', 50)) - .itemOutputs('gtceu:treated_wood_dust') - .duration(100) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.compressor('tfg:compressed_treated_chipboard_composite') - .itemInputs('tfg:treated_chipboard_composite') - .itemOutputs('tfg:high_density_treated_fiberboard') - .duration(200) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.assembler('tfg:resin_circuit_assembler') - .itemInputs('gtceu:wood_plate', '2x gtceu:sticky_resin') - .itemOutputs('gtceu:resin_circuit_board') - .duration(20 * 10) - .EUt(GTValues.VA[GTValues.ULV]) - - //#region New Casings - - event.recipes.gtceu.assembler('basic_solar_casing') - .itemInputs('gtceu:steel_machine_casing', 'tfg:photo_cell_t1') - .itemOutputs('8x tfg:casings/machine_casing_blue_solar_panel') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 288)) - .circuit(6) - .duration(2.5 * 20) - .EUt(16) - - event.recipes.gtceu.assembler('advanced_solar_casing') - .itemInputs('8x tfg:casings/machine_casing_blue_solar_panel', 'ad_astra:photovoltaic_etrium_cell') - .itemOutputs('8x tfg:casings/machine_casing_green_solar_panel') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 288)) - .circuit(6) - .duration(2.5 * 20) - .EUt(16) - - event.recipes.gtceu.assembler('elite_solar_casing') - .itemInputs('8x tfg:casings/machine_casing_green_solar_panel', 'ad_astra:photovoltaic_vesnium_cell') - .itemOutputs('8x tfg:casings/machine_casing_red_solar_panel') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 288)) - .circuit(6) - .duration(2.5 * 20) - .EUt(16) - - event.recipes.gtceu.assembler('iron_desh_casing') - .itemInputs(ChemicalHelper.get(TagPrefix.plate, GTMaterials.Steel, 6), 'gtceu:desh_frame') - .itemOutputs('2x tfg:casings/machine_casing_iron_desh') - .circuit(6) - .duration(2.5 * 20) - .EUt(16) - - event.recipes.gtceu.assembler('steel_machine_casing') - .itemInputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 4)) - .itemOutputs('gtceu:steel_machine_casing') - .circuit(6) - .duration(2.5 * 20) - .EUt(16) - - event.recipes.gtceu.assembler('tfg:casings/machine_casing_stainless_evaporation') - .itemInputs('gtceu:clean_machine_casing', '4x gtceu:annealed_copper_double_wire') - .inputFluids(Fluid.of('gtceu:polyvinyl_chloride', 288)) - .itemOutputs('tfg:casings/machine_casing_stainless_evaporation') - .circuit(6) - .duration(2.5 * 20) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.assembler('tfg:casings/machine_casing_mars') - .itemInputs('gtceu:clean_machine_casing', '4x #forge:double_wires/kanthal') - .inputFluids(Fluid.of('gtceu:polybenzimidazole', 288)) - .itemOutputs('tfg:casings/machine_casing_mars') - .circuit(6) - .duration(2.5 * 20) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.assembler('gtceu:atomic_casing') - .itemInputs('4x #forge:dense_plates/lead', '2x #forge:plates/rtm_alloy', '#forge:frames/titanium') - .inputFluids(Fluid.of('gtceu:polyvinyl_butyral', 288)) - .itemOutputs('2x gtceu:atomic_casing') - .circuit(6) - .duration(2.5 * 20) - .EUt(GTValues.VA[GTValues.HV]) - - //#endregion - - //#region Large Solar Panel - - event.shaped( - 'gtceu:large_solar_panel', - ['WSW', 'TZT', 'WUW'], - { - S: 'tfg:photo_cell_t1', - Z: 'ad_astra:solar_panel', - W: '#gtceu:circuits/ev', - U: '#forge:gears/rocket_alloy_t1', - T: '#forge:gears/desh' - } - ).id('gtceu:shaped/large_solar_panel') - - event.shaped( - 'gtceu:large_solar_panel_tier2', - ['WSW', 'TZT', 'WUW'], - { - S: 'ad_astra:photovoltaic_etrium_cell', - Z: 'gtceu:large_solar_panel', - W: '#gtceu:circuits/iv', - U: '#forge:gears/rocket_alloy_t1', - T: '#forge:gears/desh' - } - ).id('gtceu:shaped/large_solar_panel_tier2') - - event.shaped( - 'gtceu:large_solar_panel_tier3', - ['WSW', 'TZT', 'WUW'], - { - S: 'ad_astra:photovoltaic_vesnium_cell', - Z: 'gtceu:large_solar_panel_tier2', - W: '#gtceu:circuits/luv', - U: '#forge:gears/rocket_alloy_t1', - T: '#forge:gears/desh' - } - ).id('gtceu:shaped/large_solar_panel_tier3') - - event.recipes.gtceu.chemical_reactor('advanced_photovoltaic_cell') - .itemInputs('8x tfg:photo_cell_t1', - '6x #forge:dusts/vanadium_gallium', - '#forge:insulation_t2/sheet') - .inputFluids(Fluid.of('gtceu:helium_3', 1000)) - .itemOutputs('8x ad_astra:photovoltaic_etrium_cell') - .duration(20 * 10) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.chemical_reactor('expert_photovoltaic_cell') - .itemInputs('8x ad_astra:photovoltaic_etrium_cell', - '6x gtceu:energium_dust', - '#forge:insulation_t3/sheet') - .inputFluids(Fluid.of('tfg:cryogenized_fluix', 1000)) - .itemOutputs('8x ad_astra:photovoltaic_vesnium_cell') - .duration(20 * 10) - .EUt(GTValues.VA[GTValues.IV]) - - // LSP Generating recipes - - // Solar T1 - - event.recipes.gtceu.large_solar_panel('solar_panel_t1_emergency') - .chancedInput('tfg:photo_cell_t1', 100, 0) - .duration(20 * 20) - .daytime(false) - .dimension('ad_astra:moon') - .EUt(-((GTValues.V[GTValues.HV])), 2) - .circuit(1) - - event.recipes.gtceu.large_solar_panel('solar_panel_t1') - .notConsumable('tfg:photo_cell_t1') - .perTick(true) - .chancedFluidInput('tfg:compressed_trimix_3 4', 5000, 0) - .perTick(false) - .duration(20 * 20) - .daytime(false) - .dimension('ad_astra:moon') - .EUt(-(GTValues.V[GTValues.EV]), 2) - .circuit(2) - - // Solar T2 - - event.recipes.gtceu.large_solar_panel_tier2('solar_panel_t2_emergency') - .chancedInput('ad_astra:photovoltaic_etrium_cell', 100, 0) - .duration(20 * 20) - .daytime(false) - .dimension('ad_astra:moon') - .EUt(-(GTValues.V[GTValues.EV]), 2) - .circuit(1) - - event.recipes.gtceu.large_solar_panel_tier2('solar_panel_t2_strong') - .notConsumable('ad_astra:photovoltaic_etrium_cell') - .perTick(true) - .chancedFluidInput('tfg:solar_coolant 10', 5000, 0) - .inputFluids('tfg:cryogenized_fluix 4') - .outputFluids('tfg:fluix 1') - .perTick(false) - .duration(20 * 20) - .daytime(false) - .dimension('ad_astra:moon') - .EUt(-(GTValues.V[GTValues.IV]), 2) - .circuit(2) - - event.recipes.gtceu.large_solar_panel_tier2('solar_panel_t2_cheap') - .notConsumable('ad_astra:photovoltaic_etrium_cell') - .perTick(true) - .inputFluids('tfg:compressed_trimix_3 1') - .perTick(false) - .duration(20 * 20) - .daytime(false) - .dimension('ad_astra:moon') - .EUt(-(GTValues.V[GTValues.EV]), 2) - .circuit(3) - - // Solar T3 - - event.recipes.gtceu.large_solar_panel_tier3('solar_panel_t3_emergency') - .chancedInput('ad_astra:photovoltaic_vesnium_cell', 100, 0) - .duration(20 * 20) - .daytime(false) - .dimension('ad_astra:moon') - .EUt(-(GTValues.V[GTValues.IV]), 2) - .circuit(1) - - event.recipes.gtceu.large_solar_panel_tier3('solar_panel_t3_strong') - .notConsumable('ad_astra:photovoltaic_vesnium_cell') - .perTick(true) - .chancedFluidInput('tfg:solar_coolant_tier2 10', 5000, 0) - .inputFluids('tfg:cryogenized_fluix 4') - .outputFluids('tfg:fluix 1') - .perTick(false) - .duration(20 * 20) - .daytime(false) - .dimension('ad_astra:moon') - .EUt(-(GTValues.V[GTValues.LuV]), 2) - .circuit(2) - - event.recipes.gtceu.large_solar_panel_tier3('solar_panel_t3_cheap') - .notConsumable('ad_astra:photovoltaic_vesnium_cell') - .perTick(true) - .chancedFluidInput('tfg:solar_coolant 10', 5000, 0) - .inputFluids('tfg:cryogenized_fluix 4') - .outputFluids('tfg:fluix 1') - .perTick(false) - .duration(20 * 20) - .daytime(false) - .dimension('ad_astra:moon') - .EUt(-(GTValues.V[GTValues.IV]), 2) - .circuit(2) - - //#endregion - - //#region Mars Ore Line - - // Multiblock - - event.shaped('gtceu:ostrum_linear_accelerator', [ - 'USU', - 'WZW', - 'PTP' + // the recycling fix only works if the addMaterialInfo() is on the shaped recipe, NOT the assembler + removeMaceratorRecipe(event, 'macerate_palladium_substation') + event.recipes.gtceu.shaped('gtceu:palladium_substation', [ + 'AAA', + ' B ', + 'AAA' ], { - S: 'tfg:casings/machine_casing_vacuum_engine_intake', - Z: 'gtceu:iv_machine_hull', - W: '#gtceu:circuits/iv', - U: '#forge:double_plates/stellite_100', - T: '#forge:single_cables/platinum', - P: 'gtceu:iv_electric_pump' - } - ).id('gtceu:shaped/ostrum_linear_accelerator') + A: ChemicalHelper.get(TagPrefix.plate, GTMaterials.Palladium, 1), + B: ChemicalHelper.get(TagPrefix.frameGt, GTMaterials.Ultimet, 1) + }).addMaterialInfo().id('tfg:shaped/casing_palladium_substation') - event.recipes.gtceu.assembler('tfg:ostrum_harvester') + event.recipes.gtceu.assembler('casing_palladium_substation') .itemInputs( - '1x gtceu:ev_machine_hull', - '4x #gtceu:circuits/ev', - '4x gtceu:ev_electric_motor', - '4x #forge:rotors/black_steel', - '4x gtceu:ev_electric_pump', - '4x #forge:gears/desh') - .itemOutputs('gtceu:ostrum_harvester') - .duration(400) - .EUt(GTValues.VA[GTValues.EV]) - .circuit(2) + ChemicalHelper.get(TagPrefix.plate, GTMaterials.Palladium, 6), + ChemicalHelper.get(TagPrefix.frameGt, GTMaterials.Ultimet, 1) + ) + .itemOutputs('gtceu:palladium_substation') + .duration(20 * 2.5) + .circuit(6) + .EUt(GTValues.VA[GTValues.LV]) - event.recipes.gtceu.assembler('tfg:moon_dust_harvester') - .itemInputs( - '1x gtceu:hv_machine_hull', - '4x #gtceu:circuits/hv', - '4x gtceu:hv_electric_motor', - '4x #forge:rotors/titanium', - '4x gtceu:hv_electric_pump', - '4x #forge:gears/rocket_alloy_t1') - .itemOutputs('gtceu:moon_dust_harvester') - .duration(400) - .EUt(GTValues.VA[GTValues.HV]) - .circuit(2) - - // Vacuum Intake - - event.shaped('tfg:casings/machine_casing_vacuum_engine_intake', [ - 'USU', - 'WZW', - 'UTU' + + removeMaceratorRecipe(event, 'macerate_power_substation') + event.recipes.gtceu.shaped('gtceu:power_substation', [ + 'ABA', + 'CDC', + 'ABA' ], { - S: '#forge:tools/hammers', - T: '#forge:tools/wrenches', - W: '#forge:rotors/ultimet', - U: 'gtceu:ultimet_normal_item_pipe', - Z: 'gtceu:inert_machine_casing' - }).id('tfg:shaped/casing_machine_casing_vacuum_engine_intake') - - event.recipes.gtceu.assembler('tfg:casings/machine_casing_vacuum_engine_intake') - .itemInputs( - '2x #forge:rotors/ultimet', - '4x gtceu:ultimet_normal_item_pipe', - '1x gtceu:inert_machine_casing') - .itemOutputs('tfg:casings/machine_casing_vacuum_engine_intake') - .duration(50) - .EUt(GTValues.VH[GTValues.LV]) - .circuit(2) - - // Stainless Evaporation Tower - - event.recipes.gtceu.shaped('tfg:evaporation_tower', [ - 'TUT', - 'WZW', - 'TUT' - ], { - T: '#gtceu:circuits/iv', - W: 'gtceu:ev_electric_pump', - U: '#forge:double_wires/nichrome', - Z: 'gtceu:ev_machine_hull' - }).addMaterialInfo().id('tfg:shaped/evaporation_tower') - - //#endregion - - //#region Nuclear Controler - - event.shaped('deafission:fission_reactor_mk1', [ - 'TUT', - 'WZW', - 'TUT' - ], { - T: 'gtceu:atomic_casing', - W: '#gtceu:circuits/ev', - U: 'gtceu:hv_field_generator', - Z: 'gtceu:ev_machine_hull' - } - ).id('tfg:shaped/fission_reactor_mk1') - - event.shaped('gtceu:nuclear_fuel_factory', [ - 'TUT', - 'WZW', - 'TBT' - ], { - T: 'gtceu:atomic_casing', - W: '#gtceu:circuits/ev', - U: 'gtceu:ev_emitter', - Z: 'gtceu:ev_machine_hull', - B: 'gtceu:ev_robot_arm' - } - ).id('tfg:shaped/nuclear_fuel_factory') - - event.shaped('gtceu:heat_exchanger', [ - 'TUT', - 'WZW', - 'GBG' - ], { - T: 'gtceu:high_temperature_smelting_casing', - W: '#gtceu:circuits/ev', - U: 'gtceu:ev_sensor', - Z: 'gtceu:ev_machine_hull', - B: 'gtceu:ev_fluid_regulator', - G: '#forge:gears/ostrum_iodide' - } - ).id('tfg:shaped/heat_exchanger') - - event.shaped('tfg:nuclear_turbine', [ - 'CTC', - 'TZT', - 'BTB' - ], { - T: '#forge:gears/magnalium', - Z: 'gtceu:ev_machine_hull', - B: 'gtceu:ultimet_large_item_pipe', - C: '#gtceu:circuits/ev' - } - ).id('tfg:shaped/nuclear_turbine') + A: 'gtceu:lapotron_crystal', + B: 'gtceu:mpic_chip', + C: '#gtceu:circuits/ev', + D: 'gtceu:palladium_substation' + }).addMaterialInfo().id('gtceu:shaped/power_substation') } diff --git a/kubejs/server_scripts/gregtech/recipes.recycling.js b/kubejs/server_scripts/gregtech/recipes.recycling.js index 2e398078b..925f5f08f 100644 --- a/kubejs/server_scripts/gregtech/recipes.recycling.js +++ b/kubejs/server_scripts/gregtech/recipes.recycling.js @@ -140,25 +140,103 @@ function registerGTCEURecyclingRecipes(event) { .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) .EUt(GTValues.VA[GTValues.LV]) + // #region Fix TFC hanging sign metal dupe for Macerator and Arc Furnace - // Clean Foil pack - event.recipes.gtceu.macerator('gtceu:macerator/recycling/clean_foil_pack') - .itemInputs('tfg:clean_foil_pack') - .itemOutputs( - ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Aluminium, 1), - ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Polyethylene, 1) - ) - .duration(GTMaterials.Aluminium.getMass() * 1) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - .EUt(GTValues.VA[GTValues.ULV]) + const SIGN_METALS = [ + GTMaterials.Copper, + GTMaterials.Bronze, + GTMaterials.BlackBronze, + GTMaterials.BismuthBronze, + GTMaterials.WroughtIron, + GTMaterials.Steel, + GTMaterials.BlackSteel, + GTMaterials.RedSteel, + GTMaterials.BlueSteel + ]; - event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/clean_foil_pack') - .itemInputs('tfg:clean_foil_pack') - .itemOutputs( - ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Aluminium, 2), - ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Ash, 1) - ) - .duration(GTMaterials.Aluminium.getMass() * 1) - .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) - .EUt(GTValues.VA[GTValues.LV]) + SIGN_METALS.forEach(metal => { + // Arc furnace + global.TFC_WOOD_TYPES.forEach(wood => { + event.remove(`gtceu:arc_furnace/arc_wood/hanging_sign/${metal.getName()}/${wood}`) + event.recipes.gtceu.arc_furnace(`gtceu:arc_furnace/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) + .itemInputs(`tfc:wood/hanging_sign/${metal.getName()}/${wood}`) + .itemOutputs('gtceu:tiny_ash_dust') + .chancedOutput(ChemicalHelper.get(TagPrefix.nugget, metal, 1), 3750, 0) + .inputFluids(Fluid.of('gtceu:oxygen', 12)) + .duration(12) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + }) + + global.AFC_WOOD_TYPES.forEach(wood => { + event.recipes.gtceu.arc_furnace(`gtceu:arc_furnace/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) + .itemInputs(`afc:wood/hanging_sign/${metal.getName()}/${wood}`) + .itemOutputs('gtceu:tiny_ash_dust') + .chancedOutput(ChemicalHelper.get(TagPrefix.nugget, metal, 1), 3750, 0) + .inputFluids(Fluid.of('gtceu:oxygen', 12)) + .duration(12) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + }) + + // Macerator + global.TFC_HARDWOOD_TYPES.forEach(wood => { + removeMaceratorRecipe(event, `macerate_wood/hanging_sign/${metal.getName()}/${wood}`) + event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) + .itemInputs(`tfc:wood/hanging_sign/${metal.getName()}/${wood}`) + .itemOutputs('gtceu:hardwood_dust') + .chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0) + .duration(108) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + }) + + global.TFC_SOFTWOOD_TYPES.forEach(wood => { + removeMaceratorRecipe(event, `macerate_wood/hanging_sign/${metal.getName()}/${wood}`) + event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) + .itemInputs(`tfc:wood/hanging_sign/${metal.getName()}/${wood}`) + .itemOutputs('gtceu:wood_dust') + .chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0) + .duration(108) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + }) + + global.AFC_HARDWOOD_TYPES.forEach(wood => { + event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) + .itemInputs(`afc:wood/hanging_sign/${metal.getName()}/${wood}`) + .itemOutputs('gtceu:hardwood_dust') + .chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0) + .duration(108) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + }) + + global.AFC_SOFTWOOD_TYPES.forEach(wood => { + event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) + .itemInputs(`afc:wood/hanging_sign/${metal.getName()}/${wood}`) + .itemOutputs('gtceu:wood_dust') + .chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0) + .duration(108) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + }) + }) + // #endregion + + //#region support recycling + event.recipes.gtceu.macerator(`hardwood_support_to_dust`) + .itemInputs('#tfg:hardwood_supports') + .itemOutputs('gtceu:hardwood_dust') + .duration(150) + .EUt(2) + .category(GTRecipeCategories.MACERATOR_RECYCLING); + + event.recipes.gtceu.macerator(`softwood_support_to_dust`) + .itemInputs('#tfg:softwood_supports') + .itemOutputs('gtceu:wood_dust') + .duration(150) + .EUt(2) + .category(GTRecipeCategories.MACERATOR_RECYCLING); + //#endregion } \ No newline at end of file diff --git a/kubejs/server_scripts/gregtech/recipes.removes.js b/kubejs/server_scripts/gregtech/recipes.removes.js index 807c26883..6377deb5c 100644 --- a/kubejs/server_scripts/gregtech/recipes.removes.js +++ b/kubejs/server_scripts/gregtech/recipes.removes.js @@ -659,6 +659,8 @@ function removeGTCEURecipes(event) { event.remove({ id: 'gtceu:assembler/assemble_purpur_into_stair' }) event.remove({ id: 'gtceu:assembler/stonecutter' }) + event.remove({ id: 'gtceu:centrifuge/decomposition_centrifuging__blaze' }) + event.remove({ id: 'gtceu:chemical_reactor/ghast_tear_separation' }) event.remove({ id: 'gtceu:assembler/assemble_brick_into_stair' }) @@ -689,6 +691,8 @@ function removeGTCEURecipes(event) { //event.remove({ id: 'gtceu:distillation_tower/distill_liquid_nether_air' }) event.remove({ id: 'gtceu:centrifuge/decomposition_centrifuging__fireclay' }) + event.remove({ id: 'gtceu:arc_furnace/arc_firebricks' }) + event.remove({ id: 'gtceu:macerator/macerate_firebricks' }) event.remove({ id: 'gtceu:centrifuge/decomposition_centrifuging__ender_eye' }) event.remove({ id: 'gtceu:smelting/sticky_resin_from_slime' }) @@ -813,6 +817,13 @@ function removeGTCEURecipes(event) { event.remove({ id: 'gtceu:ore_washer/wash_plutonium_pure_dust_to_dust' }) event.remove({ id: 'gtceu:ore_washer/wash_plutonium_dirty_dust_to_dust' }) event.remove({ id: 'gtceu:forge_hammer/hammer_plutonium_refined_ore_to_dust' }) + + + event.remove({ id: 'gtceu:electrolyzer/decomposition_electrolyzing_chromatic_compound' }); + + + event.remove({ id: 'gtceu:chemical_reactor/soda_ash_from_carbon_dioxide' }) + event.remove({ id: 'gtceu:large_chemical_reactor/soda_ash_from_carbon_dioxide' }) } function removeMaceratorRecipe(event, id) { diff --git a/kubejs/server_scripts/gregtech/recipes.tfcmetals.js b/kubejs/server_scripts/gregtech/recipes.tfcmetals.js deleted file mode 100644 index 8d78aad7f..000000000 --- a/kubejs/server_scripts/gregtech/recipes.tfcmetals.js +++ /dev/null @@ -1,109 +0,0 @@ -// priority: 0 -"use strict"; - -/** - * @param {Internal.RecipesEventJS} event - */ -function registerGTCEuTFCMetalsRecipes(event) { - //#region LV hull - - event.replaceInput('gtceu:shaped/lv_machine_hull', '#forge:plates/wrought_iron', '#forge:plates/red_steel') - - //#endregion - - //#region make colored steel a bit easier to compensate - - event.recipes.gtceu.arc_furnace('tfg:black_steel_dust_to_ingot') - .itemInputs('gtceu:black_steel_dust') - .itemOutputs('tfc:metal/ingot/black_steel') - .inputFluids(Fluid.of('gtceu:oxygen', 72)) - .duration(500) - .EUt(24) - - event.recipes.gtceu.arc_furnace('tfg:red_steel_dust_to_ingot') - .itemInputs('gtceu:red_steel_dust') - .itemOutputs('tfc:metal/ingot/red_steel') - .inputFluids(Fluid.of('gtceu:oxygen', 72)) - .duration(700) - .EUt(GTValues.VA[GTValues.LV]) - - event.recipes.gtceu.arc_furnace('tfg:blue_steel_dust_to_ingot') - .itemInputs('gtceu:blue_steel_dust') - .itemOutputs('tfc:metal/ingot/blue_steel') - .inputFluids(Fluid.of('gtceu:oxygen', 72)) - .duration(700) - .EUt(GTValues.VA[GTValues.LV]) - - //#endregion - - //#region add regular furnace recipes for other tfc alloys - - event.remove({ id: 'gtceu:electric_blast_furnace/blast_bismuth_bronze' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_bismuth_bronze_gas' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_black_bronze' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_black_bronze_gas' }) - event.remove({ id: 'gtceu:vacuum_freezer/cool_hot_black_bronze_ingot' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_sterling_silver' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_sterling_silver_gas' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_rose_gold' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_rose_gold_gas' }) - - event.smelting('gtceu:bismuth_bronze_ingot', '#forge:dusts/bismuth_bronze') - .id('tfg:smelting/bismuth_bronze_ingot') - event.smelting('gtceu:black_bronze_ingot', '#forge:dusts/black_bronze') - .id('tfg:smelting/black_bronze_ingot') - event.smelting('gtceu:sterling_silver_ingot', '#forge:dusts/sterling_silver') - .id('tfg:smelting/sterling_silver_ingot') - event.smelting('gtceu:rose_gold_ingot', '#forge:dusts/rose_gold') - .id('tfg:smelting/rose_gold_ingot') - - //#endregion - - // red alloy, because crucible always makes 4+1=5 - - event.recipes.gtceu.alloy_blast_smelter('red_alloy') - .itemInputs('1x gtceu:copper_dust', '4x minecraft:redstone') - .outputFluids(Fluid.of('gtceu:red_alloy', 720)) - .circuit(5) - .duration(75) - .EUt(GTValues.VA[GTValues.LV]) - - event.remove({ id: 'gtceu:mixer/red_alloy' }) - // incorrect on purpose to prevent a greate duplicate recipe (the id becomes mixer/mixer/red_alloy) - event.recipes.gtceu.mixer('gtceu:mixer/red_alloy') - .itemInputs('1x gtceu:copper_dust', '4x minecraft:redstone') - .itemOutputs('5x gtceu:red_alloy_dust') - .circuit(2) - .duration(100) - .EUt(7) - - event.recipes.gtceu.centrifuge('red_alloy_separation') - .itemInputs('5x gtceu:red_alloy_dust') - .itemOutputs('1x gtceu:copper_dust', '4x minecraft:redstone') - .duration(900) - .EUt(30) - - event.recipes.gtceu.alloy_smelter('copper_dust_and_redstone_dust_into_red_alloy') - .itemInputs('1x gtceu:copper_dust', '4x minecraft:redstone') - .itemOutputs('5x gtceu:red_alloy_ingot') - .duration(50) - .EUt(16) - - event.recipes.gtceu.alloy_smelter('annealed_copper_dust_and_redstone_dust_into_red_alloy') - .itemInputs('1x gtceu:annealed_copper_dust', '4x minecraft:redstone') - .itemOutputs('5x gtceu:red_alloy_ingot') - .duration(50) - .EUt(16) - - event.recipes.gtceu.alloy_smelter('copper_ingot_and_redstone_dust_into_red_alloy') - .itemInputs('1x minecraft:copper_ingot', '4x minecraft:redstone') - .itemOutputs('5x gtceu:red_alloy_ingot') - .duration(50) - .EUt(16) - - event.recipes.gtceu.alloy_smelter('annealed_copper_ingot_and_redstone_dust_into_red_alloy') - .itemInputs('1x gtceu:annealed_copper_ingot', '4x minecraft:redstone') - .itemOutputs('5x gtceu:red_alloy_ingot') - .duration(50) - .EUt(16) -} diff --git a/kubejs/server_scripts/gregtech/tags.js b/kubejs/server_scripts/gregtech/tags.js index 41fc339d0..da08ef709 100644 --- a/kubejs/server_scripts/gregtech/tags.js +++ b/kubejs/server_scripts/gregtech/tags.js @@ -13,10 +13,6 @@ function registerGTCEUItemTags(event) { event.add("c:hidden_from_recipe_viewers", item); }); - global.GTCEU_ARMORS.forEach((item) => { - event.add("minecraft:trimmable_armor", item); - }); - // Добавление тега EMI для скрытия всех руд event.add("c:hidden_from_recipe_viewers", "#forge:ores"); @@ -25,20 +21,10 @@ function registerGTCEUItemTags(event) { event.remove("minecraft:planks", "gtceu:wood_plate"); - event.add("tfg:sugars", "minecraft:sugar"); - event.add("tfg:sugars", "afc:birch_sugar"); - event.add("tfg:sugars", "afc:maple_sugar"); - global.MINECRAFT_DYE_NAMES.forEach((dyeName) => { event.remove("ae2:p2p_attunements/fluid_p2p_tunnel", `gtceu:${dyeName}_dye_bucket`); }); - // Piglin loved - event.add("minecraft:piglin_loved", "gtceu:tiny_pyrite_dust"); - event.add("minecraft:piglin_loved", "gtceu:poor_raw_pyrite"); - event.add("minecraft:piglin_loved", "gtceu:raw_pyrite"); - event.add("minecraft:piglin_loved", "gtceu:rich_raw_pyrite"); - event.remove("forge:gems", "gtceu:coke_gem"); // Rose Quartz Lens @@ -57,6 +43,7 @@ function registerGTCEUItemTags(event) { // @ts-expect-error According to KJS docs adding tags to tags is supported. event.add("gtceu:molds", "#gtceu:casting_molds", "#gtceu:extruder_molds", "gtceu:empty_mold"); + } /** @param {TagEvent.Block} event */ @@ -66,19 +53,7 @@ function registerGTCEUBlockTags(event) { event.removeAllTagsFrom(item); }); - event.add("minecraft:mineable/pickaxe", "#forge:ores"); - event.add("minecraft:needs_iron_tool", "#forge:ores"); - - // Collapse tags - event.add("tfc:can_collapse", "#forge:ores"); - event.add("tfc:can_start_collapse", "#forge:ores"); - event.add("tfc:can_trigger_collapse", "#forge:ores"); - event.add("c:hidden_from_recipe_viewers", "#forge:ores"); - - event.add("tfc:can_collapse", "#forge:raw_ore_blocks"); - event.add("tfc:can_start_collapse", "#forge:raw_ore_blocks"); - event.add("tfc:can_trigger_collapse", "#forge:raw_ore_blocks"); - event.add("c:hidden_from_recipe_viewers", "#forge:raw_ore_blocks"); + event.add('gtceu:mineable/pickaxe_or_wrench', 'gtceu:ulv_hermetic_casing'); event.remove("gtceu:cleanroom_doors", "#minecraft:wooden_doors"); event.add("gtceu:cleanroom_doors", "firmalife:sealed_door"); @@ -101,27 +76,6 @@ function registerGTCEUBlockTags(event) { event.add("gtceu:cleanroom_doors", "createdeco:zinc_door"); event.add("gtceu:cleanroom_doors", "createdeco:locked_zinc_door"); event.add("gtceu:cleanroom_doors", "ad_astra:steel_door"); - - // Let GT indicators be covered by snow - forEachMaterial((material) => { - if (material.hasProperty(PropertyKey.ORE)) { - const indicator = `gtceu:${material.getName()}_indicator`; - - event.add("tfg:dust_ore_indicators", indicator); - event.add("tfc:can_be_snow_piled", indicator); - event.add("tfc:can_be_ice_piled", indicator); - - if (material.hasProperty(PropertyKey.GEM)) { - const bud = `gtceu:${material.getName()}_bud_indicator`; - - event.add("tfg:bud_ore_indicators", bud); - event.add("tfc:can_be_snow_piled", bud); - event.add("tfc:can_be_ice_piled", bud); - - event.add("minecraft:mineable/pickaxe", bud); - } - } - }); } /** @param {TagEvent.Fluid} event */ @@ -131,6 +85,8 @@ function registerGTCEUFluidTags(event) { event.add("c:hidden_from_recipe_viewers", "gtceu:molten_black_steel"); event.add("c:hidden_from_recipe_viewers", "gtceu:molten_red_steel"); event.add("c:hidden_from_recipe_viewers", "gtceu:molten_blue_steel"); + event.add("c:hidden_from_recipe_viewers", "gtceu:molten_black_bronze"); + event.add("c:hidden_from_recipe_viewers", "gtceu:molten_bismuth_bronze"); event.add("c:hidden_from_recipe_viewers", "gtceu:damascus_steel"); event.add("c:hidden_from_recipe_viewers", "gtceu:blaze"); event.add("c:hidden_from_recipe_viewers", "gtceu:thorium"); diff --git a/kubejs/server_scripts/handglider/recipes.js b/kubejs/server_scripts/handglider/recipes.js index 1cc17225b..94ca53617 100644 --- a/kubejs/server_scripts/handglider/recipes.js +++ b/kubejs/server_scripts/handglider/recipes.js @@ -4,6 +4,8 @@ const registerHandGliderRecipes = (event) => { event.remove({id: 'hangglider:glider_framework'}) + event.remove({id: 'hangglider:reinforced_hang_glider'}) + // Glider Framework event.shaped('hangglider:glider_framework', [ 'AAA', @@ -16,6 +18,7 @@ const registerHandGliderRecipes = (event) => { D: '#forge:rings' }).id('hangglider:shaped/glider_framework') + // Glider Wing event.shaped('hangglider:glider_wing', [ ' C', ' BA', @@ -25,4 +28,53 @@ const registerHandGliderRecipes = (event) => { B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.WroughtIron, 1), C: '#forge:rings' }).id('hangglider:shaped/glider_wing') -} \ No newline at end of file + + //Reinforced Hang Glider Stuff + event.shaped('hangglider:reinforced_hang_glider', [ + ' A ', + 'ABA', + ' C ' + ], { + A: 'sns:reinforced_fabric', + B: 'hangglider:hang_glider', + C: '#forge:rods/long/aluminium' + }).id('hangglider:shaped/reinforced_hang_glider') + + event.shaped('hangglider:reinforced_hang_glider', [ + ' A ', + ' B ', + ' C ' + ], { + A: '#tfg:lightweight_cloth', + B: 'hangglider:hang_glider', + C: '#forge:rods/long/aluminium' + }).id('hangglider:shaped/reinforced_hang_glider2') + + event.recipes.gtceu.assembler('tfg:hand_glider/reinforced_hang_glider') + .itemInputs('3x sns:reinforced_fabric', '1x hangglider:hang_glider', '1x #forge:rods/long/aluminium') + .circuit(3) + .itemOutputs(Item.of('hangglider:reinforced_hang_glider', "{Damage:0}")) + .duration(1200) + .EUt(30) + + event.recipes.gtceu.assembler('tfg:hand_glider/reinforced_hang_glider2') + .itemInputs('1x #tfg:lightweight_cloth', '1x hangglider:hang_glider', '1x #forge:rods/long/aluminium') + .circuit(3) + .itemOutputs(Item.of('hangglider:reinforced_hang_glider', "{Damage:0}")) + .duration(600) + .EUt(30) + + event.recipes.gtceu.assembler('tfg:hang_glider/reinforced_hang_glider_repairing') + .itemInputs('3x sns:reinforced_fabric', 'hangglider:reinforced_hang_glider') + .circuit(3) + .itemOutputs(Item.of('hangglider:reinforced_hang_glider', "{Damage:0}")) + .duration(800) + .EUt(30) + + event.recipes.gtceu.assembler('tfg:hang_glider/reinforced_hang_glider_repairing2') + .itemInputs('1x #tfg:lightweight_cloth', 'hangglider:reinforced_hang_glider') + .circuit(3) + .itemOutputs(Item.of('hangglider:reinforced_hang_glider', "{Damage:0}")) + .duration(400) + .EUt(30) +} diff --git a/kubejs/server_scripts/immersive_aircraft/recipes.js b/kubejs/server_scripts/immersive_aircraft/recipes.js index d31b3cb42..e66a4cf66 100644 --- a/kubejs/server_scripts/immersive_aircraft/recipes.js +++ b/kubejs/server_scripts/immersive_aircraft/recipes.js @@ -872,4 +872,52 @@ function registerImmersiveAircraftRecipes(event) { }).id('tfg:immersive_aircraft/mechanical_crafter/bamboo_hopper') //#endregion + + // Custom stuff + + //Scaffolding Frame + event.shaped('tfg:scaffolding_frame', + [ + ' A ', + 'ABA', + ' A ' + ], + { + A: '#forge:rods/wood', + B: '#forge:cloth' + }).id('tfg:shaped/scaffolding_frame'); + + //Airship Hull + event.shaped('tfg:airship_hull', [ + 'A B', + 'C C', + 'CCC' + ], { + A: '#forge:tools/screwdrivers', + B: '#forge:tools/hammers', + C: 'immersive_aircraft:hull' + }).id('tfg:shaped/airship_hull'); + event.recipes.gtceu.assembler('tfg:assembler/airship_hull') + .itemInputs('5x immersive_aircraft:hull') + .itemOutputs('tfg:airship_hull') + .duration(40) + .circuit(1) + .EUt(GTValues.VA[GTValues.ULV]); + + //Airship Balloon + event.shaped('tfg:airship_balloon', [ + 'ABA', + 'BAB', + 'ABA' + ], { + A: '#forge:string', + B: 'immersive_aircraft:sail' + }).id('tfg:shaped/airship_balloon') + + event.recipes.gtceu.assembler('tfg:assembler/airship_balloon') + .itemInputs('4x immersive_aircraft:sail', '4x #forge:string') + .itemOutputs('tfg:airship_balloon') + .duration(40) + .circuit(1) + .EUt(GTValues.VA[GTValues.ULV]) } \ No newline at end of file diff --git a/kubejs/server_scripts/main_server_script.js b/kubejs/server_scripts/main_server_script.js index d6a40181a..ac9749489 100644 --- a/kubejs/server_scripts/main_server_script.js +++ b/kubejs/server_scripts/main_server_script.js @@ -13,7 +13,6 @@ ServerEvents.tags('item', event => { registerAlekishipsItemTags(event) registerAsticorCartsItemTags(event) registerBeneathItemTags(event) - registerBetterEndItemTags(event) registerChalkItemTags(event); registerComputerCraftItemTags(event) registerConstructionWandItemTags(event) @@ -50,10 +49,10 @@ ServerEvents.tags('item', event => { registerSNSItemTags(event) registerSpeciesItemTags(event) registerTACZItemTags(event) - registerTFCAmbientalItemTags(event) registerTFCItemTags(event) registerTFCTextileItemTags(event) registerTFGItemTags(event) + registerTFGItemTagsNuclear(event) registerTFCLunchboxItemTags(event) registerVintageImprovementsItemTags(event) registerWABItemTags(event) @@ -91,6 +90,7 @@ ServerEvents.tags('block', event => { registerTACZBlockTags(event) registerTFCBlockTags(event) registerTFGBlockTags(event) + registerTFGBlockTagsNuclear(event) registerVintageImprovementsBlockTags(event) registerWABBlockTags(event) }) @@ -108,6 +108,7 @@ ServerEvents.tags('fluid', event => { registerFirmaLifeFluidTags(event) registerTFCFluidTags(event) registerTFGFluidTags(event) + registerTFGFluidTagsNuclear(event) registerVintageImprovementsFluidTags(event) }) @@ -122,20 +123,17 @@ ServerEvents.tags('worldgen/placed_feature', event => { // Remove default veins event.removeAll('tfc:in_biome/veins') - registerAdAstraPlacedFeatures(event) - registerTFCPlacedFeatures(event) registerTFGPlacedFeatures(event) }) ServerEvents.tags('worldgen/biome', event => { registerAdAstraBiomeTags(event) registerCreatePickyWheelsBiomeTags(event) - registerTFCBiomeTags(event) registerTFGBiomeTags(event) }) ServerEvents.tags('entity_type', event => { - registerAdAstraEntityTypeTags(event) + registerTFGEntityTypeTags(event) registerWABEntityTypeTags(event) }) @@ -177,7 +175,7 @@ TFCEvents.data(event => { */ LootJS.modifiers((event) => { registerAdAstraLoots(event) - registerGTCEULoots(event) + registerTFGOreLoots(event) registerLootrLoots(event) registerPrimitiveCreaturesLoots(event) registerSpeciesLoots(event) @@ -213,7 +211,6 @@ ServerEvents.recipes(event => { registerAE2NetworkAnalyzerRecipes(event) registerAE2WTLibRecipes(event) registerBeneathRecipes(event) - registerBetterEndRecipes(event) registerBuildingGadgetsRecipes(event) registerChalkRecipes(event); registerComfortsRecipes(event); @@ -267,6 +264,7 @@ ServerEvents.recipes(event => { registerTFCBetterBFRecipes(event) registerTFCLunchBoxRecipes(event) registerTFCGroomingStationRecipes(event) + registerTFCGurmanRecipes(event) registerTFGRecipes(event) registerTFCTextileRecipes(event) registerToolBeltRecipes(event) diff --git a/kubejs/server_scripts/minecraft/recipes.dyes.js b/kubejs/server_scripts/minecraft/recipes.dyes.js index 4a7c41962..0bc7e9350 100644 --- a/kubejs/server_scripts/minecraft/recipes.dyes.js +++ b/kubejs/server_scripts/minecraft/recipes.dyes.js @@ -25,14 +25,6 @@ function registerMinecraftDyeRecipes(event) { .duration(300) .EUt(4) .category(GTRecipeCategories.CHEM_DYES) - - event.recipes.gtceu.chemical_bath(`${dye}_bed`) - .itemInputs(`minecraft:white_bed`) - .inputFluids(Fluid.of(`tfc:${dye}_dye`, 216)) - .itemOutputs(`minecraft:${dye}_bed`) - .duration(300) - .EUt(4) - .category(GTRecipeCategories.CHEM_DYES) } //#endregion diff --git a/kubejs/server_scripts/minecraft/recipes.js b/kubejs/server_scripts/minecraft/recipes.js index 6f8b34cb3..acfe66bc3 100644 --- a/kubejs/server_scripts/minecraft/recipes.js +++ b/kubejs/server_scripts/minecraft/recipes.js @@ -10,26 +10,6 @@ const registerMinecraftRecipes = (event) => { removeMinecraftRecipes(event) registerMinecraftDyeRecipes(event) - //#region Выход: Земля, dirt - - event.recipes.gtceu.macerator('dirt_from_bio_chaff') - .itemInputs('gtceu:bio_chaff') - .itemOutputs('tfc:dirt/loam') - .duration(300) - .EUt(4) - - //#endregion - - //#region Выход: Стекло, glass - - event.recipes.gtceu.arc_furnace('glass_from_sand') - .itemInputs('#forge:sand') - .itemOutputs('2x minecraft:glass') - .duration(20) - .EUt(30) - - //#endregion - //#region Добавление, copper for (let i = 0; i < global.MINECRAFT_COPPER_BLOCKS_RECIPE_COMPONENTS.length; i++) { @@ -142,48 +122,6 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Бумага, paper - - event.recipes.gtceu.chemical_bath('paper_from_papyrus_distilled') - .itemInputs('tfc:papyrus') - .inputFluids(Fluid.of('gtceu:distilled_water', 100)) - .itemOutputs('4x tfc:soaked_papyrus_strip') - .duration(100) - .EUt(7) - - event.recipes.gtceu.chemical_bath('paper_from_papyrus') - .itemInputs('tfc:papyrus') - .inputFluids("#tfg:clean_water 100") - .itemOutputs('4x tfc:soaked_papyrus_strip') - .duration(100) - .EUt(7) - - event.recipes.gtceu.assembler('papyrus_strips') - .itemInputs('4x tfc:soaked_papyrus_strip') - .itemOutputs('minecraft:paper') - .circuit(1) - .duration(100) - .EUt(7) - - //#endregion - - //#region Выход: Сахар, sugar - - event.recipes.gtceu.centrifuge('sugar_from_sugarcane') - .itemInputs('tfc:food/sugarcane') - .inputFluids("#tfg:clean_water 600") - .itemOutputs('minecraft:sugar', 'gtceu:plant_ball') - .duration(800) - .EUt(6) - - event.recipes.gtceu.centrifuge('sugar_from_honey') - .itemInputs('firmalife:raw_honey') - .itemOutputs('minecraft:sugar') - .duration(400) - .EUt(6) - - //#endregion - //#region Выход: Блок сена, hay block event.recipes.gtceu.packer('hay_block') @@ -823,7 +761,6 @@ const registerMinecraftRecipes = (event) => { //#region Выход: Элитра, elytra - // Ну и херь я придумал, here's some bullshit i came up with event.recipes.gtceu.assembler('tfg:minecraft/elytra') .itemInputs('16x tfg:polycaprolactam_fabric', '16x #forge:foils/aluminium', '8x tfg:phantom_silk', '4x #forge:rings/aluminium', '2x #forge:rods/long/vanadium_steel', '2x #forge:small_springs/aluminium', '1x #forge:small_gears/aluminium') .circuit(4) @@ -861,16 +798,6 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Glowstone - - event.recipes.gtceu.mixer('gtceu:lv_glowstone') - .itemInputs('gtceu:gold_dust', 'minecraft:redstone', 'gtceu:sulfur_dust') - .itemOutputs('2x minecraft:glowstone_dust') - .circuit(8) - .duration(1200) - .EUt(30) - - //#endregion //#region Netherite leggings (for the lavaproof diving set) @@ -931,14 +858,6 @@ const registerMinecraftRecipes = (event) => { generateCutterRecipe(event, '#forge:double_plates/wrought_iron', 'minecraft:iron_door', 400, GTValues.VA[GTValues.LV], 'iron_door') - event.shaped('8x minecraft:ladder', [ - 'A A', - 'AAA', - 'A A' - ], { - A: '#forge:rods/wooden' - }).id('gtceu:shaped/ladder') - // #endregion // #region Calcite @@ -1018,19 +937,6 @@ const registerMinecraftRecipes = (event) => { event.smelting('tfc:glue', 'minecraft:magma_cream') .id('tfg:smelting/magma_cream_to_glue') - //#region Clay - event.shaped('minecraft:clay', [ - 'AA', - 'AA' - ], { - A: 'minecraft:clay_ball' - }) - .id('tfg:shaped/clay_balls_to_block') - - event.shapeless('4x minecraft:clay_ball', ['minecraft:clay']) - .id('tfg:shapeless/clay_block_to_balls') - - //#endregion //#region Mushrooms @@ -1091,7 +997,7 @@ const registerMinecraftRecipes = (event) => { //#region Glowing Ink Sacs event.recipes.gtceu.chemical_bath('minecraft:glow_inc_sac4') - .itemInputs("gtceu:thorium_dust", "4x #forge:dyes/black") + .itemInputs("gtceu:thorium_dust") .inputFluids(Fluid.of('gtceu:glowstone', 512)) .itemOutputs('16x minecraft:glow_ink_sac') .duration(20) diff --git a/kubejs/server_scripts/minecraft/tags.js b/kubejs/server_scripts/minecraft/tags.js index c9b1f4a86..938e0be90 100644 --- a/kubejs/server_scripts/minecraft/tags.js +++ b/kubejs/server_scripts/minecraft/tags.js @@ -26,67 +26,15 @@ const registerMinecraftItemTags = (event) => { event.add('tfg:bamboo_slabs', 'minecraft:bamboo_mosaic_slab') event.remove('minecraft:creeper_drop_music_discs', ['minecraft:music_disc_11']) - event.add('tfc:foods', 'minecraft:red_mushroom') - event.add('tfc:foods', 'minecraft:brown_mushroom') - event.add('tfc:foods', 'minecraft:glow_berries') - event.add('tfc:foods', 'minecraft:chorus_fruit') - event.add('tfc:foods', 'minecraft:popped_chorus_fruit') - - event.add('tfc:foods/vegetables', 'minecraft:red_mushroom') - event.add('tfc:foods/vegetables', 'minecraft:brown_mushroom') - event.add('tfc:foods/fruits', 'minecraft:glow_berries') - event.add('tfc:foods/fruits', 'minecraft:chorus_fruit') - event.add('tfc:foods/fruits', 'minecraft:popped_chorus_fruit') - - event.add('beneath:usable_in_juicer', 'minecraft:glow_berries') - event.add('beneath:usable_in_juicer', 'minecraft:chorus_fruit') - event.add('beneath:usable_in_juicer', 'minecraft:red_mushroom') - event.add('beneath:usable_in_juicer', 'minecraft:brown_mushroom') - - event.add('tfc:foods/usable_in_soup', 'minecraft:red_mushroom') - event.add('tfc:foods/usable_in_soup', 'minecraft:brown_mushroom') - event.add('tfc:foods/usable_in_soup', 'minecraft:glow_berries') - event.add('tfc:foods/usable_in_soup', 'minecraft:chorus_fruit') - event.add('tfc:foods/usable_in_soup', 'minecraft:popped_chorus_fruit') - - event.add('tfc:foods/usable_in_salad', 'minecraft:red_mushroom') - event.add('tfc:foods/usable_in_salad', 'minecraft:brown_mushroom') - event.add('tfc:foods/usable_in_salad', 'minecraft:glow_berries') - event.add('tfc:foods/usable_in_salad', 'minecraft:chorus_fruit') - event.add('tfc:foods/usable_in_salad', 'minecraft:popped_chorus_fruit') - - event.add('tfc:rabbit_food', 'minecraft:chorus_fruit') - event.add('tfc:rabbit_food', 'minecraft:popped_chorus_fruit') - - event.add('tfc:rock/raw', 'minecraft:deepslate') - event.add('tfc:rock/raw', 'minecraft:blackstone') - event.add('tfc:rock/raw', 'minecraft:dripstone_block') event.remove('forge:gems', 'minecraft:charcoal') event.remove('forge:gems', 'minecraft:coal') event.remove('forge:gems', 'minecraft:flint') - event.add('tfc:compost_greens', 'minecraft:red_mushroom_block') - event.add('tfc:compost_greens', 'minecraft:brown_mushroom_block') - event.add('tfc:compost_greens', 'minecraft:mushroom_stem') - event.add('tfc:compost_greens', 'minecraft:moss_block') - event.add('tfc:compost_greens_low', 'minecraft:moss_carpet') - event.add('tfc:compost_greens_low', 'minecraft:twisting_vines') - event.add('tfc:compost_greens_high', 'minecraft:pearlescent_froglight') - event.add('tfc:compost_greens_high', 'minecraft:verdant_froglight') - event.add('tfc:compost_greens_high', 'minecraft:ochre_froglight') - //event.add('tfc:moss', 'minecraft:moss_carpet') - event.remove('createaddition:plants', 'minecraft:moss_carpet') - event.add('tfc:colored_terracotta', 'minecraft:white_terracotta') event.add('tfc:bells', 'minecraft:bell') - event.add('tfc:plants', 'minecraft:spore_blossom') - - event.add('tfc:compost_greens', 'minecraft:nether_wart_block') - event.add('tfc:compost_greens', 'minecraft:warped_wart_block') - event.add('tfc:hematitic_sand', 'minecraft:red_sand') event.add('tfc:makes_black_dye', 'minecraft:ink_sac') @@ -95,13 +43,6 @@ const registerMinecraftItemTags = (event) => { event.add('create:blaze_burner_fuel/regular', 'minecraft:coal') event.add('create:blaze_burner_fuel/regular', 'minecraft:charcoal') - event.add('minecraft:wart_blocks', 'minecraft:mushroom_stem') - - event.add('forge:smooth_stone_slab', 'minecraft:polished_deepslate_slab') - event.add('forge:smooth_stone_slab', 'minecraft:polished_blackstone_slab') - event.add('forge:smooth_stone_slab', 'minecraft:polished_blackstone_brick_slab') - - event.add('tfc:rock/smooth', 'minecraft:smooth_stone') } const registerMinecraftBlockTags = (event) => { @@ -115,95 +56,4 @@ const registerMinecraftBlockTags = (event) => { // Теперь обсидиан сторадж блок event.add('forge:storage_blocks/obsidian', 'minecraft:obsidian') - //#region Nether blocks - - event.add('tfg:lush_ground_replaceable', 'minecraft:deepslate') - event.add('tfg:lush_ground_replaceable', 'minecraft:blackstone') - - event.add('tfc:rock/raw', 'minecraft:deepslate') - event.add('tfc:rock/raw', 'minecraft:blackstone') - event.add('tfc:rock/raw', 'minecraft:dripstone_block') - event.add('forge:cobblestone/normal', 'minecraft:cobbled_deepslate') - event.add('minecraft:lush_ground_replaceable', 'minecraft:blackstone') - event.add('beneath:nether_bush_plantable_on', 'minecraft:blackstone') - event.add('beneath:nether_bush_plantable_on', 'minecraft:deepslate') - event.add('beneath:nether_bush_plantable_on', 'minecraft:moss_block') - event.add('beneath:nether_bush_plantable_on', 'minecraft:dripstone_block') - event.add('minecraft:nether_carver_replaceables', 'minecraft:blackstone') - event.add('minecraft:nether_carver_replaceables', 'minecraft:deepslate') - event.add('minecraft:nether_carver_replaceables', 'minecraft:dripstone_block') - event.add('minecraft:frogs_spawnable_on', 'minecraft:deepslate') - event.add('minecraft:frogs_spawnable_on', 'minecraft:blackstone') - event.add('minecraft:frogs_spawnable_on', 'minecraft:dripstone_block') - event.add('minecraft:axolotls_spawnable_on', 'minecraft:deepslate') - event.add('minecraft:axolotls_spawnable_on', 'minecraft:dripstone_block') - event.add('tfc:grass_plantable_on', 'minecraft:moss_block') - event.add('tfc:creeping_plantable_on', 'minecraft:moss_block') - event.add('tfc:creeping_plantable_on', 'minecraft:deepslate') - event.add('tfc:creeping_plantable_on', 'minecraft:blackstone') - event.add('tfc:creeping_stone_plantable_on', 'minecraft:moss_block') - event.add('tfc:creeping_stone_plantable_on', 'minecraft:deepslate') - event.add('tfc:creeping_stone_plantable_on', 'minecraft:blackstone') - event.add('minecraft:base_stone_nether', 'minecraft:deepslate') - event.add('minecraft:base_stone_nether', 'minecraft:blackstone') - event.add('minecraft:base_stone_nether', 'minecraft:dripstone_block') - event.add('forge:stone', 'minecraft:blackstone') - - event.add('tfc:can_landslide', 'minecraft:cobbled_deepslate') - - event.add('tfc:breaks_when_isolated', 'minecraft:deepslate') - event.add('tfc:breaks_when_isolated', 'minecraft:blackstone') - event.add('tfc:breaks_when_isolated', 'minecraft:gilded_blackstone') - event.add('tfc:breaks_when_isolated', 'minecraft:dripstone_block') - - event.add('tfg:rock_stairs', 'minecraft:cobbled_deepslate_stairs') - event.add('tfg:rock_slabs', 'minecraft:cobbled_deepslate_slab') - event.add('tfg:rock_walls', 'minecraft:cobbled_deepslate_wall') - event.add('tfg:brick_stairs', 'minecraft:deepslate_brick_stairs') - event.add('tfg:brick_slabs', 'minecraft:deepslate_brick_slab') - event.add('tfg:brick_walls', 'minecraft:deepslate_brick_wall') - event.add('tfg:brick_stairs', 'minecraft:deepslate_tile_stairs') - event.add('tfg:brick_slabs', 'minecraft:deepslate_tile_slab') - event.add('tfg:brick_walls', 'minecraft:deepslate_tile_wall') - event.add('tfg:rock_stairs', 'minecraft:blackstone_stairs') - event.add('tfg:rock_slabs', 'minecraft:blackstone_slab') - event.add('tfg:rock_walls', 'minecraft:blackstone_wall') - event.add('tfg:brick_stairs', 'minecraft:blackstone_stairs') - event.add('tfg:brick_slabs', 'minecraft:blackstone_slab') - event.add('tfg:brick_walls', 'minecraft:blackstone_wall') - - event.add('tfc:bloomery_insulation', 'minecraft:polished_deepslate'); - event.add('tfc:forge_insulation', 'minecraft:polished_deepslate'); - event.add('tfc:bloomery_insulation', 'minecraft:polished_blackstone'); - event.add('tfc:forge_insulation', 'minecraft:polished_blackstone'); - event.add('tfc:bloomery_insulation', 'minecraft:deepslate_tiles'); - event.add('tfc:forge_insulation', 'minecraft:deepslate_tiles'); - event.add('tfc:bloomery_insulation', 'minecraft:cracked_deepslate_tiles'); - event.add('tfc:forge_insulation', 'minecraft:cracked_deepslate_tiles'); - event.add('tfc:bloomery_insulation', 'minecraft:chiseled_deepslate'); - event.add('tfc:forge_insulation', 'minecraft:chiseled_deepslate'); - event.add('tfc:bloomery_insulation', 'minecraft:chiseled_polished_blackstone'); - event.add('tfc:forge_insulation', 'minecraft:chiseled_polished_blackstone'); - event.add('tfc:bloomery_insulation', 'minecraft:gilded_blackstone'); - event.add('tfc:forge_insulation', 'minecraft:gilded_blackstone'); - event.add('tfc:bloomery_insulation', 'minecraft:basalt'); - event.add('tfc:forge_insulation', 'minecraft:basalt'); - event.add('tfc:bloomery_insulation', 'minecraft:smooth_basalt'); - event.add('tfc:forge_insulation', 'minecraft:smooth_basalt'); - - event.add('minecraft:mineable/pickaxe', 'minecraft:lantern'); - - event.add('minecraft:mineable/pickaxe', 'minecraft:cobweb'); - event.add('minecraft:mineable/hoe', 'minecraft:cobweb'); - event.add('minecraft:mineable/shovel', 'minecraft:cobweb'); - event.add('minecraft:mineable/axe', 'minecraft:cobweb'); - - //#region - - event.removeAll('minecraft:sniffer_diggable_block') - - event.add('tfc:can_be_snow_piled', 'minecraft:crimson_fungus') - event.add('tfc:can_be_snow_piled', 'minecraft:warped_fungus') - event.add('tfc:can_be_snow_piled', 'minecraft:torchflower') - event.add('tfc:can_be_snow_piled', 'minecraft:pitcher_plant') } \ No newline at end of file diff --git a/kubejs/server_scripts/more_red/recipes.js b/kubejs/server_scripts/more_red/recipes.js index e4ac1eacf..b1a1a4a15 100644 --- a/kubejs/server_scripts/more_red/recipes.js +++ b/kubejs/server_scripts/more_red/recipes.js @@ -46,10 +46,10 @@ const registerMoreRedRecipes = (event) => { .addMaterialInfo(true) // Red Wire Post - event.recipes.gtceu.shaped('2x morered:redwire_post', ['A', 'B'], { + event.shaped('2x morered:redwire_post', ['A', 'B'], { A: '#forge:rods/wrought_iron', B: '#forge:fine_wires/red_alloy' - }).addMaterialInfo().id('tfg:crafting/red_wire_post') + }).id('tfg:crafting/red_wire_post') // Red Wire Post Plate event.recipes.gtceu.assembler('tfg/morered/red_wire_post_plate') diff --git a/kubejs/server_scripts/primitive_creatures/tags.js b/kubejs/server_scripts/primitive_creatures/tags.js index 501c74bac..cfe6e253e 100644 --- a/kubejs/server_scripts/primitive_creatures/tags.js +++ b/kubejs/server_scripts/primitive_creatures/tags.js @@ -30,4 +30,8 @@ function registerPrimitiveCreaturesItemTags(event) { event.add('primitive_creatures:mercenary_payment', 'minecraft:spider_eye') event.add('primitive_creatures:mercenary_payment', 'minecraft:flint') event.add('primitive_creatures:mercenary_payment', 'minecraft:emerald') + + // Flint clubs + event.add('tfc:usable_on_tool_rack', 'primitive_creatures:yhgi') + event.add('tfc:usable_on_tool_rack', 'primitive_creatures:reh') } \ No newline at end of file diff --git a/kubejs/server_scripts/sophisticated_backpacks/recipes.js b/kubejs/server_scripts/sophisticated_backpacks/recipes.js index 6a844e21a..4c0611e36 100644 --- a/kubejs/server_scripts/sophisticated_backpacks/recipes.js +++ b/kubejs/server_scripts/sophisticated_backpacks/recipes.js @@ -179,18 +179,18 @@ const registerSophisticatedBackpacksRecipes = (event) => { 'CDE', 'FGF' ], { - A: 'gtceu:hv_electric_motor', - B: 'gtceu:mercury_barium_calcium_cuprate_single_wire', - C: 'gtceu:hv_conveyor_module', + A: '#forge:cogwheels', + B: 'gtceu:item_filter', + C: '#greate:belts', D: 'sophisticatedbackpacks:upgrade_base', - E: 'gtceu:hv_robot_arm', - F: '#gtceu:circuits/hv', - G: '#gtceu:batteries/hv' + E: 'create:mechanical_arm', + F: '#gtceu:circuits/ulv', + G: 'create:electron_tube' }).id('tfg:sophisticated_backpacks/shaped/pickup_upgrade') event.shapeless('sophisticatedbackpacks:advanced_pickup_upgrade', [ 'sophisticatedbackpacks:pickup_upgrade', - '#gtceu:circuits/ev' + 'gtceu:item_smart_filter' ]).id('tfg:sophisticated_backpacks/shapeless/advanced_pickup_upgrade') event.shaped('sophisticatedbackpacks:filter_upgrade', [ @@ -213,23 +213,37 @@ const registerSophisticatedBackpacksRecipes = (event) => { '#gtceu:circuits/mv' ]).id('tfg:sophisticated_backpacks/shapeless/advanced_filter_upgrade') - event.shaped('sophisticatedbackpacks:magnet_upgrade', [ + event.shaped('sophisticatedbackpacks:magnet_upgrade', [ 'ABA', - 'CDC', - 'FEG' + 'CDE', + 'FGF' ], { - A: 'gtceu:lv_robot_arm', - B: 'gtceu:item_filter', - C: '#gtceu:circuits/lv', - D: 'sophisticatedbackpacks:upgrade_base', - E: 'gtceu:lv_item_magnet', - F: '#forge:tools/wrenches', - G: '#forge:tools/screwdrivers' + A: 'gtceu:lv_electric_motor', + B: 'gtceu:lv_item_magnet', + C: 'gtceu:lv_conveyor_module', + D: 'sophisticatedbackpacks:pickup_upgrade', + E: 'gtceu:lv_robot_arm', + F: '#gtceu:circuits/lv', + G: '#gtceu:batteries/lv' }).id('tfg:sophisticated_backpacks/shaped/magnet_upgrade') + event.shaped('sophisticatedbackpacks:advanced_magnet_upgrade', [ + 'ABA', + 'CDE', + 'FGF' + ], { + A: 'gtceu:lv_electric_motor', + B: 'gtceu:lv_item_magnet', + C: 'gtceu:lv_conveyor_module', + D: 'sophisticatedbackpacks:advanced_pickup_upgrade', + E: 'gtceu:lv_robot_arm', + F: '#gtceu:circuits/lv', + G: '#gtceu:batteries/lv' + }).id('tfg:sophisticated_backpacks/shaped/advanced_magnet_upgrade') + event.shapeless('sophisticatedbackpacks:advanced_magnet_upgrade', [ 'sophisticatedbackpacks:magnet_upgrade', - 'gtceu:hv_item_magnet' + 'gtceu:item_smart_filter' ]).id('tfg:sophisticated_backpacks/shapeless/advanced_magnet_upgrade') event.shaped('sophisticatedbackpacks:void_upgrade', [ @@ -430,4 +444,4 @@ const registerSophisticatedBackpacksRecipes = (event) => { 'sophisticatedbackpacks:feeding_upgrade', '#gtceu:circuits/mv' ]).id('tfg:sophisticated_backpacks/shapeless/advanced_feeding_upgrade') -} \ No newline at end of file +} diff --git a/kubejs/server_scripts/soulbound/tags.js b/kubejs/server_scripts/soulbound/tags.js index eae933e2f..ae0298e35 100644 --- a/kubejs/server_scripts/soulbound/tags.js +++ b/kubejs/server_scripts/soulbound/tags.js @@ -7,4 +7,6 @@ const registerSoulboundItemTags = (event) => { global.SOULBINDABLE_ITEMS.forEach(x => { event.add('tfg:soulbindable_items', x.equipment) }) + + event.add('c:hidden_from_recipe_viewers', 'soulbinding:binding_chains') } diff --git a/kubejs/server_scripts/species/loot.js b/kubejs/server_scripts/species/loot.js index df3ccd87e..54772ee26 100644 --- a/kubejs/server_scripts/species/loot.js +++ b/kubejs/server_scripts/species/loot.js @@ -41,14 +41,15 @@ function registerSpeciesLoots(event) { event.addEntityLootModifier('species:cruncher') - .addLoot('tfc:large_raw_hide') + .addLoot('species:music_disk_spawner') + .addWeightedLoot([3, 4], ['tfc:large_raw_hide']) .addWeightedLoot([10, 13], ['minecraft:bone']) - .addWeightedLoot([14, 24], ['tfg:food/raw_cruncher_ribs']) + .addWeightedLoot([24, 36], ['tfg:food/raw_cruncher_ribs']) .addSequenceLoot(LootEntry.of('species:cruncher_egg').when(c => c.randomChance(0.5))) event.addEntityLootModifier('species:cruncher') .matchMainHand('#forge:tools/butchery_knives') - .addWeightedLoot([7, 12], ['tfg:food/raw_cruncher_ribs']) + .addWeightedLoot([12, 18], ['tfg:food/raw_cruncher_ribs']) event.addEntityLootModifier('species:stackatick') diff --git a/kubejs/server_scripts/species/recipes.js b/kubejs/server_scripts/species/recipes.js index 14b95dcdf..2c7fe4c09 100644 --- a/kubejs/server_scripts/species/recipes.js +++ b/kubejs/server_scripts/species/recipes.js @@ -66,30 +66,6 @@ function registerSpeciesRecipes(event) { B: 'firmaciv:rope_coil' }).id('tfg:shaped/harpoon') - generateGreenHouseRecipe(event, '8x tfg:saplings/alphacene', 'tfg:semiheavy_ammoniacal_water', 16000, - '64x species:alphacene_mushroom_block', 'tfg:green_house/alphacene_mushroom', 'ad_astra:mars', 8, - '8x minecraft:mushroom_stem', GTValues.VA[GTValues.MV]) - - event.shapeless('species:cracked_wraptor_egg', ['tfg:wraptor_egg', '#forge:tools/hammers']).id('tfg:shapeless/crack_egg') - event.shapeless('2x tfg:wraptor_sugar', ['species:cracked_wraptor_egg']).id('tfg:shapeless/juice_egg') - - event.recipes.gtceu.extractor('tfg:juice_wraptor_egg_mv') - .itemInputs('species:cracked_wraptor_egg') - .itemOutputs('4x tfg:wraptor_sugar') - .duration(100) - .EUt(GTValues.VA[GTValues.MV]) - event.recipes.gtceu.extractor('tfg:juice_wraptor_egg_full') - .itemInputs('tfg:wraptor_egg') - .itemOutputs('4x tfg:wraptor_sugar') - .duration(200) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.extractor('tfg:juice_sniffer_egg') - .itemInputs('tfg:sniffer_egg') - .outputFluids(Fluid.of('firmalife:cream', 1000)) - .duration(100) - .EUt(GTValues.VA[GTValues.MV]) - event.shaped('species:ricoshield', [ 'EBE', 'ACA', diff --git a/kubejs/server_scripts/species/tags.js b/kubejs/server_scripts/species/tags.js index 2d0e501ad..651d2a748 100644 --- a/kubejs/server_scripts/species/tags.js +++ b/kubejs/server_scripts/species/tags.js @@ -26,7 +26,7 @@ const registerSpeciesItemTags = (event) => { event.add('tfg:martian_eggs', 'species:petrified_egg') event.add('species:goober_breed_items', '#forge:mushrooms') - event.add('species:cruncher_eats', '#tfc:foods/meat') + event.add('species:cruncher_eats', '#tfc:foods/meats') event.add('tfc:compost_greens', 'species:alphacene_mushroom_block') event.add('tfc:compost_greens_low', 'species:alphacene_mushroom_growth') diff --git a/kubejs/server_scripts/tacz/index_modifiers.js b/kubejs/server_scripts/tacz/index_modifiers.js index 3f7cc5d57..c157e27de 100644 --- a/kubejs/server_scripts/tacz/index_modifiers.js +++ b/kubejs/server_scripts/tacz/index_modifiers.js @@ -18,6 +18,7 @@ const ammoIndexLogic = (event) => { switch(id) { case "tacz:45_70": json.stack_size = 64; break; case "tacz:12g": json.stack_size = 64; break; + case "tacz:30_06": json.stack_size = 64; break; case "create_armorer:40mmhe": json.stack_size = 16; break; case "create_armorer:rbapb": json.stack_size = 64; break; @@ -99,6 +100,12 @@ const gunIndexLogic = (event) => { return event.removeGun(); } + + if (id === "create_armorer:sniper_semi_clockwork"){ + const json = JSON.parse(event.getStdJson()); + json.type = "rifle"; + return event.setJson(JSON.stringify(json)); + } } const attachmentDataLogic = (event) => { @@ -109,6 +116,7 @@ const gunDataLogic = (event) => { const id = event.getId().toString(); const json = JSON.parse(event.getStdJson()); + //Pistols if (id === "ulv_guns:flintlock_data"){ json.bullet.damage = 14; json.bullet.extra_damage.damage_adjust = @@ -121,36 +129,168 @@ const gunDataLogic = (event) => { } if(id === "create_armorer:pistol_revolver_torque_data"){ + json.ammo = "create_armorer:rbapb"; + + json.bullet.pierce = 2; + json.bullet.damage = 12; + json.bullet.extra_damage.armor_ignore = 0.25; + json.bullet.extra_damage.head_shot_multiplier = 1.5; + json.bullet.extra_damage.damage_adjust = + [ + {"distance": 25, "damage": 12}, + {"distance": 50, "damage": 11}, + {"distance": 75, "damage": 9}, + {"distance": "infinite", "damage": 7} + ] + + } + + if(id === "create_armorer:pistol_auto_stress_data"){ + json.ammo = "create_armorer:rbapb"; + json.ammo_amount = 10; + json.extended_mag_ammo_amount = + [ + 14, + 18, + 22 + ] + + json.fire_mode = + [ + "semi" + ] + + json.bullet.damage = 8; + json.bullet.extra_damage.armor_ignore = 0.25; + json.bullet.extra_damage.damage_adjust = + [ + {"distance": 32, "damage": 8}, + {"distance": 64, "damage": 7}, + {"distance": "infinite", "damage": 6} + ] + } + + if(id === "applied_armorer:niklas_pistol_semi_pride_data"){ json.bullet.extra_damage.armor_ignore = 0.25; } + if(id === "applied_armorer:niklas_pistol_double_win_win_data"){ + json.bullet.damage = 10; + json.bullet.extra_damage.armor_ignore = 0.25; + json.bullet.extra_damage.head_shot_multiplier = 1.5; + json.bullet.extra_damage.damage_adjust = + [ + {"distance": 15, "damage": 10}, + {"distance": 35, "damage": 9}, + {"distance": "infinite", "damage": 8} + ] + } + + //Snipers + if(id === "tacz:springfield1873_data") { + json.bullet.damage = 25; + json.bullet.extra_damage.damage_adjust = + [ + {"distance": 40, "damage": 25}, + {"distance": 70, "damage": 21}, + {"distance": 100, "damage": 17}, + {"distance": "infinite", "damage": 12} + ] + } + + if(id === "tacz:m700_data"){ + json.ammo_amount = 2; + json.extended_mag_ammo_amount = + [ + 4, + 6, + 9 + ] + + json.bullet.damage = 32; + json.bullet.extra_damage.head_shot_multiplier = 1.75; + json.bullet.extra_damage.damage_adjust = + [ + {"distance": 48, "damage": 32}, + {"distance": 96, "damage": 28}, + {"distance": 128, "damage": 23}, + {"distance": "infinite", "damage": 18} + ] + } + + if(id === "applied_armorer:moritz_sniper_semi_k30_data") { + json.bullet.pierce = 4; + json.bullet.damage = 40; + json.bullet.extra_damage.armor_ignore = 0.55; + json.bullet.extra_damage.damage_adjust = + [ + {"distance": 100, "damage": 40}, + {"distance": 200, "damage": 35}, + {"distance": "infinite", "damage": 30} + ] + } + + + //Rifles if(id === "create_armorer:sniper_semi_clockwork_data"){ + json.ammo = "create_armorer:slap"; + json.ammo_amount = 10; + json.extended_mag_ammo_amount = + [ + 13, + 16, + 20 + ] + + json.bullet.extra_damage.armor_ignore = 0.30; json.bullet.damage = 22; + json.bullet.extra_damage.head_shot_multiplier = 1.50; json.bullet.extra_damage.damage_adjust = [ {"distance": 60, "damage": 22}, {"distance": 120, "damage": 19}, {"distance": "infinite", "damage": 17} ] + json.builtin_attachments = {}; json.builtin_attachments.scope = "create_armorer:sight_simple"; } + if(id === "create_armorer:rifle_assult_crane_data"){ + json.ammo_amount = 20; + json.extended_mag_ammo_amount = + [ + 28, + 36, + 44 + ] + } + if(id === "applied_armorer:moritz_rifle_ar77_data") { json.ammo = "applied_armorer:hard_core_quartz_bullet"; - json.bullet.damage = 13; + json.ammo_amount = 25; + json.extended_mag_ammo_amount = + [ + 36, + 45, + 52 + ] + + + json.bullet.damage = 14; json.bullet.extra_damage.armor_ignore = 0.35; json.bullet.extra_damage.head_shot_multiplier = 1.75; json.bullet.extra_damage.damage_adjust = [ - {"distance": 80, "damage": 13}, - {"distance": 120, "damage": 11}, - {"distance": "infinite", "damage": 9} + {"distance": 80, "damage": 14}, + {"distance": 120, "damage": 12}, + {"distance": "infinite", "damage": 10} ] } + //Shotguns if(id === "tacz:db_long_data"){ json.bullet.extra_damage.armor_ignore = 0.22; } @@ -159,6 +299,71 @@ const gunDataLogic = (event) => { json.bullet.extra_damage.armor_ignore = 0.22; } + //SMGs + if(id === "create_armorer:smg_auto_crank_data"){ + json.ammo = "create_armorer:rbapb"; + + json.ammo_amount = 25; + json.extended_mag_ammo_amount = + [ + 35, + 45, + 55 + ] + + json.bullet.damage = 8; + json.bullet.extra_damage.armor_ignore = 0.25; + json.bullet.extra_damage.head_shot_multiplier = 1.2; + json.bullet.extra_damage.damage_adjust = + [ + {"distance": 24, "damage": 8}, + {"distance": 48, "damage": 7}, + {"distance": 72, "damage": 6}, + {"distance": "infinite", "damage": 5} + ] + } + + if(id === "applied_armorer:niklas_smg_freedom_data"){ + json.ammo_amount = 35; + json.extended_mag_ammo_amount = + [ + 45, + 55, + 65 + ] + + json.bullet.damage = 10; + json.bullet.extra_damage.armor_ignore = 0.25; + json.bullet.extra_damage.damage_adjust = + [ + {"distance": 24, "damage": 10}, + {"distance": 48, "damage": 9}, + {"distance": 72, "damage": 8}, + {"distance": "infinite", "damage": 7} + ] + } + + //Heavy + if(id === "create_armorer:mg_platemag_flywheel_data") { + json.ammo_amount = 40; + json.extended_mag_ammo_amount = + [ + 55, + 80, + 115 + ] + + json.rpm = 640; + + json.bullet.damage = 12; + json.bullet.extra_damage.damage_adjust = + [ + {"distance": 32, "damage": 12}, + {"distance": 64, "damage": 11}, + {"distance": "infinite", "damage": 10} + ] + } + if(id === "create_armorer:cannon_40mm_salamander_data"){ json.bullet.damage = 50; json.bullet.extra_damage.damage_adjust = @@ -166,6 +371,7 @@ const gunDataLogic = (event) => { {"distance": 200, "damage": 50}, {"distance": "infinite", "damage": 45} ] + json.builtin_attachments = {}; json.builtin_attachments.scope = "create_armorer:sight_simple"; } diff --git a/kubejs/server_scripts/tacz/recipes.ammo.js b/kubejs/server_scripts/tacz/recipes.ammo.js index f0aebe5fe..2fbc8f20f 100644 --- a/kubejs/server_scripts/tacz/recipes.ammo.js +++ b/kubejs/server_scripts/tacz/recipes.ammo.js @@ -93,6 +93,13 @@ function registerTACZAmmoRecipes(event){ .duration(20) //Clockwork era + event.recipes.gtceu.assembler('tfg_tacz:rb_small_lv') + .itemInputs('4x #forge:nuggets/lead','2x #forge:foils/copper', '#forge:ingots/brass', + '#forge:dusts/gunpowder') + .itemOutputs(Item.of('tacz:ammo', 4, + '{AmmoId:"create_armorer:rbapb"}')) + .EUt(GTValues.VA[GTValues.LV]) + .duration(20) event.recipes.gtceu.assembler('tfg_tacz:rb_small') .itemInputs('4x #forge:nuggets/lead','2x #forge:foils/copper', '4x tfg:small_bullet_casing', '#forge:dusts/gunpowder') @@ -107,20 +114,36 @@ function registerTACZAmmoRecipes(event){ '{AmmoId:"create_armorer:rbapb"}')) .EUt(GTValues.VA[GTValues.EV]) .duration(20) + event.recipes.gtceu.assembler('tfg_tacz:slap_large') - .itemInputs('4x #forge:nuggets/lead','4x #forge:foils/copper', '4x tfg:large_bullet_casing', + .itemInputs('4x #forge:bolts/lead','4x #forge:foils/copper', '4x tfg:large_bullet_casing', '#forge:dusts/gunpowder') .itemOutputs(Item.of('tacz:ammo', 4, '{AmmoId:"create_armorer:slap"}')) .EUt(GTValues.VA[GTValues.MV]) .duration(20) event.recipes.gtceu.assembler('tfg_tacz:slap_large_nc') - .itemInputs('8x #forge:nuggets/lead','8x #forge:foils/copper', '8x tfg:large_bullet_casing', + .itemInputs('8x #forge:bolts/lead','8x #forge:foils/copper', '8x tfg:large_bullet_casing', 'tfg:nitrocellulose') .itemOutputs(Item.of('tacz:ammo', 8, '{AmmoId:"create_armorer:slap"}')) .EUt(GTValues.VA[GTValues.EV]) .duration(20) + + event.recipes.gtceu.assembler('tfg_tacz:3006_large') + .itemInputs('4x #forge:rods/annealed_copper','4x #forge:foils/copper', '4x tfg:large_bullet_casing', + '#forge:dusts/gunpowder') + .itemOutputs(Item.of('tacz:ammo', 4, + '{AmmoId:"tacz:30_06"}')) + .EUt(GTValues.VA[GTValues.MV]) + .duration(20) + event.recipes.gtceu.assembler('tfg_tacz:3006_large_nc') + .itemInputs('8x #forge:rods/annealed_copper','8x #forge:foils/copper', '8x tfg:large_bullet_casing', + 'tfg:nitrocellulose') + .itemOutputs(Item.of('tacz:ammo', 8, + '{AmmoId:"tacz:30_06"}')) + .EUt(GTValues.VA[GTValues.EV]) + .duration(20) //Certus era diff --git a/kubejs/server_scripts/tacz/recipes.guns.js b/kubejs/server_scripts/tacz/recipes.guns.js index 40d6dda8f..93a60512b 100644 --- a/kubejs/server_scripts/tacz/recipes.guns.js +++ b/kubejs/server_scripts/tacz/recipes.guns.js @@ -70,66 +70,85 @@ function registerTACZGunRecipes(event){ //Region clockwork era event.recipes.gtceu.assembler('tfg_tacz:ca_torque_revo') - .itemInputs('gtceu:steel_small_fluid_pipe', '4x #forge:ingots/aluminium', '2x #forge:plates/brass', + .itemInputs('gtceu:steel_small_fluid_pipe', '4x #forge:ingots/black_steel', '2x #forge:plates/brass', '6x #forge:rings/brass', '2x gtceu:treated_wood_planks', '8x #forge:screws/black_steel', - 'tfg:advanced_clockwork_mechanism') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 288)) + '3x greate:steel_cogwheel') + .inputFluids(Fluid.of('gtceu:soldering_alloy', 256)) .itemOutputs(Item.of('tacz:modern_kinetic_gun', '{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"create_armorer:pistol_revolver_torque",HasBulletInBarrel:1b}')) .circuit(1) + .EUt(GTValues.VA[GTValues.LV]) + .duration(80) + event.recipes.gtceu.assembler('tfg_tacz:ca_stress_pistol') + .itemInputs('gtceu:steel_small_fluid_pipe', '4x #forge:ingots/black_steel', '2x #forge:ingots/aluminium', + '3x #forge:plates/brass', 'gtceu:treated_wood_planks', '12x #forge:screws/black_steel', + '4x #forge:screws/brass', 'tfg:advanced_clockwork_mechanism') + .inputFluids(Fluid.of('gtceu:soldering_alloy', 468)) + .itemOutputs(Item.of('tacz:modern_kinetic_gun', + '{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"create_armorer:pistol_auto_stress",HasBulletInBarrel:1b}')) + .circuit(2) .EUt(GTValues.VA[GTValues.MV]) .duration(80) event.recipes.gtceu.assembler('tfg_tacz:ca_crane') .itemInputs('gtceu:steel_small_fluid_pipe', '7x #forge:ingots/aluminium', '2x #forge:ingots/black_steel', '4x #forge:plates/brass','2x gtceu:copper_tiny_fluid_pipe', '2x gtceu:treated_wood_planks', '2x #forge:small_gears/steel', '14x #forge:screws/black_steel', 'tfg:advanced_clockwork_mechanism') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 540)) + .inputFluids(Fluid.of('gtceu:soldering_alloy', 684)) .itemOutputs(Item.of('tacz:modern_kinetic_gun', '{GunCurrentAmmoCount:0,GunFireMode:"AUTO",GunId:"create_armorer:rifle_assult_crane",HasBulletInBarrel:1b}')) .EUt(GTValues.VA[GTValues.MV]) .duration(100) + event.recipes.gtceu.assembler('tfg_tacz:ca_crank_smg') + .itemInputs('gtceu:steel_small_fluid_pipe', '5x #forge:ingots/aluminium', '5x #forge:plates/brass', + '6x gtceu:steel_tiny_fluid_pipe', '2x gtceu:treated_wood_planks', '2x #forge:small_gears/steel', + '16x #forge:screws/black_steel', 'tfg:advanced_clockwork_mechanism') + .inputFluids(Fluid.of('gtceu:soldering_alloy', 612)) + .itemOutputs(Item.of('tacz:modern_kinetic_gun', + '{GunCurrentAmmoCount:0,GunFireMode:"AUTO",GunId:"create_armorer:smg_auto_crank",HasBulletInBarrel:1b}')) + .circuit(3) + .EUt(GTValues.VA[GTValues.MV]) + .duration(100) event.recipes.gtceu.assembler('tfg_tacz:ca_pump_bearing') .itemInputs('2x gtceu:steel_small_fluid_pipe', '4x #forge:ingots/aluminium', '4x #forge:plates/brass', '8x gtceu:treated_wood_planks', '#forge:small_gears/steel', '#forge:gears/steel', '16x #forge:screws/black_steel', 'tfg:advanced_clockwork_mechanism') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 432)) + .inputFluids(Fluid.of('gtceu:soldering_alloy', 504)) .itemOutputs(Item.of('tacz:modern_kinetic_gun', '{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"create_armorer:shotgun_pump_bearing",HasBulletInBarrel:0b}')) .EUt(GTValues.VA[GTValues.MV]) - .circuit(3) + .circuit(4) .duration(100) event.recipes.gtceu.assembler('tfg_tacz:ca_clockwork_sniper') - .itemInputs('gtceu:steel_normal_fluid_pipe', '7x #forge:ingots/aluminium', '7x #forge:ingots/black_steel', + .itemInputs('gtceu:steel_normal_fluid_pipe', '6x #forge:ingots/aluminium', '3x #forge:ingots/black_steel', '4x #forge:plates/brass','6x gtceu:copper_tiny_fluid_pipe', '2x gtceu:treated_wood_planks', - '14x #forge:screws/black_steel', 'tfg:advanced_clockwork_mechanism') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 792)) + '12x #forge:screws/black_steel', 'tfg:advanced_clockwork_mechanism') + .inputFluids(Fluid.of('gtceu:soldering_alloy', 684)) .itemOutputs(Item.of('tacz:modern_kinetic_gun', '{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"create_armorer:sniper_semi_clockwork",HasBulletInBarrel:1b}')) .EUt(GTValues.VA[GTValues.MV]) - .circuit(4) + .circuit(5) .duration(120) event.recipes.gtceu.assembler('tfg_tacz:ca_flywheel_mg') .itemInputs('gtceu:steel_normal_fluid_pipe', '10x #forge:ingots/aluminium', '6x #forge:ingots/black_steel', '6x #forge:plates/brass', 'create:steam_engine', '3x gtceu:steel_tiny_fluid_pipe', '2x gtceu:treated_wood_planks','20x #forge:screws/black_steel', '2x tfg:advanced_clockwork_mechanism') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 936)) + .inputFluids(Fluid.of('gtceu:soldering_alloy', 1008)) .itemOutputs(Item.of('tacz:modern_kinetic_gun', '{GunCurrentAmmoCount:0,GunFireMode:"AUTO",GunId:"create_armorer:mg_platemag_flywheel",HasBulletInBarrel:1b}')) .EUt(GTValues.VA[GTValues.MV]) .duration(160) + event.recipes.gtceu.assembler('tfg_tacz:tacz_m700') + .itemInputs('3x gtceu:steel_small_fluid_pipe', '5x #forge:ingots/aluminium', '4x #forge:plates/black_steel', + '16x gtceu:treated_wood_planks', '16x #forge:screws/black_steel', 'tfg:advanced_clockwork_mechanism') + .inputFluids(Fluid.of('gtceu:soldering_alloy', 768)) + .itemOutputs(Item.of('tacz:modern_kinetic_gun', + '{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"tacz:m700",HasBulletInBarrel:0b}')) + .EUt(GTValues.VA[GTValues.MV]) + .circuit(6) + .duration(120) //Region certus era - event.recipes.gtceu.assembler('tfg_tacz:aa_pride') - .itemInputs('gtceu:titanium_small_fluid_pipe', '4x #forge:ingots/titanium', '2x #forge:plates/stainless_steel', - '2x #forge:rods/long/titanium', '8x #forge:screws/hsla_steel', 'tfg:certus_mechanism') - .inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1152)) - .itemOutputs(Item.of('tacz:modern_kinetic_gun', - '{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"applied_armorer:niklas_pistol_semi_pride",HasBulletInBarrel:0b}')) - .circuit(2) - .EUt(GTValues.VA[GTValues.EV]) - .duration(80) - event.recipes.gtceu.assembler('tfg_tacz:aa_right') .itemInputs('gtceu:titanium_small_fluid_pipe', '5x #forge:ingots/titanium', '3x #forge:plates/stainless_steel', '#forge:rods/long/titanium', '10x #forge:screws/hsla_steel', 'tfg:certus_mechanism') @@ -139,6 +158,16 @@ function registerTACZGunRecipes(event){ .circuit(1) .EUt(GTValues.VA[GTValues.EV]) .duration(80) + + event.recipes.gtceu.assembler('tfg_tacz:aa_pride') + .itemInputs('gtceu:titanium_small_fluid_pipe', '4x #forge:ingots/titanium', '2x #forge:plates/stainless_steel', + '2x #forge:rods/long/titanium', '8x #forge:screws/hsla_steel', 'tfg:certus_mechanism') + .inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1152)) + .itemOutputs(Item.of('tacz:modern_kinetic_gun', + '{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"applied_armorer:niklas_pistol_semi_pride",HasBulletInBarrel:0b}')) + .circuit(2) + .EUt(GTValues.VA[GTValues.EV]) + .duration(80) event.recipes.gtceu.assembler('tfg_tacz:aa_win_win') .itemInputs('2x gtceu:titanium_small_fluid_pipe', '10x #forge:ingots/titanium', '6x #forge:plates/stainless_steel', @@ -150,6 +179,17 @@ function registerTACZGunRecipes(event){ .EUt(GTValues.VA[GTValues.EV]) .duration(120) + event.recipes.gtceu.assembler('tfg_tacz:aa_k30') + .itemInputs('2x gtceu:titanium_small_fluid_pipe', '8x #forge:ingots/titanium', '2x #forge:ingots/magnalium', + '8x #forge:plates/stainless_steel', '3x #forge:rods/long/hsla_steel', '2x tfc:lens', + '24x #forge:screws/hsla_steel', 'tfg:certus_mechanism') + .inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1728)) + .itemOutputs(Item.of('tacz:modern_kinetic_gun', + '{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"applied_armorer:moritz_sniper_semi_k30",HasBulletInBarrel:0b}')) + .circuit(4) + .EUt(GTValues.VA[GTValues.EV]) + .duration(220) + event.recipes.gtceu.assembler('tfg_tacz:aa_ar') .itemInputs('gtceu:titanium_small_fluid_pipe', '10x #forge:ingots/titanium', '5x #forge:plates/stainless_steel', '2x #forge:rods/long/hsla_steel', '2x tfc:lens', '20x #forge:screws/hsla_steel', @@ -172,16 +212,16 @@ function registerTACZGunRecipes(event){ .EUt(GTValues.VA[GTValues.EV]) .duration(180) - event.recipes.gtceu.assembler('tfg_tacz:aa_k30') - .itemInputs('2x gtceu:titanium_small_fluid_pipe', '8x #forge:ingots/titanium', '2x #forge:ingots/magnalium', - '8x #forge:plates/stainless_steel', '3x #forge:rods/long/hsla_steel', '2x tfc:lens', - '24x #forge:screws/hsla_steel', 'tfg:certus_mechanism') - .inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1728)) + event.recipes.gtceu.assembler('tfg_tacz:aa_freedom') + .itemInputs('gtceu:titanium_small_fluid_pipe', '7x #forge:ingots/titanium', '4x #forge:plates/stainless_steel', + '2x #forge:rods/long/hsla_steel', '2x tfc:lens', '16x #forge:screws/hsla_steel', + 'tfg:certus_mechanism') + .inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 2160)) .itemOutputs(Item.of('tacz:modern_kinetic_gun', - '{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"applied_armorer:moritz_sniper_semi_k30",HasBulletInBarrel:0b}')) - .circuit(4) + '{GunCurrentAmmoCount:0,GunFireMode:"AUTO",GunId:"applied_armorer:niklas_smg_freedom",HasBulletInBarrel:1b}')) + .circuit(7) .EUt(GTValues.VA[GTValues.EV]) - .duration(220) + .duration(160) event.recipes.gtceu.assembler('tfg_tacz:aa_gl') .itemInputs('gtceu:tungsten_steel_normal_fluid_pipe', '12x #forge:ingots/titanium', '6x #forge:plates/stainless_steel', diff --git a/kubejs/server_scripts/tfc/data.js b/kubejs/server_scripts/tfc/data.js index d800003a3..982310c93 100644 --- a/kubejs/server_scripts/tfc/data.js +++ b/kubejs/server_scripts/tfc/data.js @@ -7,9 +7,6 @@ const registerTFCDataForTFC = (event) => { registerTFCLampFuels(event) registerTFCFertilizers(event) registerTFCKnappingTypes(event) - registerTFCItemSize(event) - registerTFCFoodData(event) - registerTFCArmourResistances(event) } @@ -75,208 +72,4 @@ const registerTFCFertilizers = (event) => { const registerTFCKnappingTypes = (event) => { event.knappingType('minecraft:flint', 1, 1, 'tfc:item.knapping.stone', true, false, true, 'minecraft:flint', 'tfg:flint') event.knappingType('tfc:straw', 4, 4, 'tfc:item.knapping.leather', false, false, false, 'tfc:straw', 'tfg:straw') -} - - -const registerTFCItemSize = (event) => { - event.itemSize('#tfc:ore_pieces', 'very_small', 'very_light', 'tfc_ores') - - event.itemSize('#tfc:foods/sealed_preserves', 'tiny', 'medium', 'sealed_preserves') - event.itemSize('#tfc:foods/preserves', 'tiny', 'medium', 'preserves') - - event.itemSize('#forge:tools/wrenches', 'very_large', 'very_heavy', 'wrenches') - event.itemSize('#forge:tools/mining_hammers', 'very_large', 'very_heavy', 'mining_hammers') - event.itemSize('#forge:tools/spades', 'very_large', 'very_heavy', 'spades') -} - - -const registerTFCFoodData = (event) => { - - event.foodItem('firmalife:ice_shavings', food => { - food.water(5) - food.decayModifier(0) - }) -} - -const registerTFCArmourResistances = (event) => { - event.itemDamageResistance( - 'create:copper_diving_helmet', - 2, - 2, - 2 - ) - event.itemDamageResistance( - 'create:copper_backtank', - 2, - 2, - 2 - ) - event.itemDamageResistance( - 'create:copper_diving_boots', - 2, - 2, - 2 - ) - event.itemDamageResistance( - 'create:copper_diving_helmet', - 2, - 2, - 2 - ) - event.itemDamageResistance( - 'gtceu:hazmat_headpiece', - null, - null, - 3 - ) - event.itemDamageResistance( - 'gtceu:hazmat_chestpiece', - null, - null, - 3 - ) - event.itemDamageResistance( - 'gtceu:hazmat_leggings', - null, - null, - 3 - ) - event.itemDamageResistance( - 'gtceu:hazmat_boots', - null, - null, - 3 - ) - event.itemDamageResistance( - 'create:netherite_diving_helmet', - 13, - 13, - 15 - ) - event.itemDamageResistance( - 'create:netherite_backtank', - 13, - 13, - 15 - ) - event.itemDamageResistance( - 'minecraft:netherite_leggings', - 13, - 13, - 15 - ) - event.itemDamageResistance( - 'create:netherite_diving_boots', - 13, - 13, - 15 - ) - event.itemDamageResistance( - 'gtceu:nanomuscle_helmet', - 16, - 16, - 16 - ) - event.itemDamageResistance( - 'gtceu:nanomuscle_chestplate', - 16, - 16, - 16 - ) - event.itemDamageResistance( - 'gtceu:advanced_nanomuscle_chestplate', - 16, - 16, - 16 - ) - event.itemDamageResistance( - 'gtceu:nanomuscle_leggings', - 16, - 16, - 16 - ) - event.itemDamageResistance( - 'gtceu:nanomuscle_boots', - 16, - 16, - 16 - ) - event.itemDamageResistance( - 'gtceu:quarktech_helmet', - 24, - 24, - 24 - ) - event.itemDamageResistance( - 'gtceu:quarktech_chestplate', - 24, - 24, - 24 - ) - event.itemDamageResistance( - 'gtceu:advanced_quarktech_chestplate', - 24, - 24, - 24 - ) - event.itemDamageResistance( - 'gtceu:quarktech_leggings', - 24, - 24, - 24 - ) - event.itemDamageResistance( - 'gtceu:quarktech_boots', - 24, - 24, - 24 - ) - event.itemDamageResistance( - 'ad_astra:space_helmet', - 16, - 16, - 16 - ) - event.itemDamageResistance( - 'ad_astra:space_suit', - 16, - 16, - 16 - ) - event.itemDamageResistance( - 'ad_astra:space_pants', - 16, - 16, - 16 - ) - event.itemDamageResistance( - 'ad_astra:space_boots', - 16, - 16, - 16 - ) - event.itemDamageResistance( - 'ad_astra:netherite_space_helmet', - 21, - 21, - 21 - ) - event.itemDamageResistance( - 'ad_astra:netherite_space_suit', - 21, - 21, - 21 - ) - event.itemDamageResistance( - 'ad_astra:netherite_space_pants', - 21, - 21, - 21 - ) - event.itemDamageResistance( - 'ad_astra:netherite_space_boots', - 21, - 21, - 21 - ) -} +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfc/loot.js b/kubejs/server_scripts/tfc/loot.js index 044f9b757..62e9e1909 100644 --- a/kubejs/server_scripts/tfc/loot.js +++ b/kubejs/server_scripts/tfc/loot.js @@ -153,7 +153,9 @@ function registerTFCLoots(event) { event.addEntityLootModifier('tfc:bongo') .matchMainHand('#forge:tools/butchery_knives') .addWeightedLoot([2, 4], ['tfc:food/venison']) - + + event.addEntityLootModifier('tfc:caribou') + .addWeightedLoot([1, 3], ['tfc:blubber']) event.addEntityLootModifier('tfc:caribou') .matchMainHand('#forge:tools/butchery_knives') .addWeightedLoot([3, 5], ['tfc:food/venison']) @@ -169,6 +171,14 @@ function registerTFCLoots(event) { event.addEntityLootModifier('tfc:deer') .matchMainHand('#forge:tools/butchery_knives') .addWeightedLoot([2, 4], ['tfc:food/venison']) + + event.addEntityLootModifier('tfc:dolphin') + .removeLoot(ItemFilter.ALWAYS_TRUE) + .addWeightedLoot([5, 12], ['tfc:blubber']) + .addWeightedLoot([1, 5], ['minecraft:bone']) + event.addEntityLootModifier('tfc:dolphin') + .matchMainHand('#forge:tools/butchery_knives') + .addWeightedLoot([2, 6], ['tfc:blubber']) event.addEntityLootModifier('tfc:donkey') .matchMainHand('#forge:tools/butchery_knives') @@ -198,14 +208,25 @@ function registerTFCLoots(event) { .matchMainHand('#forge:tools/butchery_knives') .addWeightedLoot([7, 10], ['tfc:food/horse_meat']) + event.addEntityLootModifier('tfc:manatee') + .removeLoot(ItemFilter.ALWAYS_TRUE) + .addWeightedLoot([5, 12], ['tfc:blubber']) + .addWeightedLoot([1, 5], ['minecraft:bone']) + event.addEntityLootModifier('tfc:manatee') + .matchMainHand('#forge:tools/butchery_knives') + .addWeightedLoot([2, 6], ['tfc:blubber']) + event.addEntityLootModifier('tfc:moose') .matchMainHand('#forge:tools/butchery_knives') .addWeightedLoot([5, 10], ['tfc:food/venison']) + .addWeightedLoot([1, 2], ['tfc:blubber']) event.addEntityLootModifier('tfc:mule') .matchMainHand('#forge:tools/butchery_knives') .addWeightedLoot([7, 10], ['tfc:food/horse_meat']) - + + event.addEntityLootModifier('tfc:musk_ox') + .addWeightedLoot([1, 2], ['tfc:blubber']) event.addEntityLootModifier('tfc:musk_ox') .matchMainHand('#forge:tools/butchery_knives') .addWeightedLoot([7, 10], ['tfc:food/mutton']) @@ -218,9 +239,20 @@ function registerTFCLoots(event) { .matchMainHand('#forge:tools/butchery_knives') .addWeightedLoot([1, 2], ['tfc:food/pheasant']) + event.addEntityLootModifier('tfc:pig') + .addWeightedLoot([3, 6], ['tfc:blubber']) event.addEntityLootModifier('tfc:pig') .matchMainHand('#forge:tools/butchery_knives') .addWeightedLoot([5, 7], ['tfc:food/pork']) + .addWeightedLoot([1, 3], ['tfc:blubber']) + + event.addEntityLootModifier('tfc:orca') + .removeLoot(ItemFilter.ALWAYS_TRUE) + .addWeightedLoot([8, 20], ['tfc:blubber']) + .addWeightedLoot([3, 7], ['minecraft:bone']) + event.addEntityLootModifier('tfc:orca') + .matchMainHand('#forge:tools/butchery_knives') + .addWeightedLoot([4, 10], ['tfc:blubber']) event.addEntityLootModifier('tfc:quail') .matchMainHand('#forge:tools/butchery_knives') diff --git a/kubejs/server_scripts/tfc/recipes.js b/kubejs/server_scripts/tfc/recipes.js index f38d1df41..a6da50e30 100644 --- a/kubejs/server_scripts/tfc/recipes.js +++ b/kubejs/server_scripts/tfc/recipes.js @@ -10,17 +10,8 @@ const registerTFCRecipes = (event) => { removeTFCRecipes(event) registerTFCMaterialsRecipes(event) registerTFCMetalsRecipes(event) - registerTFCStoneRecipes(event) - registerTFCSandRecipes(event) - registerTFCDirtRecipes(event) - registerTFCWoodRecipes(event) - registerTFCKnappingRecipes(event) - registerTFCMachineRecipes(event) - registerTFCAlabasterRecipes(event) registerTFCDyeRecipes(event) - //#region Рецепты порошков - // Добавление рецептов global.TFC_QUERN_POWDER_RECIPE_COMPONENTS.forEach(element => { event.recipes.gtceu.macerator(`tfg:${element.name}`) @@ -33,26 +24,6 @@ const registerTFCRecipes = (event) => { .id(`tfg:quern/${element.name}`) }) - //#endregion - - //#region Рецепты обжарки форм - - global.TFC_FURNACE_MOLD_RECIPE_COMPONENTS.forEach(element => { - event.smelting(element.output, element.input) - .id(`tfg:smelting/${element.name}`) - }) - - global.MINECRAFT_DYE_NAMES.forEach(dye => { - event.smelting(`tfc:ceramic/${dye}_glazed_vessel`, `tfc:ceramic/${dye}_unfired_vessel`) - .id(`tfg:smelting/${dye}_glazed_vessel`) - - event.smelting(`tfc:ceramic/large_vessel/${dye}`, `tfc:ceramic/unfired_large_vessel/${dye}`) - .id(`tfg:smelting/${dye}_large_vessel`) - }) - - //#endregion - - //#region Рецепты электрической теплицы // Дерево @@ -89,21 +60,12 @@ const registerTFCRecipes = (event) => { const itemId = element.id; const recipeId = `greenhouse_${itemId.replace(':', '_')}`; - generateGreenHouseRecipe(event, itemId, '#tfc:any_fresh_water', 8000, `8x ${itemId}`, + generateGreenHouseRecipe(event, itemId, '#tfc:any_fresh_water', 8000, `8x ${itemId}`, recipeId, null, 8, itemId, GTValues.VH[GTValues.LV]); }); //#endregion - event.shapeless('tfc:crucible', ['tfc:crucible']).id('tfg:empty_crucible') - - event.shapeless('2x minecraft:stick', ['#minecraft:saplings', '#forge:tools/knives']).id('tfg:strip_saplings') - - event.recipes.gtceu.cutter('tfg:saplings_to_sticks') - .itemInputs('#minecraft:saplings') - .itemOutputs('2x minecraft:stick') - .duration(20) - .EUt(7) // Доменная печь event.recipes.gtceu.shaped('tfc:blast_furnace', [ @@ -126,40 +88,64 @@ const registerTFCRecipes = (event) => { [TFC.ingredient.notRotten('tfc:pumpkin'), '#tfc:knives'], 'tfc:pumpkin') .id(`tfc:crafting/pumpkin_chunks_knife`) - // Lime + // Flux + Lime event.smelting('tfc:powder/lime', 'tfc:powder/flux') .id('tfg:smelting/lime') - // Kaolinite Clay - regular smelting recipes can't have multiple inputs - event.recipes.gtceu.alloy_smelter('tfg:kaolinite') - .itemInputs('tfc:kaolin_clay') - .circuit(1) - .chancedOutput('tfc:powder/kaolinite', 2000, 0) - .duration(100) - .EUt(16) + event.recipes.gtceu.macerator('flux') + .itemInputs('#tfc:fluxstone') + .itemOutputs('2x tfc:powder/flux') + .duration(30) + .EUt(2) - // Fire Clay - event.recipes.gtceu.alloy_smelter('tfg:cheaper_fire_clay') - .itemInputs('#forge:dusts/graphite', '4x tfc:kaolin_clay') - .itemOutputs('2x tfc:fire_clay') - .duration(600) - .EUt(GTValues.VA[GTValues.ULV]) + event.recipes.gtceu.forge_hammer('flux') + .itemInputs('#tfc:fluxstone') + .itemOutputs('2x tfc:powder/flux') + .duration(30) + .EUt(2) - event.recipes.gtceu.alloy_smelter('tfg:oops_i_smelted_all_my_kaolin') - .itemInputs('minecraft:clay_ball', 'tfc:powder/kaolinite') - .itemOutputs('tfc:kaolin_clay') - .duration(600) - .EUt(GTValues.VA[GTValues.ULV]) + event.recipes.greate.pressing('2x tfc:powder/flux', '#tfc:fluxstone') + .recipeTier(0) + .id('greate:pressing/flux') - // Выпаривание соли + // Salt Water event.recipes.tfc.pot([], Fluid.of('tfc:salt_water', 625), 300, 100) .itemOutput('gtceu:small_salt_dust') .id('tfg:tfc/pot/salt') - // Salt Water generateMixerRecipe(event, ['#forge:dusts/salt'], "#tfg:clean_water 1000", [], 2, Fluid.of('tfc:salt_water', 1000), 40, 7, 64, 'tfg:tfc/salt_water') + event.recipes.gtceu.centrifuge('centrifuging_tfc_salt_water') + .inputFluids(Fluid.of('tfc:salt_water', 1000)) + .itemOutputs('1x gtceu:salt_dust') + .outputFluids(Fluid.of('minecraft:water', 1000)) + .duration(51) + .EUt(30) + .circuit(1) + + event.recipes.gtceu.electrolyzer('electrolyze_tfc_salt_water') + .inputFluids(Fluid.of('tfc:salt_water', 1000)) + .itemOutputs('1x gtceu:sodium_hydroxide_dust', '2x gtceu:small_sodium_hydroxide_dust') + .outputFluids(Fluid.of('gtceu:chlorine', 500), Fluid.of('gtceu:hydrogen', 500)) + .duration(720) + .EUt(30) + + // Add circuit to gregtech salt water mixer recipe + event.remove({ id: 'gtceu:mixer/salt_water' }) + generateMixerRecipe(event, ['2x #forge:dusts/salt'], Fluid.of('minecraft:water', 1000), [], 1, Fluid.of('gtceu:salt_water', 1000), 40, 7, 64, 'tfg:gtceu/salt_water') + + event.recipes.tfc.barrel_instant() + .inputItem(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Salt, 1)) + .inputFluid(Fluid.of('minecraft:water', 1000)) + .outputFluid(Fluid.of('tfc:salt_water', 1000)) + .id('tfg:barrel/water_to_salt_water') + + event.recipes.tfc.barrel_instant() + .inputItem("tfc:powder/salt") + .inputFluid(Fluid.of('minecraft:water', 250)) + .outputFluid(Fluid.of('tfc:salt_water', 250)) + .id('tfg:barrel/water_to_salt_water_tfc') // Seaweed and kelp event.recipes.tfc.heating('tfc:groundcover/seaweed', 200) @@ -176,20 +162,9 @@ const registerTFCRecipes = (event) => { event.smelting('3x tfc:powder/soda_ash', 'tfc:food/dried_seaweed').id('tfg:smelting/dried_seaweed_to_soda') event.smelting('3x tfc:powder/soda_ash', 'tfc:food/dried_kelp').id('tfg:smelting/dried_kelp_to_soda') - //#region Обрушения - - event.recipes.tfc.collapse('#tfg:rock_slabs').id('tfg:collapse/rock_slabs') - event.recipes.tfc.collapse('#tfg:rock_stairs').id('tfg:collapse/rock_stairs') - event.recipes.tfc.collapse('#tfg:rock_walls').id('tfg:collapse/rock_walls') - - //#endregion - //More accesible solar drier event.replaceInput({ id: 'firmalife:crafting/solar_drier' }, 'gtceu:stainless_steel_rod', 'gtceu:silver_rod') - //Wood ash - event.recipes.create.splashing([Item.of('tfc:powder/wood_ash').withChance(0.25), Item.of('minecraft:stick').withChance(0.25)], 'tfc:torch') - .id('tfg:splashing/wash_torch') //Lye generateMixerRecipe(event, 'tfc:powder/wood_ash', "#tfg:clean_water 200", @@ -204,102 +179,36 @@ const registerTFCRecipes = (event) => { .EUt(2) // Brass Mechanism - event.recipes.shapeless('gtceu:small_brass_gear', [ 'tfc:brass_mechanisms' ]).id('tfg:replace_brass_mechanisms') - event.replaceInput({ input: 'tfc:brass_mechanisms' }, 'tfc:brass_mechanisms', 'gtceu:small_brass_gear') + event.replaceInput({ input: 'tfc:brass_mechanisms' }, 'tfc:brass_mechanisms', 'gtceu:small_brass_gear') - // Fertilizers - event.recipes.gtceu.centrifuge('tfg:gtceu/centrifuge/pure_fertilizers') - .itemInputs('1x gtceu:fertilizer') - .itemOutputs('1x tfc:pure_nitrogen', '1x tfc:pure_potassium', '1x tfc:pure_phosphorus') - .duration(340) - .EUt(GTValues.VA[GTValues.ULV]) + // Rennet + event.recipes.gtceu.fermenter('tfg:fermenter/vegetable_rennet') + .itemInputs('#tfg:ferments_to_rennet') + .itemOutputs('firmalife:rennet') + .duration(400) + .EUt(16) - event.recipes.gtceu.mixer('tfg:tfc/mixer/fertilizer') - .itemInputs('1x tfc:pure_nitrogen', '1x tfc:pure_potassium', '1x tfc:pure_phosphorus', ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Clay, 1)) - .itemOutputs('1x gtceu:fertilizer') - .duration(160) - .EUt(GTValues.VA[GTValues.ULV]) + event.recipes.gtceu.fermenter('tfg:fermenter/biomass_rennet') + .inputFluids(Fluid.of('gtceu:fermented_biomass', 100)) + .itemOutputs('firmalife:rennet') + .duration(2400) + .EUt(16) - event.recipes.gtceu.gas_pressurizer('tfg:pure_nitrogen') - .itemInputs('#forge:wax') - .inputFluids(Fluid.of('gtceu:nitrogen', 1000)) - .itemOutputs('16x tfc:pure_nitrogen') + // Brine + event.recipes.gtceu.mixer('tfg:tfc/brine') + .inputFluids(Fluid.of('tfc:salt_water', 900)) + .inputFluids(Fluid.of('tfc:vinegar', 100)) + .outputFluids(Fluid.of('tfc:brine', 1000)) .duration(100) - .EUt(GTValues.VA[GTValues.LV]) + .EUt(16) - //Hide Sewing - const stages = [ - 'raw', - 'soaked', - 'scraped', - 'prepared', - 'sheepskin' - ]; - - stages.forEach(stage => { - //Combining - event.recipes.tfc.damage_inputs_shapeless_crafting( - event.shapeless(`1x tfc:medium_${stage}_hide`, [ - `2x tfc:small_${stage}_hide`, - '#tfc:sewing_needles', - '#forge:string', - 'tfc:glue' - ]).id(`tfg:tfc/small_to_medium_${stage}_hide`) - ) - event.recipes.tfc.damage_inputs_shapeless_crafting( - event.shapeless(`1x tfc:large_${stage}_hide`, [ - `3x tfc:small_${stage}_hide`, - '#tfc:sewing_needles', - '#forge:string', - 'tfc:glue' - ]).id(`tfg:tfc/small_to_large_${stage}_hide`) - ) - - event.recipes.gtceu.assembler(`tfg:gtceu/assembler/small_to_medium_${stage}_hide`) - .inputFluids(Fluid.of('gtceu:glue', 25)) - .itemOutputs(`1x tfc:medium_${stage}_hide`) - .itemInputs(`2x tfc:small_${stage}_hide`) - .duration(60) - .circuit(7) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.assembler(`tfg:gtceu/assembler/small_to_large_${stage}_hide`) - .inputFluids(Fluid.of('gtceu:glue', 25)) - .itemOutputs(`1x tfc:large_${stage}_hide`) - .itemInputs(`3x tfc:small_${stage}_hide`) - .duration(60) - .circuit(9) - .EUt(GTValues.VA[GTValues.ULV]) - - //Cutting - event.recipes.tfc.damage_inputs_shapeless_crafting( - event.shapeless(`2x tfc:small_${stage}_hide`, [ - `1x tfc:medium_${stage}_hide`, - '#forge:shears' - ]).id(`tfg:tfc/medium_to_small_${stage}_hide`) - ) - - event.recipes.tfc.damage_inputs_shapeless_crafting( - event.shapeless(`3x tfc:small_${stage}_hide`, [ - `1x tfc:large_${stage}_hide`, - '#forge:shears' - ]).id(`tfg:tfc/large_to_small_${stage}_hide`) - ) - - event.recipes.gtceu.assembler(`tfg:gtceu/assembler/medium_to_small_${stage}_hide`) - .itemOutputs(`2x tfc:small_${stage}_hide`) - .itemInputs(`1x tfc:medium_${stage}_hide`) - .duration(60) - .circuit(4) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.assembler(`tfg:gtceu/assembler/large_to_small_${stage}_hide`) - .itemOutputs(`3x tfc:small_${stage}_hide`) - .itemInputs(`1x tfc:large_${stage}_hide`) - .duration(60) - .circuit(6) - .EUt(GTValues.VA[GTValues.ULV]) - }); + // LimeWater + Sand -> Mortar + event.recipes.gtceu.mixer('mortar') + .itemInputs('#forge:sand') + .inputFluids(Fluid.of('tfc:limewater', 100)) + .itemOutputs('16x tfc:mortar') + .duration(800) + .EUt(8) // Jar lids @@ -311,46 +220,25 @@ const registerTFCRecipes = (event) => { event.replaceInput({ mod: 'tfc' }, 'minecraft:sugar', '#tfg:sugars') - // Sea Water - event.recipes.tfc.barrel_instant() - .inputItem(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Salt, 1)) - .inputFluid(Fluid.of('minecraft:water', 1000)) - .outputFluid(Fluid.of('tfc:salt_water', 1000)) - .id('tfg:barrel/water_to_salt_water') - event.recipes.tfc.barrel_instant() - .inputItem("tfc:powder/salt") - .inputFluid(Fluid.of('minecraft:water', 250)) - .outputFluid(Fluid.of('tfc:salt_water', 250)) - .id('tfg:barrel/water_to_salt_water_tfc') + // jute net -> burlap net + event.replaceInput({ id: 'tfc:crafting/jute_net' }, 'tfc:jute_fiber', '#tfg:burlap_fiber') - // jute net -> burlap net - event.replaceInput({ id: 'tfc:crafting/jute_net'}, 'tfc:jute_fiber', '#tfg:burlap_fiber') - - // horse armor to use burlap - global.TFC_EQUIPMENT_METALS.forEach(material => { - event.replaceInput({ id: `tfc:crafting/${material}_horse_armor`}, `tfc:jute_fiber`, `#tfg:burlap_fiber`) - }) - - // Just a dummy recipe to tell people they can get wood ash by throwing torches in water via TFC - event.custom({ - type: "ae2:transform", - circumstance: { - type: "fluid", - tag: "tfc:water" - }, - ingredients: [{ item: 'tfc:torch' }], - result: { item: 'tfc:powder/wood_ash' } - }).id(`tfg:ae_transform/torch_to_wood_ash`) - - event.shaped('8x minecraft:ladder', [ - 'A A', - 'AAA', - 'A A' - ], { - A: '#tfc:lumber' - }).id('tfc:crafting/vanilla/ladder') - - event.replaceInput({ id: 'tfc:crafting/vanilla/armor_stand' }, '#minecraft:planks', '#tfc:lumber') - event.remove({ id: 'tfc:crafting/vanilla/armor_stand_bulk' }) + // horse armor to use burlap + global.TFC_EQUIPMENT_METALS.forEach(material => { + event.replaceInput({ id: `tfc:crafting/${material}_horse_armor` }, `tfc:jute_fiber`, `#tfg:burlap_fiber`) + }) + + event.recipes.gtceu.centrifuge('tfg:soot') + .itemInputs('tfc:soot') + .itemOutputs('#forge:dusts/carbon') + .duration(20) + .EUt(2) + + event.recipes.gtceu.extruder('tfg:wrought_iron_grill_electric_only') + .itemInputs('2x #forge:plates/wrought_iron') + .notConsumable('tfg:large_casing_extruder_mold') + .itemOutputs('tfc:wrought_iron_grill') + .duration(60) + .EUt(8) } diff --git a/kubejs/server_scripts/tfc/recipes.machines.js b/kubejs/server_scripts/tfc/recipes.machines.js deleted file mode 100644 index d2f419575..000000000 --- a/kubejs/server_scripts/tfc/recipes.machines.js +++ /dev/null @@ -1,441 +0,0 @@ -// priority: 0 -"use strict"; - -function registerTFCMachineRecipes(event) { - - // Бумага - event.recipes.gtceu.cutter('tfg:unrefined_paper') - .itemInputs('tfc:unrefined_paper') - .itemOutputs('minecraft:paper') - .duration(100) - .EUt(7) - - // Limewater - event.recipes.gtceu.mixer('tfg:limewater_from_lime') - .itemInputs('tfc:powder/lime') - .inputFluids(Fluid.of('water', 500)) - .outputFluids(Fluid.of('tfc:limewater', 500)) - .duration(20) - .EUt(16) - - event.recipes.gtceu.mixer('tfg:limewater_from_flux') - .itemInputs('tfc:powder/flux') - .inputFluids(Fluid.of('water', 500)) - .outputFluids(Fluid.of('tfc:limewater', 500)) - .duration(20) - .EUt(16) - - // Tannin - event.recipes.gtceu.chemical_bath('tfg:tannin') - .itemInputs('#tfc:makes_tannin') - .inputFluids(Fluid.of('water', 1000)) - .outputFluids(Fluid.of('tfc:tannin', 1000)) - .duration(2400) - .EUt(16) - - // Soaked hides - event.recipes.gtceu.chemical_bath('tfg:small_soaked_hide') - .itemInputs('tfc:small_raw_hide') - .inputFluids(Fluid.of('tfc:limewater', 300)) - .itemOutputs('tfc:small_soaked_hide') - .duration(1600) - .EUt(16) - - event.recipes.gtceu.chemical_bath('tfg:medium_soaked_hide') - .itemInputs('tfc:medium_raw_hide') - .inputFluids(Fluid.of('tfc:limewater', 400)) - .itemOutputs('tfc:medium_soaked_hide') - .duration(2400) - .EUt(16) - - event.recipes.gtceu.chemical_bath('tfg:large_soaked_hide') - .itemInputs('tfc:large_raw_hide') - .inputFluids(Fluid.of('tfc:limewater', 500)) - .itemOutputs('tfc:large_soaked_hide') - .duration(3200) - .EUt(16) - - // Scraped Hides - event.recipes.gtceu.cutter('tfg:small_scraped_hide') - .itemInputs('tfc:small_soaked_hide') - .itemOutputs('tfc:small_scraped_hide') - .duration(100) - .EUt(7) - - event.recipes.gtceu.cutter('tfg:medium_scraped_hide') - .itemInputs('tfc:medium_soaked_hide') - .itemOutputs('tfc:medium_scraped_hide') - .duration(100) - .EUt(7) - - event.recipes.gtceu.cutter('tfg:large_scraped_hide') - .itemInputs('tfc:large_soaked_hide') - .itemOutputs('tfc:large_scraped_hide') - .duration(100) - .EUt(7) - - // Prepared hides - event.recipes.gtceu.chemical_bath('tfg:small_prepared_hide') - .itemInputs('tfc:small_soaked_hide') - .inputFluids(Fluid.of('water', 300)) - .itemOutputs('tfc:small_prepared_hide') - .duration(1600) - .EUt(16) - - event.recipes.gtceu.chemical_bath('tfg:medium_prepared_hide') - .itemInputs('tfc:medium_soaked_hide') - .inputFluids(Fluid.of('water', 400)) - .itemOutputs('tfc:medium_prepared_hide') - .duration(2400) - .EUt(16) - - event.recipes.gtceu.chemical_bath('tfg:large_prepared_hide') - .itemInputs('tfc:large_soaked_hide') - .inputFluids(Fluid.of('water', 500)) - .itemOutputs('tfc:large_prepared_hide') - .duration(3200) - .EUt(16) - - // Leather - event.recipes.gtceu.chemical_bath('tfg:small_leather') - .itemInputs('tfc:small_prepared_hide') - .inputFluids(Fluid.of('tfc:tannin', 300)) - .itemOutputs('minecraft:leather') - .duration(1600) - .EUt(16) - - event.recipes.gtceu.chemical_bath('tfg:medium_leather') - .itemInputs('tfc:medium_prepared_hide') - .inputFluids(Fluid.of('tfc:tannin', 400)) - .itemOutputs('2x minecraft:leather') - .duration(2400) - .EUt(16) - - event.recipes.gtceu.chemical_bath('tfg:large_leather') - .itemInputs('tfc:large_prepared_hide') - .inputFluids(Fluid.of('tfc:tannin', 500)) - .itemOutputs('3x minecraft:leather') - .duration(3200) - .EUt(16) - - //#region Молды в ассемблере - - for (let i = 0; i < global.TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS.length; i++) { - let element = global.TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS[i]; - - event.recipes.gtceu.assembler(`tfg:tfc/${element.name}`) - .itemInputs(element.input) - .circuit(i) - .itemOutputs(element.output) - .duration(450) - .EUt(2) - } - - event.recipes.gtceu.extruder('tfg:unfired_clay_brick') - .itemInputs('minecraft:clay_ball') - .notConsumable('gtceu:ingot_extruder_mold') - .itemOutputs('tfc:ceramic/unfired_brick') - .duration(20) - .EUt(2) - - event.recipes.gtceu.extruder('tfg:unfired_fire_clay_brick') - .itemInputs('tfc:fire_clay') - .notConsumable('gtceu:ingot_extruder_mold') - .itemOutputs('tfc:ceramic/unfired_fire_brick') - .duration(20) - .EUt(2) - - //#endregion - - //#region Стеклянные смеси в бутылки в ассемблере - - global.TFC_BATCH_TO_BOTTLE_ASSEMBLING_RECIPE_COMPONENTS.forEach(element => { - event.recipes.gtceu.alloy_smelter(`tfg:tfc/${element.name}`) - .itemInputs(element.input) - .notConsumable('gtceu:bottle_casting_mold') - .itemOutputs(element.output) - .duration(100) - .EUt(2) - .category(GTRecipeCategories.INGOT_MOLDING) - }) - - //#endregion - - //#region СЫЫЫР 0_0 - - // Rennet - event.recipes.gtceu.fermenter('tfg:fermenter/vegetable_rennet') - .itemInputs('#tfg:ferments_to_rennet') - .itemOutputs('firmalife:rennet') - .duration(400) - .EUt(16) - - event.recipes.gtceu.fermenter('tfg:fermenter/biomass_rennet') - .inputFluids(Fluid.of('gtceu:fermented_biomass', 100)) - .itemOutputs('firmalife:rennet') - .duration(2400) - .EUt(16) - - //#endregion - - // Brine - - event.recipes.gtceu.mixer('tfg:tfc/brine') - .inputFluids(Fluid.of('tfc:salt_water', 900)) - .inputFluids(Fluid.of('tfc:vinegar', 100)) - .outputFluids(Fluid.of('tfc:brine', 1000)) - .duration(100) - .EUt(16) - - //#endregion - - // Lamp Glass - event.recipes.gtceu.alloy_smelter(`tfg:tfc/lamp_glass`) - .itemInputs('#tfc:glass_batches') - .notConsumable('#tfg:unfinished_lamps') - .itemOutputs('tfc:lamp_glass') - .duration(100) - .EUt(2) - - event.recipes.gtceu.alloy_smelter(`tfg:tfc/lamp_glass_from_dust`) - .itemInputs('#forge:dusts/glass') - .notConsumable('#tfg:unfinished_lamps') - .itemOutputs('tfc:lamp_glass') - .duration(100) - .EUt(2) - - // Empty Jar - event.recipes.gtceu.alloy_smelter('tfc:jar_alloying') - .itemInputs('#tfc:glass_batches_tier_2') - .notConsumable('gtceu:ball_casting_mold') - .itemOutputs('tfc:empty_jar') - .duration(100) - .EUt(2) - .category(GTRecipeCategories.INGOT_MOLDING) - - event.recipes.gtceu.fluid_solidifier('tfc:jar_solidification') - .inputFluids(Fluid.of('gtceu:glass', 144)) - .notConsumable('gtceu:cylinder_casting_mold') - .itemOutputs('tfc:empty_jar') - .duration(100) - .EUt(2) - - event.recipes.gtceu.extractor('tfc:jar_extraction') - .itemInputs('#tfc:jars') - .outputFluids(Fluid.of('gtceu:glass', 144)) - .duration(50) - .EUt(2) - - event.recipes.gtceu.extractor('tfc:glass_batch_extraction') - .itemInputs('#tfc:glass_batches') - .outputFluids(Fluid.of('gtceu:glass', 144)) - .duration(50) - .EUt(2) - - event.recipes.gtceu.lathe('tfc:lens') - .itemInputs('#forge:glass') - .itemOutputs('tfc:lens') - .duration(100) - .EUt(16) - - // Wool Yarn - event.recipes.gtceu.macerator('macerate_wool') - .itemInputs('#minecraft:wool') - .itemOutputs('tfc:wool_yarn') - .chancedOutput('tfc:wool_yarn', 9000, 0) - .chancedOutput('tfc:wool_yarn', 5000, 0) - .chancedOutput('tfc:wool_yarn', 2000, 0) - .duration(200) - .EUt(2) - - // LimeWater + Sand -> Mortar - event.recipes.gtceu.mixer('mortar') - .itemInputs('#forge:sand') - .inputFluids(Fluid.of('tfc:limewater', 100)) - .itemOutputs('16x tfc:mortar') - .duration(800) - .EUt(8) - - - // 1x Small SheepSkin -> 1x Wool - event.recipes.gtceu.assembler('tfg:tfc/wool_1') - .itemInputs('tfc:small_sheepskin_hide') - .itemOutputs('tfc:wool') - .duration(100) - .circuit(3) - .EUt(4) - - // 1x Medium SheepSkin -> 1x Wool - event.recipes.gtceu.assembler('tfg:tfc/wool_2') - .itemInputs('tfc:medium_sheepskin_hide') - .itemOutputs('2x tfc:wool') - .duration(100) - .circuit(3) - .EUt(4) - - // 1x Large SheepSkin -> 1x Wool - event.recipes.gtceu.assembler('tfg:tfc/wool_3') - .itemInputs('tfc:large_sheepskin_hide') - .itemOutputs('3x tfc:wool') - .duration(100) - .circuit(3) - .EUt(4) - - // Wool Yarn - event.recipes.gtceu.wiremill('tfg:tfc/wool_yarn') - .itemInputs('tfc:wool') - .itemOutputs('8x tfc:wool_yarn') - .duration(100) - .EUt(4) - - // Burlap Cloth - event.recipes.gtceu.assembler('tfg:tfc/burlap_cloth') - .itemInputs('12x tfc:jute_fiber') - .circuit(0) - .itemOutputs('tfc:burlap_cloth') - .duration(100) - .EUt(4) - - // Silk Cloth - event.recipes.gtceu.assembler('tfg:tfc/silk_cloth') - .itemInputs('24x minecraft:string') - .circuit(0) - .itemOutputs('tfc:silk_cloth') - .duration(100) - .EUt(4) - - // Wool Cloth - event.recipes.gtceu.assembler('tfg:tfc/wool_cloth') - .itemInputs('16x tfc:wool_yarn') - .circuit(0) - .itemOutputs('tfc:wool_cloth') - .duration(100) - .EUt(4) - - // Cloths to Wool - event.recipes.gtceu.assembler('tfg:tfc/cloth_to_wool') - .itemInputs('4x #tfc:sewing_light_cloth') - .itemOutputs('8x minecraft:white_wool') - .circuit(16) - .duration(100) - .EUt(4) - - // Jute Fiber - generateMixerRecipe(event, 'tfc:jute', "#tfg:clean_water 200", - 'tfc:jute_fiber', null, [], 100, 4, 16, 'tfg:tfc/jute_fiber') - - // Ceramic Recycling - event.recipes.gtceu.macerator('tfg:sherd_to_brick_dust') - .itemInputs('firmalife:pottery_sherd') - .itemOutputs('#forge:dusts/brick') - .category(GTRecipeCategories.MACERATOR_RECYCLING) - .duration(20) - .EUt(2) - - event.recipes.gtceu.macerator('tfg:ceramic_molds') - .itemInputs('#tfc:fired_molds') - .itemOutputs('2x #forge:dusts/brick') - .category(GTRecipeCategories.MACERATOR_RECYCLING) - .duration(20) - .EUt(2) - - event.recipes.gtceu.macerator('tfg:large_vessels') - .itemInputs('#tfc:fired_large_vessels') - .itemOutputs('5x #forge:dusts/brick') - .category(GTRecipeCategories.MACERATOR_RECYCLING) - .duration(20) - .EUt(2) - - event.recipes.gtceu.macerator('tfg:casting_channel') - .itemInputs('tfcchannelcasting:channel') - .itemOutputs('1x #forge:dusts/brick') - .category(GTRecipeCategories.MACERATOR_RECYCLING) - .duration(20) - .EUt(2) - - event.recipes.gtceu.macerator('tfg:mold_table') - .itemInputs('tfcchannelcasting:mold_table') - .itemOutputs('5x #forge:dusts/brick') - .category(GTRecipeCategories.MACERATOR_RECYCLING) - .duration(20) - .EUt(2) - - // Humus and compost - event.recipes.gtceu.extractor('tfg:humus_from_leaves') - .itemInputs('#minecraft:leaves') - .itemOutputs('tfc:groundcover/humus') - .duration(600) - .EUt(2) - - event.recipes.gtceu.extractor('tfg:humus_from_fallen_leaves') - .itemInputs('#tfc:fallen_leaves') - .itemOutputs('tfc:groundcover/humus') - .duration(600) - .EUt(2) - - event.recipes.gtceu.fermenter('tfg:fertilizer_to_compost') - .itemInputs('4x gtceu:fertilizer') - .itemOutputs('tfc:compost') - .duration(1200) - .EUt(2) - - const BROWNS = [ '16x #tfc:compost_browns_low', '8x #tfc:compost_browns', '4x #tfc:compost_browns_high' ]; - const GREENS = [ '16x #tfc:compost_greens_low', '8x #tfc:compost_greens', '4x #tfc:compost_greens_high' ]; - - let i = 0; - BROWNS.forEach(brown => { - GREENS.forEach(green => { - event.recipes.gtceu.mixer(`tfg:compost_${i++}`) - .itemInputs(brown, green) - .itemOutputs('tfc:compost') - .duration(1200) - .EUt(2) - }) - }) - - event.recipes.gtceu.centrifuge('tfg:soot') - .itemInputs('tfc:soot') - .itemOutputs('#forge:dusts/carbon') - .duration(20) - .EUt(2) - - // Stripped logs - - global.TFC_WOOD_TYPES.forEach(wood => { - event.recipes.gtceu.lathe(`tfg:stripping_${wood}_log`) - .itemInputs(`tfc:wood/log/${wood}`) - .itemOutputs(`tfc:wood/stripped_log/${wood}`) - .duration(50) - .EUt(2) - - event.recipes.gtceu.lathe(`tfg:stripping_${wood}_wood`) - .itemInputs(`tfc:wood/wood/${wood}`) - .itemOutputs(`tfc:wood/stripped_wood/${wood}`) - .duration(50) - .EUt(2) - - event.custom({ - type: 'vintageimprovements:polishing', - ingredients: [{ item: `tfc:wood/log/${wood}` }], - results: [{ item: `tfc:wood/stripped_log/${wood}` }], - speed_limits: 0, - processingTime: 50 - }).id(`tfg:vi/lathe/stripping_${wood}_log`) - - event.custom({ - type: 'vintageimprovements:polishing', - ingredients: [{ item: `tfc:wood/wood/${wood}` }], - results: [{ item: `tfc:wood/stripped_wood/${wood}` }], - speed_limits: 0, - processingTime: 50 - }).id(`tfg:vi/lathe/stripping_${wood}_wood`) - }) - - - event.recipes.gtceu.extruder('tfg:wrought_iron_grill_electric_only') - .itemInputs('2x #forge:plates/wrought_iron') - .notConsumable('tfg:large_casing_extruder_mold') - .itemOutputs('tfc:wrought_iron_grill') - .duration(60) - .EUt(8) -} diff --git a/kubejs/server_scripts/tfc/recipes.materials.js b/kubejs/server_scripts/tfc/recipes.materials.js index 064897fba..5fc44fd5e 100644 --- a/kubejs/server_scripts/tfc/recipes.materials.js +++ b/kubejs/server_scripts/tfc/recipes.materials.js @@ -623,7 +623,7 @@ function registerTFCMaterialsRecipes(event) { } // Nugget - let nuggetItem = ChemicalHelper.get(TagPrefix.nugget, material, 6) + let nuggetItem = ChemicalHelper.get(TagPrefix.nugget, material, 9) if (!nuggetItem.isEmpty()) { event.recipes.tfc.heating(`#forge:nuggets/${material.getName()}`, tfcProperty.getMeltTemp()) @@ -642,7 +642,7 @@ function registerTFCMaterialsRecipes(event) { if (tfcProperty.getMeltTemp() <= 1540) { event.recipes.tfc.heating(`gtceu:small_${material.getName()}_gear`, tfcProperty.getMeltTemp()) - .resultFluid(Fluid.of(`gtceu:${material.getName()}`, 144)) + .resultFluid(Fluid.of(outputMaterial, 144)) .id(`tfc:heating/small_${material.getName()}_gear`) } diff --git a/kubejs/server_scripts/tfc/recipes.metals.js b/kubejs/server_scripts/tfc/recipes.metals.js index a1026e886..82358d538 100644 --- a/kubejs/server_scripts/tfc/recipes.metals.js +++ b/kubejs/server_scripts/tfc/recipes.metals.js @@ -200,39 +200,6 @@ function registerTFCMetalsRecipes(event) { .duration(700) .EUt(4) - // Rose Gold + Sterling Silver - const copper_types = [ - "#forge:ingots/copper", - "#forge:dusts/copper", - "#forge:ingots/annealed_copper", - "#forge:dusts/annealed_copper" - ]; - const gold_types = [ - "#forge:ingots/gold", - "#forge:dusts/gold" - ]; - const silver_types = [ - "#forge:ingots/silver", - "#forge:dusts/silver" - ]; - - copper_types.forEach(copper_types_array => { - gold_types.forEach(gold_types_array => { - event.recipes.gtceu.alloy_smelter(`rose_gold_from_${copper_types_array.replace(/:/g, "/").replace(/#/g, "")}_and_${gold_types_array.replace(/:/g, "/").replace(/#/g, "")}`) - .itemInputs(Ingredient.of(copper_types_array).withCount(1), Ingredient.of(gold_types_array).withCount(4)) - .itemOutputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.RoseGold, 5)) - .duration(20*10) - .EUt(GTValues.VA[GTValues.LV]) - }); - silver_types.forEach(silver_types_array => { - event.recipes.gtceu.alloy_smelter(`sterling_silver_from_${copper_types_array.replace(/:/g, "/").replace(/#/g, "")}_and_${silver_types_array.replace(/:/g, "/").replace(/#/g, "")}`) - .itemInputs(Ingredient.of(copper_types_array).withCount(1), Ingredient.of(silver_types_array).withCount(4)) - .itemOutputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.SterlingSilver, 5)) - .duration(20*10) - .EUt(GTValues.VA[GTValues.LV]) - }); - }); - const TFC_INTERMEDIATE_METALS = [ @@ -401,6 +368,10 @@ function registerTFCMetalsRecipes(event) { }) //#endregion + event.smelting('minecraft:iron_ingot', '#forge:ingots/wrought_iron') + .id('tfg:revert_wrought_iron_ingot') + + // Melting powders const METAL_POWDERS = [ diff --git a/kubejs/server_scripts/tfc/recipes.wood.js b/kubejs/server_scripts/tfc/recipes.wood.js deleted file mode 100644 index 7ede26945..000000000 --- a/kubejs/server_scripts/tfc/recipes.wood.js +++ /dev/null @@ -1,55 +0,0 @@ -// priority: 0 -"use strict"; - -function registerTFCWoodRecipes(event) { - - event.replaceInput({ output: '#tfc:sewing_tables'}, '#forge:shears', '#forge:tools/knives') - - // Какие то рецепты дерева - global.TFC_WOOD_TYPES.forEach(wood => { - event.remove({ id: `tfc:crafting/wood/${wood}_axle` }) - event.remove({ id: `tfc:crafting/wood/${wood}_bladed_axle` }) - event.remove({ id: `tfc:crafting/wood/${wood}_encased_axle` }) - event.remove({ id: `tfc:crafting/wood/${wood}_clutch` }) - event.remove({ id: `tfc:crafting/wood/${wood}_gear_box` }) - event.remove({ id: `tfc:crafting/wood/${wood}_water_wheel` }) - - // Бревна -> Пиломатериалы - generateCutterRecipe(event, `#tfc:${wood}_logs`, `16x tfc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_log`) - - // Доски -> Пиломатериалы - generateCutterRecipe(event, `tfc:wood/planks/${wood}`, `4x tfc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_planks`) - - // Ступень -> Пиломатериалы - generateCutterRecipe(event, `tfc:wood/planks/${wood}_stairs`, `3x tfc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_stairs`) - - - // Плита -> Пиломатериалы - generateCutterRecipe(event, `tfc:wood/planks/${wood}_slab`, `2x tfc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_slab`) - - // ? -> Деревянная нажимная пластина - event.shaped(`tfc:wood/planks/${wood}_pressure_plate`, [ - ' B ', - 'CDC', - ' E ' - ], { - B: '#tfc:hammers', - C: `tfc:wood/planks/${wood}_slab`, - D: '#forge:small_springs', - E: '#forge:tools/screwdrivers' - }).id(`tfc:crafting/wood/${wood}_pressure_plate`) - - event.recipes.gtceu.assembler(`${wood}_pressure_plate`) - .itemInputs('#forge:small_springs', `2x tfc:wood/planks/${wood}_slab`) - .circuit(3) - .itemOutputs(`2x tfc:wood/planks/${wood}_pressure_plate`) - .duration(50) - .EUt(2) - - // ? -> Деревянная кнопка - event.remove({ id: `tfc:crafting/wood/${wood}_button` }) - - generateCutterRecipe(event, `tfc:wood/planks/${wood}_pressure_plate`, `6x tfc:wood/planks/${wood}_button`, 50, 7, `${wood}_button`) - - }) -} \ No newline at end of file diff --git a/kubejs/server_scripts/tfc/tags.js b/kubejs/server_scripts/tfc/tags.js index ec4deede5..16edea41c 100644 --- a/kubejs/server_scripts/tfc/tags.js +++ b/kubejs/server_scripts/tfc/tags.js @@ -18,51 +18,70 @@ function registerTFCItemTags(event) { } }); - event.add("tfc:usable_on_tool_rack", "#forge:tools/mining_hammers"); - event.add("tfc:usable_on_tool_rack", "#forge:tools/spades"); - event.add("tfc:usable_on_tool_rack", "#forge:tools/wrenches"); - event.add("tfc:usable_on_tool_rack", "#forge:tools/files"); - event.add("tfc:usable_on_tool_rack", "#forge:tools/crowbars"); - event.add("tfc:usable_on_tool_rack", "#forge:tools/screwdrivers"); - event.add("tfc:usable_on_tool_rack", "#forge:tools/wire_cutters"); - event.add("tfc:usable_on_tool_rack", "#forge:tools/butchery_knives"); - event.add("tfc:usable_on_tool_rack", "#forge:tools/plungers"); - event.add("tfc:usable_on_tool_rack", "#forge:tools/mortars"); - event.add("tfc:usable_on_tool_rack", "#forge:tools/mallets"); - - event.add("tfc:usable_on_tool_rack", "#forge:tools/chainsaws"); - event.add("tfc:usable_on_tool_rack", "#forge:tools/buzzsaws"); - event.add("tfc:usable_on_tool_rack", "#forge:tools/drills"); - - event.add("tfc:usable_on_tool_rack", "#forge:tools/fishing_nets"); - - event.add("tfc:usable_on_tool_rack", "#tfc:buckets"); - - event.add("tfc:usable_on_tool_rack", "buildinggadgets2:gadget_building"); - event.add("tfc:usable_on_tool_rack", "buildinggadgets2:gadget_exchanging"); - event.add("tfc:usable_on_tool_rack", "buildinggadgets2:gadget_copy_paste"); - event.add("tfc:usable_on_tool_rack", "buildinggadgets2:gadget_cut_paste"); - event.add("tfc:usable_on_tool_rack", "buildinggadgets2:gadget_destruction"); - event.add("tfc:usable_on_tool_rack", "create:super_glue"); - event.add("tfc:usable_on_tool_rack", "exposure:camera"); - event.add("tfc:usable_on_tool_rack", "measurements:tape_measure"); - event.add("tfc:usable_on_tool_rack", "#chalk:chalks"); - event.add("tfc:usable_on_tool_rack", "chalk:chalk_box"); - event.add("tfc:usable_on_tool_rack", "computercraft:pocket_computer_normal"); - event.add("tfc:usable_on_tool_rack", "computercraft:pocket_computer_advanced"); - event.add("tfc:usable_on_tool_rack", "grapplemod:grapplinghook"); - event.add("tfc:usable_on_tool_rack", "grapplemod:launcheritem"); - event.add("tfc:usable_on_tool_rack", "ae2:color_applicator"); - event.add("tfc:usable_on_tool_rack", "ae2:matter_cannon"); - event.add("tfc:usable_on_tool_rack", "ae2:network_tool"); - event.add("tfc:usable_on_tool_rack", "ae2:wireless_terminal"); - event.add("tfc:usable_on_tool_rack", "ae2:wireless_crafting_terminal"); - event.add("tfc:usable_on_tool_rack", "waterflasks:leather_flask"); - event.add("tfc:usable_on_tool_rack", "waterflasks:iron_flask"); - event.add("tfc:usable_on_tool_rack", "waterflasks:red_steel_flask"); - event.add("tfc:usable_on_tool_rack", "tfc:wool_cloth"); - event.add("tfc:usable_on_tool_rack", "firmalife:mixing_bowl"); - event.add("tfc:usable_on_tool_rack", "#gtceu:molds"); + /** + * @type {string[]} - Item IDs and tags usable on tfc tool racks. + */ + const usableOnToolRack = [ + "#forge:tools/mining_hammers", + "#forge:tools/spades", + "#forge:tools/wrenches", + "#forge:tools/files", + "#forge:tools/crowbars", + "#forge:tools/screwdrivers", + "#forge:tools/wire_cutters", + "#forge:tools/butchery_knives", + "#forge:tools/plungers", + "#forge:tools/mortars", + "#forge:tools/mallets", + "#forge:tools/chainsaws", + "#forge:tools/buzzsaws", + "#forge:tools/drills", + "#forge:tools/fishing_nets", + "#tfc:buckets", + "buildinggadgets2:gadget_building", + "buildinggadgets2:gadget_exchanging", + "buildinggadgets2:gadget_copy_paste", + "buildinggadgets2:gadget_cut_paste", + "buildinggadgets2:gadget_destruction", + "create:super_glue", + "exposure:camera", + "measurements:tape_measure", + "#chalk:chalks", + "chalk:chalk_box", + "computercraft:pocket_computer_normal", + "computercraft:pocket_computer_advanced", + "grapplemod:grapplinghook", + "grapplemod:launcheritem", + "ae2:color_applicator", + "ae2:matter_cannon", + "ae2:network_tool", + "ae2:wireless_terminal", + "ae2:wireless_crafting_terminal", + "waterflasks:leather_flask", + "waterflasks:iron_flask", + "waterflasks:red_steel_flask", + "tfc:wool_cloth", + "firmalife:mixing_bowl", + "#gtceu:molds", + "#gtceu:molds", + "create:wrench", + "framedblocks:framed_screwdriver", + "framedblocks:framed_wrench", + "framedblocks:framed_hammer", + "framedblocks:framed_key", + "mcw_tfc_aio:roofing_hammer", + "tfclunchbox:lunchbox", + "tfclunchbox:cooling_lunchbox", + "tfclunchbox:electric_lunchbox", + "primitive_creatures:yhgi", + "primitive_creatures:reh", + "species:harpoon", + "species:crankbow", + "tfg:trowel" + ]; + usableOnToolRack.forEach((entry) => { + event.add("tfc:usable_on_tool_rack", entry); + }); // Ингредиенты для закваски event.add("tfg:ferments_to_rennet", "tfc:food/soybean"); @@ -92,14 +111,6 @@ function registerTFCItemTags(event) { event.add("minecraft:fishes", "tfc:food/rainbow_trout"); event.add("minecraft:fishes", "tfc:food/smallmouth_bass"); - // Make eggs not useless - event.add("tfc:foods/usable_in_salad", "tfc:food/cooked_egg"); - event.add("tfc:foods/usable_in_salad", "tfc:food/boiled_egg"); - event.add("tfc:foods/usable_in_jam_sandwich", "tfc:food/cooked_egg"); - event.add("tfc:foods/usable_in_jam_sandwich", "tfc:food/boiled_egg"); - event.add("tfc:foods/usable_in_sandwich", "tfc:food/cooked_egg"); - event.add("tfc:foods/usable_in_sandwich", "tfc:food/boiled_egg"); - // Чтобы жарились бревна из TFC в пиролиз. печке // Почему нельзя просто добавить тег в тег? (допустим minecraft:logs), потому что из-за этого ломаются все рецепты minecraft:logs, магия... global.TFC_WOOD_TYPES.forEach((woodType) => { @@ -128,16 +139,6 @@ function registerTFCItemTags(event) { event.add("tfc:blast_furnace_fuel", "gtceu:coke_gem"); event.add("tfc:blast_furnace_fuel", "beneath:cursecoal"); - // Create a tag for Steam Bloomery - - event.add("tfc:steam_bloomery_basic_fuels", "minecraft:coal"); - event.add("tfc:steam_bloomery_basic_fuels", "minecraft:charcoal"); - event.add("tfc:steam_bloomery_basic_fuels", "gtceu:rich_raw_coal"); - event.add("tfc:steam_bloomery_basic_fuels", "gtceu:raw_coal"); - event.add("tfc:steam_bloomery_basic_fuels", "gtceu:poor_raw_coal"); - event.add("tfc:steam_bloomery_basic_fuels", "gtceu:coal_dust"); - event.add("tfc:steam_bloomery_basic_fuels", "gtceu:charcoal_dust"); - // Тэги для сундуков, чтобы отличать их виды global.TFC_WOOD_TYPES.forEach((woodType) => { event.add("tfg:default_chests", `tfc:wood/chest/${woodType}`); @@ -312,12 +313,6 @@ function registerTFCItemTags(event) { event.add("forge:cloth", "tfc:wool_cloth"); event.add("forge:cloth", "tfc:silk_cloth"); - // Piglin loved - event.add("minecraft:piglin_loved", "tfc:ore/small_native_gold"); - event.add("minecraft:piglin_loved", "tfc:ore/poor_native_gold"); - event.add("minecraft:piglin_loved", "tfc:ore/normal_native_gold"); - event.add("minecraft:piglin_loved", "tfc:ore/rich_native_gold"); - // Bells event.add("tfc:bells", "tfc:bronze_bell"); event.add("tfc:bells", "tfc:brass_bell"); @@ -413,36 +408,6 @@ function registerTFCBlockTags(event) { // Удаление тегов у руд event.removeAllTagsFrom("/tfc:ore/[^*]+/[^*]+/"); - //#region Nether - - event.add("beneath:nether_bush_plantable_on", "#tfc:clay_grass"); - event.add("minecraft:small_dripleaf_placeable", "#tfc:clay_grass"); - event.add("minecraft:big_dripleaf_placeable", "#tfc:clay_grass"); - event.add("minecraft:frogs_spawnable_on", "#tfc:clay_grass"); - event.add("minecraft:axolotls_spawnable_on", "#tfc:clay_grass"); - - event.add("minecraft:small_dripleaf_placeable", "#tfc:clay"); - event.add("minecraft:big_dripleaf_placeable", "#tfc:clay"); - event.add("minecraft:frogs_spawnable_on", "#tfc:clay"); - event.add("minecraft:axolotls_spawnable_on", "#tfc:clay"); - - event.add("beneath:nether_bush_plantable_on", "#tfc:mud"); - event.add("minecraft:frogs_spawnable_on", "#tfc:mud"); - - event.add("beneath:nether_bush_plantable_on", "#tfc:dirt"); - event.add("minecraft:frogs_spawnable_on", "#tfc:dirt"); - - event.add("minecraft:base_stone_nether", "tfc:rock/raw/gneiss"); - event.add("minecraft:base_stone_nether", "tfc:rock/raw/schist"); - event.add("minecraft:base_stone_nether", "tfc:rock/raw/diorite"); - event.add("minecraft:base_stone_nether", "tfc:rock/raw/granite"); - event.add("minecraft:base_stone_nether", "tfc:rock/raw/gabbro"); - event.add("minecraft:base_stone_nether", "tfc:rock/raw/basalt"); - event.add("minecraft:nether_carver_replaceables", "#minecraft:base_stone_nether"); - event.add("minecraft:frogs_spawnable_on", "#minecraft:base_stone_nether"); - - //#endregion - // Lets the basin be put on top of a charcoal forge event.add("tfc:forge_invisible_whitelist", "create:basin"); @@ -467,8 +432,13 @@ function registerTFCBlockTags(event) { event.add('tfc:can_be_snow_piled', 'tfc:groundcover/feather'); - event.add('tfcambiental:hot_stuff', 'tfc:pot'); - event.add('tfcambiental:hot_stuff', 'tfc:grill'); + event.add('minecraft:infiniburn_overworld', 'tfc:rock/magma/granite') + event.add('minecraft:infiniburn_overworld', 'tfc:rock/magma/diorite') + event.add('minecraft:infiniburn_overworld', 'tfc:rock/magma/gabbro') + event.add('minecraft:infiniburn_overworld', 'tfc:rock/magma/rhyolite') + event.add('minecraft:infiniburn_overworld', 'tfc:rock/magma/basalt') + event.add('minecraft:infiniburn_overworld', 'tfc:rock/magma/andesite') + event.add('minecraft:infiniburn_overworld', 'tfc:rock/magma/dacite') } /** @param {TagEvent.Fluid} event */ @@ -611,7 +581,7 @@ function registerTFCFluidTags(event) { event.add("tfc:usable_in_red_steel_bucket", idStr); } // Burns ya. - if (temp >= 370) { + if (temp >= 1300) { event.add("tfchotornot:hot_whitelist", idStr); } // Blue steel: can do heat, can't do cryo. @@ -687,6 +657,8 @@ function registerTFCFluidTags(event) { // Can use only neutral fluids. event.add('tfc:usable_in_barrel', '#forge:neutral_fluids'); event.add('tfc:usable_in_wooden_bucket', '#forge:neutral_fluids'); + // Ceramic jugs and glass bottles + event.add('tfc:usable_in_jug', '#forge:neutral_fluids'); event.add('firmalife:usable_in_mixing_bowl', '#forge:neutral_fluids'); // All fluids are given the '#tfg:not_solid' tag incase we have a use for them regardless of state. @@ -697,6 +669,7 @@ function registerTFCFluidTags(event) { /***********************************************************************************************************/ event.add("tfc:ingredients", "tfc:spring_water"); + event.add('tfc:drinkables', 'tfc:spring_water') event.add("tfc:alcohols", "tfcagedalcohol:aged_beer"); event.add("tfc:alcohols", "tfcagedalcohol:aged_cider"); @@ -707,6 +680,7 @@ function registerTFCFluidTags(event) { event.add("tfc:alcohols", "tfcagedalcohol:aged_corn_whiskey"); event.add("tfc:alcohols", "tfcagedalcohol:aged_rye_whiskey"); event.add("tfc:alcohols", "tfcagedalcohol:aged_mead"); + event.add("tfc:alcohols", "tfc_gurman:nalivka"); // Добавляем тег для скрытия в EMI event.add("c:hidden_from_recipe_viewers", "tfc:metal/bismuth"); @@ -732,41 +706,4 @@ function registerTFCFluidTags(event) { event.add("c:hidden_from_recipe_viewers", "tfc:metal/high_carbon_black_steel"); event.add("c:hidden_from_recipe_viewers", "tfc:metal/high_carbon_red_steel"); event.add("c:hidden_from_recipe_viewers", "tfc:metal/high_carbon_blue_steel"); -} - -/** @param {TagEvent.Biome} event */ -function registerTFCBiomeTags(event) { - event.add("tfc:kaolin_clay_spawns_in", "tfc:rolling_hills"); - - global.TFC_BIOMES.forEach(biome => { - event.add('tfg:overworld_biomes', biome); - }) -} - -/** @param {TagEvent.PlacedFeature} event */ -function registerTFCPlacedFeatures(event) { - // Add back the non-ore ones - event.add("tfc:in_biome/veins", "tfc:vein/gravel"); - event.add("tfc:in_biome/veins", "tfc:vein/kaolin_disc"); - event.add("tfc:in_biome/veins", "tfc:vein/granite_dike"); - event.add("tfc:in_biome/veins", "tfc:vein/diorite_dike"); - event.add("tfc:in_biome/veins", "tfc:vein/gabbro_dike"); - - // Geodes - event.add("tfc:in_biome/veins", "tfg:earth/geode/amethyst"); - event.add("tfc:in_biome/veins", "tfg:earth/geode/barite"); - event.add("tfc:in_biome/veins", "tfg:earth/geode/calcite"); - event.add("tfc:in_biome/veins", "tfg:earth/geode/gypsum"); - event.add("tfc:in_biome/veins", "tfg:earth/geode/opal"); - event.add("tfc:in_biome/veins", "tfg:earth/geode/pyrite"); - event.add("tfc:in_biome/veins", "tfg:earth/geode/quartzite"); - - // Crops - event.add("tfc:feature/crops", "tfg:earth/sunflower_patch"); - event.add("tfc:feature/crops", "tfg:earth/rapeseed_patch"); - event.add("tfc:feature/crops", "tfg:earth/flax_patch"); - - // Other decoration - event.add("tfc:in_biome/underground_decoration", "tfg:glow_lichen"); - event.add("tfc:in_biome/underground_decoration", "tfg:earth/sulfur_patch"); -} +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfcambiental/tags.js b/kubejs/server_scripts/tfcambiental/tags.js deleted file mode 100644 index aeabe274a..000000000 --- a/kubejs/server_scripts/tfcambiental/tags.js +++ /dev/null @@ -1,26 +0,0 @@ -// priority: 0 -"use strict"; - -const registerTFCAmbientalItemTags = (event) => { - - event.add('minecraft:trimmable_armor', 'tfcambiental:wool_hat') - event.add('minecraft:trimmable_armor', 'tfcambiental:wool_sweater') - event.add('minecraft:trimmable_armor', 'tfcambiental:wool_pants') - event.add('minecraft:trimmable_armor', 'tfcambiental:wool_boots') - event.add('minecraft:trimmable_armor', 'tfcambiental:silk_cowl') - event.add('minecraft:trimmable_armor', 'tfcambiental:silk_shirt') - event.add('minecraft:trimmable_armor', 'tfcambiental:silk_pants') - event.add('minecraft:trimmable_armor', 'tfcambiental:silk_shoes') - event.add('minecraft:trimmable_armor', 'tfcambiental:burlap_cowl') - event.add('minecraft:trimmable_armor', 'tfcambiental:burlap_shirt') - event.add('minecraft:trimmable_armor', 'tfcambiental:burlap_pants') - event.add('minecraft:trimmable_armor', 'tfcambiental:burlap_shoes') - event.add('minecraft:trimmable_armor', 'tfcambiental:insulated_leather_hat') - event.add('minecraft:trimmable_armor', 'tfcambiental:insulated_leather_tunic') - event.add('minecraft:trimmable_armor', 'tfcambiental:insulated_leather_pants') - event.add('minecraft:trimmable_armor', 'tfcambiental:insulated_leather_boots') - - event.add('tfg:lightweight_cloth', 'tfc:silk_cloth') - event.add('tfg:lightweight_cloth', 'tfg:phantom_silk') - event.add('tfg:lightweight_cloth', 'tfg:polycaprolactam_fabric') -} \ No newline at end of file diff --git a/kubejs/server_scripts/tfcgurman/recipes.js b/kubejs/server_scripts/tfcgurman/recipes.js new file mode 100644 index 000000000..55de880ee --- /dev/null +++ b/kubejs/server_scripts/tfcgurman/recipes.js @@ -0,0 +1,807 @@ +// priority: 0 +"use strict"; + +function registerTFCGurmanRecipes(event) { + const $ISPRecipeLogic = Java.loadClass("su.terrafirmagreg.core.common.data.tfgt.machine.trait.ISPOutputRecipeLogic") + + //#region Food Oven Recipes + + // Pizzas + event.recipes.gtceu.food_oven('margarita_pizza') + .itemInputs('tfc_gurman:raw_margarita_pizza') + .itemOutputs('tfc_gurman:margarita_pizza') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/margarita_pizza', + [Ingredient.of('tfc_gurman:raw_margarita_pizza')], + TFC.isp.of('tfc_gurman:margarita_pizza').firmaLifeCopyDynamicFood().asCanonClass(), + []) + + event.recipes.gtceu.food_oven('pepperoni_pizza') + .itemInputs('tfc_gurman:raw_pepperoni_pizza') + .itemOutputs('tfc_gurman:pepperoni_pizza') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/pepperoni_pizza', + [Ingredient.of('tfc_gurman:raw_pepperoni_pizza')], + TFC.isp.of('tfc_gurman:pepperoni_pizza').firmaLifeCopyDynamicFood().asCanonClass(), + []) + + event.recipes.gtceu.food_oven('havai_pizza') + .itemInputs('tfc_gurman:raw_havai_pizza') + .itemOutputs('tfc_gurman:havai_pizza') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/havai_pizza', + [Ingredient.of('tfc_gurman:raw_havai_pizza')], + TFC.isp.of('tfc_gurman:havai_pizza').firmaLifeCopyDynamicFood().asCanonClass(), + []) + + event.recipes.gtceu.food_oven('four_cheeses_pizza') + .itemInputs('tfc_gurman:raw_four_cheeses_pizza') + .itemOutputs('tfc_gurman:four_cheeses_pizza') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/four_cheeses_pizza', + [Ingredient.of('tfc_gurman:raw_four_cheeses_pizza')], + TFC.isp.of('tfc_gurman:four_cheeses_pizza').firmaLifeCopyDynamicFood().asCanonClass(), + []) + + event.recipes.gtceu.food_oven('four_meats_pizza') + .itemInputs('tfc_gurman:raw_four_meats_pizza') + .itemOutputs('tfc_gurman:four_meats_pizza') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/four_meats_pizza', + [Ingredient.of('tfc_gurman:raw_four_meats_pizza')], + TFC.isp.of('tfc_gurman:four_meats_pizza').firmaLifeCopyDynamicFood().asCanonClass(), + []) + + event.recipes.gtceu.food_oven('neapolitano_pizza') + .itemInputs('tfc_gurman:raw_neapolitano_pizza') + .itemOutputs('tfc_gurman:neapolitano_pizza') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/neapolitano_pizza', + [Ingredient.of('tfc_gurman:raw_neapolitano_pizza')], + TFC.isp.of('tfc_gurman:neapolitano_pizza').firmaLifeCopyDynamicFood().asCanonClass(), + []) + + event.recipes.gtceu.food_oven('croissants') + .itemInputs('tfc_gurman:raw_croissants') + .itemOutputs('tfc_gurman:croissants') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/croissants', + [Ingredient.of('tfc_gurman:raw_croissants')], + TFC.isp.of('tfc_gurman:croissants').firmaLifeCopyDynamicFood().asCanonClass(), + []) + + event.recipes.gtceu.food_oven('kiev_cutlets') + .itemInputs('tfc_gurman:raw_kiev_cutlets') + .itemOutputs('tfc_gurman:kiev_cutlets') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/kiev_cutlets', + [Ingredient.of('tfc_gurman:raw_kiev_cutlets')], + TFC.isp.of('tfc_gurman:kiev_cutlets').firmaLifeCopyDynamicFood().asCanonClass(), + []) + + event.recipes.gtceu.food_oven('quiche') + .itemInputs('tfc_gurman:raw_quiche') + .itemOutputs('tfc_gurman:quiche') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/quiche', + [Ingredient.of('tfc_gurman:raw_quiche')], + TFC.isp.of('tfc_gurman:quiche').firmaLifeCopyDynamicFood().asCanonClass(), + []) + + event.recipes.gtceu.food_oven('tandoori_chicken') + .itemInputs('tfc_gurman:raw_tandoori_chicken') + .itemOutputs('tfc_gurman:tandoori_chicken') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/tandoori_chicken', + [Ingredient.of('tfc_gurman:raw_tandoori_chicken')], + TFC.isp.of('tfc_gurman:tandoori_chicken').firmaLifeCopyDynamicFood().asCanonClass(), + []) + + event.recipes.gtceu.food_oven('placinda') + .itemInputs('tfc_gurman:raw_placinda') + .itemOutputs('tfc_gurman:placinda') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/placinda', + [Ingredient.of('tfc_gurman:raw_placinda')], + TFC.isp.of('tfc_gurman:placinda').firmaLifeCopyDynamicFood().asCanonClass(), + []) + + event.recipes.gtceu.food_oven('tonkatsu') + .itemInputs('tfc_gurman:raw_tonkatsu') + .itemOutputs('tfc_gurman:tonkatsu') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/tonkatsu', + [Ingredient.of('tfc_gurman:raw_tonkatsu')], + TFC.isp.of('tfc_gurman:tonkatsu').copyFood().addTrait("firmalife:oven_baked").asCanonClass(), + []) + + event.recipes.gtceu.food_oven('takoyaki') + .itemInputs('tfc_gurman:raw_takoyaki') + .itemOutputs('tfc_gurman:takoyaki') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/takoyaki', + [Ingredient.of('tfc_gurman:raw_takoyaki')], + TFC.isp.of('tfc_gurman:takoyaki').copyFood().addTrait("firmalife:oven_baked").asCanonClass(), + []) + + event.recipes.gtceu.food_oven('bulgogi') + .itemInputs('tfc_gurman:raw_bulgogi') + .itemOutputs('tfc_gurman:bulgogi') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/bulgogi', + [Ingredient.of('tfc_gurman:raw_bulgogi')], + TFC.isp.of('tfc_gurman:bulgogi').copyFood().addTrait("firmalife:oven_baked").asCanonClass(), + []) + + event.recipes.gtceu.food_oven('bratwurst') + .itemInputs('tfc_gurman:raw_bratwurst') + .itemOutputs('tfc_gurman:bratwurst') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/bratwurst', + [Ingredient.of('tfc_gurman:raw_bratwurst')], + TFC.isp.of('tfc_gurman:bratwurst').copyFood().addTrait("firmalife:oven_baked").asCanonClass(), + []) + + event.recipes.gtceu.food_oven('crepes') + .itemInputs('tfc_gurman:raw_crepes') + .itemOutputs('tfc_gurman:crepes') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/crepes', + [Ingredient.of('tfc_gurman:raw_crepes')], + TFC.isp.of('tfc_gurman:crepes').copyFood().addTrait("firmalife:oven_baked").asCanonClass(), + []) + + event.recipes.gtceu.food_oven('chebureki') + .itemInputs('tfc_gurman:raw_chebureki') + .itemOutputs('tfc_gurman:chebureki') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/chebureki', + [Ingredient.of('tfc_gurman:raw_chebureki')], + TFC.isp.of('tfc_gurman:chebureki').copyFood().addTrait("firmalife:oven_baked").asCanonClass(), + []) + + event.recipes.gtceu.food_oven('khachapuri') + .itemInputs('tfc_gurman:raw_khachapuri') + .itemOutputs('tfc_gurman:khachapuri') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/khachapuri', + [Ingredient.of('tfc_gurman:raw_khachapuri')], + TFC.isp.of('tfc_gurman:khachapuri').copyFood().addTrait("firmalife:oven_baked").asCanonClass(), + []) + + event.recipes.gtceu.food_oven('lavash_wrap') + .itemInputs('tfc_gurman:raw_lavash_wrap') + .itemOutputs('tfc_gurman:lavash_wrap') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/lavash_wrap', + [Ingredient.of('tfc_gurman:raw_lavash_wrap')], + TFC.isp.of('tfc_gurman:lavash_wrap').copyFood().addTrait("firmalife:oven_baked").asCanonClass(), + []) + + event.recipes.gtceu.food_oven('syrniki') + .itemInputs('tfc_gurman:raw_syrniki') + .itemOutputs('tfc_gurman:syrniki') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/syrniki', + [Ingredient.of('tfc_gurman:raw_syrniki')], + TFC.isp.of('tfc_gurman:syrniki').copyFood().addTrait("firmalife:oven_baked").asCanonClass(), + []) + + event.recipes.gtceu.food_oven('oladyi') + .itemInputs('tfc_gurman:raw_oladyi') + .itemOutputs('tfc_gurman:oladyi') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/oladyi', + [Ingredient.of('tfc_gurman:raw_oladyi')], + TFC.isp.of('tfc_gurman:oladyi').copyFood().addTrait("firmalife:oven_baked").asCanonClass(), + []) + + // Falafel - from soybean (no raw version) + event.recipes.gtceu.food_oven('falafel') + .itemInputs('tfc:food/soybean') + .itemOutputs('tfc_gurman:falafel') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/falafel', + [Ingredient.of('tfc:food/soybean')], + TFC.isp.of('tfc_gurman:falafel').copyFood().addTrait("firmalife:oven_baked").asCanonClass(), + []) + + // Pelmeni (cooking raw pelmeni) + event.recipes.gtceu.food_oven('pelmeni') + .itemInputs('tfc_gurman:raw_pelmeni') + .itemOutputs('tfc_gurman:pelmeni') + .inputFluids(Fluid.of('minecraft:water', 500)) + .duration(200) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/pelmeni', + [Ingredient.of('tfc_gurman:raw_pelmeni')], + TFC.isp.of('tfc_gurman:pelmeni').copyFood().addTrait("firmalife:oven_baked").asCanonClass(), + []) + + // Vareniki (cooking raw vareniki) + event.recipes.gtceu.food_oven('vareniki') + .itemInputs('tfc_gurman:raw_vareniki') + .itemOutputs('tfc_gurman:vareniki') + .inputFluids(Fluid.of('minecraft:water', 500)) + .duration(200) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_oven/vareniki', + [Ingredient.of('tfc_gurman:raw_vareniki')], + TFC.isp.of('tfc_gurman:vareniki').copyFood().addTrait("firmalife:oven_baked").asCanonClass(), + []) + + //#endregion + + //#region Food Processor Recipes + + // Borscht + event.recipes.gtceu.food_processor('borscht') + .circuit(20) + .itemInputs('tfc:food/beet', 'tfc:food/cabbage', 'tfc:food/carrot', 'tfc:food/onion', 'tfc:food/tomato') + .itemOutputs('3x tfc_gurman:borscht') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/borscht', + [Ingredient.of('tfc:food/beet'), Ingredient.of('tfc:food/cabbage'), Ingredient.of('tfc:food/carrot'), Ingredient.of('tfc:food/onion'), Ingredient.of('tfc:food/tomato')], + TFC.isp.of('tfc_gurman:borscht').copyFood().asCanonClass(), + []) + + // Schi + event.recipes.gtceu.food_processor('schi') + .circuit(20) + .itemInputs('tfc:food/cabbage', 'tfc:food/cabbage', 'tfc:food/carrot', 'tfc:food/onion', 'tfc:food/tomato') + .itemOutputs('3x tfc_gurman:schi') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/schi', + [Ingredient.of('tfc:food/cabbage'), Ingredient.of('tfc:food/cabbage'), Ingredient.of('tfc:food/carrot'), Ingredient.of('tfc:food/onion'), Ingredient.of('tfc:food/tomato')], + TFC.isp.of('tfc_gurman:schi').copyFood().asCanonClass(), + []) + + // Coffee + event.recipes.gtceu.food_processor('coffee') + .circuit(2) + .itemInputs('firmalife:food/roasted_cocoa_beans', 'firmalife:food/roasted_cocoa_beans') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .outputFluids(Fluid.of('tfc_gurman:coffee', 1000)) + .duration(300) + .EUt(8) + + // Cocoa + event.recipes.gtceu.food_processor('cocoa') + .circuit(1) + .itemInputs('firmalife:food/cocoa_powder', 'firmalife:food/cocoa_powder', 'minecraft:sugar') + .inputFluids('#tfc:milks 1000') + .outputFluids(Fluid.of('tfc_gurman:cocoa', 1000)) + .duration(300) + .EUt(8) + + // Compote + event.recipes.gtceu.food_processor('compote') + .circuit(2) + .itemInputs('#tfc:foods/fruits', '#tfc:foods/fruits') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .outputFluids(Fluid.of('tfc_gurman:compote', 1000)) + .duration(300) + .EUt(8) + + // Lemonade + event.recipes.gtceu.food_processor('lemonade') + .circuit(2) + .itemInputs('tfc:food/lemon', 'tfc:food/lemon') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .outputFluids(Fluid.of('tfc_gurman:lemonade', 1000)) + .duration(1500) + .EUt(8) + + // Kvass + event.recipes.gtceu.food_processor('kvass') + .circuit(2) + .itemInputs('2x #tfc:foods/grains') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .outputFluids(Fluid.of('tfc_gurman:kvass', 1000)) + .duration(2400) + .EUt(8) + + // Tea Mint + event.recipes.gtceu.food_processor('tea_mint') + .circuit(2) + .itemInputs('tfc_gurman:dried_mint_leaves', 'tfc_gurman:dried_mint_leaves') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .outputFluids(Fluid.of('tfc_gurman:tea_mint', 1000)) + .duration(300) + .EUt(8) + + // Tea Chamomile + event.recipes.gtceu.food_processor('tea_chamomile') + .circuit(2) + .itemInputs('tfc_gurman:dried_chamomile_leaves', 'tfc_gurman:dried_chamomile_leaves') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .outputFluids(Fluid.of('tfc_gurman:tea_chamomile', 1000)) + .duration(300) + .EUt(8) + + // Tea Rosehip + event.recipes.gtceu.food_processor('tea_rosehip') + .circuit(2) + .itemInputs('tfc_gurman:dried_rosehip_leaves', 'tfc_gurman:dried_rosehip_leaves') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .outputFluids(Fluid.of('tfc_gurman:tea_rosehip', 1000)) + .duration(300) + .EUt(8) + + // Tea Nettle + event.recipes.gtceu.food_processor('tea_nettle') + .circuit(2) + .itemInputs('tfc_gurman:dried_nettle_leaves', 'tfc_gurman:dried_nettle_leaves') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .outputFluids(Fluid.of('tfc_gurman:tea_nettle', 1000)) + .duration(300) + .EUt(8) + + // Solyanka + event.recipes.gtceu.food_processor('solyanka') + .circuit(20) + .itemInputs('#tfc:foods/meats', 'tfc:food/cabbage', 'tfc:food/onion', 'tfc:food/tomato', 'tfc:food/olive') + .itemOutputs('3x tfc_gurman:solyanka') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/solyanka', + [Ingredient.of('#tfc:foods/meats'), Ingredient.of('tfc:food/cabbage'), Ingredient.of('tfc:food/onion'), Ingredient.of('tfc:food/tomato'), Ingredient.of('tfc:food/olive')], + TFC.isp.of('tfc_gurman:solyanka').copyFood().asCanonClass(), + []) + + // Okroshka + event.recipes.gtceu.food_processor('okroshka') + .circuit(20) + .itemInputs('tfc:food/cabbage', 'tfc:food/tomato', 'tfc:food/potato', 'tfc:food/onion', 'minecraft:egg') + .itemOutputs('3x tfc_gurman:okroshka') + .inputFluids(Fluid.of('tfc_gurman:kvass', 1000)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/okroshka', + [Ingredient.of('tfc:food/cabbage'), Ingredient.of('tfc:food/tomato'), Ingredient.of('tfc:food/potato'), Ingredient.of('tfc:food/onion'), Ingredient.of('minecraft:egg')], + TFC.isp.of('tfc_gurman:okroshka').copyFood().asCanonClass(), + []) + + // Zama + event.recipes.gtceu.food_processor('zama') + .circuit(20) + .itemInputs('tfc:food/chicken', 'tfc:food/carrot', 'tfc:food/onion', 'tfc:powder/salt', 'tfc:food/garlic') + .itemOutputs('3x tfc_gurman:zama') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/zama', + [Ingredient.of('tfc:food/chicken'), Ingredient.of('tfc:food/carrot'), Ingredient.of('tfc:food/onion'), Ingredient.of('tfc:powder/salt'), Ingredient.of('tfc:food/garlic')], + TFC.isp.of('tfc_gurman:zama').copyFood().asCanonClass(), + []) + + // Curry + event.recipes.gtceu.food_processor('curry') + .circuit(16) + .itemInputs('#tfc:foods/cooked_meats', '#tfc:foods/vegetables', 'tfc:powder/salt', 'tfc:food/cooked_rice') + .itemOutputs('3x tfc_gurman:curry') + .inputFluids('#tfc:milks 1000') + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/curry', + [Ingredient.of('#tfc:foods/cooked_meats'), Ingredient.of('#tfc:foods/vegetables'), Ingredient.of('tfc:powder/salt'), Ingredient.of('tfc:food/cooked_rice')], + TFC.isp.of('tfc_gurman:curry').copyFood().asCanonClass(), + []) + + // Goulash + event.recipes.gtceu.food_processor('goulash') + .circuit(16) + .itemInputs('#tfc:foods/raw_meats', 'tfc:food/onion', 'tfc:food/potato', 'tfc:powder/salt') + .itemOutputs('3x tfc_gurman:goulash') + .inputFluids(Fluid.of('minecraft:water', 100)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/goulash', + [Ingredient.of('#tfc:foods/raw_meats'), Ingredient.of('tfc:food/onion'), Ingredient.of('tfc:food/potato'), Ingredient.of('tfc:powder/salt')], + TFC.isp.of('tfc_gurman:goulash').copyFood().asCanonClass(), + []) + + // Pho + event.recipes.gtceu.food_processor('pho') + .circuit(16) + .itemInputs('firmalife:food/cooked_pasta', '#tfc:foods/cooked_meats', 'tfc:food/garlic', 'tfc:powder/salt') + .itemOutputs('3x tfc_gurman:pho') + .inputFluids(Fluid.of('minecraft:water', 100)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/pho', + [Ingredient.of('firmalife:food/cooked_pasta'), Ingredient.of('#tfc:foods/cooked_meats'), Ingredient.of('tfc:food/garlic'), Ingredient.of('tfc:powder/salt')], + TFC.isp.of('tfc_gurman:pho').copyFood().asCanonClass(), + []) + + // Bouillabaisse + event.recipes.gtceu.food_processor('bouillabaisse') + .circuit(16) + .itemInputs('#firmalife:foods/raw_fish', 'tfc:food/tomato', 'tfc:food/onion', 'tfc:food/garlic', 'tfc:powder/salt') + .itemOutputs('3x tfc_gurman:bouillabaisse') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/bouillabaisse', + [Ingredient.of('#firmalife:foods/raw_fish'), Ingredient.of('tfc:food/tomato'), Ingredient.of('tfc:food/onion'), Ingredient.of('tfc:food/garlic'), Ingredient.of('tfc:powder/salt')], + TFC.isp.of('tfc_gurman:bouillabaisse').copyFood().asCanonClass(), + []) + + // Ramen with Beef + event.recipes.gtceu.food_processor('ramen_beef') + .circuit(21) + .itemInputs('firmalife:food/raw_egg_noodles', 'minecraft:egg', 'tfc:food/beef', 'tfc:food/onion') + .itemOutputs('2x tfc_gurman:ramen_with_beef') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/ramen_beef', + [Ingredient.of('firmalife:food/raw_egg_noodles'), Ingredient.of('minecraft:egg'), Ingredient.of('tfc:food/beef'), Ingredient.of('tfc:food/onion')], + TFC.isp.of('tfc_gurman:ramen_with_beef').copyFood().asCanonClass(), + []) + + // Ramen with Camelidae + event.recipes.gtceu.food_processor('ramen_camelidae') + .circuit(21) + .itemInputs('firmalife:food/raw_egg_noodles', 'minecraft:egg', 'tfc:food/camelidae', 'tfc:food/onion') + .itemOutputs('2x tfc_gurman:ramen_with_camelidae') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/ramen_camelidae', + [Ingredient.of('firmalife:food/raw_egg_noodles'), Ingredient.of('minecraft:egg'), Ingredient.of('tfc:food/camelidae'), Ingredient.of('tfc:food/onion')], + TFC.isp.of('tfc_gurman:ramen_with_camelidae').copyFood().asCanonClass(), + []) + + // Ramen with Chevon + event.recipes.gtceu.food_processor('ramen_chevon') + .circuit(21) + .itemInputs('firmalife:food/raw_egg_noodles', 'minecraft:egg', 'tfc:food/chevon', 'tfc:food/onion') + .itemOutputs('2x tfc_gurman:ramen_with_chevon') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/ramen_chevon', + [Ingredient.of('firmalife:food/raw_egg_noodles'), Ingredient.of('minecraft:egg'), Ingredient.of('tfc:food/chevon'), Ingredient.of('tfc:food/onion')], + TFC.isp.of('tfc_gurman:ramen_with_chevon').copyFood().asCanonClass(), + []) + + // Ramen with Bacon + event.recipes.gtceu.food_processor('ramen_bacon') + .circuit(21) + .itemInputs('firmalife:food/raw_egg_noodles', 'minecraft:egg', 'firmalife:food/bacon', 'tfc:food/onion') + .itemOutputs('2x tfc_gurman:ramen_with_bacon') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/ramen_bacon', + [Ingredient.of('firmalife:food/raw_egg_noodles'), Ingredient.of('minecraft:egg'), Ingredient.of('firmalife:food/bacon'), Ingredient.of('tfc:food/onion')], + TFC.isp.of('tfc_gurman:ramen_with_bacon').copyFood().asCanonClass(), + []) + + // Biryani + event.recipes.gtceu.food_processor('biryani') + .circuit(20) + .itemInputs('tfc:food/rice_grain', '#tfc:foods/meats', 'tfc:food/onion', 'tfc:food/carrot', 'tfc:food/tomato') + .itemOutputs('3x tfc_gurman:biryani') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/biryani', + [Ingredient.of('tfc:food/rice_grain'), Ingredient.of('#tfc:foods/meats'), Ingredient.of('tfc:food/onion'), Ingredient.of('tfc:food/carrot'), Ingredient.of('tfc:food/tomato')], + TFC.isp.of('tfc_gurman:biryani').copyFood().asCanonClass(), + []) + + // Fried Rice + event.recipes.gtceu.food_processor('fried_rice') + .circuit(16) + .itemInputs('tfc:food/cooked_rice', '#forge:eggs', '#tfc:foods/vegetables', 'tfc:powder/salt') + .itemOutputs('3x tfc_gurman:fried_rice') + .inputFluids(Fluid.of('minecraft:water', 100)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/fried_rice', + [Ingredient.of('tfc:food/cooked_rice'), Ingredient.of('#forge:eggs'), Ingredient.of('#tfc:foods/vegetables'), Ingredient.of('tfc:powder/salt')], + TFC.isp.of('tfc_gurman:fried_rice').copyFood().asCanonClass(), + []) + + // Kimchi + event.recipes.gtceu.food_processor('kimchi') + .circuit(20) + .itemInputs('tfc:food/cabbage', 'tfc:food/carrot', 'tfc:food/onion', 'tfc:food/garlic', 'tfc:powder/salt') + .itemOutputs('3x tfc_gurman:kimchi') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/kimchi', + [Ingredient.of('tfc:food/cabbage'), Ingredient.of('tfc:food/carrot'), Ingredient.of('tfc:food/onion'), Ingredient.of('tfc:food/garlic'), Ingredient.of('tfc:powder/salt')], + TFC.isp.of('tfc_gurman:kimchi').copyFood().asCanonClass(), + []) + + // Dolma + event.recipes.gtceu.food_processor('dolma') + .circuit(16) + .itemInputs('#tfc:foods/meats', 'tfc:food/rice_grain', 'tfc:powder/salt') + .itemOutputs('2x tfc_gurman:dolma') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/dolma', + [Ingredient.of('#tfc:foods/meats'), Ingredient.of('tfc:food/rice_grain'), Ingredient.of('tfc:powder/salt')], + TFC.isp.of('tfc_gurman:dolma').copyFood().asCanonClass(), + []) + + // Spaghetti Bolognese + event.recipes.gtceu.food_processor('spaghetti_bolognese') + .circuit(18) + .itemInputs('firmalife:food/cooked_pasta', '#tfc:foods/cooked_meats', 'tfc:food/tomato', 'tfc:food/onion', 'tfc:food/garlic') + .itemOutputs('3x tfc_gurman:spaghetti_bolognese') + .inputFluids(Fluid.of('minecraft:water', 500)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/spaghetti_bolognese', + [Ingredient.of('firmalife:food/cooked_pasta'), Ingredient.of('#tfc:foods/cooked_meats'), Ingredient.of('tfc:food/tomato'), Ingredient.of('tfc:food/onion'), Ingredient.of('tfc:food/garlic')], + TFC.isp.of('tfc_gurman:spaghetti_bolognese').copyFood().asCanonClass(), + []) + + // Pasta Carbonara + event.recipes.gtceu.food_processor('pasta_carbonara') + .circuit(18) + .itemInputs('firmalife:food/cooked_pasta', 'firmalife:food/bacon', 'minecraft:egg', 'firmalife:food/shredded_cheese', 'tfc:powder/salt') + .itemOutputs('3x tfc_gurman:pasta_carbonara') + .inputFluids(Fluid.of('minecraft:water', 500)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/pasta_carbonara', + [Ingredient.of('firmalife:food/cooked_pasta'), Ingredient.of('firmalife:food/bacon'), Ingredient.of('minecraft:egg'), Ingredient.of('firmalife:food/shredded_cheese'), Ingredient.of('tfc:powder/salt')], + TFC.isp.of('tfc_gurman:pasta_carbonara').copyFood().asCanonClass(), + []) + + // Ratatouille + event.recipes.gtceu.food_processor('ratatouille') + .circuit(18) + .itemInputs('tfc:food/tomato', 'tfc:food/pumpkin_chunks', 'tfc:food/carrot', 'tfc:food/onion', 'tfc:food/garlic') + .itemOutputs('3x tfc_gurman:ratatouille') + .inputFluids(Fluid.of('minecraft:water', 500)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/ratatouille', + [Ingredient.of('tfc:food/tomato'), Ingredient.of('tfc:food/pumpkin_chunks'), Ingredient.of('tfc:food/carrot'), Ingredient.of('tfc:food/onion'), Ingredient.of('tfc:food/garlic')], + TFC.isp.of('tfc_gurman:ratatouille').copyFood().asCanonClass(), + []) + + // Risotto + event.recipes.gtceu.food_processor('risotto') + .circuit(18) + .itemInputs('tfc:food/rice_grain', '#firmalife:foods/cheeses', '#tfc:foods/vegetables') + .itemOutputs('3x tfc_gurman:risotto') + .inputFluids(Fluid.of('minecraft:water', 100)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/risotto', + [Ingredient.of('tfc:food/rice_grain'), Ingredient.of('#firmalife:foods/cheeses'), Ingredient.of('#tfc:foods/vegetables')], + TFC.isp.of('tfc_gurman:risotto').copyFood().asCanonClass(), + []) + + // Porridge + event.recipes.gtceu.food_processor('porridge') + .circuit(18) + .itemInputs('#tfc:foods/grains', 'tfc:powder/salt') + .itemOutputs('tfc_gurman:porridge') + .inputFluids(Fluid.of('minecraft:water', 250)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/porridge', + [Ingredient.of('#tfc:foods/grains'), Ingredient.of('tfc:powder/salt')], + TFC.isp.of('tfc_gurman:porridge').copyFood().asCanonClass(), + []) + + // Mamaliga + event.recipes.gtceu.food_processor('mamaliga') + .circuit(16) + .itemInputs('tfc:food/maize_grain', 'tfc:powder/salt') + .itemOutputs('tfc_gurman:mamaliga') + .inputFluids(Fluid.of('minecraft:water', 250)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/mamaliga', + [Ingredient.of('tfc:food/maize_grain'), Ingredient.of('tfc:powder/salt')], + TFC.isp.of('tfc_gurman:mamaliga').copyFood().asCanonClass(), + []) + + event.recipes.gtceu.food_processor('mamaliga_2') + .circuit(16) + .itemInputs('tfc:food/maize_grain', 'tfc:food/maize_grain', 'tfc:powder/salt') + .itemOutputs('2x tfc_gurman:mamaliga') + .inputFluids(Fluid.of('minecraft:water', 250)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/mamaliga_2', + [Ingredient.of('tfc:food/maize_grain'), Ingredient.of('tfc:powder/salt')], + TFC.isp.of('tfc_gurman:mamaliga').copyFood().asCanonClass(), + []) + + event.recipes.gtceu.food_processor('mamaliga_3') + .circuit(16) + .itemInputs('tfc:food/maize_grain', 'tfc:food/maize_grain', 'tfc:food/maize_grain', 'tfc:powder/salt') + .itemOutputs('3x tfc_gurman:mamaliga') + .inputFluids(Fluid.of('minecraft:water', 250)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/mamaliga_3', + [Ingredient.of('tfc:food/maize_grain'), Ingredient.of('tfc:powder/salt')], + TFC.isp.of('tfc_gurman:mamaliga').copyFood().asCanonClass(), + []) + + event.recipes.gtceu.food_processor('mamaliga_4') + .circuit(16) + .itemInputs('tfc:food/maize_grain', 'tfc:food/maize_grain', 'tfc:food/maize_grain', 'tfc:food/maize_grain', 'tfc:powder/salt') + .itemOutputs('4x tfc_gurman:mamaliga') + .inputFluids(Fluid.of('minecraft:water', 250)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/mamaliga_4', + [Ingredient.of('tfc:food/maize_grain'), Ingredient.of('tfc:powder/salt')], + TFC.isp.of('tfc_gurman:mamaliga').copyFood().asCanonClass(), + []) + + // Adjika + event.recipes.gtceu.food_processor('adjika') + .circuit(8) + .itemInputs('tfc:food/green_bell_pepper', 'tfc:food/red_bell_pepper', 'tfc:powder/salt', 'tfc:food/garlic', 'firmalife:plant/cilantro') + .itemOutputs('5x tfc_gurman:adjika') + .inputFluids(Fluid.of('minecraft:water', 500)) + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/adjika', + [Ingredient.of('tfc:food/green_bell_pepper'), Ingredient.of('tfc:food/red_bell_pepper'), Ingredient.of('tfc:powder/salt'), Ingredient.of('tfc:food/garlic'), Ingredient.of('firmalife:plant/cilantro')], + TFC.isp.of('tfc_gurman:adjika').copyFood().asCanonClass(), + []) + + //#endregion + + // #region Drying + + event.recipes.gtceu.food_processor("dried_mint") + .itemInputs("tfc:plant/foxglove") + .itemOutputs("tfc_gurman:dried_mint_leaves") + .inputFluids(Fluid.of('gtceu:nitrogen', 100)) + .EUt(8) + .duration(200) + .circuit(6) + .addDataString("action", "tfg.food_recipe.drying") + + event.recipes.gtceu.food_processor("dried_chamomile") + .itemInputs("tfc:plant/lilac") + .itemOutputs("tfc_gurman:dried_chamomile_leaves") + .inputFluids(Fluid.of('gtceu:nitrogen', 100)) + .EUt(8) + .duration(200) + .circuit(6) + .addDataString("action", "tfg.food_recipe.drying") + + event.recipes.gtceu.food_processor("dried_rosehip") + .itemInputs("tfc:plant/rose") + .itemOutputs("tfc_gurman:dried_rosehip_leaves") + .inputFluids(Fluid.of('gtceu:nitrogen', 100)) + .EUt(8) + .duration(200) + .circuit(6) + .addDataString("action", "tfg.food_recipe.drying") + + event.recipes.gtceu.food_processor("dried_nettle") + .itemInputs("tfc:plant/trillium") + .itemOutputs("tfc_gurman:dried_nettle_leaves") + .inputFluids(Fluid.of('gtceu:nitrogen', 100)) + .EUt(8) + .duration(200) + .circuit(6) + .addDataString("action", "tfg.food_recipe.drying") + + // #endregion Drying + + // #region Crafting table foods + + event.recipes.gtceu.food_processor('margarita_pizza') + .circuit(4) + .itemInputs('firmalife:food/pizza_dough', 'firmalife:food/shredded_cheese', 'tfc:food/tomato', 'tfc:food/red_bell_pepper', 'tfc_gurman:plant_mix', 'firmalife:food/tomato_sauce') + .itemOutputs('tfc_gurman:raw_margarita_pizza') + .duration(300) + .EUt(8) + + $ISPRecipeLogic.RegisterRecipeData('food_processor/margarita_pizza', + [Ingredient.of('firmalife:food/pizza_dough'), Ingredient.of('firmalife:food/shredded_cheese'), Ingredient.of('tfc:food/tomato'), Ingredient.of('tfc:food/red_bell_pepper'), Ingredient.of('tfc_gurman:plant_mix'), Ingredient.of('firmalife:food/tomato_sauce')], + TFC.isp.of('tfc_gurman:raw_margarita_pizza').copyFood().asCanonClass(), + []) + + // #endregion + + // #region Replacements + + event.replaceInput({ id: "tfc_gurman:crafting/tiramisu" }, "minecraft:sugar", "#tfg:sugars"); + + event.shapeless('4x tfc_gurman:raw_takoyaki', ['tfg:food/raw_crawlermari', '#tfc:foods/flour', '#forge:eggs', 'tfc:powder/salt']); + + // #endregion + + // TODO: + // buffs for the various drinks? +} diff --git a/kubejs/server_scripts/tfg/beneath/tags.beneath.js b/kubejs/server_scripts/tfg/beneath/tags.beneath.js new file mode 100644 index 000000000..c61249bb5 --- /dev/null +++ b/kubejs/server_scripts/tfg/beneath/tags.beneath.js @@ -0,0 +1,139 @@ +"use strict"; + +function registerTFGBeneathItemTags(event) { + + event.add("minecraft:piglin_loved", "gtceu:tiny_pyrite_dust"); + event.add("minecraft:piglin_loved", "gtceu:poor_raw_pyrite"); + event.add("minecraft:piglin_loved", "gtceu:raw_pyrite"); + event.add("minecraft:piglin_loved", "gtceu:rich_raw_pyrite"); + event.add("minecraft:piglin_loved", "tfc:ore/small_native_gold"); + event.add("minecraft:piglin_loved", "tfc:ore/poor_native_gold"); + event.add("minecraft:piglin_loved", "tfc:ore/normal_native_gold"); + event.add("minecraft:piglin_loved", "tfc:ore/rich_native_gold"); + event.add('minecraft:piglin_loved', 'tfg:piglin_disguise') + + event.add('tfc:plants', 'minecraft:spore_blossom') + event.remove('createaddition:plants', 'minecraft:moss_carpet') + + event.add('tfc:compost_greens', 'minecraft:red_mushroom_block') + event.add('tfc:compost_greens', 'minecraft:brown_mushroom_block') + event.add('tfc:compost_greens', 'minecraft:mushroom_stem') + event.add('tfc:compost_greens', 'minecraft:moss_block') + event.add('tfc:compost_greens_low', 'minecraft:moss_carpet') + event.add('tfc:compost_greens_low', 'minecraft:twisting_vines') +} + + +function registerTFGBeneathBlockTags(event) { + event.add('tfg:lush_ground_replaceable', 'minecraft:deepslate') + event.add('tfg:lush_ground_replaceable', 'minecraft:blackstone') + + event.add('minecraft:lush_ground_replaceable', 'minecraft:blackstone') + event.add('beneath:nether_bush_plantable_on', 'minecraft:blackstone') + event.add('beneath:nether_bush_plantable_on', 'minecraft:deepslate') + event.add('beneath:nether_bush_plantable_on', 'minecraft:moss_block') + event.add('beneath:nether_bush_plantable_on', 'minecraft:dripstone_block') + event.add('minecraft:nether_carver_replaceables', 'minecraft:blackstone') + event.add('minecraft:nether_carver_replaceables', 'minecraft:deepslate') + event.add('minecraft:nether_carver_replaceables', 'minecraft:dripstone_block') + event.add('minecraft:frogs_spawnable_on', 'minecraft:deepslate') + event.add('minecraft:frogs_spawnable_on', 'minecraft:blackstone') + event.add('minecraft:frogs_spawnable_on', 'minecraft:dripstone_block') + event.add('minecraft:axolotls_spawnable_on', 'minecraft:deepslate') + event.add('minecraft:axolotls_spawnable_on', 'minecraft:dripstone_block') + event.add('tfc:grass_plantable_on', 'minecraft:moss_block') + event.add('tfc:creeping_plantable_on', 'minecraft:moss_block') + event.add('tfc:creeping_plantable_on', 'minecraft:deepslate') + event.add('tfc:creeping_plantable_on', 'minecraft:blackstone') + event.add('tfc:creeping_stone_plantable_on', 'minecraft:moss_block') + event.add('tfc:creeping_stone_plantable_on', 'minecraft:deepslate') + event.add('tfc:creeping_stone_plantable_on', 'minecraft:blackstone') + + event.add('minecraft:base_stone_nether', 'minecraft:deepslate') + event.add('minecraft:base_stone_nether', 'minecraft:blackstone') + event.add('minecraft:base_stone_nether', 'minecraft:dripstone_block') + event.add("minecraft:base_stone_nether", "tfc:rock/raw/gneiss"); + event.add("minecraft:base_stone_nether", "tfc:rock/raw/schist"); + event.add("minecraft:base_stone_nether", "tfc:rock/raw/diorite"); + event.add("minecraft:base_stone_nether", "tfc:rock/raw/granite"); + event.add("minecraft:base_stone_nether", "tfc:rock/raw/gabbro"); + event.add("minecraft:base_stone_nether", "tfc:rock/raw/basalt"); + + event.add('minecraft:mineable/pickaxe', 'minecraft:lantern'); + + event.add('minecraft:mineable/pickaxe', 'minecraft:cobweb'); + event.add('minecraft:mineable/hoe', 'minecraft:cobweb'); + event.add('minecraft:mineable/shovel', 'minecraft:cobweb'); + event.add('minecraft:mineable/axe', 'minecraft:cobweb'); + + event.add('minecraft:nether_carver_replaceables', 'tfg:rock/hardened_deepslate') + event.add('minecraft:moss_replaceable', 'tfg:rock/hardened_deepslate') + event.add('minecraft:base_stone_nether', 'tfg:rock/hardened_deepslate') + event.add('beneath:nether_bush_plantable_on', 'tfg:rock/hardened_deepslate') + event.add('tfc:grass_plantable_on', 'tfg:rock/hardened_deepslate') + event.add('tfc:creeping_plantable_on', 'tfg:rock/hardened_deepslate') + + event.add('minecraft:nether_carver_replaceables', 'tfg:rock/hardened_blackstone') + event.add('minecraft:moss_replaceable', 'tfg:rock/hardened_blackstone') + event.add('minecraft:base_stone_nether', 'tfg:rock/hardened_blackstone') + event.add('beneath:nether_bush_plantable_on', 'tfg:rock/hardened_blackstone') + event.add('tfc:creeping_plantable_on', 'tfg:rock/hardened_blackstone') + + event.add('minecraft:nether_carver_replaceables', 'tfg:rock/hardened_dripstone') + event.add('minecraft:base_stone_nether', 'tfg:rock/hardened_dripstone') + + event.add("beneath:nether_bush_plantable_on", "#tfc:clay_grass"); + event.add("minecraft:small_dripleaf_placeable", "#tfc:clay_grass"); + event.add("minecraft:big_dripleaf_placeable", "#tfc:clay_grass"); + event.add("minecraft:frogs_spawnable_on", "#tfc:clay_grass"); + event.add("minecraft:axolotls_spawnable_on", "#tfc:clay_grass"); + + event.add("minecraft:small_dripleaf_placeable", "#tfc:clay"); + event.add("minecraft:big_dripleaf_placeable", "#tfc:clay"); + event.add("minecraft:frogs_spawnable_on", "#tfc:clay"); + event.add("minecraft:axolotls_spawnable_on", "#tfc:clay"); + + event.add("beneath:nether_bush_plantable_on", "#tfc:mud"); + event.add("minecraft:frogs_spawnable_on", "#tfc:mud"); + + event.add("beneath:nether_bush_plantable_on", "#tfc:dirt"); + event.add("minecraft:frogs_spawnable_on", "#tfc:dirt"); + + event.add("minecraft:nether_carver_replaceables", "#minecraft:base_stone_nether"); + event.add("minecraft:frogs_spawnable_on", "#minecraft:base_stone_nether"); +} + +function registerTFGBeneathBiomeTags(event) { + + event.add('tfg:nether_biomes', 'tfg:nether/lush_hollow') + event.add('minecraft:allows_surface_slime_spawns', 'tfg:nether/lush_hollow') + event.add('minecraft:spawns_cold_variant_frogs', 'tfg:nether/lush_hollow') + + event.add('tfg:nether_biomes', 'tfg:nether/decaying_caverns') + event.add('minecraft:allows_surface_slime_spawns', 'tfg:nether/decaying_caverns') + event.add('minecraft:spawns_warm_variant_frogs', 'tfg:nether/decaying_caverns') + event.add('minecraft:has_closer_water_fog', 'tfg:nether/decaying_caverns') + + event.add('tfg:nether_biomes', 'tfg:nether/basalt_deltas') + event.add('tfg:nether_biomes', 'tfg:nether/ash_forest') + event.add('tfg:nether_biomes', 'tfg:nether/lava_floes') + event.add('tfg:nether_biomes', 'tfg:nether/webbed_lair') + event.add('tfg:nether_biomes', 'tfg:nether/gneiss_caves') + event.add('tfg:nether_biomes', 'tfg:nether/diorite_caves') + event.add('tfg:nether_biomes', 'tfg:nether/gabbro_caves') + event.add('tfg:nether_biomes', 'tfg:nether/granite_caves') + event.add('tfg:nether_biomes', 'tfg:nether/schist_caves') + + event.add('minecraft:has_structure/nether_fossil', '#tfg:nether_biomes') + event.add('minecraft:has_structure/bastion_remnant', '#tfg:nether_biomes') + +} + +function registerTFGBeneathPlacedFeatures(event) { + + event.add('tfg:nether_veins', 'beneath:vein/crackrack_pipe') + + event.add('tfg:nether_underground_decoration', 'minecraft:spring_open') + event.add('tfg:nether_underground_decoration', 'minecraft:spring_closed') + event.add('tfg:nether_underground_decoration', 'tfg:nether/terrain/magma_blob') +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/data.js b/kubejs/server_scripts/tfg/data.js index 07e49af45..d8c290270 100644 --- a/kubejs/server_scripts/tfg/data.js +++ b/kubejs/server_scripts/tfg/data.js @@ -10,6 +10,7 @@ function registerTFCDataForTFG(event) { registerTFGCropRanges(event); registerTFGFLPlanters(event); registerTFGFauna(event); + registerTFGEquipmentData(event); } //#region Heat Data @@ -301,6 +302,16 @@ function registerTFGItemSize(event) { event.itemSize("tfg:beaker", "large", "heavy", "tfg/beaker"); event.itemSize("tfg:flask", "normal", "medium", "tfg/flask"); event.itemSize("tfg:vial", "tiny", "light", "tfg/vial"); + + + event.itemSize('#tfc:ore_pieces', 'very_small', 'very_light', 'tfc_ores') + + event.itemSize('#tfc:foods/sealed_preserves', 'tiny', 'medium', 'sealed_preserves') + event.itemSize('#tfc:foods/preserves', 'tiny', 'medium', 'preserves') + + event.itemSize('#forge:tools/wrenches', 'very_large', 'very_heavy', 'wrenches') + event.itemSize('#forge:tools/mining_hammers', 'very_large', 'very_heavy', 'mining_hammers') + event.itemSize('#forge:tools/spades', 'very_large', 'very_heavy', 'spades') } //#endregion @@ -328,949 +339,4 @@ function registerTFGSupportData(event) { }); } -//#endregion -//#region Food Data - -/** @param {Internal.TFCDataEventJS} event */ -function registerTFGFoodData(event) { - - // Birt - event.foodItem("tfg:food/raw_birt", (food) => { - food.hunger(2); - food.protein(1.2); - food.decayModifier(3); - }); - - event.foodItem("tfg:food/cooked_birt", (food) => { - food.hunger(4); - food.saturation(2); - food.protein(2.2); - food.decayModifier(2.25); - }); - - // Crawlermari - event.foodItem("tfg:food/raw_crawlermari", (food) => { - food.hunger(2); - food.water(5); - food.protein(1.2); - food.decayModifier(3); - }); - - event.foodItem("tfg:food/cooked_crawlermari", (food) => { - food.hunger(4); - food.saturation(2); - food.protein(2.2); - food.decayModifier(2.25); - }); - - // Limpet - event.foodItem("tfg:food/raw_limpet", (food) => { - food.hunger(2); - food.water(5); - food.protein(1.2); - food.decayModifier(3); - }); - - event.foodItem("tfg:food/cooked_limpet", (food) => { - food.hunger(4); - food.saturation(2); - food.protein(2.2); - food.decayModifier(2.25); - }); - - // Moon Rabbit - event.foodItem("tfg:food/raw_moon_rabbit", (food) => { - food.hunger(2); - food.protein(1.2); - food.decayModifier(3); - }); - - event.foodItem("tfg:food/cooked_moon_rabbit", (food) => { - food.hunger(4); - food.saturation(2); - food.protein(2.2); - food.decayModifier(2.25); - }); - - // Glacian Mutton - event.foodItem("tfg:food/raw_glacian_mutton", (food) => { - food.hunger(2); - food.protein(1.5); - food.decayModifier(3); - }); - - event.foodItem("tfg:food/cooked_glacian_mutton", (food) => { - food.hunger(4); - food.saturation(2); - food.protein(3); - food.decayModifier(2.25); - }); - - // Sniffer Beef - event.foodItem("tfg:food/raw_sniffer_beef", (food) => { - food.hunger(2); - food.protein(1.5); - food.decayModifier(3); - }); - - event.foodItem("tfg:food/cooked_sniffer_beef", (food) => { - food.hunger(4); - food.saturation(2); - food.protein(3); - food.decayModifier(2.25); - }); - - // Wraptor - event.foodItem("tfg:food/raw_wraptor", (food) => { - food.hunger(2); - food.protein(1.5); - food.decayModifier(3); - }); - - event.foodItem("tfg:food/cooked_wraptor", (food) => { - food.hunger(4); - food.saturation(2); - food.protein(3); - food.decayModifier(2.25); - }); - - // Springling Collar - event.foodItem("tfg:food/raw_springling_collar", (food) => { - food.hunger(2); - food.protein(1.5); - food.decayModifier(3); - }); - - event.foodItem("tfg:food/cooked_springling_collar", (food) => { - food.hunger(4); - food.saturation(2); - food.protein(3); - food.decayModifier(2.25); - }); - - // Surfer Steak - event.foodItem("tfg:food/raw_surfer_steak", (food) => { - food.hunger(2); - food.protein(1.5); - food.decayModifier(3); - }); - - event.foodItem("tfg:food/cooked_surfer_steak", (food) => { - food.hunger(4); - food.saturation(2); - food.protein(3); - food.decayModifier(2.25); - }); - - // Cruncher Ribs - event.foodItem("tfg:food/raw_cruncher_ribs", (food) => { - food.hunger(2); - food.protein(2.0); - food.decayModifier(3); - }); - - event.foodItem("tfg:food/cooked_cruncher_ribs", (food) => { - food.hunger(4); - food.saturation(2.2); - food.protein(4); - food.decayModifier(2.25); - }); - - // Long Pig Filet - event.foodItem("tfg:food/raw_long_pig_filet", (food) => { - food.hunger(2); - food.protein(1.5); - food.decayModifier(3); - }); - - event.foodItem("tfg:food/cooked_long_pig_filet", (food) => { - food.hunger(2); - food.saturation(2); - food.protein(2); - food.decayModifier(2.25); - }); - - // Stackatick Chunks - event.foodItem("tfg:food/raw_stackatick_chunks", (food) => { - food.hunger(2); - food.protein(1.2); - food.decayModifier(3); - }); - - event.foodItem("tfg:food/raw_stickastackatick", (food) => { - food.hunger(2); - food.protein(1.2); - food.decayModifier(3); - }); - - event.foodItem("tfg:food/cooked_stickastackatick", (food) => { - food.hunger(4); - food.saturation(2); - food.protein(3); - food.decayModifier(2.25); - }); - - // Walker Steak - event.foodItem("tfg:food/raw_walker_steak", (food) => { - food.hunger(2); - food.protein(2.0); - food.decayModifier(3); - }); - - event.foodItem("tfg:food/cooked_walker_steak", (food) => { - food.hunger(4); - food.saturation(2.2); - food.protein(4); - food.decayModifier(2.25); - }); - - // Glider Wings - event.foodItem("tfg:food/raw_glider_wings", (food) => { - food.hunger(2); - food.protein(1.5); - food.decayModifier(3); - }); - - event.foodItem("tfg:food/cooked_glider_wings", (food) => { - food.hunger(4); - food.saturation(2); - food.protein(2.75); - food.decayModifier(2.25); - }); - - // Soarer - event.foodItem("tfg:food/raw_whole_soarer", (food) => { - food.hunger(2); - food.protein(1.5); - food.decayModifier(3); - }); - - event.foodItem("tfg:food/cooked_whole_soarer", (food) => { - food.hunger(4); - food.saturation(2); - food.protein(3.1); - food.decayModifier(2.25); - }); - - // Crusher Meat - event.foodItem("tfg:food/raw_crusher_meat", (food) => { - food.hunger(2); - food.protein(1.5); - food.decayModifier(3); - }); - - event.foodItem("tfg:food/cooked_crusher_meat", (food) => { - food.hunger(4); - food.saturation(2); - food.protein(3); - food.decayModifier(2.25); - }); - - // Goober Meat - event.foodItem("tfg:food/raw_goober_meat", (food) => { - food.hunger(2); - food.protein(1.5); - food.decayModifier(3); - food.water(1); - }); - - event.foodItem("tfg:food/cooked_goober_meat", (food) => { - food.hunger(4); - food.saturation(2); - food.protein(3); - food.decayModifier(2.25); - }); - - // high-tech food - global.FOOD_FRUIT.forEach((fruit) => { - event.foodItem(`tfg:food/freeze_dried/${fruit.name}`, (food) => { - food.hunger(4); - food.saturation(fruit.saturation); - food.water(0); - food.fruit(fruit.fruit); - food.decayModifier(fruit.decay); - }); - }); - - event.foodItem("tfg:food/calorie_paste", (food) => { - food.hunger(6); - food.saturation(4); - food.decayModifier(4.5); - food.grain(0.1); - food.vegetables(0.2); - food.protein(0.2); - }); - - event.foodItem("tfg:food/meal_bag", (food) => { - food.type("dynamic"); - }); - - // Sunflower products - event.foodItem("tfg:roasted_sunflower_seeds", (food) => { - food.hunger(4); - food.decayModifier(0.5); - food.grain(0.1); - food.saturation(0.5); - }); - - event.foodItem("tfg:sunflower_product", (food) => { - food.decayModifier(0.5); - }); - - // Amber Roots - event.foodItem("betterend:amber_root_product", (food) => { - food.hunger(4); - food.decayModifier(1); - food.saturation(1); - food.grain(3); - }); - - // Blossom Berries - event.foodItem("betterend:blossom_berry_product", (food) => { - food.hunger(5); - food.decayModifier(2); - food.saturation(1); - food.water(7.5); - food.fruit(2.1); - }); - - // Cave Pumpkin - event.foodItem("betterend:cave_pumpkin", (food) => { - food.hunger(4); - food.saturation(0); - food.decayModifier(0.5); - }); - - event.foodItem("betterend:cave_pumpkin_chunks", (food) => { - food.hunger(4); - food.saturation(1); - food.decayModifier(2.5); - food.water(5); - food.fruit(0.8); - }); - - event.foodItem("betterend:cave_pumpkin_pie_dough", (food) => { - food.hunger(2); - food.decayModifier(3); - }); - - event.foodItem("betterend:cave_pumpkin_pie_raw", (food) => { - food.hunger(2); - food.decayModifier(3); - }); - - event.foodItem("betterend:cave_pumpkin_pie", (food) => { - food.hunger(4); - food.saturation(2.8); - food.decayModifier(1.5); - food.water(5); - food.protein(1); - food.fruit(5); - food.grain(4); - food.dairy(1); - }); - - // Chorus Mushroom - event.foodItem("betterend:chorus_mushroom_product", (food) => { - food.hunger(2); - food.saturation(1); - food.decayModifier(3); - food.water(3); - food.vegetables(1.5); - }); - - event.foodItem("betterend:chorus_mushroom_cooked", (food) => { - food.hunger(2); - food.saturation(2.1); - food.decayModifier(1.5); - food.vegetables(2.5); - }); - - // Shadow Berry - event.foodItem("betterend:shadow_berry_product", (food) => { - food.hunger(5); - food.decayModifier(2); - food.saturation(1); - food.water(5); - food.fruit(1.9); - }); - - event.foodItem("betterend:shadow_berry_cooked", (food) => { - food.hunger(5); - food.decayModifier(1); - food.saturation(2); - food.fruit(2.2); - }); - - // Bolux Mushroom - event.foodItem("betterend:bolux_mushroom_product", (food) => { - food.hunger(2); - food.saturation(1); - food.decayModifier(3); - food.water(3); - food.vegetables(1.5); - }); - - event.foodItem("betterend:bolux_mushroom_cooked", (food) => { - food.hunger(2); - food.saturation(2); - food.decayModifier(1.5); - food.vegetables(2.4); - }); - - // Dino Nuggets - event.foodItem('tfg:food/raw_dino_nugget', (food) => { - food.type("dynamic"); - food.hunger(1); - food.decayModifier(3); - }); - - event.foodItem('tfg:food/cooked_dino_nugget', (food) => { - food.type("dynamic"); - food.hunger(3); - food.saturation(2); - food.decayModifier(1.5); - }); - - // Ice Soup - event.foodItem("tfg:food/ice_soup", (food) => { - food.hunger(1); - food.water(20); - food.decayModifier(0); - }); - - // Fries - event.foodItem('tfg:food/raw_fries', (food) => { - food.hunger(1); - food.decayModifier(3); - food.vegetables(0.25); - }); - - event.foodItem('tfg:food/cooked_fries', (food) => { - food.hunger(2); - food.decayModifier(1.5); - food.vegetables(0.6); - food.saturation(2); - }); - - // Cheese Curds - event.foodItem('tfg:food/raw_beer_battered_cheese_curds', (food) => { - food.hunger(1); - food.decayModifier(1.3); - food.dairy(1); - food.saturation(1); - }); - - event.foodItem('tfg:food/cooked_beer_battered_cheese_curds', (food) => { - food.hunger(3); - food.decayModifier(0.8); - food.dairy(1.2); - food.saturation(2); - food.grain(0.5); - }); - - // Hamburgers - event.foodItem('tfg:food/raw_burger_patty', (food) => { - food.hunger(2); - food.decayModifier(2.3); - food.protein(2); - }); - - event.foodItem('tfg:food/cooked_burger_patty', (food) => { - food.hunger(4); - food.decayModifier(2); - food.protein(2.5); - food.saturation(2); - }); - - event.foodItem('tfg:food/brioche_dough', (food) => { - food.hunger(1.5); - food.decayModifier(2.3); - }); - - event.foodItem('tfg:food/brioche_bun', (food) => { - food.hunger(3.5); - food.decayModifier(1.5); - food.grain(1.5); - food.dairy(0.5); - food.saturation(1); - }); - - event.foodItem('tfg:food/hamburger', (food) => { - food.type("dynamic"); - }); - - event.foodItem('tfg:food/cheeseburger', (food) => { - food.type("dynamic"); - }); - - // Poutine - event.foodItem('tfg:food/poutine', (food) => { - food.type("dynamic_bowl"); - }); - - // Oatmeal - event.foodItem('tfg:food/oatmeal', (food) => { - food.type("dynamic_bowl"); - }); - - // Biochem Items - event.foodItem("tfg:progenitor_cells", (food) => { - food.decayModifier(1); - }); - event.foodItem("tfg:rough_endoplasmic_reticula", (food) => { - food.decayModifier(0.5); - }); - event.foodItem("tfg:smooth_endoplasmic_reticula", (food) => { - food.decayModifier(0.5); - }); - - // Instant Mac - event.foodItem('tfg:food/raw_instant_mac', (food) => { - food.hunger(2); - food.decayModifier(0.2); - }); - - event.foodItem('tfg:food/cooked_instant_mac', (food) => { - food.hunger(3.5); - food.decayModifier(1.6); - food.grain(1.5); - food.dairy(2.5); - food.protein(0.8); - food.saturation(1.8); - }); - - //#region Drinkables - // Proto Growth Medium - event.drinkable("tfg:proto_growth_medium", (data) => { - data.thirst(10); - data.food(food => { - food.dairy(5); - food.protein(1); - }); - data.effect("minecraft:absorption", (effect) => { - effect.amplifier(2); - effect.chance(0.25); - effect.duration(1200); - }); - }); - - // Semiheavy Ammoniacal Water - event.drinkable("tfg:semiheavy_ammoniacal_water", (data) => { - data.thirst(10); - data.effect("minecraft:nausea", (effect) => { - effect.chance(0.5); - effect.duration(200); - }); - }); - - // Rich Stock - event.drinkable('tfg:rich_stock', (data) => { - data.thirst(4); - data.effect("tfc:thirst", (effect) => { - effect.chance(0.2); - effect.duration(20*5); - }); - data.food(food => { - food.protein(0.25); - food.vegetables(0.25); - }); - }); - - // Light Stock - event.drinkable('tfg:light_stock', (data) => { - data.thirst(4); - data.effect("tfc:thirst", (effect) => { - effect.chance(0.2); - effect.duration(20*5); - }); - data.food(food => { - food.protein(0.25); - food.vegetables(0.25); - }); - }); - - // Brown Gravy - event.drinkable('tfg:brown_gravy', (data) => { - data.thirst(2); - data.effect("tfc:thirst", (effect) => { - effect.chance(0.3); - effect.duration(20*5); - }); - data.food(food => { - food.protein(0.5); - food.vegetables(0.5); - food.grain(0.25); - }); - }); - - //#endregion -} - -//#endregion -//#region Crop Data - -/** @param {Internal.TFCDataEventJS} event */ -function registerTFGCropRanges(event) { - // Earth - event.climateRange((climate) => { - climate.minHydration(20); - climate.maxHydration(80); - climate.minTemperature(5); - climate.maxTemperature(40); - climate.hydrationWiggle(7.5); - climate.temperatureWiggle(5.5); - }, "tfg:sunflower"); - - event.climateRange((climate) => { - climate.minHydration(10); - climate.maxHydration(60); - climate.minTemperature(-5); - climate.maxTemperature(25); - climate.hydrationWiggle(7.5); - climate.temperatureWiggle(1.5); - }, "tfg:rapeseed"); - - event.climateRange((climate) => { - climate.minHydration(15); - climate.maxHydration(65); - climate.minTemperature(-8); - climate.maxTemperature(25); - climate.hydrationWiggle(6.5); - climate.temperatureWiggle(3); - }, "tfg:flax"); - - // Mars - event.climateRange((climate) => { - climate.minHydration(0); - climate.maxHydration(40); - climate.minTemperature(-150); - climate.maxTemperature(15); - climate.hydrationWiggle(7.5); - climate.temperatureWiggle(5.5); - }, "betterend:amber_root"); - - event.climateRange((climate) => { - climate.minHydration(70); - climate.maxHydration(100); - climate.minTemperature(-80); - climate.maxTemperature(30); - climate.hydrationWiggle(7.5); - climate.temperatureWiggle(5.5); - }, "betterend:blossom_berry"); - - event.climateRange((climate) => { - climate.minHydration(0); - climate.maxHydration(40); - climate.minTemperature(-150); - climate.maxTemperature(15); - climate.hydrationWiggle(7.5); - climate.temperatureWiggle(5.5); - }, "betterend:bolux_mushroom"); - - event.climateRange((climate) => { - climate.minHydration(0); - climate.maxHydration(60); - climate.minTemperature(-100); - climate.maxTemperature(30); - climate.hydrationWiggle(7.5); - climate.temperatureWiggle(5.5); - }, "betterend:cave_pumpkin_plant"); - - event.climateRange((climate) => { - climate.minHydration(0); - climate.maxHydration(40); - climate.minTemperature(-150); - climate.maxTemperature(15); - climate.hydrationWiggle(7.5); - climate.temperatureWiggle(5.5); - }, "betterend:chorus_mushroom"); - - event.climateRange((climate) => { - climate.minHydration(50); - climate.maxHydration(100); - climate.minTemperature(-80); - climate.maxTemperature(30); - climate.hydrationWiggle(7.5); - climate.temperatureWiggle(5.5); - }, "betterend:shadow_berry"); -} - -//#endregion -//#region Planter Data - -/** @param {Internal.TFCDataEventJS} event */ -function registerTFGFLPlanters(event) { - event.firmalifePlantable( - "tfg:sunflower_seeds", - "large", - 0, - 3, - 0.15, - "tfg:sunflower_seeds", - "tfg:sunflower_product", - "nitrogen", - [ - "tfg:block/crop/sunflower_greenhouse_0", - "tfg:block/crop/sunflower_greenhouse_1", - "tfg:block/crop/sunflower_greenhouse_2", - "tfg:block/crop/sunflower_greenhouse_3" - ], - null - ); - - event.firmalifePlantable( - "tfg:rapeseed_seeds", - "large", - 0, - 3, - 0.15, - "tfg:rapeseed_seeds", - "tfg:rapeseed_product", - "phosphorous", - [ - "tfg:block/crop/rapeseed_greenhouse_0", - "tfg:block/crop/rapeseed_greenhouse_1", - "tfg:block/crop/rapeseed_greenhouse_2", - "tfg:block/crop/rapeseed_greenhouse_3" - ], - null - ); - - event.firmalifePlantable( - "tfg:flax_seeds", - "large", - 0, - 3, - 0.2, - "tfg:flax_seeds", - "tfg:flax_product", - "nitrogen", - [ - "tfg:block/crop/flax_age_0", - "tfg:block/crop/flax_age_1", - "tfg:block/crop/flax_age_5_top", - "tfg:block/crop/flax_age_6_top" - ], - null - ); - - event.firmalifePlantable( - "betterend:amber_root_seeds", - "large", - 0, - 3, - 0.15, - "betterend:amber_root_seeds", - "betterend:amber_root_product", - "phosphorous", - [ - "betterend:block/amber_root_0", - "betterend:block/amber_root_1", - "betterend:block/amber_root_2", - "betterend:block/amber_root_3" - ], - null - ); - - event.firmalifePlantable( - "betterend:blossom_berry_seeds", - "large", - 0, - 3, - 0.15, - "betterend:blossom_berry_seeds", - "betterend:blossom_berry_product", - "potassium", - [ - "betterend:block/blossom_berry_seed_0", - "betterend:block/blossom_berry_seed_1", - "betterend:block/blossom_berry_seed_2", - "betterend:block/blossom_berry_seed_3" - ], - null - ); - - event.firmalifePlantable( - "betterend:bolux_mushroom_seeds", - "quad", - 1, - 3, - 0.15, - "betterend:bolux_mushroom_seeds", - "betterend:bolux_mushroom_product", - "phosphorous", - [ - "betterend:block/bolux_mushroom_greenhouse_0", - "betterend:block/bolux_mushroom_greenhouse_1", - "betterend:block/bolux_mushroom_greenhouse_2", - "betterend:block/bolux_mushroom_greenhouse_3" - ], - null - ); - - event.firmalifePlantable( - "betterend:chorus_mushroom_seeds", - "quad", - 1, - 3, - 0.15, - "betterend:chorus_mushroom_seeds", - "betterend:chorus_mushroom_product", - "phosphorous", - [ - "betterend:block/chorus_mushroom_0", - "betterend:block/chorus_mushroom_1", - "betterend:block/chorus_mushroom_2", - "betterend:block/chorus_mushroom_3" - ], - null - ); - - event.firmalifePlantable( - "betterend:cave_pumpkin_plant_seeds", - "hanging", - 2, - 3, - 0.15, - "betterend:cave_pumpkin_plant_seeds", - "betterend:cave_pumpkin", - "phosphorous", - [ - "betterend:block/cave_pumpkin_greenhouse_0", - "betterend:block/cave_pumpkin_greenhouse_1", - "betterend:block/cave_pumpkin_greenhouse_2", - "betterend:block/cave_pumpkin_greenhouse_3" - ], - "betterend:block/cave_pumpkin_top" - ); - - event.firmalifePlantable( - "betterend:shadow_berry_seeds", - "quad", - 1, - 3, - 0.15, - "betterend:shadow_berry_seeds", - "betterend:shadow_berry_product", - "potassium", - [ - "betterend:block/shadow_berry_greenhouse_0", - "betterend:block/shadow_berry_greenhouse_1", - "betterend:block/shadow_berry_greenhouse_2", - "betterend:block/shadow_berry_greenhouse_3" - ], - null - ); -} - -//#endregion -//#region Fauna Data - -/** @param {Internal.TFCDataEventJS} event */ -function registerTFGFauna(event) { - - // -108 is the average at z=-4k to z=-6k, which feels like a big enough band - event.fauna( - climate => { - climate.maxTemp(-108) - climate.fuzzy(false) - }, - faunaData => { - faunaData.solidGround(true) - }, - "tfg:glacian_ram") - - event.fauna( - climate => { - climate.minTemp(-102) - climate.maxTemp(-30) - climate.fuzzy(true) - }, - faunaData => { - faunaData.solidGround(true) - }, - "tfg:sniffer") - - event.fauna( - climate => { - climate.minTemp(-100) - climate.fuzzy(true) - }, - faunaData => { - faunaData.solidGround(true) - }, - "tfg:wraptor") - - event.fauna( - climate => { - climate.minTemp(-108) - climate.fuzzy(true) - }, - faunaData => { - faunaData.solidGround(true) - }, - "species:springling") - - event.fauna( - climate => { - climate.minTemp(-109) - climate.fuzzy(true) - }, - faunaData => { - faunaData.solidGround(true) - }, - "species:goober") - - event.fauna( - climate => { - climate.minTemp(-97) - climate.fuzzy(true) - }, - faunaData => { - faunaData.solidGround(true) - }, - "wan_ancient_beasts:walker") - - event.fauna( - climate => { - climate.minTemp(-109) - climate.fuzzy(true) - }, - faunaData => { - faunaData.solidGround(true) - }, - "wan_ancient_beasts:eater") - - event.fauna( - climate => { - climate.minTemp(-100) - climate.fuzzy(true) - }, - faunaData => { - faunaData.solidGround(true) - }, - "wan_ancient_beasts:crusher") - - event.fauna( - climate => { - climate.minTemp(-105) - climate.fuzzy(true) - }, - faunaData => { - faunaData.solidGround(true) - }, - "wan_ancient_beasts:soarer") - - event.fauna( - climate => { - climate.minTemp(-106) - climate.fuzzy(true) - }, - faunaData => { - faunaData.solidGround(true) - }, - "wan_ancient_beasts:glider") -} - //#endregion \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/equipment/data.equipment.js b/kubejs/server_scripts/tfg/equipment/data.equipment.js new file mode 100644 index 000000000..4263d344b --- /dev/null +++ b/kubejs/server_scripts/tfg/equipment/data.equipment.js @@ -0,0 +1,189 @@ +"use strict"; + +function registerTFGEquipmentData(event) { + + // #region Armor resistances + + event.itemDamageResistance( + 'create:copper_diving_helmet', + 2, + 2, + 2 + ) + event.itemDamageResistance( + 'create:copper_backtank', + 2, + 2, + 2 + ) + event.itemDamageResistance( + 'create:copper_diving_boots', + 2, + 2, + 2 + ) + event.itemDamageResistance( + 'create:copper_diving_helmet', + 2, + 2, + 2 + ) + event.itemDamageResistance( + 'gtceu:hazmat_headpiece', + null, + null, + 3 + ) + event.itemDamageResistance( + 'gtceu:hazmat_chestpiece', + null, + null, + 3 + ) + event.itemDamageResistance( + 'gtceu:hazmat_leggings', + null, + null, + 3 + ) + event.itemDamageResistance( + 'gtceu:hazmat_boots', + null, + null, + 3 + ) + event.itemDamageResistance( + 'create:netherite_diving_helmet', + 13, + 13, + 15 + ) + event.itemDamageResistance( + 'create:netherite_backtank', + 13, + 13, + 15 + ) + event.itemDamageResistance( + 'minecraft:netherite_leggings', + 13, + 13, + 15 + ) + event.itemDamageResistance( + 'create:netherite_diving_boots', + 13, + 13, + 15 + ) + event.itemDamageResistance( + 'gtceu:nanomuscle_helmet', + 16, + 16, + 16 + ) + event.itemDamageResistance( + 'gtceu:nanomuscle_chestplate', + 16, + 16, + 16 + ) + event.itemDamageResistance( + 'gtceu:advanced_nanomuscle_chestplate', + 16, + 16, + 16 + ) + event.itemDamageResistance( + 'gtceu:nanomuscle_leggings', + 16, + 16, + 16 + ) + event.itemDamageResistance( + 'gtceu:nanomuscle_boots', + 16, + 16, + 16 + ) + event.itemDamageResistance( + 'gtceu:quarktech_helmet', + 24, + 24, + 24 + ) + event.itemDamageResistance( + 'gtceu:quarktech_chestplate', + 24, + 24, + 24 + ) + event.itemDamageResistance( + 'gtceu:advanced_quarktech_chestplate', + 24, + 24, + 24 + ) + event.itemDamageResistance( + 'gtceu:quarktech_leggings', + 24, + 24, + 24 + ) + event.itemDamageResistance( + 'gtceu:quarktech_boots', + 24, + 24, + 24 + ) + event.itemDamageResistance( + 'ad_astra:space_helmet', + 16, + 16, + 16 + ) + event.itemDamageResistance( + 'ad_astra:space_suit', + 16, + 16, + 16 + ) + event.itemDamageResistance( + 'ad_astra:space_pants', + 16, + 16, + 16 + ) + event.itemDamageResistance( + 'ad_astra:space_boots', + 16, + 16, + 16 + ) + event.itemDamageResistance( + 'ad_astra:netherite_space_helmet', + 21, + 21, + 21 + ) + event.itemDamageResistance( + 'ad_astra:netherite_space_suit', + 21, + 21, + 21 + ) + event.itemDamageResistance( + 'ad_astra:netherite_space_pants', + 21, + 21, + 21 + ) + event.itemDamageResistance( + 'ad_astra:netherite_space_boots', + 21, + 21, + 21 + ) + + // #endregion +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/equipment/events.equipment.js b/kubejs/server_scripts/tfg/equipment/events.equipment.js new file mode 100644 index 000000000..3ec2ba29d --- /dev/null +++ b/kubejs/server_scripts/tfg/equipment/events.equipment.js @@ -0,0 +1,18 @@ +"use strict"; + +PlayerEvents.tick((event) => { + const { player } = event; + if (player.age % 100 === 0) { + if (player.headArmorItem === 'create:netherite_diving_helmet' + && player.chestArmorItem === 'create:netherite_backtank' + && player.legsArmorItem === 'minecraft:netherite_leggings' + && (player.feetArmorItem === 'create:netherite_diving_boots' + || player.feetArmorItem === 'minecraft:netherite_boots')) { + player.potionEffects.add("minecraft:fire_resistance", 350, 0, true, false); + } + + if (player.legsArmorItem === 'gtceu:nanomuscle_leggings') { + player.potionEffects.add("minecraft:speed", 350, 0, true, false); + } + } +}); diff --git a/kubejs/server_scripts/tfg/equipment/recipes.equipment.js b/kubejs/server_scripts/tfg/equipment/recipes.equipment.js new file mode 100644 index 000000000..83c54f8d4 --- /dev/null +++ b/kubejs/server_scripts/tfg/equipment/recipes.equipment.js @@ -0,0 +1,54 @@ +"use strict"; + +function registerTFGEquipmentRecipes(event) { + // #region Primitive protection + + event.recipes.tfc.barrel_sealed(2000) + .outputItem('tfg:prepared_leather_gloves') + .inputs('tfchotornot:mittens', Fluid.of('tfc:vinegar', 1000)) + .id('tfg:sealed_barrel/prepared_leather_gloves') + + event.recipes.firmalife.vat() + .outputItem('tfg:latex_soaked_gloves') + .inputs('tfg:prepared_leather_gloves', Fluid.of('tfg:vulcanized_latex', 1000)) + .length(300) + .temperature(200) + .id('tfg:vat/latex_soaked_gloves') + + event.recipes.firmalife.oven('tfg:latex_soaked_gloves', 120, 1200, 'gtceu:rubber_gloves') + .id('tfg:oven/rubber_gloves') + + event.remove({ id: 'gtceu:shaped/rubber_gloves' }) + + event.recipes.gtceu.alloy_smelter('rubber_gloves_alloy_smelter') + .itemInputs('2x #forge:plates/rubber') + .notConsumable('create:brass_hand') + .itemOutputs('gtceu:rubber_gloves') + .duration(200) + .EUt(GTValues.VA[GTValues.ULV]) + .category(GTRecipeCategories.INGOT_MOLDING) + + + event.recipes.tfc.damage_inputs_shaped_crafting( + event.shaped('gtceu:face_mask', [ + 'ACA', + 'ABA', + ' D ' + ], { + A: '#forge:string', + B: '#forge:cloth', + C: 'minecraft:paper', + D: '#tfc:sewing_needles' + }) + ).id('gtceu:shaped/face_mask') + + event.recipes.gtceu.assembler('assemble_face_mask') + .itemInputs('4x #forge:string', '#forge:cloth', 'minecraft:paper') + .itemOutputs('gtceu:face_mask') + .duration(100) + .EUt(GTValues.VA[GTValues.ULV]) + .circuit(7) + + // #endregion + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/equipment/tags.equipment.js b/kubejs/server_scripts/tfg/equipment/tags.equipment.js new file mode 100644 index 000000000..b0d28afdc --- /dev/null +++ b/kubejs/server_scripts/tfg/equipment/tags.equipment.js @@ -0,0 +1,52 @@ +"use strict"; + +function registerTFGEquipmentItemTags(event) { + + event.add('minecraft:trimmable_armor', 'create:copper_diving_helmet') + event.add('minecraft:trimmable_armor', 'create:copper_diving_boots') + event.add('minecraft:trimmable_armor', 'create:netherite_diving_helmet') + event.add('minecraft:trimmable_armor', 'create:netherite_diving_boots') + event.add('minecraft:trimmable_armor', 'tfcambiental:wool_hat') + event.add('minecraft:trimmable_armor', 'tfcambiental:wool_sweater') + event.add('minecraft:trimmable_armor', 'tfcambiental:wool_pants') + event.add('minecraft:trimmable_armor', 'tfcambiental:wool_boots') + event.add('minecraft:trimmable_armor', 'tfcambiental:silk_cowl') + event.add('minecraft:trimmable_armor', 'tfcambiental:silk_shirt') + event.add('minecraft:trimmable_armor', 'tfcambiental:silk_pants') + event.add('minecraft:trimmable_armor', 'tfcambiental:silk_shoes') + event.add('minecraft:trimmable_armor', 'tfcambiental:burlap_cowl') + event.add('minecraft:trimmable_armor', 'tfcambiental:burlap_shirt') + event.add('minecraft:trimmable_armor', 'tfcambiental:burlap_pants') + event.add('minecraft:trimmable_armor', 'tfcambiental:burlap_shoes') + event.add('minecraft:trimmable_armor', 'tfcambiental:insulated_leather_hat') + event.add('minecraft:trimmable_armor', 'tfcambiental:insulated_leather_tunic') + event.add('minecraft:trimmable_armor', 'tfcambiental:insulated_leather_pants') + event.add('minecraft:trimmable_armor', 'tfcambiental:insulated_leather_boots') + event.add('minecraft:trimmable_armor', '#firmalife:beekeeper_armor') + + global.GTCEU_ARMORS.forEach((item) => { + event.add("minecraft:trimmable_armor", item); + }); + + event.add('gtceu:ppe_armor', '#ad_astra:space_suit_items') + event.add('minecraft:trimmable_armor', '#ad_astra:space_suit_items') + + event.add('ad_astra:space_suit_items', 'gtceu:quarktech_helmet') + event.add('ad_astra:space_suit_items', 'gtceu:quarktech_chestplate') + event.add('ad_astra:space_suit_items', 'gtceu:advanced_quarktech_chestplate') + event.add('ad_astra:space_suit_items', 'gtceu:quarktech_leggings') + event.add('ad_astra:space_suit_items', 'gtceu:quarktech_boots') + + event.add('ad_astra:freeze_resistant_armor', 'gtceu:quarktech_helmet') + event.add('ad_astra:freeze_resistant_armor', 'gtceu:quarktech_chestplate') + event.add('ad_astra:freeze_resistant_armor', 'gtceu:advanced_quarktech_chestplate') + event.add('ad_astra:freeze_resistant_armor', 'gtceu:quarktech_leggings') + event.add('ad_astra:freeze_resistant_armor', 'gtceu:quarktech_boots') + + event.add('ad_astra:heat_resistant_armor', 'gtceu:quarktech_helmet') + event.add('ad_astra:heat_resistant_armor', 'gtceu:quarktech_chestplate') + event.add('ad_astra:heat_resistant_armor', 'gtceu:advanced_quarktech_chestplate') + event.add('ad_astra:heat_resistant_armor', 'gtceu:quarktech_leggings') + event.add('ad_astra:heat_resistant_armor', 'gtceu:quarktech_boots') + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/europa/tags.europa.js b/kubejs/server_scripts/tfg/europa/tags.europa.js new file mode 100644 index 000000000..de5cfc9a7 --- /dev/null +++ b/kubejs/server_scripts/tfg/europa/tags.europa.js @@ -0,0 +1,22 @@ +"use strict"; + +function registerTFGEuropaEntityTypeTags(event) { + const ENTITIES = [ + 'endermanoverhaul:coral_enderman', + 'endermanoverhaul:snowy_enderman', + 'endermanoverhaul:ice_spikes_enderman', + 'species:deepfish', + 'species:leaf_hanger' + ] + + ENTITIES.forEach(entity => { + event.add('ad_astra:can_survive_extreme_cold', entity) + event.add('ad_astra:lives_without_oxygen', entity) + }) +} + +function registerTFGEuropaPlacedFeatures(event) { + + event.add("tfg:glacio_top_layer_modification", "tfg:glow_lichen") + event.add("tfg:glacio_top_layer_modification", "tfc:surface_loose_rocks") +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/events.interactions.js b/kubejs/server_scripts/tfg/events.interactions.js new file mode 100644 index 000000000..c7ca21bf3 --- /dev/null +++ b/kubejs/server_scripts/tfg/events.interactions.js @@ -0,0 +1,521 @@ + +/** + * @typedef {Object} BrickVariant + * @property {string} brick_type - The name of the brick variant. + * @property {string|null} brick - Main brick block ID. + * @property {string|null} brick_stairs - Brick stairs block ID. + * @property {string|null} brick_slab - Brick slab block ID. + * @property {string|null} brick_wall - Brick wall block ID. + * @property {string|null} cracked_brick - Cracked brick block ID. + * @property {string|null} cracked_stairs - Cracked brick stairs block ID. + * @property {string|null} cracked_slab - Cracked brick slab block ID. + * @property {string|null} cracked_wall - Cracked brick wall block ID. + * @property {string|null} mossy_brick - Mossy brick block ID. + * @property {string|null} mossy_stairs - Mossy brick stairs block ID. + * @property {string|null} mossy_slab - Mossy brick slab block ID. + * @property {string|null} mossy_wall - Mossy brick wall block ID. + * @property {string|null} smooth_brick - Smooth brick block ID. + * @property {string|null} smooth_stairs - Smooth brick stairs block ID. + * @property {string|null} smooth_slab - Smooth brick slab block ID. + * @property {string|null} smooth_wall - Smooth brick wall block ID. + * @property {string|null} chiseled_brick - Chiseled brick block ID. + */ + +const AA_REGULAR_STONES = ['moon', 'mars', 'venus', 'mercury', 'glacio'] + +// #region BRICK_INDEX +/** @type {BrickVariant[]} */ +global.BRICK_INDEX = (global.TFC_STONE_TYPES ? global.TFC_STONE_TYPES : []).map(tfc_stone => ({ + brick_type: tfc_stone, + brick: `tfc:rock/bricks/${tfc_stone}`, brick_stairs: `tfc:rock/bricks/${tfc_stone}_stairs`, brick_slab: `tfc:rock/bricks/${tfc_stone}_slab`, brick_wall: `tfc:rock/bricks/${tfc_stone}_wall`, + cracked_brick: `tfc:rock/cracked_bricks/${tfc_stone}`, cracked_stairs: `tfc:rock/cracked_bricks/${tfc_stone}_stairs`, cracked_slab: `tfc:rock/cracked_bricks/${tfc_stone}_slab`, cracked_wall: `tfc:rock/cracked_bricks/${tfc_stone}_wall`, + mossy_brick: `tfc:rock/mossy_bricks/${tfc_stone}`, mossy_stairs: `tfc:rock/mossy_bricks/${tfc_stone}_stairs`, mossy_slab: `tfc:rock/mossy_bricks/${tfc_stone}_slab`, mossy_wall: `tfc:rock/mossy_bricks/${tfc_stone}_wall`, + smooth_brick: `tfc:rock/smooth/${tfc_stone}`, smooth_stairs: `tfc:rock/smooth/${tfc_stone}_stairs`, smooth_slab: `tfc:rock/smooth/${tfc_stone}_slab`, smooth_wall: `tfc:rock/smooth/${tfc_stone}_wall`, + chiseled_brick: `tfc:rock/chiseled/${tfc_stone}` +})); +(global.CREATE_DECO_BRICK_TYPES ? global.CREATE_DECO_BRICK_TYPES : []).slice(0, -1).forEach(create_brick => { + global.BRICK_INDEX.push({ + brick_type: create_brick, + brick: `createdeco:${create_brick}_bricks`, brick_stairs: `createdeco:${create_brick}_brick_stairs`, brick_slab: `createdeco:${create_brick}_brick_slab`, brick_wall: `createdeco:${create_brick}_brick_wall`, + cracked_brick: `createdeco:cracked_${create_brick}_bricks`, cracked_stairs: `createdeco:cracked_${create_brick}_brick_stairs`, cracked_slab: `createdeco:cracked_${create_brick}_brick_slab`, cracked_wall: `createdeco:cracked_${create_brick}_brick_wall`, + mossy_brick: `createdeco:mossy_${create_brick}_bricks`, mossy_stairs: `createdeco:mossy_${create_brick}_brick_stairs`, mossy_slab: `createdeco:mossy_${create_brick}_brick_slab`, mossy_wall: `createdeco:mossy_${create_brick}_brick_wall`, + smooth_brick: `createdeco:corner_${create_brick}_bricks`, smooth_stairs: `createdeco:corner_${create_brick}_brick_stairs`, smooth_slab: `createdeco:corner_${create_brick}_brick_slab`, smooth_wall: `createdeco:corner_${create_brick}_brick_wall`, + chiseled_brick: `createdeco:tiled_${create_brick}_bricks` + }) +}); +global.BRICK_INDEX = global.BRICK_INDEX.concat([ + // { brick_type: '', + // brick: '', brick_stairs: '', brick_slab: '', brick_wall: '', + // cracked_brick: '', cracked_stairs: '', cracked_slab: '', cracked_wall: '', + // mossy_brick: '', mossy_stairs: '', mossy_slab: '', mossy_wallL: '', + // smooth_brick: '', smooth_stairs: '', smooth_slab: '', smooth_wall: '', + // chiseled_brick: '' }, + + { + brick_type: 'red', + brick: 'minecraft:bricks', brick_stairs: 'minecraft:brick_stairs', brick_slab: 'minecraft:brick_slab', brick_wall: 'minecraft:brick_wall', + cracked_brick: 'createdeco:cracked_red_bricks', cracked_stairs: 'createdeco:cracked_red_brick_stairs', cracked_slab: 'createdeco:cracked_red_brick_slab', cracked_wall: 'createdeco:cracked_red_brick_wall', + mossy_brick: 'createdeco:mossy_red_bricks', mossy_stairs: 'createdeco:mossy_red_brick_stairs', mossy_slab: 'createdeco:mossy_red_brick_slab', mossy_wall: 'createdeco:mossy_red_brick_wall', + smooth_brick: 'createdeco:corner_red_bricks', smooth_stairs: 'createdeco:corner_red_brick_stairs', smooth_slab: 'createdeco:corner_red_brick_slab', smooth_wall: 'createdeco:corner_red_brick_wall', + chiseled_brick: 'createdeco:tiled_red_bricks' + }, + + { + brick_type: 'light_concrete', + brick: 'gtceu:light_concrete_bricks', brick_stairs: null, brick_slab: null, brick_wall: null, + cracked_brick: 'gtceu:cracked_light_concrete_bricks', cracked_stairs: null, cracked_slab: null, cracked_wall: null, + mossy_brick: 'gtceu:mossy_light_concrete_bricks', mossy_stairs: null, mossy_slab: null, mossy_wall: null, + smooth_brick: 'gtceu:polished_light_concrete', smooth_stairs: null, smooth_slab: null, smooth_wall: null, + chiseled_brick: 'gtceu:chiseled_light_concrete' + }, + + { + brick_type: 'dark_concrete', + brick: 'gtceu:dark_concrete_bricks', brick_stairs: null, brick_slab: null, brick_wall: null, + cracked_brick: 'gtceu:cracked_dark_concrete_bricks', cracked_stairs: null, cracked_slab: null, cracked_wall: null, + mossy_brick: 'gtceu:mossy_dark_concrete_bricks', mossy_stairs: null, mossy_slab: null, mossy_wall: null, + smooth_brick: 'gtceu:polished_dark_concrete', smooth_stairs: null, smooth_slab: null, smooth_wall: null, + chiseled_brick: 'gtceu:chiseled_dark_concrete' + }, + + { + brick_type: 'deepslate', + brick: 'minecraft:deepslate_bricks', brick_stairs: 'minecraft:deepslate_brick_stairs', brick_slab: 'minecraft:deepslate_brick_slab', brick_wall: 'minecraft:deepslate_brick_wall', + cracked_brick: 'minecraft:cracked_deepslate_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_bricks_deepslate_slab', cracked_wall: 'tfg:rock/cracked_bricks_deepslate_wall', + mossy_brick: 'tfg:rock/mossy_bricks_deepslate', mossy_stairs: 'tfg:rock/mossy_bricks_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_bricks_deepslate_slab', mossy_wall: 'tfg:rock/mossy_bricks_deepslate_wall', + smooth_brick: 'minecraft:polished_deepslate', smooth_stairs: 'minecraft:polished_deepslate_stairs', smooth_slab: 'minecraft:polished_deepslate_slab', smooth_wall: 'minecraft:polished_deepslate_wall', + chiseled_brick: 'minecraft:chiseled_deepslate' + }, + + { + brick_type: 'deepslate_tiles', + brick: 'minecraft:deepslate_tiles', brick_stairs: 'minecraft:deepslate_tile_stairs', brick_slab: 'minecraft:deepslate_tile_slab', brick_wall: 'minecraft:deepslate_tile_wall', + cracked_brick: 'minecraft:cracked_deepslate_tiles', cracked_stairs: 'tfg:rock/cracked_tiles_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_tiles_deepslate_slab', cracked_wall: 'tfg:rock/cracked_tiles_deepslate_wall', + mossy_brick: null, mossy_stairs: null, mossy_slab: null, mossy_wall: null, + smooth_brick: 'minecraft:polished_deepslate', smooth_stairs: 'minecraft:polished_deepslate_stairs', smooth_slab: 'minecraft:polished_deepslate_slab', smooth_wall: 'minecraft:polished_deepslate_wall', + chiseled_brick: 'minecraft:chiseled_deepslate' + }, + + { + brick_type: 'blackstone', + brick: 'minecraft:polished_blackstone_bricks', brick_stairs: 'minecraft:polished_blackstone_brick_stairs', brick_slab: 'minecraft:polished_blackstone_brick_slab', brick_wall: 'minecraft:polished_blackstone_brick_wall', + cracked_brick: 'minecraft:cracked_polished_blackstone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_blackstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_blackstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_blackstone_wall', + mossy_brick: 'tfg:rock/mossy_bricks_blackstone', mossy_stairs: 'tfg:rock/mossy_bricks_blackstone_stairs', mossy_slab: 'tfg:rock/mossy_bricks_blackstone_slab', mossy_wall: 'tfg:rock/mossy_bricks_blackstone_wall', + smooth_brick: 'minecraft:polished_blackstone', smooth_stairs: 'minecraft:polished_blackstone_stairs', smooth_slab: 'minecraft:polished_blackstone_slab', smooth_wall: 'minecraft:polished_blackstone_wall', + chiseled_brick: 'minecraft:chiseled_polished_blackstone' + }, + + { + brick_type: 'dripstone', + brick: 'create:cut_dripstone_bricks', brick_stairs: 'create:cut_dripstone_brick_stairs', brick_slab: 'create:cut_dripstone_brick_slab', brick_wall: 'create:cut_dripstone_brick_wall', + cracked_brick: 'tfg:rock/cracked_bricks_dripstone', cracked_stairs: 'tfg:rock/cracked_bricks_dripstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_dripstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_dripstone_wall', + mossy_brick: 'tfg:rock/mossy_bricks_dripstone', mossy_stairs: 'tfg:rock/mossy_bricks_dripstone_stairs', mossy_slab: 'tfg:rock/mossy_bricks_dripstone_slab', mossy_wall: 'tfg:rock/mossy_bricks_dripstone_wall', + smooth_brick: 'create:polished_cut_dripstone', smooth_stairs: 'create:polished_cut_dripstone_stairs', smooth_slab: 'create:polished_cut_dripstone_slab', smooth_wall: 'create:polished_cut_dripstone_wall', + chiseled_brick: 'create:small_dripstone_bricks' + }, + + { + brick_type: 'crackrack', + brick: 'minecraft:nether_bricks', brick_stairs: 'minecraft:nether_bricks_stairs', brick_slab: 'minecraft:nether_bricks_slab', brick_wall: 'minecraft:nether_bricks_wall', + cracked_brick: 'minecraft:cracked_nether_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_nether_stairs', cracked_slab: 'tfg:rock/cracked_bricks_nether_slab', cracked_wall: 'tfg:rock/cracked_bricks_nether_wall', + mossy_brick: 'tfg:rock/mossy_bricks_nether', mossy_stairs: 'tfg:rock/mossy_bricks_nether_stairs', mossy_slab: 'tfg:rock/mossy_bricks_nether_slab', mossy_wall: 'tfg:rock/mossy_bricks_nether_wall', + smooth_brick: 'tfg:rock/polished_crackrack', smooth_stairs: 'tfg:rock/polished_crackrack_stairs', smooth_slab: 'tfg:rock/polished_crackrack_slab', smooth_wall: 'tfg:rock/polished_crackrack_wall', + chiseled_brick: 'minecraft:chiseled_nether_bricks' + }, + + { + brick_type: 'moon_deepslate', + brick: 'tfg:rock/bricks_moon_deepslate', brick_stairs: 'tfg:rock/bricks_moon_deepslate_stairs', brick_slab: 'tfg:rock/bricks_moon_deepslate_slab', brick_wall: 'tfg:rock/bricks_moon_deepslate_wall', + cracked_brick: 'tfg:rock/cracked_bricks_moon_deepslate', cracked_stairs: 'tfg:rock/cracked_bricks_moon_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_bricks_moon_slab', cracked_wall: 'tfg:rock/cracked_bricks_moon_wall', + mossy_brick: 'tfg:rock/mossy_bricks_moon_deepslate', mossy_stairs: 'tfg:rock/mossy_bricks_moon_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_bricks_moon_slab', mossy_wall: 'tfg:rock/mossy_bricks_moon_deepslate_wall', + smooth_brick: 'tfg:rock/polished_moon_deepslate', smooth_stairs: 'tfg:rock/polished_moon_deepslate_stairs', smooth_slab: 'ad_astra:polished_moon_stone_slab', smooth_wall: 'tfg:rock/polished_moon_deepslate_wall', + chiseled_brick: 'tfg:rock/chiseled_bricks_moon_deepslate' + }, + + { + brick_type: 'permafrost', + brick: 'ad_astra:permafrost_bricks', brick_stairs: 'ad_astra:permafrost_brick_stairs', brick_slab: 'ad_astra:permafrost_brick_slab', brick_wall: 'ad_astra:permafrost_brick_wall', + cracked_brick: 'ad_astra:cracked_permafrost_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_permafrost_stairs', cracked_slab: 'tfg:rock/cracked_bricks_permafrost_slab', cracked_wall: 'tfg:rock/cracked_bricks_permafrost_wall', + mossy_brick: 'tfg:rock/mossy_bricks_permafrost', mossy_stairs: 'tfg:rock/mossy_bricks_permafrost_stairs', mossy_slab: 'tfg:rock/mossy_bricks_permafrost_slab', mossy_wall: 'tfg:rock/mossy_bricks_permafrost_wall', + smooth_brick: 'ad_astra:polished_permafrost', smooth_stairs: 'ad_astra:polished_permafrost_stairs', smooth_slab: 'ad_astra:polished_permafrost_slab', smooth_wall: 'tfg:rock/polished_permafrost_wall', + chiseled_brick: 'ad_astra:chiseled_permafrost_bricks' + }, + + { + brick_type: 'red_granite', + brick: 'gtceu:red_granite_bricks', brick_stairs: 'tfg:rock/bricks_red_granite_stairs', brick_slab: 'tfg:rock/bricks_red_granite_slab', brick_wall: 'tfg:rock/bricks_red_granite_wall', + cracked_brick: 'gtceu:cracked_red_granite_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_red_granite_stairs', cracked_slab: 'tfg:rock/cracked_bricks_red_granite_slab', cracked_wall: 'tfg:rock/cracked_bricks_red_granite_wall', + mossy_brick: 'gtceu:mossy_red_granite_bricks', mossy_stairs: 'tfg:rock/mossy_bricks_red_granite_stairs', mossy_slab: 'tfg:rock/mossy_bricks_red_granite_slab', mossy_wall: 'tfg:rock/mossy_bricks_red_granite_wall', + smooth_brick: 'gtceu:polished_red_granite', smooth_stairs: 'tfg:rock/polished_red_granite_stairs', smooth_slab: 'tfg:rock/polished_red_granite_slab', smooth_wall: 'tfg:rock/polished_red_granite_wall', + chiseled_brick: 'gtceu:chiseled_red_granite' + }, + + { + brick_type: 'venus_sandstone', + brick: 'ad_astra:venus_sandstone_bricks', brick_stairs: 'ad_astra:venus_sandstone_brick_stairs', brick_slab: 'ad_astra:venus_sandstone_brick_slab', brick_wall: 'tfg:rock/bricks_venus_sandstone_wall', + cracked_brick: 'ad_astra:cracked_venus_sandstone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_venus_sandstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_venus_sandstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_stone_wall', + mossy_brick: null, mossy_stairs: null, mossy_slab: null, mossy_wall: null, + smooth_brick: null, smooth_stairs: null, smooth_slab: null, smooth_wall: null, + chiseled_brick: null + }, + + { + brick_type: 'stone', + brick: 'minecraft:stone_bricks', brick_stairs: 'minecraft:stone_brick_stairs', brick_slab: 'minecraft:stone_brick_slab', brick_wall: 'minecraft:stone_brick_wall', + cracked_brick: 'minecraft:cracked_stone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_stone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_stone_slab', cracked_wall: 'tfg:rock/cracked_bricks_stone_wall', + mossy_brick: 'minecraft:mossy_stone_bricks', mossy_stairs: 'minecraft:mossy_stone_brick_stairs', mossy_slab: 'minecraft:mossy_stone_brick_slab', mossy_wall: 'minecraft:mossy_stone_brick_wall', + smooth_brick: 'minecraft:smooth_stone', smooth_stairs: 'tfg:rock/smooth_stone_stairs', smooth_slab: 'minecraft:smooth_stone_slab', smooth_wall: 'tfg:rock/smooth_stone_wall', + chiseled_brick: 'minecraft:chiseled_stone_bricks' + } +]); + +global.BRICK_INDEX = global.BRICK_INDEX.concat((AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( + { + brick_type: stone, + brick: `ad_astra:${stone}_stone_bricks`, brick_stairs: `ad_astra:${stone}_stone_brick_stairs`, brick_slab: `ad_astra:${stone}_stone_brick_slab`, brick_wall: `ad_astra:${stone}_stone_brick_wall`, + cracked_brick: `ad_astra:cracked_${stone}_stone_bricks`, cracked_stairs: `tfg:rock/cracked_bricks_${stone}_stairs`, cracked_slab: `tfg:rock/cracked_bricks_${stone}_slab`, cracked_wall: `tfg:rock/cracked_bricks_${stone}_wall`, + mossy_brick: `tfg:rock/mossy_bricks_${stone}`, mossy_stairs: `tfg:rock/mossy_bricks_${stone}_stairs`, mossy_slab: `tfg:rock/mossy_bricks_${stone}_slab`, mossy_wall: `tfg:rock/mossy_bricks_${stone}_wall`, + smooth_brick: `ad_astra:polished_${stone}_stone`, smooth_stairs: `ad_astra:polished_${stone}_stone_stairs`, smooth_slab: `ad_astra:polished_${stone}_stone_slab`, smooth_wall: `tfg:rock/polished_${stone}_wall`, + chiseled_brick: `ad_astra:chiseled_${stone}_stone_bricks` + } +))) + +// #endregion BRICK_INDEX + +// #region COBBLE_INDEX +global.COBBLE_INDEX = (global.TFC_STONE_TYPES ? global.TFC_STONE_TYPES : []).map(tfc_stone => ({ + cobble_type: tfc_stone, + block: `tfc:rock/cobble/${tfc_stone}`, stairs: `tfc:rock/cobble/${tfc_stone}_stairs`, slab: `tfc:rock/cobble/${tfc_stone}_slab`, wall: `tfc:rock/cobble/${tfc_stone}_wall`, + mossy_block: `tfc:rock/mossy_cobble/${tfc_stone}`, mossy_stairs: `tfc:rock/mossy_cobble/${tfc_stone}_stairs`, mossy_slab: `tfc:rock/mossy_cobble/${tfc_stone}_slab`, mossy_wall: `tfc:rock/mossy_cobble/${tfc_stone}_wall` +})); + +global.COBBLE_INDEX = global.COBBLE_INDEX.concat([ + { + cobble_type: 'deepslate', + block: 'minecraft:cobbled_deepslate', stairs: 'minecraft:cobbled_deepslate_stairs', slab: 'minecraft:cobbled_deepslate_slab', wall: 'minecraft:cobbled_deepslate_wall', + mossy_block: 'tfg:rock/mossy_cobble_deepslate', mossy_stairs: 'tfg:rock/mossy_cobble_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_cobble_deepslate_slab', mossy_wall: 'tfg:rock/mossy_cobble_deepslate_wall' + }, + + { + cobble_type: 'blackstone', + block: 'tfg:rock/cobble_blackstone', stairs: 'tfg:rock/cobble_blackstone_stairs', slab: 'tfg:rock/cobble_blackstone_slab', wall: 'tfg:rock/cobble_blackstone_wall', + mossy_block: 'tfg:rock/mossy_cobble_blackstone', mossy_stairs: 'tfg:rock/mossy_cobble_blackstone_stairs', mossy_slab: 'tfg:rock/mossy_cobble_blackstone_slab', mossy_wall: 'tfg:rock/mossy_cobble_blackstone_wall' + }, + + { + cobble_type: 'dripstone', + block: 'tfg:rock/cobble_dripstone', stairs: 'tfg:rock/cobble_dripstone_stairs', slab: 'tfg:rock/cobble_dripstone_slab', wall: 'tfg:rock/cobble_dripstone_wall', + mossy_block: 'tfg:rock/mossy_cobble_dripstone', mossy_stairs: 'tfg:rock/mossy_cobble_dripstone_stairs', mossy_slab: 'tfg:rock/mossy_cobble_dripstone_slab', mossy_wall: 'tfg:rock/mossy_cobble_dripstone_wall' + }, + + { + cobble_type: 'crackrack', + block: 'tfg:rock/cobble_crackrack', stairs: 'tfg:rock/cobble_crackrack_stairs', slab: 'tfg:rock/cobble_crackrack_slab', wall: 'tfg:rock/cobble_crackrack_wall', + mossy_block: 'tfg:rock/mossy_cobble_crackrack', mossy_stairs: 'tfg:rock/mossy_cobble_crackrack_stairs', mossy_slab: 'tfg:rock/mossy_cobble_crackrack_slab', mossy_wall: 'tfg:rock/mossy_cobble_crackrack_wall' + }, + + { + cobble_type: 'moon_deepslate', + block: 'tfg:rock/cobble_moon_deepslate', stairs: 'tfg:rock/cobble_moon_deepslate_stairs', slab: 'tfg:rock/cobble_moon_deepslate_slab', wall: 'tfg:rock/cobble_moon_deepslate_wall', + mossy_block: 'tfg:rock/mossy_cobble_moon_deepslate', mossy_stairs: 'tfg:rock/mossy_cobble_moon_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_cobble_moon_deepslate_slab', mossy_wall: 'tfg:rock/mossy_cobble_moon_deepslate_wall' + }, + + { + cobble_type: 'permafrost', + block: 'tfg:rock/cobble_permafrost', stairs: 'tfg:rock/cobble_permafrost_stairs', slab: 'tfg:rock/cobble_permafrost_slab', wall: 'tfg:rock/cobble_permafrost_wall', + mossy_block: 'tfg:rock/mossy_cobble_permafrost', mossy_stairs: 'tfg:rock/mossy_cobble_permafrost_stairs', mossy_slab: 'tfg:rock/mossy_cobble_permafrost_slab', mossy_wall: 'tfg:rock/mossy_cobble_permafrost_wall' + }, + + { + cobble_type: 'red_granite', + block: 'gtceu:red_granite_cobblestone', stairs: 'tfg:rock/cobble_red_granite_stairs', slab: 'tfg:rock/cobble_red_granite_slab', wall: 'tfg:rock/cobble_red_granite_wall', + mossy_block: 'gtceu:mossy_red_granite_cobblestone', mossy_stairs: 'tfg:rock/mossy_cobble_red_granite_stairs', mossy_slab: 'tfg:rock/mossy_cobble_red_granite_slab', mossy_wall: 'tfg:rock/mossy_cobble_red_granite_wall' + }, + + { + cobble_type: 'stone', + block: 'minecraft:cobblestone', stairs: 'minecraft:cobblestone_stairs', slab: 'minecraft:cobblestone_slab', wall: 'minecraft:cobblestone_wall', + mossy_block: 'minecraft:mossy_cobblestone', mossy_stairs: 'minecraft:mossy_cobblestone_stairs', mossy_slab: 'minecraft:mossy_cobblestone_slab', mossy_wall: 'minecraft:mossy_cobblestone_wall' + } +]); + +global.COBBLE_INDEX = global.COBBLE_INDEX.concat((AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( + { + cobble_type: stone, + block: `ad_astra:${stone}_cobblestone`, stairs: `ad_astra:${stone}_cobblestone_stairs`, slab: `ad_astra:${stone}_cobblestone_slab`, wall: `tfg:rock/cobble_${stone}_wall`, + mossy_block: `tfg:rock/mossy_cobble_${stone}`, mossy_stairs: `tfg:rock/mossy_cobble_${stone}_stairs`, mossy_slab: `tfg:rock/mossy_cobble_${stone}_slab`, mossy_wall: `tfg:rock/mossy_cobble_${stone}_wall` + } +))) + +// #endregion COBBLE_INDEX + +/** + * Function for replacing a block with another block by crouch-right-clicking with a tool. + * + * If input and output is null recipe will just return. + * + * @param {*} event + * @param {string} inputBlock -Block ID to be replaced. Accepts a Tag, but not recommended. + * @param {string} outputBlock -Block ID of the replacement. + * @param {string} toolId -Item ID of the tool. + * @param {boolean} damageTool -Sets wether the tool should be damaged on use. + * @param {string} soundId -Sound ID to be used as the flair sound effect. Can be null. + * @param {string} particleId -SimpleParticleType ID to be used as the flair particle. Can be null. + * @param {boolean} copyBlockstate - Sets wether the blockstate should be copied from the input block to the output block. + */ +function transformBlockWithTool(event, inputBlock, outputBlock, toolId, damageTool, soundId, particleId, copyBlockstate) { + const { server, item, player, block } = event; + + if (!inputBlock || !outputBlock) return; + + if (inputBlock.startsWith('#')) { + if (!block.hasTag(inputBlock.substring(1))) return; + } else { + if (block.id.toString() !== inputBlock) return; + } + + if (toolId.startsWith('#')) { + if (item.isEmpty() || !player.mainHandItem.hasTag(toolId.substring(1))) return; + } else { + if (item.isEmpty() || player.mainHandItem.id !== toolId) return; + } + + if (!player.crouching) return; + + let state = block.getBlockState().toString(); + if (state.includes('[') && copyBlockstate === true) { + state = state.substring(state.indexOf('[')); + } else { + state = ''; + } + + if (soundId) { + server.runCommandSilent(`playsound ${soundId} player ${player.username} ${player.x} ${player.y} ${player.z} 1 2 1`) + } + if (particleId) { + server.runCommandSilent(`particle ${particleId} ${block.x} ${block.y + 0.8} ${block.z} 0.1 0.1 0.1 0.6 10`) + } + player.swing(); + + if (!player.isCreative() && damageTool) { + item.damageValue++; + if (item.damageValue >= item.maxDamage) { + server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`); + item.count--; + } + } + + const dim = block.level.name.getString(); + server.runCommandSilent(`execute in ${dim} run fill ${block.x} ${block.y} ${block.z} ${block.x} ${block.y} ${block.z} air`); + server.runCommandSilent(`execute in ${dim} run setblock ${block.x} ${block.y} ${block.z} ${outputBlock}${state}`); +}; + +/** + * Function for replacing a block with another block by crouch-right-clicking with a tool and receiving an item. + * + * If input and output is null recipe will just return. + * + * @param {*} event + * @param {string} inputBlock -Block ID to be replaced. Accepts a Tag, but not recommended. + * @param {string} outputBlock -Block ID of the replacement. + * @param {string} outputItem -Item ID of item to receive + * @param {number} outputCount -Number of items to be returned + * @param {string} toolId -Item ID of the tool. + * @param {boolean} damageTool -Sets wether the tool should be damaged on use. + * @param {string} soundId -Sound ID to be used as the flair sound effect. Can be null. + * @param {string} particleId -SimpleParticleType ID to be used as the flair particle. Can be null. + * @param {boolean} copyBlockstate - Sets wether the blockstate should be copied from the input block to the output block. + */ +function transformBlockWithToolReturn(event, inputBlock, outputBlock, outputItem, outputCount, toolId, damageTool, soundId, particleId, copyBlockstate) { + const { server, item, player, block } = event; + + if (!inputBlock || !outputBlock) return; + + if (inputBlock.startsWith('#')) { + if (!block.hasTag(inputBlock.substring(1))) return; + } else { + if (block.id.toString() !== inputBlock) return; + } + if (!player.crouching) return; + + if (toolId.startsWith('#')) { + if (item.isEmpty() || !player.mainHandItem.hasTag(toolId.substring(1))) return; + } else { + if (item.isEmpty() || player.mainHandItem.id !== toolId) return; + } + + transformBlockWithTool(event, inputBlock, outputBlock, toolId, damageTool, soundId, particleId, copyBlockstate) + + const dim = block.level.name.getString(); + server.runCommandSilent(`execute in ${dim} run summon item ${player.x} ${player.y} ${player.z} {Item:{id:'${outputItem}', Count:${outputCount}b}}`); + +} +/** + * Function for replacing a block with another block by crouch-right-clicking with an item. + * + * If input and output is null recipe will just return. + * + * @param {*} event + * @param {string} inputBlock -Block ID to be replaced. Accepts a Tag, but not recommended. + * @param {string} outputBlock -Block ID of the replacement. + * @param {string} itemId -Item ID of the consumed item. Accepts Tags. + * @param {boolean} consumeItem -Sets wether the item should be comsumed or not. + * @param {number} consumeAmount -Number of items to consume, can't be greater than stacksize. + * @param {string} soundId -Sound ID to be used as the flair sound effect. Can be null. + * @param {string} particleId -SimpleParticleType ID to be used as the flair particle. Can be null. + * @param {boolean} copyBlockstate - Sets wether the blockstate should be copied from the input block to the output block. + */ +function transformBlockWithItem(event, inputBlock, outputBlock, itemId, consumeItem, consumeAmount, soundId, particleId, copyBlockstate) { + const { server, item, player, block } = event; + + if (!inputBlock || !outputBlock) return; + + if (inputBlock.startsWith('#')) { + if (!block.hasTag(inputBlock.substring(1))) return; + } else { + if (block.id.toString() !== inputBlock) return; + } + + if (itemId.startsWith('#')) { + if (item.isEmpty() || !player.mainHandItem.hasTag(itemId.substring(1))) return; + } else { + if (item.isEmpty() || player.mainHandItem.id !== itemId) return; + } + if (!player.crouching) return; + + let state = block.getBlockState().toString() + if (state.includes('[') && copyBlockstate === true) { + state = state.substring(block.getBlockState().toString().indexOf('[')); + } else { + state = '' + } + + if (!player.isCreative() && consumeItem === true) { + if (item.count < consumeAmount) { + player.tell(`Item count is too low. Held amount = ${item.count}, required amount = ${consumeAmount}`) + return; + } + item.count -= consumeAmount; + } + if (soundId) { + server.runCommandSilent(`playsound ${soundId} player ${player.username} ${player.x} ${player.y} ${player.z} 1 2 1`) + } + if (particleId) { + server.runCommandSilent(`particle ${particleId} ${block.x} ${block.y + 0.8} ${block.z} 0.1 0.1 0.1 0.6 10`) + } + player.swing() + event.server.runCommandSilent(`execute in ${event.block.level.name.getString()} run fill ${block.x} ${block.y} ${block.z} ${block.x} ${block.y} ${block.z} air`) + event.server.runCommandSilent(`execute in ${event.block.level.name.getString()} run setblock ${block.x} ${block.y} ${block.z} ${outputBlock}${state}`) +}; + +// Declare Events +BlockEvents.rightClicked(event => { + //Brick index events + for (const b of global.BRICK_INDEX) { + //brick -> cracked + transformBlockWithTool(event, b.brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.brick_stairs, b.cracked_stairs, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.brick_slab, b.cracked_slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.brick_wall, b.cracked_wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + //brick -> mossy + transformBlockWithItem(event, b.brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick_stairs, b.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick_stairs, b.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick_slab, b.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick_slab, b.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick_wall, b.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick_wall, b.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + //cracked -> mossy + transformBlockWithItem(event, b.cracked_brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_stairs, b.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_stairs, b.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_slab, b.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_slab, b.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_wall, b.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_wall, b.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + //mossy -> cracked + transformBlockWithTool(event, b.mossy_brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.mossy_stairs, b.cracked_stairs, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.mossy_slab, b.cracked_slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.mossy_wall, b.cracked_wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + //mossy -> brick + transformBlockWithTool(event, b.mossy_brick, b.brick, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.mossy_brick, b.brick, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, b.mossy_stairs, b.brick_stairs, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.mossy_stairs, b.brick_stairs, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, b.mossy_slab, b.brick_slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.mossy_slab, b.brick_slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, b.mossy_wall, b.brick_wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.mossy_wall, b.brick_wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + //cracked -> brick + transformBlockWithItem(event, b.cracked_brick, b.brick, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); + transformBlockWithItem(event, b.cracked_stairs, b.brick_stairs, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); + transformBlockWithItem(event, b.cracked_slab, b.brick_slab, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); + transformBlockWithItem(event, b.cracked_wall, b.brick_wall, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); + // brick -> smooth + transformBlockWithTool(event, b.brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true); + transformBlockWithTool(event, b.mossy_brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true); + transformBlockWithTool(event, b.cracked_brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true); + // smooth -> brick + transformBlockWithTool(event, b.smooth_brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithItem(event, b.smooth_brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.smooth_brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithTool(event, b.smooth_brick, b.brick, '#forge:tools/files', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true); + } + + //Cobble index events + for (const c of global.COBBLE_INDEX) { + //cobble -> mossy + transformBlockWithItem(event, c.block, c.mossy_block, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.block, c.mossy_block, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.stairs, c.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.stairs, c.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.slab, c.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.slab, c.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.wall, c.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.wall, c.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + //mossy -> cobble + transformBlockWithTool(event, c.mossy_block, c.block, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.mossy_block, c.block, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, c.mossy_stairs, c.stairs, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.mossy_stairs, c.stairs, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, c.mossy_slab, c.slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.mossy_slab, c.slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, c.mossy_wall, c.wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.mossy_wall, c.wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + } + + //Misc Events + transformBlockWithItem(event, 'gtceu:incoloy_ma_956_frame', 'tfg:glacian_wool_frame', 'tfg:glacian_wool', true, 2, 'block.wool.place', 'minecraft:happy_villager', true); + transformBlockWithToolReturn(event, 'tfg:glacian_wool_frame', 'gtceu:incoloy_ma_956_frame', 'tfg:glacian_wool', 2,'#forge:tools/wire_cutters', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true); + + transformBlockWithItem(event, 'gtceu:incoloy_ma_956_frame', 'tfg:aes_insulation_frame', 'tfg:aes_insulation_roll', true, 1, 'block.wool.place', 'minecraft:happy_villager', true); + transformBlockWithToolReturn(event, 'tfg:aes_insulation_frame', 'gtceu:incoloy_ma_956_frame', 'tfg:aes_insulation_roll', 1, '#forge:tools/wire_cutters', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true); + + transformBlockWithItem(event, 'gtceu:incoloy_ma_956_frame', 'tfg:moderate_core_frame', 'tfg:graphite_moderator', true, 1, 'block.wool.place', 'minecraft:happy_villager', true); + transformBlockWithToolReturn(event, 'tfg:moderate_core_frame', 'gtceu:incoloy_ma_956_frame', 'tfg:graphite_moderator', 1, '#forge:tools/wire_cutters', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true); + + transformBlockWithItem(event, 'gtceu:incoloy_ma_956_frame', 'tfg:impure_moderate_core_frame', 'tfg:impure_graphite_moderator', true, 1, 'block.wool.place', 'minecraft:happy_villager', true); + transformBlockWithToolReturn(event, 'tfg:impure_moderate_core_frame', 'gtceu:incoloy_ma_956_frame', 'tfg:impure_graphite_moderator', 1, '#forge:tools/wire_cutters', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true); + +}); + +// Makes scythes, hoes, and knives take damage when cutting grass +BlockEvents.broken('tfc:mineable_with_sharp_tool', event => { + let player = event.player; + let toolUsed = player.mainHandItem; + + if (!toolUsed.hasTag('tfc:sharp_tools')) { + return; + } + + if (!player.isCreative()) { + toolUsed.damageValue++; + if (toolUsed.damageValue >= toolUsed.maxDamage) { + event.server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`); + toolUsed.count--; + } + } +}); \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/events.js b/kubejs/server_scripts/tfg/events.js index 37f1b7963..4c19dd387 100644 --- a/kubejs/server_scripts/tfg/events.js +++ b/kubejs/server_scripts/tfg/events.js @@ -11,110 +11,6 @@ TFGServerEvents.dimensionalPowerConsumption(event => { event["add(java.lang.String,double)"]("ad_astra:mars_orbit", 100000); }); -//#region Medicine - -//Pills & Tablets -const pill_event = [ - 'haste', - 'luck', - 'night_vision', - 'poison', - 'regeneration', - 'slowness', - 'speed', - 'water_breathing', - 'weakness', -]; - -pill_event.forEach(pill_event => { - - ItemEvents.rightClicked(event => { - const { item, server, player, player: { x, y, z } } = event - if (item.id !== `tfg:${pill_event}_pill`) return - item.count-- - player.addItemCooldown(item, 100) - server.runCommandSilent(`effect give ${player.username} minecraft:${pill_event} 480 0 true`) - server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${player.username} ${x} ${y} ${z} 10 1.5 1`) - }); - - ItemEvents.rightClicked(event => { - const { item, server, player, player: { x, y, z } } = event - if (item.id !== `tfg:${pill_event}_tablet`) return - item.count-- - player.addItemCooldown(item, 100) - server.runCommandSilent(`effect give ${player.username} minecraft:${pill_event} 1800 0 true`) - server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${player.username} ${x} ${y} ${z} 10 1.5 1`) - }); -}); - -ItemEvents.rightClicked(event => { - const { item, server, player, player: { x, y, z } } = event - if (item.id !== `tfg:antipoison_pill`) return - item.count-- - player.addItemCooldown(item, 50) - event.player.removeEffect('minecraft:poison') - server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${player.username} ${x} ${y} ${z} 10 1.5 1`) -}); - -ItemEvents.rightClicked(event => { - const { item, server, player, player: { x, y, z } } = event - if (item.id !== `tfg:antipoison_tablet`) return - item.count-- - player.addItemCooldown(item, 50) - event.player.removeEffect('minecraft:poison') - event.player.removeEffect('minecraft:wither') - event.player.removeEffect('minecraft:weakness') - event.player.removeEffect('minecraft:slowness') - event.player.removeEffect('minecraft:mining_fatigue') - event.player.removeEffect('minecraft:nausea') - event.player.removeEffect('minecraft:blindness') - event.player.removeEffect('minecraft:hunger') - event.player.removeEffect('minecraft:bad_omen') - event.player.removeEffect('minecraft:darkness') - event.player.removeEffect('minecraft:unluck') - server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${player.username} ${x} ${y} ${z} 10 1.5 1`) -}); - -//salvos -const salvo_event = [ - 'fire_resistance', - 'invisibility', - 'luck', - 'resistance', -]; - -salvo_event.forEach(salvo_event => { - - ItemEvents.rightClicked(event => { - const { item, server, player, player: { x, y, z } } = event - if (item.id !== `tfg:${salvo_event}_salvo`) return - item.count-- - player.addItemCooldown(item, 100) - server.runCommandSilent(`effect give ${player.username} minecraft:${salvo_event} 480 0 true`) - server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${player.username} ${x} ${y} ${z} 10 2 1`) - }); -}); - -ItemEvents.rightClicked(event => { - const { item, server, player, player: { x, y, z } } = event - if (item.id !== `tfg:absorption_salvo`) return - item.count-- - player.addItemCooldown(item, 200) - server.runCommandSilent(`effect give ${player.username} minecraft:absorption 480 4 true`) - server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${player.username} ${x} ${y} ${z} 10 2 1`) -}); - -ItemEvents.rightClicked(event => { - const { item, server, player, player: { x, y, z } } = event - if (item.id !== `tfg:instant_health_salvo`) return - item.count-- - player.addItemCooldown(item, 100) - server.runCommandSilent(`effect give ${player.username} minecraft:instant_health 1 1 true`) - server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${player.username} ${x} ${y} ${z} 10 2 1`) -}); - -//#endregion - // Vase Sounds global.MINECRAFT_DYE_NAMES.forEach(color => { BlockEvents.rightClicked(event => { @@ -158,623 +54,3 @@ function getTFGPersistentDataRoot(player) { return player.persistentData.getCompound("tfg:custom_data") } -//#region Fishing Net -const fish = [ - 'cod', - 'crappie', - 'jellyfish', - 'lake_trout', - 'largemouth_bass', - 'rainbow_trout', - 'salmon', - 'smallmouth_bass', - 'tropical_fish', - 'bluegill' -]; - -const shellfish = [ - 'lobster', - 'isopod', - 'crayfish' -]; - -//tags wont work here (or at least I couldnt get it to work) so we need to manually declare each net tier. -const tiers = [ - 'wood', - 'brass', - 'rose_gold', - 'sterling_silver', - 'invar', - 'tin_alloy', - 'cupronickel', - 'magnalium' -]; - -//Event detects if fish is right clicked with fishing net and then teleports the mob into the void, plays some actions and gives the player the proper item. -tiers.forEach(tier => { - fish.forEach(fish => { - ItemEvents.entityInteracted(`tfg:fishing_net/${tier}`, (event) => { - const { item, player, server, target } = event; - - if (target.type !== `tfc:${fish}`) return - server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`) - server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`) - server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`) - event.player.give(`tfc:food/${fish}`) - player.swing() - if (player.isCreative() === false) { - item.damageValue++ - if (item.damageValue >= item.maxDamage) { - server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`) - item.count-- - } - } - }) - }) - - //Shellfish Exception - shellfish.forEach(shellfish => { - ItemEvents.entityInteracted(`tfg:fishing_net/${tier}`, (event) => { - const { item, player, server, target } = event; - - if (target.type !== `tfc:${shellfish}`) return - server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`) - server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`) - server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`) - event.player.give('tfc:food/shellfish') - player.swing() - if (player.isCreative() === false) { - item.damageValue++ - if (item.damageValue >= item.maxDamage) { - server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`) - item.count-- - } - } - }) - }) - - //Pufferfish Exception - ItemEvents.entityInteracted(`tfg:fishing_net/${tier}`, (event) => { - const { item, player, server, target } = event; - - if (target.type !== 'tfc:pufferfish') return - server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`) - server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`) - server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`) - event.player.give('minecraft:pufferfish') - player.swing() - if (player.isCreative() === false) { - item.damageValue++ - if (item.damageValue >= item.maxDamage) { - server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`) - item.count-- - } - } - }) -}) -//#endregion - -//#region Block Interactions - -/** - * @typedef {Object} BrickVariant - * @property {string} brick_type - The name of the brick variant. - * @property {string|null} brick - Main brick block ID. - * @property {string|null} brick_stairs - Brick stairs block ID. - * @property {string|null} brick_slab - Brick slab block ID. - * @property {string|null} brick_wall - Brick wall block ID. - * @property {string|null} cracked_brick - Cracked brick block ID. - * @property {string|null} cracked_stairs - Cracked brick stairs block ID. - * @property {string|null} cracked_slab - Cracked brick slab block ID. - * @property {string|null} cracked_wall - Cracked brick wall block ID. - * @property {string|null} mossy_brick - Mossy brick block ID. - * @property {string|null} mossy_stairs - Mossy brick stairs block ID. - * @property {string|null} mossy_slab - Mossy brick slab block ID. - * @property {string|null} mossy_wall - Mossy brick wall block ID. - * @property {string|null} smooth_brick - Smooth brick block ID. - * @property {string|null} smooth_stairs - Smooth brick stairs block ID. - * @property {string|null} smooth_slab - Smooth brick slab block ID. - * @property {string|null} smooth_wall - Smooth brick wall block ID. - * @property {string|null} chiseled_brick - Chiseled brick block ID. - */ - -const AA_REGULAR_STONES = ['moon', 'mars', 'venus', 'mercury', 'glacio'] - -// #region BRICK_INDEX -/** @type {BrickVariant[]} */ -global.BRICK_INDEX = (global.TFC_STONE_TYPES ? global.TFC_STONE_TYPES : []).map(tfc_stone => ({ - brick_type: tfc_stone, - brick: `tfc:rock/bricks/${tfc_stone}`, brick_stairs: `tfc:rock/bricks/${tfc_stone}_stairs`, brick_slab: `tfc:rock/bricks/${tfc_stone}_slab`, brick_wall: `tfc:rock/bricks/${tfc_stone}_wall`, - cracked_brick: `tfc:rock/cracked_bricks/${tfc_stone}`, cracked_stairs: `tfc:rock/cracked_bricks/${tfc_stone}_stairs`, cracked_slab: `tfc:rock/cracked_bricks/${tfc_stone}_slab`, cracked_wall: `tfc:rock/cracked_bricks/${tfc_stone}_wall`, - mossy_brick: `tfc:rock/mossy_bricks/${tfc_stone}`, mossy_stairs: `tfc:rock/mossy_bricks/${tfc_stone}_stairs`, mossy_slab: `tfc:rock/mossy_bricks/${tfc_stone}_slab`, mossy_wall: `tfc:rock/mossy_bricks/${tfc_stone}_wall`, - smooth_brick: `tfc:rock/smooth/${tfc_stone}`, smooth_stairs: `tfc:rock/smooth/${tfc_stone}_stairs`, smooth_slab: `tfc:rock/smooth/${tfc_stone}_slab`, smooth_wall: `tfc:rock/smooth/${tfc_stone}_wall`, - chiseled_brick: `tfc:rock/chiseled/${tfc_stone}` -})); -(global.CREATE_DECO_BRICK_TYPES ? global.CREATE_DECO_BRICK_TYPES : []).slice(0, -1).forEach(create_brick => { - global.BRICK_INDEX.push({ - brick_type: create_brick, - brick: `createdeco:${create_brick}_bricks`, brick_stairs: `createdeco:${create_brick}_brick_stairs`, brick_slab: `createdeco:${create_brick}_brick_slab`, brick_wall: `createdeco:${create_brick}_brick_wall`, - cracked_brick: `createdeco:cracked_${create_brick}_bricks`, cracked_stairs: `createdeco:cracked_${create_brick}_brick_stairs`, cracked_slab: `createdeco:cracked_${create_brick}_brick_slab`, cracked_wall: `createdeco:cracked_${create_brick}_brick_wall`, - mossy_brick: `createdeco:mossy_${create_brick}_bricks`, mossy_stairs: `createdeco:mossy_${create_brick}_brick_stairs`, mossy_slab: `createdeco:mossy_${create_brick}_brick_slab`, mossy_wall: `createdeco:mossy_${create_brick}_brick_wall`, - smooth_brick: `createdeco:corner_${create_brick}_bricks`, smooth_stairs: `createdeco:corner_${create_brick}_brick_stairs`, smooth_slab: `createdeco:corner_${create_brick}_brick_slab`, smooth_wall: `createdeco:corner_${create_brick}_brick_wall`, - chiseled_brick: `createdeco:tiled_${create_brick}_bricks` - }) -}); -global.BRICK_INDEX = global.BRICK_INDEX.concat([ - // { brick_type: '', - // brick: '', brick_stairs: '', brick_slab: '', brick_wall: '', - // cracked_brick: '', cracked_stairs: '', cracked_slab: '', cracked_wall: '', - // mossy_brick: '', mossy_stairs: '', mossy_slab: '', mossy_wallL: '', - // smooth_brick: '', smooth_stairs: '', smooth_slab: '', smooth_wall: '', - // chiseled_brick: '' }, - - { - brick_type: 'red', - brick: 'minecraft:bricks', brick_stairs: 'minecraft:brick_stairs', brick_slab: 'minecraft:brick_slab', brick_wall: 'minecraft:brick_wall', - cracked_brick: 'createdeco:cracked_red_bricks', cracked_stairs: 'createdeco:cracked_red_brick_stairs', cracked_slab: 'createdeco:cracked_red_brick_slab', cracked_wall: 'createdeco:cracked_red_brick_wall', - mossy_brick: 'createdeco:mossy_red_bricks', mossy_stairs: 'createdeco:mossy_red_brick_stairs', mossy_slab: 'createdeco:mossy_red_brick_slab', mossy_wall: 'createdeco:mossy_red_brick_wall', - smooth_brick: 'createdeco:corner_red_bricks', smooth_stairs: 'createdeco:corner_red_brick_stairs', smooth_slab: 'createdeco:corner_red_brick_slab', smooth_wall: 'createdeco:corner_red_brick_wall', - chiseled_brick: 'createdeco:tiled_red_bricks' - }, - - { - brick_type: 'light_concrete', - brick: 'gtceu:light_concrete_bricks', brick_stairs: null, brick_slab: null, brick_wall: null, - cracked_brick: 'gtceu:cracked_light_concrete_bricks', cracked_stairs: null, cracked_slab: null, cracked_wall: null, - mossy_brick: 'gtceu:mossy_light_concrete_bricks', mossy_stairs: null, mossy_slab: null, mossy_wall: null, - smooth_brick: 'gtceu:polished_light_concrete', smooth_stairs: null, smooth_slab: null, smooth_wall: null, - chiseled_brick: 'gtceu:chiseled_light_concrete' - }, - - { - brick_type: 'dark_concrete', - brick: 'gtceu:dark_concrete_bricks', brick_stairs: null, brick_slab: null, brick_wall: null, - cracked_brick: 'gtceu:cracked_dark_concrete_bricks', cracked_stairs: null, cracked_slab: null, cracked_wall: null, - mossy_brick: 'gtceu:mossy_dark_concrete_bricks', mossy_stairs: null, mossy_slab: null, mossy_wall: null, - smooth_brick: 'gtceu:polished_dark_concrete', smooth_stairs: null, smooth_slab: null, smooth_wall: null, - chiseled_brick: 'gtceu:chiseled_dark_concrete' - }, - - { - brick_type: 'deepslate', - brick: 'minecraft:deepslate_bricks', brick_stairs: 'minecraft:deepslate_brick_stairs', brick_slab: 'minecraft:deepslate_brick_slab', brick_wall: 'minecraft:deepslate_brick_wall', - cracked_brick: 'minecraft:cracked_deepslate_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_bricks_deepslate_slab', cracked_wall: 'tfg:rock/cracked_bricks_deepslate_wall', - mossy_brick: 'tfg:rock/mossy_bricks_deepslate', mossy_stairs: 'tfg:rock/mossy_bricks_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_bricks_deepslate_slab', mossy_wall: 'tfg:rock/mossy_bricks_deepslate_wall', - smooth_brick: 'minecraft:polished_deepslate', smooth_stairs: 'minecraft:polished_deepslate_stairs', smooth_slab: 'minecraft:polished_deepslate_slab', smooth_wall: 'minecraft:polished_deepslate_wall', - chiseled_brick: 'minecraft:chiseled_deepslate' - }, - - { - brick_type: 'deepslate_tiles', - brick: 'minecraft:deepslate_tiles', brick_stairs: 'minecraft:deepslate_tile_stairs', brick_slab: 'minecraft:deepslate_tile_slab', brick_wall: 'minecraft:deepslate_tile_wall', - cracked_brick: 'minecraft:cracked_deepslate_tiles', cracked_stairs: 'tfg:rock/cracked_tiles_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_tiles_deepslate_slab', cracked_wall: 'tfg:rock/cracked_tiles_deepslate_wall', - mossy_brick: null, mossy_stairs: null, mossy_slab: null, mossy_wall: null, - smooth_brick: 'minecraft:polished_deepslate', smooth_stairs: 'minecraft:polished_deepslate_stairs', smooth_slab: 'minecraft:polished_deepslate_slab', smooth_wall: 'minecraft:polished_deepslate_wall', - chiseled_brick: 'minecraft:chiseled_deepslate' - }, - - { - brick_type: 'blackstone', - brick: 'minecraft:polished_blackstone_bricks', brick_stairs: 'minecraft:polished_blackstone_brick_stairs', brick_slab: 'minecraft:polished_blackstone_brick_slab', brick_wall: 'minecraft:polished_blackstone_brick_wall', - cracked_brick: 'minecraft:cracked_polished_blackstone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_blackstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_blackstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_blackstone_wall', - mossy_brick: 'tfg:rock/mossy_bricks_blackstone', mossy_stairs: 'tfg:rock/mossy_bricks_blackstone_stairs', mossy_slab: 'tfg:rock/mossy_bricks_blackstone_slab', mossy_wall: 'tfg:rock/mossy_bricks_blackstone_wall', - smooth_brick: 'minecraft:polished_blackstone', smooth_stairs: 'minecraft:polished_blackstone_stairs', smooth_slab: 'minecraft:polished_blackstone_slab', smooth_wall: 'minecraft:polished_blackstone_wall', - chiseled_brick: 'minecraft:chiseled_polished_blackstone' - }, - - { - brick_type: 'dripstone', - brick: 'create:cut_dripstone_bricks', brick_stairs: 'create:cut_dripstone_brick_stairs', brick_slab: 'create:cut_dripstone_brick_slab', brick_wall: 'create:cut_dripstone_brick_wall', - cracked_brick: 'tfg:rock/cracked_bricks_dripstone', cracked_stairs: 'tfg:rock/cracked_bricks_dripstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_dripstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_dripstone_wall', - mossy_brick: 'tfg:rock/mossy_bricks_dripstone', mossy_stairs: 'tfg:rock/mossy_bricks_dripstone_stairs', mossy_slab: 'tfg:rock/mossy_bricks_dripstone_slab', mossy_wall: 'tfg:rock/mossy_bricks_dripstone_wall', - smooth_brick: 'create:polished_cut_dripstone', smooth_stairs: 'create:polished_cut_dripstone_stairs', smooth_slab: 'create:polished_cut_dripstone_slab', smooth_wall: 'create:polished_cut_dripstone_wall', - chiseled_brick: 'create:small_dripstone_bricks' - }, - - { - brick_type: 'crackrack', - brick: 'minecraft:nether_bricks', brick_stairs: 'minecraft:nether_bricks_stairs', brick_slab: 'minecraft:nether_bricks_slab', brick_wall: 'minecraft:nether_bricks_wall', - cracked_brick: 'minecraft:cracked_nether_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_nether_stairs', cracked_slab: 'tfg:rock/cracked_bricks_nether_slab', cracked_wall: 'tfg:rock/cracked_bricks_nether_wall', - mossy_brick: 'tfg:rock/mossy_bricks_nether', mossy_stairs: 'tfg:rock/mossy_bricks_nether_stairs', mossy_slab: 'tfg:rock/mossy_bricks_nether_slab', mossy_wall: 'tfg:rock/mossy_bricks_nether_wall', - smooth_brick: 'tfg:rock/polished_crackrack', smooth_stairs: 'tfg:rock/polished_crackrack_stairs', smooth_slab: 'tfg:rock/polished_crackrack_slab', smooth_wall: 'tfg:rock/polished_crackrack_wall', - chiseled_brick: 'minecraft:chiseled_nether_bricks' - }, - - { - brick_type: 'moon_deepslate', - brick: 'tfg:rock/bricks_moon_deepslate', brick_stairs: 'tfg:rock/bricks_moon_deepslate_stairs', brick_slab: 'tfg:rock/bricks_moon_deepslate_slab', brick_wall: 'tfg:rock/bricks_moon_deepslate_wall', - cracked_brick: 'tfg:rock/cracked_bricks_moon_deepslate', cracked_stairs: 'tfg:rock/cracked_bricks_moon_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_bricks_moon_slab', cracked_wall: 'tfg:rock/cracked_bricks_moon_wall', - mossy_brick: 'tfg:rock/mossy_bricks_moon_deepslate', mossy_stairs: 'tfg:rock/mossy_bricks_moon_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_bricks_moon_slab', mossy_wall: 'tfg:rock/mossy_bricks_moon_deepslate_wall', - smooth_brick: 'tfg:rock/polished_moon_deepslate', smooth_stairs: 'tfg:rock/polished_moon_deepslate_stairs', smooth_slab: 'ad_astra:polished_moon_stone_slab', smooth_wall: 'tfg:rock/polished_moon_deepslate_wall', - chiseled_brick: 'tfg:rock/chiseled_bricks_moon_deepslate' - }, - - { - brick_type: 'permafrost', - brick: 'ad_astra:permafrost_bricks', brick_stairs: 'ad_astra:permafrost_brick_stairs', brick_slab: 'ad_astra:permafrost_brick_slab', brick_wall: 'ad_astra:permafrost_brick_wall', - cracked_brick: 'ad_astra:cracked_permafrost_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_permafrost_stairs', cracked_slab: 'tfg:rock/cracked_bricks_permafrost_slab', cracked_wall: 'tfg:rock/cracked_bricks_permafrost_wall', - mossy_brick: 'tfg:rock/mossy_bricks_permafrost', mossy_stairs: 'tfg:rock/mossy_bricks_permafrost_stairs', mossy_slab: 'tfg:rock/mossy_bricks_permafrost_slab', mossy_wall: 'tfg:rock/mossy_bricks_permafrost_wall', - smooth_brick: 'ad_astra:polished_permafrost', smooth_stairs: 'ad_astra:polished_permafrost_stairs', smooth_slab: 'ad_astra:polished_permafrost_slab', smooth_wall: 'tfg:rock/polished_permafrost_wall', - chiseled_brick: 'ad_astra:chiseled_permafrost_bricks' - }, - - { - brick_type: 'red_granite', - brick: 'gtceu:red_granite_bricks', brick_stairs: 'tfg:rock/bricks_red_granite_stairs', brick_slab: 'tfg:rock/bricks_red_granite_slab', brick_wall: 'tfg:rock/bricks_red_granite_wall', - cracked_brick: 'gtceu:cracked_red_granite_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_red_granite_stairs', cracked_slab: 'tfg:rock/cracked_bricks_red_granite_slab', cracked_wall: 'tfg:rock/cracked_bricks_red_granite_wall', - mossy_brick: 'gtceu:mossy_red_granite_bricks', mossy_stairs: 'tfg:rock/mossy_bricks_red_granite_stairs', mossy_slab: 'tfg:rock/mossy_bricks_red_granite_slab', mossy_wall: 'tfg:rock/mossy_bricks_red_granite_wall', - smooth_brick: 'gtceu:polished_red_granite', smooth_stairs: 'tfg:rock/polished_red_granite_stairs', smooth_slab: 'tfg:rock/polished_red_granite_slab', smooth_wall: 'tfg:rock/polished_red_granite_wall', - chiseled_brick: 'gtceu:chiseled_red_granite' - }, - - { - brick_type: 'venus_sandstone', - brick: 'ad_astra:venus_sandstone_bricks', brick_stairs: 'ad_astra:venus_sandstone_brick_stairs', brick_slab: 'ad_astra:venus_sandstone_brick_slab', brick_wall: 'tfg:rock/bricks_venus_sandstone_wall', - cracked_brick: 'ad_astra:cracked_venus_sandstone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_venus_sandstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_venus_sandstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_stone_wall', - mossy_brick: null, mossy_stairs: null, mossy_slab: null, mossy_wall: null, - smooth_brick: null, smooth_stairs: null, smooth_slab: null, smooth_wall: null, - chiseled_brick: null - }, - - { - brick_type: 'stone', - brick: 'minecraft:stone_bricks', brick_stairs: 'minecraft:stone_brick_stairs', brick_slab: 'minecraft:stone_brick_slab', brick_wall: 'minecraft:stone_brick_wall', - cracked_brick: 'minecraft:cracked_stone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_stone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_stone_slab', cracked_wall: 'tfg:rock/cracked_bricks_stone_wall', - mossy_brick: 'minecraft:mossy_stone_bricks', mossy_stairs: 'minecraft:mossy_stone_brick_stairs', mossy_slab: 'minecraft:mossy_stone_brick_slab', mossy_wall: 'minecraft:mossy_stone_brick_wall', - smooth_brick: 'minecraft:smooth_stone', smooth_stairs: 'tfg:rock/smooth_stone_stairs', smooth_slab: 'minecraft:smooth_stone_slab', smooth_wall: 'tfg:rock/smooth_stone_wall', - chiseled_brick: 'minecraft:chiseled_stone_bricks' - } -]); - -global.BRICK_INDEX = global.BRICK_INDEX.concat((AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( - { - brick_type: stone, - brick: `ad_astra:${stone}_stone_bricks`, brick_stairs: `ad_astra:${stone}_stone_brick_stairs`, brick_slab: `ad_astra:${stone}_stone_brick_slab`, brick_wall: `ad_astra:${stone}_stone_brick_wall`, - cracked_brick: `ad_astra:cracked_${stone}_stone_bricks`, cracked_stairs: `tfg:rock/cracked_bricks_${stone}_stairs`, cracked_slab: `tfg:rock/cracked_bricks_${stone}_slab`, cracked_wall: `tfg:rock/cracked_bricks_${stone}_wall`, - mossy_brick: `tfg:rock/mossy_bricks_${stone}`, mossy_stairs: `tfg:rock/mossy_bricks_${stone}_stairs`, mossy_slab: `tfg:rock/mossy_bricks_${stone}_slab`, mossy_wall: `tfg:rock/mossy_bricks_${stone}_wall`, - smooth_brick: `ad_astra:polished_${stone}_stone`, smooth_stairs: `ad_astra:polished_${stone}_stone_stairs`, smooth_slab: `ad_astra:polished_${stone}_stone_slab`, smooth_wall: `tfg:rock/polished_${stone}_wall`, - chiseled_brick: `ad_astra:chiseled_${stone}_stone_bricks` - } -))) - -// #endregion BRICK_INDEX - -// #region COBBLE_INDEX -global.COBBLE_INDEX = (global.TFC_STONE_TYPES ? global.TFC_STONE_TYPES : []).map(tfc_stone => ({ - cobble_type: tfc_stone, - block: `tfc:rock/cobble/${tfc_stone}`, stairs: `tfc:rock/cobble/${tfc_stone}_stairs`, slab: `tfc:rock/cobble/${tfc_stone}_slab`, wall: `tfc:rock/cobble/${tfc_stone}_wall`, - mossy_block: `tfc:rock/mossy_cobble/${tfc_stone}`, mossy_stairs: `tfc:rock/mossy_cobble/${tfc_stone}_stairs`, mossy_slab: `tfc:rock/mossy_cobble/${tfc_stone}_slab`, mossy_wall: `tfc:rock/mossy_cobble/${tfc_stone}_wall` -})); - -global.COBBLE_INDEX = global.COBBLE_INDEX.concat([ - { - cobble_type: 'deepslate', - block: 'minecraft:cobbled_deepslate', stairs: 'minecraft:cobbled_deepslate_stairs', slab: 'minecraft:cobbled_deepslate_slab', wall: 'minecraft:cobbled_deepslate_wall', - mossy_block: 'tfg:rock/mossy_cobble_deepslate', mossy_stairs: 'tfg:rock/mossy_cobble_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_cobble_deepslate_slab', mossy_wall: 'tfg:rock/mossy_cobble_deepslate_wall' - }, - - { - cobble_type: 'blackstone', - block: 'tfg:rock/cobble_blackstone', stairs: 'tfg:rock/cobble_blackstone_stairs', slab: 'tfg:rock/cobble_blackstone_slab', wall: 'tfg:rock/cobble_blackstone_wall', - mossy_block: 'tfg:rock/mossy_cobble_blackstone', mossy_stairs: 'tfg:rock/mossy_cobble_blackstone_stairs', mossy_slab: 'tfg:rock/mossy_cobble_blackstone_slab', mossy_wall: 'tfg:rock/mossy_cobble_blackstone_wall' - }, - - { - cobble_type: 'dripstone', - block: 'tfg:rock/cobble_dripstone', stairs: 'tfg:rock/cobble_dripstone_stairs', slab: 'tfg:rock/cobble_dripstone_slab', wall: 'tfg:rock/cobble_dripstone_wall', - mossy_block: 'tfg:rock/mossy_cobble_dripstone', mossy_stairs: 'tfg:rock/mossy_cobble_dripstone_stairs', mossy_slab: 'tfg:rock/mossy_cobble_dripstone_slab', mossy_wall: 'tfg:rock/mossy_cobble_dripstone_wall' - }, - - { - cobble_type: 'crackrack', - block: 'tfg:rock/cobble_crackrack', stairs: 'tfg:rock/cobble_crackrack_stairs', slab: 'tfg:rock/cobble_crackrack_slab', wall: 'tfg:rock/cobble_crackrack_wall', - mossy_block: 'tfg:rock/mossy_cobble_crackrack', mossy_stairs: 'tfg:rock/mossy_cobble_crackrack_stairs', mossy_slab: 'tfg:rock/mossy_cobble_crackrack_slab', mossy_wall: 'tfg:rock/mossy_cobble_crackrack_wall' - }, - - { - cobble_type: 'moon_deepslate', - block: 'tfg:rock/cobble_moon_deepslate', stairs: 'tfg:rock/cobble_moon_deepslate_stairs', slab: 'tfg:rock/cobble_moon_deepslate_slab', wall: 'tfg:rock/cobble_moon_deepslate_wall', - mossy_block: 'tfg:rock/mossy_cobble_moon_deepslate', mossy_stairs: 'tfg:rock/mossy_cobble_moon_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_cobble_moon_deepslate_slab', mossy_wall: 'tfg:rock/mossy_cobble_moon_deepslate_wall' - }, - - { - cobble_type: 'permafrost', - block: 'tfg:rock/cobble_permafrost', stairs: 'tfg:rock/cobble_permafrost_stairs', slab: 'tfg:rock/cobble_permafrost_slab', wall: 'tfg:rock/cobble_permafrost_wall', - mossy_block: 'tfg:rock/mossy_cobble_permafrost', mossy_stairs: 'tfg:rock/mossy_cobble_permafrost_stairs', mossy_slab: 'tfg:rock/mossy_cobble_permafrost_slab', mossy_wall: 'tfg:rock/mossy_cobble_permafrost_wall' - }, - - { - cobble_type: 'red_granite', - block: 'gtceu:red_granite_cobblestone', stairs: 'tfg:rock/cobble_red_granite_stairs', slab: 'tfg:rock/cobble_red_granite_slab', wall: 'tfg:rock/cobble_red_granite_wall', - mossy_block: 'gtceu:mossy_red_granite_cobblestone', mossy_stairs: 'tfg:rock/mossy_cobble_red_granite_stairs', mossy_slab: 'tfg:rock/mossy_cobble_red_granite_slab', mossy_wall: 'tfg:rock/mossy_cobble_red_granite_wall' - }, - - { - cobble_type: 'stone', - block: 'minecraft:cobblestone', stairs: 'minecraft:cobblestone_stairs', slab: 'minecraft:cobblestone_slab', wall: 'minecraft:cobblestone_wall', - mossy_block: 'minecraft:mossy_cobblestone', mossy_stairs: 'minecraft:mossy_cobblestone_stairs', mossy_slab: 'minecraft:mossy_cobblestone_slab', mossy_wall: 'minecraft:mossy_cobblestone_wall' - } -]); - -global.COBBLE_INDEX = global.COBBLE_INDEX.concat((AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( - { - cobble_type: stone, - block: `ad_astra:${stone}_cobblestone`, stairs: `ad_astra:${stone}_cobblestone_stairs`, slab: `ad_astra:${stone}_cobblestone_slab`, wall: `tfg:rock/cobble_${stone}_wall`, - mossy_block: `tfg:rock/mossy_cobble_${stone}`, mossy_stairs: `tfg:rock/mossy_cobble_${stone}_stairs`, mossy_slab: `tfg:rock/mossy_cobble_${stone}_slab`, mossy_wall: `tfg:rock/mossy_cobble_${stone}_wall` - } -))) - -// #endregion COBBLE_INDEX - -/** - * Function for replacing a block with another block by crouch-right-clicking with a tool. - * - * If input and output is null recipe will just return. - * - * @param {*} event - * @param {string} inputBlock -Block ID to be replaced. Accepts a Tag, but not recommended. - * @param {string} outputBlock -Block ID of the replacement. - * @param {string} toolId -Item ID of the tool. - * @param {boolean} damageTool -Sets wether the tool should be damaged on use. - * @param {string} soundId -Sound ID to be used as the flair sound effect. Can be null. - * @param {string} particleId -SimpleParticleType ID to be used as the flair particle. Can be null. - * @param {boolean} copyBlockstate - Sets wether the blockstate should be copied from the input block to the output block. - */ -function transformBlockWithTool(event, inputBlock, outputBlock, toolId, damageTool, soundId, particleId, copyBlockstate) { - const { server, item, player, block } = event; - - if (!inputBlock || !outputBlock) return; - - if (inputBlock.startsWith('#')) { - if (!block.hasTag(inputBlock.substring(1))) return; - } else { - if (block.id.toString() !== inputBlock) return; - } - - if (toolId.startsWith('#')) { - if (item.isEmpty() || !player.mainHandItem.hasTag(toolId.substring(1))) return; - } else { - if (item.isEmpty() || player.mainHandItem.id !== toolId) return; - } - - if (!player.crouching) return; - - let state = block.getBlockState().toString(); - if (state.includes('[') && copyBlockstate === true) { - state = state.substring(state.indexOf('[')); - } else { - state = ''; - } - - if (soundId) { - server.runCommandSilent(`playsound ${soundId} player ${player.username} ${player.x} ${player.y} ${player.z} 1 2 1`) - } - if (particleId) { - server.runCommandSilent(`particle ${particleId} ${block.x} ${block.y + 0.8} ${block.z} 0.1 0.1 0.1 0.6 10`) - } - player.swing(); - - if (!player.isCreative() && damageTool) { - item.damageValue++; - if (item.damageValue >= item.maxDamage) { - server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`); - item.count--; - } - } - - const dim = block.level.name.getString(); - server.runCommandSilent(`execute in ${dim} run fill ${block.x} ${block.y} ${block.z} ${block.x} ${block.y} ${block.z} air`); - server.runCommandSilent(`execute in ${dim} run setblock ${block.x} ${block.y} ${block.z} ${outputBlock}${state}`); -}; - -/** - * Function for replacing a block with another block by crouch-right-clicking with a tool and receiving an item. - * - * If input and output is null recipe will just return. - * - * @param {*} event - * @param {string} inputBlock -Block ID to be replaced. Accepts a Tag, but not recommended. - * @param {string} outputBlock -Block ID of the replacement. - * @param {string} outputItem -Item ID of item to receive - * @param {number} outputCount -Number of items to be returned - * @param {string} toolId -Item ID of the tool. - * @param {boolean} damageTool -Sets wether the tool should be damaged on use. - * @param {string} soundId -Sound ID to be used as the flair sound effect. Can be null. - * @param {string} particleId -SimpleParticleType ID to be used as the flair particle. Can be null. - * @param {boolean} copyBlockstate - Sets wether the blockstate should be copied from the input block to the output block. - */ -function transformBlockWithToolReturn(event, inputBlock, outputBlock, outputItem, outputCount, toolId, damageTool, soundId, particleId, copyBlockstate) { - const { server, item, player, block } = event; - - if (!inputBlock || !outputBlock) return; - - if (inputBlock.startsWith('#')) { - if (!block.hasTag(inputBlock.substring(1))) return; - } else { - if (block.id.toString() !== inputBlock) return; - } - if (!player.crouching) return; - - if (toolId.startsWith('#')) { - if (item.isEmpty() || !player.mainHandItem.hasTag(toolId.substring(1))) return; - } else { - if (item.isEmpty() || player.mainHandItem.id !== toolId) return; - } - - transformBlockWithTool(event, inputBlock, outputBlock, toolId, damageTool, soundId, particleId, copyBlockstate) - - const dim = block.level.name.getString(); - server.runCommandSilent(`execute in ${dim} run summon item ${player.x} ${player.y} ${player.z} {Item:{id:'${outputItem}', Count:${outputCount}b}}`); - -} -/** - * Function for replacing a block with another block by crouch-right-clicking with an item. - * - * If input and output is null recipe will just return. - * - * @param {*} event - * @param {string} inputBlock -Block ID to be replaced. Accepts a Tag, but not recommended. - * @param {string} outputBlock -Block ID of the replacement. - * @param {string} itemId -Item ID of the consumed item. Accepts Tags. - * @param {boolean} consumeItem -Sets wether the item should be comsumed or not. - * @param {number} consumeAmount -Number of items to consume, can't be greater than stacksize. - * @param {string} soundId -Sound ID to be used as the flair sound effect. Can be null. - * @param {string} particleId -SimpleParticleType ID to be used as the flair particle. Can be null. - * @param {boolean} copyBlockstate - Sets wether the blockstate should be copied from the input block to the output block. - */ -function transformBlockWithItem(event, inputBlock, outputBlock, itemId, consumeItem, consumeAmount, soundId, particleId, copyBlockstate) { - const { server, item, player, block } = event; - - if (!inputBlock || !outputBlock) return; - - if (inputBlock.startsWith('#')) { - if (!block.hasTag(inputBlock.substring(1))) return; - } else { - if (block.id.toString() !== inputBlock) return; - } - - if (itemId.startsWith('#')) { - if (item.isEmpty() || !player.mainHandItem.hasTag(itemId.substring(1))) return; - } else { - if (item.isEmpty() || player.mainHandItem.id !== itemId) return; - } - if (!player.crouching) return; - - let state = block.getBlockState().toString() - if (state.includes('[') && copyBlockstate === true) { - state = state.substring(block.getBlockState().toString().indexOf('[')); - } else { - state = '' - } - - if (!player.isCreative() && consumeItem === true) { - if (item.count < consumeAmount) { - player.tell(`Item count is too low. Held amount = ${item.count}, required amount = ${consumeAmount}`) - return; - } - item.count -= consumeAmount; - } - if (soundId) { - server.runCommandSilent(`playsound ${soundId} player ${player.username} ${player.x} ${player.y} ${player.z} 1 2 1`) - } - if (particleId) { - server.runCommandSilent(`particle ${particleId} ${block.x} ${block.y + 0.8} ${block.z} 0.1 0.1 0.1 0.6 10`) - } - player.swing() - event.server.runCommandSilent(`execute in ${event.block.level.name.getString()} run fill ${block.x} ${block.y} ${block.z} ${block.x} ${block.y} ${block.z} air`) - event.server.runCommandSilent(`execute in ${event.block.level.name.getString()} run setblock ${block.x} ${block.y} ${block.z} ${outputBlock}${state}`) -}; - -// Declare Events -BlockEvents.rightClicked(event => { - //Brick index events - for (const b of global.BRICK_INDEX) { - //brick -> cracked - transformBlockWithTool(event, b.brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithTool(event, b.brick_stairs, b.cracked_stairs, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithTool(event, b.brick_slab, b.cracked_slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithTool(event, b.brick_wall, b.cracked_wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - //brick -> mossy - transformBlockWithItem(event, b.brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick_stairs, b.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick_stairs, b.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick_slab, b.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick_slab, b.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick_wall, b.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick_wall, b.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - //cracked -> mossy - transformBlockWithItem(event, b.cracked_brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_stairs, b.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_stairs, b.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_slab, b.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_slab, b.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_wall, b.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_wall, b.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - //mossy -> cracked - transformBlockWithTool(event, b.mossy_brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithTool(event, b.mossy_stairs, b.cracked_stairs, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithTool(event, b.mossy_slab, b.cracked_slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithTool(event, b.mossy_wall, b.cracked_wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - //mossy -> brick - transformBlockWithTool(event, b.mossy_brick, b.brick, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.mossy_brick, b.brick, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithTool(event, b.mossy_stairs, b.brick_stairs, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.mossy_stairs, b.brick_stairs, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithTool(event, b.mossy_slab, b.brick_slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.mossy_slab, b.brick_slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithTool(event, b.mossy_wall, b.brick_wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.mossy_wall, b.brick_wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - //cracked -> brick - transformBlockWithItem(event, b.cracked_brick, b.brick, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); - transformBlockWithItem(event, b.cracked_stairs, b.brick_stairs, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); - transformBlockWithItem(event, b.cracked_slab, b.brick_slab, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); - transformBlockWithItem(event, b.cracked_wall, b.brick_wall, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); - // brick -> smooth - transformBlockWithTool(event, b.brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true); - transformBlockWithTool(event, b.mossy_brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true); - transformBlockWithTool(event, b.cracked_brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true); - // smooth -> brick - transformBlockWithTool(event, b.smooth_brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithItem(event, b.smooth_brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.smooth_brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithTool(event, b.smooth_brick, b.brick, '#forge:tools/files', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true); - } - - //Cobble index events - for (const c of global.COBBLE_INDEX) { - //cobble -> mossy - transformBlockWithItem(event, c.block, c.mossy_block, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.block, c.mossy_block, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.stairs, c.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.stairs, c.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.slab, c.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.slab, c.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.wall, c.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.wall, c.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - //mossy -> cobble - transformBlockWithTool(event, c.mossy_block, c.block, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.mossy_block, c.block, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithTool(event, c.mossy_stairs, c.stairs, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.mossy_stairs, c.stairs, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithTool(event, c.mossy_slab, c.slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.mossy_slab, c.slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithTool(event, c.mossy_wall, c.wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.mossy_wall, c.wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - } - - //Misc Events - transformBlockWithItem(event, 'gtceu:incoloy_ma_956_frame', 'tfg:glacian_wool_frame', 'tfg:glacian_wool', true, 2, 'block.wool.place', 'minecraft:happy_villager', true); - transformBlockWithToolReturn(event, 'tfg:glacian_wool_frame', 'gtceu:incoloy_ma_956_frame', 'tfg:glacian_wool', 2,'#forge:tools/wire_cutters', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true); - - transformBlockWithItem(event, 'gtceu:incoloy_ma_956_frame', 'tfg:aes_insulation_frame', 'tfg:aes_insulation_roll', true, 1, 'block.wool.place', 'minecraft:happy_villager', true); - transformBlockWithToolReturn(event, 'tfg:aes_insulation_frame', 'gtceu:incoloy_ma_956_frame', 'tfg:aes_insulation_roll', 1, '#forge:tools/wire_cutters', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true); - - transformBlockWithItem(event, 'gtceu:incoloy_ma_956_frame', 'tfg:moderate_core_frame', 'tfg:graphite_moderator', true, 1, 'block.wool.place', 'minecraft:happy_villager', true); - transformBlockWithToolReturn(event, 'tfg:moderate_core_frame', 'gtceu:incoloy_ma_956_frame', 'tfg:graphite_moderator', 1, '#forge:tools/wire_cutters', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true); - - transformBlockWithItem(event, 'gtceu:incoloy_ma_956_frame', 'tfg:impure_moderate_core_frame', 'tfg:impure_graphite_moderator', true, 1, 'block.wool.place', 'minecraft:happy_villager', true); - transformBlockWithToolReturn(event, 'tfg:impure_moderate_core_frame', 'gtceu:incoloy_ma_956_frame', 'tfg:impure_graphite_moderator', 1, '#forge:tools/wire_cutters', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true); - -}); - -// Makes scythes, hoes, and knives take damage when cutting grass -BlockEvents.broken('tfc:mineable_with_sharp_tool', event => { - let player = event.player; - let toolUsed = player.mainHandItem; - - if (!toolUsed.hasTag('tfc:sharp_tools')) { - return; - } - - if (!player.isCreative()) { - toolUsed.damageValue++; - if (toolUsed.damageValue >= toolUsed.maxDamage) { - event.server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`); - toolUsed.count--; - } - } -}); - -//#endregion diff --git a/kubejs/server_scripts/tfg/food/data.crops.js b/kubejs/server_scripts/tfg/food/data.crops.js new file mode 100644 index 000000000..af2a55d2f --- /dev/null +++ b/kubejs/server_scripts/tfg/food/data.crops.js @@ -0,0 +1,88 @@ +"use strict"; + + +/** @param {Internal.TFCDataEventJS} event */ +function registerTFGCropRanges(event) { + // Earth + event.climateRange((climate) => { + climate.minHydration(20); + climate.maxHydration(80); + climate.minTemperature(5); + climate.maxTemperature(40); + climate.hydrationWiggle(7.5); + climate.temperatureWiggle(5.5); + }, "tfg:sunflower"); + + event.climateRange((climate) => { + climate.minHydration(10); + climate.maxHydration(60); + climate.minTemperature(-5); + climate.maxTemperature(25); + climate.hydrationWiggle(7.5); + climate.temperatureWiggle(1.5); + }, "tfg:rapeseed"); + + event.climateRange((climate) => { + climate.minHydration(15); + climate.maxHydration(65); + climate.minTemperature(-8); + climate.maxTemperature(25); + climate.hydrationWiggle(6.5); + climate.temperatureWiggle(3); + }, "tfg:flax"); + + // Mars + event.climateRange((climate) => { + climate.minHydration(0); + climate.maxHydration(40); + climate.minTemperature(-150); + climate.maxTemperature(15); + climate.hydrationWiggle(7.5); + climate.temperatureWiggle(5.5); + }, "betterend:amber_root"); + + event.climateRange((climate) => { + climate.minHydration(70); + climate.maxHydration(100); + climate.minTemperature(-80); + climate.maxTemperature(30); + climate.hydrationWiggle(7.5); + climate.temperatureWiggle(5.5); + }, "betterend:blossom_berry"); + + event.climateRange((climate) => { + climate.minHydration(0); + climate.maxHydration(40); + climate.minTemperature(-150); + climate.maxTemperature(15); + climate.hydrationWiggle(7.5); + climate.temperatureWiggle(5.5); + }, "betterend:bolux_mushroom"); + + event.climateRange((climate) => { + climate.minHydration(0); + climate.maxHydration(60); + climate.minTemperature(-100); + climate.maxTemperature(30); + climate.hydrationWiggle(7.5); + climate.temperatureWiggle(5.5); + }, "betterend:cave_pumpkin_plant"); + + event.climateRange((climate) => { + climate.minHydration(0); + climate.maxHydration(40); + climate.minTemperature(-150); + climate.maxTemperature(15); + climate.hydrationWiggle(7.5); + climate.temperatureWiggle(5.5); + }, "betterend:chorus_mushroom"); + + event.climateRange((climate) => { + climate.minHydration(50); + climate.maxHydration(100); + climate.minTemperature(-80); + climate.maxTemperature(30); + climate.hydrationWiggle(7.5); + climate.temperatureWiggle(5.5); + }, "betterend:shadow_berry"); +} diff --git a/kubejs/server_scripts/tfg/food/data.food.js b/kubejs/server_scripts/tfg/food/data.food.js new file mode 100644 index 000000000..def08ba3d --- /dev/null +++ b/kubejs/server_scripts/tfg/food/data.food.js @@ -0,0 +1,583 @@ +"use strict"; + +/** @param {Internal.TFCDataEventJS} event */ +function registerTFGFoodData(event) { + + // Ice shavings + event.foodItem('firmalife:ice_shavings', food => { + food.water(5) + food.decayModifier(0) + }) + + // Birt + event.foodItem("tfg:food/raw_birt", (food) => { + food.hunger(2); + food.protein(1.2); + food.decayModifier(3); + }); + + event.foodItem("tfg:food/cooked_birt", (food) => { + food.hunger(4); + food.saturation(2); + food.protein(2.2); + food.decayModifier(2.25); + }); + + // Crawlermari + event.foodItem("tfg:food/raw_crawlermari", (food) => { + food.hunger(2); + food.water(5); + food.protein(1.2); + food.decayModifier(3); + }); + + event.foodItem("tfg:food/cooked_crawlermari", (food) => { + food.hunger(4); + food.saturation(2); + food.protein(2.2); + food.decayModifier(2.25); + }); + + // Limpet + event.foodItem("tfg:food/raw_limpet", (food) => { + food.hunger(2); + food.water(5); + food.protein(1.2); + food.decayModifier(3); + }); + + event.foodItem("tfg:food/cooked_limpet", (food) => { + food.hunger(4); + food.saturation(2); + food.protein(2.2); + food.decayModifier(2.25); + }); + + // Moon Rabbit + event.foodItem("tfg:food/raw_moon_rabbit", (food) => { + food.hunger(2); + food.protein(1.2); + food.decayModifier(3); + }); + + event.foodItem("tfg:food/cooked_moon_rabbit", (food) => { + food.hunger(4); + food.saturation(2); + food.protein(2.2); + food.decayModifier(2.25); + }); + + // Glacian Mutton + event.foodItem("tfg:food/raw_glacian_mutton", (food) => { + food.hunger(2); + food.protein(1.5); + food.decayModifier(3); + }); + + event.foodItem("tfg:food/cooked_glacian_mutton", (food) => { + food.hunger(4); + food.saturation(2); + food.protein(3); + food.decayModifier(2.25); + }); + + // Sniffer Beef + event.foodItem("tfg:food/raw_sniffer_beef", (food) => { + food.hunger(2); + food.protein(1.5); + food.decayModifier(3); + }); + + event.foodItem("tfg:food/cooked_sniffer_beef", (food) => { + food.hunger(4); + food.saturation(2); + food.protein(3); + food.decayModifier(2.25); + }); + + // Wraptor + event.foodItem("tfg:food/raw_wraptor", (food) => { + food.hunger(2); + food.protein(1.5); + food.decayModifier(3); + }); + + event.foodItem("tfg:food/cooked_wraptor", (food) => { + food.hunger(4); + food.saturation(2); + food.protein(3); + food.decayModifier(2.25); + }); + + // Springling Collar + event.foodItem("tfg:food/raw_springling_collar", (food) => { + food.hunger(2); + food.protein(1.5); + food.decayModifier(3); + }); + + event.foodItem("tfg:food/cooked_springling_collar", (food) => { + food.hunger(4); + food.saturation(2); + food.protein(3); + food.decayModifier(2.25); + }); + + // Surfer Steak + event.foodItem("tfg:food/raw_surfer_steak", (food) => { + food.hunger(2); + food.protein(1.5); + food.decayModifier(3); + }); + + event.foodItem("tfg:food/cooked_surfer_steak", (food) => { + food.hunger(4); + food.saturation(2); + food.protein(3); + food.decayModifier(2.25); + }); + + // Cruncher Ribs + event.foodItem("tfg:food/raw_cruncher_ribs", (food) => { + food.hunger(2); + food.protein(2.0); + food.decayModifier(3); + }); + + event.foodItem("tfg:food/cooked_cruncher_ribs", (food) => { + food.hunger(4); + food.saturation(2.2); + food.protein(4); + food.decayModifier(2.25); + }); + + // Long Pig Filet + event.foodItem("tfg:food/raw_long_pig_filet", (food) => { + food.hunger(2); + food.protein(1.5); + food.decayModifier(3); + }); + + event.foodItem("tfg:food/cooked_long_pig_filet", (food) => { + food.hunger(2); + food.saturation(2); + food.protein(2); + food.decayModifier(2.25); + }); + + // Stackatick Chunks + event.foodItem("tfg:food/raw_stackatick_chunks", (food) => { + food.hunger(2); + food.protein(1.2); + food.decayModifier(3); + }); + + event.foodItem("tfg:food/raw_stickastackatick", (food) => { + food.hunger(2); + food.protein(1.2); + food.decayModifier(3); + }); + + event.foodItem("tfg:food/cooked_stickastackatick", (food) => { + food.hunger(4); + food.saturation(2); + food.protein(3); + food.decayModifier(2.25); + }); + + // Walker Steak + event.foodItem("tfg:food/raw_walker_steak", (food) => { + food.hunger(2); + food.protein(2.0); + food.decayModifier(3); + }); + + event.foodItem("tfg:food/cooked_walker_steak", (food) => { + food.hunger(4); + food.saturation(2.2); + food.protein(4); + food.decayModifier(2.25); + }); + + // Glider Wings + event.foodItem("tfg:food/raw_glider_wings", (food) => { + food.hunger(2); + food.protein(1.5); + food.decayModifier(3); + }); + + event.foodItem("tfg:food/cooked_glider_wings", (food) => { + food.hunger(4); + food.saturation(2); + food.protein(2.75); + food.decayModifier(2.25); + }); + + // Soarer + event.foodItem("tfg:food/raw_whole_soarer", (food) => { + food.hunger(2); + food.protein(1.5); + food.decayModifier(3); + }); + + event.foodItem("tfg:food/cooked_whole_soarer", (food) => { + food.hunger(4); + food.saturation(2); + food.protein(3.1); + food.decayModifier(2.25); + }); + + // Crusher Meat + event.foodItem("tfg:food/raw_crusher_meat", (food) => { + food.hunger(2); + food.protein(1.5); + food.decayModifier(3); + }); + + event.foodItem("tfg:food/cooked_crusher_meat", (food) => { + food.hunger(4); + food.saturation(2); + food.protein(3); + food.decayModifier(2.25); + }); + + // Goober Meat + event.foodItem("tfg:food/raw_goober_meat", (food) => { + food.hunger(2); + food.protein(1.5); + food.decayModifier(3); + food.water(1); + }); + + event.foodItem("tfg:food/cooked_goober_meat", (food) => { + food.hunger(4); + food.saturation(2); + food.protein(3); + food.decayModifier(2.25); + }); + + // high-tech food + global.FOOD_FRUIT.forEach((fruit) => { + event.foodItem(`tfg:food/freeze_dried/${fruit.name}`, (food) => { + food.hunger(4); + food.saturation(fruit.saturation); + food.water(0); + food.fruit(fruit.fruit); + food.decayModifier(fruit.decay); + }); + }); + + event.foodItem("tfg:food/calorie_paste", (food) => { + food.hunger(6); + food.saturation(4); + food.decayModifier(4.5); + food.grain(0.1); + food.vegetables(0.2); + food.protein(0.2); + }); + + event.foodItem("tfg:food/meal_bag", (food) => { + food.type("dynamic"); + }); + + // Sunflower products + event.foodItem("tfg:roasted_sunflower_seeds", (food) => { + food.hunger(4); + food.decayModifier(0.5); + food.grain(0.1); + food.saturation(0.5); + }); + + event.foodItem("tfg:sunflower_product", (food) => { + food.decayModifier(0.5); + }); + + // Amber Roots + event.foodItem("betterend:amber_root_product", (food) => { + food.hunger(4); + food.decayModifier(1); + food.saturation(1); + food.grain(3); + }); + + // Blossom Berries + event.foodItem("betterend:blossom_berry_product", (food) => { + food.hunger(5); + food.decayModifier(2); + food.saturation(1); + food.water(7.5); + food.fruit(2.1); + }); + + // Cave Pumpkin + event.foodItem("betterend:cave_pumpkin", (food) => { + food.hunger(4); + food.saturation(0); + food.decayModifier(0.5); + }); + + event.foodItem("betterend:cave_pumpkin_chunks", (food) => { + food.hunger(4); + food.saturation(1); + food.decayModifier(2.5); + food.water(5); + food.fruit(0.8); + }); + + event.foodItem("betterend:cave_pumpkin_pie_dough", (food) => { + food.hunger(2); + food.decayModifier(3); + }); + + event.foodItem("betterend:cave_pumpkin_pie_raw", (food) => { + food.hunger(2); + food.decayModifier(3); + }); + + event.foodItem("betterend:cave_pumpkin_pie", (food) => { + food.hunger(4); + food.saturation(2.8); + food.decayModifier(1.5); + food.water(5); + food.protein(1); + food.fruit(5); + food.grain(4); + food.dairy(1); + }); + + // Chorus Mushroom + event.foodItem("betterend:chorus_mushroom_product", (food) => { + food.hunger(2); + food.saturation(1); + food.decayModifier(3); + food.water(3); + food.vegetables(1.5); + }); + + event.foodItem("betterend:chorus_mushroom_cooked", (food) => { + food.hunger(2); + food.saturation(2.1); + food.decayModifier(1.5); + food.vegetables(2.5); + }); + + // Shadow Berry + event.foodItem("betterend:shadow_berry_product", (food) => { + food.hunger(5); + food.decayModifier(2); + food.saturation(1); + food.water(5); + food.fruit(1.9); + }); + + event.foodItem("betterend:shadow_berry_cooked", (food) => { + food.hunger(5); + food.decayModifier(1); + food.saturation(2); + food.fruit(2.2); + }); + + // Bolux Mushroom + event.foodItem("betterend:bolux_mushroom_product", (food) => { + food.hunger(2); + food.saturation(1); + food.decayModifier(3); + food.water(3); + food.vegetables(1.5); + }); + + event.foodItem("betterend:bolux_mushroom_cooked", (food) => { + food.hunger(2); + food.saturation(2); + food.decayModifier(1.5); + food.vegetables(2.4); + }); + + // Dino Nuggets + event.foodItem('tfg:food/raw_dino_nugget', (food) => { + food.type("dynamic"); + food.hunger(1); + food.decayModifier(3); + }); + + event.foodItem('tfg:food/cooked_dino_nugget', (food) => { + food.type("dynamic"); + food.hunger(3); + food.saturation(2); + food.decayModifier(1.5); + }); + + // Ice Soup + event.foodItem("tfg:food/ice_soup", (food) => { + food.hunger(1); + food.water(20); + food.decayModifier(0); + }); + + // Fries + event.foodItem('tfg:food/raw_fries', (food) => { + food.hunger(1); + food.decayModifier(3); + food.vegetables(0.25); + }); + + event.foodItem('tfg:food/cooked_fries', (food) => { + food.hunger(2); + food.decayModifier(1.5); + food.vegetables(0.6); + food.saturation(2); + }); + + // Cheese Curds + event.foodItem('tfg:food/raw_beer_battered_cheese_curds', (food) => { + food.hunger(1); + food.decayModifier(1.3); + food.dairy(1); + food.saturation(1); + }); + + event.foodItem('tfg:food/cooked_beer_battered_cheese_curds', (food) => { + food.hunger(3); + food.decayModifier(0.8); + food.dairy(1.2); + food.saturation(2); + food.grain(0.5); + }); + + // Hamburgers + event.foodItem('tfg:food/raw_burger_patty', (food) => { + food.hunger(2); + food.decayModifier(2.3); + food.protein(2); + }); + + event.foodItem('tfg:food/cooked_burger_patty', (food) => { + food.hunger(4); + food.decayModifier(2); + food.protein(2.5); + food.saturation(2); + }); + + event.foodItem('tfg:food/brioche_dough', (food) => { + food.hunger(1.5); + food.decayModifier(2.3); + }); + + event.foodItem('tfg:food/brioche_bun', (food) => { + food.hunger(3.5); + food.decayModifier(1.5); + food.grain(1.5); + food.dairy(0.5); + food.saturation(1); + }); + + event.foodItem('tfg:food/hamburger', (food) => { + food.type("dynamic"); + }); + + event.foodItem('tfg:food/cheeseburger', (food) => { + food.type("dynamic"); + }); + + // Poutine + event.foodItem('tfg:food/poutine', (food) => { + food.type("dynamic_bowl"); + }); + + // Oatmeal + event.foodItem('tfg:food/oatmeal', (food) => { + food.type("dynamic_bowl"); + }); + + // Biochem Items + event.foodItem("tfg:progenitor_cells", (food) => { + food.decayModifier(1); + }); + event.foodItem("tfg:rough_endoplasmic_reticula", (food) => { + food.decayModifier(0.5); + }); + event.foodItem("tfg:smooth_endoplasmic_reticula", (food) => { + food.decayModifier(0.5); + }); + + // Instant Mac + event.foodItem('tfg:food/raw_instant_mac', (food) => { + food.hunger(2); + food.decayModifier(0.2); + }); + + event.foodItem('tfg:food/cooked_instant_mac', (food) => { + food.hunger(3.5); + food.decayModifier(1.6); + food.grain(1.5); + food.dairy(2.5); + food.protein(0.8); + food.saturation(1.8); + }); + + //#region Drinkables + // Proto Growth Medium + event.drinkable("tfg:proto_growth_medium", (data) => { + data.thirst(10); + data.food(food => { + food.dairy(5); + food.protein(1); + }); + data.effect("minecraft:absorption", (effect) => { + effect.amplifier(2); + effect.chance(0.25); + effect.duration(1200); + }); + }); + + // Semiheavy Ammoniacal Water + event.drinkable("tfg:semiheavy_ammoniacal_water", (data) => { + data.thirst(10); + data.effect("minecraft:nausea", (effect) => { + effect.chance(0.5); + effect.duration(200); + }); + }); + + // Rich Stock + event.drinkable('tfg:rich_stock', (data) => { + data.thirst(4); + data.effect("tfc:thirst", (effect) => { + effect.chance(0.2); + effect.duration(20*5); + }); + data.food(food => { + food.protein(0.25); + food.vegetables(0.25); + }); + }); + + // Light Stock + event.drinkable('tfg:light_stock', (data) => { + data.thirst(4); + data.effect("tfc:thirst", (effect) => { + effect.chance(0.2); + effect.duration(20*5); + }); + data.food(food => { + food.protein(0.25); + food.vegetables(0.25); + }); + }); + + // Brown Gravy + event.drinkable('tfg:brown_gravy', (data) => { + data.thirst(2); + data.effect("tfc:thirst", (effect) => { + effect.chance(0.3); + effect.duration(20*5); + }); + data.food(food => { + food.protein(0.5); + food.vegetables(0.5); + food.grain(0.25); + }); + }); + + //#endregion +} diff --git a/kubejs/server_scripts/tfg/food/data.planters.js b/kubejs/server_scripts/tfg/food/data.planters.js new file mode 100644 index 000000000..e694e6ca7 --- /dev/null +++ b/kubejs/server_scripts/tfg/food/data.planters.js @@ -0,0 +1,167 @@ +"use strict"; + + +/** @param {Internal.TFCDataEventJS} event */ +function registerTFGFLPlanters(event) { + event.firmalifePlantable( + "tfg:sunflower_seeds", + "large", + 0, + 3, + 0.15, + "tfg:sunflower_seeds", + "tfg:sunflower_product", + "nitrogen", + [ + "tfg:block/crop/sunflower_greenhouse_0", + "tfg:block/crop/sunflower_greenhouse_1", + "tfg:block/crop/sunflower_greenhouse_2", + "tfg:block/crop/sunflower_greenhouse_3" + ], + null + ); + + event.firmalifePlantable( + "tfg:rapeseed_seeds", + "large", + 0, + 3, + 0.15, + "tfg:rapeseed_seeds", + "tfg:rapeseed_product", + "phosphorous", + [ + "tfg:block/crop/rapeseed_greenhouse_0", + "tfg:block/crop/rapeseed_greenhouse_1", + "tfg:block/crop/rapeseed_greenhouse_2", + "tfg:block/crop/rapeseed_greenhouse_3" + ], + null + ); + + event.firmalifePlantable( + "tfg:flax_seeds", + "large", + 0, + 3, + 0.2, + "tfg:flax_seeds", + "tfg:flax_product", + "nitrogen", + [ + "tfg:block/crop/flax_age_0", + "tfg:block/crop/flax_age_1", + "tfg:block/crop/flax_age_5_top", + "tfg:block/crop/flax_age_6_top" + ], + null + ); + + event.firmalifePlantable( + "betterend:amber_root_seeds", + "large", + 0, + 3, + 0.15, + "betterend:amber_root_seeds", + "betterend:amber_root_product", + "phosphorous", + [ + "betterend:block/amber_root_0", + "betterend:block/amber_root_1", + "betterend:block/amber_root_2", + "betterend:block/amber_root_3" + ], + null + ); + + event.firmalifePlantable( + "betterend:blossom_berry_seeds", + "large", + 0, + 3, + 0.15, + "betterend:blossom_berry_seeds", + "betterend:blossom_berry_product", + "potassium", + [ + "betterend:block/blossom_berry_seed_0", + "betterend:block/blossom_berry_seed_1", + "betterend:block/blossom_berry_seed_2", + "betterend:block/blossom_berry_seed_3" + ], + null + ); + + event.firmalifePlantable( + "betterend:bolux_mushroom_seeds", + "quad", + 1, + 3, + 0.15, + "betterend:bolux_mushroom_seeds", + "betterend:bolux_mushroom_product", + "phosphorous", + [ + "betterend:block/bolux_mushroom_greenhouse_0", + "betterend:block/bolux_mushroom_greenhouse_1", + "betterend:block/bolux_mushroom_greenhouse_2", + "betterend:block/bolux_mushroom_greenhouse_3" + ], + null + ); + + event.firmalifePlantable( + "betterend:chorus_mushroom_seeds", + "quad", + 1, + 3, + 0.15, + "betterend:chorus_mushroom_seeds", + "betterend:chorus_mushroom_product", + "phosphorous", + [ + "betterend:block/chorus_mushroom_0", + "betterend:block/chorus_mushroom_1", + "betterend:block/chorus_mushroom_2", + "betterend:block/chorus_mushroom_3" + ], + null + ); + + event.firmalifePlantable( + "betterend:cave_pumpkin_plant_seeds", + "hanging", + 2, + 3, + 0.15, + "betterend:cave_pumpkin_plant_seeds", + "betterend:cave_pumpkin", + "phosphorous", + [ + "betterend:block/cave_pumpkin_greenhouse_0", + "betterend:block/cave_pumpkin_greenhouse_1", + "betterend:block/cave_pumpkin_greenhouse_2", + "betterend:block/cave_pumpkin_greenhouse_3" + ], + "betterend:block/cave_pumpkin_top" + ); + + event.firmalifePlantable( + "betterend:shadow_berry_seeds", + "quad", + 1, + 3, + 0.15, + "betterend:shadow_berry_seeds", + "betterend:shadow_berry_product", + "potassium", + [ + "betterend:block/shadow_berry_greenhouse_0", + "betterend:block/shadow_berry_greenhouse_1", + "betterend:block/shadow_berry_greenhouse_2", + "betterend:block/shadow_berry_greenhouse_3" + ], + null + ); +} diff --git a/kubejs/server_scripts/tfg/food/recipes.biomass.js b/kubejs/server_scripts/tfg/food/recipes.biomass.js new file mode 100644 index 000000000..65aeb4fcf --- /dev/null +++ b/kubejs/server_scripts/tfg/food/recipes.biomass.js @@ -0,0 +1,182 @@ +"use strict"; + +function registerTFGBiomassRecipes(event) { + + //#region Biomass + + event.recipes.gtceu.brewery('biomass_from_tfc_seeds') + .itemInputs('#tfc:seeds') + .inputFluids("#tfc:any_water 20") + .outputFluids(Fluid.of('gtceu:biomass', 100)) + .duration(100) + .EUt(3) + + event.recipes.gtceu.brewery('biomass_from_tfc_food') + .itemInputs('#tfc:foods') + .inputFluids("#tfc:any_water 20") + .outputFluids(Fluid.of('gtceu:biomass', 100)) + .duration(100) + .EUt(3) + + event.recipes.gtceu.brewery('biomass_from_tfc_plants') + .itemInputs('#tfc:plants') + .inputFluids("#tfc:any_water 20") + .outputFluids(Fluid.of('gtceu:biomass', 100)) + .duration(100) + .EUt(3) + + event.recipes.gtceu.brewery('biomass_from_moon_plants') + .itemInputs('#tfg:moon_plants') + .inputFluids("#tfc:any_water 20") + .outputFluids(Fluid.of('gtceu:biomass', 100)) + .duration(100) + .EUt(3) + + event.recipes.gtceu.brewery('biomass_from_mars_plants') + .itemInputs('#tfg:mars_plants') + .inputFluids("#tfc:any_water 20") + .outputFluids(Fluid.of('gtceu:biomass', 100)) + .duration(100) + .EUt(3) + + event.recipes.gtceu.brewery('biomass_from_tfc_corals') + .itemInputs('#tfc:corals') + .inputFluids("#tfc:any_water 20") + .outputFluids(Fluid.of('gtceu:biomass', 100)) + .duration(100) + .EUt(3) + + event.recipes.gtceu.brewery('biomass_from_spider_eyes') + .itemInputs('minecraft:spider_eye') + .inputFluids("#tfc:any_water 20") + .outputFluids(Fluid.of('gtceu:biomass', 100)) + .duration(100) + .EUt(3) + + event.recipes.gtceu.brewery('biomass_from_leaves') + .itemInputs('#minecraft:leaves') + .inputFluids("#tfc:any_water 20") + .outputFluids(Fluid.of('gtceu:biomass', 20)) + .duration(100) + .EUt(3) + + event.recipes.gtceu.brewery('biomass_from_fallen_leaves') + .itemInputs('#tfc:fallen_leaves') + .inputFluids("#tfc:any_water 20") + .outputFluids(Fluid.of('gtceu:biomass', 20)) + .duration(100) + .EUt(3) + + event.recipes.gtceu.brewery('biomass_from_minecraft_plants') + .itemInputs('#createaddition:plants') + .inputFluids("#tfc:any_water 20") + .outputFluids(Fluid.of('gtceu:biomass', 100)) + .duration(100) + .EUt(3) + + event.recipes.gtceu.brewery('biomass_from_wart_blocks') + .itemInputs('#minecraft:wart_blocks') + .inputFluids("#tfc:any_water 20") + .outputFluids(Fluid.of('gtceu:biomass', 50)) + .duration(100) + .EUt(3) + + event.replaceOutput({ id: 'gtceu:distillery/distill_biomass_to_water' }, 'gtceu:wood_dust', 'gtceu:carbon_dust') + event.replaceOutput({ id: 'gtceu:distillery/distill_biomass_to_ethanol' }, 'gtceu:wood_dust', 'gtceu:carbon_dust') + event.replaceOutput({ id: 'gtceu:distillation_tower/distill_biomass' }, 'gtceu:wood_dust', 'gtceu:carbon_dust') + + //#endregion + + //#region Plant ball + + event.recipes.gtceu.compressor('plant_ball_from_tfc_seeds') + .itemInputs('4x #tfc:seeds') + .itemOutputs('gtceu:plant_ball') + .duration(300) + .EUt(2) + + let food = Ingredient.of('#tfc:foods') + .subtract('minecraft:brown_mushroom') + .subtract('minecraft:red_mushroom') + .withCount(8) + + event.recipes.gtceu.compressor('plant_ball_from_tfc_food') + .itemInputs(food) + .itemOutputs('gtceu:plant_ball') + .duration(300) + .EUt(2) + + event.recipes.gtceu.compressor('plant_ball_from_tfc_plants') + .itemInputs('4x #tfc:plants') + .itemOutputs('gtceu:plant_ball') + .duration(300) + .EUt(2) + + event.recipes.gtceu.compressor('plant_ball_from_moon_plants') + .itemInputs('4x #tfg:moon_plants') + .itemOutputs('gtceu:plant_ball') + .duration(300) + .EUt(2) + + event.recipes.gtceu.compressor('plant_ball_from_mars_plants') + .itemInputs('4x #tfg:mars_plants') + .itemOutputs('gtceu:plant_ball') + .duration(300) + .EUt(2) + + event.recipes.gtceu.compressor('plant_ball_from_tfc_corals') + .itemInputs('4x #tfc:corals') + .itemOutputs('gtceu:plant_ball') + .duration(300) + .EUt(2) + + event.recipes.gtceu.compressor('plant_ball_from_misc_plants') + .itemInputs('4x #createaddition:plants') + .itemOutputs('gtceu:plant_ball') + .duration(300) + .EUt(2) + + event.recipes.gtceu.compressor('plant_ball_from_wart_blocks') + .itemInputs('4x #minecraft:wart_blocks') + .itemOutputs('gtceu:plant_ball') + .duration(300) + .EUt(2) + + //#endregion + + // Sugar + event.recipes.gtceu.centrifuge('sugar_from_sugarcane') + .itemInputs('tfc:food/sugarcane') + .inputFluids("#tfg:clean_water 600") + .itemOutputs('minecraft:sugar', 'gtceu:plant_ball') + .duration(800) + .EUt(6) + + event.recipes.gtceu.centrifuge('sugar_from_honey') + .itemInputs('firmalife:raw_honey') + .itemOutputs('minecraft:sugar') + .duration(400) + .EUt(6) + + event.recipes.gtceu.centrifuge('tfg:beets_to_sugar') + .itemInputs('5x tfc:food/beet') + .inputFluids(Fluid.of('tfc:salt_water', 1000)) + .itemOutputs('3x minecraft:sugar', '3x gtceu:plant_ball', '1x #forge:dusts/salt') + .outputFluids(Fluid.of('minecraft:water', 1000)) + .duration(800) + .EUt(7) + .circuit(3) + + // Misc + event.recipes.gtceu.macerator('macerate_cocoa') + .itemInputs('firmalife:food/roasted_cocoa_beans') + .itemOutputs('gtceu:cocoa_dust') + .duration(100) + .EUt(2) + + event.recipes.gtceu.macerator('macerate_meat_to_dust') + .itemInputs('#tfc:foods/meats') + .itemOutputs('gtceu:meat_dust', 'gtceu:tiny_bone_dust') + .duration(100) + .EUt(2) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.food.js b/kubejs/server_scripts/tfg/food/recipes.food.js similarity index 92% rename from kubejs/server_scripts/tfg/recipes.food.js rename to kubejs/server_scripts/tfg/food/recipes.food.js index 867ffe490..c99e8b67e 100644 --- a/kubejs/server_scripts/tfg/recipes.food.js +++ b/kubejs/server_scripts/tfg/food/recipes.food.js @@ -260,38 +260,55 @@ function registerTFGFoodRecipes(event) { global.TFC_CURDS_AND_CHEESES.forEach(item => { - processorRecipe(`${item.curd}_curd`, 1200, 16, { + event.recipes.gtceu.fermenter(`tfg:curdled_${item.id}`) + .inputFluids(Fluid.of(item.milk, 2000)) + .itemInputs('firmalife:rennet') + .outputFluids(Fluid.of(item.curdled_fluid, 2000)) + .duration(2400) + .EUt(16) + + event.recipes.gtceu.mixer(`lactose_milk_${item.id}`) + .circuit(1) + .inputFluids(Fluid.of(item.milk, 1000), Fluid.of('gtceu:acetic_acid', 25)) + .itemOutputs('1x gtceu:lactose_dust') + .outputFluids(Fluid.of(item.curdled_fluid, 1000)) + .duration(300) + .EUt(GTValues.VA[GTValues.LV]) + + processorRecipe(`${item.id}_curd`, 1200, 16, { itemOutputs: [item.curd], - fluidInputs: [Fluid.of(item.input_fluid, 1000)], + fluidInputs: [Fluid.of(item.curdled_fluid, 1000)], itemOutputProvider: TFC.isp.of(item.curd).resetFood() }) - processorRecipe(`${item.cheese1}_cheese_wheel_1`, 8000, 16, { + processorRecipe(`${item.id}_unsalted_cheese_wheel`, 8000, 16, { itemInputs: [`3x ${item.curd}`], - itemOutputs: [`firmalife:${item.cheese1}_wheel`], + itemOutputs: [item.unsalted_wheel], fluidInputs: [Fluid.of('tfc:salt_water', 750)], - itemOutputProvider: TFC.isp.of(`firmalife:${item.cheese1}_wheel`).copyOldestFood() + itemOutputProvider: TFC.isp.of(item.unsalted_wheel).copyOldestFood() }) - processorRecipe(`${item.cheese2}_cheese_wheel_2`, 1000, 16, { + processorRecipe(`${item.id}_unsalted_cheese_cutting`, 100, 8, { + itemInputs: [item.unsalted_wheel], + itemOutputs: [`4x ${item.unsalted_cheese}`], + itemOutputProvider: TFC.isp.of(`4x ${item.unsalted_cheese}`).copyOldestFood() + }) + + if (item.salted_wheel === null || item.salted_cheese === null) + return; + + processorRecipe(`${item.id}_salted_cheese_wheel`, 1000, 16, { circuit: 2, itemInputs: [`3x ${item.curd}`, `6x tfc:powder/salt`], - itemOutputs: [`firmalife:${item.cheese2}_wheel`], - itemOutputProvider: TFC.isp.of(`firmalife:${item.cheese2}_wheel`).copyOldestFood() + itemOutputs: [item.salted_wheel], + itemOutputProvider: TFC.isp.of(item.salted_wheel).copyOldestFood() }) - processorRecipe(`${item.cheese1}_cheese_cutting_1`, 100, 8, { - itemInputs: [`firmalife:${item.cheese1}_wheel`], - itemOutputs: [`4x firmalife:food/${item.cheese1}`], - itemOutputProvider: TFC.isp.of(`4x firmalife:food/${item.cheese1}`).copyOldestFood() + processorRecipe(`${item.id}_salted_cheese_cutting`, 100, 8, { + itemInputs: [item.salted_wheel], + itemOutputs: [`4x ${item.salted_cheese}`], + itemOutputProvider: TFC.isp.of(`4x ${item.salted_cheese}`).copyOldestFood() }) - - processorRecipe(`${item.cheese2}_cheese_cutting_2`, 100, 8, { - itemInputs: [`firmalife:${item.cheese2}_wheel`], - itemOutputs: [`4x firmalife:food/${item.cheese2}`], - itemOutputProvider: TFC.isp.of(`4x firmalife:food/${item.cheese2}`).copyOldestFood() - }) - }) // Milks @@ -346,9 +363,38 @@ function registerTFGFoodRecipes(event) { //#endregion + //#region Chocolate + const chocolateType = ["white_chocolate", "milk_chocolate", "dark_chocolate"] + const chocolateShape = ["", "_heart", "_bell", "_knife"] //"" is firmalife chocolate bar + const chocolatemolds = ["tfc:ceramic/ingot_mold", "tfcchannelcasting:heart_mold", "tfc:ceramic/bell_mold", "tfc:ceramic/knife_blade_mold"] + + for (const ctype of chocolateType) { + for (const cshape of chocolateShape) { + processorRecipe(`${ctype}_${cshape}_melting`, 100, 16, { + circuit: 1, + itemInputs:[cshape == "" ? `firmalife:food/${ctype}` : `tfcchannelcasting:food/${ctype}${cshape}`], + fluidOutputs:[cshape == "" ? Fluid.of(`tfcchannelcasting:${ctype}`, 144) : Fluid.of(`tfcchannelcasting:${ctype}`, 100)], + }) + } + } + + for (const ctype of chocolateType) { + for (const cshape of chocolateShape) { + processorRecipe(`${ctype}_${cshape}_casting`, 100, 16, { + fluidInputs: [cshape == "" ? Fluid.of(`tfcchannelcasting:${ctype}`, 144) : Fluid.of(`tfcchannelcasting:${ctype}`, 100)], + itemOutputs: [cshape == "" ? `firmalife:food/${ctype}` : `tfcchannelcasting:food/${ctype}${cshape}`], + itemOutputProvider: TFC.isp.of(cshape == "" ? `firmalife:food/${ctype}` : `tfcchannelcasting:food/${ctype}${cshape}`).resetFood(), + notConsumable: [chocolatemolds[chocolateShape.indexOf(cshape)]] + }) + } + } + + //#endregion + //#region Food preservation const smoking_meats = Ingredient.of('#tfc:foods/raw_meats').itemIds; + const smoking_cheese = Ingredient.of('#firmalife:foods/cheeses').itemIds; const brining_veg = Ingredient.of('#firmalife:foods/pizza_ingredients').itemIds; const drying_fruits = Ingredient.of('#tfc:foods/fruits').itemIds; const drying_recipes = [ @@ -383,6 +429,16 @@ function registerTFGFoodRecipes(event) { }) }) + smoking_cheese.forEach(item => { + processorRecipeText(`${item.replace(/:/g, "/")}/smoking`, 200, 16, "tfg.food_recipe.smoking", { + circuit: 6, + itemInputs: [item], + itemOutputs: [item], + fluidInputs: [Fluid.of('gtceu:wood_gas', 5)], + itemOutputProvider: TFC.isp.copyInput().addTrait("firmalife:smoked") + }) + }) + drying_fruits.forEach(item => { processorRecipeText(`${item.replace(/:/g, "/")}/drying`, 200, 16, "tfg.food_recipe.drying", { circuit: 6, @@ -422,7 +478,7 @@ function registerTFGFoodRecipes(event) { itemOutputs: ['2x tfg:food/meal_bag'], itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal( (food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [ - (portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8) + (portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0) ]).addTrait('tfg:freeze_dried') }) @@ -433,7 +489,7 @@ function registerTFGFoodRecipes(event) { itemOutputs: ['2x tfg:food/meal_bag'], itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal( (food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [ - (portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8) + (portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0) ]).addTrait('tfg:freeze_dried') }) @@ -444,7 +500,7 @@ function registerTFGFoodRecipes(event) { itemOutputs: ['2x tfg:food/meal_bag'], itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal( (food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [ - (portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8) + (portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0) ]).addTrait('tfg:freeze_dried') }) @@ -455,7 +511,7 @@ function registerTFGFoodRecipes(event) { itemOutputs: ['2x tfg:food/meal_bag'], itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal( (food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [ - (portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8) + (portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0) ]).addTrait('tfg:freeze_dried') }) @@ -466,7 +522,7 @@ function registerTFGFoodRecipes(event) { itemOutputs: ['2x tfg:food/meal_bag'], itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal( (food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [ - (portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8) + (portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0) ]).addTrait('tfg:freeze_dried') }) @@ -631,6 +687,7 @@ function registerTFGFoodRecipes(event) { //#region Pizza processorRecipe("pizza_no_extra", 600, 16, { + circuit: 3, itemInputs: ["firmalife:food/pizza_dough", "firmalife:food/tomato_sauce", "firmalife:food/shredded_cheese"], itemOutputs: ["firmalife:food/raw_pizza"], itemOutputProvider: TFC.isp.of("firmalife:food/raw_pizza").meal( @@ -639,7 +696,7 @@ function registerTFGFoodRecipes(event) { ) }) - processorRecipe("pizza_1_extra", 600, 16, { + processorRecipe("pizza_1_extra", 600, GTValues.VHA[GTValues.MV], { circuit: 1, itemInputs: ["firmalife:food/pizza_dough", "firmalife:food/tomato_sauce", "firmalife:food/shredded_cheese", "#firmalife:foods/pizza_ingredients"], itemOutputs: ["firmalife:food/raw_pizza"], @@ -649,7 +706,7 @@ function registerTFGFoodRecipes(event) { ) }) - processorRecipe("pizza_2_extra", 600, 16, { + processorRecipe("pizza_2_extra", 600, GTValues.VHA[GTValues.MV], { circuit: 2, itemInputs: ["firmalife:food/pizza_dough", "firmalife:food/tomato_sauce", "firmalife:food/shredded_cheese", "2x #firmalife:foods/pizza_ingredients"], itemOutputs: ["firmalife:food/raw_pizza"], @@ -782,11 +839,19 @@ function registerTFGFoodRecipes(event) { }) processorRecipe("cocoa_dust", 100, 4, { + circuit: 1, itemInputs: ["firmalife:food/roasted_cocoa_beans"], itemOutputs: ["gtceu:cocoa_dust"], itemOutputProvider: TFC.isp.of("gtceu:cocoa_dust") }) + processorRecipe("cocoa_butter", 100, 4, { + circuit: 2, + itemInputs: ["firmalife:food/roasted_cocoa_beans"], + itemOutputs: ["firmalife:food/cocoa_butter"], + itemOutputProvider: TFC.isp.of("firmalife:food/cocoa_butter") + }) + processorRecipe("red_grapes", 50, 8, { itemInputs: ["firmalife:food/red_grapes"], itemOutputs: ["firmalife:food/smashed_red_grapes"], @@ -1064,27 +1129,6 @@ function registerTFGFoodRecipes(event) { .EUt(GTValues.VA[GTValues.ULV]) .duration(600) - event.recipes.gtceu.fermenter('tfg:fermenter/curdled_milk') - .inputFluids(Fluid.of('minecraft:milk', 2000)) - .itemInputs('firmalife:rennet') - .outputFluids(Fluid.of('tfc:curdled_milk', 2000)) - .duration(2400) - .EUt(16) - - event.recipes.gtceu.fermenter('tfg:fermenter/curdled_yak_milk') - .inputFluids(Fluid.of('firmalife:yak_milk', 2000)) - .itemInputs('firmalife:rennet') - .outputFluids(Fluid.of('firmalife:curdled_yak_milk', 2000)) - .duration(2400) - .EUt(16) - - event.recipes.gtceu.fermenter('tfg:fermenter/curdled_goat_milk') - .inputFluids(Fluid.of('firmalife:goat_milk', 2000)) - .itemInputs('firmalife:rennet') - .outputFluids(Fluid.of('firmalife:curdled_goat_milk', 2000)) - .duration(2400) - .EUt(16) - // GT cocoa dust compat event.recipes.gtceu.macerator('firmalife:food/cocoa_powder') .itemInputs('gtceu:cocoa_dust') @@ -1541,7 +1585,7 @@ function registerTFGFoodRecipes(event) { 'firmalife:food/butter', 'tfg:spice/allspice' ], - fluidInputs: ['tfg:light_stock 1000', 'tfg:dark_stock 1000'], + fluidInputs: ['tfg:light_stock 1000', 'tfg:rich_stock 1000'], fluidOutputs: [Fluid.of('tfg:brown_gravy', 2000)] }); @@ -1618,7 +1662,7 @@ function registerTFGFoodRecipes(event) { // Instant Mac processorRecipe('raw_instant_mac', 20 * 10, GTValues.VA[GTValues.LV], { - itemInputs: ['firmalife:food/raw_egg_noodles', '#tfg:foods/cheeses', 'create:cardboard'], + itemInputs: ['firmalife:food/raw_egg_noodles', '#tfg:foods/cheeses', '2x create:cardboard'], itemOutputs: ['2x tfg:food/raw_instant_mac'], fluidInputs: ['gtceu:polyethylene 100'], itemOutputProvider: TFC.isp.of('2x tfg:food/raw_instant_mac').copyFood() @@ -1656,7 +1700,7 @@ function registerTFGFoodRecipes(event) { event.replaceInput({id: 'firmalife:crafting/lasagna'},'firmalife:plant/oregano','tfg:spice/oregano_leaves'); event.recipes.tfc.advanced_shapeless_crafting( - TFC.itemStackProvider.of('firmalife:food/salsa').copyFood(), + TFC.itemStackProvider.of('5x firmalife:food/salsa').copyFood(), [ 'tfg:spice/cilantro_leaves', 'tfc:food/tomato', @@ -1676,87 +1720,5 @@ function registerTFGFoodRecipes(event) { }); //#endregion - //#region Machine Recipes - event.remove({id: 'gtceu:shaped/mv_food_refrigerator'}) - event.remove({id: 'gtceu:shaped/hv_food_refrigerator'}) - event.remove({id: 'gtceu:shaped/ev_food_refrigerator'}) - event.remove({id: 'gtceu:shaped/iv_food_refrigerator'}) - - event.recipes.gtceu.assembler('tfg:assembler/mv_food_refrigerator') - .itemInputs( - ChemicalHelper.get(TagPrefix.cableGtSingle, GTMaterials.Copper, 2), - ChemicalHelper.get(TagPrefix.plate, GTMaterials.Polyethylene, 2), - ChemicalHelper.get(TagPrefix.rotor, GTMaterials.Bronze, 1), - '2x gtceu:mv_electric_pump', - 'gtceu:mv_hermetic_casing', - '#gtceu:circuits/mv' - ) - .inputFluids(Fluid.of('tfg:chlorodifluoromethane', 6000)) - .itemOutputs('1x tfg:mv_food_refrigerator') - .duration(200) - .circuit(7) - .addMaterialInfo(true) - .EUt(GTValues.VA[GTValues.LV]) - - event.recipes.gtceu.assembler('tfg:assembler/hv_food_refrigerator') - .itemInputs( - ChemicalHelper.get(TagPrefix.cableGtSingle, GTMaterials.Gold, 2), - ChemicalHelper.get(TagPrefix.plate, GTMaterials.Polyethylene, 2), - ChemicalHelper.get(TagPrefix.rotor, GTMaterials.Steel, 1), - '2x gtceu:hv_electric_pump', - 'gtceu:hv_hermetic_casing', - '#gtceu:circuits/hv' - ) - .inputFluids(Fluid.of('tfg:1_1_1_2_tetrafluoroethane', 6000)) - .itemOutputs('1x tfg:hv_food_refrigerator') - .duration(200) - .circuit(7) - .addMaterialInfo(true) - .EUt(GTValues.VA[GTValues.LV]) - - event.recipes.gtceu.assembler('tfg:assembler/ev_food_refrigerator') - .itemInputs( - ChemicalHelper.get(TagPrefix.cableGtSingle, GTMaterials.Aluminium, 2), - ChemicalHelper.get(TagPrefix.plate, GTMaterials.Polyethylene, 2), - ChemicalHelper.get(TagPrefix.rotor, GTMaterials.StainlessSteel, 1), - '2x gtceu:ev_electric_pump', - 'gtceu:ev_hermetic_casing', - '#gtceu:circuits/ev' - ) - .inputFluids(Fluid.of('tfg:cryogenized_fluix', 6000)) - .itemOutputs('1x tfg:ev_food_refrigerator') - .duration(200) - .circuit(7) - .addMaterialInfo(true) - .EUt(GTValues.VA[GTValues.LV]) - - event.recipes.gtceu.assembler('tfg:assembler/iv_food_refrigerator') - .itemInputs( - ChemicalHelper.get(TagPrefix.cableGtSingle, GTMaterials.Platinum, 2), - ChemicalHelper.get(TagPrefix.plate, GTMaterials.Polyethylene, 2), - ChemicalHelper.get(TagPrefix.rotor, GTMaterials.Titanium, 1), - '2x gtceu:iv_electric_pump', - 'gtceu:iv_hermetic_casing', - '#gtceu:circuits/iv' - ) - .inputFluids(Fluid.of('tfg:solar_coolant_tier2', 6000)) - .itemOutputs('1x tfg:iv_food_refrigerator') - .duration(200) - .circuit(7) - .addMaterialInfo(true) - .EUt(GTValues.VA[GTValues.LV]) - - event.shaped('tfg:electric_greenhouse', [ - 'ABA', - 'CDC', - 'BCB' - ], { - A: '#gtceu:circuits/mv', - B: '#forge:single_cables/copper', - C: 'tfc:compost', - D: 'gtceu:steel_machine_casing' - }).id('tfg:shaped/electric_greenhouse') - - //#endregion } diff --git a/kubejs/server_scripts/tfg/food/recipes.meal_bags.js b/kubejs/server_scripts/tfg/food/recipes.meal_bags.js new file mode 100644 index 000000000..172352b7e --- /dev/null +++ b/kubejs/server_scripts/tfg/food/recipes.meal_bags.js @@ -0,0 +1,108 @@ +"use strict"; + +function registerTFGMealBagRecipes(event) { + + // Food related + event.recipes.gtceu.forming_press('tfg:forming_press/foil_pack') + .itemInputs(ChemicalHelper.get(TagPrefix.foil, GTMaterials.Aluminium, 1), ChemicalHelper.get(TagPrefix.foil, GTMaterials.Polyethylene, 1)) + .itemOutputs('1x tfg:foil_pack') + .duration(100) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.gas_pressurizer('tfg:fluid_solidifier/dry_ice') + .inputFluids(Fluid.of('gtceu:carbon_dioxide', 1000)) + .notConsumable('gtceu:block_casting_mold') + .itemOutputs('2x tfg:dry_ice') + .duration(100) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.vacuum_freezer('tfg:vacuum_freezer/liq_co2') + .inputFluids(Fluid.of('gtceu:carbon_dioxide', 1000)) + .outputFluids(Fluid.of('gtceu:liquid_carbon_dioxide', 1000)) + .duration(160) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.vacuum_freezer('tfg:vacuum_freezer/dry_ice') + .inputFluids(Fluid.of('gtceu:liquid_carbon_dioxide', 1000)) + .notConsumable('gtceu:block_casting_mold') + .itemOutputs('10x tfg:dry_ice') + .duration(60) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.fluid_heater('tfg:fluid_heater/decompress_liq_co2') + .itemInputs('1x tfg:dry_ice') + .outputFluids(Fluid.of('gtceu:carbon_dioxide', 100)) + .duration(20) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.fluid_heater('tfg:fluid_heater/decompress_dry_ice') + .inputFluids(Fluid.of('gtceu:liquid_carbon_dioxide', 100)) + .outputFluids(Fluid.of('gtceu:carbon_dioxide', 100)) + .duration(20) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.mixer('tfg:clean_foil_pack') + .itemInputs('1x tfg:used_foil_pack') + .inputFluids("#tfg:clean_water 100") + .itemOutputs('1x tfg:clean_foil_pack') + .duration(200) + .circuit(1) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.ore_washer('tfg:ore_washer/distilled/clean_foil_pack') + .itemInputs('1x tfg:used_foil_pack') + .inputFluids(Fluid.of('gtceu:distilled_water', 10)) + .itemOutputs('1x tfg:clean_foil_pack') + .duration(200) + .circuit(2) + .EUt(GTValues.VA[GTValues.ULV]) + + event.custom({ + type: "ae2:transform", + circumstance: { + type: "fluid", + tag: "tfc:water" + }, + ingredients: [ + { item: 'tfg:used_foil_pack' }], + result: { item: 'tfg:clean_foil_pack' } + }).id('tfg:ae_transform/clean_foil_pack') + + event.recipes.greate.splashing(['tfg:clean_foil_pack'], 'tfg:used_foil_pack') + .id('tfg:splashing/clean_foil_pack') + + event.shapeless('1x tfg:used_foil_pack', [ + 'tfg:food/calorie_paste' + ]).id('tfg:shapeless/emptying/calorie_paste') + + event.shapeless('1x tfg:used_foil_pack', [ + 'tfg:food/meal_bag' + ]).id('tfg:shapeless/emptying/meal_bag') + + global.FOOD_FRUIT.forEach(fruit => { + event.shapeless('1x tfg:used_foil_pack', [ + `tfg:food/freeze_dried/${fruit.name}` + ]).id(`tfg:shapeless/emptying/freeze_dried/${fruit.name}`) + }) + + // Recycling + event.recipes.gtceu.macerator('gtceu:macerator/recycling/clean_foil_pack') + .itemInputs('tfg:clean_foil_pack') + .itemOutputs( + ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Aluminium, 1), + ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Polyethylene, 1) + ) + .duration(GTMaterials.Aluminium.getMass() * 1) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/clean_foil_pack') + .itemInputs('tfg:clean_foil_pack') + .itemOutputs( + ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Aluminium, 2), + ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Ash, 1) + ) + .duration(GTMaterials.Aluminium.getMass() * 1) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/food/recipes.refrigerators.js b/kubejs/server_scripts/tfg/food/recipes.refrigerators.js new file mode 100644 index 000000000..97113c2aa --- /dev/null +++ b/kubejs/server_scripts/tfg/food/recipes.refrigerators.js @@ -0,0 +1,113 @@ +"use strict"; + +function registerTFGRefrigeratorRecipes(event) { + + //#region Machine Recipes + + event.remove({ id: 'gtceu:shaped/mv_food_refrigerator' }) + event.remove({ id: 'gtceu:shaped/hv_food_refrigerator' }) + event.remove({ id: 'gtceu:shaped/ev_food_refrigerator' }) + event.remove({ id: 'gtceu:shaped/iv_food_refrigerator' }) + + event.recipes.gtceu.assembler('tfg:assembler/mv_food_refrigerator') + .itemInputs( + ChemicalHelper.get(TagPrefix.cableGtSingle, GTMaterials.Copper, 2), + ChemicalHelper.get(TagPrefix.plate, GTMaterials.Polyethylene, 2), + ChemicalHelper.get(TagPrefix.rotor, GTMaterials.Bronze, 1), + '2x gtceu:mv_electric_pump', + 'gtceu:mv_hermetic_casing', + '#gtceu:circuits/mv' + ) + .inputFluids(Fluid.of('tfg:chlorodifluoromethane', 6000)) + .itemOutputs('1x tfg:mv_food_refrigerator') + .duration(200) + .circuit(7) + .addMaterialInfo(true) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.assembler('tfg:assembler/hv_food_refrigerator') + .itemInputs( + ChemicalHelper.get(TagPrefix.cableGtSingle, GTMaterials.Gold, 2), + ChemicalHelper.get(TagPrefix.plate, GTMaterials.Polyethylene, 2), + ChemicalHelper.get(TagPrefix.rotor, GTMaterials.Steel, 1), + '2x gtceu:hv_electric_pump', + 'gtceu:hv_hermetic_casing', + '#gtceu:circuits/hv' + ) + .inputFluids(Fluid.of('tfg:1_1_1_2_tetrafluoroethane', 6000)) + .itemOutputs('1x tfg:hv_food_refrigerator') + .duration(200) + .circuit(7) + .addMaterialInfo(true) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.assembler('tfg:assembler/ev_food_refrigerator') + .itemInputs( + ChemicalHelper.get(TagPrefix.cableGtSingle, GTMaterials.Aluminium, 2), + ChemicalHelper.get(TagPrefix.plate, GTMaterials.Polyethylene, 2), + ChemicalHelper.get(TagPrefix.rotor, GTMaterials.StainlessSteel, 1), + '2x gtceu:ev_electric_pump', + 'gtceu:ev_hermetic_casing', + '#gtceu:circuits/ev' + ) + .inputFluids(Fluid.of('tfg:cryogenized_fluix', 6000)) + .itemOutputs('1x tfg:ev_food_refrigerator') + .duration(200) + .circuit(7) + .addMaterialInfo(true) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.assembler('tfg:assembler/iv_food_refrigerator') + .itemInputs( + ChemicalHelper.get(TagPrefix.cableGtSingle, GTMaterials.Platinum, 2), + ChemicalHelper.get(TagPrefix.plate, GTMaterials.Polyethylene, 2), + ChemicalHelper.get(TagPrefix.rotor, GTMaterials.Titanium, 1), + '2x gtceu:iv_electric_pump', + 'gtceu:iv_hermetic_casing', + '#gtceu:circuits/iv' + ) + .inputFluids(Fluid.of('tfg:solar_coolant_tier2', 6000)) + .itemOutputs('1x tfg:iv_food_refrigerator') + .duration(200) + .circuit(7) + .addMaterialInfo(true) + .EUt(GTValues.VA[GTValues.LV]) + + //#endregion + + // Refrigerants + + event.recipes.gtceu.chemical_reactor('tfg:chemical_reactor/chlorodifluoromethane') + .inputFluids(Fluid.of('gtceu:chloroform', 1000), Fluid.of('gtceu:hydrofluoric_acid', 2000)) + .outputFluids(Fluid.of('tfg:chlorodifluoromethane', 1000), Fluid.of('gtceu:hydrochloric_acid', 2000)) + .duration(480) + .circuit(2) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_reactor('tfg:chemical_reactor/breakdown/chlorodifluoromethane') + .inputFluids(Fluid.of('tfg:chlorodifluoromethane', 200)) + .outputFluids(Fluid.of('gtceu:tetrafluoroethylene', 100), Fluid.of('gtceu:hydrochloric_acid', 200)) + .duration(100) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.chemical_reactor('tfg:chemical_reactor/acetylene') + .inputFluids(Fluid.of('gtceu:methane', 2000), Fluid.of('gtceu:oxygen', 3000)) + .outputFluids(Fluid.of('tfg:acetylene', 1000), Fluid.of('minecraft:water', 3000)) + .circuit(4) + .duration(120) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_reactor('tfg:chemical_reactor/1_1_1_2_tetrafluoroethane') + .inputFluids(Fluid.of('tfg:acetylene', 1000), Fluid.of('gtceu:chlorine', 4000), Fluid.of('gtceu:hydrofluoric_acid', 4000)) + .outputFluids(Fluid.of('tfg:1_1_1_2_tetrafluoroethane', 1000), Fluid.of('gtceu:hydrochloric_acid', 4000)) + .circuit(4) + .duration(480) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.cracker('tfg:cracker/isobutane') + .inputFluids(Fluid.of('gtceu:butane', 4000)) + .outputFluids(Fluid.of('tfg:isobutane', 1000), Fluid.of('gtceu:lpg', 3000)) + .circuit(4) + .duration(2400) + .EUt(GTValues.VA[GTValues.HV]) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/food/tags.food.js b/kubejs/server_scripts/tfg/food/tags.food.js new file mode 100644 index 000000000..02aa366af --- /dev/null +++ b/kubejs/server_scripts/tfg/food/tags.food.js @@ -0,0 +1,348 @@ +"use strict"; + +function registerTFGFoodItemTags(event) { + + // Crops + event.add('tfc:seeds', 'tfg:sunflower_seeds') + event.add('tfc:seeds', 'tfg:rapeseed_seeds') + event.add('tfc:seeds', 'tfg:flax_seeds') + + event.add('tfc:compost_greens_high', 'tfg:rapeseed_product') + event.add('tfc:compost_greens_high', 'tfg:sunflower_product') + event.add('tfc:compost_greens_high', 'tfg:flax_product') + event.add('tfc:compost_greens_high', 'tfg:lunar_chorus_flower') + + event.add("tfg:sugars", "minecraft:sugar"); + event.add("tfg:sugars", "afc:birch_sugar"); + event.add("tfg:sugars", "afc:maple_sugar"); + + const RAW_MEATS = [ + 'tfg:food/raw_birt', + 'tfg:food/raw_crawlermari', + 'tfg:food/raw_limpet' + ] + RAW_MEATS.forEach(meat => { + event.add('tfc:foods', meat) + event.add('tfc:foods/meats', meat) + event.add('tfc:foods/raw_meats', meat) + }) + + const COOKED_MEATS = [ + 'tfg:food/cooked_birt', + 'tfg:food/cooked_crawlermari', + 'tfg:food/cooked_limpet' + ] + COOKED_MEATS.forEach(meat => { + event.add('tfc:foods', meat) + event.add('tfc:foods/meats', meat) + event.add('tfc:foods/cooked_meats', meat) + }) + + //These tags are used to add the tooltips and for searchability + global.COOLING_FOODS.forEach(food => { event.add('tfg:cooling_foods', food) }) + + event.add('tfg:cooling_foods_strong', 'tfg:food/ice_soup') + + global.WARMING_FOODS.forEach(food => { event.add('tfg:warming_foods', food) }) + + //jam sandwhich stuff + const usable_in_jam_sandwich = Ingredient.of('#tfc:foods/usable_in_jam_sandwich').itemIds.toArray().map(String); + const preserves = Ingredient.of('#tfc:foods/preserves').itemIds.toArray().map(String); + + const usable_in_jam_sandwich_2 = usable_in_jam_sandwich.filter(item => !preserves.includes(item)); + + usable_in_jam_sandwich_2.forEach(item => { + event.add('tfc:foods/usable_in_jam_sandwich_2', item); + }); + + event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_sniffer_beef') + event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_wraptor') + event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_springling_collar') + event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_walker_steak') + event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_glider_wings') + event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_whole_soarer') + event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_crusher_meat') + event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_goober_meat') + event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_cruncher_ribs') + event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_surfer_steak') + event.add('tfg:raw_dinosaur_meat', 'wan_ancient_beasts:raw_ancient_meat') + + /** + * List of items that can make light stock. + * @type {string[]} + */ + const makesLightStock = [ + 'tfc:food/chicken', + 'tfc:food/cooked_chicken', + 'tfc:food/quail', + 'tfc:food/cooked_quail', + 'tfc:food/pheasant', + 'tfc:food/cooked_pheasant', + 'tfc:food/grouse', + 'tfc:food/cooked_grouse', + 'tfc:food/turkey', + 'tfc:food/cooked_turkey', + 'tfc:food/peafowl', + 'tfc:food/cooked_peafowl', + 'tfc:food/rabbit', + 'tfc:food/cooked_rabbit', + 'tfc:food/duck', + 'tfc:food/cooked_duck', + 'tfg:food/raw_birt', + 'tfg:food/cooked_birt', + 'tfg:food/raw_moon_rabbit', + 'tfg:food/cooked_moon_rabbit', + 'tfg:food/raw_wraptor', + 'tfg:food/cooked_wraptor', + 'tfg:food/raw_glider_wings', + 'tfg:food/cooked_glider_wings', + 'tfg:food/raw_whole_soarer', + 'tfg:food/cooked_whole_soarer' + ]; + makesLightStock.forEach(item => { + event.add('tfg:foods/makes_light_stock', item); + }); + + /** + * List of items that can make rich stock. + * @type {string[]} + */ + const makesRichStock = [ + 'tfc:food/beef', + 'tfc:food/cooked_beef', + 'tfc:food/mutton', + 'tfc:food/cooked_mutton', + 'tfc:food/bear', + 'tfc:food/cooked_bear', + 'tfc:food/horse_meat', + 'tfc:food/cooked_horse_meat', + 'tfc:food/venison', + 'tfc:food/cooked_venison', + 'tfc:food/chevon', + 'tfc:food/cooked_chevon', + 'tfc:food/gran_feline', + 'tfc:food/cooked_gran_feline', + 'tfc:food/turtle', + 'tfc:food/cooked_turtle', + 'tfc:food/camelidae', + 'tfc:food/cooked_camelidae', + 'tfg:food/raw_glacian_mutton', + 'tfg:food/cooked_glacian_mutton', + 'tfg:food/raw_sniffer_beef', + 'tfg:food/cooked_sniffer_beef', + 'tfg:food/raw_walker_steak', + 'tfg:food/cooked_walker_steak', + 'tfg:food/raw_crusher_meat', + 'tfg:food/cooked_crusher_meat', + 'wan_ancient_beasts:raw_ancient_meat', + 'wan_ancient_beasts:cooked_ancient_meat' + ]; + makesRichStock.forEach(item => { + event.add('tfg:foods/makes_rich_stock', item); + }); + + /** + * @type {string[]} - List of cheese curd item IDs. + */ + const cheeseCurds = [ + 'firmalife:food/yak_curd', + 'firmalife:food/goat_curd', + 'firmalife:food/milk_curd', + 'tfc_gurman:ox_curd', + 'tfc_gurman:sheep_curd', + 'tfc_gurman:alpaca_curd' + ]; + cheeseCurds.forEach(item => { + event.add('tfg:foods/cheese_curds', item); + }); + + /** + * @type {string[]} - List of item tags and item IDs that can be used on burgers. + */ + const usable_in_burgers = [ + '#tfc:foods/vegetables', + 'firmalife:food/cooked_bacon', + 'tfc:food/cooked_egg', + 'firmalife:food/tofu' + ]; + usable_in_burgers.forEach(item => { + event.add('tfg:foods/usable_in_burgers', item); + }); + + /** + * @type {string[]} - List of cheese tags and item IDs that can be used on a cheeseburger. + */ + const cheeses = [ + '#firmalife:foods/cheeses', + 'tfg:food/slice_of_cheese', + 'firmalife:food/shredded_cheese' + ]; + cheeses.forEach(item => { + event.add('tfg:foods/cheeses', item); + }); + + /** + * @type {string[]} - List of item IDs that can be used as burger meats. + */ + const burgerMeats = [ + 'tfc:food/beef', + 'tfc:food/turkey', + 'tfc:food/venison', + 'tfg:food/raw_sniffer_beef', + 'tfg:food/raw_crusher_meat', + 'wan_ancient_beasts:raw_ancient_meat' + ]; + burgerMeats.forEach(item => { + event.add('tfg:foods/burger_meats', item); + }); + + // Spice tags + global.SPICES.forEach(spice => { + event.add('tfg:foods/spices', spice.product); + event.add('tfg:foods/spice_plants', spice.plant); + }); + + /** + * @type {string[]} - List of item tags and item IDs that are allowed to be used in oatmeal. + */ + const usable_in_oatmeal = [ + '#tfc:foods/fruits', + 'tfc:food/oat_grain', + '#firmalife:foods/chocolate' + ]; + usable_in_oatmeal.forEach(item => { + event.add('tfg:foods/usable_in_oatmeal', item); + }); + + /** + * @type {string[]} - List of citrus fruit item IDs. + */ + const citrus_fruits = [ + 'tfc:food/orange', + 'tfc:jar/orange_unsealed', + 'tfg:food/freeze_dried/orange', + 'tfc:food/lemon', + 'tfc:jar/lemon_unsealed', + 'tfg:food/freeze_dried/lemon', + 'minecraft:glow_berries', + 'tfg:food/freeze_dried/glow_berries' + ]; + citrus_fruits.forEach(item => { + event.add('tfg:foods/citrus_fruits', item); + }); + + /** + * List of item tags and item IDs that are allowed to be used in a meal bag. + * @type {string[]} + */ + const usable_in_meal_bag = [ + '#tfc:foods/meats', + '#tfc:foods/grains', + '#tfc:foods/vegetables', + '#tfc:foods/fruits', + '#tfc:foods/dairy', + '#tfc:foods/preserves', + '#firmalife:foods/chocolate', + '#tfcchannelcasting:foods/chocolate_sweet', + 'firmalife:food/sugar_cookie', + 'firmalife:food/chocolate_chip_cookie', + 'firmalife:food/vanilla_ice_cream', + 'firmalife:food/strawberry_ice_cream', + 'firmalife:food/chocolate_ice_cream', + 'tfc:food/cooked_egg', + 'tfc:food/boiled_egg', + 'firmalife:food/pickled_egg', + 'tfc:food/cooked_rice', + 'firmalife:food/cooked_pasta', + 'firmalife:food/pasta_with_tomato_sauce', + 'firmalife:food/cooked_rice_noodles', + 'firmalife:food/tortilla_chips', + 'firmalife:food/shredded_cheese', + 'firmalife:food/salsa', + 'firmalife:food/tomato_sauce', + 'tfg:roasted_sunflower_seeds', + 'tfg:food/cooked_dino_nugget', + 'firmalife:food/toast', + 'firmalife:food/toast_with_butter', + 'firmalife:food/toast_with_jam', + 'firmalife:food/butter', + 'tfc_gurman:adjika', + 'tfc_gurman:tzatziki', + 'tfc_gurman:falafel', + 'tfc_gurman:hummus', + 'tfc_gurman:sauerkraut', + 'tfc_gurman:bratwurst' + ]; + usable_in_meal_bag.forEach(item => { + event.add('tfg:foods/usable_in_meal_bag', item); + }); + event.add('tfg:foil_packs', 'tfg:foil_pack'); + event.add('tfg:foil_packs', 'tfg:clean_foil_pack') + + event.add('tfg:solid_fats', 'firmalife:food/butter') + event.add('tfg:solid_fats', 'tfc:blubber') + + // Space foods + event.add('tfc:foods', 'minecraft:red_mushroom') + event.add('tfc:foods', 'minecraft:brown_mushroom') + event.add('tfc:foods', 'minecraft:glow_berries') + event.add('tfc:foods', 'minecraft:chorus_fruit') + event.add('tfc:foods', 'minecraft:popped_chorus_fruit') + + event.add('tfc:foods/vegetables', 'minecraft:red_mushroom') + event.add('tfc:foods/vegetables', 'minecraft:brown_mushroom') + event.add('tfc:foods/fruits', 'minecraft:glow_berries') + event.add('tfc:foods/fruits', 'minecraft:chorus_fruit') + event.add('tfc:foods/fruits', 'minecraft:popped_chorus_fruit') + + event.add('beneath:usable_in_juicer', 'minecraft:glow_berries') + event.add('beneath:usable_in_juicer', 'minecraft:chorus_fruit') + event.add('beneath:usable_in_juicer', 'minecraft:red_mushroom') + event.add('beneath:usable_in_juicer', 'minecraft:brown_mushroom') + + event.add('tfc:foods/usable_in_soup', 'minecraft:red_mushroom') + event.add('tfc:foods/usable_in_soup', 'minecraft:brown_mushroom') + event.add('tfc:foods/usable_in_soup', 'minecraft:glow_berries') + event.add('tfc:foods/usable_in_soup', 'minecraft:chorus_fruit') + event.add('tfc:foods/usable_in_soup', 'minecraft:popped_chorus_fruit') + + // Make eggs not useless + event.add('tfc:foods/usable_in_salad', 'firmalife:food/pickled_egg') + event.add("tfc:foods/usable_in_salad", "tfc:food/cooked_egg"); + event.add("tfc:foods/usable_in_salad", "tfc:food/boiled_egg"); + event.add("tfc:foods/usable_in_jam_sandwich", "tfc:food/cooked_egg"); + event.add("tfc:foods/usable_in_jam_sandwich", "tfc:food/boiled_egg"); + event.add("tfc:foods/usable_in_sandwich", "tfc:food/cooked_egg"); + event.add("tfc:foods/usable_in_sandwich", "tfc:food/boiled_egg"); + + event.add('tfc:foods/usable_in_salad', 'minecraft:red_mushroom') + event.add('tfc:foods/usable_in_salad', 'minecraft:brown_mushroom') + event.add('tfc:foods/usable_in_salad', 'minecraft:glow_berries') + event.add('tfc:foods/usable_in_salad', 'minecraft:chorus_fruit') + event.add('tfc:foods/usable_in_salad', 'minecraft:popped_chorus_fruit') + + event.add('tfc:rabbit_food', 'minecraft:chorus_fruit') + event.add('tfc:rabbit_food', 'minecraft:popped_chorus_fruit') + + event.add('tfc:foods', 'ad_astra:cheese') + event.add('tfc:foods/dairy', 'ad_astra:cheese') + event.add('tfc:foods/usable_in_sandwich', 'ad_astra:cheese') + event.add('tfc:foods/usable_in_jam_sandwich', 'ad_astra:cheese') + event.add('tfc:foods/usable_in_jam_sandwich_2', 'ad_astra:cheese') + event.add('firmalife:foods/cheeses', 'ad_astra:cheese') +} + +function registerTFGFoodBlockTags(event) { + //crop stuff + event.add('tfc:crops', 'tfg:rapeseed') + event.add('tfc:mineable_with_sharp_tool', 'tfg:rapeseed') + + event.add('tfc:crops', 'tfg:sunflower') + event.add('tfc:mineable_with_sharp_tool', 'tfg:sunflower') + + event.add('tfc:crops', 'tfg:flax') + event.add('tfc:mineable_with_sharp_tool', 'tfg:flax') + + event.add('ad_astra:destroyed_in_space', '#tfc:wild_fruits') + event.add('ad_astra:destroyed_in_space', '#minecraft:saplings') +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/json_tool.armor_trim.js b/kubejs/server_scripts/tfg/json_tool.armor_trim.js index 4f66e02ce..35346486e 100644 --- a/kubejs/server_scripts/tfg/json_tool.armor_trim.js +++ b/kubejs/server_scripts/tfg/json_tool.armor_trim.js @@ -69,7 +69,7 @@ const materials = [ // #region Tags // Assigns trim_materials tag to items registered above -function registerTFGTrimTags(event) { +function registerTFGTrimItemTags(event) { event.removeAll('minecraft:trim_materials') materials.forEach(material => { event.add('minecraft:trim_materials', material.itemName) diff --git a/kubejs/server_scripts/tfg/machines/recipes.casings.js b/kubejs/server_scripts/tfg/machines/recipes.casings.js new file mode 100644 index 000000000..08dcf5c8a --- /dev/null +++ b/kubejs/server_scripts/tfg/machines/recipes.casings.js @@ -0,0 +1,182 @@ +"use strict"; + +function registerTFGCasingRecipes(event) { + + event.recipes.gtceu.assembler('steel_machine_casing') + .itemInputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 4)) + .itemOutputs('gtceu:steel_machine_casing') + .circuit(6) + .duration(2.5 * 20) + .EUt(16) + + // Railgun + global.GTCEU_SUPERCONDUCTORS.forEach((type, index) => { + const multiplier = index + 1 + + event.recipes.gtceu.assembler(`tfg:assembler/superconductor_coil_small_from_${type.name}`) + .itemInputs( + ChemicalHelper.get(TagPrefix.plate, GTMaterials.HSLASteel, 4), + ChemicalHelper.get(TagPrefix.rod, GTMaterials.Steel, 2), + ChemicalHelper.get(TagPrefix.rod, GTMaterials.SteelMagnetic, 1), + ChemicalHelper.get(TagPrefix.wireFine, GTMaterials[type.materialId], 4) + ) + .inputFluids(Fluid.of('gtceu:epoxy', 144)) + .itemOutputs(Item.of('tfg:superconductor_coil_small', 4 * multiplier)) + .circuit(4) + .duration(400) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.assembler(`tfg:assembler/superconductor_coil_large_from_${type.name}`) + .itemInputs( + ChemicalHelper.get(TagPrefix.plate, GTMaterials.HSLASteel, 4), + ChemicalHelper.get(TagPrefix.rod, GTMaterials.Steel, 2), + ChemicalHelper.get(TagPrefix.rod, GTMaterials.SteelMagnetic, 1), + ChemicalHelper.get(TagPrefix.wireGtSingle, GTMaterials[type.materialId], 4)) + .inputFluids(Fluid.of('gtceu:epoxy', 144)) + .itemOutputs(Item.of('tfg:superconductor_coil_large', 4 * multiplier)) + .circuit(7) + .duration(600) + .EUt(GTValues.VA[GTValues.MV]) + }) + + event.recipes.gtceu.assembler('tfg:assembler/electromagnetic_accelerator') + .itemInputs( + '2x #forge:plates/desh', + 'gtceu:mv_voltage_coil', + '5x tfg:dry_ice', + 'gtceu:nonconducting_casing' + ) + .inputFluids(Fluid.of('gtceu:blue_alloy', 288)) + .itemOutputs('6x tfg:electromagnetic_accelerator') + .circuit(4) + .duration(800) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.assembler('tfg:assembler/machine_casing_aluminium_plated_steel') + .itemInputs( + ChemicalHelper.get(TagPrefix.plate, GTMaterials.Aluminium, 6), + ChemicalHelper.get(TagPrefix.frameGt, GTMaterials.Steel, 1) + ) + .inputFluids(Fluid.of('gtceu:silicon', 72)) + .itemOutputs('2x tfg:machine_casing_aluminium_plated_steel') + .circuit(6) + .duration(20 * (2.5)) + .EUt(GTValues.VH[GTValues.LV]) + + // Solar + event.recipes.gtceu.assembler('basic_solar_casing') + .itemInputs('gtceu:steel_machine_casing', 'tfg:photo_cell_t1') + .itemOutputs('8x tfg:casings/machine_casing_blue_solar_panel') + .inputFluids(Fluid.of('gtceu:soldering_alloy', 288)) + .circuit(6) + .duration(2.5 * 20) + .EUt(16) + + event.recipes.gtceu.assembler('advanced_solar_casing') + .itemInputs('8x tfg:casings/machine_casing_blue_solar_panel', 'ad_astra:photovoltaic_etrium_cell') + .itemOutputs('8x tfg:casings/machine_casing_green_solar_panel') + .inputFluids(Fluid.of('gtceu:soldering_alloy', 288)) + .circuit(6) + .duration(2.5 * 20) + .EUt(16) + + event.recipes.gtceu.assembler('elite_solar_casing') + .itemInputs('8x tfg:casings/machine_casing_green_solar_panel', 'ad_astra:photovoltaic_vesnium_cell') + .itemOutputs('8x tfg:casings/machine_casing_red_solar_panel') + .inputFluids(Fluid.of('gtceu:soldering_alloy', 288)) + .circuit(6) + .duration(2.5 * 20) + .EUt(16) + + event.recipes.gtceu.assembler('tfg:reflector_from_lens') + .itemInputs( + '24x #forge:lenses', + ChemicalHelper.get(TagPrefix.frameGt, GTMaterials.BlackSteel, 1) + ) + .inputFluids(Fluid.of('gtceu:silver', 1296)) + .itemOutputs('1x tfg:reflector') + .circuit(6) + .duration(20 * (60)) + .EUt(GTValues.VH[GTValues.HV]) + + event.recipes.gtceu.assembler('tfg:reflector_from_inr') + .itemInputs( + '1x gtceu:neutron_reflector', + ChemicalHelper.get(TagPrefix.frameGt, GTMaterials.BlackSteel, 1) + ) + .itemOutputs('2x tfg:reflector') + .circuit(9) + .duration(20 * (20)) + .EUt(GTValues.VH[GTValues.MV]) + + event.recipes.gtceu.assembler('tfg:reflector_from_certus') + .itemInputs( + ChemicalHelper.get(TagPrefix.plate, GTMaterials.CertusQuartz, 12), + ChemicalHelper.get(TagPrefix.frameGt, GTMaterials.BlackSteel, 1) + ) + .inputFluids(Fluid.of('gtceu:silver', 488)) + .itemOutputs('1x tfg:reflector') + .circuit(6) + .dimension('ad_astra:moon') + .duration(20 * (60)) + .EUt(GTValues.VH[GTValues.MV]) + + // Moon + event.recipes.gtceu.assembler('iron_desh_casing') + .itemInputs(ChemicalHelper.get(TagPrefix.plate, GTMaterials.Steel, 6), 'gtceu:desh_frame') + .itemOutputs('2x tfg:casings/machine_casing_iron_desh') + .circuit(6) + .duration(2.5 * 20) + .EUt(16) + + // Evaporation + event.recipes.gtceu.assembler('tfg:casings/machine_casing_stainless_evaporation') + .itemInputs('gtceu:clean_machine_casing', '4x gtceu:annealed_copper_double_wire') + .inputFluids(Fluid.of('gtceu:polyvinyl_chloride', 288)) + .itemOutputs('tfg:casings/machine_casing_stainless_evaporation') + .circuit(6) + .duration(2.5 * 20) + .EUt(GTValues.VA[GTValues.HV]) + + // Ostrum Linear Acclerator + event.recipes.gtceu.assembler('tfg:casings/machine_casing_mars') + .itemInputs('gtceu:clean_machine_casing', '4x #forge:double_wires/kanthal') + .inputFluids(Fluid.of('gtceu:polybenzimidazole', 288)) + .itemOutputs('tfg:casings/machine_casing_mars') + .circuit(6) + .duration(2.5 * 20) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.assembler('gtceu:atomic_casing') + .itemInputs('4x #forge:dense_plates/lead', '2x #forge:plates/rtm_alloy', '#forge:frames/titanium') + .inputFluids(Fluid.of('gtceu:polyvinyl_butyral', 288)) + .itemOutputs('2x gtceu:atomic_casing') + .circuit(6) + .duration(2.5 * 20) + .EUt(GTValues.VA[GTValues.HV]) + + // Vacuum Intake + event.shaped('tfg:casings/machine_casing_vacuum_engine_intake', [ + 'USU', + 'WZW', + 'UTU' + ], { + S: '#forge:tools/hammers', + T: '#forge:tools/wrenches', + W: '#forge:rotors/ultimet', + U: 'gtceu:ultimet_normal_item_pipe', + Z: 'gtceu:inert_machine_casing' + }).id('tfg:shaped/casing_machine_casing_vacuum_engine_intake') + + event.recipes.gtceu.assembler('tfg:casings/machine_casing_vacuum_engine_intake') + .itemInputs( + '2x #forge:rotors/ultimet', + '4x gtceu:ultimet_normal_item_pipe', + '1x gtceu:inert_machine_casing') + .itemOutputs('tfg:casings/machine_casing_vacuum_engine_intake') + .duration(50) + .EUt(GTValues.VH[GTValues.LV]) + .circuit(2) + + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/machines/recipes.components.js b/kubejs/server_scripts/tfg/machines/recipes.components.js new file mode 100644 index 000000000..5f9746144 --- /dev/null +++ b/kubejs/server_scripts/tfg/machines/recipes.components.js @@ -0,0 +1,254 @@ +"use strict"; + +function registerTFGElectronicComponentsRecipes(event) { + + // Electron tubes + event.shaped('1x create:electron_tube', [ + 'FAG', + 'BCB', + 'DED' + ], { + A: 'gtceu:glass_tube', + B: '#forge:bolts/steel', + C: 'gtceu:wood_plate', + D: 'gtceu:red_alloy_single_wire', + E: '#forge:plates/wrought_iron', + F: '#forge:tools/screwdrivers', + G: '#forge:tools/wire_cutters' + }).id('tfg:create/shaped/electron_tube') + + event.recipes.createSequencedAssembly([ + '2x create:electron_tube', + ], 'gtceu:wood_plate', [ + event.recipes.createDeploying('tfg:unfinished_electron_tube', ['tfg:unfinished_electron_tube', '#forge:plates/wrought_iron']), + event.recipes.createDeploying('tfg:unfinished_electron_tube', ['tfg:unfinished_electron_tube', 'gtceu:red_alloy_single_wire']), + event.recipes.createDeploying('tfg:unfinished_electron_tube', ['tfg:unfinished_electron_tube', 'gtceu:red_alloy_single_wire']), + event.recipes.createDeploying('tfg:unfinished_electron_tube', ['tfg:unfinished_electron_tube', 'gtceu:glass_tube']), + ]).transitionalItem('tfg:unfinished_electron_tube').loops(1).id('tfg:create/sequenced_assembly/electron_tube') + + event.recipes.gtceu.assembler('create:electron_tube') + .itemInputs('#forge:plates/wrought_iron', 'gtceu:glass_tube', '2x gtceu:red_alloy_single_wire') + .itemOutputs('2x create:electron_tube') + .duration(50) + .EUt(7) + .circuit(14) + + event.shaped('4x create:electron_tube', [ + 'FAG', + 'DCD' + ], { + A: 'gtceu:glass_tube', + C: 'gtceu:plastic_circuit_board', + D: 'gtceu:red_alloy_single_wire', + F: '#forge:tools/screwdrivers', + G: '#forge:tools/wire_cutters' + }).id('tfg:create/shaped/electron_tube2') + + event.recipes.gtceu.assembler('create:electron_tube2') + .itemInputs('gtceu:plastic_circuit_board', 'gtceu:glass_tube', '2x gtceu:red_alloy_single_wire') + .itemOutputs('4x create:electron_tube') + .duration(50) + .EUt(7) + + event.shaped('4x create:electron_tube', [ + ' A ', + ' B ', + ' C ' + ], { + A: '#forge:tools/screwdrivers', + B: 'gtceu:nand_chip', + C: 'gtceu:plastic_circuit_board' + }).id('tfg:create/shaped/electron_tube3') + + event.recipes.gtceu.assembler('create:electron_tube3') + .itemInputs('gtceu:plastic_circuit_board', 'gtceu:nand_chip') + .itemOutputs('4x create:electron_tube') + .duration(50) + .EUt(7) + + // Vacuum Tubes + event.remove({ id: 'gtceu:shaped/vacuum_tube' }) + event.replaceInput({ id: 'gtceu:assembler/vacuum_tube_plain' }, 'gtceu:steel_bolt', 'gtceu:resin_circuit_board') + event.replaceInput({ id: 'gtceu:assembler/vacuum_tube_red_alloy' }, 'gtceu:steel_bolt', 'gtceu:resin_circuit_board') + event.replaceInput({ id: 'gtceu:assembler/vacuum_tube_red_alloy_annealed' }, 'gtceu:steel_bolt', 'gtceu:resin_circuit_board') + + event.recipes.createSequencedAssembly([ + 'gtceu:vacuum_tube', + ], 'gtceu:resin_circuit_board', [ + event.recipes.createDeploying('tfg:unfinished_vacuum_tube', ['tfg:unfinished_vacuum_tube', '#forge:bolts/steel']), + event.recipes.createDeploying('tfg:unfinished_vacuum_tube', ['tfg:unfinished_vacuum_tube', 'gtceu:copper_single_wire']), + event.recipes.createDeploying('tfg:unfinished_vacuum_tube', ['tfg:unfinished_vacuum_tube', 'gtceu:copper_single_wire']), + event.recipes.createDeploying('tfg:unfinished_vacuum_tube', ['tfg:unfinished_vacuum_tube', 'gtceu:glass_tube']), + event.custom({ type: 'vintageimprovements:vacuumizing', ingredients: [{ item: 'tfg:unfinished_vacuum_tube' }], results: [{ item: 'tfg:unfinished_vacuum_tube' }], processingTime: 80 }) + ]).transitionalItem('tfg:unfinished_vacuum_tube').loops(1).id('tfg:gtceu/sequenced_assembly/vacuum_tube') + + // ULV Coil + event.recipes.createSequencedAssembly([ + 'gtceu:ulv_voltage_coil', + ], 'gtceu:magnetic_iron_rod', [ + event.recipes.createDeploying('gtceu:magnetic_iron_rod', ['gtceu:magnetic_iron_rod', '#forge:fine_wires/lead']) + ]).transitionalItem('gtceu:magnetic_iron_rod').loops(32).id('tfg:sequenced_assembly/ulv_voltage_coil') + + // LV basic circuit + event.remove({ id: 'gtceu:shaped/electronic_circuit_lv' }) + + event.recipes.createSequencedAssembly([ + 'gtceu:basic_electronic_circuit', + ], 'gtceu:resin_printed_circuit_board', [ + event.recipes.createDeploying('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', 'gtceu:resistor']), + event.recipes.createDeploying('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', 'gtceu:resistor']), + event.recipes.createDeploying('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', 'gtceu:vacuum_tube']), + event.recipes.createDeploying('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', 'gtceu:vacuum_tube']), + event.recipes.createDeploying('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', 'create:electron_tube']), + event.recipes.createFilling('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', Fluid.of('gtceu:glue', 50)]), + event.recipes.createDeploying('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', '#forge:plates/steel']), + ]).transitionalItem('tfg:unfinished_basic_electronic_circuit').loops(1).id('tfg:gtceu/sequenced_assembly/basic_electronic_circuit') + + // MV basic circuit + event.remove({ id: 'gtceu:shaped/electronic_circuit_mv' }) + + event.recipes.createSequencedAssembly([ + 'gtceu:good_electronic_circuit', + ], 'gtceu:phenolic_printed_circuit_board', [ + event.recipes.createDeploying('tfg:unfinished_good_electronic_circuit', ['tfg:unfinished_good_electronic_circuit', 'gtceu:diode']), + event.recipes.createDeploying('tfg:unfinished_good_electronic_circuit', ['tfg:unfinished_good_electronic_circuit', 'gtceu:diode']), + event.recipes.createDeploying('tfg:unfinished_good_electronic_circuit', ['tfg:unfinished_good_electronic_circuit', '#forge:single_wires/copper']), + event.recipes.createDeploying('tfg:unfinished_good_electronic_circuit', ['tfg:unfinished_good_electronic_circuit', '#forge:single_wires/copper']), + event.recipes.createDeploying('tfg:unfinished_good_electronic_circuit', ['tfg:unfinished_good_electronic_circuit', 'gtceu:basic_electronic_circuit']), + event.recipes.createDeploying('tfg:unfinished_good_electronic_circuit', ['tfg:unfinished_good_electronic_circuit', 'gtceu:basic_electronic_circuit']), + event.recipes.createDeploying('tfg:unfinished_good_electronic_circuit', ['tfg:unfinished_good_electronic_circuit', 'gtceu:basic_electronic_circuit']), + event.recipes.createDeploying('tfg:unfinished_good_electronic_circuit', ['tfg:unfinished_good_electronic_circuit', '#forge:plates/steel']), + ]).transitionalItem('tfg:unfinished_good_electronic_circuit').loops(1).id('tfg:gtceu/sequenced_assembly/good_electronic_circuit') + + // Vitrified Pearl + event.recipes.gtceu.shaped('gtceu:mv_field_generator', [ + 'ABA', + 'CDC', + 'ABA' + ], { + A: ChemicalHelper.get(TagPrefix.wireGtQuadruple, GTMaterials.MagnesiumDiboride, 1), + B: ChemicalHelper.get(TagPrefix.plate, GTMaterials.Aluminium, 1), + C: '#gtceu:circuits/mv', + D: 'tfg:vitrified_pearl' + }).addMaterialInfo().id('gtceu:shaped/field_generator_mv') + + event.recipes.gtceu.assembler('field_generator_mv') + .itemInputs('tfg:vitrified_pearl', '2x #forge:plates/aluminium', '2x #gtceu:circuits/mv', '4x #forge:quadruple_wires/magnesium_diboride') + .itemOutputs('gtceu:mv_field_generator') + .duration(100) + .EUt(30) + + // Cryo Fluix Pearl + event.replaceInput({ id: 'gtceu:assembler/field_generator_hv' }, 'gtceu:quantum_eye', 'tfg:cryo_fluix_pearl') + + event.recipes.gtceu.shaped('gtceu:hv_field_generator', [ + 'ABA', + 'CDC', + 'ABA' + ], { + A: ChemicalHelper.get(TagPrefix.wireGtQuadruple, GTMaterials.MercuryBariumCalciumCuprate, 1), + B: ChemicalHelper.get(TagPrefix.plate, GTMaterials.StainlessSteel, 1), + C: '#gtceu:circuits/hv', + D: 'tfg:cryo_fluix_pearl' + }).addMaterialInfo().id('gtceu:shaped/field_generator_hv') + + // Change recipes to want EV circuit instead of IV + event.replaceInput({ id: 'gtceu:shaped/large_combustion_engine' }, '#gtceu:circuits/iv', '#gtceu:circuits/ev') + event.replaceInput({ id: 'gtceu:shaped/nano_chestplate_advanced' }, '#gtceu:circuits/iv', '#gtceu:circuits/ev') + event.replaceInput({ id: 'gtceu:assembler/ev_large_miner' }, '#gtceu:circuits/iv', '#gtceu:circuits/ev') + + // Nano wafer + event.remove({ id: 'gtceu:chemical_reactor/nano_cpu_wafer' }) + event.remove({ id: 'gtceu:large_chemical_reactor/nano_cpu_wafer' }) + + event.recipes.gtceu.chemical_reactor('tfg:nano_cpu_wafer') + .inputFluids(Fluid.of('gtceu:tritiated_water', 576)) + .itemInputs('gtceu:cpu_wafer', '16x gtceu:carbon_fibers') + .itemOutputs('gtceu:nano_cpu_wafer') + .duration(20*60) + .EUt(GTValues.VA[GTValues.EV]) + .cleanroom(CleanroomType.CLEANROOM) + + // Change components of IV mainframe to nano chip + event.remove({ id: 'gtceu:circuit_assembler/mainframe_iv_asmd_soldering_alloy'}) + event.remove({ id: 'gtceu:circuit_assembler/mainframe_iv'}) + event.remove({ id: 'gtceu:circuit_assembler/mainframe_iv_soldering_alloy'}) + event.remove({ id: 'gtceu:circuit_assembler/mainframe_iv_asmd'}) + + event.recipes.gtceu.circuit_assembler('tfg:circuit_assembler/mainframe_iv') + .itemInputs('2x gtceu:aluminium_frame', '2x gtceu:micro_processor_computer', '8x #gtceu:inductors', '16x #gtceu:capacitors', 'gtceu:nano_cpu_chip', '16x gtceu:annealed_copper_single_wire') + .inputFluids(Fluid.of('gtceu:tin', 576)) + .itemOutputs('gtceu:micro_processor_mainframe') + .duration(20 * 40) + .EUt(GTValues.VA[GTValues.HV]) + .cleanroom(CleanroomType.CLEANROOM) + + event.recipes.gtceu.circuit_assembler('tfg:circuit_assembler/mainframe_iv_soldering_alloy') + .itemInputs('2x gtceu:aluminium_frame', '2x gtceu:micro_processor_computer', '8x #gtceu:inductors', '16x #gtceu:capacitors', 'gtceu:nano_cpu_chip', '16x gtceu:annealed_copper_single_wire') + .inputFluids(Fluid.of('gtceu:soldering_alloy', 288)) + .itemOutputs('gtceu:micro_processor_mainframe') + .duration(20 * 40) + .EUt(GTValues.VA[GTValues.HV]) + .cleanroom(CleanroomType.CLEANROOM) + + event.recipes.gtceu.circuit_assembler('tfg:circuit_assembler/mainframe_iv_asmd') + .itemInputs('2x gtceu:aluminium_frame', '2x gtceu:micro_processor_computer', '2x gtceu:advanced_smd_inductor', '4x gtceu:advanced_smd_capacitor', 'gtceu:nano_cpu_chip', '16x gtceu:annealed_copper_single_wire') + .inputFluids(Fluid.of('gtceu:tin', 576)) + .itemOutputs('gtceu:micro_processor_mainframe') + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.HV]) + .cleanroom(CleanroomType.CLEANROOM) + + event.recipes.gtceu.circuit_assembler('tfg:circuit_assembler/mainframe_iv_asmd_soldering_alloy') + .itemInputs('2x gtceu:aluminium_frame', '2x gtceu:micro_processor_computer', '2x gtceu:advanced_smd_inductor', '4x gtceu:advanced_smd_capacitor', 'gtceu:nano_cpu_chip', '16x gtceu:annealed_copper_single_wire') + .inputFluids(Fluid.of('gtceu:soldering_alloy', 288)) + .itemOutputs('gtceu:micro_processor_mainframe') + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.HV]) + .cleanroom(CleanroomType.CLEANROOM) + + // Quantum Eye + event.replaceInput({ id: 'gtceu:assembler/field_generator_ev' }, 'minecraft:nether_star', 'gtceu:quantum_eye') + + event.recipes.gtceu.shaped('gtceu:ev_field_generator', [ + 'ABA', + 'CDC', + 'ABA' + ], { + A: ChemicalHelper.get(TagPrefix.wireGtQuadruple, GTMaterials.UraniumTriplatinum, 1), + B: ChemicalHelper.get(TagPrefix.plateDouble, GTMaterials.Titanium, 1), + C: '#gtceu:circuits/ev', + D: 'gtceu:quantum_eye' + }).addMaterialInfo().id('gtceu:shaped/field_generator_ev') + + event.remove({ id: 'gtceu:chemical_bath/quantum_eye' }) + event.recipes.gtceu.chemical_bath('tfg:quantum_eye') + .itemInputs('tfg:cryo_fluix_pearl') + .inputFluids(Fluid.of('gtceu:radon', 250)) + .itemOutputs('gtceu:quantum_eye') + .duration(20 * 24) + .EUt(GTValues.VA[GTValues.HV]) + + // Nether Star + event.replaceInput({ id: 'gtceu:assembler/field_generator_iv' }, 'gtceu:quantum_star', 'minecraft:nether_star') + + event.recipes.gtceu.shaped('gtceu:iv_field_generator', [ + 'ABA', + 'CDC', + 'ABA' + ], { + A: ChemicalHelper.get(TagPrefix.wireGtQuadruple, GTMaterials.SamariumIronArsenicOxide, 1), + B: ChemicalHelper.get(TagPrefix.plateDouble, GTMaterials.TungstenSteel, 1), + C: '#gtceu:circuits/iv', + D: 'minecraft:nether_star' + }).addMaterialInfo().id('gtceu:shaped/field_generator_iv') + + event.recipes.gtceu.chemical_reactor('tfg:gtceu/nether_star_dust') + .itemInputs('2x #forge:dusts/iridium', '#forge:dusts/diamond') + .circuit(10) + .itemOutputs('gtceu:nether_star_dust') + // TODO: change to something else with venus + .inputFluids(Fluid.of('gtceu:neon', 1000)) + .duration(700) + .EUt(2720) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/machines/recipes.ender_pearls.js b/kubejs/server_scripts/tfg/machines/recipes.ender_pearls.js new file mode 100644 index 000000000..84162e695 --- /dev/null +++ b/kubejs/server_scripts/tfg/machines/recipes.ender_pearls.js @@ -0,0 +1,61 @@ +"use strict"; + +function registerTFGEnderPearlRecipes(event) { + event.recipes.gtceu.chemical_reactor('kaolinite') + .itemInputs('5x #tfg:aluminium_oxide', '2x #forge:dusts/silicon') + .inputFluids(Fluid.of('gtceu:distilled_water', 6000), Fluid.of('gtceu:chlorine', 8000)) + .itemOutputs('17x tfc:powder/kaolinite') + .outputFluids(Fluid.of('gtceu:hydrochloric_acid', 8000)) + .duration(20 * 10) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.chemical_reactor('kaolinite_ruby') + .itemInputs('6x #forge:dusts/ruby', '2x #forge:dusts/silicon') + .inputFluids(Fluid.of('gtceu:distilled_water', 6000), Fluid.of('gtceu:chlorine', 8000)) + .itemOutputs('17x tfc:powder/kaolinite', '1x #forge:dusts/chromium') + .outputFluids(Fluid.of('gtceu:hydrochloric_acid', 8000)) + .duration(20 * 10) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.pyrolyse_oven('vitrified_ender_dust') + .itemInputs('minecraft:ender_pearl', '2x tfc:powder/kaolinite', '4x #forge:insulation_t1') + .inputFluids(Fluid.of('gtceu:nitrogen', 100)) + .itemOutputs('tfg:vitrified_pearl') + .chancedOutput('gtceu:ash_dust', 2500, 0) + .duration(20 * 10) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.implosion_compressor('vitrified_ender_pearl_dynamite') + .itemInputs('4x #forge:dusts/vitrified_pearl', '2x gtceu:dynamite') + .itemOutputs('3x tfg:vitrified_pearl') + .chancedOutput('#forge:dusts/dark_ash', 2500, 0) + .duration(20) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.implosion_compressor('vitrified_ender_pearl_powderbarrel') + .itemInputs('4x #forge:dusts/vitrified_pearl', '8x gtceu:powderbarrel') + .itemOutputs('3x tfg:vitrified_pearl') + .chancedOutput('#forge:dusts/dark_ash', 2500, 0) + .duration(20) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.implosion_compressor('vitrified_ender_pearl_tnt') + .itemInputs('4x #forge:dusts/vitrified_pearl', '4x minecraft:tnt') + .itemOutputs('3x tfg:vitrified_pearl') + .chancedOutput('#forge:dusts/dark_ash', 2500, 0) + .duration(20) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.implosion_compressor('vitrified_ender_pearl_itnt') + .itemInputs('4x #forge:dusts/vitrified_pearl', 'gtceu:industrial_tnt') + .itemOutputs('3x tfg:vitrified_pearl') + .chancedOutput('#forge:dusts/dark_ash', 2500, 0) + .duration(20) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.macerator('vitrified_ender_pearl') + .itemInputs('tfg:vitrified_pearl') + .itemOutputs('#forge:dusts/vitrified_pearl') + .duration(40) + .EUt(GTValues.VA[GTValues.ULV]) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.molds.js b/kubejs/server_scripts/tfg/machines/recipes.molds.js similarity index 100% rename from kubejs/server_scripts/tfg/recipes.molds.js rename to kubejs/server_scripts/tfg/machines/recipes.molds.js diff --git a/kubejs/server_scripts/tfg/machines/recipes.multiblocks.js b/kubejs/server_scripts/tfg/machines/recipes.multiblocks.js new file mode 100644 index 000000000..2d6a21215 --- /dev/null +++ b/kubejs/server_scripts/tfg/machines/recipes.multiblocks.js @@ -0,0 +1,190 @@ +"use strict"; + +function registerTFGMultiblockRecipes(event) { + + // Multi-Smelter + event.shaped('gtceu:multi_smelter', [ + 'AAA', + 'BCB', + 'DBD' + ], { + A: 'gtceu:hp_steam_furnace', + B: '#gtceu:circuits/hv', + C: 'gtceu:heatproof_machine_casing', + D: 'gtceu:copper_single_cable' + }).id('gtceu:shaped/multi_furnace') + + event.shaped('gtceu:multi_smelter', [ + 'AAA', + 'BCB', + 'DBD' + ], { + A: 'gtceu:lv_electric_furnace', + B: '#gtceu:circuits/hv', + C: 'gtceu:heatproof_machine_casing', + D: 'gtceu:copper_single_cable' + }).id('gtceu:shaped/multi_furnace2') + + // Electric Blast Furnace + event.shaped('gtceu:electric_blast_furnace', [ + 'AAA', + 'BCB', + 'DBD' + ], { + A: 'gtceu:hp_steam_furnace', + B: '#gtceu:circuits/lv', + C: 'gtceu:heatproof_machine_casing', + D: 'gtceu:tin_single_cable' + }).id('gtceu:shaped/electric_blast_furnace') + + event.shaped('gtceu:electric_blast_furnace', [ + 'AAA', + 'BCB', + 'DBD' + ], { + A: 'gtceu:lv_electric_furnace', + B: '#gtceu:circuits/lv', + C: 'gtceu:heatproof_machine_casing', + D: 'gtceu:tin_single_cable' + }).id('gtceu:shaped/electric_blast_furnace2') + + // TFG customs + event.shaped('tfg:electric_greenhouse', [ + 'ABA', + 'CDC', + 'BCB' + ], { + A: '#gtceu:circuits/mv', + B: '#forge:single_cables/copper', + C: 'tfc:compost', + D: 'gtceu:steel_machine_casing' + }).id('tfg:shaped/electric_greenhouse') + + event.shaped('gtceu:steam_bloomery', [ + 'CEC', + 'DAD', + 'CBC' + ], { + A: 'tfc:bloomery', + B: '#forge:frames/bronze', + C: '#forge:rods/black_steel', + D: '#forge:screws/wrought_iron', + E: '#forge:tools/wrenches' + }) + + event.shaped('tfg:ostrum_linear_accelerator', [ + 'USU', + 'WZW', + 'PTP' + ], { + S: 'tfg:casings/machine_casing_vacuum_engine_intake', + Z: 'gtceu:iv_machine_hull', + W: '#gtceu:circuits/iv', + U: '#forge:double_plates/stellite_100', + T: '#forge:single_cables/platinum', + P: 'gtceu:iv_electric_pump' + } + ).id('tfg:shaped/ostrum_linear_accelerator') + + event.recipes.gtceu.assembler('tfg:ostrum_harvester') + .itemInputs( + '1x gtceu:ev_machine_hull', + '4x #gtceu:circuits/ev', + '4x gtceu:ev_electric_motor', + '4x #forge:rotors/black_steel', + '4x gtceu:ev_electric_pump', + '4x #forge:gears/desh') + .itemOutputs('gtceu:ostrum_harvester') + .duration(400) + .EUt(GTValues.VA[GTValues.EV]) + .circuit(2) + + event.recipes.gtceu.assembler('tfg:moon_dust_harvester') + .itemInputs( + '1x gtceu:hv_machine_hull', + '4x #gtceu:circuits/hv', + '4x gtceu:hv_electric_motor', + '4x #forge:rotors/titanium', + '4x gtceu:hv_electric_pump', + '4x #forge:gears/rocket_alloy_t1') + .itemOutputs('gtceu:moon_dust_harvester') + .duration(400) + .EUt(GTValues.VA[GTValues.HV]) + .circuit(2) + + event.recipes.gtceu.shaped('tfg:evaporation_tower', [ + 'TUT', + 'WZW', + 'TUT' + ], { + T: '#gtceu:circuits/iv', + W: 'gtceu:ev_electric_pump', + U: '#forge:double_wires/nichrome', + Z: 'gtceu:ev_machine_hull' + }).addMaterialInfo().id('tfg:shaped/evaporation_tower') + + event.shaped('deafission:fission_reactor_mk1', [ + 'TUT', + 'WZW', + 'TUT' + ], { + T: 'gtceu:atomic_casing', + W: '#gtceu:circuits/ev', + U: 'gtceu:hv_field_generator', + Z: 'gtceu:ev_machine_hull' + } + ).id('tfg:shaped/fission_reactor_mk1') + + event.shaped('gtceu:nuclear_fuel_factory', [ + 'TUT', + 'WZW', + 'TBT' + ], { + T: 'gtceu:atomic_casing', + W: '#gtceu:circuits/ev', + U: 'gtceu:ev_emitter', + Z: 'gtceu:ev_machine_hull', + B: 'gtceu:ev_robot_arm' + } + ).id('tfg:shaped/nuclear_fuel_factory') + + event.shaped('gtceu:heat_exchanger', [ + 'TUT', + 'WZW', + 'GBG' + ], { + T: 'gtceu:high_temperature_smelting_casing', + W: '#gtceu:circuits/ev', + U: 'gtceu:ev_sensor', + Z: 'gtceu:ev_machine_hull', + B: 'gtceu:ev_fluid_regulator', + G: '#forge:gears/ostrum_iodide' + } + ).id('tfg:shaped/heat_exchanger') + + event.shaped('tfg:nuclear_turbine', [ + 'CTC', + 'TZT', + 'BTB' + ], { + T: '#forge:gears/magnalium', + Z: 'gtceu:ev_machine_hull', + B: 'gtceu:ultimet_large_item_pipe', + C: '#gtceu:circuits/ev' + } + ).id('tfg:shaped/nuclear_turbine') + + event.recipes.gtceu.shaped('gtceu:coal_liquefaction_tower', [ + 'ABA', + 'CDC', + 'EFE' + ], { + A: '#forge:double_wires/cupronickel', + B: 'gtceu:aluminium_drum', + C: '#gtceu:circuits/mv', + D: 'gtceu:mv_machine_hull', + E: 'gtceu:solid_machine_casing', + F: 'gtceu:mv_electric_piston' + }).addMaterialInfo().id('gtceu:shaped/coal_liquefaction_tower') + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/machines/recipes.steam_bloomery.js b/kubejs/server_scripts/tfg/machines/recipes.steam_bloomery.js new file mode 100644 index 000000000..7f5b1888e --- /dev/null +++ b/kubejs/server_scripts/tfg/machines/recipes.steam_bloomery.js @@ -0,0 +1,38 @@ +"use strict"; + +function registerTFGSteamBloomeryRecipes(event) { + + event.recipes.gtceu.steam_bloomery('steam_raw_iron_bloom_coal') + .itemInputs('#forge:ingots/iron', '#tfg:steam_bloomery_basic_fuels') + .itemOutputs('tfc:raw_iron_bloom') + .duration(2400) + .EUt(2) + + event.recipes.gtceu.steam_bloomery('steam_raw_iron_bloom_coalcoke') + .itemInputs('2x #forge:ingots/iron', '#tfc:blast_furnace_fuel') + .itemOutputs('2x tfc:raw_iron_bloom') + .duration(2400) + .EUt(2) + + forEachMaterial(material => { + + const tfcProperty = material.getProperty(TFGPropertyKey.TFC_PROPERTY) + if (tfcProperty === null) + return; + + const outputMaterial = tfcProperty.getOutputMaterial() === null ? material : tfcProperty.getOutputMaterial() + if (outputMaterial === GTMaterials.Iron) { + event.recipes.gtceu.steam_bloomery(`steam_raw_iron_bloom_coal_${material.getName()}`) + .itemInputs(ChemicalHelper.get(TagPrefix.dust, material, 1), '#tfg:steam_bloomery_basic_fuels') + .itemOutputs('tfc:raw_iron_bloom') + .duration(2400) + .EUt(2) + + event.recipes.gtceu.steam_bloomery(`steam_raw_iron_bloom_coalcoke_${material.getName()}`) + .itemInputs(ChemicalHelper.get(TagPrefix.dust, material, 2), '#tfc:blast_furnace_fuel') + .itemOutputs('2x tfc:raw_iron_bloom') + .duration(2400) + .EUt(2) + } + }) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/tags.facades.js b/kubejs/server_scripts/tfg/machines/tags.facades.js similarity index 96% rename from kubejs/server_scripts/tfg/tags.facades.js rename to kubejs/server_scripts/tfg/machines/tags.facades.js index 13c5b8ea6..33a59ebbd 100644 --- a/kubejs/server_scripts/tfg/tags.facades.js +++ b/kubejs/server_scripts/tfg/machines/tags.facades.js @@ -1,7 +1,7 @@ // priority: 0 "use strict"; -function registerFacadeWhitelistTags(event) { +function registerTFGFacadeWhitelistItemTags(event) { const facade_materials = [ //tags @@ -23,7 +23,7 @@ function registerFacadeWhitelistTags(event) { '#minecraft:terracotta', '#forge:concretes', '#create:casing', - '#dormum_ornamentum:brick_items', + '#domum_ornamentum:brick_items', '#simplylight:any_lamp_on', '#simplylight:any_lamp_off', '#minecraft:planks', @@ -38,7 +38,14 @@ function registerFacadeWhitelistTags(event) { '#tfg:ad_astra_calorite_blocks', '#tfg:ad_astra_etrium_blocks', '#tfg:titanium_concrete', - + + //reconstituted stone blocks + 'minecraft:smooth_stone', + 'minecraft:stone_bricks', + 'minecraft:cracked_stone_bricks', + 'minecraft:chiseled_stone_bricks', + 'minecraft:mossy_stone_bricks', + //rnr shingles 'rnr:ceramic_roof', 'rnr:terracotta_roof', diff --git a/kubejs/server_scripts/tfg/mars/data.mars.js b/kubejs/server_scripts/tfg/mars/data.mars.js new file mode 100644 index 000000000..0a40f9896 --- /dev/null +++ b/kubejs/server_scripts/tfg/mars/data.mars.js @@ -0,0 +1,68 @@ +"use strict"; + +function registerTFGMarsBedrockFluidVeins(event) { + + const Registries = Java.loadClass("net.minecraft.core.registries.Registries") + const ResourceKey = Java.loadClass("net.minecraft.resources.ResourceKey") + const martianAmberHillsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/amber_hills") + const martianAmberPlainsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/amber_plains") + const martianMountainsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/martian_mountains") + const martianRusticusHillsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/rusticus_hills") + const martianRusticusPlainsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/rusticus_plains") + const martianSangnumHillsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/sangnum_hills") + const martianSangnumPlainsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/sangnum_plains") + + event.add('tfg:semiheavy_ammoniacal_water', vein => { + vein.dimensions('ad_astra:mars') + vein.fluid(() => Fluid.of('tfg:semiheavy_ammoniacal_water').fluid) + vein.weight(100) + vein.minimumYield(200) + vein.maximumYield(400) + vein.depletionAmount(1) + vein.depletionChance(20) + vein.depletedYield(15) + }) + + event.add('tfg:liquid_carbon_dioxide', vein => { + vein.dimensions('ad_astra:mars') + vein.fluid(() => Fluid.of('gtceu:liquid_carbon_dioxide').fluid) + vein.weight(30) + vein.minimumYield(20) + vein.maximumYield(350) + vein.depletionAmount(1) + vein.depletionChance(20) + vein.depletedYield(5) + }) + + event.add('tfg:liquid_ice', vein => { + vein.dimensions('ad_astra:mars') + vein.fluid(() => Fluid.of('gtceu:ice').fluid) + vein.weight(20) + vein.minimumYield(20) + vein.maximumYield(200) + vein.depletionAmount(1) + vein.depletionChance(20) + vein.depletedYield(5) + }) + + // Heavy Ammonical Water in Specific Biome Credit to Monifactory from https://github.com/ThePansmith/Monifactory/blob/main/kubejs/server_scripts/worldgen/fluidVeins.js + + event.add('tfg:heavy_ammoniacal_water', vein => { + vein.dimensions('ad_astra:mars') + vein.fluid(() => Fluid.of('tfg:heavy_ammoniacal_water').fluid) + vein.biomes(20, martianAmberHillsResourceKey) + vein.biomes(20, martianAmberPlainsResourceKey) + vein.biomes(20, martianRusticusHillsResourceKey) + vein.biomes(20, martianRusticusPlainsResourceKey) + vein.biomes(20, martianSangnumHillsResourceKey) + vein.biomes(20, martianSangnumPlainsResourceKey) + // This one is exclusively far inland, so it's ok to buff it a bit in case the player has bad luck + vein.biomes(50, martianMountainsResourceKey) + vein.weight(0) + vein.minimumYield(100) + vein.maximumYield(650) + vein.depletionAmount(1) + vein.depletionChance(20) + vein.depletedYield(30) + }) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/events.mars.js b/kubejs/server_scripts/tfg/mars/events.sandstorm.js similarity index 100% rename from kubejs/server_scripts/tfg/events.mars.js rename to kubejs/server_scripts/tfg/mars/events.sandstorm.js diff --git a/kubejs/server_scripts/tfg/mars/recipes.iodine.js b/kubejs/server_scripts/tfg/mars/recipes.iodine.js new file mode 100644 index 000000000..371c0a9fc --- /dev/null +++ b/kubejs/server_scripts/tfg/mars/recipes.iodine.js @@ -0,0 +1,102 @@ +"use strict"; + +function registerTFGMarsIodineRecipes(event) { + + // This file is specifically for the crappy mars-based iodine recipe chain. + // The "proper" venus one is elsewhere + + event.recipes.afc.tree_tapping(TFC.blockIngredient('beneath:wood/log/crimson')) + .resultFluid(Fluid.of('tfg:crimsene', 1)) + .minTemp(-110) + .maxTemp(-15) + .requiresNaturalLog(true) + .id("tfg:tree_tapping/crimson_log") + + event.recipes.afc.tree_tapping(TFC.blockIngredient('beneath:wood/wood/crimson')) + .resultFluid(Fluid.of('tfg:crimsene', 1)) + .minTemp(-110) + .maxTemp(-15) + .requiresNaturalLog(true) + .id("tfg:tree_tapping/crimson_wood") + + event.recipes.afc.tree_tapping(TFC.blockIngredient('beneath:wood/log/warped')) + .resultFluid(Fluid.of('tfg:warpane', 1)) + .minTemp(-110) + .maxTemp(-15) + .requiresNaturalLog(true) + .id("tfg:tree_tapping/warped_log") + + event.recipes.afc.tree_tapping(TFC.blockIngredient('beneath:wood/wood/warped')) + .resultFluid(Fluid.of('tfg:warpane', 1)) + .minTemp(-110) + .maxTemp(-15) + .requiresNaturalLog(true) + .id("tfg:tree_tapping/warped_wood") + + event.recipes.gtceu.autoclave('tfg:crimsene') + .inputFluids(Fluid.of('tfg:crimsene', 144), Fluid.of('gtceu:liquid_carbon_dioxide', 1000)) + .outputFluids(Fluid.of('gtceu:carbon_monoxide', 1000)) + .itemOutputs('#forge:gems/crimsene') + .duration(20 * 30) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.autoclave('tfg:warpane') + .inputFluids(Fluid.of('tfg:warpane', 144), Fluid.of('gtceu:liquid_carbon_dioxide', 1000)) + .outputFluids(Fluid.of('gtceu:hydrogen', 1000)) + .itemOutputs('#forge:gems/warpane') + .duration(20 * 30) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.macerator('tfg:crimsene') + .itemInputs('#forge:gems/crimsene') + .itemOutputs('#forge:dusts/crimsene') + .duration(20 * 5) + .EUt(2) + + event.recipes.gtceu.macerator('tfg:warpane') + .itemInputs('#forge:gems/warpane') + .itemOutputs('#forge:dusts/warpane') + .duration(20 * 5) + .EUt(2) + + event.recipes.gtceu.mixer('tfg:mars_sap') + .itemInputs('#forge:dusts/warpane', '#forge:dusts/crimsene') + .inputFluids(Fluid.of('gtceu:hydrochloric_acid', 1000), Fluid.of('gtceu:krypton', 500)) + .itemOutputs('#forge:dusts/mycelienzene') + .duration(30 * 20) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.deafission.fission_reactor_processing('tfg:mars_sap') + .itemInputs('#forge:dusts/mycelienzene') + .outputFluids(Fluid.of('tfg:cooked_mycelienzane', 1000)) + .blastFurnaceTemp(100) + .duration(30 * 10) + + event.recipes.gtceu.centrifuge('mars_sap_separation') + .inputFluids(Fluid.of('tfg:cooked_mycelienzane', 2000)) + .outputFluids( + Fluid.of('tfg:iodomethane', 1000), + Fluid.of('tfg:trideuteroiodomethane', 1000), + Fluid.of('gtceu:krypton', 1000), + Fluid.of('gtceu:diluted_hydrochloric_acid', 4000)) + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.chemical_reactor('tfg:iodomethane_separation') + .inputFluids( + Fluid.of('tfg:iodomethane', 1000), + Fluid.of('gtceu:hydrogen', 1000)) + .itemOutputs('#forge:dusts/iodine') + .outputFluids(Fluid.of('gtceu:methane', 1000)) + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_reactor('tfg:trideuteroiodomethane_separation') + .inputFluids( + Fluid.of('tfg:trideuteroiodomethane', 1000), + Fluid.of('gtceu:oxygen', 1500)) + .itemOutputs('#forge:dusts/iodine', '#forge:dusts/carbon') + .outputFluids(Fluid.of('tfg:heavy_water', 1500)) + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.MV]) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/mars/recipes.mars.js b/kubejs/server_scripts/tfg/mars/recipes.mars.js new file mode 100644 index 000000000..1e3f8e1b4 --- /dev/null +++ b/kubejs/server_scripts/tfg/mars/recipes.mars.js @@ -0,0 +1,261 @@ +"use strict"; + +function registerTFGMarsRecipes(event) { + + // Mars air + + event.recipes.gtceu.vacuum_freezer('tfg:liquid_mars_air') + .inputFluids(Fluid.of('tfg:mars_air', 4000)) + .outputFluids(Fluid.of('tfg:liquid_mars_air', 4000)) + .duration(80) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.centrifuge('tfg:centrifuge_mars_air') + .inputFluids(Fluid.of('tfg:mars_air', 10000)) + .outputFluids(Fluid.of('gtceu:carbon_dioxide', 3900), Fluid.of('gtceu:nitrogen', 1000), Fluid.of('gtceu:argon', 500)) + .duration(1600) + .EUt(GTValues.VA[GTValues.MV]) + + // TODO: move neon and xenon somewhere else + event.recipes.gtceu.distillation_tower('tfg:distill_liquid_mars_air') + .inputFluids(Fluid.of('tfg:liquid_mars_air', 100000)) + .outputFluids(Fluid.of('gtceu:carbon_dioxide', 80000)) + .outputFluids(Fluid.of('gtceu:nitrogen', 7000)) + .outputFluids(Fluid.of('gtceu:argon', 5000)) + .outputFluids(Fluid.of('gtceu:oxygen', 3000)) + .outputFluids(Fluid.of('gtceu:krypton', 1000)) + .outputFluids(Fluid.of('gtceu:neon', 1000)) + .outputFluids(Fluid.of('gtceu:xenon', 1000)) + .chancedOutput('gtceu:ammonium_chloride_dust', 2250, 0) + .disableDistilleryRecipes(true) + .duration(2000) + .EUt(GTValues.VA[GTValues.EV]) + + //#region Mars Water + + event.recipes.gtceu.centrifuge('mars_heavy_water') + .inputFluids(Fluid.of('tfg:heavy_ammoniacal_water', 1000)) + .outputFluids(Fluid.of('tfg:heavy_water', 500)) + .itemOutputs('#forge:dusts/ammonium_chloride', '2x #forge:small_dusts/ammonium_chloride') + .duration(20*9) + .EUt(GTValues.VHA[GTValues.ULV]) + + event.recipes.gtceu.centrifuge('mars_semiheavy_water') + .inputFluids(Fluid.of('tfg:semiheavy_ammoniacal_water', 1000)) + .outputFluids(Fluid.of('tfg:semiheavy_water', 500)) + .itemOutputs('2x #forge:tiny_dusts/ammonium_chloride') + .duration(20*9) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.distillery('mars_semiheavy_water') + .inputFluids(Fluid.of('tfg:semiheavy_ammoniacal_water', 1000)) + .outputFluids(Fluid.of('minecraft:water', 250)) + .duration(20*5) + .EUt(GTValues.VA[GTValues.MV]) + + // Mars plants + + event.recipes.gtceu.mixer('tfg:bio_glowstone') + .itemInputs('betterend:cave_pumpkin_chunks', '4x species:alphacene_mushroom_block') + .outputFluids(Fluid.of('gtceu:biomass', 100)) + .itemOutputs('2x minecraft:glowstone_dust') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.EV]) + .dimension('ad_astra:mars') + + // Ad astra woods + + global.AD_ASTRA_WOOD.forEach(wood => { + woodBuilder(event, wood.name, wood.lumber, wood.logs, wood.log, wood.stripped_log, wood.plank, wood.stair, wood.slab, wood.door, wood.trapdoor, wood.fence, wood.fence_gate, wood.support, wood.pressure_plate, wood.button) + }) + + event.shaped('16x ad_astra:aeronos_ladder', [ + 'A A', + 'ABA', + 'A A' + ], { + A: 'tfg:wood/lumber/aeronos', + B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Wood, 1), + }).id('tfg:shaped/aeronos_ladder') + + event.shaped('16x ad_astra:strophar_ladder', [ + 'A A', + 'ABA', + 'A A' + ], { + A: 'tfg:wood/lumber/strophar', + B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Wood, 1), + }).id('tfg:shaped/strophar_ladder') + + + generateGreenHouseRecipe(event, '8x tfg:saplings/strophar', 'tfg:semiheavy_ammoniacal_water', 16000, + '64x ad_astra:strophar_stem', 'tfg:green_house/strophar_mushroom', 'ad_astra:mars', 8, + '16x ad_astra:strophar_cap', GTValues.VA[GTValues.MV]) + generateGreenHouseRecipe(event, '8x tfg:saplings/aeronos', 'tfg:semiheavy_ammoniacal_water', 16000, + '64x ad_astra:aeronos_stem', 'tfg:green_house/aeronos_mushroom', 'ad_astra:mars', 8, + '16x ad_astra:aeronos_cap', GTValues.VA[GTValues.MV]) + generateGreenHouseRecipe(event, '8x tfg:saplings/glacian', 'tfg:semiheavy_ammoniacal_water', 16000, + '64x ad_astra:glacian_log', 'tfg:green_house/glacian_tree', 'ad_astra:mars', 8, + '8x species:alphacene_moss_block', GTValues.VA[GTValues.MV]) + + // Beneath woods + + generateGreenHouseRecipe(event, '8x tfg:saplings/warped', 'tfg:semiheavy_ammoniacal_water', 16000, + '64x beneath:wood/log/warped', 'tfg:green_house/warped_fungus', 'ad_astra:mars', 8, + '32x minecraft:warped_wart_block', GTValues.VA[GTValues.MV]) + generateGreenHouseRecipe(event, '8x tfg:saplings/crimson', 'tfg:semiheavy_ammoniacal_water', 16000, + '64x beneath:wood/log/crimson', 'tfg:green_house/crimson_fungus', 'ad_astra:mars', 8, + '32x minecraft:nether_wart_block', GTValues.VA[GTValues.MV]) + + // don't pass in the items like doors, trapdoors etc because beneath already has good recipes for those + woodBuilder(event, 'crimson', 'beneath:wood/lumber/crimson', '#tfc:crimson_logs', 'beneath:wood/log/crimson', + 'beneath:wood/stripped_log/crimson', 'beneath:wood/planks/crimson', null, + 'beneath:wood/planks/crimson_slab', null, null, null, null, null, 'beneath:wood/planks/crimson_pressure_plate', + 'beneath:wood/planks/crimson_button') + + event.recipes.gtceu.lathe(`tfg:cutter/crimson_stripped_wood_from_wood`) + .itemInputs('beneath:wood/wood/crimson') + .itemOutputs('beneath:wood/stripped_wood/crimson') + .duration(50) + .EUt(GTValues.VA[GTValues.ULV]) + + event.custom({ + type: 'vintageimprovements:polishing', + ingredients: [{ item: 'beneath:wood/wood/crimson' }], + results: [{ item: 'beneath:wood/stripped_wood/crimson' }], + speed_limits: 0, + processingTime: 50 + }).id(`tfg:vi/lathe/stripping_crimson_wood`) + + woodBuilder(event, 'warped', 'beneath:wood/lumber/warped', '#tfc:warped_logs', 'beneath:wood/log/warped', + 'beneath:wood/stripped_log/warped', 'beneath:wood/planks/warped', null, + 'beneath:wood/planks/warped_slab', null, null, null, null, null, 'beneath:wood/planks/warped_pressure_plate', + 'beneath:wood/planks/warped_button') + + event.recipes.gtceu.lathe(`tfg:cutter/warped_stripped_wood_from_wood`) + .itemInputs('beneath:wood/wood/warped') + .itemOutputs('beneath:wood/stripped_wood/warped') + .duration(50) + .EUt(GTValues.VA[GTValues.ULV]) + + event.custom({ + type: 'vintageimprovements:polishing', + ingredients: [{ item: 'beneath:wood/wood/warped' }], + results: [{ item: 'beneath:wood/stripped_wood/warped' }], + speed_limits: 0, + processingTime: 50 + }).id(`tfg:vi/lathe/stripping_warped_wood`) + + // Alphacene + + generateGreenHouseRecipe(event, '8x tfg:saplings/alphacene', 'tfg:semiheavy_ammoniacal_water', 16000, + '64x species:alphacene_mushroom_block', 'tfg:green_house/alphacene_mushroom', 'ad_astra:mars', 8, + '8x minecraft:mushroom_stem', GTValues.VA[GTValues.MV]) + + //Large Nest + event.shaped('tfg:large_nest_box', + [ + 'B B', + 'ABA', + 'AAA' + ], { + A: 'beneath:crimson_thatch', + B: 'beneath:crimson_straw' + }).id('tfg:shaped_large_nest_crimson') + + event.shaped('tfg:large_nest_box_warped', + [ + 'B B', + 'ABA', + 'AAA' + ], { + A: 'beneath:warped_thatch', + B: 'beneath:warped_straw' + }).id('tfg:shaped_large_nest_warped') + + // Animal stuff + + event.shapeless('species:cracked_wraptor_egg', ['tfg:wraptor_egg', '#forge:tools/hammers']).id('tfg:shapeless/crack_egg') + event.shapeless('2x tfg:wraptor_sugar', ['species:cracked_wraptor_egg']).id('tfg:shapeless/juice_egg') + + event.recipes.gtceu.extractor('tfg:juice_wraptor_egg_mv') + .itemInputs('species:cracked_wraptor_egg') + .itemOutputs('4x tfg:wraptor_sugar') + .duration(100) + .EUt(GTValues.VA[GTValues.MV]) + event.recipes.gtceu.extractor('tfg:juice_wraptor_egg_full') + .itemInputs('tfg:wraptor_egg') + .itemOutputs('4x tfg:wraptor_sugar') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.extractor('tfg:juice_sniffer_egg') + .itemInputs('tfg:sniffer_egg') + .outputFluids(Fluid.of('firmalife:cream', 1000)) + .duration(100) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.tfc.loom( + '8x ad_astra:glacian_fur', + '8x tfg:glacian_wool', + 8, + 'ad_astra:block/glacian_fur' + ) + + event.recipes.gtceu.assembler('tfg:assembler/glacian_fur') + .itemInputs('tfg:glacian_wool') + .circuit(10) + .itemOutputs('ad_astra:glacian_fur') + .duration(100) + .EUt(4) + + event.recipes.tfc.damage_inputs_shapeless_crafting( + event.shapeless('8x tfc:wool_yarn', [ + 'tfc:spindle', + 'tfg:glacian_wool' + ]).id('tfg:shapeless/glacian_wool_to_yarn')) + + event.recipes.gtceu.wiremill('tfg:glacian_wool_yarn') + .itemInputs('tfg:glacian_wool') + .itemOutputs('8x tfc:wool_yarn') + .duration(100) + .EUt(4) + + event.shaped('minecraft:pink_bed', [ + 'AAA', + 'BBB' + ], { + A: 'ad_astra:glacian_fur', + B: '#tfc:lumber' + }).id('tfg:shaped/glacian_bed') + + // Plants + + Ingredient.of('#tfg:mars_plants').stacks.forEach(element => { + const itemId = element.id; + const recipeId = `greenhouse_${itemId.replace(':', '_')}`; + + generateGreenHouseRecipe(event, itemId, 'tfg:semiheavy_ammoniacal_water', 8000, `8x ${itemId}`, + recipeId, 'ad_astra:mars', 8, itemId, GTValues.VA[GTValues.LV]); + }); + + generateGreenHouseRecipe(event, '8x betterend:amber_root_seeds', 'tfg:semiheavy_ammoniacal_water', 8000, + '24x betterend:amber_root_product', 'amber_root', 'ad_astra:mars', 8, null, GTValues.VA[GTValues.LV]) + + generateGreenHouseRecipe(event, '8x betterend:blossom_berry_seeds', 'tfg:semiheavy_ammoniacal_water', 8000, + '24x betterend:blossom_berry_product', 'blossom_berry', 'ad_astra:mars', 8, null, GTValues.VA[GTValues.LV]) + + generateGreenHouseRecipe(event, '8x betterend:bolux_mushroom_seeds', 'tfg:semiheavy_ammoniacal_water', 8000, + '24x betterend:bolux_mushroom_product', 'bolux_mushroom', 'ad_astra:mars', 8, null, GTValues.VA[GTValues.LV]) + + generateGreenHouseRecipe(event, '8x betterend:cave_pumpkin_plant_seeds', 'tfg:semiheavy_ammoniacal_water', 8000, + '24x betterend:cave_pumpkin', 'cave_pumpkin', 'ad_astra:mars', 8, null, GTValues.VA[GTValues.LV]) + + generateGreenHouseRecipe(event, '8x betterend:chorus_mushroom_seeds', 'tfg:semiheavy_ammoniacal_water', 8000, + '24x betterend:chorus_mushroom_product', 'chorus_mushroom', 'ad_astra:mars', 8, null, GTValues.VA[GTValues.LV]) + + generateGreenHouseRecipe(event, '8x betterend:shadow_berry_seeds', 'tfg:semiheavy_ammoniacal_water', 8000, + '24x betterend:shadow_berry_product', 'shadow_berry', 'ad_astra:mars', 8, null, GTValues.VA[GTValues.LV]) + + event.recipes.firmalife.oven('betterend:cave_pumpkin_pie_raw', 400, 60 * 20, 'betterend:cave_pumpkin_pie') +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/mars/recipes.ostrum.js b/kubejs/server_scripts/tfg/mars/recipes.ostrum.js new file mode 100644 index 000000000..7aa0cdffd --- /dev/null +++ b/kubejs/server_scripts/tfg/mars/recipes.ostrum.js @@ -0,0 +1,140 @@ +"use strict"; + +function registerTFGMarsOstrumRecipes(event) { + + var $HeatRecipeCapability = Java.loadClass("fi.dea.mc.deafission.common.data.recipe.HeatRecipeCapability"); + var $HeatIngredient = Java.loadClass("fi.dea.mc.deafission.common.data.recipe.HeatIngredient"); + const $ChanceLogic = Java.loadClass('com.gregtechceu.gtceu.api.recipe.chance.logic.ChanceLogic') + + // Ostrum Harvester + + event.recipes.gtceu.ostrum_harvester(`tfg:ostrum_harvesting`) + .perTick(true) + .inputFluids('gtceu:drilling_fluid 4') + .perTick(false) + .dimension('ad_astra:mars') + .itemOutputsRanged('gtceu:ostrum_dust', 1, 5) + .duration(20 * 30) + .EUt(GTValues.VA[GTValues.LV]); + + // Ostrum Linear Accelerator Recipes + + event.recipes.gtceu.ostrum_linear_accelerator('tfg:ostrum_transformation') + .inputFluids('gtceu:residual_radioactive_concoction 100') + .itemInputs('32x #forge:dusts/ostrum') + .chancedFluidOutputLogic($ChanceLogic.XOR) + .chancedFluidOutput('gtceu:lightweight_ostrum_vapor', 6000, 0) + .chancedFluidOutput('gtceu:ostrum_vapor', 3000, 0) + .chancedFluidOutput('gtceu:dense_ostrum_vapor', 1000, 0) + .dimension('ad_astra:mars') + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.EV]); + + event.recipes.gtceu.ostrum_linear_accelerator('tfg:lightweight_ostrum') + .inputFluids('gtceu:lightweight_ostrum_vapor 1000') + .inputFluids('gtceu:residual_radioactive_concoction 100') + .inputFluids(Fluid.of('tfg:heavy_water', 1000)) + .itemOutputsRanged('#forge:dusty_raw_materials/pitchblende', 1, 10) + .itemOutputsRanged('#forge:dusty_raw_materials/silver', 1, 10) + .itemOutputsRanged('#forge:dusty_raw_materials/tricalcium_phosphate', 1, 10) + .dimension('ad_astra:mars') + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.IV]); + + event.recipes.gtceu.ostrum_linear_accelerator('tfg:ostrum') + .inputFluids('gtceu:ostrum_vapor 1000') + .inputFluids('gtceu:residual_radioactive_concoction 100') + .inputFluids(Fluid.of('gtceu:radon', 100)) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/bauxite'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/lead'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/beryllium'), 1, 10) + .dimension('ad_astra:mars') + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.IV]); + + event.recipes.gtceu.ostrum_linear_accelerator('tfg:dense_ostrum') + .inputFluids('gtceu:dense_ostrum_vapor 1000') + .inputFluids('gtceu:residual_radioactive_concoction 100') + .inputFluids(Fluid.of('gtceu:tritiated_water', 500)) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/thorium'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/uraninite'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/hematite'), 1, 10) + .dimension('ad_astra:mars') + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.IV]); + + // Ostrum Linear Accelerator Recipes + + // .input($HeatRecipeCapability.CAP, new $HeatIngredient(X, Y)) where X is Minimal Temperature to run and where Y is HU consummed per craft + /* + event.recipes.gtceu.ostrum_linear_accelerator('tfg:ostrum_transformation') + .inputFluids('gtceu:residual_radioactive_concoction 100') + .itemInputs('32x #forge:dusts/ostrum') + .chancedFluidOutputLogic($ChanceLogic.XOR) + .chancedFluidOutput('gtceu:lightweight_ostrum_vapor', 6000, 0) + .chancedFluidOutput('gtceu:ostrum_vapor', 3000, 0) + .chancedFluidOutput('gtceu:dense_ostrum_vapor', 1000, 0) + .dimension('ad_astra:mars') + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.EV]); + + event.recipes.gtceu.ostrum_linear_accelerator('tfg:lightweight_ostrum_vapor_t1') + .perTick(true) + .inputFluids('gtceu:residual_radioactive_concoction 1') + .perTick(false) + .inputFluids(Fluid.of('gtceu:lightweight_ostrum_vapor',1000)) + .inputFluids(Fluid.of('gtceu:radon', 10)) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/thorium'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/silver'), 1, 10) + .itemOutputsRanged(Item.of('gtceu:dusty_raw_tricalcium_phosphate'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/bauxite'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/lead'), 1, 10) + //.input($HeatRecipeCapability.CAP, new $HeatIngredient(100, 500)) + .dimension('ad_astra:mars') + .duration(20 * 20) + .circuit(1); + + event.recipes.gtceu.ostrum_linear_accelerator('tfg:lightweight_ostrum_vapor_t2') + .perTick(true) + .inputFluids('gtceu:residual_radioactive_concoction 1') + .inputFluids(Fluid.of('tfg:semiheavy_water', 1)) + .perTick(false) + .inputFluids(Fluid.of('gtceu:lightweight_ostrum_vapor',1000)) + .inputFluids(Fluid.of('gtceu:radon', 10)) + .inputFluids(Fluid.of('gtceu:krypton', 10)) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/thorium'), 10, 20) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/silver'), 1, 10) + .itemOutputsRanged(Item.of('gtceu:dusty_raw_tricalcium_phosphate'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/bauxite'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/lead'), 1, 10) + .itemOutputsRanged(Item.of('gtceu:dusty_raw_pitchblende'), 1, 10) + //.input($HeatRecipeCapability.CAP, new $HeatIngredient(100, 500)) + .dimension('ad_astra:mars') + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.IV]) + .circuit(2); + + event.recipes.gtceu.ostrum_linear_accelerator('tfg:lightweight_ostrum_vapor_t3') + .perTick(true) + .inputFluids('gtceu:residual_radioactive_concoction 1') + .inputFluids(Fluid.of('tfg:semiheavy_water', 1)) + .perTick(false) + .inputFluids(Fluid.of('gtceu:lightweight_ostrum_vapor',1000)) + .inputFluids(Fluid.of('gtceu:radon', 10)) + .inputFluids(Fluid.of('gtceu:krypton', 10)) + .inputFluids(Fluid.of('gtceu:tritiated_water', 10)) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/thorium'), 10, 20) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/silver'), 1, 10) + .itemOutputsRanged(Item.of('gtceu:dusty_raw_tricalcium_phosphate'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/bauxite'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/lead'), 10, 10) + .itemOutputsRanged(Item.of('gtceu:dusty_raw_pitchblende'), 10, 20) + .input($HeatRecipeCapability.CAP, new $HeatIngredient(100, 500)) + .dimension('ad_astra:mars') + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.IV]) + .circuit(3); + */ + //#endregion + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/mars/tags.mars.js b/kubejs/server_scripts/tfg/mars/tags.mars.js new file mode 100644 index 000000000..bd1cbc9ef --- /dev/null +++ b/kubejs/server_scripts/tfg/mars/tags.mars.js @@ -0,0 +1,529 @@ +"use strict"; + +function registerTFGMarsItemTags(event) { + + event.add('c:hidden_from_recipe_viewers', 'tfg:mars_ice') + + event.add('tfc:compost_greens', 'ad_astra:aeronos_cap') + event.add('tfc:compost_greens', 'ad_astra:strophar_cap') + + // Dirt + event.add('minecraft:dirt', 'tfg:grass/mars_dirt') + event.add('minecraft:dirt', 'tfg:grass/mars_clay_dirt') + event.add('tfc:dirt', 'tfg:grass/mars_dirt') + event.add('tfc:dirt', 'tfg:grass/mars_clay_dirt') + event.add('tfc:grass', 'tfg:grass/amber_mycelium') + event.add('tfc:grass', 'tfg:grass/amber_clay_mycelium') + event.add('tfc:grass', 'tfg:grass/rusticus_mycelium') + event.add('tfc:grass', 'tfg:grass/rusticus_clay_mycelium') + event.add('tfc:grass', 'tfg:grass/sangnum_mycelium') + event.add('tfc:grass', 'tfg:grass/sangnum_clay_mycelium') + event.add('tfc:farmland', 'tfg:grass/mars_farmland') + event.add('tfc:paths', 'tfg:grass/mars_path') + event.add('tfc:kaolin_clay', 'tfg:grass/amber_kaolin_mycelium') + event.add('tfc:kaolin_clay', 'tfg:grass/rusticus_kaolin_mycelium') + event.add('tfc:kaolin_clay', 'tfg:grass/sangnum_kaolin_mycelium') + + // Mars animals + event.add('tfg:martian_eggs', 'tfg:sniffer_egg') + event.add('tfg:martian_eggs', 'tfg:wraptor_egg') + event.add('forge:eggs', '#tfg:martian_eggs') + event.add('firmalife:foods/raw_eggs', '#tfg:martian_eggs') + + event.add('tfg:martian_animal_foods', 'betterend:amber_root_product') + event.add('tfg:martian_animal_foods', 'betterend:blossom_berry_product') + event.add('tfg:martian_animal_foods', 'betterend:chorus_mushroom_product') + event.add('tfg:martian_animal_foods', 'betterend:shadow_berry_product') + event.add('tfg:martian_animal_foods', 'betterend:bolux_mushroom_product') + event.add('tfg:martian_animal_foods', 'betterend:cave_pumpkin_chunks') + + event.add('tfg:glacian_ram_food', '#tfg:martian_animal_foods') + event.add('tfg:sniffer_food', '#tfg:martian_animal_foods') + event.add('tfg:wraptor_food', '#tfg:martian_animal_foods') + + event.remove('minecraft:wool', 'ad_astra:glacian_fur') + + event.add('tfg:mineral_rich_wool', 'tfg:wraptor_wool') + event.add('tfg:mineral_rich_wool', 'tfg:sniffer_wool') + + event.add('buildinggadgets2:deny', 'tfg:spice') + + // these are log tags + event.remove('ad_astra:aeronos_caps', 'ad_astra:aeronos_cap') + event.remove('ad_astra:strophar_caps', 'ad_astra:strophar_cap') + + event.add('tfc:makes_tannin', '#ad_astra:glacian_logs') + event.add('tfc:makes_tannin', '#tfc:crimson_logs') + event.add('tfc:makes_tannin', '#tfc:warped_logs') + + // Crops + event.add('forge:seeds', 'betterend:amber_root_seeds') + event.add('forge:seeds', 'betterend:blossom_berry_seeds') + event.add('forge:seeds', 'betterend:bolux_mushroom_seeds') + event.add('forge:seeds', 'betterend:cave_pumpkin_seeds') + event.add('forge:seeds', 'betterend:shadow_berry_seeds') + + event.add('tfc:foods', 'betterend:amber_root_product') + event.add('tfc:foods/grains', 'betterend:amber_root_product') + + event.add('tfc:foods', 'betterend:blossom_berry_product') + event.add('tfc:foods/fruits', 'betterend:blossom_berry_product') + + event.add('tfc:foods', 'betterend:bolux_mushroom_product') + event.add('tfc:foods/vegetables', 'betterend:bolux_mushroom_product') + event.add('forge:mushrooms', 'betterend:bolux_mushroom_product') + event.add('tfc:foods', 'betterend:bolux_mushroom_cooked') + event.add('tfc:foods/vegetables', 'betterend:bolux_mushroom_cooked') + event.add('forge:mushrooms', 'betterend:bolux_mushroom_cooked') + + event.add('tfc:foods', 'betterend:cave_pumpkin') + event.add('tfc:foods', 'betterend:cave_pumpkin_chunks') + event.add('tfc:foods/fruits', 'betterend:cave_pumpkin_chunks') + event.add('tfc:foods', 'betterend:cave_pumpkin_pie_dough') + event.add('tfc:foods', 'betterend:cave_pumpkin_pie_raw') + event.add('tfc:foods', 'betterend:cave_pumpkin_pie') + event.add('firmalife:foods/washable', 'betterend:cave_pumpkin_pie_raw') + event.add('firmalife:foods/washable', 'betterend:cave_pumpkin_pie') + + event.add('tfc:foods', 'betterend:chorus_mushroom_product') + event.add('tfc:foods/vegetables', 'betterend:chorus_mushroom_product') + event.add('forge:mushrooms', 'betterend:chorus_mushroom_product') + event.add('tfc:foods', 'betterend:chorus_mushroom_cooked') + event.add('tfc:foods/vegetables', 'betterend:chorus_mushroom_cooked') + event.add('forge:mushrooms', 'betterend:chorus_mushroom_cooked') + + event.add('tfc:foods', 'betterend:shadow_berry_product') + event.add('tfc:foods/fruits', 'betterend:shadow_berry_product') + event.add('tfc:foods', 'betterend:shadow_berry_cooked') + event.add('tfc:foods/fruits', 'betterend:shadow_berry_cooked') + + event.add('forge:mushrooms', 'betterend:flammalix') + event.add('forge:mushrooms', 'betterend:small_amaranita_mushroom') +} + +function registerTFGMarsBlockTags(event) { + + event.add('buildinggadgets2:deny', 'tfg:spice') + event.add('ae2:blacklisted/spatial', 'tfg:spice') + + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/dacite') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/dacite') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/dacite') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/basalt') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/basalt') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/basalt') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/gabbro') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/gabbro') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/gabbro') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/diorite') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/diorite') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/diorite') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/rhyolite') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/rhyolite') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/rhyolite') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/andesite') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/andesite') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/andesite') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/chert') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/chert') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/chert') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/conglomerate') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/conglomerate') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/conglomerate') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/claystone') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/claystone') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/claystone') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/limestone') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/limestone') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/limestone') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/dolomite') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/dolomite') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/dolomite') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/raw/shale') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/hardened/shale') + event.add('ad_astra:mars_stone_replaceables', 'tfc:rock/gravel/shale') + event.add('ad_astra:mars_stone_replaceables', 'ad_astra:mars_stone') + event.add('ad_astra:mars_stone_replaceables', 'tfg:rock/hardened_mars_stone') + event.add('ad_astra:mars_stone_replaceables', 'tfg:rock/gravel_mars') + event.add('ad_astra:mars_stone_replaceables', 'minecraft:red_sandstone') + event.add('ad_astra:mars_stone_replaceables', 'ad_astra:venus_stone') + event.add('ad_astra:mars_stone_replaceables', 'ad_astra:venus_sandstone') + event.add('ad_astra:mars_stone_replaceables', 'tfg:rock/hardened_venus_stone') + event.add('ad_astra:mars_stone_replaceables', 'tfg:rock/gravel_venus') + event.add('ad_astra:mars_stone_replaceables', 'gtceu:red_granite') + event.add('ad_astra:mars_stone_replaceables', 'tfg:rock/hardened_red_granite') + event.add('ad_astra:mars_stone_replaceables', 'tfg:rock/gravel_red_granite') + event.add('ad_astra:mars_stone_replaceables', 'create:ochrum') + + event.add('tfc:can_carve', '#ad_astra:mars_stone_replaceables') + + event.add('tfg:mars_soil', 'minecraft:red_sand') + event.add('tfg:mars_soil', 'ad_astra:mars_sand') + event.add('tfg:mars_soil', 'ad_astra:venus_sand') + event.add('tfg:mars_soil', 'tfg:rock/gravel_venus') + event.add('tfg:mars_soil', 'tfg:rock/gravel_mars') + event.add('tfg:mars_soil', 'tfc:rock/gravel/dacite') + event.add('tfg:mars_soil', 'tfc:rock/gravel/basalt') + event.add('tfg:mars_soil', 'tfc:rock/gravel/gabbro') + event.add('tfg:mars_soil', 'tfc:rock/gravel/diorite') + event.add('tfg:mars_soil', 'tfc:rock/gravel/rhyolite') + event.add('tfg:mars_soil', 'tfc:rock/gravel/andesite') + event.add('tfg:mars_soil', 'tfc:rock/gravel/conglomerate') + event.add('tfg:mars_soil', 'tfc:rock/gravel/claystone') + event.add('tfg:mars_soil', 'tfc:rock/gravel/limestone') + event.add('tfg:mars_soil', 'tfc:rock/gravel/dolomite') + event.add('tfg:mars_soil', 'tfc:rock/gravel/shale') + event.add('tfg:mars_soil', 'tfc:sand/black') + event.add('tfg:mars_soil', 'tfc:sand/red') + event.add('tfg:mars_soil', 'tfc:sand/pink') + event.add('tfg:mars_soil', 'tfg:grass/mars_dirt') + event.add('tfg:mars_soil', 'tfg:grass/mars_clay_dirt') + event.add('tfg:mars_soil', 'tfg:grass/amber_mycelium') + event.add('tfg:mars_soil', 'tfg:grass/rusticus_mycelium') + event.add('tfg:mars_soil', 'tfg:grass/sangnum_mycelium') + event.add('tfg:mars_soil', 'tfg:grass/amber_clay_mycelium') + event.add('tfg:mars_soil', 'tfg:grass/rusticus_clay_mycelium') + event.add('tfg:mars_soil', 'tfg:grass/sangnum_clay_mycelium') + event.add('tfg:mars_soil', 'tfg:grass/amber_kaolin_mycelium') + event.add('tfg:mars_soil', 'tfg:grass/rusticus_kaolin_mycelium') + event.add('tfg:mars_soil', 'tfg:grass/sangnum_kaolin_mycelium') + + event.add('ad_astra:mars_stone_replaceables', '#tfg:mars_soil') + event.add('minecraft:animals_spawnable_on', '#tfg:mars_soil') + event.add('minecraft:animals_spawnable_on', '#tfg:mars_plants') + event.add('minecraft:valid_spawn', '#minecraft:animals_spawnable_on') + + event.removeAll('minecraft:sniffer_diggable_block') + + event.add('tfc:can_be_snow_piled', 'minecraft:crimson_fungus') + event.add('tfc:can_be_snow_piled', 'minecraft:warped_fungus') + event.add('tfc:can_be_snow_piled', 'minecraft:torchflower') + event.add('tfc:can_be_snow_piled', 'minecraft:pitcher_plant') + + event.add('tfg:heightmap_ignore', 'ad_astra:strophar_cap') + event.add('tfg:heightmap_ignore', 'ad_astra:strophar_stem') + event.add('tfg:heightmap_ignore', 'ad_astra:aeronos_cap') + event.add('tfg:heightmap_ignore', 'ad_astra:aeronos_stem') + event.add('tfg:heightmap_ignore', 'minecraft:nether_wart_block') + event.add('tfg:heightmap_ignore', 'minecraft:warped_wart_block') + event.add('tfg:heightmap_ignore', 'species:alphacene_mushroom_block') + event.add('tfg:heightmap_ignore', 'species:alphacene_mushroom_growth') + event.add('tfg:heightmap_ignore', 'tfg:glacian_leaves') + event.add('tfg:heightmap_ignore', 'betterend:glacian_hymenophore') + event.add('tfg:heightmap_ignore', 'species:alphacene_moss_block') + event.add('tfg:heightmap_ignore', 'minecraft:ice') + + event.remove('minecraft:enderman_holdable', 'minecraft:crimson_fungus') + event.remove('minecraft:enderman_holdable', 'minecraft:warped_fungus') + + event.remove('ad_astra:strophar_caps', 'ad_astra:strophar_cap') + event.remove('ad_astra:aeronos_caps', 'ad_astra:aeronos_cap') + + event.add('tfc:can_be_snow_piled', 'ad_astra:aeronos_mushroom') + event.add('tfc:can_be_snow_piled', 'ad_astra:strophar_mushroom') + + event.add('minecraft:dirt', 'tfg:grass/mars_dirt') + event.add('minecraft:dirt', 'tfg:grass/mars_clay_dirt') + event.add('minecraft:dirt', 'tfg:grass/amber_mycelium') + event.add('minecraft:dirt', 'tfg:grass/rusticus_mycelium') + event.add('minecraft:dirt', 'tfg:grass/sangnum_mycelium') + event.add('minecraft:dirt', 'tfg:grass/amber_clay_mycelium') + event.add('minecraft:dirt', 'tfg:grass/rusticus_clay_mycelium') + event.add('minecraft:dirt', 'tfg:grass/sangnum_clay_mycelium') + event.add('minecraft:dirt', 'tfg:grass/amber_kaolin_mycelium') + event.add('minecraft:dirt', 'tfg:grass/rusticus_kaolin_mycelium') + event.add('minecraft:dirt', 'tfg:grass/sangnum_kaolin_mycelium') + + event.add('tfc:dirt', 'tfg:grass/mars_dirt') + event.add('tfc:dirt', 'tfg:grass/mars_clay_dirt') + event.add('tfc:farmland', 'tfg:grass/mars_farmland') + + event.add('tfc:paths', 'tfg:grass/mars_path') + + event.add('tfc:grass', 'tfg:grass/amber_mycelium') + event.add('tfc:grass', 'tfg:grass/rusticus_mycelium') + event.add('tfc:grass', 'tfg:grass/sangnum_mycelium') + event.add('tfc:grass', 'tfg:grass/amber_clay_mycelium') + event.add('tfc:grass', 'tfg:grass/rusticus_clay_mycelium') + event.add('tfc:grass', 'tfg:grass/sangnum_clay_mycelium') + event.add('tfc:grass', 'tfg:grass/amber_kaolin_mycelium') + event.add('tfc:grass', 'tfg:grass/rusticus_kaolin_mycelium') + event.add('tfc:grass', 'tfg:grass/sangnum_kaolin_mycelium') + + event.add('tfc:kaolin_clay', 'tfg:grass/amber_kaolin_mycelium') + event.add('tfc:kaolin_clay', 'tfg:grass/rusticus_kaolin_mycelium') + event.add('tfc:kaolin_clay', 'tfg:grass/sangnum_kaolin_mycelium') + + event.add('tfg:do_not_destroy_in_space', 'tfg:grass/amber_mycelium') + event.add('tfg:do_not_destroy_in_space', 'tfg:grass/rusticus_mycelium') + event.add('tfg:do_not_destroy_in_space', 'tfg:grass/sangnum_mycelium') + event.add('tfg:do_not_destroy_in_space', 'tfg:grass/amber_clay_mycelium') + event.add('tfg:do_not_destroy_in_space', 'tfg:grass/rusticus_clay_mycelium') + event.add('tfg:do_not_destroy_in_space', 'tfg:grass/sangnum_clay_mycelium') + event.add('tfg:do_not_destroy_in_space', 'tfg:grass/amber_kaolin_mycelium') + event.add('tfg:do_not_destroy_in_space', 'tfg:grass/rusticus_kaolin_mycelium') + event.add('tfg:do_not_destroy_in_space', 'tfg:grass/sangnum_kaolin_mycelium') + event.add('tfg:do_not_destroy_in_space', 'tfg:grass/mars_farmland') + event.add('tfg:do_not_destroy_in_space', 'tfg:grass/mars_path') + + event.add('tfc:can_landslide', 'tfg:grass/mars_dirt') + event.add('tfc:can_landslide', 'tfg:grass/mars_clay_dirt') + event.add('tfc:can_landslide', 'tfg:grass/mars_farmland') + event.add('tfc:can_landslide', 'tfg:grass/mars_path') + event.add('tfc:can_landslide', 'tfg:grass/amber_mycelium') + event.add('tfc:can_landslide', 'tfg:grass/rusticus_mycelium') + event.add('tfc:can_landslide', 'tfg:grass/sangnum_mycelium') + event.add('tfc:can_landslide', 'tfg:grass/amber_clay_mycelium') + event.add('tfc:can_landslide', 'tfg:grass/rusticus_clay_mycelium') + event.add('tfc:can_landslide', 'tfg:grass/sangnum_clay_mycelium') + event.add('tfc:can_landslide', 'tfg:grass/amber_kaolin_mycelium') + event.add('tfc:can_landslide', 'tfg:grass/rusticus_kaolin_mycelium') + event.add('tfc:can_landslide', 'tfg:grass/sangnum_kaolin_mycelium') + + event.add('minecraft:mineable/shovel', 'tfg:grass/mars_dirt') + event.add('minecraft:mineable/shovel', 'tfg:grass/mars_clay_dirt') + event.add('minecraft:mineable/shovel', 'tfg:grass/mars_path') + event.add('minecraft:mineable/shovel', 'tfg:grass/mars_farmland') + event.add('minecraft:mineable/shovel', 'tfg:grass/amber_mycelium') + event.add('minecraft:mineable/shovel', 'tfg:grass/amber_clay_mycelium') + event.add('minecraft:mineable/shovel', 'tfg:grass/amber_kaolin_mycelium') + event.add('minecraft:mineable/shovel', 'tfg:grass/rusticus_mycelium') + event.add('minecraft:mineable/shovel', 'tfg:grass/rusticus_clay_mycelium') + event.add('minecraft:mineable/shovel', 'tfg:grass/rusticus_kaolin_mycelium') + event.add('minecraft:mineable/shovel', 'tfg:grass/sangnum_mycelium') + event.add('minecraft:mineable/shovel', 'tfg:grass/sangnum_clay_mycelium') + event.add('minecraft:mineable/shovel', 'tfg:grass/sangnum_kaolin_mycelium') + + event.add('tfc:bush_plantable_on', 'tfg:grass/mars_farmland') + event.add('tfc:grass_plantable_on', 'tfg:grass/mars_farmland') + event.add('tfc:creeping_plantable_on', 'tfg:grass/mars_farmland') + + event.add('tfg:decorative_plant_attachable', '#minecraft:logs') + event.add('tfg:decorative_plant_attachable', 'minecraft:mushroom_stem') + event.add('tfg:decorative_plant_attachable', 'species:alphacene_mushroom_block') + event.add('tfg:decorative_plant_attachable', 'species:alphacene_moss_block') + event.add('tfg:decorative_plant_attachable', 'ad_astra:aeronos_cap') + event.add('tfg:decorative_plant_attachable', 'ad_astra:strophar_cap') + event.add('tfg:decorative_plant_attachable', 'tfg:glacian_leaves') + event.add('tfg:decorative_plant_attachable', 'minecraft:nether_wart_block') + event.add('tfg:decorative_plant_attachable', 'minecraft:warped_wart_block') + event.add('tfg:decorative_plant_attachable', 'betterend:cave_bush') + event.add('tfg:decorative_plant_attachable', 'betterend:lucernia_leaves') + + event.add('minecraft:mineable/shovel', 'tfg:ash_pile') + event.add('minecraft:mineable/shovel', 'tfg:pile/black_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/white_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/brown_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/red_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/yellow_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/pink_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/green_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/moon_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/mars_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/venus_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/hematitic_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/mars_sand_covering') + event.add('minecraft:mineable/shovel', 'tfg:pile/venus_sand_covering') + event.add('minecraft:mineable/shovel', 'tfg:pile/hematitic_sand_covering') +} + +function registerTFGMarsBiomeTags(event) { + + global.MARS_BIOMES.forEach(biome => { + event.add('tfg:mars_biomes', biome) + }) + + event.add('sandworm_mod:can_spawn_sandworms', 'tfg:mars/martian_dunes') + event.add('sandworm_mod:can_spawn_sandworms', 'tfg:mars/martian_deep_desert') + + event.add('tfg:has_dark_sand_particles', 'tfg:mars/martian_dunes') + event.add('tfg:has_dark_sand_particles', 'tfg:mars/martian_deep_desert') + event.add('tfg:has_dark_sand_particles', 'tfg:mars/martian_mountains') + event.add('tfg:has_medium_sand_particles', 'tfg:mars/amber_plains') + event.add('tfg:has_medium_sand_particles', 'tfg:mars/amber_hills') + event.add('tfg:has_medium_sand_particles', 'tfg:mars/rusticus_plains') + event.add('tfg:has_medium_sand_particles', 'tfg:mars/rusticus_hills') + event.add('tfg:has_medium_sand_particles', 'tfg:mars/sangnum_plains') + event.add('tfg:has_medium_sand_particles', 'tfg:mars/sangnum_hills') + event.add('tfg:has_light_sand_particles', 'tfg:mars/martian_dune_edge') + event.add('tfg:has_light_sand_particles', 'tfg:mars/amber_edge') + event.add('tfg:has_light_sand_particles', 'tfg:mars/rusticus_edge') + event.add('tfg:has_light_sand_particles', 'tfg:mars/sangnum_edge') + event.add('tfg:has_light_sand_particles', 'tfg:mars/martian_river') + + event.add('tfg:has_mild_dust_storms', 'tfg:mars/martian_mountains') + event.add('tfg:has_mild_dust_storms', 'tfg:mars/martian_river') + event.add('tfg:has_mild_dust_storms', 'tfg:mars/amber_hills') + event.add('tfg:has_mild_dust_storms', 'tfg:mars/rusticus_hills') + event.add('tfg:has_mild_dust_storms', 'tfg:mars/sangnum_hills') + event.add('tfg:has_moderate_dust_storms', 'tfg:mars/amber_plains') + event.add('tfg:has_moderate_dust_storms', 'tfg:mars/amber_edge') + event.add('tfg:has_moderate_dust_storms', 'tfg:mars/rusticus_plains') + event.add('tfg:has_moderate_dust_storms', 'tfg:mars/rusticus_edge') + event.add('tfg:has_moderate_dust_storms', 'tfg:mars/sangnum_plains') + event.add('tfg:has_moderate_dust_storms', 'tfg:mars/sangnum_edge') + event.add('tfg:has_severe_dust_storms', 'tfg:mars/martian_dunes') + event.add('tfg:has_severe_dust_storms', 'tfg:mars/martian_deep_desert') +} + +function registerTFGMarsEntityTypeTags(event) { + + const ENTITIES = [ + 'tfg:sniffer', + 'tfg:glacian_ram', + 'tfg:wraptor', + 'species:goober', + 'species:cruncher', + 'species:springling', + 'species:quake', + 'species:stackatick', + 'endermanoverhaul:crimson_forest_enderman', + 'endermanoverhaul:warped_forest_enderman', + 'endermanoverhaul:badlands_enderman', + 'endermanoverhaul:cave_enderman', + 'wan_ancient_beasts:walker', + 'wan_ancient_beasts:eater', + 'wan_ancient_beasts:crusher', + 'wan_ancient_beasts:soarer', + 'wan_ancient_beasts:glider', + 'wan_ancient_beasts:toxlacanth', + 'wan_ancient_beasts:surfer', + 'tfg:surfer' + ] + + ENTITIES.forEach(entity => { + event.add('ad_astra:can_survive_extreme_cold', entity) + event.add('ad_astra:lives_without_oxygen', entity) + }) + + event.add('tfc:deals_piercing_damage', 'tfg:wraptor') + event.add('tfc:deals_piercing_damage', 'species:cruncher') + event.add('tfc:deals_piercing_damage', 'wan_ancient_beasts:eater') + event.add('tfc:deals_piercing_damage', 'wan_ancient_beasts:soarer') + event.add('tfc:deals_piercing_damage', 'wan_ancient_beasts:glider') + event.add('tfc:deals_piercing_damage', 'ad_astra:martian_raptor') + event.add('tfc:deals_crushing_damage', 'species:quake') + event.add('tfc:deals_crushing_damage', 'wan_ancient_beasts:walker') + event.add('tfc:deals_crushing_damage', 'wan_ancient_beasts:crusher') + event.add('tfc:deals_slashing_damage', 'endermanoverhaul:crimson_forest_enderman') + event.add('tfc:deals_slashing_damage', 'endermanoverhaul:warped_forest_enderman') + event.add('tfc:deals_slashing_damage', 'endermanoverhaul:badlands_enderman') + event.add('tfc:deals_slashing_damage', 'endermanoverhaul:cave_enderman') + + // this guy has a bounce animation that looks silly in low grav + event.add('tfg:ignores_gravity', 'wan_ancient_beasts:crusher') + // this huge guy also looks silly in low grav + event.add('tfg:ignores_gravity', 'wan_ancient_beasts:walker') + event.add('tfg:ignores_gravity', 'wan_ancient_beasts:eater') + // flying mobs + event.add('tfg:ignores_gravity', 'wan_ancient_beasts:soarer') + event.add('tfg:ignores_gravity', 'wan_ancient_beasts:glider') + // swimming mobs + event.add('tfg:ignores_gravity', 'tfg:surfer') + event.add('tfg:ignores_gravity', 'wan_ancient_beasts:toxlacanth') + event.add('tfg:ignores_gravity', 'endermanoverhaul:coral_enderman') +} + +function registerTFGMarsPlacedFeatures(event) { + // Underground decoration + event.add('tfg:mars_underground_decoration', 'tfg:mars/underground/loose_rocks') + event.add('tfg:mars_underground_decoration', 'tfc:cave_spike') + event.add('tfg:mars_underground_decoration', 'tfc:cave_column') + event.add('tfg:mars_underground_decoration', 'tfc:large_cave_spike') + event.add('tfg:mars_underground_decoration', 'tfg:mars/underground/noise_cave_stalagmite') + event.add('tfg:mars_underground_decoration', 'tfg:mars/underground/noise_cave_stalagtite') + + event.add('tfg:mars_underground_decoration', 'tfg:mars/underground/calcite') + event.add('tfg:mars_underground_decoration', 'tfg:mars/underground/mega_calcite') + + event.add('tfg:mars_underground_decoration', 'tfg:mars/underground/ice_cave') + event.add('tfg:mars_underground_decoration', 'tfg:mars/underground/icicle') + event.add('tfg:mars_underground_decoration', 'tfg:mars/underground/icicle_extra') + event.add('tfg:mars_underground_decoration', 'tfg:mars/underground/ochrum_blob') + + event.add('tfg:mars_underground_decoration', "tfg:earth/geode/amethyst") + event.add('tfg:mars_underground_decoration', "tfg:earth/geode/barite") + event.add('tfg:mars_underground_decoration', "tfg:earth/geode/calcite") + event.add('tfg:mars_underground_decoration', "tfg:earth/geode/gypsum") + event.add('tfg:mars_underground_decoration', "tfg:earth/geode/opal") + event.add('tfg:mars_underground_decoration', "tfg:earth/geode/pyrite") + event.add('tfg:mars_underground_decoration', "tfg:earth/geode/quartzite") + + // Vegetation + event.add("tfg:mars_global_small_plants", "tfg:mars/tree/lucernia") + event.add("tfg:mars_global_small_plants", "tfg:mars/tree/lucernia_common") + event.add("tfg:mars_global_small_plants", "tfg:mars/tree/cave_bush") + event.add("tfg:mars_global_small_plants", "tfg:mars/tree/cave_bush_common") + event.add("tfg:mars_global_small_plants", "tfg:mars/surface/charnia") + event.add("tfg:mars_global_small_plants", "tfg:mars/surface/flamaea") + event.add("tfg:mars_global_small_plants", "tfg:mars/surface/lacugrove") + + event.add("tfg:mars_amber_vegetal_decoration", "#tfg:mars_global_small_plants") + event.add("tfg:mars_rusticus_vegetal_decoration", "#tfg:mars_global_small_plants") + event.add("tfg:mars_sangnum_vegetal_decoration", "#tfg:mars_global_small_plants") + + + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/crop/amber_root") + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/crop/blossom_berry") + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/crop/bolux_mushroom") + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/crop/cave_pumpkin") + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/crop/chorus_mushroom") + + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/lanceleaf") + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/lanceleaf_small") + + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/bulb_moss") + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/aurant_polypore") + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/filalux_wings") + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/filalux_wings_top") + + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/amber_grass") + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/flammalix") + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/lutebus") + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/orango") + + + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/crop/amber_root") + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/crop/blossom_berry") + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/crop/bolux_mushroom") + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/crop/chorus_mushroom") + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/crop/shadow_berry") + + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/lucernia_outer_leaves") + + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/bulb_moss") + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/aurant_polypore") + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/purple_polypore") + + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/aeridium") + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/flammalix") + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/lamellarium") + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/lutebus") + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/orango") + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/ruscus") + + + event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/crop/blossom_berry") + event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/crop/bolux_mushroom") + event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/crop/cave_pumpkin") + event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/crop/chorus_mushroom") + event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/crop/shadow_berry") + + event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/small_amaranita_mushroom") + event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/large_amaranita_mushroom") + + event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/purple_polypore") + event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/filalux_wings") + event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/filalux_wings_top") + + event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/cave_grass") + event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/clawfern") + event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/globulagus") + event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/lamellarium") + event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/ruscus") + + // Top layer + event.add("tfg:mars_top_layer_modification", "tfg:glow_lichen") + event.add("tfg:mars_top_layer_modification", "tfc:surface_loose_rocks") + event.add("tfg:mars_top_layer_modification", "tfg:mars/terrain/mars_poles") +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/moon/data.moon.js b/kubejs/server_scripts/tfg/moon/data.moon.js new file mode 100644 index 000000000..7e72dfc32 --- /dev/null +++ b/kubejs/server_scripts/tfg/moon/data.moon.js @@ -0,0 +1,38 @@ +"use strict"; + +function registerTFGMoonBedrockFluidVeins(event) { + + event.add('tfg:moon_helium_3', vein => { + vein.dimensions('ad_astra:moon') + vein.fluid(() => Fluid.of('gtceu:helium_3').fluid) + vein.weight(100) + vein.minimumYield(200) + vein.maximumYield(400) + vein.depletionAmount(1) + vein.depletionChance(1) + vein.depletedYield(200) + }) + + event.add('tfg:moon_helium', vein => { + vein.dimensions('ad_astra:moon') + vein.fluid(() => Fluid.of('gtceu:helium').fluid) + vein.weight(10) + vein.minimumYield(20) + vein.maximumYield(50) + vein.depletionAmount(1) + vein.depletionChance(1) + vein.depletedYield(20) + }) + + event.add('tfg:moon_argon', vein => { + vein.dimensions('ad_astra:moon') + vein.fluid(() => Fluid.of('gtceu:argon').fluid) + vein.weight(5) + vein.minimumYield(10) + vein.maximumYield(30) + vein.depletionAmount(1) + vein.depletionChance(1) + vein.depletedYield(10) + }) + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/moon/recipes.moon.js b/kubejs/server_scripts/tfg/moon/recipes.moon.js new file mode 100644 index 000000000..2a6ca6a5c --- /dev/null +++ b/kubejs/server_scripts/tfg/moon/recipes.moon.js @@ -0,0 +1,27 @@ +"use strict"; + +function registerTFGMoonRecipes(event) { + + // Cryo Fluix + event.recipes.gtceu.vacuum_freezer('gtceu:cryo_fluix') + .inputFluids(Fluid.of('gtceu:helium_3', 1000)) + .inputFluids(Fluid.of('tfg:fluix', 144)) + .outputFluids(Fluid.of('tfg:cryogenized_fluix', 576)) + .duration(30 * 20) + .EUt(GTValues.VA[GTValues.MV]) + .dimension('ad_astra:moon') + + event.recipes.gtceu.fluid_heater('tfg:cryo_fluix') + .inputFluids(Fluid.of('tfg:cryogenized_fluix', 576)) + .outputFluids(Fluid.of('tfg:fluix', 144)) + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.autoclave('tfg:cryo_fluix_pearl') + .inputFluids(Fluid.of('tfg:cryogenized_fluix', 576)) + .itemInputs('tfg:vitrified_pearl') + .itemOutputs('tfg:cryo_fluix_pearl') + .duration(300) + .EUt(GTValues.VA[GTValues.EV]) + .cleanroom(CleanroomType.CLEANROOM) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/moon/recipes.plants.js b/kubejs/server_scripts/tfg/moon/recipes.plants.js new file mode 100644 index 000000000..38c5e8f8b --- /dev/null +++ b/kubejs/server_scripts/tfg/moon/recipes.plants.js @@ -0,0 +1,118 @@ +"use strict"; + +function registerTFGMoonPlantRecipes(event) { + + // Plants - Can't use the default builder here because fertiliser is much harder to get on the moon, + // and we're using helium-3 as the fertiliser + + // Chorus + event.recipes.gtceu.greenhouse('tfg:chorus') + .notConsumable('8x tfg:lunar_chorus_flower') + .itemOutputs('64x minecraft:chorus_fruit') + .chancedOutput('8x tfg:lunar_chorus_flower', 750, 0) + .chancedOutput('8x tfg:lunar_chorus_flower', 500, 0) + .chancedOutput('8x tfg:lunar_chorus_flower', 750, 0) + .duration(36000) // 30 mins + .circuit(1) + .EUt(GTValues.VA[GTValues.MV]) + .dimension('ad_astra:moon') + + event.recipes.gtceu.greenhouse('tfg:chorus_helium') + .notConsumable('8x tfg:lunar_chorus_flower') + .inputFluids(Fluid.of('gtceu:helium_3', 2000)) + .itemOutputs('64x minecraft:chorus_fruit') + .chancedOutput('8x tfg:lunar_chorus_flower', 4000, 0) + .chancedOutput('8x tfg:lunar_chorus_flower', 3000, 0) + .chancedOutput('8x tfg:lunar_chorus_flower', 4000, 0) + .duration(12000) // 10 mins + .circuit(2) + .EUt(GTValues.VA[GTValues.MV]) + .dimension('ad_astra:moon') + + // Replace the built-in greg one to add a circuit + event.recipes.gtceu.fermenter('fermented_biomass') + .inputFluids(Fluid.of('gtceu:biomass', 100)) + .outputFluids(Fluid.of('gtceu:fermented_biomass', 100)) + .circuit(1) + .duration(150) + .EUt(2) + + event.recipes.gtceu.fermenter('tfg:chorus') + .itemInputs('minecraft:chorus_fruit') + .inputFluids(Fluid.of('gtceu:biomass', 20)) + .chancedOutput('ae2:ender_dust', 100, 0) + .outputFluids(Fluid.of('gtceu:nitrogen', 1000)) + .circuit(2) + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.MV]) + .dimension('ad_astra:moon') + + event.recipes.gtceu.fermenter('tfg:chorus_flower') + .itemInputs('tfg:lunar_chorus_flower') + .inputFluids(Fluid.of('gtceu:biomass', 20)) + .chancedOutput('ae2:ender_dust', 100, 0) + .outputFluids(Fluid.of('gtceu:nitrogen', 1000)) + .circuit(2) + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.MV]) + .dimension('ad_astra:moon') + + // Lightblooms + event.recipes.gtceu.greenhouse('tfg:lightbloom') + .notConsumable('8x minecraft:twisting_vines') + .itemOutputs('16x minecraft:twisting_vines') + .chancedOutput('minecraft:pearlescent_froglight', 2500, 0) + .chancedOutput('minecraft:verdant_froglight', 2500, 0) + .chancedOutput('minecraft:ochre_froglight', 2500, 0) + .duration(36000) // 30 mins + .circuit(1) + .EUt(GTValues.VA[GTValues.LV]) + .dimension('ad_astra:moon') + + event.recipes.gtceu.greenhouse('tfg:lightbloom_helium') + .notConsumable('8x minecraft:twisting_vines') + .inputFluids(Fluid.of('gtceu:helium_3', 2000)) + .itemOutputs('16x minecraft:twisting_vines') + .chancedOutput('minecraft:pearlescent_froglight', 3500, 0) + .chancedOutput('minecraft:verdant_froglight', 3500, 0) + .chancedOutput('minecraft:ochre_froglight', 3500, 0) + .duration(12000) // 30 mins + .circuit(2) + .EUt(GTValues.VA[GTValues.LV]) + .dimension('ad_astra:moon') + + event.recipes.gtceu.brewery('biomass_from_twisting_vines') + .itemInputs('minecraft:twisting_vines') + .inputFluids("#tfg:clean_water 20") + .outputFluids(Fluid.of('gtceu:biomass', 20)) + .duration(50) + .EUt(3) + + Ingredient.of('#tfg:moon_plants').stacks.forEach(element => { + const itemId = element.id; + const recipeId = `betterend:greenhouse_${itemId.replace(':', '_')}`; + + event.recipes.gtceu.greenhouse(recipeId) + .notConsumable(element.id) + .itemOutputs(`8x ${element.id}`) + .chancedOutput(element.id, 750, 0) + .chancedOutput(element.id, 500, 0) + .chancedOutput(element.id, 750, 0) + .duration(36000) // 30 mins + .circuit(1) + .EUt(GTValues.VA[GTValues.MV]) + .dimension('ad_astra:moon') + + event.recipes.gtceu.greenhouse(`${recipeId}_helium`) + .notConsumable(element.id) + .inputFluids(Fluid.of('gtceu:helium_3', 500)) + .itemOutputs(`8x ${element.id}`) + .chancedOutput(element.id, 4000, 0) + .chancedOutput(element.id, 3000, 0) + .chancedOutput(element.id, 4000, 0) + .duration(12000) // 30 mins + .circuit(2) + .EUt(GTValues.VA[GTValues.MV]) + .dimension('ad_astra:moon') + }); +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.space_ores.js b/kubejs/server_scripts/tfg/moon/recipes.regolith.js similarity index 63% rename from kubejs/server_scripts/tfg/recipes.space_ores.js rename to kubejs/server_scripts/tfg/moon/recipes.regolith.js index 5e6aa6393..1d43f7489 100644 --- a/kubejs/server_scripts/tfg/recipes.space_ores.js +++ b/kubejs/server_scripts/tfg/moon/recipes.regolith.js @@ -1,6 +1,6 @@ -// priority: 0 +"use strict"; -function registerTFGSpaceOres(event) { +function registerTFGMoonRegolithRecipes(event) { //#region Moon Harvester @@ -139,67 +139,6 @@ function registerTFGSpaceOres(event) { .itemOutputs('#forge:dusts/tin') .duration(20 * 45) .EUt(GTValues.VA[GTValues.MV]) - - //#region Mars Ores Line - - // Ostrum Harvester - - event.recipes.gtceu.ostrum_harvester(`tfg:ostrum_harvesting`) - .perTick(true) - .inputFluids('gtceu:drilling_fluid 4') - .perTick(false) - .dimension('ad_astra:mars') - .itemOutputsRanged('gtceu:ostrum_dust', 1, 5) - .duration(20 * 30) - .EUt(GTValues.VA[GTValues.LV]); - - - // Ostrum Linear Accelerator Recipes - - event.recipes.gtceu.ostrum_linear_accelerator('tfg:ostrum_transformation') - .inputFluids('gtceu:residual_radioactive_concoction 100') - .itemInputs('32x #forge:dusts/ostrum') - .chancedFluidOutputLogic($ChanceLogic.XOR) - .chancedFluidOutput('gtceu:lightweight_ostrum_vapor', 6000, 0) - .chancedFluidOutput('gtceu:ostrum_vapor', 3000, 0) - .chancedFluidOutput('gtceu:dense_ostrum_vapor', 1000, 0) - .dimension('ad_astra:mars') - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.EV]); - - event.recipes.gtceu.ostrum_linear_accelerator('tfg:lightweight_ostrum') - .inputFluids('gtceu:lightweight_ostrum_vapor 1000') - .inputFluids('gtceu:residual_radioactive_concoction 100') - .inputFluids(Fluid.of('tfg:heavy_water', 1000)) - .itemOutputsRanged('#forge:dusty_raw_materials/pitchblende', 1, 10) - .itemOutputsRanged('#forge:dusty_raw_materials/silver', 1, 10) - .itemOutputsRanged('#forge:dusty_raw_materials/tricalcium_phosphate', 1, 10) - .dimension('ad_astra:mars') - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.IV]); - - event.recipes.gtceu.ostrum_linear_accelerator('tfg:ostrum') - .inputFluids('gtceu:ostrum_vapor 1000') - .inputFluids('gtceu:residual_radioactive_concoction 100') - .inputFluids(Fluid.of('gtceu:radon', 100)) - .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/bauxite'), 1, 10) - .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/lead'), 1, 10) - .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/beryllium'), 1, 10) - .dimension('ad_astra:mars') - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.IV]); - - event.recipes.gtceu.ostrum_linear_accelerator('tfg:dense_ostrum') - .inputFluids('gtceu:dense_ostrum_vapor 1000') - .inputFluids('gtceu:residual_radioactive_concoction 100') - .inputFluids(Fluid.of('gtceu:tritiated_water', 500)) - .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/thorium'), 1, 10) - .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/uraninite'), 1, 10) - .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/hematite'), 1, 10) - .dimension('ad_astra:mars') - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.IV]); - - //#endregion + // #endregion } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/moon/tags.moon.js b/kubejs/server_scripts/tfg/moon/tags.moon.js new file mode 100644 index 000000000..33b50a4d3 --- /dev/null +++ b/kubejs/server_scripts/tfg/moon/tags.moon.js @@ -0,0 +1,117 @@ +"use strict"; + +function registerTFGMoonItemTags(event) { + + event.add('tfg:moon_plants', 'tfg:lunar_roots') + event.add('tfg:moon_plants', 'tfg:lunar_sprouts') + + event.add('tfc:compost_greens_high', 'minecraft:pearlescent_froglight') + event.add('tfc:compost_greens_high', 'minecraft:verdant_froglight') + event.add('tfc:compost_greens_high', 'minecraft:ochre_froglight') +} + +function registerTFGMoonBlockTags(event) { + + event.add('minecraft:rabbits_spawnable_on', '#ad_astra:moon_stone_replaceables') + event.add('species:limpet_spawnable_on', '#ad_astra:moon_stone_replaceables') + + event.add('ad_astra:moon_stone_replaceables', 'ad_astra:moon_sand') + event.add('ad_astra:moon_stone_replaceables', 'tfg:rock/hardened_moon_stone') + event.add('ad_astra:moon_stone_replaceables', 'tfc:sand/white') + event.add('ad_astra:moon_stone_replaceables', 'tfc:sand/black') + event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/gravel/diorite') + event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/gravel/gabbro') + event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/gravel/basalt') + event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/gravel/rhyolite') + event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/gravel/andesite') + event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/gravel/dacite') + event.add('ad_astra:moon_stone_replaceables', 'tfg:rock/gravel_moon') + event.add('ad_astra:moon_stone_replaceables', 'tfg:rock/gravel_moon_deepslate') + event.add('ad_astra:moon_stone_replaceables', 'tfg:rock/gravel_glacio') + event.add('ad_astra:moon_stone_replaceables', 'tfg:rock/hardened_moon_deepslate') + event.add('ad_astra:moon_stone_replaceables', 'ad_astra:glacio_stone') + event.add('ad_astra:moon_stone_replaceables', 'tfg:rock/hardened_glacio_stone') + event.add('ad_astra:moon_stone_replaceables', 'ad_astra:glacio_cobblestone') + event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/basalt') + event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/basalt') + event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/gabbro') + event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/gabbro') + event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/diorite') + event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/diorite') + event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/rhyolite') + event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/rhyolite') + event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/andesite') + event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/andesite') + event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/dacite') + event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/dacite') + + event.add('tfc:can_carve', '#ad_astra:moon_stone_replaceables') +} + +function registerTFGMoonBiomeTags(event) { + global.MOON_BIOMES.forEach(biome => { + event.add('tfg:moon_biomes', biome) + event.add('tfg:has_structure/meteors', biome) + event.add('tfg:has_structure/cheese_ores', biome) + event.add('tfg:has_structure/moonbase', biome) + event.add('tfg:has_structure/moon_rabbit_houses', biome) + event.add('species:limpet_spawns', biome) + }) +} + +function registerTFGMoonEntityTypeTags(event) { + const ENTITIES = [ + 'tfc:rat', + 'tfg:moon_rabbit', + 'minecraft:enderman', + 'minecraft:shulker', + 'minecraft:shulker_bullet', + 'minecraft:skeleton', + 'minecraft:stray', + 'species:limpet', + 'species:birt', + 'endermanoverhaul:windswept_hills_enderman', + 'endermanoverhaul:soulsand_valley_enderman', + 'endermanoverhaul:spirit', + 'endermanoverhaul:end_enderman', + 'endermanoverhaul:end_islands_enderman', + ] + + ENTITIES.forEach(entity => { + event.add('ad_astra:can_survive_extreme_cold', entity) + event.add('ad_astra:lives_without_oxygen', entity) + }) + + event.add('tfc:deals_piercing_damage', 'minecraft:stray') + event.add('tfc:deals_slashing_damage', 'minecraft:enderman') + event.add('tfc:deals_slashing_damage', 'endermanoverhaul:windswept_hills_enderman') + event.add('tfc:deals_slashing_damage', 'endermanoverhaul:soulsand_valley_enderman') + event.add('tfc:deals_piercing_damage', 'endermanoverhaul:end_enderman') + event.add('tfc:deals_slashing_damage', 'endermanoverhaul:end_islands_enderman') + event.add('tfc:deals_crushing_damage', 'ad_astra:star_crawler') + event.add('tfc:deals_crushing_damage', 'species:birt') + + event.add('tfg:ignores_gravity', 'minecraft:shulker_bullet') + event.add('tfg:ignores_gravity', 'endermanoverhaul:spirit') + event.add('tfg:ignores_gravity', 'species:birt') + event.add('tfg:ignores_gravity', 'ad_astra:star_crawler') +} + +function registerTFGMoonPlacedFeatures(event) { + event.add('tfg:moon_craters', 'tfg:moon/crater/extra_large') + event.add('tfg:moon_craters', 'tfg:moon/crater/large') + event.add('tfg:moon_craters', 'tfg:moon/crater/medium') + event.add('tfg:moon_craters', 'tfg:moon/crater/small') + + global.MOON_STONE_TYPES.forEach(stone => { + // only in the sparse ones + event.add('tfg:moon_large_rock_features', `tfg:moon/surface/delta/${stone}`) + // in all moon biomes + event.add('tfg:moon_small_rock_features', `tfg:moon/surface/pile/${stone}`) + event.add('tfg:moon_small_rock_features', `tfg:moon/surface/loose/${stone}`) + }) + + event.add('tfg:moon_small_rock_features', 'tfg:moon/surface/pile_moon_sand') + event.add('tfg:moon_small_rock_features', 'tfg:moon/surface/pile_white_sand') + event.add('tfg:moon_small_rock_features', 'tfg:moon/surface/pile_black_sand') +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfc/recipes.alabaster.js b/kubejs/server_scripts/tfg/natural_blocks/recipes.alabaster.js similarity index 98% rename from kubejs/server_scripts/tfc/recipes.alabaster.js rename to kubejs/server_scripts/tfg/natural_blocks/recipes.alabaster.js index 3fe1055cb..9c65df063 100644 --- a/kubejs/server_scripts/tfc/recipes.alabaster.js +++ b/kubejs/server_scripts/tfg/natural_blocks/recipes.alabaster.js @@ -1,7 +1,7 @@ // priority: 0 "use strict"; -function registerTFCAlabasterRecipes(event) { +function registerTFGAlabasterRecipes(event) { event.recipes.tfc.damage_inputs_shapeless_crafting(event.recipes.minecraft.crafting_shapeless('4x tfc:alabaster_brick', ['#forge:raw_materials/gypsum', '#tfc:chisels'])) .id('tfc:crafting/alabaster_brick/raw_gypsum') diff --git a/kubejs/server_scripts/tfg/recipes.collapse.js b/kubejs/server_scripts/tfg/natural_blocks/recipes.collapse.js similarity index 97% rename from kubejs/server_scripts/tfg/recipes.collapse.js rename to kubejs/server_scripts/tfg/natural_blocks/recipes.collapse.js index a61d69a52..2c39a3f07 100644 --- a/kubejs/server_scripts/tfg/recipes.collapse.js +++ b/kubejs/server_scripts/tfg/natural_blocks/recipes.collapse.js @@ -122,6 +122,10 @@ function registerTFGCollapseRecipes(event) { // #endregion // #region Other + event.recipes.tfc.collapse('#tfg:rock_slabs').id('tfg:collapse/rock_slabs') + event.recipes.tfc.collapse('#tfg:rock_stairs').id('tfg:collapse/rock_stairs') + event.recipes.tfc.collapse('#tfg:rock_walls').id('tfg:collapse/rock_walls') + event.recipes.tfc.collapse('minecraft:cobblestone', 'minecraft:stone') event.recipes.tfc.landslide('minecraft:cobblestone', 'minecraft:cobblestone') event.recipes.tfc.landslide('minecraft:mossy_cobblestone', 'minecraft:mossy_cobblestone') diff --git a/kubejs/server_scripts/tfg/natural_blocks/recipes.concrete.js b/kubejs/server_scripts/tfg/natural_blocks/recipes.concrete.js new file mode 100644 index 000000000..b305c5209 --- /dev/null +++ b/kubejs/server_scripts/tfg/natural_blocks/recipes.concrete.js @@ -0,0 +1,144 @@ +"use strict"; + +function registerTFGConcreteRecipes(event) { + + const recipe = event.recipes.gtceu.mixer('concrete_from_marble') + .itemInputs(Ingredient.of('#tfg:stone_dusts').subtract('gtceu:marble_dust').withCount(2), 'gtceu:marble_dust', 'gtceu:gypsum_dust') + .inputFluids("#tfg:clean_water 1000") + .outputFluids('gtceu:concrete 1152') + .duration(40) + .EUt(16) + + generateMixerRecipe(event, ['3x #tfg:stone_dusts', 'gtceu:clay_dust'], + "#tfg:clean_water 500", [], null, 'gtceu:concrete 576', 20, 16, 64, 'concrete_from_clay') + + generateMixerRecipe(event, ['3x #tfg:stone_dusts', 'gtceu:calcite_dust', 'gtceu:gypsum_dust'], + "#tfg:clean_water 1000", [], null, 'gtceu:concrete 1152', 40, 16, 64, 'concrete_from_calcite') + + //GT light/dark concrete recipe fix + + event.remove({ id: 'gtceu:fluid_solidifier/solidify_concrete_block' }) + event.remove({ id: 'gtceu:chemical_bath/light_to_dark_concrete' }) + + event.recipes.gtceu.fluid_solidifier('gtceu:fluid_solidifier/solidify_light_concrete') + .inputFluids(Fluid.of('gtceu:concrete', 144)) + .notConsumable('1x gtceu:block_casting_mold') + .itemOutputs('1x gtceu:light_concrete') + .duration(98) + .EUt(7) + + event.recipes.gtceu.chemical_bath('gtceu:chemical_bath/dark_concrete') + .inputFluids(Fluid.of('tfc:black_dye', 18)) + .itemInputs('1x gtceu:light_concrete') + .itemOutputs('1x gtceu:dark_concrete') + .duration(20) + .EUt(7) + + event.recipes.gtceu.extractor('gtceu:extractor/extract_light_concrete') + .itemInputs('1x gtceu:light_concrete') + .outputFluids(Fluid.of('gtceu:concrete', 144)) + .duration(98) + .EUt(30) + + event.stonecutting('gtceu:light_concrete_bricks', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_bricks') + event.stonecutting('gtceu:chiseled_light_concrete', 'gtceu:light_concrete').id('tfg:stonecutting/chiseled_light_concrete') + event.stonecutting('gtceu:light_concrete_tile', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_tile') + event.stonecutting('gtceu:light_concrete_small_tile', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_small_tile') + event.stonecutting('gtceu:light_concrete_windmill_a', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_windmill_a') + event.stonecutting('gtceu:light_concrete_windmill_b', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_windmill_b') + event.stonecutting('gtceu:small_light_concrete_bricks', 'gtceu:light_concrete').id('tfg:stonecutting/small_light_concrete_bricks') + event.stonecutting('gtceu:square_light_concrete_bricks', 'gtceu:light_concrete').id('tfg:stonecutting/square_light_concrete_bricks') + + event.stonecutting('gtceu:dark_concrete_bricks', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_bricks') + event.stonecutting('gtceu:chiseled_dark_concrete', 'gtceu:dark_concrete').id('tfg:stonecutting/chiseled_dark_concrete') + event.stonecutting('gtceu:dark_concrete_tile', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_tile') + event.stonecutting('gtceu:dark_concrete_small_tile', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_small_tile') + event.stonecutting('gtceu:dark_concrete_windmill_a', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_windmill_a') + event.stonecutting('gtceu:dark_concrete_windmill_b', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_windmill_b') + event.stonecutting('gtceu:small_dark_concrete_bricks', 'gtceu:dark_concrete').id('tfg:stonecutting/small_dark_concrete_bricks') + event.stonecutting('gtceu:square_dark_concrete_bricks', 'gtceu:dark_concrete').id('tfg:stonecutting/square_dark_concrete_bricks') + + // Handcrafted artisanal concrete + + event.recipes.firmalife.mixing_bowl() + .ingredients(['#tfg:stone_dusts', '#tfg:stone_dusts', '#forge:dusts/marble', '#forge:dusts/gypsum'], Fluid.of('minecraft:water', 1000)) + .outputFluid(Fluid.of('gtceu:concrete', 1000)) + + event.recipes.firmalife.mixing_bowl() + .ingredients(['#tfg:stone_dusts', '#tfg:stone_dusts', '#tfg:stone_dusts', '#forge:dusts/clay'], Fluid.of('minecraft:water', 500)) + .outputFluid(Fluid.of('gtceu:concrete', 500)) + + event.recipes.firmalife.mixing_bowl() + .ingredients(['#tfg:stone_dusts', '#tfg:stone_dusts', '#tfg:stone_dusts', '#forge:dusts/calcite', '#forge:dusts/gypsum'], Fluid.of('minecraft:water', 1000)) + .outputFluid(Fluid.of('gtceu:concrete', 1000)) + + event.recipes.tfc.barrel_sealed(1000) + .inputFluid(Fluid.of('gtceu:concrete', 144)) + .inputItem('gtceu:wood_frame') + .outputItem('gtceu:light_concrete') + .id('tfg:barrel/light_concrete') + + event.recipes.tfc.barrel_sealed(1000) + .inputFluid(Fluid.of('gtceu:concrete', 96)) + .inputItem('tfg:rebar_support') + .outputItem('tfg:reinforced_light_concrete_support') + .id('tfg:barrel/reinforced_light_concrete_support') + + event.recipes.tfc.barrel_sealed(500) + .inputItem('gtceu:light_concrete') + .inputFluid(Fluid.of('tfc:black_dye', 18)) + .outputItem('gtceu:dark_concrete') + .id('tfg:barrel/dark_concrete') + + event.recipes.tfc.barrel_sealed(500) + .inputItem('tfg:light_concrete_support') + .inputFluid(Fluid.of('tfc:black_dye', 10)) + .outputItem('tfg:dark_concrete_support') + .id('tfg:barrel/dark_concrete_support') + + event.recipes.tfc.barrel_sealed(500) + .inputItem('tfg:reinforced_light_concrete_support') + .inputFluid(Fluid.of('tfc:black_dye', 10)) + .outputItem('tfg:reinforced_dark_concrete_support') + .id('tfg:barrel/reinforced_dark_concrete_support') + + // Titanium concrete + event.recipes.gtceu.assembler('tfg:titanium_concrete') + .itemInputs('2x #forge:rods/titanium', '#forge:dusts/kaolinite') + .inputFluids(Fluid.of('gtceu:concrete', 144 * 1.5)) + .itemOutputs('tfg:titanium_concrete') + .circuit(2) + .duration(20) + .EUt(GTValues.VH[GTValues.EV]) + + event.recipes.gtceu.laser_engraver('tfg:titanium_concrete_bricks') + .itemInputs('tfg:polished_titanium_concrete') + .notConsumable('#forge:lenses/light_blue') + .itemOutputs('tfg:titanium_concrete_bricks') + .duration(20 * (2.5)) + .EUt(GTValues.VA[GTValues.LV]) + event.recipes.gtceu.laser_engraver('tfg:titanium_concrete_bricks_small') + .itemInputs('tfg:polished_titanium_concrete') + .notConsumable('#forge:lenses/pink') + .itemOutputs('tfg:titanium_concrete_bricks_small') + .duration(20 * (2.5)) + .EUt(GTValues.VA[GTValues.LV]) + event.recipes.gtceu.laser_engraver('tfg:titanium_concrete_bricks_square') + .itemInputs('tfg:polished_titanium_concrete') + .notConsumable('#forge:lenses/green') + .itemOutputs('tfg:titanium_concrete_bricks_square') + .duration(20 * (2.5)) + .EUt(GTValues.VA[GTValues.LV]) + event.recipes.gtceu.laser_engraver('tfg:titanium_concrete_tile') + .itemInputs('tfg:polished_titanium_concrete') + .notConsumable('#forge:lenses/red') + .itemOutputs('tfg:titanium_concrete_tile') + .duration(20 * (2.5)) + .EUt(GTValues.VA[GTValues.LV]) + event.recipes.gtceu.laser_engraver('tfg:titanium_concrete_tile_small') + .itemInputs('tfg:polished_titanium_concrete') + .notConsumable('#forge:lenses/black') + .itemOutputs('tfg:titanium_concrete_tile_small') + .duration(20 * (2.5)) + .EUt(GTValues.VA[GTValues.LV]) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfc/recipes.dirt.js b/kubejs/server_scripts/tfg/natural_blocks/recipes.dirt.js similarity index 95% rename from kubejs/server_scripts/tfc/recipes.dirt.js rename to kubejs/server_scripts/tfg/natural_blocks/recipes.dirt.js index 89f2ba194..714706f91 100644 --- a/kubejs/server_scripts/tfc/recipes.dirt.js +++ b/kubejs/server_scripts/tfg/natural_blocks/recipes.dirt.js @@ -1,7 +1,14 @@ // priority: 0 "use strict"; -function registerTFCDirtRecipes(event) { +function registerTFGDirtRecipes(event) { + + // Dirt creation + event.recipes.gtceu.macerator('dirt_from_bio_chaff') + .itemInputs('gtceu:bio_chaff') + .itemOutputs('tfc:dirt/loam') + .duration(300) + .EUt(4) // Loam + Silt -> Silty Loam (Миксер) event.recipes.gtceu.mixer('silty_loam_dirt') diff --git a/kubejs/server_scripts/tfg/recipes.rocks.js b/kubejs/server_scripts/tfg/natural_blocks/recipes.rocks.js similarity index 96% rename from kubejs/server_scripts/tfg/recipes.rocks.js rename to kubejs/server_scripts/tfg/natural_blocks/recipes.rocks.js index c69181515..da873e89a 100644 --- a/kubejs/server_scripts/tfg/recipes.rocks.js +++ b/kubejs/server_scripts/tfg/natural_blocks/recipes.rocks.js @@ -14,11 +14,13 @@ function registerTFGRockRecipes(event) { { loose: 'tfg:brick/deepslate', block: '4x minecraft:deepslate_bricks' }, { loose: 'beneath:blackstone_pebble', block: 'tfg:rock/cobble_blackstone' }, + { loose: 'beneath:blackstone_brick', block: 'minecraft:polished_blackstone_bricks' }, { loose: 'tfg:loose/dripstone', block: 'tfg:rock/cobble_dripstone' }, { loose: 'tfg:brick/dripstone', block: '4x create:cut_dripstone_bricks' }, { loose: 'tfg:loose/crackrack', block: 'tfg:rock/cobble_crackrack' }, + { loose: 'minecraft:nether_brick', block: 'minecraft:nether_bricks' }, { loose: 'tfg:loose/moon_stone', block: 'ad_astra:moon_cobblestone' }, { loose: 'tfg:brick/moon_stone', block: '4x ad_astra:moon_stone_bricks' }, @@ -63,7 +65,7 @@ function registerTFGRockRecipes(event) { .itemInputs(`5x ${x.loose}`) .inputFluids(Fluid.of('gtceu:concrete', 72)) .itemOutputs(x.block) - .circuit(2) + .circuit(1) .duration(50) .EUt(2) @@ -157,6 +159,7 @@ function registerTFGRockRecipes(event) { // #region AQUEDUCTS const AQUEDUCTS = [ { brick: 'tfg:brick/deepslate', aqueduct: 'tfg:rock/aqueduct_deepslate' }, + { brick: 'beneath:blackstone_brick', aqueduct: 'beneath:blackstone_aqueduct' }, { brick: 'tfg:brick/dripstone', aqueduct: 'tfg:rock/aqueduct_dripstone' }, { brick: 'minecraft:nether_brick', aqueduct: 'tfg:rock/aqueduct_nether' }, { brick: 'tfg:brick/moon_stone', aqueduct: 'tfg:rock/aqueduct_moon_stone' }, @@ -166,7 +169,8 @@ function registerTFGRockRecipes(event) { { brick: 'tfg:brick/mercury_stone', aqueduct: 'tfg:rock/aqueduct_mercury_stone' }, { brick: 'tfg:brick/glacio_stone', aqueduct: 'tfg:rock/aqueduct_glacio_stone' }, { brick: 'tfg:brick/permafrost', aqueduct: 'tfg:rock/aqueduct_permafrost' }, - { brick: 'tfg:brick/red_granite', aqueduct: 'tfg:rock/aqueduct_red_granite' } + { brick: 'tfg:brick/red_granite', aqueduct: 'tfg:rock/aqueduct_red_granite' }, + { brick: 'gtceu:stone_ingot', aqueduct: 'tfg:rock/aqueduct_stone' } ] AQUEDUCTS.forEach(x => { @@ -177,15 +181,14 @@ function registerTFGRockRecipes(event) { A: x.brick, B: 'tfc:mortar' }) - }) - event.shaped('tfg:rock/aqueduct_stone', [ - 'ABA', - 'ABA', - 'AAA' - ], { - A: 'gtceu:stone_ingot', - B: 'tfc:mortar' + event.recipes.gtceu.assembler(`${x.brick}_to_${x.aqueduct}`.replace(/:/g, '_')) + .itemInputs(`3x ${x.brick}`) + .circuit(3) + .inputFluids(Fluid.of('gtceu:concrete', 16)) + .itemOutputs(x.aqueduct) + .duration(50) + .EUt(2) }) @@ -573,19 +576,19 @@ function registerTFGRockRecipes(event) { dust: 'tfg:moon_deepslate_dust', loose: null, stonecutting: true }, // Cobble - Mossy { raw: 'tfg:rock/polished_moon_deepslate', stair: 'tfg:rock/polished_moon_deepslate_stairs', slab: 'tfg:rock/polished_moon_deepslate_slab', wall: 'tfg:rock/polished_moon_deepslate_wall', - dust: 'gtceu:moon_deepslate_dust', loose: null, stonecutting: true }, // Smooth + dust: 'tfg:moon_deepslate_dust', loose: null, stonecutting: true }, // Smooth { raw: 'tfg:rock/bricks_moon_deepslate', stair: 'tfg:rock/bricks_moon_deepslate_stairs', slab: 'tfg:rock/bricks_moon_deepslate_slab', wall: 'tfg:rock/bricks_moon_deepslate_wall', - dust: 'gtceu:moon_deepslate_dust', loose: null, stonecutting: true }, // Bricks + dust: 'tfg:moon_deepslate_dust', loose: null, stonecutting: true }, // Bricks { raw: 'tfg:rock/cracked_bricks_moon_deepslate', stair: 'tfg:rock/cracked_bricks_moon_deepslate_stairs', slab: 'tfg:rock/cracked_bricks_moon_deepslate_slab', wall: 'tfg:rock/cracked_bricks_moon_deepslate_wall', - dust: 'gtceu:moon_deepslate_dust', loose: null, stonecutting: true }, // Bricks - Cracked + dust: 'tfg:moon_deepslate_dust', loose: null, stonecutting: true }, // Bricks - Cracked { raw: 'tfg:rock/mossy_bricks_moon_deepslate', stair: 'tfg:rock/mossy_bricks_moon_deepslate_stairs' , slab: 'tfg:rock/mossy_bricks_moon_deepslate_slab', wall: 'tfg:rock/mossy_bricks_moon_deepslate_wall', - dust: 'gtceu:moon_deepslate_dust', loose: null, stonecutting: true }, // Bricks - Mossy + dust: 'tfg:moon_deepslate_dust', loose: null, stonecutting: true }, // Bricks - Mossy { raw: 'tfg:rock/chiseled_bricks_moon_deepslate', stair: 'tfg:rock/chiseled_bricks_moon_deepslate_stairs', slab: 'tfg:rock/chiseled_bricks_moon_deepslate_slab', wall: 'tfg:rock/chiseled_bricks_moon_deepslate_wall', - dust: 'gtceu:moon_deepslate_dust', loose: null, stonecutting: true }, // Bricks - Extra + dust: 'tfg:moon_deepslate_dust', loose: null, stonecutting: true }, // Bricks - Extra // Permafrost { raw: 'ad_astra:permafrost', stair: 'tfg:rock/permafrost_stairs', slab: 'tfg:rock/permafrost_slab', wall: 'tfg:rock/permafrost_wall', @@ -721,16 +724,16 @@ function registerTFGRockRecipes(event) { // #region @Create Stones // @Create Andesite { raw: 'create:cut_andesite', stair: 'create:cut_andesite_stairs', slab: 'create:cut_andesite_slab', wall: 'create:cut_andesite_wall', - dust: 'tfg:andesite_dust', loose: null, stonecutting: false }, // Raw + dust: 'gtceu:andesite_dust', loose: null, stonecutting: false }, // Raw { raw: 'create:polished_cut_andesite', stair: 'create:polished_cut_andesite_stairs', slab: 'create:polished_cut_andesite_slab', wall: 'create:polished_cut_andesite_wall', - dust: 'tfg:andesite_dust', loose: null, stonecutting: false }, // Smooth + dust: 'gtceu:andesite_dust', loose: null, stonecutting: false }, // Smooth { raw: 'create:cut_andesite_bricks', stair: 'create:cut_andesite_brick_stairs', slab: 'create:cut_andesite_brick_slab', wall: 'create:cut_andesite_brick_wall', - dust: 'tfg:andesite_dust', loose: null, stonecutting: false }, // Bricks + dust: 'gtceu:andesite_dust', loose: null, stonecutting: false }, // Bricks { raw: 'create:small_andesite_bricks', stair: 'create:small_andesite_brick_stairs', slab: 'create:small_andesite_brick_slab', wall: 'create:small_andesite_brick_wall', - dust: 'tfg:andesite_dust', loose: null, stonecutting: false }, // Bricks - Extra + dust: 'gtceu:andesite_dust', loose: null, stonecutting: false }, // Bricks - Extra // @Create Calcite { raw: 'create:cut_calcite', stair: 'create:cut_calcite_stairs', slab: 'create:cut_calcite_slab', wall: 'create:cut_calcite_wall', @@ -760,16 +763,16 @@ function registerTFGRockRecipes(event) { // @Create Diorite { raw: 'create:cut_diorite', stair: 'create:cut_diorite_stairs', slab: 'create:cut_diorite_slab', wall: 'create:cut_diorite_wall', - dust: 'tfg:diorite_dust', loose: null, stonecutting: false }, // Raw + dust: 'gtceu:diorite_dust', loose: null, stonecutting: false }, // Raw { raw: 'create:polished_cut_diorite', stair: 'create:polished_cut_diorite_stairs', slab: 'create:polished_cut_diorite_slab', wall: 'create:polished_cut_diorite_wall', - dust: 'tfg:diorite_dust', loose: null, stonecutting: false }, // Smooth + dust: 'gtceu:diorite_dust', loose: null, stonecutting: false }, // Smooth { raw: 'create:cut_diorite_bricks', stair: 'create:cut_diorite_brick_stairs', slab: 'create:cut_diorite_brick_slab', wall: 'create:cut_diorite_brick_wall', - dust: 'tfg:diorite_dust', loose: null, stonecutting: false }, // Bricks + dust: 'gtceu:diorite_dust', loose: null, stonecutting: false }, // Bricks { raw: 'create:small_diorite_bricks', stair: 'create:small_diorite_brick_stairs', slab: 'create:small_diorite_brick_slab', wall: 'create:small_diorite_brick_wall', - dust: 'tfg:diorite_dust', loose: null, stonecutting: false }, // Bricks - Extra + dust: 'gtceu:diorite_dust', loose: null, stonecutting: false }, // Bricks - Extra // @Create Limestone { raw: 'create:cut_limestone', stair: 'create:cut_limestone_stairs', slab: 'create:cut_limestone_slab', wall: 'create:cut_limestone_wall', @@ -1238,4 +1241,29 @@ function registerTFGRockRecipes(event) { }) //#endregion Magma Blocks + + //#region GT marble + event.stonecutting('gtceu:polished_marble', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_polished_marble') + event.stonecutting('gtceu:chiseled_marble', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_chiseled_marble') + event.stonecutting('gtceu:marble_tile', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_marble_tile') + event.stonecutting('gtceu:marble_small_tile', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_marble_small_tile') + event.stonecutting('gtceu:marble_windmill_a', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_marble_windmill_a') + event.stonecutting('gtceu:marble_windmill_b', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_marble_windmill_b') + event.stonecutting('gtceu:small_marble_bricks', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_small_marble_bricks') + event.stonecutting('gtceu:square_marble_bricks', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_square_marble_bricks') + //#endregion + + // Blackstone Buttons + removeCutterRecipe(event, 'blackstone_button') + removeCutterRecipe(event, 'blackstone_button_water') + removeCutterRecipe(event, 'blackstone_button_distilled_water') + removeCutterRecipe(event, 'cut_polished_blackstone_brickslab_into_button') + removeCutterRecipe(event, 'cut_polished_blackstone_brickslab_into_button_water') + removeCutterRecipe(event, 'cut_polished_blackstone_brickslab_into_button_distilled_water') + + event.recipes.gtceu.cutter('tfg:blackstone_button') + .itemInputs('minecraft:polished_blackstone_pressure_plate') + .itemOutputs('6x minecraft:polished_blackstone_button') + .EUt(7) + .duration(100) } \ No newline at end of file diff --git a/kubejs/server_scripts/tfc/recipes.sand.js b/kubejs/server_scripts/tfg/natural_blocks/recipes.sand.js similarity index 93% rename from kubejs/server_scripts/tfc/recipes.sand.js rename to kubejs/server_scripts/tfg/natural_blocks/recipes.sand.js index 2ef29e6a1..6b035dca2 100644 --- a/kubejs/server_scripts/tfc/recipes.sand.js +++ b/kubejs/server_scripts/tfg/natural_blocks/recipes.sand.js @@ -1,7 +1,7 @@ // priority: 0 "use strict"; -function registerTFCSandRecipes(event) { +function registerTFGSandRecipes(event) { // Нефтеносный -> Желтый песок event.recipes.gtceu.centrifuge('oilsands_ore_separation') @@ -210,4 +210,25 @@ function registerTFCSandRecipes(event) { event.recipes.greate.pressing('tfc:sand/pink', '#tfc:pink_gravel') .recipeTier(1) .id(`greate:pressing/pink_gravel_to_sand`) + + // Quartz sand + event.shaped('gtceu:quartz_sand_dust', [ + 'A', + 'B' + ], { + A: '#forge:sand', + B: '#forge:tools/mortars' + }).id('gtceu:shaped/quartz_sand') + + event.recipes.gtceu.macerator('quartz_sand_from_sand') + .itemInputs('#forge:sand') + .itemOutputs('gtceu:quartz_sand_dust') + .duration(30) + .EUt(2) + + event.recipes.gtceu.electrolyzer('sand_electrolysis') + .itemInputs('8x #forge:sand') + .itemOutputs('gtceu:silicon_dioxide_dust') + .duration(500) + .EUt(25) } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.stone_dusts.js b/kubejs/server_scripts/tfg/natural_blocks/recipes.stone_dusts.js similarity index 95% rename from kubejs/server_scripts/tfg/recipes.stone_dusts.js rename to kubejs/server_scripts/tfg/natural_blocks/recipes.stone_dusts.js index 2ce4ca2eb..f805affa3 100644 --- a/kubejs/server_scripts/tfg/recipes.stone_dusts.js +++ b/kubejs/server_scripts/tfg/natural_blocks/recipes.stone_dusts.js @@ -6,6 +6,24 @@ */ function registerTFGStoneDustRecipes(event) { + event.recipes.gtceu.electrolyzer('gtceu:decomposition_electrolyzing_clay') + .itemInputs('13x #forge:dusts/clay') + .itemOutputs('2x #forge:dusts/sodium', '1x #forge:dusts/lithium', '2x #forge:dusts/aluminium', '2x #forge:dusts/silicon') + .outputFluids(Fluid.of('minecraft:water', 6000)) + .duration(GTMaterials.Clay.getMass() * 13) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.centrifuge('gtceu:stone_dust_separation') + .itemInputs('gtceu:stone_dust') + .chancedOutput('#forge:small_dusts/quartzite', 2500, 0) + .chancedOutput('#forge:small_dusts/potassium_feldspar', 2500, 0) + .chancedOutput('#forge:small_dusts/marble', 2222, 0) + .chancedOutput('#forge:small_dusts/biotite', 1111, 0) + .chancedOutput('#forge:small_dusts/metal_mixture', 825, 80) + .chancedOutput('#forge:small_dusts/sodalite', 550, 55) + .duration(12 * 20) + .EUt(GTValues.VA[GTValues.HV]) + event.remove({ id: 'gtceu:electrolyzer/decomposition_electrolyzing_blackstone' }) event.recipes.gtceu.centrifuge('gtceu:decomposition_centrifuging__diorite') diff --git a/kubejs/server_scripts/tfc/recipes.stone.js b/kubejs/server_scripts/tfg/natural_blocks/recipes.tfc_stone.js similarity index 99% rename from kubejs/server_scripts/tfc/recipes.stone.js rename to kubejs/server_scripts/tfg/natural_blocks/recipes.tfc_stone.js index 28df78c39..7b5869546 100644 --- a/kubejs/server_scripts/tfc/recipes.stone.js +++ b/kubejs/server_scripts/tfg/natural_blocks/recipes.tfc_stone.js @@ -290,7 +290,7 @@ function registerTFCStoneRecipes(event) { event.recipes.gtceu.assembler(`aqueduct_${stone}`) .itemInputs(`3x tfc:brick/${stone}`) - .circuit(0) + .circuit(3) .inputFluids(Fluid.of('gtceu:concrete', 16)) .itemOutputs(`tfc:rock/aqueduct/${stone}`) .duration(50) diff --git a/kubejs/server_scripts/tfg/tags.stones.js b/kubejs/server_scripts/tfg/natural_blocks/tags.stones.js similarity index 99% rename from kubejs/server_scripts/tfg/tags.stones.js rename to kubejs/server_scripts/tfg/natural_blocks/tags.stones.js index d1c642af9..2df6ade7c 100644 --- a/kubejs/server_scripts/tfg/tags.stones.js +++ b/kubejs/server_scripts/tfg/natural_blocks/tags.stones.js @@ -1,6 +1,6 @@ // priority: 0 -function registerTFGItemStoneTags(event) { +function registerTFGStoneItemTags(event) { event.add('tfc:fluxstone', 'tfg:loose/dripstone') diff --git a/kubejs/server_scripts/gregtech/loot.js b/kubejs/server_scripts/tfg/ores_and_materials/loot.ores.js similarity index 99% rename from kubejs/server_scripts/gregtech/loot.js rename to kubejs/server_scripts/tfg/ores_and_materials/loot.ores.js index 70f787b9c..0d8f49c3d 100644 --- a/kubejs/server_scripts/gregtech/loot.js +++ b/kubejs/server_scripts/tfg/ores_and_materials/loot.ores.js @@ -34,7 +34,7 @@ const STONE_TYPES_TO_COBBLE = { permafrost: 'gtceu:ice_dust' } -const registerGTCEULoots = (event) => { +const registerTFGOreLoots = (event) => { // Have to define these here because normal loot table jsons don't support checking for hammers diff --git a/kubejs/server_scripts/tfg/ores_and_materials/recipes.alloys.js b/kubejs/server_scripts/tfg/ores_and_materials/recipes.alloys.js new file mode 100644 index 000000000..6700415b1 --- /dev/null +++ b/kubejs/server_scripts/tfg/ores_and_materials/recipes.alloys.js @@ -0,0 +1,216 @@ +// priority: 0 +"use strict"; + +/** + * @param {Internal.RecipesEventJS} event + */ +function registerTFGAlloyingRecipes(event) { + + // #region Colored steels + + event.replaceInput('gtceu:shaped/lv_machine_hull', '#forge:plates/wrought_iron', '#forge:plates/red_steel') + + event.remove({id:'gtceu:electric_blast_furnace/blast_black_steel_gas'}) + event.remove({id:'gtceu:electric_blast_furnace/blast_black_steel'}) + event.remove({id:'gtceu:electric_blast_furnace/blast_red_steel_gas'}) + event.remove({id:'gtceu:electric_blast_furnace/blast_red_steel'}) + event.remove({id:'gtceu:electric_blast_furnace/blast_blue_steel_gas'}) + event.remove({id:'gtceu:electric_blast_furnace/blast_blue_steel'}) + + event.recipes.gtceu.electric_blast_furnace('blast_black_steel_gas_mv') + .itemInputs('gtceu:black_steel_dust') + .itemOutputs('tfc:metal/ingot/black_steel') + .inputFluids(Fluid.of('gtceu:nitrogen', 1000)) + .duration(469) + .circuit(2) + .EUt(GTValues.VA[GTValues.MV]) + .blastFurnaceTemp(1000) + + event.recipes.gtceu.electric_blast_furnace('blast_black_steel_mv') + .itemInputs('gtceu:black_steel_dust') + .itemOutputs('tfc:metal/ingot/black_steel') + .duration(700) + .circuit(1) + .EUt(GTValues.VA[GTValues.MV]) + .blastFurnaceTemp(1000) + + event.recipes.gtceu.electric_blast_furnace('blast_red_steel_gas_mv') + .itemInputs('gtceu:red_steel_dust') + .itemOutputs('tfc:metal/ingot/red_steel') + .inputFluids(Fluid.of('gtceu:nitrogen', 1000)) + .duration(670) + .circuit(2) + .EUt(GTValues.VA[GTValues.MV]) + .blastFurnaceTemp(1000) + + event.recipes.gtceu.electric_blast_furnace('blast_red_steel_mv') + .itemInputs('gtceu:red_steel_dust') + .itemOutputs('tfc:metal/ingot/red_steel') + .duration(1000) + .circuit(1) + .EUt(GTValues.VA[GTValues.MV]) + .blastFurnaceTemp(1000) + + event.recipes.gtceu.electric_blast_furnace('blast_blue_steel_gas_mv') + .itemInputs('gtceu:blue_steel_dust') + .itemOutputs('tfc:metal/ingot/blue_steel') + .inputFluids(Fluid.of('gtceu:nitrogen', 1000)) + .duration(670) + .circuit(2) + .EUt(GTValues.VA[GTValues.MV]) + .blastFurnaceTemp(1000) + + event.recipes.gtceu.electric_blast_furnace('blast_blue_steel_mv') + .itemInputs('gtceu:blue_steel_dust') + .itemOutputs('tfc:metal/ingot/blue_steel') + .duration(1000) + .circuit(1) + .EUt(GTValues.VA[GTValues.MV]) + .blastFurnaceTemp(1000) + + //#endregion + + //#region add regular furnace recipes for other tfc alloys + + event.remove({ id: 'gtceu:electric_blast_furnace/blast_bismuth_bronze' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_bismuth_bronze_gas' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_black_bronze' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_black_bronze_gas' }) + event.remove({ id: 'gtceu:vacuum_freezer/cool_hot_black_bronze_ingot' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_sterling_silver' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_sterling_silver_gas' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_rose_gold' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_rose_gold_gas' }) + + event.smelting('gtceu:bismuth_bronze_ingot', '#forge:dusts/bismuth_bronze') + .id('tfg:smelting/bismuth_bronze_ingot') + event.smelting('gtceu:black_bronze_ingot', '#forge:dusts/black_bronze') + .id('tfg:smelting/black_bronze_ingot') + event.smelting('gtceu:sterling_silver_ingot', '#forge:dusts/sterling_silver') + .id('tfg:smelting/sterling_silver_ingot') + event.smelting('gtceu:rose_gold_ingot', '#forge:dusts/rose_gold') + .id('tfg:smelting/rose_gold_ingot') + + //#endregion + + // Rose Gold + Sterling Silver + const copper_types = [ + "#forge:ingots/copper", + "#forge:dusts/copper", + "#forge:ingots/annealed_copper", + "#forge:dusts/annealed_copper" + ]; + const gold_types = [ + "#forge:ingots/gold", + "#forge:dusts/gold" + ]; + const silver_types = [ + "#forge:ingots/silver", + "#forge:dusts/silver" + ]; + + copper_types.forEach(copper_types_array => { + gold_types.forEach(gold_types_array => { + event.recipes.gtceu.alloy_smelter(`rose_gold_from_${copper_types_array.replace(/:/g, "/").replace(/#/g, "")}_and_${gold_types_array.replace(/:/g, "/").replace(/#/g, "")}`) + .itemInputs(Ingredient.of(copper_types_array).withCount(1), Ingredient.of(gold_types_array).withCount(4)) + .itemOutputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.RoseGold, 5)) + .duration(20*10) + .EUt(GTValues.VA[GTValues.LV]) + }); + silver_types.forEach(silver_types_array => { + event.recipes.gtceu.alloy_smelter(`sterling_silver_from_${copper_types_array.replace(/:/g, "/").replace(/#/g, "")}_and_${silver_types_array.replace(/:/g, "/").replace(/#/g, "")}`) + .itemInputs(Ingredient.of(copper_types_array).withCount(1), Ingredient.of(silver_types_array).withCount(4)) + .itemOutputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.SterlingSilver, 5)) + .duration(20*10) + .EUt(GTValues.VA[GTValues.LV]) + }); + }); + + // Red alloy, because crucible always makes 4+1=5 + + event.recipes.gtceu.alloy_blast_smelter('red_alloy') + .itemInputs('1x gtceu:copper_dust', '4x minecraft:redstone') + .outputFluids(Fluid.of('gtceu:red_alloy', 720)) + .circuit(5) + .duration(75) + .EUt(GTValues.VA[GTValues.LV]) + + event.remove({ id: 'gtceu:mixer/red_alloy' }) + // incorrect on purpose to prevent a greate duplicate recipe (the id becomes mixer/mixer/red_alloy) + event.recipes.gtceu.mixer('gtceu:mixer/red_alloy') + .itemInputs('1x gtceu:copper_dust', '4x minecraft:redstone') + .itemOutputs('5x gtceu:red_alloy_dust') + .circuit(2) + .duration(100) + .EUt(7) + + event.recipes.gtceu.centrifuge('red_alloy_separation') + .itemInputs('5x gtceu:red_alloy_dust') + .itemOutputs('1x gtceu:copper_dust', '4x minecraft:redstone') + .duration(900) + .EUt(30) + + event.recipes.gtceu.alloy_smelter('copper_dust_and_redstone_dust_into_red_alloy') + .itemInputs('1x gtceu:copper_dust', '4x minecraft:redstone') + .itemOutputs('5x gtceu:red_alloy_ingot') + .duration(50) + .EUt(16) + + event.recipes.gtceu.alloy_smelter('annealed_copper_dust_and_redstone_dust_into_red_alloy') + .itemInputs('1x gtceu:annealed_copper_dust', '4x minecraft:redstone') + .itemOutputs('5x gtceu:red_alloy_ingot') + .duration(50) + .EUt(16) + + event.recipes.gtceu.alloy_smelter('copper_ingot_and_redstone_dust_into_red_alloy') + .itemInputs('1x minecraft:copper_ingot', '4x minecraft:redstone') + .itemOutputs('5x gtceu:red_alloy_ingot') + .duration(50) + .EUt(16) + + event.recipes.gtceu.alloy_smelter('annealed_copper_ingot_and_redstone_dust_into_red_alloy') + .itemInputs('1x gtceu:annealed_copper_ingot', '4x minecraft:redstone') + .itemOutputs('5x gtceu:red_alloy_ingot') + .duration(50) + .EUt(16) + + event.remove({ id: 'gtceu:mixer/sterling_silver' }) + generateMixerRecipe(event, ['#forge:dusts/copper', '4x #forge:dusts/silver'], [], '5x gtceu:sterling_silver_dust', + 1, [], 500, 7, 64, 'gtceu:mixer/sterling_silver') + + event.remove({ id: 'gtceu:mixer/rose_gold' }) + generateMixerRecipe(event, ['#forge:dusts/copper', '4x #forge:dusts/gold'], [], '5x gtceu:rose_gold_dust', + 3, [], 500, 7, 64, 'gtceu:mixer/rose_gold') + + // Glowstone + event.recipes.gtceu.mixer('gtceu:lv_glowstone') + .itemInputs('gtceu:gold_dust', 'minecraft:redstone', 'gtceu:sulfur_dust') + .itemOutputs('2x minecraft:glowstone_dust') + .circuit(8) + .duration(1200) + .EUt(30) + + event.recipes.gtceu.alloy_blast_smelter('abs:liquid_glowstone') + .itemInputs('#forge:dusts/gold', '#forge:dusts/redstone', '#forge:dusts/sulfur') + .outputFluids(Fluid.of('gtceu:glowstone', 288)) + .duration(20 * 60 / 1.3) + .EUt(GTValues.VA[GTValues.LV]) + .blastFurnaceTemp(1064) + .circuit(9) + + // New Alloys + + event.recipes.gtceu.mixer('tfg:ostrum_iodide') + .itemInputs('1x #forge:dusts/iodine', '2x #forge:dusts/ostrum') + .itemOutputs('3x #forge:dusts/ostrum_iodide') + .duration(20 * 12) + .circuit(1) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.mixer('tfg:tungsten_bismuth_oxide_composite') + .itemInputs('2x #forge:dusts/bismuth', 'gtceu:tungsten_dust') + .inputFluids(Fluid.of('gtceu:oxygen', 3000)) + .itemOutputs('3x tfg:tungsten_bismuth_oxide_composite_dust') + .duration(20 * 12) + .EUt(GTValues.VA[GTValues.EV]) +} diff --git a/kubejs/server_scripts/tfg/ores_and_materials/recipes.bromine.js b/kubejs/server_scripts/tfg/ores_and_materials/recipes.bromine.js new file mode 100644 index 000000000..76f55f6ab --- /dev/null +++ b/kubejs/server_scripts/tfg/ores_and_materials/recipes.bromine.js @@ -0,0 +1,126 @@ +"use strict"; + +function registerTFGBromineRecipes(event) { + + /* + + event.recipes.gtceu.evaporation_tower('evaporation_brine') + .inputFluids(Fluid.of('tfc:salt_water', 20000)) + .outputFluids(Fluid.of('gtceu:raw_brine', 1000)) + .duration(20*50) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.evaporation_tower('evaporation_brine_mars') + .inputFluids(Fluid.of('tfg:semiheavy_ammoniacal_water', 20000)) + .outputFluids(Fluid.of('gtceu:raw_brine', 1000)) + .duration(20*50) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.fluid_heater('heat_brine') + .inputFluids(Fluid.of("gtceu:raw_brine", 1000)) + .outputFluids(Fluid.of("gtceu:hot_brine", 1000)) + .duration(20*600) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.heat_exchanger('heat_brine_nuclear') + .inputFluids(Fluid.of("gtceu:raw_brine", 1000)) + .inputFluids(Fluid.of("gtceu:irradiated_steam", 1000)) + .outputFluids(Fluid.of("gtceu:hot_brine", 1000)) + .outputFluids(Fluid.of("gtceu:dense_steam", 1000)) + .duration(20*100) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.chemical_reactor('debrominated_brine_raw_brine_mixing') + .inputFluids(Fluid.of("gtceu:raw_brine", 1000)) + .inputFluids(Fluid.of('gtceu:hot_debrominated_brine', 1000)) + .outputFluids(Fluid.of('gtceu:hot_brine', 2000)) + .outputFluids(Fluid.of('gtceu:debrominated_brine', 1000)) + .duration(20*10) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.chemical_reactor('brine_acidification') + .inputFluids(Fluid.of("gtceu:hot_brine", 2000)) + .inputFluids(Fluid.of('gtceu:hydrochloric_acid', 1000)) + .outputFluids(Fluid.of('gtceu:hot_alkaline_debrominated_brine', 2000)) + .outputFluids(Fluid.of('gtceu:hydrogen_iodide', 1000)) + .duration(20*5) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.chemical_reactor('aciditic_bromine_exhaust_heating') + .inputFluids(Fluid.of("gtceu:hot_brine", 1000)) + .inputFluids(Fluid.of('gtceu:acidic_bromine_exhaust', 1000)) + .outputFluids(Fluid.of('gtceu:hot_chlorinated_brominated_brine', 1000)) + .outputFluids(Fluid.of('gtceu:steam', 3000)) + .duration(20*5) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.chemical_reactor('brine_chloroination') + .inputFluids(Fluid.of("gtceu:hot_brine", 1000)) + .inputFluids(Fluid.of('gtceu:chlorine', 1000)) + .outputFluids(Fluid.of('gtceu:hot_chlorinated_brominated_brine', 1000)) + .duration(20*5) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.chemical_reactor('brine_neutralization') + .inputFluids(Fluid.of("gtceu:hot_alkaline_debrominated_brine", 3000)) + .itemInputs('gtceu:potassium_dust') + .outputFluids(Fluid.of('gtceu:hot_debrominated_brine', 2000)) + .itemOutputs(Item.of('2x gtceu:rock_salt_dust')) + .duration(20*5) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.centrifuge('debrominated_brine_decomposition') + .inputFluids(Fluid.of('gtceu:debrominated_brine', 2000)) + .outputFluids(Fluid.of('tfc:salt_water'), 1000) + .duration(20*3) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_reactor('brine_filtration') + .inputFluids(Fluid.of('gtceu:hot_chlorinated_brominated_brine', 1000)) + .inputFluids(Fluid.of('gtceu:chlorine', 1000)) + .inputFluids(Fluid.of('gtceu:steam', 1000)) + .outputFluids(Fluid.of('gtceu:hot_alkaline_debrominated_brine', 1000)) + .outputFluids(Fluid.of('gtceu:brominated_chlorine_vapor', 2000)) + .duration(20*15) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.chemical_reactor('brominated_chlorine_vapor_condensation') + .inputFluids(Fluid.of('gtceu:brominated_chlorine_vapor', 1000)) + .inputFluids(Fluid.of('minecraft:water', 1000)) + .outputFluids(Fluid.of('gtceu:acidic_bromine_solution', 1000)) + .outputFluids(Fluid.of('minecraft:water', 2000)) + .duration(20*15) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.chemical_reactor('bromine_vapor_concentration') + .inputFluids(Fluid.of('gtceu:acidic_bromine_solution', 1000)) + .inputFluids(Fluid.of('gtceu:steam', 1000)) + .outputFluids(Fluid.of('gtceu:concentrated_bromine_solution', 1000)) + .outputFluids(Fluid.of('gtceu:acidic_bromine_exhaust', 1000)) + .duration(20*5) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.distillery('bromine_distillation_to_chlorine') + .inputFluids(Fluid.of('gtceu:concentrated_bromine_solution', 100)) + .outputFluids(Fluid.of('gtceu:chlorine', 50)) + .duration(20*5) + .circuit(1) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.distillery('bromine_distillation_to_bromine') + .inputFluids(Fluid.of('gtceu:concentrated_bromine_solution', 40)) + .outputFluids(Fluid.of('gtceu:bromine', 40)) + .duration(20*2) + .circuit(2) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.distillation_tower('bromine_distillation') + .inputFluids(Fluid.of('gtceu:concentrated_bromine_solution', 1000)) + .outputFluids(Fluid.of('gtceu:chlorine', 500)) + .outputFluids(Fluid.of('gtceu:bromine', 1000)) + .duration(20*25) + .EUt(GTValues.VA[GTValues.HV]) + + */ + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/ores_and_materials/recipes.quartzes.js b/kubejs/server_scripts/tfg/ores_and_materials/recipes.quartzes.js new file mode 100644 index 000000000..aef120457 --- /dev/null +++ b/kubejs/server_scripts/tfg/ores_and_materials/recipes.quartzes.js @@ -0,0 +1,132 @@ +"use strict"; + +function registerTFGQuartzRecipes(event) { + + //#region Rose Quartz fabrication + decomposition + event.remove({ id: 'gtceu:autoclave/autoclave_dust_rose_quartz_water' }) + event.remove({ id: 'gtceu:autoclave/autoclave_dust_rose_quartz_distilled' }) + + generateMixerRecipe(event, ['gtceu:nether_quartz_dust', '8x minecraft:redstone'], [], '9x gtceu:rose_quartz_dust', 2, [], 180, 60, 64, 'rose_quartz_dust_mixing') + generateMixerRecipe(event, ['gtceu:tiny_nether_quartz_dust', '8x gtceu:tiny_redstone_dust'], [], 'gtceu:rose_quartz_dust', 2, [], 20, 60, 64, 'tiny_rose_quartz_dust_mixing') + + event.recipes.gtceu.autoclave("autoclave_dust_rose_quartz_ice") + .itemInputs('#forge:dusts/rose_quartz') + .inputFluids(Fluid.of("gtceu:ice", 144)) + .itemOutputs("#forge:gems/rose_quartz") + .duration(2000) + .EUt(120) + + event.recipes.gtceu.electrolyzer('electrolyze_rose_quartz_dust') + .itemInputs('9x gtceu:rose_quartz_dust') + .itemOutputs('1x gtceu:nether_quartz_dust', '8x minecraft:redstone') + .duration(7 * 20) + .EUt(60) + //#endregion + + //#region Glass + + event.recipes.gtceu.arc_furnace('glass_from_sand') + .itemInputs('#forge:sand') + .itemOutputs('2x minecraft:glass') + .duration(20) + .EUt(30) + + global.TFC_BATCH_TO_BOTTLE_ASSEMBLING_RECIPE_COMPONENTS.forEach(element => { + event.recipes.gtceu.alloy_smelter(`tfg:tfc/${element.name}`) + .itemInputs(element.input) + .notConsumable('gtceu:bottle_casting_mold') + .itemOutputs(element.output) + .duration(100) + .EUt(2) + .category(GTRecipeCategories.INGOT_MOLDING) + }) + + // Lamp Glass + event.recipes.gtceu.alloy_smelter(`tfg:tfc/lamp_glass`) + .itemInputs('#tfc:glass_batches') + .notConsumable('#tfg:unfinished_lamps') + .itemOutputs('tfc:lamp_glass') + .duration(100) + .EUt(2) + + event.recipes.gtceu.alloy_smelter(`tfg:tfc/lamp_glass_from_dust`) + .itemInputs('#forge:dusts/glass') + .notConsumable('#tfg:unfinished_lamps') + .itemOutputs('tfc:lamp_glass') + .duration(100) + .EUt(2) + + // Empty Jar + event.recipes.gtceu.alloy_smelter('tfc:jar_alloying') + .itemInputs('#tfc:glass_batches_tier_2') + .notConsumable('gtceu:ball_casting_mold') + .itemOutputs('tfc:empty_jar') + .duration(100) + .EUt(2) + .category(GTRecipeCategories.INGOT_MOLDING) + + event.recipes.gtceu.fluid_solidifier('tfc:jar_solidification') + .inputFluids(Fluid.of('gtceu:glass', 144)) + .notConsumable('gtceu:cylinder_casting_mold') + .itemOutputs('tfc:empty_jar') + .duration(100) + .EUt(2) + + event.recipes.gtceu.extractor('tfc:jar_extraction') + .itemInputs('#tfc:jars') + .outputFluids(Fluid.of('gtceu:glass', 144)) + .duration(50) + .EUt(2) + + event.recipes.gtceu.extractor('tfc:glass_batch_extraction') + .itemInputs('#tfc:glass_batches') + .outputFluids(Fluid.of('gtceu:glass', 144)) + .duration(50) + .EUt(2) + + event.recipes.gtceu.lathe('tfc:lens') + .itemInputs('#forge:glass') + .itemOutputs('tfc:lens') + .duration(100) + .EUt(16) + + // Add all glass colors to macerator/hammer + removeMaceratorRecipe(event, 'macerate_glass'); + event.recipes.gtceu.macerator("gtceu:macerator/macerate_glass") + .itemInputs( + "#forge:glass" + ) + .itemOutputs("gtceu:glass_dust") + .duration(20) + .EUt(2); + + removeMaceratorRecipe(event, 'macerate_glass_pane'); + event.recipes.gtceu.macerator("gtceu:macerator/macerate_glass_pane") + .itemInputs( + "#forge:glass_panes" + ) + .itemOutputs("3x gtceu:tiny_glass_dust") + .duration(6) + .EUt(2) + + event.replaceInput({ id: "gtceu:shaped/glass_dust_hammer" }, + "minecraft:glass", + "#forge:glass" + ); + + + event.recipes.gtceu.alloy_smelter('glass_bottle') + .itemInputs('#forge:dusts/glass') + .itemOutputs('tfc:silica_glass_bottle') + .notConsumable('gtceu:bottle_casting_mold') + .EUt(2) + .duration(20 * 5) + .category(GTRecipeCategories.INGOT_MOLDING) + + + // Glass Tube + event.recipes.tfc.glassworking('gtceu:glass_tube', '#tfc:glass_batches_tier_3', ['blow', 'stretch', 'stretch']) + .id('tfg:gtceu/glassworking/glass_tube') + + //#endregion +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/ores_and_materials/recipes.tungsten.js b/kubejs/server_scripts/tfg/ores_and_materials/recipes.tungsten.js new file mode 100644 index 000000000..10511c843 --- /dev/null +++ b/kubejs/server_scripts/tfg/ores_and_materials/recipes.tungsten.js @@ -0,0 +1,86 @@ +"use strict"; + +function registerTFGTungstenRecipes(event) { + + event.remove({ id: 'gtceu:chemical_bath/tungstic_acid_from_scheelite' }) + event.remove({ id: 'gtceu:chemical_bath/tungstic_acid_from_tungstate' }) + event.remove({ id: 'gtceu:electrolyzer/tungstic_acid_electrolysis' }) + + // Transform Tungstate and Scheelite + + event.recipes.gtceu.large_chemical_reactor('tfg:scheelite_to_sodium_tungstate') + .itemInputs(Item.of('gtceu:scheelite_dust', 6)) + .itemInputs(Item.of('gtceu:soda_ash_dust', 6)) + .itemOutputs(Item.of('tfg:sodium_tungstate_dust', 7)) + .itemOutputs(Item.of('gtceu:calcite_dust', 5)) + .duration(20*12) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.large_chemical_reactor('tfg:tungstate_to_sodium_tungstate') + .itemInputs(Item.of('gtceu:tungstate_dust', 7)) + .itemInputs(Item.of('gtceu:soda_ash_dust', 6)) + .itemOutputs(Item.of('tfg:sodium_tungstate_dust', 7)) + .itemOutputs(Item.of('gtceu:lithium_dust', 2)) + .itemOutputs(Item.of('gtceu:carbon_dust', 1)) + .outputFluids(Fluid.of('gtceu:oxygen', 3000)) + .duration(20*12) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.chemical_bath('tfg:tungstate_to_tungsten_acid') + .inputFluids(Fluid.of('gtceu:hydrochloric_acid', 2000)) + .itemInputs(Item.of('tfg:sodium_tungstate_dust', 7)) + .itemOutputs(Item.of('gtceu:salt_dust', 4)) + .itemOutputs(Item.of('gtceu:tungstic_acid_dust', 7)) + .duration(20*24) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.chemical_bath('tfg:tungsten_acid_to_ammonium_tungstate') + .inputFluids(Fluid.of('gtceu:ammonia', 10000)) + .itemInputs(Item.of('gtceu:tungstic_acid_dust', 7)) + .itemOutputs(Item.of('tfg:ammonium_tungstate_dust', 1)) + .duration(20*16) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.evaporation_tower('tfg:ammonium_tungstate_to_apt_h') + .itemInputs(Item.of('tfg:ammonium_tungstate_dust', 1)) + .itemOutputs(Item.of('tfg:apt_gem', 1)) + .outputFluids(Fluid.of('gtceu:hydrogen', 500)) + .outputFluids(Fluid.of('gtceu:hydrogen', 500)) + .outputFluids(Fluid.of('gtceu:hydrogen', 500)) + .outputFluids(Fluid.of('gtceu:hydrogen', 500)) + .outputFluids(Fluid.of('gtceu:hydrogen', 500)) + .outputFluids(Fluid.of('gtceu:hydrogen', 500)) + .duration(20*48) + .EUt(GTValues.VHA[GTValues.HV]) + + event.recipes.gtceu.distillery('tfg:ammonium_tungstate_to_apt') + .itemInputs(Item.of('tfg:ammonium_tungstate_dust', 1)) + .itemOutputs(Item.of('tfg:apt_gem', 1)) + .outputFluids(Fluid.of('gtceu:hydrogen', 500)) + .duration(20*48) + .EUt(GTValues.VHA[GTValues.HV]) + + event.recipes.gtceu.pyrolyse_oven('tfg:apt') + .itemInputs(Item.of('tfg:apt_gem', 1)) + .itemOutputs(Item.of('tfg:tungsten_oxide_dust', 1)) + .outputFluids(Fluid.of('gtceu:ammonia', 10000)) + .duration(20*36) + .EUt(GTValues.VA[GTValues.EV]) + .circuit(1) + + event.recipes.gtceu.pyrolyse_oven('tfg:apt_nitrogen') + .itemInputs(Item.of('tfg:apt_gem', 1)) + .inputFluids(Fluid.of('gtceu:nitrogen', 1000)) + .itemOutputs(Item.of('tfg:tungsten_oxide_dust', 1)) + .outputFluids(Fluid.of('gtceu:ammonia', 10000)) + .duration(20*18) + .EUt(GTValues.VA[GTValues.EV]) + .circuit(2) + + event.recipes.gtceu.arc_furnace('tfg:tungsten_apt') + .itemInputs(Item.of('tfg:tungsten_oxide_dust', 1)) + .inputFluids(Fluid.of('gtceu:hydrogen', 3000)) + .itemOutputs(Item.of('gtceu:tungsten_dust', 1)) + .duration(20*2.8) + .EUt(GTValues.VA[GTValues.EV]) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/ores_and_materials/recipes.zirconium.js b/kubejs/server_scripts/tfg/ores_and_materials/recipes.zirconium.js new file mode 100644 index 000000000..e1b8dc933 --- /dev/null +++ b/kubejs/server_scripts/tfg/ores_and_materials/recipes.zirconium.js @@ -0,0 +1,61 @@ +// priority: 0 + +function registerTFGZirconiumRecipes(event) { + + // #region Zirconium + + event.recipes.gtceu.chemical_reactor('tfg:silicon_tetrachloride') + .itemInputs('#forge:dusts/silicon') + .inputFluids('gtceu:chlorine 4000') + .outputFluids('tfg:silicon_tetrachloride 1000') + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_reactor('tfg:silicon_tetrachloride_decomp') + .inputFluids('tfg:silicon_tetrachloride 1000', 'minecraft:water 2000') + .itemOutputs('#forge:dusts/silicon') + .outputFluids('gtceu:hydrochloric_acid 4000', 'gtceu:oxygen 2000') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.chemical_reactor('tfg:zirconium_tetrachloride') + .itemInputs('4x #forge:dusts/carbon', '6x #forge:dusts/zircon') + .inputFluids('gtceu:chlorine 8000') + .outputFluids('gtceu:carbon_monoxide 4000', 'tfg:silicon_tetrachloride 1000') + .itemOutputs('5x #forge:dusts/zirconium_tetrachloride') + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.electric_blast_furnace('tfg:zirconium') + .itemInputs('2x #forge:dusts/magnesium', '5x #forge:dusts/zirconium_tetrachloride') + .itemOutputs('#forge:hot_ingots/zirconium', '6x #forge:dusts/magnesium_chloride') + .duration(55 * 20) + .blastFurnaceTemp(4241) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.chemical_reactor('tfg:zirconium_bromide') + .itemInputs('#forge:dusts/zirconium', '2x #forge:dusts/carbon') + .inputFluids('gtceu:bromine 4000', 'gtceu:oxygen 2000') + .itemOutputs('5x #forge:dusts/zirconium_bromide') + .outputFluids('gtceu:carbon_monoxide 2000') + .duration(10 * 20) + .EUt(GTValues.VA[GTValues.IV]) + + event.recipes.gtceu.chemical_reactor('tfg:zirconium_diboride') + .itemInputs('10x #forge:dusts/zirconium_bromide', '5x #forge:dusts/boron_carbide') + .notConsumable('#forge:dusts/carbon') + .itemOutputs('6x #forge:dusts/zirconium_diboride', '#forge:dusts/carbon') + .outputFluids('gtceu:bromine 8000') + .duration(10 * 20) + .EUt(GTValues.VA[GTValues.IV]) + + event.recipes.gtceu.chemical_reactor('tfg:boron_carbide') + .itemInputs('4x #forge:dusts/boron', '7x #forge:dusts/carbon') + .inputFluids('gtceu:oxygen 6000') + .itemOutputs('5x #forge:dusts/boron_carbide') + .outputFluids('gtceu:carbon_monoxide 6000') + .duration(10 * 20) + .EUt(GTValues.VA[GTValues.HV]) + + // #endregion +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/powergen/nuclear/recipes.components.js b/kubejs/server_scripts/tfg/powergen/nuclear/recipes.components.js new file mode 100644 index 000000000..46cf556da --- /dev/null +++ b/kubejs/server_scripts/tfg/powergen/nuclear/recipes.components.js @@ -0,0 +1,41 @@ +// priority: 0 +"use strict"; + +function registerTFGNuclearComponentsRecipes(event) { + + let component = function (type, block, value) { + event.custom({ + type: 'deafission:component_fr', + componentType: type, + block: block, + data: { + value: value + } + }); + }; + + let componentThermal = function(type, block, temp, cap) { + event.custom({ + type: 'deafission:component_hb', + componentType: type, + block: block, + data: { + temperature: temp, + capacity: cap + } + }); + }; + + // Examples: https://bitbucket.org/Vazde/minecraft-fission/src/master/mod/settings-run/kubejs/server_scripts/recipes.js + + component("HEAT", "minecraft:blue_ice", 0.5) + component("HEAT", "tfg:glacian_wool_frame", 2); + component("HEAT", "tfg:aes_insulation_frame", 1); + component("HEAT", "tfg:moderate_core_frame", 10); + component("HEAT", "tfg:impure_moderate_core_frame", 5); +/* + componentThermal('THERMAL', 'minecraft:sand', 1000, 25); + componentThermal('THERMAL', 'tfg:impure_moderate_core_frame', 2000, 50); + componentThermal('THERMAL', 'minecraft:bedrock', 9001, 1e5); +*/ +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.nuclear.js b/kubejs/server_scripts/tfg/powergen/nuclear/recipes.nuclear.js similarity index 70% rename from kubejs/server_scripts/tfg/recipes.nuclear.js rename to kubejs/server_scripts/tfg/powergen/nuclear/recipes.nuclear.js index 4a60059ab..a6257a9c3 100644 --- a/kubejs/server_scripts/tfg/recipes.nuclear.js +++ b/kubejs/server_scripts/tfg/powergen/nuclear/recipes.nuclear.js @@ -56,20 +56,20 @@ function registerTFGNuclearRecipes(event) { .duration(20*600) .EUt(GTValues.VA[GTValues.EV]) .dimension('ad_astra:mars') - - /* REMOVE FOR VENUS COMMENTED OUT +/* event.recipes.gtceu.nuclear_fuel_factory('tfg:tbu_232_rod') .inputFluids(Fluid.of('gtceu:nuclear_waste', 32000)) - .itemInputs('#forge:ingots/thorium_232', 'tfg:empty_rod') - .itemOutputs('tfg:tbu-232_rod') + .itemInputs('2x #forge:rods/thorium_232', 'tfg:empty_rod') + .itemOutputs('tfg:tbu_232_rod') .duration(20*300) .EUt(GTValues.V[GTValues.IV]) - */ - event.recipes.gtceu.lathe('tfg:empty_rod') - .itemInputs('gtceu:cobalt_large_restrictive_item_pipe') +*/ + event.recipes.gtceu.assembler('tfg:empty_rod') + .itemInputs('3x gtceu:cobalt_large_restrictive_item_pipe', '3x gtceu:lead_huge_fluid_pipe') .itemOutputs('tfg:empty_rod') .duration(20*15) .EUt(GTValues.VA[GTValues.HV]) + .addMaterialInfo(true) //#endregion @@ -85,28 +85,6 @@ function registerTFGNuclearRecipes(event) { //#endregion - //#region Mars Water - - event.recipes.gtceu.centrifuge('mars_heavy_water') - .inputFluids(Fluid.of('tfg:heavy_ammoniacal_water', 1000)) - .outputFluids(Fluid.of('tfg:heavy_water', 500)) - .itemOutputs('#forge:dusts/ammonium_chloride', '2x #forge:small_dusts/ammonium_chloride') - .duration(20*9) - .EUt(GTValues.VHA[GTValues.ULV]) - - event.recipes.gtceu.centrifuge('mars_semiheavy_water') - .inputFluids(Fluid.of('tfg:semiheavy_ammoniacal_water', 1000)) - .outputFluids(Fluid.of('tfg:semiheavy_water', 500)) - .itemOutputs('2x #forge:tiny_dusts/ammonium_chloride') - .duration(20*9) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.distillery('mars_semiheavy_water') - .inputFluids(Fluid.of('tfg:semiheavy_ammoniacal_water', 1000)) - .outputFluids(Fluid.of('minecraft:water', 250)) - .duration(20*5) - .EUt(GTValues.VA[GTValues.MV]) - // Martian Sludge event.recipes.gtceu.chemical_bath('dirty_hexafluorosilicic_acid') @@ -181,20 +159,32 @@ function registerTFGNuclearRecipes(event) { event.recipes.gtceu.heat_exchanger('uranium_steam') .perTick(true) .inputFluids(Fluid.of('minecraft:water', 10)) - .inputFluids(Fluid.of('gtceu:radioactive_steam', 10)) + .inputFluids(Fluid.of('gtceu:radioactive_steam', 1600)) .inputFluids(Fluid.of('gtceu:ammonium_formate', 10)) - .outputFluids(Fluid.of('gtceu:dense_steam', 10)) + .outputFluids(Fluid.of('gtceu:dense_steam', 1600)) .outputFluids(Fluid.of('gtceu:formamide', 10)) .perTick(false) .duration(20*5) .EUt(1) + .circuit(1) + .dimension('ad_astra:mars') + + event.recipes.gtceu.heat_exchanger('uranium_steam_power_only') + .perTick(true) + .inputFluids(Fluid.of('minecraft:water', 10)) + .inputFluids(Fluid.of('gtceu:radioactive_steam', 1600)) + .outputFluids(Fluid.of('gtceu:dense_steam', 1600)) + .perTick(false) + .duration(20*5) + .EUt(1) + .circuit(2) .dimension('ad_astra:mars') event.recipes.gtceu.heat_exchanger('plutonium_steam') .perTick(true) .inputFluids(Fluid.of('minecraft:water', 10)) - .inputFluids(Fluid.of('gtceu:irradiated_steam', 10)) - .outputFluids(Fluid.of('gtceu:dense_steam', 10)) + .inputFluids(Fluid.of('gtceu:irradiated_steam', 1600)) + .outputFluids(Fluid.of('gtceu:dense_steam', 1600)) .perTick(false) .duration(20*5) .EUt(1) @@ -215,15 +205,6 @@ function registerTFGNuclearRecipes(event) { //#region Fission Reactor - // Recipe for Thorium Reactor Just keeping it in case we got mod issues -/* event.recipes.gtceu.fission_reactor('thorium_uranium_waste') - .itemInputs('#forge:bolts/thorium_rod') - .inputFluids(Fluid.of('minecraft:water', 100)) - .outputFluids(Fluid.of('gtceu:dense_steam', 100)) - .outputFluids(Fluid.of('gtceu:uranium_waste', 20)) - .duration(20*50) - .EUt(32)*/ - // Thorium Fission event.recipes.deafission.fission_reactor_fuel('tfg:thorium') @@ -238,21 +219,12 @@ function registerTFGNuclearRecipes(event) { .notConsumable(Item.of('tfg:thorium_rod')) .perTick(true) .inputFluids(Fluid.of('tfg:heavy_water', 2)) - .outputFluids(Fluid.of('gtceu:dense_steam', 2)) + .outputFluids(Fluid.of('gtceu:dense_steam', 480)) .perTick(false) .dimension('ad_astra:mars') .addData("coolant_heat_per_tick", 1) .duration(1); - // Recipe for Uranium Reactor Just keeping it in case we got mod issues -/* event.recipes.gtceu.fission_reactor('uranium_radioactive') - .itemInputs('#forge:bolts/uranium_rod') - .inputFluids(Fluid.of('tfg:heavy_water', 75)) - .outputFluids(Fluid.of('gtceu:radioactive_steam', 75)) - .outputFluids(Fluid.of('gtceu:radioactive_waste', 50)) - .duration(20*100) - .EUt(32)*/ - // Uranium Fission event.recipes.deafission.fission_reactor_fuel('tfg:uranium') @@ -266,21 +238,12 @@ function registerTFGNuclearRecipes(event) { .notConsumable(Item.of('tfg:uranium_rod')) .perTick(true) .inputFluids(Fluid.of('tfg:heavy_water', 20)) - .outputFluids(Fluid.of('gtceu:radioactive_steam', 10)) + .outputFluids(Fluid.of('gtceu:radioactive_steam', 1600)) .perTick(false) .addData("coolant_heat_per_tick", 1) .duration(1) .dimension('ad_astra:mars') - // Recipe for Plutonium Reactor Just keeping it in case we got mod issues -/* event.recipes.gtceu.fission_reactor('plutonium_irradiated') - .itemInputs('#forge:bolts/plutonium_rod') - .inputFluids(Fluid.of('tfg:heavy_water', 2000)) - .outputFluids(Fluid.of('gtceu:irradiated_steam', 2000)) - .outputFluids(Fluid.of('gtceu:tritiated_water', 50)) - .duration(20*100) - .EUt(32)*/ - // Plutonium Fission event.recipes.deafission.fission_reactor_fuel('tfg:plutonium') @@ -294,21 +257,29 @@ function registerTFGNuclearRecipes(event) { .notConsumable(Item.of('tfg:plutonium_rod')) .perTick(true) .inputFluids(Fluid.of('tfg:heavy_water', 25)) - .outputFluids(Fluid.of('gtceu:irradiated_steam', 40)) + .outputFluids(Fluid.of('gtceu:irradiated_steam', 6400)) .perTick(false) .addData("coolant_heat_per_tick", 1) .duration(1) .dimension('ad_astra:mars') - // Fission Reactor for Energy Just keeping it in case we got mod issues + // TBU Fission /* - event.recipes.gtceu.fission_reactor('tbu_reactor') - .itemInputs('tfg:tbu_232_rod') - .inputFluids(Fluid.of('gtceu:flibe', 1000)) - .outputFluids(Fluid.of('gtceu:hot_flibe', 1000)) - .outputFluids(Fluid.of('gtceu:nuclear_waste', 500)) - .duration(20*100) - .EUt(32) + event.recipes.deafission.fission_reactor_fuel('kubejs:fuelcell_custom_x1') + .itemInputs('tfg:tbu_232_rod') + .itemOutputs('minecraft:dirt') + // Mandatory by GT; no real impact. Use this as a convention: + // durability / const / heatValue + .duration(10000 / 0.4 / 2) + .dimension('ad_astra:mars'); + + event.recipes.deafission.fission_reactor_coolant('tfg:tbu_coolant') + .itemInputs(Ingredient.of([ + 'tfg:tbu_232_rod'])) + .inputFluids(Fluid.of('tfg:heavy_water', 100)) + .outputFluids(Fluid.of('gtceu:dense_steam', 100)) + .addData("coolant_heat_per_tick", 12.34) + .duration(1000); */ //#endregion @@ -346,7 +317,7 @@ function registerTFGNuclearRecipes(event) { .EUt(GTValues.VA[GTValues.EV]) .duration(20*9) - // Graphite Moderator Line + //#region Graphite Moderator Line const $ChanceLogic = Java.loadClass('com.gregtechceu.gtceu.api.recipe.chance.logic.ChanceLogic') @@ -454,13 +425,14 @@ function registerTFGNuclearRecipes(event) { //#region Power Generation event.recipes.gtceu.nuclear_turbine('dense_steam') - .inputFluids(Fluid.of('gtceu:dense_steam', 1)) + .inputFluids(Fluid.of('gtceu:dense_steam', 160)) .EUt(-(32)) .duration(20*1.5) //#endregion //#region Cooling Tower + /* event.recipes.gtceu.assembler('tfg:ostrum_carbon_casing') .itemInputs('2x #forge:plates/ostrum', '2x #forge:plates/titanium_carbide', '#forge:dense_plates/hsla_steel', '#forge:frames/black_steel') .itemOutputs('2x tfg:casings/machine_casing_ostrum_carbon') @@ -483,6 +455,8 @@ function registerTFGNuclearRecipes(event) { .circuit(6) .EUt(GTValues.VA[GTValues.IV] * 2) .duration(20*4) + */ + /* event.shaped('tfg:cooling_tower', [ 'ABA', @@ -496,8 +470,15 @@ function registerTFGNuclearRecipes(event) { E: 'gtceu:iv_fluid_regulator' }).id('tfg:shaped/cooling_tower') */ - //#endregion + //#endregion + /* + event.recipes.deafission.hb_import('tfg:dense_steam') + .inputFluids(Fluid.of('gtceu:dense_steam', 100)) + .outputFluids(Fluid.of('minecraft:water', 10)) + .blastFurnaceTemp(4000) + .addData("hb_energy", 100) + */ //#region FLiBe Line - SCRAP FROM MARS TO VENUS /* @@ -587,127 +568,6 @@ function registerTFGNuclearRecipes(event) { //#endregion - //#region Bromine Line - SCRAP FROM MARS TO VENUS - - /* - - event.recipes.gtceu.evaporation_tower('evaporation_brine') - .inputFluids(Fluid.of('tfc:salt_water', 20000)) - .outputFluids(Fluid.of('gtceu:raw_brine', 1000)) - .duration(20*50) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.evaporation_tower('evaporation_brine_mars') - .inputFluids(Fluid.of('tfg:semiheavy_ammoniacal_water', 20000)) - .outputFluids(Fluid.of('gtceu:raw_brine', 1000)) - .duration(20*50) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.fluid_heater('heat_brine') - .inputFluids(Fluid.of("gtceu:raw_brine", 1000)) - .outputFluids(Fluid.of("gtceu:hot_brine", 1000)) - .duration(20*600) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.heat_exchanger('heat_brine_nuclear') - .inputFluids(Fluid.of("gtceu:raw_brine", 1000)) - .inputFluids(Fluid.of("gtceu:irradiated_steam", 1000)) - .outputFluids(Fluid.of("gtceu:hot_brine", 1000)) - .outputFluids(Fluid.of("gtceu:dense_steam", 1000)) - .duration(20*100) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.chemical_reactor('debrominated_brine_raw_brine_mixing') - .inputFluids(Fluid.of("gtceu:raw_brine", 1000)) - .inputFluids(Fluid.of('gtceu:hot_debrominated_brine', 1000)) - .outputFluids(Fluid.of('gtceu:hot_brine', 2000)) - .outputFluids(Fluid.of('gtceu:debrominated_brine', 1000)) - .duration(20*10) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.chemical_reactor('brine_acidification') - .inputFluids(Fluid.of("gtceu:hot_brine", 2000)) - .inputFluids(Fluid.of('gtceu:hydrochloric_acid', 1000)) - .outputFluids(Fluid.of('gtceu:hot_alkaline_debrominated_brine', 2000)) - .outputFluids(Fluid.of('gtceu:hydrogen_iodide', 1000)) - .duration(20*5) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.chemical_reactor('aciditic_bromine_exhaust_heating') - .inputFluids(Fluid.of("gtceu:hot_brine", 1000)) - .inputFluids(Fluid.of('gtceu:acidic_bromine_exhaust', 1000)) - .outputFluids(Fluid.of('gtceu:hot_chlorinated_brominated_brine', 1000)) - .outputFluids(Fluid.of('gtceu:steam', 3000)) - .duration(20*5) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.chemical_reactor('brine_chloroination') - .inputFluids(Fluid.of("gtceu:hot_brine", 1000)) - .inputFluids(Fluid.of('gtceu:chlorine', 1000)) - .outputFluids(Fluid.of('gtceu:hot_chlorinated_brominated_brine', 1000)) - .duration(20*5) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.chemical_reactor('brine_neutralization') - .inputFluids(Fluid.of("gtceu:hot_alkaline_debrominated_brine", 3000)) - .itemInputs('gtceu:potassium_dust') - .outputFluids(Fluid.of('gtceu:hot_debrominated_brine', 2000)) - .itemOutputs(Item.of('2x gtceu:rock_salt_dust')) - .duration(20*5) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.centrifuge('debrominated_brine_decomposition') - .inputFluids(Fluid.of('gtceu:debrominated_brine', 2000)) - .outputFluids(Fluid.of('tfc:salt_water'), 1000) - .duration(20*3) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.chemical_reactor('brine_filtration') - .inputFluids(Fluid.of('gtceu:hot_chlorinated_brominated_brine', 1000)) - .inputFluids(Fluid.of('gtceu:chlorine', 1000)) - .inputFluids(Fluid.of('gtceu:steam', 1000)) - .outputFluids(Fluid.of('gtceu:hot_alkaline_debrominated_brine', 1000)) - .outputFluids(Fluid.of('gtceu:brominated_chlorine_vapor', 2000)) - .duration(20*15) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.chemical_reactor('brominated_chlorine_vapor_condensation') - .inputFluids(Fluid.of('gtceu:brominated_chlorine_vapor', 1000)) - .inputFluids(Fluid.of('minecraft:water', 1000)) - .outputFluids(Fluid.of('gtceu:acidic_bromine_solution', 1000)) - .outputFluids(Fluid.of('minecraft:water', 2000)) - .duration(20*15) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.chemical_reactor('bromine_vapor_concentration') - .inputFluids(Fluid.of('gtceu:acidic_bromine_solution', 1000)) - .inputFluids(Fluid.of('gtceu:steam', 1000)) - .outputFluids(Fluid.of('gtceu:concentrated_bromine_solution', 1000)) - .outputFluids(Fluid.of('gtceu:acidic_bromine_exhaust', 1000)) - .duration(20*5) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.distillery('bromine_distillation_to_chlorine') - .inputFluids(Fluid.of('gtceu:concentrated_bromine_solution', 100)) - .outputFluids(Fluid.of('gtceu:chlorine', 50)) - .duration(20*5) - .circuit(1) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.distillery('bromine_distillation_to_bromine') - .inputFluids(Fluid.of('gtceu:concentrated_bromine_solution', 40)) - .outputFluids(Fluid.of('gtceu:bromine', 40)) - .duration(20*2) - .circuit(2) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.distillation_tower('bromine_distillation') - .inputFluids(Fluid.of('gtceu:concentrated_bromine_solution', 1000)) - .outputFluids(Fluid.of('gtceu:chlorine', 500)) - .outputFluids(Fluid.of('gtceu:bromine', 1000)) - .duration(20*25) - .EUt(GTValues.VA[GTValues.HV]) - - */ + } diff --git a/kubejs/server_scripts/tfg/powergen/nuclear/tags.nuclear.js b/kubejs/server_scripts/tfg/powergen/nuclear/tags.nuclear.js new file mode 100644 index 000000000..97fe73b6c --- /dev/null +++ b/kubejs/server_scripts/tfg/powergen/nuclear/tags.nuclear.js @@ -0,0 +1,52 @@ +"use strict"; + +const registerTFGItemTagsNuclear = (event) => { + + //Fission Nucleat Fuel + event.add('deafission:fuels', 'tfg:thorium_rod') + event.add('deafission:fuels', 'tfg:uranium_rod') + event.add('deafission:fuels', 'tfg:plutonium_rod') + event.add('tfg:fission_rods', '#deafission:fuels') + +} + +const registerTFGBlockTagsNuclear = (event) => { + + //#region Fision Components + let COMPONENTS_FR = 'deafission:components_fr'; + + // Max Heating + event.add(COMPONENTS_FR, 'tfg:glacian_wool_frame'); // Max Heat 2 + event.add(COMPONENTS_FR, 'minecraft:blue_ice'); // Max Heat 0.5 + event.add(COMPONENTS_FR, 'tfg:aes_insulation_frame'); // Max Heat 1 + event.add(COMPONENTS_FR, 'tfg:moderate_core_frame'); // Max Heat 10 + event.add(COMPONENTS_FR, 'tfg:impure_moderate_core_frame'); // Max Heat 5 + //event.add(COMPONENTS, 'minecraft:blue_ice'); // Max Heat 0.5 + + event.add(COMPONENTS_FR, 'minecraft:bedrock'); // Max Heat 10000 CREATIVE BLOCK + + // Increase Throttle + //event.add(COMPONENTS_FR, 'minecraft:iron_block'); + + // Increase Effiency + //event.add(COMPONENTS_FR, 'minecraft:packed_ice'); + + event.add('tfg:fission_coolant','deafission:components') + + // Heat Battery Components + + let COMPONENTS_HB = 'deafission:components_hb'; + + event.add(COMPONENTS_HB, 'minecraft:sand'); + event.add(COMPONENTS_HB, 'tfg:impure_moderate_core_frame'); + + event.add(COMPONENTS_HB, 'minecraft:bedrock'); // For Creative usage only + + //#endregion +} +//#endregion + +//#region Fluids +const registerTFGFluidTagsNuclear = (event) => { + +} diff --git a/kubejs/server_scripts/tfg/powergen/recipes.biodiesel.js b/kubejs/server_scripts/tfg/powergen/recipes.biodiesel.js new file mode 100644 index 000000000..f9eab5cf2 --- /dev/null +++ b/kubejs/server_scripts/tfg/powergen/recipes.biodiesel.js @@ -0,0 +1,124 @@ +"use strict"; + +function registerTFGBiodieselRecipes(event) { + + // Biofuels + + event.recipes.gtceu.chemical_reactor(`seed_oil_alcohol_biodiesel`) + .inputFluids("#tfc:alcohols 1000", Fluid.of('gtceu:seed_oil', 6000)) + .itemInputs('#forge:tiny_dusts/sodium_hydroxide') + .outputFluids(Fluid.of('gtceu:bio_diesel', 6000)) + .duration(20 * 10) + .EUt(GTValues.VHA[GTValues.ULV]) + + // So you can craft Biodiesel without Chemical Reactor + event.recipes.gtceu.mixer(`tfg:seed_oil_alcohol_biodiesel`) + .inputFluids("#tfc:alcohols 1000", Fluid.of('gtceu:seed_oil', 1000)) + .itemInputs('#forge:tiny_dusts/sodium_hydroxide') + .outputFluids(Fluid.of('gtceu:bio_diesel', 500)) + .duration(20 * 10) + .EUt(GTValues.VHA[GTValues.ULV]) + + event.recipes.gtceu.chemical_reactor(`olive_oil_alcohol_biodiesel`) + .inputFluids("#tfc:alcohols 1000", Fluid.of('tfc:olive_oil', 4000)) + .itemInputs('#forge:tiny_dusts/sodium_hydroxide') + .outputFluids(Fluid.of('gtceu:bio_diesel', 6000)) + .duration(20 * 10) + .EUt(GTValues.VHA[GTValues.ULV]) + + // So you can craft Biodiesel without Chemical Reactor + event.recipes.gtceu.mixer(`tfg:olive_oil_alcohol_biodiesel`) + .inputFluids("#tfc:alcohols 1000", Fluid.of('tfc:olive_oil', 1000)) + .itemInputs('#forge:tiny_dusts/sodium_hydroxide') + .outputFluids(Fluid.of('gtceu:bio_diesel', 500)) + .duration(20 * 10) + .EUt(GTValues.VHA[GTValues.ULV]) + + event.recipes.gtceu.chemical_reactor(`soybean_oil_alcohol_biodiesel`) + .inputFluids("#tfc:alcohols 1000", Fluid.of('firmalife:soybean_oil', 4000)) + .itemInputs('#forge:tiny_dusts/sodium_hydroxide') + .outputFluids(Fluid.of('gtceu:bio_diesel', 6000)) + .duration(20 * 10) + .EUt(GTValues.VHA[GTValues.ULV]) + + // So you can craft Biodiesel without Chemical Reactor + event.recipes.gtceu.mixer(`tfg:soybean_oil_alcohol_biodiesel`) + .inputFluids("#tfc:alcohols 1000", Fluid.of('firmalife:soybean_oil', 1000)) + .itemInputs('#forge:tiny_dusts/sodium_hydroxide') + .outputFluids(Fluid.of('gtceu:bio_diesel', 500)) + .duration(20 * 10) + .EUt(GTValues.VHA[GTValues.ULV]) + + event.recipes.gtceu.chemical_reactor(`fish_oil_alcohol_biodiesel`) + .inputFluids("#tfc:alcohols 1000", Fluid.of('gtceu:fish_oil', 6000)) + .itemInputs('#forge:tiny_dusts/sodium_hydroxide') + .outputFluids(Fluid.of('gtceu:bio_diesel', 6000)) + .duration(20 * 10) + .EUt(GTValues.VHA[GTValues.ULV]) + + event.recipes.gtceu.chemical_reactor(`tallow_alcohol_biodiesel`) + .inputFluids("#tfc:alcohols 1000", Fluid.of('tfc:tallow', 6000)) + .itemInputs('#forge:tiny_dusts/sodium_hydroxide') + .outputFluids(Fluid.of('gtceu:bio_diesel', 6000)) + .duration(20 * 10) + .EUt(GTValues.VHA[GTValues.ULV]) + + + // So you can craft Biodiesel without Chemical Reactor + event.recipes.gtceu.mixer(`tfg:fish_oil_alcohol_biodiesel`) + .inputFluids("#tfc:alcohols 1000", Fluid.of('gtceu:fish_oil', 1000)) + .itemInputs('#forge:tiny_dusts/sodium_hydroxide') + .outputFluids(Fluid.of('gtceu:bio_diesel', 500)) + .duration(20 * 10) + .EUt(GTValues.VHA[GTValues.ULV]) + + + event.recipes.gtceu.mixer(`tfg:tallow_alcohol_biodiesel`) + .inputFluids("#tfc:alcohols 1000", Fluid.of('tfc:tallow', 1000)) + .itemInputs('#forge:tiny_dusts/sodium_hydroxide') + .outputFluids(Fluid.of('gtceu:bio_diesel', 500)) + .duration(20 * 10) + .EUt(GTValues.VHA[GTValues.ULV]) + + event.recipes.gtceu.chemical_reactor(`olive_oil_ethanol_biodiesel`) + .inputFluids(Fluid.of('tfc:olive_oil', 4000), Fluid.of('gtceu:ethanol', 1000)) + .itemInputs('#forge:tiny_dusts/sodium_hydroxide') + .outputFluids(Fluid.of('gtceu:glycerol'), Fluid.of('gtceu:bio_diesel', 6000)) + .duration(20 * 10) + .EUt(GTValues.VHA[GTValues.LV]) + + event.recipes.gtceu.chemical_reactor(`olive_oil_methanol_biodiesel`) + .inputFluids(Fluid.of('tfc:olive_oil', 4000), Fluid.of('gtceu:methanol', 1000)) + .itemInputs('#forge:tiny_dusts/sodium_hydroxide') + .outputFluids(Fluid.of('gtceu:glycerol'), Fluid.of('gtceu:bio_diesel', 6000)) + .duration(20 * 10) + .EUt(GTValues.VHA[GTValues.LV]) + + event.recipes.gtceu.chemical_reactor(`soybean_oil_ethanol_biodiesel`) + .inputFluids(Fluid.of('firmalife:soybean_oil', 4000), Fluid.of('gtceu:ethanol', 1000)) + .itemInputs('#forge:tiny_dusts/sodium_hydroxide') + .outputFluids(Fluid.of('gtceu:glycerol'), Fluid.of('gtceu:bio_diesel', 6000)) + .duration(20 * 10) + .EUt(GTValues.VHA[GTValues.LV]) + + event.recipes.gtceu.chemical_reactor(`soybean_oil_methanol_biodiesel`) + .inputFluids(Fluid.of('firmalife:soybean_oil', 4000), Fluid.of('gtceu:methanol', 1000)) + .itemInputs('#forge:tiny_dusts/sodium_hydroxide') + .outputFluids(Fluid.of('gtceu:glycerol'), Fluid.of('gtceu:bio_diesel', 6000)) + .duration(20 * 10) + .EUt(GTValues.VHA[GTValues.LV]) + + event.recipes.gtceu.chemical_reactor(`tallow_methanol_biodiesel`) + .inputFluids(Fluid.of('tfc:tallow', 6000), Fluid.of('gtceu:methanol', 1000)) + .itemInputs('#forge:tiny_dusts/sodium_hydroxide') + .outputFluids(Fluid.of('gtceu:glycerol'), Fluid.of('gtceu:bio_diesel', 6000)) + .duration(20 * 10) + .EUt(GTValues.VHA[GTValues.LV]) + + event.recipes.gtceu.chemical_reactor(`tallow_ethanol_biodiesel`) + .inputFluids(Fluid.of('tfc:tallow', 6000), Fluid.of('gtceu:ethanol', 1000)) + .itemInputs('#forge:tiny_dusts/sodium_hydroxide') + .outputFluids(Fluid.of('gtceu:glycerol'), Fluid.of('gtceu:bio_diesel', 6000)) + .duration(20 * 10) + .EUt(GTValues.VHA[GTValues.LV]) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/powergen/recipes.boiler.js b/kubejs/server_scripts/tfg/powergen/recipes.boiler.js new file mode 100644 index 000000000..5b6bd9caa --- /dev/null +++ b/kubejs/server_scripts/tfg/powergen/recipes.boiler.js @@ -0,0 +1,118 @@ +"use strict"; + +function registerTFGBoilerRecipes(event) { + + // The 9x buff for large boiler recipes above does not apply to this for some reason, so it gets 3x duration for an effective 1/3 reduction instead + + event.forEachRecipe({ id: /gtceu:large_boiler\/(minecraft_ladder|gtceu_wood_frame)/ }, recipe => { + var newDuration = recipe.get("duration") + recipe.set("duration", newDuration*3) + }) + + event.forEachRecipe({ id: /gtceu:steam_boiler\/(minecraft_ladder|gtceu_wood_frame)/ }, recipe => { + var newDuration = recipe.get("duration") + recipe.set("duration", newDuration/3) + }) + + // Small nerf to charcoal + + event.forEachRecipe({ id: /gtceu:(steam_boiler|large_boiler)\/minecraft_charcoal/ }, recipe => { + var newDuration = recipe.get("duration") + recipe.set("duration", newDuration/4*3) + }) + + // Allow oil in small boilers + + event.remove({ id: "gtceu:large_boiler/gtceu_oil" }) + event.remove({ id: "gtceu:large_boiler/gtceu_oil_heavy" }) + event.remove({ id: "gtceu:large_boiler/gtceu_fish_oil" }) + // This generates both a small boiler and large boiler recipe. Remove it above to avoid a duplicate + event.recipes.gtceu.steam_boiler('tfg:oil') + .inputFluids(Fluid.of('gtceu:oil', 200)) + .duration(200) + .dimension('minecraft:overworld') + + event.recipes.gtceu.steam_boiler('tfg:heavy_oil') + .inputFluids(Fluid.of('gtceu:oil_heavy', 32)) + .duration(200) + .dimension('minecraft:overworld') + + event.recipes.gtceu.steam_boiler('tfg:fish_oil') + .inputFluids(Fluid.of('gtceu:fish_oil', 160)) + .duration(200) + .dimension('minecraft:overworld') + + // These aren't in base GT, but they have the same stats as oil + event.recipes.gtceu.steam_boiler('tfg:raw_oil') + .inputFluids(Fluid.of('gtceu:oil_medium', 200)) + .duration(200) + .dimension('minecraft:overworld') + + event.recipes.gtceu.steam_boiler('tfg:light_oil') + .inputFluids(Fluid.of('gtceu:oil_light', 200)) + .duration(200) + .dimension('minecraft:overworld') + + // Same stats as fish oil + event.recipes.gtceu.steam_boiler('tfg:olive_oil') + .inputFluids(Fluid.of('tfc:olive_oil', 160)) + .duration(200) + .dimension('minecraft:overworld') + + event.recipes.gtceu.steam_boiler('tfg:seed_oil') + .inputFluids(Fluid.of('gtceu:seed_oil', 160)) + .duration(200) + .dimension('minecraft:overworld') + + event.recipes.gtceu.steam_boiler('tfg:soybean_oil') + .inputFluids(Fluid.of('firmalife:soybean_oil', 160)) + .duration(200) + .dimension('minecraft:overworld') + + event.recipes.gtceu.steam_boiler('tfg:tallow') + .inputFluids(Fluid.of('tfc:tallow', 160)) + .duration(200) + .dimension('minecraft:overworld') + + // fish oil extraction + event.recipes.gtceu.extractor(`tfg:fish_oil`) + .itemInputs('#minecraft:fishes') + .outputFluids(Fluid.of('gtceu:fish_oil', 400)) + .duration(40) + .EUt(4) + + event.recipes.gtceu.extractor(`tfg:tallow`) + .itemInputs('tfc:blubber') + .outputFluids(Fluid.of('tfc:tallow', 400)) + .duration(40) + .EUt(4) + + // Seed oil + event.recipes.gtceu.extractor(`tfg:seed_oil`) + .itemInputs('#tfc:seeds') + .outputFluids(Fluid.of('gtceu:seed_oil', 50)) + .duration(32) + .EUt(2) + + event.recipes.gtceu.extractor(`rapeseed_oil`) + .itemInputs('tfg:rapeseed_product') + .outputFluids(Fluid.of('gtceu:seed_oil', 600)) + .duration(20 * 5) + .EUt(GTValues.VHA[GTValues.ULV]) + + event.recipes.gtceu.extractor(`sunflower_oil`) + .itemInputs('tfg:sunflower_product') + .outputFluids(Fluid.of('gtceu:seed_oil', 350)) + .duration(20 * 5) + .EUt(GTValues.VHA[GTValues.ULV]) + + event.recipes.tfc.barrel_sealed(1000) + .inputs('tfg:rapeseed_product', Fluid.of('minecraft:water', 100)) + .outputFluid(Fluid.of('gtceu:seed_oil', 250)) + .id('tfg:barrel/rapeseed_to_oil') + + event.recipes.tfc.barrel_sealed(1000) + .inputs('tfg:sunflower_product', Fluid.of('minecraft:water', 100)) + .outputFluid(Fluid.of('gtceu:seed_oil', 120)) + .id('tfg:barrel/sunflower_to_oil') +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/powergen/recipes.coal.js b/kubejs/server_scripts/tfg/powergen/recipes.coal.js new file mode 100644 index 000000000..6220f542f --- /dev/null +++ b/kubejs/server_scripts/tfg/powergen/recipes.coal.js @@ -0,0 +1,96 @@ +"use strict"; + +function registerTFGCoalRecipes(event) { + + event.recipes.gtceu.coke_oven("tfg:poor_coal_to_coke") + .itemInputs('2x gtceu:poor_raw_coal') + .itemOutputs('1x gtceu:coke_gem') + .outputFluids(Fluid.of('gtceu:creosote', 500)) + .duration(900) + + event.recipes.gtceu.coke_oven("tfg:coal_to_coke") + .itemInputs('gtceu:raw_coal') + .itemOutputs('2x gtceu:coke_gem') + .outputFluids(Fluid.of('gtceu:creosote', 1000)) + .duration(900) + + event.recipes.gtceu.coke_oven("tfg:rich_coal_to_coke") + .itemInputs('gtceu:rich_raw_coal') + .itemOutputs('4x gtceu:coke_gem') + .outputFluids(Fluid.of('gtceu:creosote', 2000)) + .duration(900) + + event.recipes.gtceu.pyrolyse_oven("tfg:rich_coal_to_tar") + .itemInputs('3x gtceu:rich_raw_coal') + .chancedOutput('gtceu:dark_ash_dust', 5000, 0) + .outputFluids(Fluid.of('gtceu:coal_tar', 3000)) + .duration(288) + .EUt(96) + .circuit(8) + + event.recipes.gtceu.pyrolyse_oven("tfg:rich_coal_to_coke_creosote") + .itemInputs('4x gtceu:rich_raw_coal') + .itemOutputs('16x gtceu:coke_gem') + .outputFluids(Fluid.of('gtceu:creosote', 8000)) + .duration(576) + .EUt(64) + .circuit(1) + + event.recipes.gtceu.pyrolyse_oven("tfg:coal_to_coal_gas") + .itemInputs('4x gtceu:rich_raw_coal') + .itemOutputs('16x gtceu:coke_gem') + .inputFluids(Fluid.of('gtceu:steam')) + .outputFluids(Fluid.of('gtceu:coal_gas', 4000)) + .duration(288) + .EUt(96) + .circuit(22) + + event.recipes.gtceu.pyrolyse_oven("tfg:coal_to_coke_creosote_nitrogen") + .itemInputs('4x gtceu:rich_raw_coal') + .itemOutputs('16x gtceu:coke_gem') + .inputFluids(Fluid.of('gtceu:nitrogen')) + .outputFluids(Fluid.of('gtceu:creosote', 8000)) + .duration(288) + .EUt(96) + .circuit(2) + + event.recipes.gtceu.coke_oven("tfg:raw_coal_to_coke") + .itemInputs('gtceu:raw_coal') + .itemOutputs('2x gtceu:coke_gem') + .outputFluids(Fluid.of('gtceu:creosote', 2000)) + .duration(1710) + + event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_tar") + .itemInputs('6x gtceu:raw_coal') + .chancedOutput('gtceu:dark_ash_dust', 5000, 0) + .outputFluids(Fluid.of('gtceu:coal_tar', 3000)) + .duration(288) + .EUt(96) + .circuit(8) + + event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_coke_creosote") + .itemInputs('8x gtceu:raw_coal') + .itemOutputs('16x gtceu:coke_gem') + .outputFluids(Fluid.of('gtceu:creosote', 8000)) + .duration(576) + .EUt(64) + .circuit(1) + + event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_coal_gas") + .itemInputs('8x gtceu:raw_coal') + .itemOutputs('16x gtceu:coke_gem') + .inputFluids(Fluid.of('gtceu:steam')) + .outputFluids(Fluid.of('gtceu:coal_gas', 4000)) + .duration(288) + .EUt(96) + .circuit(22) + + event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_coke_creosote_nitrogen") + .itemInputs('8x gtceu:raw_coal') + .itemOutputs('16x gtceu:coke_gem') + .inputFluids(Fluid.of('gtceu:nitrogen')) + .outputFluids(Fluid.of('gtceu:creosote', 8000)) + .duration(288) + .EUt(96) + .circuit(2) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/powergen/recipes.early_gas.js b/kubejs/server_scripts/tfg/powergen/recipes.early_gas.js new file mode 100644 index 000000000..54e74632f --- /dev/null +++ b/kubejs/server_scripts/tfg/powergen/recipes.early_gas.js @@ -0,0 +1,245 @@ +// priority: 0 + +function registerTFGEarlyGasRecipes(event) { + + const $ChanceLogic = Java.loadClass('com.gregtechceu.gtceu.api.recipe.chance.logic.ChanceLogic') + + // New Fuels + + //#region Syngas + + event.custom({ + type: 'vintageimprovements:vacuumizing', + ingredients: [{ item: 'minecraft:charcoal' }, { fluid: 'gtceu:creosote', amount: 250 }], + results: [{ fluid: 'tfg:syngas', amount: 100 }], + heatRequirement: "heated", + processingTime: 4000 + }).id('tfg:vi/vacuumizing/syngas_from_charcoal') + + event.custom({ + type: 'vintageimprovements:vacuumizing', + ingredients: [{ item: 'minecraft:coal' }, { fluid: 'gtceu:creosote', amount: 250 }], + results: [{ fluid: 'tfg:syngas', amount: 200 }], + heatRequirement: "heated", + processingTime: 4000 + }).id('tfg:vi/vacuumizing/syngas_from_coal') + + event.custom({ + type: 'vintageimprovements:vacuumizing', + ingredients: [{ item: 'gtceu:coke_gem' }, { fluid: 'gtceu:creosote', amount: 250 }], + results: [{ fluid: 'tfg:syngas', amount: 400 }], + heatRequirement: "heated", + processingTime: 4000 + }).id('tfg:vi/vacuumizing/syngas_from_coke') + + event.custom({ + type: 'vintageimprovements:vacuumizing', + ingredients: [{ item: 'beneath:cursecoal' }, { fluid: 'gtceu:creosote', amount: 250 }], + results: [{ fluid: 'tfg:syngas', amount: 400 }], + heatRequirement: "heated", + processingTime: 4000 + }).id('tfg:vi/vacuumizing/syngas_from_anthracite') + + event.recipes.gtceu.brewery('tfg:syngas_from_charcoal') + .itemInputs('minecraft:charcoal') + .inputFluids('gtceu:creosote 250') + .outputFluids('tfg:syngas 100') + .duration(20*15) + .EUt(GTValues.VHA[GTValues.LV]) + + event.recipes.gtceu.brewery('tfg:syngas_from_coal') + .itemInputs('minecraft:coal') + .inputFluids('gtceu:creosote 250') + .outputFluids('tfg:syngas 200') + .duration(20*15) + .EUt(GTValues.VHA[GTValues.LV]) + + event.recipes.gtceu.brewery('tfg:syngas_from_coke') + .itemInputs('gtceu:coke_gem') + .inputFluids('gtceu:creosote 250') + .outputFluids('tfg:syngas 400') + .duration(20*15) + .EUt(GTValues.VHA[GTValues.LV]) + + event.recipes.gtceu.brewery('tfg:syngas_from_anthracite') + .itemInputs('beneath:cursecoal') + .inputFluids('gtceu:creosote 250') + .outputFluids('tfg:syngas 400') + .duration(20*15) + .EUt(GTValues.VHA[GTValues.LV]) + + //#endregion + + //#region Reformate Gas + + // Charcoal + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_charcoal') + .itemInputs(Item.of('minecraft:charcoal', 40)) + .inputFluids(Fluid.of('gtceu:creosote', 4000)) + .outputFluids(Fluid.of('gtceu:coal_tar', 500), Fluid.of('tfg:syngas', 4400), Fluid.of('tfg:raw_aromatic_mix', 4000)) + .duration(20*150) + .circuit(1) + .EUt(GTValues.VHA[GTValues.MV]) + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_charcoal_hydrogen') + .itemInputs(Item.of('minecraft:charcoal', 40)) + .inputFluids(Fluid.of('gtceu:creosote', 4000)) + .perTick(true) + .chancedFluidInput(Fluid.of('gtceu:hydrogen', 1), 1000, 0) + .perTick(false) + .outputFluids(Fluid.of('gtceu:coal_tar', 500), Fluid.of('tfg:syngas', 4400), Fluid.of('tfg:raw_aromatic_mix', 4000)) + .duration(20*50) + .circuit(2) + .EUt(GTValues.VHA[GTValues.MV]) + + // Coal + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_coal') + .itemInputs(Item.of('minecraft:coal', 10)) + .inputFluids(Fluid.of('gtceu:creosote', 4000)) + .outputFluids(Fluid.of('gtceu:coal_tar', 1000), Fluid.of('tfg:syngas', 6400), Fluid.of('tfg:raw_aromatic_mix', 4000)) + .duration(20*150) + .circuit(1) + .EUt(GTValues.VHA[GTValues.MV]) + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_coal_hydrogen') + .itemInputs(Item.of('minecraft:coal', 10)) + .inputFluids(Fluid.of('gtceu:creosote', 4000)) + .perTick(true) + .chancedFluidInput(Fluid.of('gtceu:hydrogen', 1), 1000, 0) + .perTick(false) + .outputFluids(Fluid.of('gtceu:coal_tar', 1000), Fluid.of('tfg:syngas', 6400), Fluid.of('tfg:raw_aromatic_mix', 4000)) + .duration(20*50) + .circuit(2) + .EUt(GTValues.VHA[GTValues.MV]) + + // Coke + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_coke') + .itemInputs(Item.of('gtceu:coke_gem', 8)) + .inputFluids(Fluid.of('gtceu:creosote', 4000)) + .outputFluids(Fluid.of('gtceu:coal_tar', 2000), Fluid.of('tfg:syngas', 12800), Fluid.of('tfg:raw_aromatic_mix', 4000)) + .duration(20*150) + .circuit(1) + .EUt(GTValues.VHA[GTValues.MV]) + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_coke_hydrogen') + .itemInputs(Item.of('gtceu:coke_gem', 8)) + .inputFluids(Fluid.of('gtceu:creosote', 4000)) + .perTick(true) + .chancedFluidInput(Fluid.of('gtceu:hydrogen', 1), 1000, 0) + .perTick(false) + .outputFluids(Fluid.of('gtceu:coal_tar', 2000), Fluid.of('tfg:syngas', 12800), Fluid.of('tfg:raw_aromatic_mix', 4000)) + .duration(20*50) + .circuit(2) + .EUt(GTValues.VHA[GTValues.MV]) + + // Anthracite + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_anthracite') + .itemInputs(Item.of('beneath:cursecoal', 5)) + .inputFluids(Fluid.of('gtceu:creosote', 4000)) + .outputFluids(Fluid.of('gtceu:coal_tar', 2000), Fluid.of('tfg:syngas', 12800), Fluid.of('tfg:raw_aromatic_mix', 4000)) + .duration(20*150) + .circuit(1) + .EUt(GTValues.VHA[GTValues.MV]) + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_anthracite_hydrogen') + .itemInputs(Item.of('beneath:cursecoal', 5)) + .inputFluids(Fluid.of('gtceu:creosote', 4000)) + .perTick(true) + .chancedFluidInput(Fluid.of('gtceu:hydrogen', 1), 1000, 0) + .perTick(false) + .outputFluids(Fluid.of('gtceu:coal_tar', 2000), Fluid.of('tfg:syngas', 12800), Fluid.of('tfg:raw_aromatic_mix', 4000)) + .duration(20*50) + .circuit(2) + .EUt(GTValues.VHA[GTValues.MV]) + + // Aromatic Processing + + event.recipes.gtceu.chemical_reactor('tfg:aromatic_feedstock') + .inputFluids(Fluid.of('tfg:raw_aromatic_mix', 4000), Fluid.of('gtceu:benzene', 525), Fluid.of('gtceu:steam', 1000)) + .outputFluids(Fluid.of('tfg:aromatic_feedstock', 2000)) + .duration(20*30) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.chemical_reactor('tfg:reformed_aromatic_feedstock') + .chancedInput(Item.of('gtceu:tiny_rhenium_dust'), 1000, 0) // 10% chance + .inputFluids(Fluid.of('tfg:aromatic_feedstock', 2000)) + .outputFluids(Fluid.of('tfg:reformed_aromatic_feedstock', 2000)) + .duration(20*18) + .EUt(GTValues.VA[GTValues.MV]) + + // Reformate Gas Alternative Step + + event.recipes.gtceu.cracker('tfg:reformate_gas_cracker') + .inputFluids(Fluid.of('tfg:reformed_aromatic_feedstock', 2000), Fluid.of('gtceu:steam', 4000)) + .outputFluids(Fluid.of('tfg:reformate_gas', 8000)) + .outputFluids(Fluid.of('tfg:cracker_off_gas', 1000)) + .duration(20*30) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_reactor('tfg:reformate_gas') + .inputFluids(Fluid.of('tfg:reformed_aromatic_feedstock', 2000), Fluid.of('gtceu:steam', 1000)) + .outputFluids(Fluid.of('tfg:reformate_gas', 3000)) + .duration(20*30) + .EUt(GTValues.VA[GTValues.MV]) + + // Recycling + + event.recipes.gtceu.electrolyzer('tfg:cracker_off_gas_recycling') + .inputFluids(Fluid.of('tfg:cracker_off_gas', 1000)) + .outputFluids(Fluid.of('gtceu:carbon_dioxide', 500), Fluid.of('gtceu:hydrogen', 500)) + .chancedOutput(Item.of('gtceu:tiny_rhenium_dust'), 1000, 0) // 10% chance + .duration(20*4.5) + .EUt(GTValues.VA[GTValues.HV]) + + // Modify Recipe to balance new line + + event.remove({ id: 'gtceu:extractor/charcoal_extraction' }) + event.recipes.gtceu.extractor('tfg:charcoal_extraction') + .itemInputs(Item.of('minecraft:charcoal')) + .outputFluids(Fluid.of('gtceu:wood_tar', 100)) + .duration(20*6.4) + .EUt(GTValues.VA[GTValues.MV]) + + //#endregion + + //#region Rebalance Fuel + + // Increase Pyrolyse Oven duration + + event.forEachRecipe({ id: /gtceu:pyrolyse_oven\/(log_to_creosote|log_to_creosote_nitrogen)/ }, recipe => { + var newDuration = recipe.get("duration") + recipe.set("duration", newDuration*2) + }) + + event.forEachRecipe({ id: /gtceu:pyrolyse_oven\/(log_to_wood_tar|log_to_wood_tar_nitrogen)/ }, recipe => { + var newDuration = recipe.get("duration") + recipe.set("duration", newDuration*2) + }) + + //#region New Power Generation + + // Add Syngas + + event.recipes.gtceu.gas_turbine('tfg:syngas') // Gas Turbine + .inputFluids(Fluid.of('tfg:syngas', 1)) + .EUt(-(32)) + .duration(20*0.2) + + // Reformate Gas + + event.recipes.gtceu.gas_turbine('tfg:reformate_gas') // Gas Turbine + .inputFluids(Fluid.of('tfg:reformate_gas', 1)) + .EUt(-(32)) + .duration(20*0.6) + + //#endregion + + // Process Syngas + + + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/powergen/recipes.solar.js b/kubejs/server_scripts/tfg/powergen/recipes.solar.js new file mode 100644 index 000000000..e74ec4cb7 --- /dev/null +++ b/kubejs/server_scripts/tfg/powergen/recipes.solar.js @@ -0,0 +1,184 @@ +"use strict"; + +function registerTFGSolarRecipes(event) { + + //#region Large Solar Panel + + event.shaped( + 'gtceu:large_solar_panel', + ['WSW', 'TZT', 'WUW'], + { + S: 'tfg:photo_cell_t1', + Z: 'ad_astra:solar_panel', + W: '#gtceu:circuits/ev', + U: '#forge:gears/rocket_alloy_t1', + T: '#forge:gears/desh' + } + ).id('gtceu:shaped/large_solar_panel') + + event.shaped( + 'gtceu:large_solar_panel_tier2', + ['WSW', 'TZT', 'WUW'], + { + S: 'ad_astra:photovoltaic_etrium_cell', + Z: 'gtceu:large_solar_panel', + W: '#gtceu:circuits/iv', + U: '#forge:gears/rocket_alloy_t1', + T: '#forge:gears/desh' + } + ).id('gtceu:shaped/large_solar_panel_tier2') + + event.shaped( + 'gtceu:large_solar_panel_tier3', + ['WSW', 'TZT', 'WUW'], + { + S: 'ad_astra:photovoltaic_vesnium_cell', + Z: 'gtceu:large_solar_panel_tier2', + W: '#gtceu:circuits/luv', + U: '#forge:gears/rocket_alloy_t1', + T: '#forge:gears/desh' + } + ).id('gtceu:shaped/large_solar_panel_tier3') + + event.recipes.gtceu.chemical_reactor('advanced_photovoltaic_cell') + .itemInputs('8x tfg:photo_cell_t1', + '6x #forge:dusts/vanadium_gallium', + '#forge:insulation_t2/sheet') + .inputFluids(Fluid.of('gtceu:helium_3', 1000)) + .itemOutputs('8x ad_astra:photovoltaic_etrium_cell') + .duration(20 * 10) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.chemical_reactor('expert_photovoltaic_cell') + .itemInputs('8x ad_astra:photovoltaic_etrium_cell', + '6x gtceu:energium_dust', + '#forge:insulation_t3/sheet') + .inputFluids(Fluid.of('tfg:cryogenized_fluix', 1000)) + .itemOutputs('8x ad_astra:photovoltaic_vesnium_cell') + .duration(20 * 10) + .EUt(GTValues.VA[GTValues.IV]) + + //#region Chemical Reaction for Solar Panel + + event.recipes.gtceu.chemical_reactor('tfg:chlorine_pentafluoride') + .inputFluids(Fluid.of('gtceu:fluorine', 5000), Fluid.of('gtceu:chlorine', 1000)) + .outputFluids(Fluid.of('tfg:chlorine_pentafluoride', 1000)) + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.chemical_reactor('tfg:chloryl_fluoride') + .inputFluids(Fluid.of('tfg:chlorine_pentafluoride', 1000), Fluid.of('minecraft:water', 2000)) + .outputFluids(Fluid.of('tfg:chloryl_fluoride', 1000), Fluid.of('gtceu:hydrofluoric_acid', 4000)) + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.large_chemical_reactor('tfg:solar_coolant') + .inputFluids(Fluid.of('tfg:chloryl_fluoride', 3000), Fluid.of('gtceu:helium_3', 8000), Fluid.of('minecraft:water', 8000)) + .outputFluids(Fluid.of('tfg:solar_coolant', 1000), Fluid.of('gtceu:hydrofluoric_acid', 3000), Fluid.of('gtceu:hypochlorous_acid', 3000)) + .duration(20 * 5) + .EUt(GTValues.VH[GTValues.EV]) + + event.recipes.gtceu.large_chemical_reactor('tfg:solar_coolant_t2') + .inputFluids(Fluid.of('tfg:solar_coolant', 8000), Fluid.of('gtceu:argon', 1000)) + .itemInputs(Item.of('#forge:aerogels')) + .outputFluids(Fluid.of('tfg:solar_coolant_tier2', 8000)) + .duration(20 * 15) + .EUt(GTValues.VH[GTValues.IV]) + + //#endregion + + // LSP Generating recipes + + // Solar T1 + + event.recipes.gtceu.large_solar_panel('solar_panel_t1_emergency') + .chancedInput('tfg:photo_cell_t1', 100, 0) + .duration(20 * 20) + .daytime(false) + .dimension('ad_astra:moon') + .EUt(-((GTValues.V[GTValues.HV])), 2) + .circuit(1) + + event.recipes.gtceu.large_solar_panel('solar_panel_t1') + .notConsumable('tfg:photo_cell_t1') + .perTick(true) + .chancedFluidInput('tfg:compressed_trimix_3 4', 5000, 0) + .perTick(false) + .duration(20 * 20) + .daytime(false) + .dimension('ad_astra:moon') + .EUt(-(GTValues.V[GTValues.EV]), 2) + .circuit(2) + + // Solar T2 + + event.recipes.gtceu.large_solar_panel_tier2('solar_panel_t2_emergency') + .chancedInput('ad_astra:photovoltaic_etrium_cell', 100, 0) + .duration(20 * 20) + .daytime(false) + .dimension('ad_astra:moon') + .EUt(-(GTValues.V[GTValues.EV]), 2) + .circuit(1) + + event.recipes.gtceu.large_solar_panel_tier2('solar_panel_t2_strong') + .notConsumable('ad_astra:photovoltaic_etrium_cell') + .perTick(true) + .chancedFluidInput('tfg:solar_coolant 10', 5000, 0) + .inputFluids('tfg:cryogenized_fluix 4') + .outputFluids('tfg:fluix 1') + .perTick(false) + .duration(20 * 20) + .daytime(false) + .dimension('ad_astra:moon') + .EUt(-(GTValues.V[GTValues.IV]), 2) + .circuit(2) + + event.recipes.gtceu.large_solar_panel_tier2('solar_panel_t2_cheap') + .notConsumable('ad_astra:photovoltaic_etrium_cell') + .perTick(true) + .inputFluids('tfg:compressed_trimix_3 1') + .perTick(false) + .duration(20 * 20) + .daytime(false) + .dimension('ad_astra:moon') + .EUt(-(GTValues.V[GTValues.EV]), 2) + .circuit(3) + + // Solar T3 + + event.recipes.gtceu.large_solar_panel_tier3('solar_panel_t3_emergency') + .chancedInput('ad_astra:photovoltaic_vesnium_cell', 100, 0) + .duration(20 * 20) + .daytime(false) + .dimension('ad_astra:moon') + .EUt(-(GTValues.V[GTValues.IV]), 2) + .circuit(1) + + event.recipes.gtceu.large_solar_panel_tier3('solar_panel_t3_strong') + .notConsumable('ad_astra:photovoltaic_vesnium_cell') + .perTick(true) + .chancedFluidInput('tfg:solar_coolant_tier2 10', 5000, 0) + .inputFluids('tfg:cryogenized_fluix 4') + .outputFluids('tfg:fluix 1') + .perTick(false) + .duration(20 * 20) + .daytime(false) + .dimension('ad_astra:moon') + .EUt(-(GTValues.V[GTValues.LuV]), 2) + .circuit(2) + + event.recipes.gtceu.large_solar_panel_tier3('solar_panel_t3_cheap') + .notConsumable('ad_astra:photovoltaic_vesnium_cell') + .perTick(true) + .chancedFluidInput('tfg:solar_coolant 10', 5000, 0) + .inputFluids('tfg:cryogenized_fluix 4') + .outputFluids('tfg:fluix 1') + .perTick(false) + .duration(20 * 20) + .daytime(false) + .dimension('ad_astra:moon') + .EUt(-(GTValues.V[GTValues.IV]), 2) + .circuit(2) + + //#endregion +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/primitive/fishing_nets/events.fishing_nets.js b/kubejs/server_scripts/tfg/primitive/fishing_nets/events.fishing_nets.js new file mode 100644 index 000000000..c8bb64476 --- /dev/null +++ b/kubejs/server_scripts/tfg/primitive/fishing_nets/events.fishing_nets.js @@ -0,0 +1,93 @@ +const fish = [ + 'cod', + 'crappie', + 'jellyfish', + 'lake_trout', + 'largemouth_bass', + 'rainbow_trout', + 'salmon', + 'smallmouth_bass', + 'tropical_fish', + 'bluegill' +]; + +const shellfish = [ + 'lobster', + 'isopod', + 'crayfish' +]; + +//tags wont work here (or at least I couldnt get it to work) so we need to manually declare each net tier. +const tiers = [ + 'wood', + 'brass', + 'rose_gold', + 'sterling_silver', + 'invar', + 'tin_alloy', + 'cupronickel', + 'magnalium' +]; + +//Event detects if fish is right clicked with fishing net and then teleports the mob into the void, plays some actions and gives the player the proper item. +tiers.forEach(tier => { + fish.forEach(fish => { + ItemEvents.entityInteracted(`tfg:fishing_net/${tier}`, (event) => { + const { item, player, server, target } = event; + + if (target.type !== `tfc:${fish}`) return + server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`) + server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`) + server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`) + event.player.give(`tfc:food/${fish}`) + player.swing() + if (player.isCreative() === false) { + item.damageValue++ + if (item.damageValue >= item.maxDamage) { + server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`) + item.count-- + } + } + }) + }) + + //Shellfish Exception + shellfish.forEach(shellfish => { + ItemEvents.entityInteracted(`tfg:fishing_net/${tier}`, (event) => { + const { item, player, server, target } = event; + + if (target.type !== `tfc:${shellfish}`) return + server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`) + server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`) + server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`) + event.player.give('tfc:food/shellfish') + player.swing() + if (player.isCreative() === false) { + item.damageValue++ + if (item.damageValue >= item.maxDamage) { + server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`) + item.count-- + } + } + }) + }) + + //Pufferfish Exception + ItemEvents.entityInteracted(`tfg:fishing_net/${tier}`, (event) => { + const { item, player, server, target } = event; + + if (target.type !== 'tfc:pufferfish') return + server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`) + server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`) + server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`) + event.player.give('minecraft:pufferfish') + player.swing() + if (player.isCreative() === false) { + item.damageValue++ + if (item.damageValue >= item.maxDamage) { + server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`) + item.count-- + } + } + }) +}) \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.fishing_nets.js b/kubejs/server_scripts/tfg/primitive/fishing_nets/recipes.fishing_nets.js similarity index 100% rename from kubejs/server_scripts/tfg/recipes.fishing_nets.js rename to kubejs/server_scripts/tfg/primitive/fishing_nets/recipes.fishing_nets.js diff --git a/kubejs/server_scripts/tfg/primitive/medicine/events.medicine.js b/kubejs/server_scripts/tfg/primitive/medicine/events.medicine.js new file mode 100644 index 000000000..115e3caf7 --- /dev/null +++ b/kubejs/server_scripts/tfg/primitive/medicine/events.medicine.js @@ -0,0 +1,100 @@ + +//Pills & Tablets +const pill_event = [ + 'haste', + 'luck', + 'night_vision', + 'poison', + 'regeneration', + 'slowness', + 'speed', + 'water_breathing', + 'weakness', +]; + +pill_event.forEach(pill_event => { + + ItemEvents.rightClicked(event => { + const { item, server, player, player: { x, y, z } } = event + if (item.id !== `tfg:${pill_event}_pill`) return + item.count-- + player.addItemCooldown(item, 100) + server.runCommandSilent(`effect give ${player.username} minecraft:${pill_event} 480 0 true`) + server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${player.username} ${x} ${y} ${z} 10 1.5 1`) + }); + + ItemEvents.rightClicked(event => { + const { item, server, player, player: { x, y, z } } = event + if (item.id !== `tfg:${pill_event}_tablet`) return + item.count-- + player.addItemCooldown(item, 100) + server.runCommandSilent(`effect give ${player.username} minecraft:${pill_event} 1800 0 true`) + server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${player.username} ${x} ${y} ${z} 10 1.5 1`) + }); +}); + +ItemEvents.rightClicked(event => { + const { item, server, player, player: { x, y, z } } = event + if (item.id !== `tfg:antipoison_pill`) return + item.count-- + player.addItemCooldown(item, 50) + event.player.removeEffect('minecraft:poison') + server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${player.username} ${x} ${y} ${z} 10 1.5 1`) +}); + +ItemEvents.rightClicked(event => { + const { item, server, player, player: { x, y, z } } = event + if (item.id !== `tfg:antipoison_tablet`) return + item.count-- + player.addItemCooldown(item, 50) + event.player.removeEffect('minecraft:poison') + event.player.removeEffect('minecraft:wither') + event.player.removeEffect('minecraft:weakness') + event.player.removeEffect('minecraft:slowness') + event.player.removeEffect('minecraft:mining_fatigue') + event.player.removeEffect('minecraft:nausea') + event.player.removeEffect('minecraft:blindness') + event.player.removeEffect('minecraft:hunger') + event.player.removeEffect('minecraft:bad_omen') + event.player.removeEffect('minecraft:darkness') + event.player.removeEffect('minecraft:unluck') + server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${player.username} ${x} ${y} ${z} 10 1.5 1`) +}); + +//salvos +const salvo_event = [ + 'fire_resistance', + 'invisibility', + 'luck', + 'resistance', +]; + +salvo_event.forEach(salvo_event => { + + ItemEvents.rightClicked(event => { + const { item, server, player, player: { x, y, z } } = event + if (item.id !== `tfg:${salvo_event}_salvo`) return + item.count-- + player.addItemCooldown(item, 100) + server.runCommandSilent(`effect give ${player.username} minecraft:${salvo_event} 480 0 true`) + server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${player.username} ${x} ${y} ${z} 10 2 1`) + }); +}); + +ItemEvents.rightClicked(event => { + const { item, server, player, player: { x, y, z } } = event + if (item.id !== `tfg:absorption_salvo`) return + item.count-- + player.addItemCooldown(item, 200) + server.runCommandSilent(`effect give ${player.username} minecraft:absorption 480 4 true`) + server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${player.username} ${x} ${y} ${z} 10 2 1`) +}); + +ItemEvents.rightClicked(event => { + const { item, server, player, player: { x, y, z } } = event + if (item.id !== `tfg:instant_health_salvo`) return + item.count-- + player.addItemCooldown(item, 100) + server.runCommandSilent(`effect give ${player.username} minecraft:instant_health 1 1 true`) + server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${player.username} ${x} ${y} ${z} 10 2 1`) +}); \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.medicine.js b/kubejs/server_scripts/tfg/primitive/medicine/recipes.medicine.js similarity index 100% rename from kubejs/server_scripts/tfg/recipes.medicine.js rename to kubejs/server_scripts/tfg/primitive/medicine/recipes.medicine.js diff --git a/kubejs/server_scripts/tfg/primitive/medicine/tags.medicine.js b/kubejs/server_scripts/tfg/primitive/medicine/tags.medicine.js new file mode 100644 index 000000000..edfe6bceb --- /dev/null +++ b/kubejs/server_scripts/tfg/primitive/medicine/tags.medicine.js @@ -0,0 +1,67 @@ +"use strict"; + +function registerTFGMedicineItemTags(event) { + + event.add('tfg:antipoison_ingredients', 'tfc:plant/blood_lily') + event.add('tfg:antipoison_ingredients', 'tfc:plant/pistia') + event.add('tfg:antipoison_ingredients', 'tfc:powder/bismuthinite') + event.add('tfg:antipoison_ingredients', 'gtceu:mica_dust') + event.add('tfg:antipoison_ingredients', 'gtceu:fullers_earth_dust') + + event.add('tfg:poison_ingredients', 'tfc:plant/butterfly_milkweed') + event.add('tfg:poison_ingredients', 'tfc:plant/grape_hyacinth') + event.add('tfg:poison_ingredients', 'tfc:plant/lily_of_the_valley') + event.add('tfg:poison_ingredients', 'tfc:plant/pulsatilla') + event.add('tfg:poison_ingredients', 'firmalife:food/nightshade_berry') + event.add('tfg:poison_ingredients', 'minecraft:red_mushroom') + + event.add('tfg:regeneration_ingredients', 'tfc:plant/lilac') + event.add('tfg:regeneration_ingredients', 'tfc:plant/field_horsetail') + event.add('tfg:regeneration_ingredients', 'tfc:plant/licorice_fern') + event.add('tfg:regeneration_ingredients', 'tfc:plant/sacred_datura') + + event.add('tfg:speed_ingredients', 'tfc:plant/labrador_tea') + event.add('tfg:speed_ingredients', 'firmalife:raw_honey') + + event.add('tfg:slowness_ingredients', 'tfc:plant/marigold') + event.add('tfg:slowness_ingredients', 'tfc:plant/nasturtium') + event.add('tfg:slowness_ingredients', 'tfc:plant/snapdragon_red') + event.add('tfg:slowness_ingredients', 'tfc:plant/snapdragon_white') + event.add('tfg:slowness_ingredients', 'tfc:plant/snapdragon_yellow') + + event.add('tfg:weakness_ingredients', 'tfc:plant/laminaria') + event.add('tfg:weakness_ingredients', 'tfc:plant/sea_palm') + event.add('tfg:weakness_ingredients', 'tfc:plant/sea_lavender') + event.add('tfg:weakness_ingredients', 'tfc:plant/canna') + event.add('tfg:weakness_ingredients', 'tfc:plant/water_canna') + + event.add('tfg:haste_ingredients', '#tfg:sugars') + + event.add('tfg:water_breathing_ingredients', 'tfc:powder/saltpeter') + event.add('tfg:water_breathing_ingredients', 'tfc:powder/charcoal') + event.add('tfg:water_breathing_ingredients', 'tfg:rapeseed_product') + + event.add('tfg:night_vision_ingredients', 'tfc:food/carrot') + event.add('tfg:night_vision_ingredients', 'beneath:gleamflower') + event.add('tfg:night_vision_ingredients', 'tfg:sunflower_product') + + event.add('tfg:invisibility_ingredients', 'tfc:plant/calendula') + event.add('tfg:absorption_ingredients', 'beneath:burpflower') + + event.add('tfg:fire_resistance_ingredients', 'tfc:plant/cattail') + event.add('tfg:fire_resistance_ingredients', 'tfc:plant/meads_milkweed') + event.add('tfg:fire_resistance_ingredients', 'firmalife:plant/bay_laurel') + event.add('tfg:fire_resistance_ingredients', 'beneath:ghost_pepper') + + event.add('tfg:resistance_ingredients', 'tfc:plant/hibiscus') + event.add('tfg:resistance_ingredients', 'gtceu:calcium_dust') + + event.add('tfg:instant_health_ingredients', 'tfc:plant/foxglove') + event.add('tfg:instant_health_ingredients', 'tfc:plant/artists_conk') + + event.add('tfg:absorption_ingredients', 'tfc:plant/poppy') + event.add('tfg:invisibility_ingredients', 'tfc:plant/snapdragon_pink') + + event.add('tfg:luck_ingredients', 'tfc:plant/goldenrod') + event.add('tfg:luck_ingredients', 'tfc:plant/heather') +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/primitive/recipes.arrows.js b/kubejs/server_scripts/tfg/primitive/recipes.arrows.js new file mode 100644 index 000000000..81482c127 --- /dev/null +++ b/kubejs/server_scripts/tfg/primitive/recipes.arrows.js @@ -0,0 +1,84 @@ +"use strict"; + +function registerTFGArrowRecipes(event) { + // Arrow Parts + event.recipes.tfc.knapping( + '4x tfg:flint_arrow_head', + 'tfg:flint', + [ + ' XXX', + ' XXXX', + 'XXXXX', + ' XXX ', + ' X ' + ] + ).outsideSlotRequired(false) + .id('tfg:knapping/flint_arrow_head') + + event.recipes.gtceu.cutter('tfg:assembler/flint_arrow_head') + .itemInputs('1x minecraft:flint') + .itemOutputs('4x tfg:flint_arrow_head') + .duration(20) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.tfc.damage_inputs_shapeless_crafting( + event.shapeless('4x tfg:fletching', [ + 'minecraft:feather', + '#forge:tools/knives' + ]).id('tfg:shapeless/fletching')) + + event.recipes.gtceu.assembler('tfg:assembler/fletching') + .itemInputs('1x minecraft:feather') + .itemOutputs('4x tfg:fletching') + .duration(20) + .circuit(4) + .EUt(GTValues.VA[GTValues.ULV]) + + event.shaped('minecraft:arrow', [ + ' A ', + ' B ', + ' C ' + ], { + A: 'tfg:flint_arrow_head', + B: '#forge:rods/wooden', + C: 'tfg:fletching' + }).id('tfg:shaped/arrow') + + event.shaped('minecraft:arrow', [ + ' A ', + ' B ', + ' C ' + ], { + A: 'primitive_creatures:tt_5', + B: '#forge:rods/wooden', + C: 'tfg:fletching' + }).id('tfg:shaped/arrow_shard') + + // Wraptor feathers + event.recipes.tfc.damage_inputs_shapeless_crafting( + event.shapeless('4x tfg:fletching', [ + 'tfg:wraptor_wool', + '#forge:tools/knives' + ]).id('tfg:shapeless/wraptor_feather_fletching')) + + event.recipes.gtceu.assembler('tfg:assembler/wraptor_feather_fletching') + .itemInputs('1x tfg:wraptor_wool') + .itemOutputs('4x tfg:fletching') + .duration(20) + .circuit(4) + .EUt(GTValues.VA[GTValues.ULV]) + + // Glider feathers + event.recipes.tfc.damage_inputs_shapeless_crafting( + event.shapeless('4x tfg:fletching', [ + 'wan_ancient_beasts:glider_feather', + '#forge:tools/knives' + ]).id('tfg:shapeless/glider_feather_fletching')) + + event.recipes.gtceu.assembler('tfg:assembler/glider_feather_fletching') + .itemInputs('1x wan_ancient_beasts:glider_feather') + .itemOutputs('4x tfg:fletching') + .duration(20) + .circuit(4) + .EUt(GTValues.VA[GTValues.ULV]) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/primitive/recipes.baskets.js b/kubejs/server_scripts/tfg/primitive/recipes.baskets.js new file mode 100644 index 000000000..a6bdc30ff --- /dev/null +++ b/kubejs/server_scripts/tfg/primitive/recipes.baskets.js @@ -0,0 +1,64 @@ +"use strict"; + +function registerTFGBasketRecipes(event) { + event.shaped('tfg:harvest_basket', [ + 'BDB', + 'ACA', + 'AAA' + ], { + A: 'tfg:soaked_hardwood_strip', + B: ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 1), + C: 'tfc:glue', + D: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1) + }).id('tfg:shaped/harvest_basket_from_wood') + + event.recipes.gtceu.assembler('tfg:assembler/harvest_basket_from_wood') + .itemInputs( + '5x tfg:soaked_hardwood_strip', + ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 2), + ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1) + ) + .inputFluids(Fluid.of('gtceu:glue', 50)) + .itemOutputs('tfg:harvest_basket') + .duration(100) + .EUt(GTValues.VA[GTValues.ULV]) + + event.shaped('tfg:harvest_basket', [ + 'BDB', + 'ACA', + 'AAA' + ], { + A: 'tfc:soaked_papyrus_strip', + B: ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 1), + C: 'tfc:glue', + D: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1) + }).id('tfg:shaped/harvest_basket_from_papyrus') + + event.recipes.gtceu.assembler('tfg:assembler/harvest_basket_from_papyrus') + .itemInputs( + '5x tfc:soaked_papyrus_strip', + ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 2), + ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1) + ) + .inputFluids(Fluid.of('gtceu:glue', 50)) + .itemOutputs('tfg:harvest_basket') + .circuit(2) + .duration(100) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.assembler('tfg:assembler/aluminium_harvest_basket') + .itemInputs( + ChemicalHelper.get(TagPrefix.plate, GTMaterials.Aluminium, 3), + ChemicalHelper.get(TagPrefix.foil, GTMaterials.Aluminium, 2), + ChemicalHelper.get(TagPrefix.bolt, GTMaterials.Steel, 2), + ChemicalHelper.get(TagPrefix.rodLong, + GTMaterials.Aluminium, 1) + ) + .inputFluids(Fluid.of('gtceu:cobalt_brass', 144)) + .itemOutputs('tfg:aluminium_harvest_basket') + .duration(200) + .circuit(4) + .EUt(GTValues.VA[GTValues.LV]) + .addMaterialInfo(true) + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/primitive/recipes.clay.js b/kubejs/server_scripts/tfg/primitive/recipes.clay.js new file mode 100644 index 000000000..153455c8a --- /dev/null +++ b/kubejs/server_scripts/tfg/primitive/recipes.clay.js @@ -0,0 +1,144 @@ +"use strict"; + +function registerTFGClayRecipes(event) { + + event.shapeless('tfc:crucible', ['tfc:crucible']).id('tfg:empty_crucible') + + event.shaped('minecraft:clay', [ + 'AA', + 'AA' + ], { + A: 'minecraft:clay_ball' + }).id('tfg:shaped/clay_balls_to_block') + + event.shapeless('4x minecraft:clay_ball', ['minecraft:clay']) + .id('tfg:shapeless/clay_block_to_balls') + + global.TFC_FURNACE_MOLD_RECIPE_COMPONENTS.forEach(element => { + event.smelting(element.output, element.input) + .id(`tfg:smelting/${element.name}`) + }) + + global.MINECRAFT_DYE_NAMES.forEach(dye => { + event.smelting(`tfc:ceramic/${dye}_glazed_vessel`, `tfc:ceramic/${dye}_unfired_vessel`) + .id(`tfg:smelting/${dye}_glazed_vessel`) + + event.smelting(`tfc:ceramic/large_vessel/${dye}`, `tfc:ceramic/unfired_large_vessel/${dye}`) + .id(`tfg:smelting/${dye}_large_vessel`) + }) + + for (let i = 0; i < global.TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS.length; i++) { + let element = global.TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS[i]; + + event.recipes.gtceu.assembler(`tfg:tfc/${element.name}`) + .itemInputs(element.input) + .circuit(i) + .itemOutputs(element.output) + .duration(450) + .EUt(2) + } + + for (let i = 0; i < global.TFC_FIRE_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS.length; i++) { + let element = global.TFC_FIRE_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS[i]; + + event.recipes.gtceu.assembler(`tfg:tfc/${element.name}`) + .itemInputs(element.input) + .circuit(i) + .itemOutputs(element.output) + .duration(450) + .EUt(2) + } + + event.recipes.gtceu.extruder('tfg:unfired_clay_brick') + .itemInputs('minecraft:clay_ball') + .notConsumable('gtceu:ingot_extruder_mold') + .itemOutputs('tfc:ceramic/unfired_brick') + .duration(20) + .EUt(2) + + event.recipes.gtceu.extruder('tfg:unfired_fire_clay_brick') + .itemInputs('tfc:fire_clay') + .notConsumable('gtceu:ingot_extruder_mold') + .itemOutputs('tfc:ceramic/unfired_fire_brick') + .duration(20) + .EUt(2) + + // Kaolinite Clay - regular smelting recipes can't have multiple inputs + event.recipes.gtceu.alloy_smelter('tfg:kaolinite') + .itemInputs('tfc:kaolin_clay') + .circuit(1) + .chancedOutput('tfc:powder/kaolinite', 2000, 0) + .duration(100) + .EUt(16) + + // Fire Clay + event.recipes.gtceu.alloy_smelter('tfg:cheaper_fire_clay') + .itemInputs('#forge:dusts/graphite', '4x tfc:kaolin_clay') + .itemOutputs('2x tfc:fire_clay') + .duration(600) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.alloy_smelter('tfg:oops_i_smelted_all_my_kaolin') + .itemInputs('minecraft:clay_ball', 'tfc:powder/kaolinite') + .itemOutputs('tfc:kaolin_clay') + .duration(600) + .EUt(GTValues.VA[GTValues.ULV]) + + // Compressed Coke Clay + event.shaped('gtceu:compressed_coke_clay', [ + 'AAA', + 'BCB', + 'BBB' + ], { + A: 'minecraft:clay_ball', + B: '#minecraft:sand', + C: 'gtceu:brick_wooden_form' + }).replaceIngredient('gtceu:brick_wooden_form', 'gtceu:brick_wooden_form').id('gtceu:shaped/compressed_coke_clay') + + // Coke Oven Brick + event.recipes.tfc.heating('gtceu:compressed_coke_clay', 1399) + .resultItem('gtceu:coke_oven_brick') + .id('tfg:heating/coke_oven_bricks') + + event.recipes.gtceu.alloy_smelter('gtceu:coke_oven_brick') + .itemInputs('3x #minecraft:sand', '2x minecraft:clay_ball') + .itemOutputs('gtceu:coke_oven_brick') + .duration(7.5 * 20) + .EUt(GTValues.VA[GTValues.ULV]) + + // Ceramic Recycling + event.recipes.gtceu.macerator('tfg:sherd_to_brick_dust') + .itemInputs('firmalife:pottery_sherd') + .itemOutputs('#forge:dusts/brick') + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .duration(20) + .EUt(2) + + event.recipes.gtceu.macerator('tfg:ceramic_molds') + .itemInputs('#tfc:fired_molds') + .itemOutputs('2x #forge:dusts/brick') + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .duration(20) + .EUt(2) + + event.recipes.gtceu.macerator('tfg:large_vessels') + .itemInputs('#tfc:fired_large_vessels') + .itemOutputs('5x #forge:dusts/brick') + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .duration(20) + .EUt(2) + + event.recipes.gtceu.macerator('tfg:casting_channel') + .itemInputs('tfcchannelcasting:channel') + .itemOutputs('1x #forge:dusts/brick') + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .duration(20) + .EUt(2) + + event.recipes.gtceu.macerator('tfg:mold_table') + .itemInputs('tfcchannelcasting:mold_table') + .itemOutputs('5x #forge:dusts/brick') + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .duration(20) + .EUt(2) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/primitive/recipes.cloth.js b/kubejs/server_scripts/tfg/primitive/recipes.cloth.js new file mode 100644 index 000000000..284666095 --- /dev/null +++ b/kubejs/server_scripts/tfg/primitive/recipes.cloth.js @@ -0,0 +1,263 @@ +"use strict"; + +function registerTFGClothRecipes(event) { + + //Cloth & String + event.recipes.gtceu.wiremill('tfg:wiremill/phantom_thread') + .itemInputs('1x minecraft:phantom_membrane') + .itemOutputs('16x tfg:phantom_thread') + .duration(100) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.wiremill('tfg:wiremill/polycaprolactam_string') + .itemInputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Polycaprolactam, 1)) + .itemOutputs('32x tfg:polycaprolactam_string') + .duration(100) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.assembler('tfg:assembler/phantom_silk') + .itemInputs('16x tfg:phantom_thread') + .itemOutputs('1x tfg:phantom_silk') + .duration(100) + .circuit(3) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.assembler('tfg:assembler/polycaprolactam_fabric') + .itemInputs('16x tfg:polycaprolactam_string') + .itemOutputs('1x tfg:polycaprolactam_fabric') + .duration(100) + .circuit(3) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.chemical_bath('tfg:chemical_bath/bleaching/polycaprolactam_string') + .itemInputs('tfg:polycaprolactam_string') + .inputFluids(Fluid.of('gtceu:chlorine', 16)) + .itemOutputs('minecraft:string') + .duration(80) + .EUt(GTValues.VA[GTValues.ULV]) + .category(GTRecipeCategories.CHEM_DYES) + + event.recipes.tfc.loom( + '1x tfg:phantom_silk', + '16x tfg:phantom_thread', + 8, + 'tfg:block/phantom_silk_block' + ) + + event.recipes.tfc.loom( + '1x tfg:polycaprolactam_fabric', + '16x tfg:polycaprolactam_string', + 8, + 'tfg:block/polycaprolactam_fabric_block' + ) + + event.recipes.tfc.damage_inputs_shapeless_crafting( + event.shapeless('16x tfg:phantom_thread', [ + 'minecraft:phantom_membrane', + 'tfc:spindle' + ]).id('tfg:shapeless/phantom_thread')) + + // Wool Yarn + event.recipes.gtceu.wiremill('tfg:tfc/wool_yarn') + .itemInputs('tfc:wool') + .itemOutputs('8x tfc:wool_yarn') + .duration(100) + .EUt(4) + + // Burlap Cloth + event.recipes.gtceu.assembler('tfg:tfc/burlap_cloth') + .itemInputs('12x tfc:jute_fiber') + .circuit(0) + .itemOutputs('tfc:burlap_cloth') + .duration(100) + .EUt(4) + + // Silk Cloth + event.recipes.gtceu.assembler('tfg:tfc/silk_cloth') + .itemInputs('24x minecraft:string') + .circuit(0) + .itemOutputs('tfc:silk_cloth') + .duration(100) + .EUt(4) + + // Wool Cloth + event.recipes.gtceu.assembler('tfg:tfc/wool_cloth') + .itemInputs('16x tfc:wool_yarn') + .circuit(0) + .itemOutputs('tfc:wool_cloth') + .duration(100) + .EUt(4) + + // Cloths to Wool + event.recipes.gtceu.assembler('tfg:tfc/cloth_to_wool') + .itemInputs('4x #tfc:sewing_light_cloth') + .itemOutputs('8x minecraft:white_wool') + .circuit(16) + .duration(100) + .EUt(4) + + // Wool Yarn + event.recipes.gtceu.macerator('macerate_wool') + .itemInputs('#minecraft:wool') + .itemOutputs('tfc:wool_yarn') + .chancedOutput('tfc:wool_yarn', 9000, 0) + .chancedOutput('tfc:wool_yarn', 5000, 0) + .chancedOutput('tfc:wool_yarn', 2000, 0) + .duration(200) + .EUt(2) + + // Jute Fiber + generateMixerRecipe(event, 'tfc:jute', "#tfg:clean_water 200", + 'tfc:jute_fiber', null, [], 100, 4, 16, 'tfg:tfc/jute_fiber') + + //#region flax stuff + + event.shapeless('1x tfg:flax_bundle', ['9x tfg:flax_product']) + event.recipes.gtceu.packer('tfg:packer/flax_bundle') + .itemInputs('9x tfg:flax_product') + .itemOutputs('tfg:flax_bundle') + .duration('100') + .EUt(GTValues.VA[GTValues.ULV]) + + event.shapeless('1x tfg:bundled_scraped_flax', ['9x tfg:flax_waste']) + event.recipes.gtceu.packer('tfg:packer/bundled_scraped_flax') + .itemInputs('9x tfg:flax_waste') + .itemOutputs('tfg:bundled_scraped_flax') + .duration('100') + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.tfc.scraping( + 'tfg:flax_waste', + 'tfg:flax_product', + 'tfg:item/flax_waste', + 'tfg:item/flax_product', + '2x tfg:flax_line' + ).id('tfg:scraping/flax_line') + + event.recipes.tfc.scraping( + 'tfg:bundled_scraped_flax', + 'tfg:flax_bundle', + 'tfg:item/bundled_scraped_flax', + 'tfg:item/flax_bundle', + '18x tfg:flax_line' + ).id('tfg:scraping/flax_line_from_bundle') + + event.recipes.tfc.scraping( + 'tfc:groundcover/humus', + 'tfg:flax_waste', + 'tfc:item/groundcover/humus', + 'tfg:item/flax_waste', + 'tfg:flax_tow' + ).id('tfg:scraping/flax_tow') + + event.recipes.tfc.scraping( + '9x tfc:groundcover/humus', + 'tfg:bundled_scraped_flax', + 'tfc:item/groundcover/humus', + 'tfg:item/bundled_scraped_flax', + '9x tfg:flax_tow' + ).id('tfg:scraping/flax_tow_from_pile') + + event.recipes.gtceu.cutter('tfg:flax_line_in_cutter') + .itemInputs('tfg:flax_product') + .itemOutputs('2x tfg:flax_line', 'tfg:flax_waste') + .duration(60) + .EUt(2) + + event.recipes.gtceu.cutter('tfg:flax_line_from_bundle_in_cutter') + .itemInputs('tfg:flax_bundle') + .itemOutputs('18x tfg:flax_line', 'tfg:bundled_scraped_flax') + .duration(540) + .EUt(2) + + event.recipes.gtceu.cutter('tfg:flax_tow_in_cutter') + .itemInputs('tfg:flax_waste') + .itemOutputs('1x tfg:flax_tow', '1x tfc:groundcover/humus') + .duration(60) + .EUt(2) + + event.recipes.gtceu.cutter('tfg:flax_tow_from_bundle_in_cutter') + .itemInputs('tfg:bundled_scraped_flax') + .itemOutputs('9x tfg:flax_tow', '9x tfc:groundcover/humus') + .duration(540) + .EUt(2) + + event.recipes.gtceu.centrifuge('tfg:flax_product') + .itemInputs('tfg:flax_product') + .itemOutputs('2x tfg:flax_line', 'tfg:flax_tow', 'tfc:groundcover/humus') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.centrifuge('tfg:flax_product_from_bundle') + .itemInputs('tfg:flax_bundle') + .itemOutputs('18x tfg:flax_line', '9x tfg:flax_tow', '9x tfc:groundcover/humus') + .duration(1800) + .EUt(GTValues.VA[GTValues.LV]) + + event.custom({ + type: 'vintageimprovements:centrifugation', + ingredients: [{ item: 'tfg:flax_product' }], + results: [{ item: 'tfg:flax_line', count: 2 }, { item: 'tfg:flax_tow' }, { item: 'tfc:groundcover/humus' }], + processingTime: 40 * 10 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER + }).id('tfg:vi_seperate_flax') + + event.custom({ + type: 'vintageimprovements:centrifugation', + ingredients: [{ item: 'tfg:flax_bundle' }], + results: [{ item: 'tfg:flax_line', count: 18 }, { item: 'tfg:flax_tow', count: 9 }, { item: 'tfc:groundcover/humus', count: 9 }], + processingTime: 360 * 90 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER + }).id('tfg:vi_seperate_flax_from_bundle') + + // #endregion + + //#region flax line spinning + event.recipes.tfc.damage_inputs_shapeless_crafting( + event.shapeless('4x tfg:linen_thread', [ + 'tfg:flax_line', + 'tfc:spindle' + ]).id('tfg:shapeless/linen_thread') + ) + + event.custom({ + type: 'vintageimprovements:coiling', + ingredients: [{ item: 'tfg:flax_line' }], + results: [{ item: 'tfg:linen_thread', count: 4 }], + processingTime: 2 * 10 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER + }).id('tfg:vi_spin_flax_line') + + event.recipes.gtceu.wiremill('tfg:spin_flax_line') + .itemInputs('tfg:flax_line') + .itemOutputs('4x tfg:linen_thread') + .duration(80) + .EUt(GTValues.VA[GTValues.LV]) + //#endregion + //#region flax looming + event.recipes.tfc.loom( + '1x tfg:linen_cloth', + '16x tfg:linen_thread', + 8, + 'tfc:block/burlap' + ) + + event.recipes.tfc.loom( + '1x tfc:burlap_cloth', + '16x tfg:flax_tow', + 12, + 'tfc:block/burlap' + ) + + event.recipes.gtceu.assembler('tfg:assembler/linen_cloth') + .itemInputs('16x tfg:linen_thread') + .circuit(10) + .itemOutputs('tfg:linen_cloth') + .duration(100) + .EUt(4) + + event.recipes.gtceu.assembler('tfg:assembler/flax_burlap') + .itemInputs('16x tfg:flax_tow') + .circuit(10) + .itemOutputs('tfc:burlap_cloth') + .duration(100) + .EUt(4) + //#endregion +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/primitive/recipes.compost.js b/kubejs/server_scripts/tfg/primitive/recipes.compost.js new file mode 100644 index 000000000..623e231a2 --- /dev/null +++ b/kubejs/server_scripts/tfg/primitive/recipes.compost.js @@ -0,0 +1,194 @@ +"use strict"; + +function registerTFGCompostRecipes(event) { + //#region Fertiliser + event.recipes.gtceu.mixer('tfg:fertilizer') + .itemInputs( + '#tfc:dirt', + '2x #tfg:wood_dusts', + '4x #forge:sand' + ) + .circuit(1) + .inputFluids("#tfg:clean_water 1000") + .itemOutputs('4x gtceu:fertilizer') + .duration(300) + .EUt(30) + + event.recipes.gtceu.mixer('tfg:fertilizer_2') + .itemInputs('tfc:compost') + .inputFluids('#tfg:clean_water 1000') + .itemOutputs('4x gtceu:fertilizer') + .duration(300) + .EUt(30) + + event.recipes.gtceu.centrifuge('tfg:gtceu/centrifuge/pure_fertilizers') + .itemInputs('1x gtceu:fertilizer') + .itemOutputs('1x tfc:pure_nitrogen', '1x tfc:pure_potassium', '1x tfc:pure_phosphorus') + .duration(340) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.mixer('tfg:tfc/mixer/fertilizer') + .itemInputs('1x tfc:pure_nitrogen', '1x tfc:pure_potassium', '1x tfc:pure_phosphorus', ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Clay, 1)) + .itemOutputs('1x gtceu:fertilizer') + .duration(160) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.gas_pressurizer('tfg:pure_nitrogen') + .itemInputs('#forge:wax') + .inputFluids(Fluid.of('gtceu:nitrogen', 1000)) + .itemOutputs('16x tfc:pure_nitrogen') + .duration(100) + .EUt(GTValues.VA[GTValues.LV]) + //#endregion + + // Humus and compost + event.recipes.gtceu.extractor('tfg:humus_from_leaves') + .itemInputs('#minecraft:leaves') + .itemOutputs('tfc:groundcover/humus') + .duration(600) + .EUt(2) + + event.recipes.gtceu.extractor('tfg:humus_from_fallen_leaves') + .itemInputs('#tfc:fallen_leaves') + .itemOutputs('tfc:groundcover/humus') + .duration(600) + .EUt(2) + + event.recipes.gtceu.fermenter('tfg:fertilizer_to_compost') + .itemInputs('4x gtceu:fertilizer') + .itemOutputs('tfc:compost') + .duration(1200) + .EUt(2) + + const BROWNS = [ '16x #tfc:compost_browns_low', '8x #tfc:compost_browns', '4x #tfc:compost_browns_high' ]; + const GREENS = [ '16x #tfc:compost_greens_low', '8x #tfc:compost_greens', '4x #tfc:compost_greens_high' ]; + + let i = 0; + BROWNS.forEach(brown => { + GREENS.forEach(green => { + event.recipes.gtceu.mixer(`tfg:compost_${i++}`) + .itemInputs(brown, green) + .itemOutputs('tfc:compost') + .duration(1200) + .EUt(2) + }) + }) + + //Greens + // Lows via crafting with mortar + event.shaped(Item.of('tfg:universal_compost_greens', 1), [ + 'AB' + ], { + A: '#tfc:compost_greens_low', + B: '#forge:tools/mortars' + }).id('tfg:shaped/universal_compost_greens_from_low') + + // Mediums via crafting with mortar + event.shaped(Item.of('tfg:universal_compost_greens', 2), [ + 'AB' + ], { + A: '#tfc:compost_greens', + B: '#forge:tools/mortars' + }).id('tfg:shaped/universal_compost_greens_from_medium') + + // Highs via crafting with mortar + event.shaped(Item.of('tfg:universal_compost_greens', 4), [ + 'AB' + ], { + A: '#tfc:compost_greens_high', + B: '#forge:tools/mortars' + }).id('tfg:shaped/universal_compost_greens_from_high') + + // Filters + const greens_low = Ingredient.of('#tfc:compost_greens_low') + const browns_low = Ingredient.of('#tfc:compost_browns_low').itemIds + const greens_medium = Ingredient.of('#tfc:compost_greens') + const browns_medium = Ingredient.of('#tfc:compost_browns').itemIds + const greens_high = Ingredient.of('#tfc:compost_greens_high') + const browns_high = Ingredient.of('#tfc:compost_browns_high').itemIds + + let low_filtered = greens_low + let medium_filtered = greens_medium + let high_filtered = greens_high + + browns_low.forEach(item => { + low_filtered = low_filtered.subtract(item) + low_filtered = low_filtered.subtract('tfg:universal_compost_greens') + }) + browns_medium.forEach(item => { + medium_filtered = medium_filtered.subtract(item) + }) + browns_high.forEach(item => { + high_filtered = high_filtered.subtract(item) + }) + + // Lows via forge hammer + event.recipes.gtceu.forge_hammer('tfg:universal_compost_greens_low') + .itemInputs(low_filtered) + .itemOutputs('tfg:universal_compost_greens') + .duration(20) + .EUt(8) + + // Mediums via forge hammer + event.recipes.gtceu.forge_hammer('tfg:universal_compost_greens_medium') + .itemInputs(medium_filtered) + .itemOutputs(Item.of('tfg:universal_compost_greens', 2)) + .duration(20) + .EUt(8) + + // Highs via forge hammer + event.recipes.gtceu.forge_hammer('tfg:universal_compost_greens_high') + .itemInputs(high_filtered) + .itemOutputs(Item.of('tfg:universal_compost_greens', 4)) + .duration(20) + .EUt(8) + + //Browns + // Lows via crafting with mortar + event.shaped(Item.of('tfg:universal_compost_browns', 1), [ + 'A', + 'B' + ], { + A: '#tfc:compost_browns_low', + B: '#forge:tools/mortars' + }).id('tfg:shaped/universal_compost_browns_from_low') + + // Mediums via crafting with mortar + event.shaped(Item.of('tfg:universal_compost_browns', 2), [ + 'A', + 'B' + ], { + A: '#tfc:compost_browns', + B: '#forge:tools/mortars' + }).id('tfg:shaped/universal_compost_browns_from_medium') + + // Highs via crafting with mortar + event.shaped(Item.of('tfg:universal_compost_browns', 4), [ + 'A', + 'B' + ], { + A: '#tfc:compost_browns_high', + B: '#forge:tools/mortars' + }).id('tfg:shaped/universal_compost_browns_from_high') + + // Lows via forge hammer + event.recipes.gtceu.forge_hammer('tfg:universal_compost_browns_low') + .itemInputs('#tfc:compost_browns_low') + .itemOutputs('tfg:universal_compost_browns') + .duration(20) + .EUt(8) + + // Mediums via forge hammer + event.recipes.gtceu.forge_hammer('tfg:universal_compost_browns_medium') + .itemInputs('#tfc:compost_browns') + .itemOutputs(Item.of('tfg:universal_compost_browns', 2)) + .duration(20) + .EUt(8) + + // Highs via forge hammer + event.recipes.gtceu.forge_hammer('tfg:universal_compost_browns_high') + .itemInputs('#tfc:compost_browns_high') + .itemOutputs(Item.of('tfg:universal_compost_browns', 4)) + .duration(20) + .EUt(8) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/primitive/recipes.glue_and_chipboard.js b/kubejs/server_scripts/tfg/primitive/recipes.glue_and_chipboard.js new file mode 100644 index 000000000..29ccd1771 --- /dev/null +++ b/kubejs/server_scripts/tfg/primitive/recipes.glue_and_chipboard.js @@ -0,0 +1,101 @@ +"use strict"; + +function registerTFGChipboardRecipes(event) { + + // Glue from resin + event.recipes.gtceu.extractor('tfg:glue_from_tfc_glue') + .itemInputs('tfc:glue') + .outputFluids(Fluid.of('gtceu:glue', 50)) + .duration(20 * 10) + .EUt(5) + + event.recipes.gtceu.extractor('tfg:glue_from_sticky_resin') + .itemInputs('gtceu:sticky_resin') + .outputFluids(Fluid.of('gtceu:glue', 100)) + .duration(20 * 10) + .EUt(5) + + event.recipes.gtceu.extractor('tfg:glue_from_conifer_resin') + .itemInputs('tfg:conifer_rosin') + .outputFluids(Fluid.of('gtceu:glue', 50)) + .duration(20 * 10) + .EUt(5) + + event.recipes.gtceu.mixer('tfg:glue_from_bone_meal') + .itemInputs('minecraft:bone_meal') + .inputFluids(Fluid.of('tfc:limewater', 500)) + .outputFluids(Fluid.of('gtceu:glue', 50)) + .duration(100) + .EUt(5) + + // Chipboard + event.recipes.gtceu.mixer('gtceu:chipboard_composite_wax') + .itemInputs('2x #tfg:wood_dusts', + '1x #forge:wax') + .itemOutputs('2x tfg:chipboard_composite') + .duration(100) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.mixer('gtceu:chipboard_composite_resin') + .itemInputs('4x #tfg:wood_dusts', + '1x gtceu:sticky_resin') + .itemOutputs('4x tfg:chipboard_composite') + .duration(100) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.mixer('gtceu:chipboard_composite_glue') + .itemInputs('2x #tfg:wood_dusts', + '1x tfc:glue') + .itemOutputs('2x tfg:chipboard_composite') + .duration(100) + .EUt(GTValues.VA[GTValues.LV]) + + + event.recipes.gtceu.mixer('gtceu:chipboard_composite_fluid_glue') + .itemInputs('1x #tfg:wood_dusts') + .inputFluids(Fluid.of('gtceu:glue', 25)) + .itemOutputs('1x tfg:chipboard_composite') + .duration(10) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.compressor('gtceu:wood_mdf') + .itemInputs('1x tfg:chipboard_composite') + .itemOutputs('gtceu:wood_plate') + .duration(200) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.chemical_bath('gtceu:treated_chipboard_composite') + .itemInputs('1x tfg:chipboard_composite') + .inputFluids(Fluid.of('gtceu:creosote', 50)) + .itemOutputs('tfg:treated_chipboard_composite') + .duration(100) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.chemical_bath('gtceu:bath_high_density_treated_fiberboard') + .itemInputs('1x gtceu:wood_plate') + .inputFluids(Fluid.of('gtceu:creosote', 50)) + .itemOutputs('tfg:high_density_treated_fiberboard') + .duration(100) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.chemical_bath('gtceu:bath_treated_wood_dust') + .itemInputs('#tfg:wood_dusts') + .inputFluids(Fluid.of('gtceu:creosote', 50)) + .itemOutputs('gtceu:treated_wood_dust') + .duration(100) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.compressor('tfg:compressed_treated_chipboard_composite') + .itemInputs('tfg:treated_chipboard_composite') + .itemOutputs('tfg:high_density_treated_fiberboard') + .duration(200) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.assembler('tfg:resin_circuit_assembler') + .itemInputs('gtceu:wood_plate', '2x gtceu:sticky_resin') + .itemOutputs('gtceu:resin_circuit_board') + .duration(20 * 10) + .EUt(GTValues.VA[GTValues.ULV]) + + event.replaceInput({ id: 'gtceu:assembler/phenolic_board' }, '#tfg:wood_dusts', 'tfg:high_density_treated_fiberboard') +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/primitive/recipes.ice.js b/kubejs/server_scripts/tfg/primitive/recipes.ice.js new file mode 100644 index 000000000..b610d3c9a --- /dev/null +++ b/kubejs/server_scripts/tfg/primitive/recipes.ice.js @@ -0,0 +1,104 @@ +"use strict"; + +function registerTFGIceRecipes(event) { + + // Ice + event.remove({ id: 'gtceu:compressor/ice_from_dust' }) + event.remove({ id: 'gtceu:compressor/ice_from_snow' }) + + event.shapeless('#forge:dusts/ice', ['#forge:tools/mortars', '4x firmalife:ice_shavings']) + .id('tfg:shaped/ice_shavings') + + event.recipes.tfc.quern('#forge:small_dusts/ice', 'firmalife:ice_shavings') + .id('tfg:quern/ice_dust') + + event.recipes.gtceu.macerator('tfg:macerating_ice_shavings') + .itemInputs('firmalife:ice_shavings') + .itemOutputs('#forge:small_dusts/ice') + .duration(10) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.macerator('tfg:macerating_ice_shavings_reverse') + .itemInputs('#forge:dusts/ice') + .itemOutputs('4x firmalife:ice_shavings') + .duration(20) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.fluid_solidifier('tfg:ice') + .inputFluids("#tfg:clean_water 144") + .notConsumable('gtceu:block_casting_mold') + .itemOutputs('minecraft:ice') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + + event.shapeless('4x firmalife:ice_shavings', ['#forge:dusts/ice', '#forge:tools/hammers']) + + event.recipes.gtceu.mixer('tfg:ice_slush_from_dry_ice') + .itemInputs('1x tfg:dry_ice') + .inputFluids("#tfc:water 8000") + .outputFluids(Fluid.of('gtceu:ice', 8000)) + .duration(80) + .EUt(GTValues.VA[GTValues.ULV]) + + // Cooling water + event.recipes.tfc.barrel_sealed(250) + .inputItem('1x tfg:dry_ice') + .inputFluid(Fluid.of('minecraft:water', 5000)) + .outputFluid(Fluid.of('gtceu:ice', 5000)) + .id('tfg:barrel/cooling_water_0') + + event.recipes.tfc.barrel_sealed(1000) + .inputItem('1x #forge:dusts/ice') + .inputFluid(Fluid.of('minecraft:water', 144)) + .outputFluid(Fluid.of('gtceu:ice', 144)) + .id('tfg:barrel/cooling_water_1') + + event.recipes.tfc.barrel_sealed(1000) + .inputItem('16x minecraft:snowball') + .inputFluid(Fluid.of('minecraft:water', 144)) + .outputFluid(Fluid.of('gtceu:ice', 144)) + .id('tfg:barrel/cooling_water_2') + + event.recipes.tfc.barrel_sealed(2000) + .inputItem('1x #forge:dusts/ice') + .inputFluid(Fluid.of('tfc:salt_water', 144)) + .outputFluid(Fluid.of('gtceu:ice', 144)) + .id('tfg:barrel/cooling_water_3') + + event.recipes.tfc.barrel_sealed(2000) + .inputItem('16x minecraft:snowball') + .inputFluid(Fluid.of('tfc:salt_water', 144)) + .outputFluid(Fluid.of('gtceu:ice', 144)) + .id('tfg:barrel/cooling_water_4') + + // Freezing it + event.recipes.tfc.barrel_sealed(3000) + .inputItem('9x #forge:dusts/ice') + .inputFluid(Fluid.of('gtceu:ice', 144)) + .outputItem('minecraft:packed_ice') + .id('tfg:barrel/packed_ice') + + // Heating it back up + event.recipes.tfc.pot([], Fluid.of('gtceu:ice', 144), 300, 100) + .fluidOutput(Fluid.of('minecraft:water', 144)) + + event.recipes.firmalife.vat() + .inputFluid(Fluid.of('gtceu:ice', 144)) + .outputFluid(Fluid.of('minecraft:water', 144)) + .length(300) + .temperature(100) + + // Snow + event.recipes.firmalife.stomping('minecraft:snow', 'minecraft:snowball', + 'minecraft:block/snow', 'minecraft:block/snow', 'minecraft:block.snow.place') + .id('tfg:stomping/snow_layer') + + event.shapeless('minecraft:snow_block', ['8x minecraft:snow']) + .id('tfg:shapeless/snow_block') + + event.shapeless('8x minecraft:snowball', ['minecraft:snow_block']) + .id('tfg:shapeless/snowball') + + event.shapeless('8x minecraft:snow', ['minecraft:snow_block', '#forge:tools/saws']) + .id('tfg:shapeless/snow') +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfc/recipes.knapping.js b/kubejs/server_scripts/tfg/primitive/recipes.knapping.js similarity index 99% rename from kubejs/server_scripts/tfc/recipes.knapping.js rename to kubejs/server_scripts/tfg/primitive/recipes.knapping.js index 1240dd49d..8c9113e82 100644 --- a/kubejs/server_scripts/tfc/recipes.knapping.js +++ b/kubejs/server_scripts/tfg/primitive/recipes.knapping.js @@ -1,7 +1,7 @@ // priority: 0 "use strict"; -function registerTFCKnappingRecipes(event) { +function registerTFGKnappingRecipes(event) { //#region Топор diff --git a/kubejs/server_scripts/tfg/primitive/recipes.leather.js b/kubejs/server_scripts/tfg/primitive/recipes.leather.js new file mode 100644 index 000000000..4a99ace21 --- /dev/null +++ b/kubejs/server_scripts/tfg/primitive/recipes.leather.js @@ -0,0 +1,212 @@ +// priority: 0 +"use strict"; + +function registerTFGLeatherRecipes(event) { + + // Limewater + event.recipes.gtceu.mixer('tfg:limewater_from_lime') + .itemInputs('tfc:powder/lime') + .inputFluids(Fluid.of('water', 500)) + .outputFluids(Fluid.of('tfc:limewater', 500)) + .duration(20) + .EUt(16) + + event.recipes.gtceu.mixer('tfg:limewater_from_flux') + .itemInputs('tfc:powder/flux') + .inputFluids(Fluid.of('water', 500)) + .outputFluids(Fluid.of('tfc:limewater', 500)) + .duration(20) + .EUt(16) + + // Tannin + event.recipes.gtceu.chemical_bath('tfg:tannin') + .itemInputs('#tfc:makes_tannin') + .inputFluids(Fluid.of('water', 1000)) + .outputFluids(Fluid.of('tfc:tannin', 1000)) + .duration(2400) + .EUt(16) + + // Soaked hides + event.recipes.gtceu.chemical_bath('tfg:small_soaked_hide') + .itemInputs('tfc:small_raw_hide') + .inputFluids(Fluid.of('tfc:limewater', 300)) + .itemOutputs('tfc:small_soaked_hide') + .duration(1600) + .EUt(16) + + event.recipes.gtceu.chemical_bath('tfg:medium_soaked_hide') + .itemInputs('tfc:medium_raw_hide') + .inputFluids(Fluid.of('tfc:limewater', 400)) + .itemOutputs('tfc:medium_soaked_hide') + .duration(2400) + .EUt(16) + + event.recipes.gtceu.chemical_bath('tfg:large_soaked_hide') + .itemInputs('tfc:large_raw_hide') + .inputFluids(Fluid.of('tfc:limewater', 500)) + .itemOutputs('tfc:large_soaked_hide') + .duration(3200) + .EUt(16) + + // Scraped Hides + event.recipes.gtceu.cutter('tfg:small_scraped_hide') + .itemInputs('tfc:small_soaked_hide') + .itemOutputs('tfc:small_scraped_hide') + .duration(100) + .EUt(7) + + event.recipes.gtceu.cutter('tfg:medium_scraped_hide') + .itemInputs('tfc:medium_soaked_hide') + .itemOutputs('tfc:medium_scraped_hide') + .duration(100) + .EUt(7) + + event.recipes.gtceu.cutter('tfg:large_scraped_hide') + .itemInputs('tfc:large_soaked_hide') + .itemOutputs('tfc:large_scraped_hide') + .duration(100) + .EUt(7) + + // Prepared hides + event.recipes.gtceu.chemical_bath('tfg:small_prepared_hide') + .itemInputs('tfc:small_soaked_hide') + .inputFluids(Fluid.of('water', 300)) + .itemOutputs('tfc:small_prepared_hide') + .duration(1600) + .EUt(16) + + event.recipes.gtceu.chemical_bath('tfg:medium_prepared_hide') + .itemInputs('tfc:medium_soaked_hide') + .inputFluids(Fluid.of('water', 400)) + .itemOutputs('tfc:medium_prepared_hide') + .duration(2400) + .EUt(16) + + event.recipes.gtceu.chemical_bath('tfg:large_prepared_hide') + .itemInputs('tfc:large_soaked_hide') + .inputFluids(Fluid.of('water', 500)) + .itemOutputs('tfc:large_prepared_hide') + .duration(3200) + .EUt(16) + + // Leather + event.recipes.gtceu.chemical_bath('tfg:small_leather') + .itemInputs('tfc:small_prepared_hide') + .inputFluids(Fluid.of('tfc:tannin', 300)) + .itemOutputs('minecraft:leather') + .duration(1600) + .EUt(16) + + event.recipes.gtceu.chemical_bath('tfg:medium_leather') + .itemInputs('tfc:medium_prepared_hide') + .inputFluids(Fluid.of('tfc:tannin', 400)) + .itemOutputs('2x minecraft:leather') + .duration(2400) + .EUt(16) + + event.recipes.gtceu.chemical_bath('tfg:large_leather') + .itemInputs('tfc:large_prepared_hide') + .inputFluids(Fluid.of('tfc:tannin', 500)) + .itemOutputs('3x minecraft:leather') + .duration(3200) + .EUt(16) + + // 1x Small SheepSkin -> 1x Wool + event.recipes.gtceu.assembler('tfg:tfc/wool_1') + .itemInputs('tfc:small_sheepskin_hide') + .itemOutputs('tfc:wool') + .duration(100) + .circuit(3) + .EUt(4) + + // 1x Medium SheepSkin -> 1x Wool + event.recipes.gtceu.assembler('tfg:tfc/wool_2') + .itemInputs('tfc:medium_sheepskin_hide') + .itemOutputs('2x tfc:wool') + .duration(100) + .circuit(3) + .EUt(4) + + // 1x Large SheepSkin -> 1x Wool + event.recipes.gtceu.assembler('tfg:tfc/wool_3') + .itemInputs('tfc:large_sheepskin_hide') + .itemOutputs('3x tfc:wool') + .duration(100) + .circuit(3) + .EUt(4) + + //Hide Sewing + const stages = [ + 'raw', + 'soaked', + 'scraped', + 'prepared', + 'sheepskin' + ]; + + stages.forEach(stage => { + //Combining + event.recipes.tfc.damage_inputs_shapeless_crafting( + event.shapeless(`1x tfc:medium_${stage}_hide`, [ + `2x tfc:small_${stage}_hide`, + '#tfc:sewing_needles', + '#forge:string', + 'tfc:glue' + ]).id(`tfg:tfc/small_to_medium_${stage}_hide`) + ) + event.recipes.tfc.damage_inputs_shapeless_crafting( + event.shapeless(`1x tfc:large_${stage}_hide`, [ + `3x tfc:small_${stage}_hide`, + '#tfc:sewing_needles', + '#forge:string', + 'tfc:glue' + ]).id(`tfg:tfc/small_to_large_${stage}_hide`) + ) + + event.recipes.gtceu.assembler(`tfg:gtceu/assembler/small_to_medium_${stage}_hide`) + .inputFluids(Fluid.of('gtceu:glue', 25)) + .itemOutputs(`1x tfc:medium_${stage}_hide`) + .itemInputs(`2x tfc:small_${stage}_hide`) + .duration(60) + .circuit(7) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.assembler(`tfg:gtceu/assembler/small_to_large_${stage}_hide`) + .inputFluids(Fluid.of('gtceu:glue', 25)) + .itemOutputs(`1x tfc:large_${stage}_hide`) + .itemInputs(`3x tfc:small_${stage}_hide`) + .duration(60) + .circuit(9) + .EUt(GTValues.VA[GTValues.ULV]) + + //Cutting + event.recipes.tfc.damage_inputs_shapeless_crafting( + event.shapeless(`2x tfc:small_${stage}_hide`, [ + `1x tfc:medium_${stage}_hide`, + '#forge:shears' + ]).id(`tfg:tfc/medium_to_small_${stage}_hide`) + ) + + event.recipes.tfc.damage_inputs_shapeless_crafting( + event.shapeless(`3x tfc:small_${stage}_hide`, [ + `1x tfc:large_${stage}_hide`, + '#forge:shears' + ]).id(`tfg:tfc/large_to_small_${stage}_hide`) + ) + + event.recipes.gtceu.assembler(`tfg:gtceu/assembler/medium_to_small_${stage}_hide`) + .itemOutputs(`2x tfc:small_${stage}_hide`) + .itemInputs(`1x tfc:medium_${stage}_hide`) + .duration(60) + .circuit(4) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.assembler(`tfg:gtceu/assembler/large_to_small_${stage}_hide`) + .itemOutputs(`3x tfc:small_${stage}_hide`) + .itemInputs(`1x tfc:large_${stage}_hide`) + .duration(60) + .circuit(6) + .EUt(GTValues.VA[GTValues.ULV]) + }); + +} diff --git a/kubejs/server_scripts/tfg/recipes.paper.js b/kubejs/server_scripts/tfg/primitive/recipes.paper.js similarity index 91% rename from kubejs/server_scripts/tfg/recipes.paper.js rename to kubejs/server_scripts/tfg/primitive/recipes.paper.js index ced487b9f..63cc6a933 100644 --- a/kubejs/server_scripts/tfg/recipes.paper.js +++ b/kubejs/server_scripts/tfg/primitive/recipes.paper.js @@ -5,7 +5,34 @@ * @param {Internal.RecipesEventJS} event */ function registerTFGPapermakingRecipes(event) { - + + event.recipes.gtceu.cutter('tfg:unrefined_paper') + .itemInputs('tfc:unrefined_paper') + .itemOutputs('minecraft:paper') + .duration(100) + .EUt(7) + + event.recipes.gtceu.chemical_bath('paper_from_papyrus_distilled') + .itemInputs('tfc:papyrus') + .inputFluids(Fluid.of('gtceu:distilled_water', 100)) + .itemOutputs('4x tfc:soaked_papyrus_strip') + .duration(100) + .EUt(7) + + event.recipes.gtceu.chemical_bath('paper_from_papyrus') + .itemInputs('tfc:papyrus') + .inputFluids("#tfg:clean_water 100") + .itemOutputs('4x tfc:soaked_papyrus_strip') + .duration(100) + .EUt(7) + + event.recipes.gtceu.assembler('papyrus_strips') + .itemInputs('4x tfc:soaked_papyrus_strip') + .itemOutputs('minecraft:paper') + .circuit(1) + .duration(100) + .EUt(7) + const generateVatRecipe = (id, inputItem, fluid, fluidAmount, output) => { event.custom({ "type": "firmalife:vat", diff --git a/kubejs/server_scripts/tfg/primitive/recipes.rubber.js b/kubejs/server_scripts/tfg/primitive/recipes.rubber.js new file mode 100644 index 000000000..5920707dd --- /dev/null +++ b/kubejs/server_scripts/tfg/primitive/recipes.rubber.js @@ -0,0 +1,145 @@ +"use strict"; + +function registerTFGRubberRecipes(event) { + + // Tapping + event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/rubber_fig")) + .resultFluid(Fluid.of("tfg:latex", 2)) + .minTemp(4) + .requiresNaturalLog(true) + .id("tfg:tree_tapping/latex/rubber_fig") + event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/ancient_rubber_fig")) + .resultFluid(Fluid.of("tfg:latex", 2)) + .minTemp(4) + .requiresNaturalLog(true) + .id("tfg:tree_tapping/latex/ancient_rubber_fig") + + event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/hevea")) + .resultFluid(Fluid.of("tfg:latex", 3)) + .minTemp(8) + .requiresNaturalLog(true) + .id("tfg:tree_tapping/latex/hevea") + event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/ancient_hevea")) + .resultFluid(Fluid.of("tfg:latex", 3)) + .minTemp(8) + .requiresNaturalLog(true) + .id("tfg:tree_tapping/latex/ancient_hevea") + + event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/kapok")) + .resultFluid(Fluid.of("tfg:latex", 4)) + .minTemp(12) + .requiresNaturalLog(true) + .id("tfg:tree_tapping/kapok_latex") + event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/ancient_kapok")) + .resultFluid(Fluid.of("tfg:latex", 4)) + .minTemp(12) + .requiresNaturalLog(true) + .id("tfg:tree_tapping/ancient_kapok_latex") + + // Latex + event.recipes.gtceu.extractor('latex_from_log') + .itemInputs('#tfg:latex_logs') + .outputFluids(Fluid.of('tfg:latex', 250)) + .duration(600) + .EUt(20) + + event.recipes.gtceu.extractor('latex_from_sapling') + .itemInputs('#tfg:rubber_saplings') + .outputFluids(Fluid.of('tfg:latex', 100)) + .duration(750) + .EUt(20) + + event.recipes.gtceu.extractor('latex_from_leaves') + .itemInputs('#tfg:rubber_leaves') + .outputFluids(Fluid.of('tfg:latex', 50)) + .duration(750) + .EUt(20) + + // Sticky resin + event.recipes.tfc.pot('tfc:powder/wood_ash', Fluid.of('tfg:latex', 1000), 1200, 300) + .itemOutput('gtceu:sticky_resin') + .id('tfg:pot/sticky_resin_from_latex') + + event.recipes.tfc.pot('tfc:powder/wood_ash', Fluid.of('tfg:conifer_pitch', 1000), 1200, 300) + .itemOutput('gtceu:sticky_resin') + .id('tfg:pot/sticky_resin_from_conifer_pitch') + + event.recipes.gtceu.fluid_solidifier('tfg:fluid_solidifier/latex_to_sticky_resin') + .duration(12 * 20) + .EUt(30) + .itemInputs('tfc:powder/wood_ash') + .itemOutputs('gtceu:sticky_resin') + .inputFluids(Fluid.of('tfg:latex', 1000)) + + event.recipes.gtceu.fluid_solidifier('tfg:fluid_solidifier/pitch_to_sticky_resin') + .duration(12 * 20) + .EUt(30) + .itemInputs('tfc:powder/wood_ash') + .itemOutputs('gtceu:sticky_resin') + .inputFluids(Fluid.of('tfg:conifer_pitch', 1000)) + + // Rubber Processing Line + event.recipes.firmalife.vat() + .inputs('tfc:powder/sulfur', Fluid.of('tfg:latex', 1000)) + .outputFluid(Fluid.of('tfg:vulcanized_latex', 1000)) + .length(300) + .temperature(300) + .id('tfg:vat/vulcanized_latex') + + event.recipes.tfc.pot('tfc:powder/sulfur', Fluid.of('tfg:latex', 1000), 1200, 300) + .fluidOutput(Fluid.of('tfg:vulcanized_latex', 1000)) + .id('tfg:pot/vulcanized_latex') + + event.recipes.gtceu.chemical_reactor('tfg:latex_to_vulcanized_latex') + .duration(100) + .EUt(20) + .itemInputs('tfc:powder/sulfur') + .inputFluids(Fluid.of('tfg:latex', 1000)) + .outputFluids(Fluid.of('tfg:vulcanized_latex', 1000)) + + event.recipes.gtceu.fluid_solidifier('tfg:vulcanized_latex_to_raw_rubber_pulp') + .duration(100) + .EUt(20) + .inputFluids(Fluid.of('tfg:vulcanized_latex', 1000)) + .itemOutputs('4x gtceu:raw_rubber_dust') + + event.recipes.gtceu.fluid_solidifier('tfg:solidify_glue') + .inputFluids(Fluid.of('gtceu:glue', 50)) + .notConsumable('gtceu:ball_casting_mold') + .itemOutputs('tfc:glue') + .duration(100) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.centrifuge('tfg:centrifuge_rosin') + .itemInputs('tfg:conifer_rosin') + .outputFluids(Fluid.of('gtceu:glue', 50)) + .itemOutputs('2x #forge:dusts/carbon') + .chancedOutput('gtceu:plant_ball', 7500, 0) + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.centrifuge('tfg:centrifuge_sticky_resin') + .itemInputs('gtceu:sticky_resin') + .outputFluids(Fluid.of('gtceu:glue', 100)) + .itemOutputs('3x #forge:dusts/carbon') + .chancedOutput('gtceu:plant_ball', 5000, 0) + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.chemical_reactor(`tfg:treat_latex_plants_into_latex`) + .itemInputs('16x #tfg:rubber_plants', 'gtceu:tiny_sodium_hydroxide_dust') + .circuit(1) + .outputFluids(Fluid.of('tfg:latex', 1000)) + .duration(200) + .EUt(20) + + event.recipes.gtceu.centrifuge('rubber_log_separation') + .itemInputs('#tfg:latex_logs') + .chancedOutput('gtceu:raw_rubber_dust', 5000, 0) + .chancedOutput('gtceu:plant_ball', 3750, 0) + .chancedOutput('gtceu:sticky_resin', 2500, 0) + .chancedOutput('gtceu:wood_dust', 2500, 0) + .outputFluids(Fluid.of('gtceu:methane', 60)) + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.MV]) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.supports.js b/kubejs/server_scripts/tfg/primitive/recipes.supports.js similarity index 100% rename from kubejs/server_scripts/tfg/recipes.supports.js rename to kubejs/server_scripts/tfg/primitive/recipes.supports.js diff --git a/kubejs/server_scripts/tfg/primitive/recipes.vases.js b/kubejs/server_scripts/tfg/primitive/recipes.vases.js new file mode 100644 index 000000000..ac6355a85 --- /dev/null +++ b/kubejs/server_scripts/tfg/primitive/recipes.vases.js @@ -0,0 +1,59 @@ +"use strict"; + +function registerTFGVaseRecipes(event) { + + global.MINECRAFT_DYE_NAMES.forEach(color => { + event.recipes.gtceu.chemical_bath(`tfg:chemical_bath/dyeing/decorative_vase/unfired/${color}`) + .itemInputs('#tfg:decorative_vases/unfired') + .inputFluids(Fluid.of(`tfc:${color}_dye`, 25)) + .itemOutputs(`tfg:decorative_vase/unfired/${color}`) + .duration(80) + .EUt(GTValues.VA[GTValues.ULV]) + .category(GTRecipeCategories.CHEM_DYES) + + event.recipes.tfc.heating(`tfg:decorative_vase/unfired/${color}`, 1399) + .resultItem(`tfg:decorative_vase/${color}`) + .id(`tfg:heating/decorative_vase/unfired/${color}`) + + event.recipes.tfc.barrel_sealed(1000) + .outputItem(`tfg:decorative_vase/unfired/${color}`) + .inputItem(Ingredient.of('#tfg:decorative_vases/unfired').subtract(`tfg:decorative_vase/unfired/${color}`)) + .inputFluid(Fluid.of(`tfc:${color}_dye`, 25)) + .id(`tfg:barrel/dyeing/decorative_vase/${color}`) + + event.smelting( + `1x tfg:decorative_vase/${color}`, + `tfg:decorative_vase/unfired/${color}` + ).id(`tfg:smelting/decorative_vase/${color}`) + }) + + event.recipes.gtceu.chemical_bath(`tfg:chemical_bath/bleaching/decorative_vase/unfired`) + .itemInputs('#tfg:decorative_vases/unfired') + .inputFluids(Fluid.of('gtceu:chlorine', 72)) + .itemOutputs('tfg:decorative_vase/unfired') + .duration(80) + .EUt(GTValues.VA[GTValues.ULV]) + .category(GTRecipeCategories.CHEM_DYES) + + event.smelting( + '1x tfg:decorative_vase', + 'tfg:decorative_vase/unfired' + ).id('tfg:smelting/decorative_vase') + + event.recipes.tfc.heating('tfg:decorative_vase/unfired', 1399) + .resultItem('tfg:decorative_vase') + .id('tfg:heating/decorative_vase/unfired') + + event.recipes.tfc.knapping( + 'tfg:decorative_vase/unfired', + 'tfc:clay', + [ + ' X X ', + 'XX XX', + 'X X', + 'X X', + 'XXXXX' + ] + ).outsideSlotRequired(false) + .id('tfg:knapping/decorative_vase/unfired') +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/primitive/recipes.wax.js b/kubejs/server_scripts/tfg/primitive/recipes.wax.js new file mode 100644 index 000000000..e3376285f --- /dev/null +++ b/kubejs/server_scripts/tfg/primitive/recipes.wax.js @@ -0,0 +1,138 @@ +"use strict"; + +function registerTFGWaxRecipes(event) { + + //forge:wax + event.replaceInput({}, 'firmalife:beeswax', '#forge:wax') + + //paraffin + event.recipes.gtceu.chemical_reactor('tfg:paraffin_wax_from_lubricant') + .circuit(7) + .itemOutputs('6x tfg:paraffin_wax') + .outputFluids(Fluid.of('gtceu:oil_light', 25)) + .inputFluids(Fluid.of('gtceu:lubricant', 250), Fluid.of('gtceu:acetone', 25)) + .duration(500) + .EUt(GTValues.VA[GTValues.LV]) + + // Tapping + event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/aspen")) + .resultFluid(Fluid.of('tfg:conifer_pitch', 2)) + .minTemp(-10) + .requiresNaturalLog(true) + .id("tfg:tree_tapping/aspen_resin") + event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/ancient_aspen")) + .resultFluid(Fluid.of('tfg:conifer_pitch', 2)) + .minTemp(-10) + .requiresNaturalLog(true) + .id("tfg:tree_tapping/ancient_aspen_resin") + + event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/spruce")) + .resultFluid(Fluid.of('tfg:conifer_pitch', 4)) + .minTemp(-15) + .requiresNaturalLog(true) + .id("tfg:tree_tapping/spruce_resin") + event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/ancient_spruce")) + .resultFluid(Fluid.of('tfg:conifer_pitch', 4)) + .minTemp(-15) + .requiresNaturalLog(true) + .id("tfg:tree_tapping/ancient_spruce_resin") + + event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/white_cedar")) + .resultFluid(Fluid.of('tfg:conifer_pitch', 3)) + .minTemp(-8) + .requiresNaturalLog(true) + .id("tfg:tree_tapping/white_cedar_resin") + event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/ancient_white_cedar")) + .resultFluid(Fluid.of('tfg:conifer_pitch', 3)) + .minTemp(-8) + .requiresNaturalLog(true) + .id("tfg:tree_tapping/ancient_white_cedar_resin") + + event.recipes.afc.tree_tapping(TFC.blockIngredient('tfc:wood/log/douglas_fir')) + .resultFluid(Fluid.of('tfg:conifer_pitch', 2)) + .minTemp(-8) + .requiresNaturalLog(true) + .id("tfg:tree_tapping/douglas_fir_resin") + event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/ancient_douglas_fir")) + .resultFluid(Fluid.of('tfg:conifer_pitch', 2)) + .minTemp(-8) + .requiresNaturalLog(true) + .id("tfg:tree_tapping/ancient_douglas_fir_resin") + + // Conifer Pitch + event.recipes.gtceu.extractor('conifer_from_log') + .itemInputs('#tfg:rosin_logs') + .outputFluids(Fluid.of('tfg:conifer_pitch', 250)) + .duration(600) + .EUt(20) + + event.recipes.gtceu.extractor('conifer_from_sapling') + .itemInputs('#tfg:rosin_saplings') + .outputFluids(Fluid.of('tfg:conifer_pitch', 100)) + .duration(750) + .EUt(20) + + event.recipes.gtceu.extractor('conifer_from_leaves') + .itemInputs('#tfg:rosin_leaves') + .outputFluids(Fluid.of('tfg:conifer_pitch', 50)) + .duration(750) + .EUt(20) + + event.recipes.gtceu.centrifuge('conifer_log_separation') + .itemInputs('#tfg:rosin_logs') + .chancedOutput('tfg:conifer_rosin', 7500, 0) + .chancedOutput('gtceu:plant_ball', 3750, 0) + .chancedOutput('gtceu:sticky_resin', 2500, 0) + .chancedOutput('gtceu:wood_dust', 2500, 0) + .outputFluids(Fluid.of('gtceu:methane', 60)) + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.MV]) + + // Rosin + event.recipes.firmalife.vat() + .inputs('tfc:powder/charcoal', Fluid.of('tfg:conifer_pitch', 1000)) + .outputItem('tfg:conifer_rosin') + .id('tfg:vat/conifer_pitch_to_rosin'); + + event.recipes.tfc.pot('tfc:powder/charcoal', Fluid.of('tfg:conifer_pitch', 1000), 1200, 300) + .itemOutput('tfg:conifer_rosin') + .id('tfg:pot/conifer_pitch_to_rosin') + + event.recipes.gtceu.fluid_solidifier('tfg:pitch_to_rosin') + .inputFluids(Fluid.of('tfg:conifer_pitch', 1000)) + .itemInputs('tfc:powder/charcoal') + .itemOutputs('tfg:conifer_rosin') + .duration(20 * 12) + .EUt(GTValues.VA[GTValues.LV]) + + //#region Wax Unification + + // Recipe Removals + event.remove({ id: 'gtceu:extractor/extract_honeycomb_block' }); + event.remove({ id: 'gtceu:extractor/extract_honeycomb' }); + event.remove({ id: 'gtceu:extractor/extract_wax_dust' }); + + // Extractor Recipe + event.recipes.gtceu.extractor('tfg:wax_melting') + .itemInputs(Ingredient.of('#forge:wax')) + .outputFluids(Fluid.of('gtceu:wax', 144)) + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.LV]) + .category(GTRecipeCategories.EXTRACTOR_RECYCLING); + + event.recipes.gtceu.extractor('tfg:tiny_wax_dust_melting') + .itemInputs(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Wax, 1)) + .outputFluids(Fluid.of('gtceu:wax', 16)) + .duration(10) + .EUt(GTValues.VA[GTValues.LV]) + .category(GTRecipeCategories.EXTRACTOR_RECYCLING); + + event.recipes.gtceu.extractor('tfg:small_wax_dust_melting') + .itemInputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Wax, 1)) + .outputFluids(Fluid.of('gtceu:wax', 36)) + .duration(20) + .EUt(GTValues.VA[GTValues.LV]) + .category(GTRecipeCategories.EXTRACTOR_RECYCLING); + + //#endregion +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/primitive/recipes.wood.js b/kubejs/server_scripts/tfg/primitive/recipes.wood.js new file mode 100644 index 000000000..23367a412 --- /dev/null +++ b/kubejs/server_scripts/tfg/primitive/recipes.wood.js @@ -0,0 +1,236 @@ +"use strict"; + +function registerTFGWoodRecipes(event) { + + event.replaceInput({ output: '#tfc:sewing_tables'}, '#forge:shears', '#forge:tools/knives') + event.replaceInput({ id: 'gtceu:shaped/powderbarrel' }, 'gtceu:wood_plate', '#tfc:lumber') + + // Wood ash + event.smelting('4x tfc:powder/wood_ash', '1x #minecraft:logs_that_burn').id('tfg:wood_ash') + + event.recipes.gtceu.chemical_reactor('tfg:wood_ash_to_wood_gas_air') + .itemInputs('8x tfc:powder/wood_ash') + .inputFluids(Fluid.of('gtceu:air', 100)) + .outputFluids('gtceu:wood_gas 100') + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.create.splashing([Item.of('tfc:powder/wood_ash').withChance(0.25), Item.of('minecraft:stick').withChance(0.25)], 'tfc:torch') + .id('tfg:splashing/wash_torch') + + // Just a dummy recipe to tell people they can get wood ash by throwing torches in water via TFC + event.custom({ + type: "ae2:transform", + circumstance: { + type: "fluid", + tag: "tfc:water" + }, + ingredients: [{ item: 'tfc:torch' }], + result: { item: 'tfc:powder/wood_ash' } + }).id(`tfg:ae_transform/torch_to_wood_ash`) + + // Ladder + event.shaped('8x minecraft:ladder', [ + 'A A', + 'AAA', + 'A A' + ], { + A: '#forge:rods/wooden' + }).id('gtceu:shaped/ladder') + + event.shaped('8x minecraft:ladder', [ + 'A A', + 'AAA', + 'A A' + ], { + A: '#tfc:lumber' + }).id('tfc:crafting/vanilla/ladder') + + event.replaceInput({ id: 'tfc:crafting/vanilla/armor_stand' }, '#minecraft:planks', '#tfc:lumber') + event.remove({ id: 'tfc:crafting/vanilla/armor_stand_bulk' }) + + // Treated Wood + event.remove({ id: 'gtceu:shaped/treated_wood_planks' }) + + event.recipes.tfc.barrel_sealed(4000) + .outputItem('gtceu:treated_wood_planks') + .inputs('#minecraft:planks', TFC.fluidStackIngredient('#forge:creosote', 100)) + .id('tfg:barrel/treated_wood_planks') + + event.recipes.tfc.barrel_sealed(2000) + .outputItem('gtceu:treated_wood_dust') + .inputs('#tfg:wood_dusts', TFC.fluidStackIngredient('#forge:creosote', 50)) + .id('tfg:barrel/treated_wood_dust') + + event.shaped('2x gtceu:treated_wood_door', [ + 'AA ', + 'AA ', + 'AA ' + ], { + A: 'gtceu:treated_wood_plate' + }).id('tfg:shaped/treated_door') + + event.shaped('3x gtceu:treated_wood_trapdoor', [ + 'AAA', + 'AAA', + ' ' + ], { + A: 'gtceu:treated_wood_plate' + }).id('tfg:shaped/treated_trapdoor') + + event.shaped('gtceu:treated_wood_pressure_plate', [ + ' B ', + 'CDC', + ' E ' + ], { + B: '#tfc:hammers', + C: 'gtceu:treated_wood_slab', + D: '#forge:small_springs', + E: '#forge:tools/screwdrivers' + }).id('gtceu:shaped/treated_pressure_plate') + + event.recipes.gtceu.assembler('gtceu:treated_pressure_plate') + .itemInputs('#forge:small_springs', '2x gtceu:treated_wood_slab') + .itemOutputs('gtceu:treated_wood_pressure_plate') + .circuit(3) + .duration(50) + .EUt(2) + + event.replaceOutput({ id: 'gtceu:cutter/treated_button' }, 'gtceu:treated_wood_button', '6x gtceu:treated_wood_button') + event.replaceOutput({ id: 'gtceu:cutter/treated_button_water' }, 'gtceu:treated_wood_button', '6x gtceu:treated_wood_button') + event.replaceOutput({ id: 'gtceu:cutter/treated_button_distilled_water' }, 'gtceu:treated_wood_button', '6x gtceu:treated_wood_button') + + event.replaceOutput({ id: 'gtceu:cutter/bamboo_button' }, 'minecraft:bamboo_button', '6x minecraft:bamboo_button') + event.replaceOutput({ id: 'gtceu:cutter/bamboo_button_water' }, 'minecraft:bamboo_button', '6x minecraft:bamboo_button') + event.replaceOutput({ id: 'gtceu:cutter/bamboo_button_distilled_water' }, 'minecraft:bamboo_button', '6x minecraft:bamboo_button') + + // Empty Wooden Form + event.shaped('gtceu:empty_wooden_form', [ + ' AA', + 'BAA' + ], { + A: '#minecraft:planks', + B: '#forge:tools/saws' + }).id('gtceu:shaped/plank_to_wooden_shape') + + // Wood gears + event.shaped('gtceu:small_wood_gear', [ + 'AB ', + 'BCB', + ' B ' + ], { + A: '#forge:tools/saws', + B: '#forge:rods/wooden', + C: 'tfc:glue' + }).id('gtceu:shaped/small_gear_wood') + + event.shaped('gtceu:wood_gear', [ + 'AB ', + 'BCB', + ' B ' + ], { + A: '#forge:tools/saws', + B: '#minecraft:planks', + C: 'tfc:glue' + }).id('gtceu:shaped/gear_wood') + + // Sticks + event.shapeless('2x minecraft:stick', ['#minecraft:saplings', '#forge:tools/knives']).id('tfg:strip_saplings') + + event.recipes.gtceu.cutter('tfg:saplings_to_sticks') + .itemInputs('#minecraft:saplings') + .itemOutputs('2x minecraft:stick') + .duration(20) + .EUt(7) + + event.recipes.gtceu.packer('tfg:stick_bunch') + .itemInputs('9x #forge:rods/wooden') + .circuit(5) + .itemOutputs('tfc:stick_bunch') + .duration(50) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.packer('tfg:stick_bundle') + .itemInputs('18x #forge:rods/wooden') + .circuit(8) + .itemOutputs('tfc:stick_bundle') + .duration(50) + .EUt(GTValues.VA[GTValues.ULV]) + + + // Какие то рецепты дерева + global.TFC_WOOD_TYPES.forEach(wood => { + event.remove({ id: `tfc:crafting/wood/${wood}_axle` }) + event.remove({ id: `tfc:crafting/wood/${wood}_bladed_axle` }) + event.remove({ id: `tfc:crafting/wood/${wood}_encased_axle` }) + event.remove({ id: `tfc:crafting/wood/${wood}_clutch` }) + event.remove({ id: `tfc:crafting/wood/${wood}_gear_box` }) + event.remove({ id: `tfc:crafting/wood/${wood}_water_wheel` }) + + // Бревна -> Пиломатериалы + generateCutterRecipe(event, `#tfc:${wood}_logs`, `16x tfc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_log`) + + // Доски -> Пиломатериалы + generateCutterRecipe(event, `tfc:wood/planks/${wood}`, `4x tfc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_planks`) + + // Ступень -> Пиломатериалы + generateCutterRecipe(event, `tfc:wood/planks/${wood}_stairs`, `3x tfc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_stairs`) + + + // Плита -> Пиломатериалы + generateCutterRecipe(event, `tfc:wood/planks/${wood}_slab`, `2x tfc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_slab`) + + // ? -> Деревянная нажимная пластина + event.shaped(`tfc:wood/planks/${wood}_pressure_plate`, [ + ' B ', + 'CDC', + ' E ' + ], { + B: '#tfc:hammers', + C: `tfc:wood/planks/${wood}_slab`, + D: '#forge:small_springs', + E: '#forge:tools/screwdrivers' + }).id(`tfc:crafting/wood/${wood}_pressure_plate`) + + event.recipes.gtceu.assembler(`${wood}_pressure_plate`) + .itemInputs('#forge:small_springs', `2x tfc:wood/planks/${wood}_slab`) + .circuit(3) + .itemOutputs(`2x tfc:wood/planks/${wood}_pressure_plate`) + .duration(50) + .EUt(2) + + // ? -> Деревянная кнопка + event.remove({ id: `tfc:crafting/wood/${wood}_button` }) + + generateCutterRecipe(event, `tfc:wood/planks/${wood}_pressure_plate`, `6x tfc:wood/planks/${wood}_button`, 50, 7, `${wood}_button`) + + // Stripped logs + event.recipes.gtceu.lathe(`tfg:stripping_${wood}_log`) + .itemInputs(`tfc:wood/log/${wood}`) + .itemOutputs(`tfc:wood/stripped_log/${wood}`) + .duration(50) + .EUt(2) + + event.recipes.gtceu.lathe(`tfg:stripping_${wood}_wood`) + .itemInputs(`tfc:wood/wood/${wood}`) + .itemOutputs(`tfc:wood/stripped_wood/${wood}`) + .duration(50) + .EUt(2) + + event.custom({ + type: 'vintageimprovements:polishing', + ingredients: [{ item: `tfc:wood/log/${wood}` }], + results: [{ item: `tfc:wood/stripped_log/${wood}` }], + speed_limits: 0, + processingTime: 50 + }).id(`tfg:vi/lathe/stripping_${wood}_log`) + + event.custom({ + type: 'vintageimprovements:polishing', + ingredients: [{ item: `tfc:wood/wood/${wood}` }], + results: [{ item: `tfc:wood/stripped_wood/${wood}` }], + speed_limits: 0, + processingTime: 50 + }).id(`tfg:vi/lathe/stripping_${wood}_wood`) + }) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/primitive/tags.primitive.js b/kubejs/server_scripts/tfg/primitive/tags.primitive.js new file mode 100644 index 000000000..02915188c --- /dev/null +++ b/kubejs/server_scripts/tfg/primitive/tags.primitive.js @@ -0,0 +1,88 @@ +"use strict"; + +function registerTFGPrimitiveItemTags(event) { + + //Decorative Vases + global.MINECRAFT_DYE_NAMES.forEach(color => { + event.add('c:hidden_from_recipe_viewers', `tfg:decorative_vase/generated/${color}`) + event.add('tfg:decorative_vases/generated', `tfg:decorative_vase/generated/${color}`) + event.add('tfg:decorative_vases', `tfg:decorative_vase/${color}`) + event.add('tfg:decorative_vases/unfired', `tfg:decorative_vase/unfired/${color}`) + }) + event.add('tfg:decorative_vases', 'tfg:decorative_vase') + event.add('tfg:decorative_vases/unfired', 'tfg:decorative_vase/unfired') + + //Knapping + event.add('tfc:any_knapping', 'minecraft:flint') + + // Tools + event.add('forge:tools/fishing_nets', 'tfg:fishing_net/wood') + event.add('forge:tools/fishing_nets', 'tfg:fishing_net/brass') + event.add('forge:tools/fishing_nets', 'tfg:fishing_net/rose_gold') + event.add('forge:tools/fishing_nets', 'tfg:fishing_net/sterling_silver') + event.add('forge:tools/fishing_nets', 'tfg:fishing_net/invar') + event.add('forge:tools/fishing_nets', 'tfg:fishing_net/tin_alloy') + event.add('forge:tools/fishing_nets', 'tfg:fishing_net/cupronickel') + event.add('forge:tools/fishing_nets', 'tfg:fishing_net/magnalium') + + event.add('forge:tools/trowels', 'tfg:trowel') + + event.add('tfg:harvester', 'tfg:harvest_basket') + event.add('tfg:harvester', 'tfg:aluminium_harvest_basket') + + event.add('tfg:tools/ore_prospectors/copper', 'tfc:metal/propick/copper') + event.add('tfg:tools/ore_prospectors/bronze', 'tfc:metal/propick/bronze') + event.add('tfg:tools/ore_prospectors/bronze', 'tfc:metal/propick/bismuth_bronze') + event.add('tfg:tools/ore_prospectors/bronze', 'tfc:metal/propick/black_bronze') + event.add('tfg:tools/ore_prospectors/wrought_iron', 'tfc:metal/propick/wrought_iron') + event.add('tfg:tools/ore_prospectors/steel', 'tfc:metal/propick/steel') + event.add('tfg:tools/ore_prospectors/black_steel', 'tfc:metal/propick/black_steel') + event.add('tfg:tools/ore_prospectors/blue_steel', 'tfc:metal/propick/blue_steel') + event.add('tfg:tools/ore_prospectors/red_steel', 'tfc:metal/propick/red_steel') + + // Paper from wood + event.add('tfg:hardwood_strips', 'tfg:hardwood_strip') + event.add('tfg:hardwood_strips', 'tfg:soaked_hardwood_strip') + //Adding any of these dusts to the forge dusts/wood tag will make it so you can craft softwood pulp using hardwood pulp. which is not ok. + event.add('tfg:wood_dusts', 'gtceu:hardwood_dust') + event.add('tfg:tiny_wood_dusts', 'gtceu:tiny_hardwood_dust') + event.add('tfg:small_wood_dusts', 'gtceu:small_hardwood_dust') + event.add('tfg:wood_dusts', 'gtceu:wood_dust') + event.add('tfg:tiny_wood_dusts', 'gtceu:tiny_wood_dust') + event.add('tfg:small_wood_dusts', 'gtceu:small_wood_dust') + + // Waxe + event.add('forge:wax', 'gtceu:wax_dust'); + event.add('forge:wax', 'tfg:paraffin_wax') + event.add('forge:wax', 'firmalife:beeswax') + event.add('forge:wax', 'tfg:conifer_rosin') + event.add('forge:wax', 'tfg:crimsene_gem') + event.add('forge:wax', 'tfg:warpane_gem') + + // Cloth & String + event.add('tfg:lightweight_cloth', 'tfc:silk_cloth') + event.add('tfg:lightweight_cloth', 'tfg:phantom_silk') + event.add('tfg:lightweight_cloth', 'tfg:polycaprolactam_fabric') + event.add('forge:cloth', 'tfg:phantom_silk') + event.add('forge:cloth', 'tfg:polycaprolactam_fabric') + event.add('tfc:high_quality_cloth', 'tfg:phantom_silk') + event.add('tfc:high_quality_cloth', 'tfg:polycaprolactam_fabric') + event.add('tfc:sewing_light_cloth', 'tfg:phantom_silk') + event.add('tfc:sewing_dark_cloth', 'tfg:polycaprolactam_fabric') + event.add('forge:string', 'tfg:phantom_thread') + event.add('forge:string', 'tfg:polycaprolactam_string') + event.add('forge:string', 'firmalife:pineapple_yarn') +} + +function registerTFGPrimitiveBlockTags(event) { + event.add('minecraft:mineable/shovel', 'tfg:ash_pile') + + event.add('tfg:harvester_harvestable', '#tfc:fruit_tree_leaves') + event.add('tfg:harvester_harvestable', '#tfc:berry_bushes') + event.add('tfg:harvester_harvestable', '#tfc:any_spreading_bush') + event.add('tfg:harvester_harvestable', '#firmalife:grape_strings') + event.add('tfg:harvester_harvestable', '#firmalife:grape_trellis_posts_plant') + //added for QOL but doesnt harvest anything + event.add('tfg:harvester_harvestable', 'firmalife:grape_fluff_red') + event.add('tfg:harvester_harvestable', 'firmalife:grape_fluff_white') +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.converting.js b/kubejs/server_scripts/tfg/recipes.converting.js index b4258f30c..bb415f91a 100644 --- a/kubejs/server_scripts/tfg/recipes.converting.js +++ b/kubejs/server_scripts/tfg/recipes.converting.js @@ -7,4 +7,6 @@ function registerTFGConvertingRecipes(event) { event.shapeless('vintageimprovements:belt_grinder', 'vintageimprovements:lathe') + + event.shapeless('tfg:ostrum_linear_accelerator', 'gtceu:ostrum_linear_accelerator') } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.js b/kubejs/server_scripts/tfg/recipes.js index 781873af8..e078a55b3 100644 --- a/kubejs/server_scripts/tfg/recipes.js +++ b/kubejs/server_scripts/tfg/recipes.js @@ -6,19 +6,78 @@ */ const registerTFGRecipes = (event) => { - registerTFGPapermakingRecipes(event) + registerTFGMoldRecipes(event) + registerTFGMiscellaneousRecipes(event) + registerTFGConvertingRecipes(event) + + registerTFGFoodRecipes(event) + registerTFGRefrigeratorRecipes(event) + registerTFGMealBagRecipes(event) + registerTFGBiomassRecipes(event) + + // TFC stone types + registerTFCStoneRecipes(event) + // Non-TFC stone types registerTFGRockRecipes(event) registerTFGCollapseRecipes(event) - registerTFGMoldRecipes(event) - registerTFGMedicineRecipes(event) - registerTFGMiscellaneousRecipes(event) - registerTFGSupportRecipes(event) - registerTFGFishingNetsRecipes(event) - registerTFGConvertingRecipes(event) - registerTFGFoodRecipes(event) - registerTFGSpaceRecipes(event) registerTFGStoneDustRecipes(event) + registerTFGConcreteRecipes(event) + registerTFGAlabasterRecipes(event) + registerTFGDirtRecipes(event) + registerTFGSandRecipes(event) + + registerTFGPapermakingRecipes(event) + registerTFGMedicineRecipes(event) + registerTFGFishingNetsRecipes(event) + registerTFGSupportRecipes(event) + registerTFGVaseRecipes(event) + registerTFGIceRecipes(event) + registerTFGBasketRecipes(event) + registerTFGArrowRecipes(event) + registerTFGCompostRecipes(event) + registerTFGClothRecipes(event) + registerTFGChipboardRecipes(event) + registerTFGWaxRecipes(event) + registerTFGRubberRecipes(event) + registerTFGWoodRecipes(event) + registerTFGKnappingRecipes(event) + registerTFGLeatherRecipes(event) + registerTFGClayRecipes(event) + registerTFGEquipmentRecipes(event) + + registerTFGCasingRecipes(event) + registerTFGEnderPearlRecipes(event) + registerTFGMultiblockRecipes(event) + registerTFGSteamBloomeryRecipes(event) + registerTFGElectronicComponentsRecipes(event) + + registerTFGEarlyGasRecipes(event) + registerTFGBoilerRecipes(event) + registerTFGBiodieselRecipes(event) registerTFGNuclearRecipes(event) + registerTFGNuclearComponentsRecipes(event) + registerTFGSolarRecipes(event) + registerTFGCoalRecipes(event) + + registerTFGZirconiumRecipes(event) + registerTFGBromineRecipes(event) + registerTFGTungstenRecipes(event) + registerTFGAlloyingRecipes(event) + registerTFGQuartzRecipes(event) + + registerTFGSpaceRecipes(event) + registerTFGRailgunRecipes(event) + registerTFGRocketRecipes(event) + registerTFGSpaceSuitRecipes(event) + registerTFGInsulationRecipes(event) + + registerTFGMoonRecipes(event) + registerTFGMoonPlantRecipes(event) + registerTFGMoonRegolithRecipes(event) + + registerTFGMarsRecipes(event) + registerTFGMarsIodineRecipes(event) + registerTFGMarsOstrumRecipes(event) + registerTFGBiochemRecipes(event) - registerTFGSpaceOres(event) } diff --git a/kubejs/server_scripts/tfg/recipes.miscellaneous.js b/kubejs/server_scripts/tfg/recipes.miscellaneous.js index 2d3ec7645..65cb9248a 100644 --- a/kubejs/server_scripts/tfg/recipes.miscellaneous.js +++ b/kubejs/server_scripts/tfg/recipes.miscellaneous.js @@ -7,13 +7,9 @@ */ function registerTFGMiscellaneousRecipes(event) { - //tfc:moss - event.replaceInput({}, 'minecraft:vine', '#tfc:moss') - - //forge:wax - event.replaceInput({}, 'firmalife:beeswax', '#forge:wax') - //Moss + event.replaceInput({ input: 'minecraft:vine' }, 'minecraft:vine', '#tfc:moss') + event.shapeless('1x minecraft:moss_block', [ '#tfc:dirt', '#tfc:moss' @@ -25,379 +21,13 @@ function registerTFGMiscellaneousRecipes(event) { A: 'minecraft:moss_block' }).id(`tfg:shaped/moss_carpet`) - //paraffin - event.recipes.gtceu.chemical_reactor('tfg:paraffin_wax_from_lubricant') - .circuit(7) - .itemOutputs('6x tfg:paraffin_wax') - .outputFluids(Fluid.of('gtceu:oil_light', 25)) - .inputFluids(Fluid.of('gtceu:lubricant', 250), Fluid.of('gtceu:acetone', 25)) - .duration(500) - .EUt(GTValues.VA[GTValues.LV]) - - // Rosin - event.recipes.firmalife.vat() - .inputs('tfc:powder/charcoal', Fluid.of('tfg:conifer_pitch', 1000)) - .outputItem('tfg:conifer_rosin') - .id('tfg:vat/conifer_pitch_to_rosin'); - - event.recipes.tfc.pot('tfc:powder/charcoal', Fluid.of('tfg:conifer_pitch', 1000), 1200, 300) - .itemOutput('tfg:conifer_rosin') - .id('tfg:pot/conifer_pitch_to_rosin') - - event.recipes.gtceu.fluid_solidifier('tfg:pitch_to_rosin') - .inputFluids(Fluid.of('tfg:conifer_pitch', 1000)) - .itemInputs('tfc:powder/charcoal') - .itemOutputs('tfg:conifer_rosin') - .duration(20 * 12) - .EUt(GTValues.VA[GTValues.LV]) - - // Decorative Vases - global.MINECRAFT_DYE_NAMES.forEach(color => { - event.recipes.gtceu.chemical_bath(`tfg:chemical_bath/dyeing/decorative_vase/unfired/${color}`) - .itemInputs('#tfg:decorative_vases/unfired') - .inputFluids(Fluid.of(`tfc:${color}_dye`, 25)) - .itemOutputs(`tfg:decorative_vase/unfired/${color}`) - .duration(80) - .EUt(GTValues.VA[GTValues.ULV]) - .category(GTRecipeCategories.CHEM_DYES) - - event.recipes.tfc.heating(`tfg:decorative_vase/unfired/${color}`, 1399) - .resultItem(`tfg:decorative_vase/${color}`) - .id(`tfg:heating/decorative_vase/unfired/${color}`) - - event.recipes.tfc.barrel_sealed(1000) - .outputItem(`tfg:decorative_vase/unfired/${color}`) - .inputItem(Ingredient.of('#tfg:decorative_vases/unfired').subtract(`tfg:decorative_vase/unfired/${color}`)) - .inputFluid(Fluid.of(`tfc:${color}_dye`, 25)) - .id(`tfg:barrel/dyeing/decorative_vase/${color}`) - - event.smelting( - `1x tfg:decorative_vase/${color}`, - `tfg:decorative_vase/unfired/${color}` - ).id(`tfg:smelting/decorative_vase/${color}`) - }) - - event.recipes.gtceu.chemical_bath(`tfg:chemical_bath/bleaching/decorative_vase/unfired`) - .itemInputs('#tfg:decorative_vases/unfired') - .inputFluids(Fluid.of('gtceu:chlorine', 72)) - .itemOutputs('tfg:decorative_vase/unfired') - .duration(80) - .EUt(GTValues.VA[GTValues.ULV]) - .category(GTRecipeCategories.CHEM_DYES) - - event.smelting( - '1x tfg:decorative_vase', - 'tfg:decorative_vase/unfired' - ).id('tfg:smelting/decorative_vase') - - event.recipes.tfc.heating('tfg:decorative_vase/unfired', 1399) - .resultItem('tfg:decorative_vase') - .id('tfg:heating/decorative_vase/unfired') - - event.recipes.tfc.knapping( - 'tfg:decorative_vase/unfired', - 'tfc:clay', - [ - ' X X ', - 'XX XX', - 'X X', - 'X X', - 'XXXXX' - ] - ).outsideSlotRequired(false) - .id('tfg:knapping/decorative_vase/unfired') - - - // lactose & curd - event.recipes.gtceu.mixer('lactose_milk_cow') - .circuit(1) - .inputFluids(Fluid.of('minecraft:milk', 1000), Fluid.of('gtceu:acetic_acid', 25)) - .itemOutputs('1x gtceu:lactose_dust') - .outputFluids(Fluid.of('tfc:curdled_milk', 1000)) - .duration(300) - .EUt(GTValues.VA[GTValues.LV]) - - event.recipes.gtceu.mixer('lactose_milk_yak') - .circuit(1) - .inputFluids(Fluid.of('firmalife:yak_milk', 1000), Fluid.of('gtceu:acetic_acid', 25)) - .itemOutputs('1x gtceu:lactose_dust') - .outputFluids(Fluid.of('firmalife:curdled_yak_milk', 1000)) - .duration(300) - .EUt(GTValues.VA[GTValues.LV]) - - event.recipes.gtceu.mixer('lactose_milk_goat') - .circuit(1) - .inputFluids(Fluid.of('firmalife:goat_milk', 1000), Fluid.of('gtceu:acetic_acid', 25)) - .itemOutputs('1x gtceu:lactose_dust') - .outputFluids(Fluid.of('firmalife:curdled_goat_milk', 1000)) - .duration(300) - .EUt(GTValues.VA[GTValues.LV]) - - //Scaffolding Frame - event.shaped('tfg:scaffolding_frame', - [ - ' A ', - 'ABA', - ' A ' - ], - { - A: '#forge:rods/wood', - B: '#forge:cloth' - }).id('tfg:shaped/scaffolding_frame'); - - //Airship Hull - event.shaped('tfg:airship_hull', [ - 'A B', - 'C C', - 'CCC' - ], { - A: '#forge:tools/screwdrivers', - B: '#forge:tools/hammers', - C: 'immersive_aircraft:hull' - }).id('tfg:shaped/airship_hull'); - event.recipes.gtceu.assembler('tfg:assembler/airship_hull') - .itemInputs('5x immersive_aircraft:hull') - .itemOutputs('tfg:airship_hull') - .duration(40) - .circuit(1) - .EUt(GTValues.VA[GTValues.ULV]); - - //Airship Balloon - event.shaped('tfg:airship_balloon', [ - 'ABA', - 'BAB', - 'ABA' - ], { - A: '#forge:string', - B: 'immersive_aircraft:sail' - }).id('tfg:shaped/airship_balloon') - - event.recipes.gtceu.assembler('tfg:assembler/airship_balloon') - .itemInputs('4x immersive_aircraft:sail', '4x #forge:string') - .itemOutputs('tfg:airship_balloon') - .duration(40) - .circuit(1) - .EUt(GTValues.VA[GTValues.ULV]) - - // Steam bloomery - event.shaped('gtceu:steam_bloomery', [ - 'CEC', - 'DAD', - 'CBC' - ], { - A: 'tfc:bloomery', - B: '#forge:frames/bronze', - C: '#forge:rods/black_steel', - D: '#forge:screws/wrought_iron', - E: '#forge:tools/wrenches' - }) - - // Arrow Parts - event.recipes.tfc.knapping( - '4x tfg:flint_arrow_head', - 'tfg:flint', - [ - ' XXX', - ' XXXX', - 'XXXXX', - ' XXX ', - ' X ' - ] - ).outsideSlotRequired(false) - .id('tfg:knapping/flint_arrow_head') - - event.recipes.gtceu.assembler('tfg:assembler/flint_arrow_head') - .itemInputs('1x minecraft:flint') - .itemOutputs('4x tfg:flint_arrow_head') - .duration(20) - .circuit(4) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.tfc.damage_inputs_shapeless_crafting( - event.shapeless('4x tfg:fletching', [ - 'minecraft:feather', - '#forge:tools/knives' - ]).id('tfg:shapeless/fletching')) - - event.recipes.gtceu.assembler('tfg:assembler/fletching') - .itemInputs('1x minecraft:feather') - .itemOutputs('4x tfg:fletching') - .duration(20) - .circuit(4) - .EUt(GTValues.VA[GTValues.ULV]) - - event.shaped('4x minecraft:arrow', [ - ' A ', - ' B ', - ' C ' - ], { - A: 'tfg:flint_arrow_head', - B: '#forge:rods/wooden', - C: 'tfg:fletching' - }).id('tfg:shaped/arrow') - - // Ice - event.remove({ id: 'gtceu:compressor/ice_from_dust' }) - event.remove({ id: 'gtceu:compressor/ice_from_snow' }) - - event.shapeless('#forge:dusts/ice', ['#forge:tools/mortars', '4x firmalife:ice_shavings']) - .id('tfg:shaped/ice_shavings') - - event.recipes.tfc.quern('#forge:small_dusts/ice', 'firmalife:ice_shavings') - .id('tfg:quern/ice_dust') - - event.recipes.gtceu.macerator('tfg:macerating_ice_shavings') - .itemInputs('firmalife:ice_shavings') - .itemOutputs('#forge:small_dusts/ice') - .duration(10) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.macerator('tfg:macerating_ice_shavings_reverse') - .itemInputs('#forge:dusts/ice') - .itemOutputs('4x firmalife:ice_shavings') - .duration(20) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.fluid_solidifier('tfg:ice') - .inputFluids("#tfg:clean_water 144") - .notConsumable('gtceu:block_casting_mold') - .itemOutputs('minecraft:ice') - .duration(200) - .EUt(GTValues.VA[GTValues.LV]) - - event.shapeless('4x firmalife:ice_shavings', ['#forge:dusts/ice', '#forge:tools/hammers']) - - event.recipes.gtceu.mixer('tfg:ice_slush_from_dry_ice') - .itemInputs('1x tfg:dry_ice') - .inputFluids("#tfc:water 8000") - .outputFluids(Fluid.of('gtceu:ice', 8000)) - .duration(80) - .EUt(GTValues.VA[GTValues.ULV]) - - // Cooling water - event.recipes.tfc.barrel_sealed(250) - .inputItem('1x tfg:dry_ice') - .inputFluid(Fluid.of('minecraft:water', 5000)) - .outputFluid(Fluid.of('gtceu:ice', 5000)) - .id('tfg:barrel/cooling_water_0') - - event.recipes.tfc.barrel_sealed(1000) - .inputItem('1x #forge:dusts/ice') - .inputFluid(Fluid.of('minecraft:water', 144)) - .outputFluid(Fluid.of('gtceu:ice', 144)) - .id('tfg:barrel/cooling_water_1') - - event.recipes.tfc.barrel_sealed(1000) - .inputItem('16x minecraft:snowball') - .inputFluid(Fluid.of('minecraft:water', 144)) - .outputFluid(Fluid.of('gtceu:ice', 144)) - .id('tfg:barrel/cooling_water_2') - - event.recipes.tfc.barrel_sealed(2000) - .inputItem('1x #forge:dusts/ice') - .inputFluid(Fluid.of('tfc:salt_water', 144)) - .outputFluid(Fluid.of('gtceu:ice', 144)) - .id('tfg:barrel/cooling_water_3') - - event.recipes.tfc.barrel_sealed(2000) - .inputItem('16x minecraft:snowball') - .inputFluid(Fluid.of('tfc:salt_water', 144)) - .outputFluid(Fluid.of('gtceu:ice', 144)) - .id('tfg:barrel/cooling_water_4') - - // Freezing it - event.recipes.tfc.barrel_sealed(3000) - .inputItem('9x #forge:dusts/ice') - .inputFluid(Fluid.of('gtceu:ice', 144)) - .outputItem('minecraft:packed_ice') - .id('tfg:barrel/packed_ice') - - // Heating it back up - event.recipes.tfc.pot([], Fluid.of('gtceu:ice', 144), 300, 100) - .fluidOutput(Fluid.of('minecraft:water', 144)) - - event.recipes.firmalife.vat() - .inputFluid(Fluid.of('gtceu:ice', 144)) - .outputFluid(Fluid.of('minecraft:water', 144)) - .length(300) - .temperature(100) - - // Snow - event.recipes.firmalife.stomping('minecraft:snow', 'minecraft:snowball', - 'minecraft:block/snow', 'minecraft:block/snow', 'minecraft:block.snow.place') - .id('tfg:stomping/snow_layer') - - event.shapeless('minecraft:snow_block', ['8x minecraft:snow']) - .id('tfg:shapeless/snow_block') - - event.shapeless('8x minecraft:snowball', ['minecraft:snow_block']) - .id('tfg:shapeless/snowball') - - event.shapeless('8x minecraft:snow', ['minecraft:snow_block', '#forge:tools/saws']) - .id('tfg:shapeless/snow') - - //Cloth & String - event.recipes.gtceu.wiremill('tfg:wiremill/phantom_thread') - .itemInputs('1x minecraft:phantom_membrane') - .itemOutputs('16x tfg:phantom_thread') - .duration(100) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.wiremill('tfg:wiremill/polycaprolactam_string') - .itemInputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Polycaprolactam, 1)) - .itemOutputs('32x tfg:polycaprolactam_string') - .duration(100) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.assembler('tfg:assembler/phantom_silk') - .itemInputs('16x tfg:phantom_thread') - .itemOutputs('1x tfg:phantom_silk') - .duration(100) - .circuit(3) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.assembler('tfg:assembler/polycaprolactam_fabric') - .itemInputs('16x tfg:polycaprolactam_string') - .itemOutputs('1x tfg:polycaprolactam_fabric') - .duration(100) - .circuit(3) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.chemical_bath('tfg:chemical_bath/bleaching/polycaprolactam_string') - .itemInputs('tfg:polycaprolactam_string') - .inputFluids(Fluid.of('gtceu:chlorine', 16)) - .itemOutputs('minecraft:string') - .duration(80) - .EUt(GTValues.VA[GTValues.ULV]) - .category(GTRecipeCategories.CHEM_DYES) - - event.recipes.tfc.loom( - '1x tfg:phantom_silk', - '16x tfg:phantom_thread', - 8, - 'tfg:block/phantom_silk_block' - ) - - event.recipes.tfc.loom( - '1x tfg:polycaprolactam_fabric', - '16x tfg:polycaprolactam_string', - 8, - 'tfg:block/polycaprolactam_fabric_block' - ) - - event.recipes.tfc.damage_inputs_shapeless_crafting( - event.shapeless('16x tfg:phantom_thread', [ - 'minecraft:phantom_membrane', - 'tfc:spindle' - ]).id('tfg:shapeless/phantom_thread')) - // Universal Circuit global.UNIVERSAL_CIRCUIT_TIERS.forEach(tier => { event.shapeless(Item.of(`tfg:${tier}_universal_circuit`, 1), [Ingredient.of([`#gtceu:circuits/${tier}`]).subtract([`tfg:${tier}_universal_circuit`])] ).id(`universal_circuits_${tier}`); }); - + // Armor stands event.shapeless('1x tfg:armor_stand_arms', [ 'minecraft:armor_stand' ]).id(`tfg:shapeless/armor_stand_arms`) @@ -406,6 +36,7 @@ function registerTFGMiscellaneousRecipes(event) { 'tfg:armor_stand_arms' ]).id(`tfg:shapeless/armor_stand`) + // Piglin disguise event.recipes.tfc.sewing( '1x tfg:piglin_disguise', [ @@ -422,7 +53,7 @@ function registerTFGMiscellaneousRecipes(event) { ] ).id('tfg:sewing/piglin_disguise') - //trowel + //Trowel event.shaped('tfg:trowel', [ 'DBC', 'AA ', @@ -441,844 +72,6 @@ function registerTFGMiscellaneousRecipes(event) { .circuit(4) .EUt(GTValues.VA[GTValues.ULV]) - // Food related - event.recipes.gtceu.forming_press('tfg:forming_press/foil_pack') - .itemInputs(ChemicalHelper.get(TagPrefix.foil, GTMaterials.Aluminium, 1), ChemicalHelper.get(TagPrefix.foil, GTMaterials.Polyethylene, 1)) - .itemOutputs('1x tfg:foil_pack') - .duration(100) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.gas_pressurizer('tfg:fluid_solidifier/dry_ice') - .inputFluids(Fluid.of('gtceu:carbon_dioxide', 1000)) - .notConsumable('gtceu:block_casting_mold') - .itemOutputs('2x tfg:dry_ice') - .duration(100) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.vacuum_freezer('tfg:vacuum_freezer/liq_co2') - .inputFluids(Fluid.of('gtceu:carbon_dioxide', 1000)) - .outputFluids(Fluid.of('gtceu:liquid_carbon_dioxide', 1000)) - .duration(160) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.vacuum_freezer('tfg:vacuum_freezer/dry_ice') - .inputFluids(Fluid.of('gtceu:liquid_carbon_dioxide', 1000)) - .notConsumable('gtceu:block_casting_mold') - .itemOutputs('10x tfg:dry_ice') - .duration(60) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.fluid_heater('tfg:fluid_heater/decompress_liq_co2') - .itemInputs('1x tfg:dry_ice') - .outputFluids(Fluid.of('gtceu:carbon_dioxide', 100)) - .duration(20) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.fluid_heater('tfg:fluid_heater/decompress_dry_ice') - .inputFluids(Fluid.of('gtceu:liquid_carbon_dioxide', 100)) - .outputFluids(Fluid.of('gtceu:carbon_dioxide', 100)) - .duration(20) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.mixer('tfg:clean_foil_pack') - .itemInputs('1x tfg:used_foil_pack') - .inputFluids("#tfg:clean_water 100") - .itemOutputs('1x tfg:clean_foil_pack') - .duration(200) - .circuit(1) - .EUt(GTValues.VA[GTValues.LV]) - - event.recipes.gtceu.ore_washer('tfg:ore_washer/distilled/clean_foil_pack') - .itemInputs('1x tfg:used_foil_pack') - .inputFluids(Fluid.of('gtceu:distilled_water', 10)) - .itemOutputs('1x tfg:clean_foil_pack') - .duration(200) - .circuit(2) - .EUt(GTValues.VA[GTValues.ULV]) - - event.custom({ - type: "ae2:transform", - circumstance: { - type: "fluid", - tag: "tfc:water" - }, - ingredients: [ - { item: 'tfg:used_foil_pack' }], - result: { item: 'tfg:clean_foil_pack' } - }).id('tfg:ae_transform/clean_foil_pack') - - event.recipes.greate.splashing(['tfg:clean_foil_pack'], 'tfg:used_foil_pack') - .id('tfg:splashing/clean_foil_pack') - - event.shapeless('1x tfg:used_foil_pack', [ - 'tfg:food/calorie_paste' - ]).id('tfg:shapeless/emptying/calorie_paste') - - event.shapeless('1x tfg:used_foil_pack', [ - 'tfg:food/meal_bag' - ]).id('tfg:shapeless/emptying/meal_bag') - - global.FOOD_FRUIT.forEach(fruit => { - event.shapeless('1x tfg:used_foil_pack', [ - `tfg:food/freeze_dried/${fruit.name}` - ]).id(`tfg:shapeless/emptying/freeze_dried/${fruit.name}`) - }) - - // Refrigerants - - event.recipes.gtceu.chemical_reactor('tfg:chemical_reactor/chlorodifluoromethane') - .inputFluids(Fluid.of('gtceu:chloroform', 1000), Fluid.of('gtceu:hydrofluoric_acid', 2000)) - .outputFluids(Fluid.of('tfg:chlorodifluoromethane', 1000), Fluid.of('gtceu:hydrochloric_acid', 2000)) - .duration(480) - .circuit(2) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.chemical_reactor('tfg:chemical_reactor/breakdown/chlorodifluoromethane') - .inputFluids(Fluid.of('tfg:chlorodifluoromethane', 200)) - .outputFluids(Fluid.of('gtceu:tetrafluoroethylene', 100), Fluid.of('gtceu:hydrochloric_acid', 200)) - .duration(100) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.chemical_reactor('tfg:chemical_reactor/acetylene') - .inputFluids(Fluid.of('gtceu:methane', 2000), Fluid.of('gtceu:oxygen', 3000)) - .outputFluids(Fluid.of('tfg:acetylene', 1000), Fluid.of('minecraft:water', 3000)) - .circuit(4) - .duration(120) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.chemical_reactor('tfg:chemical_reactor/1_1_1_2_tetrafluoroethane') - .inputFluids(Fluid.of('tfg:acetylene', 1000), Fluid.of('gtceu:chlorine', 4000), Fluid.of('gtceu:hydrofluoric_acid', 4000)) - .outputFluids(Fluid.of('tfg:1_1_1_2_tetrafluoroethane', 1000), Fluid.of('gtceu:hydrochloric_acid', 4000)) - .circuit(4) - .duration(480) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.cracker('tfg:cracker/isobutane') - .inputFluids(Fluid.of('gtceu:butane', 4000)) - .outputFluids(Fluid.of('tfg:isobutane', 1000), Fluid.of('gtceu:lpg', 3000)) - .circuit(4) - .duration(2400) - .EUt(GTValues.VA[GTValues.HV]) - - // Biofuels - - event.recipes.gtceu.chemical_reactor(`seed_oil_alcohol_biodiesel`) - .inputFluids("#tfc:alcohols 1000", Fluid.of('gtceu:seed_oil', 6000)) - .itemInputs('#forge:tiny_dusts/sodium_hydroxide') - .outputFluids(Fluid.of('gtceu:bio_diesel', 6000)) - .duration(20 * 10) - .EUt(GTValues.VHA[GTValues.ULV]) - - // So you can craft Biodiesel without Chemical Reactor - event.recipes.gtceu.mixer(`tfg:seed_oil_alcohol_biodiesel`) - .inputFluids("#tfc:alcohols 1000", Fluid.of('gtceu:seed_oil', 1000)) - .itemInputs('#forge:tiny_dusts/sodium_hydroxide') - .outputFluids(Fluid.of('gtceu:bio_diesel', 500)) - .duration(20 * 10) - .EUt(GTValues.VHA[GTValues.ULV]) - - event.recipes.gtceu.chemical_reactor(`olive_oil_alcohol_biodiesel`) - .inputFluids("#tfc:alcohols 1000", Fluid.of('tfc:olive_oil', 4000)) - .itemInputs('#forge:tiny_dusts/sodium_hydroxide') - .outputFluids(Fluid.of('gtceu:bio_diesel', 6000)) - .duration(20 * 10) - .EUt(GTValues.VHA[GTValues.ULV]) - - // So you can craft Biodiesel without Chemical Reactor - event.recipes.gtceu.mixer(`tfg:olive_oil_alcohol_biodiesel`) - .inputFluids("#tfc:alcohols 1000", Fluid.of('tfc:olive_oil', 1000)) - .itemInputs('#forge:tiny_dusts/sodium_hydroxide') - .outputFluids(Fluid.of('gtceu:bio_diesel', 500)) - .duration(20 * 10) - .EUt(GTValues.VHA[GTValues.ULV]) - - event.recipes.gtceu.chemical_reactor(`soybean_oil_alcohol_biodiesel`) - .inputFluids("#tfc:alcohols 1000", Fluid.of('firmalife:soybean_oil', 4000)) - .itemInputs('#forge:tiny_dusts/sodium_hydroxide') - .outputFluids(Fluid.of('gtceu:bio_diesel', 6000)) - .duration(20 * 10) - .EUt(GTValues.VHA[GTValues.ULV]) - - // So you can craft Biodiesel without Chemical Reactor - event.recipes.gtceu.mixer(`tfg:soybean_oil_alcohol_biodiesel`) - .inputFluids("#tfc:alcohols 1000", Fluid.of('firmalife:soybean_oil', 1000)) - .itemInputs('#forge:tiny_dusts/sodium_hydroxide') - .outputFluids(Fluid.of('gtceu:bio_diesel', 500)) - .duration(20 * 10) - .EUt(GTValues.VHA[GTValues.ULV]) - - event.recipes.gtceu.chemical_reactor(`fish_oil_alcohol_biodiesel`) - .inputFluids("#tfc:alcohols 1000", Fluid.of('gtceu:fish_oil', 6000)) - .itemInputs('#forge:tiny_dusts/sodium_hydroxide') - .outputFluids(Fluid.of('gtceu:bio_diesel', 6000)) - .duration(20 * 10) - .EUt(GTValues.VHA[GTValues.ULV]) - - // So you can craft Biodiesel without Chemical Reactor - event.recipes.gtceu.mixer(`tfg:fish_oil_alcohol_biodiesel`) - .inputFluids("#tfc:alcohols 1000", Fluid.of('gtceu:fish_oil', 1000)) - .itemInputs('#forge:tiny_dusts/sodium_hydroxide') - .outputFluids(Fluid.of('gtceu:bio_diesel', 500)) - .duration(20 * 10) - .EUt(GTValues.VHA[GTValues.ULV]) - - event.recipes.gtceu.chemical_reactor(`olive_oil_ethanol_biodiesel`) - .inputFluids(Fluid.of('tfc:olive_oil', 4000), Fluid.of('gtceu:ethanol', 1000)) - .itemInputs('#forge:tiny_dusts/sodium_hydroxide') - .outputFluids(Fluid.of('gtceu:glycerol'), Fluid.of('gtceu:bio_diesel', 6000)) - .duration(20 * 10) - .EUt(GTValues.VHA[GTValues.LV]) - - event.recipes.gtceu.chemical_reactor(`olive_oil_methanol_biodiesel`) - .inputFluids(Fluid.of('tfc:olive_oil', 4000), Fluid.of('gtceu:methanol', 1000)) - .itemInputs('#forge:tiny_dusts/sodium_hydroxide') - .outputFluids(Fluid.of('gtceu:glycerol'), Fluid.of('gtceu:bio_diesel', 6000)) - .duration(20 * 10) - .EUt(GTValues.VHA[GTValues.LV]) - - event.recipes.gtceu.chemical_reactor(`soybean_oil_ethanol_biodiesel`) - .inputFluids(Fluid.of('firmalife:soybean_oil', 4000), Fluid.of('gtceu:ethanol', 1000)) - .itemInputs('#forge:tiny_dusts/sodium_hydroxide') - .outputFluids(Fluid.of('gtceu:glycerol'), Fluid.of('gtceu:bio_diesel', 6000)) - .duration(20 * 10) - .EUt(GTValues.VHA[GTValues.LV]) - - event.recipes.gtceu.chemical_reactor(`soybean_oil_methanol_biodiesel`) - .inputFluids(Fluid.of('firmalife:soybean_oil', 4000), Fluid.of('gtceu:methanol', 1000)) - .itemInputs('#forge:tiny_dusts/sodium_hydroxide') - .outputFluids(Fluid.of('gtceu:glycerol'), Fluid.of('gtceu:bio_diesel', 6000)) - .duration(20 * 10) - .EUt(GTValues.VHA[GTValues.LV]) - - event.recipes.gtceu.extractor(`rapeseed_oil`) - .itemInputs('tfg:rapeseed_product') - .outputFluids(Fluid.of('gtceu:seed_oil', 600)) - .duration(20 * 5) - .EUt(GTValues.VHA[GTValues.ULV]) - - event.recipes.gtceu.extractor(`sunflower_oil`) - .itemInputs('tfg:sunflower_product') - .outputFluids(Fluid.of('gtceu:seed_oil', 350)) - .duration(20 * 5) - .EUt(GTValues.VHA[GTValues.ULV]) - - event.recipes.tfc.barrel_sealed(1000) - .inputs('tfg:rapeseed_product', Fluid.of('minecraft:water', 100)) - .outputFluid(Fluid.of('gtceu:seed_oil', 250)) - .id('tfg:barrel/rapeseed_to_oil') - - event.recipes.tfc.barrel_sealed(1000) - .inputs('tfg:sunflower_product', Fluid.of('minecraft:water', 100)) - .outputFluid(Fluid.of('gtceu:seed_oil', 120)) - .id('tfg:barrel/sunflower_to_oil') - - // Not-ender pearl stuff - - event.recipes.gtceu.chemical_reactor('kaolinite') - .itemInputs('5x #tfg:aluminium_oxide', '2x #forge:dusts/silicon') - .inputFluids(Fluid.of('gtceu:distilled_water', 6000), Fluid.of('gtceu:chlorine', 8000)) - .itemOutputs('17x tfc:powder/kaolinite') - .outputFluids(Fluid.of('gtceu:hydrochloric_acid', 8000)) - .duration(20 * 10) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.chemical_reactor('kaolinite_ruby') - .itemInputs('6x #forge:dusts/ruby', '2x #forge:dusts/silicon') - .inputFluids(Fluid.of('gtceu:distilled_water', 6000), Fluid.of('gtceu:chlorine', 8000)) - .itemOutputs('17x tfc:powder/kaolinite', '1x #forge:dusts/chromium') - .outputFluids(Fluid.of('gtceu:hydrochloric_acid', 8000)) - .duration(20 * 10) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.pyrolyse_oven('vitrified_ender_dust') - .itemInputs('minecraft:ender_pearl', '2x tfc:powder/kaolinite', '4x #forge:insulation_t1') - .inputFluids(Fluid.of('gtceu:nitrogen', 100)) - .itemOutputs('tfg:vitrified_pearl') - .chancedOutput('gtceu:ash_dust', 2500, 0) - .duration(20 * 10) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.implosion_compressor('vitrified_ender_pearl_dynamite') - .itemInputs('4x #forge:dusts/vitrified_pearl', '2x gtceu:dynamite') - .itemOutputs('3x tfg:vitrified_pearl') - .chancedOutput('#forge:dusts/dark_ash', 2500, 0) - .duration(20) - .EUt(GTValues.VA[GTValues.LV]) - - event.recipes.gtceu.implosion_compressor('vitrified_ender_pearl_powderbarrel') - .itemInputs('4x #forge:dusts/vitrified_pearl', '8x gtceu:powderbarrel') - .itemOutputs('3x tfg:vitrified_pearl') - .chancedOutput('#forge:dusts/dark_ash', 2500, 0) - .duration(20) - .EUt(GTValues.VA[GTValues.LV]) - - event.recipes.gtceu.implosion_compressor('vitrified_ender_pearl_tnt') - .itemInputs('4x #forge:dusts/vitrified_pearl', '4x minecraft:tnt') - .itemOutputs('3x tfg:vitrified_pearl') - .chancedOutput('#forge:dusts/dark_ash', 2500, 0) - .duration(20) - .EUt(GTValues.VA[GTValues.LV]) - - event.recipes.gtceu.implosion_compressor('vitrified_ender_pearl_itnt') - .itemInputs('4x #forge:dusts/vitrified_pearl', 'gtceu:industrial_tnt') - .itemOutputs('3x tfg:vitrified_pearl') - .chancedOutput('#forge:dusts/dark_ash', 2500, 0) - .duration(20) - .EUt(GTValues.VA[GTValues.LV]) - - event.recipes.gtceu.macerator('vitrified_ender_pearl') - .itemInputs('tfg:vitrified_pearl') - .itemOutputs('#forge:dusts/vitrified_pearl') - .duration(40) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.shaped('gtceu:mv_field_generator', [ - 'ABA', - 'CDC', - 'ABA' - ], { - A: ChemicalHelper.get(TagPrefix.wireGtQuadruple, GTMaterials.MagnesiumDiboride, 1), - B: ChemicalHelper.get(TagPrefix.plate, GTMaterials.Aluminium, 1), - C: '#gtceu:circuits/mv', - D: 'tfg:vitrified_pearl' - }).addMaterialInfo().id('gtceu:shaped/field_generator_mv') - - event.recipes.gtceu.assembler('field_generator_mv') - .itemInputs('tfg:vitrified_pearl', '2x #forge:plates/aluminium', '2x #gtceu:circuits/mv', '4x #forge:quadruple_wires/magnesium_diboride') - .itemOutputs('gtceu:mv_field_generator') - .duration(100) - .EUt(30) - - // Harvest Baskets - - event.shaped('tfg:harvest_basket', [ - 'BDB', - 'ACA', - 'AAA' - ], { - A: 'tfg:soaked_hardwood_strip', - B: ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 1), - C: 'tfc:glue', - D: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1), - }).id('tfg:shaped/harvest_basket_from_wood') - - event.recipes.gtceu.assembler('tfg:assembler/harvest_basket_from_wood') - .itemInputs( - '5x tfg:soaked_hardwood_strip', - ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 2), - ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1) - ) - .inputFluids(Fluid.of('gtceu:glue', 50)) - .itemOutputs('tfg:harvest_basket') - .duration(100) - .EUt(GTValues.VA[GTValues.ULV]) - - event.shaped('tfg:harvest_basket', [ - 'BDB', - 'ACA', - 'AAA' - ], { - A: 'tfc:soaked_papyrus_strip', - B: ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 1), - C: 'tfc:glue', - D: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1), - }).id('tfg:shaped/harvest_basket_from_papyrus') - - event.recipes.gtceu.assembler('tfg:assembler/harvest_basket_from_papyrus') - .itemInputs( - '5x tfc:soaked_papyrus_strip', - ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 2), - ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1) - ) - .inputFluids(Fluid.of('gtceu:glue', 50)) - .itemOutputs('tfg:harvest_basket') - .circuit(2) - .duration(100) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.assembler('tfg:assembler/aluminium_harvest_basket') - .itemInputs( - ChemicalHelper.get(TagPrefix.plate, GTMaterials.Aluminium, 3), - ChemicalHelper.get(TagPrefix.foil, GTMaterials.Aluminium, 2), - ChemicalHelper.get(TagPrefix.bolt, GTMaterials.Steel, 2), - ChemicalHelper.get(TagPrefix.rodLong, - GTMaterials.Aluminium, 1) - ) - .inputFluids(Fluid.of('gtceu:cobalt_brass', 144)) - .itemOutputs('tfg:aluminium_harvest_basket') - .duration(200) - .circuit(4) - .EUt(GTValues.VA[GTValues.LV]) - .addMaterialInfo(true) - - //Rock-wool stuff - event.recipes.gtceu.mixer('tfg:aes_mix') - .itemInputs('5x gtceu:silicon_dioxide_dust', '4x gtceu:quicklime_dust', 'gtceu:magnesia_dust') - .itemOutputs('10x tfg:aes_mix_dust') - .duration(160) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.electric_blast_furnace('tfg:molten_aes') - .itemInputs('2x tfg:aes_mix_dust') - .outputFluids(Fluid.of('tfg:molten_aes', 1000)) - .chancedOutput('gtceu:ash_dust', 3000, 0) - .circuit(1) - .duration(400) - .blastFurnaceTemp(3000) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.electric_blast_furnace('tfg:molten_aes_he') - .itemInputs('2x tfg:aes_mix_dust') - .inputFluids(Fluid.of('gtceu:helium', 200)) - .outputFluids(Fluid.of('tfg:molten_aes', 1000)) - .circuit(2) - .duration(140) - .blastFurnaceTemp(3000) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.centrifuge('tfg:aes_wool') - .inputFluids(Fluid.of('tfg:molten_aes', 200)) - .itemOutputs('tfg:aes_wool') - .duration(30) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.forming_press('tfg:aes_compressed_wool') - .itemInputs('4x tfg:aes_wool') - .notConsumable('gtceu:ingot_casting_mold') - .itemOutputs('tfg:aes_compressed_wool') - .duration(40) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.chemical_bath('tfg:aes_insulation_sheet') - .itemInputs('tfg:aes_compressed_wool') - .inputFluids(Fluid.of('gtceu:epoxy', 72)) - .circuit(1) - .itemOutputs('tfg:aes_insulation_sheet') - .duration(80) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.chemical_bath('tfg:aes_insulation_roll') - .itemInputs('9x tfg:aes_compressed_wool') - .inputFluids(Fluid.of('gtceu:epoxy', 648)) - .itemOutputs('tfg:aes_insulation_roll') - .circuit(9) - .duration(400) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.assembler('tfg:aes_insulation_roll') - .itemInputs('9x tfg:aes_insulation_sheet') - .itemOutputs('tfg:aes_insulation_roll') - .circuit(0) - .duration(20) - .EUt(GTValues.VA[GTValues.LV]) - - event.shaped('tfg:aes_insulation_roll', [ - 'AAA', - 'AAA', - 'AAA' - ], { - A: 'tfg:aes_insulation_sheet', - }).id('tfg:shaped/aes_insulation_roll') - - event.recipes.gtceu.assembler('tfg:aes_insulation_sheet') - .itemInputs('9x tfg:aes_insulation_sheet') - .itemOutputs('tfg:aes_insulation_roll') - .circuit(0) - .duration(20) - .EUt(GTValues.VA[GTValues.LV]) - - event.shapeless('9x tfg:aes_insulation_sheet', [ - 'tfg:aes_insulation_roll' - ]).id('tfg:shapeless/aes_insulation_sheet') - - event.recipes.gtceu.electric_blast_furnace('tfg:smelt_aes_sheet') - .itemInputs('tfg:aes_insulation_sheet') - .inputFluids(Fluid.of('gtceu:helium', 200)) - .outputFluids(Fluid.of('tfg:molten_aes', 800)) - .chancedOutput('gtceu:ash_dust', 2500, 0) - .circuit(1) - .duration(140) - .blastFurnaceTemp(3000) - .EUt(GTValues.VA[GTValues.EV]) - event.recipes.gtceu.electric_blast_furnace('tfg:smelt_aes_roll') - .itemInputs('tfg:aes_insulation_roll') - .inputFluids(Fluid.of('gtceu:helium', 1000)) - .itemOutputs('2x gtceu:ash_dust') - .outputFluids(Fluid.of('tfg:molten_aes', 7200)) - .circuit(9) - .duration(1000) - .blastFurnaceTemp(3000) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.electric_blast_furnace('tfg:smelt_sniffer_wool') - .itemInputs('tfg:sniffer_wool') - .chancedOutput('gtceu:ash_dust', 7500, 0) - .outputFluids(Fluid.of('tfg:molten_aes', 200)) - .circuit(4) - .duration(80) - .blastFurnaceTemp(3000) - .EUt(GTValues.VA[GTValues.EV]) - event.recipes.gtceu.electric_blast_furnace('tfg:smelt_wraptor_wool') - .itemInputs('tfg:wraptor_wool') - .chancedOutput('gtceu:ash_dust', 5000, 0) - .outputFluids(Fluid.of('tfg:molten_aes', 100)) - .circuit(8) - .duration(60) - .blastFurnaceTemp(3000) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.tfc.damage_inputs_shapeless_crafting( - event.shapeless('8x tfc:wool_yarn', [ - 'tfc:spindle', - 'tfg:glacian_wool' - ]).id('tfg:shapeless/glacian_wool_to_yarn')) - - event.recipes.gtceu.wiremill('tfg:glacian_wool_yarn') - .itemInputs('tfg:glacian_wool') - .itemOutputs('8x tfc:wool_yarn') - .duration(100) - .EUt(4) - - event.recipes.tfc.damage_inputs_shapeless_crafting( - event.shapeless('4x tfg:fletching', [ - 'tfg:wraptor_wool', - '#forge:tools/knives' - ]).id('tfg:shapeless/wraptor_feather_fletching')) - - event.recipes.gtceu.assembler('tfg:assembler/wraptor_feather_fletching') - .itemInputs('1x tfg:wraptor_wool') - .itemOutputs('4x tfg:fletching') - .duration(20) - .circuit(4) - .EUt(GTValues.VA[GTValues.ULV]) - - - //endregion - - //#region Casings - global.GTCEU_SUPERCONDUCTORS.forEach((type, index) => { - const multiplier = index + 1 - - event.recipes.gtceu.assembler(`tfg:assembler/superconductor_coil_small_from_${type.name}`) - .itemInputs( - ChemicalHelper.get(TagPrefix.plate, GTMaterials.HSLASteel, 4), - ChemicalHelper.get(TagPrefix.rod, GTMaterials.Steel, 2), - ChemicalHelper.get(TagPrefix.rod, GTMaterials.SteelMagnetic, 1), - ChemicalHelper.get(TagPrefix.wireFine, GTMaterials[type.materialId], 4) - ) - .inputFluids(Fluid.of('gtceu:epoxy', 144)) - .itemOutputs(Item.of('tfg:superconductor_coil_small', 4 * multiplier)) - .circuit(4) - .duration(400) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.assembler(`tfg:assembler/superconductor_coil_large_from_${type.name}`) - .itemInputs( - ChemicalHelper.get(TagPrefix.plate, GTMaterials.HSLASteel, 4), - ChemicalHelper.get(TagPrefix.rod, GTMaterials.Steel, 2), - ChemicalHelper.get(TagPrefix.rod, GTMaterials.SteelMagnetic, 1), - ChemicalHelper.get(TagPrefix.wireGtSingle, GTMaterials[type.materialId], 4)) - .inputFluids(Fluid.of('gtceu:epoxy', 144)) - .itemOutputs(Item.of('tfg:superconductor_coil_large', 4 * multiplier)) - .circuit(7) - .duration(600) - .EUt(GTValues.VA[GTValues.MV]) - }) - - event.recipes.gtceu.assembler('tfg:assembler/electromagnetic_accelerator') - .itemInputs( - '2x #forge:plates/desh', - 'gtceu:mv_voltage_coil', - '5x tfg:dry_ice', - 'gtceu:nonconducting_casing' - ) - .inputFluids(Fluid.of('gtceu:blue_alloy', 288)) - .itemOutputs('6x tfg:electromagnetic_accelerator') - .circuit(4) - .duration(800) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.assembler('tfg:assembler/machine_casing_aluminium_plated_steel') - .itemInputs( - ChemicalHelper.get(TagPrefix.plate, GTMaterials.Aluminium, 6), - ChemicalHelper.get(TagPrefix.frameGt, GTMaterials.Steel, 1) - ) - .inputFluids(Fluid.of('gtceu:silicon', 72)) - .itemOutputs('2x tfg:machine_casing_aluminium_plated_steel') - .circuit(6) - .duration(20 * (2.5)) - .EUt(GTValues.VH[GTValues.LV]) - - event.recipes.gtceu.assembler('tfg:reflector_from_lens') - .itemInputs( - '24x #forge:lenses', - ChemicalHelper.get(TagPrefix.frameGt, GTMaterials.BlackSteel, 1) - ) - .inputFluids(Fluid.of('gtceu:silver', 1296)) - .itemOutputs('1x tfg:reflector') - .circuit(6) - .duration(20 * (60)) - .EUt(GTValues.VH[GTValues.HV]) - - event.recipes.gtceu.assembler('tfg:reflector_from_inr') - .itemInputs( - '1x gtceu:neutron_reflector', - ChemicalHelper.get(TagPrefix.frameGt, GTMaterials.BlackSteel, 1) - ) - .itemOutputs('2x tfg:reflector') - .circuit(9) - .duration(20 * (20)) - .EUt(GTValues.VH[GTValues.MV]) - - event.recipes.gtceu.assembler('tfg:reflector_from_certus') - .itemInputs( - ChemicalHelper.get(TagPrefix.plate, GTMaterials.CertusQuartz, 12), - ChemicalHelper.get(TagPrefix.frameGt, GTMaterials.BlackSteel, 1) - ) - .inputFluids(Fluid.of('gtceu:silver', 488)) - .itemOutputs('1x tfg:reflector') - .circuit(6) - .dimension('ad_astra:moon') - .duration(20 * (60)) - .EUt(GTValues.VH[GTValues.MV]) - - //#endregion - - //region ammonia borane - event.recipes.gtceu.chemical_reactor('tfg:sodium_hydride_synthesis') - .itemInputs('#forge:dusts/sodium') - .inputFluids(Fluid.of('gtceu:hydrogen', 1000)) - .itemOutputs('2x #forge:dusts/sodium_hydride') - .duration(400) - .EUt(GTValues.VA[GTValues.HV]) - event.recipes.gtceu.chemical_reactor('tfg:boric_acid_synthesis') - .itemInputs('#forge:dusts/borax') - .inputFluids(Fluid.of('gtceu:hydrochloric_acid', 2000)) - .itemOutputs('4x #forge:dusts/boric_acid', '2x #forge:dusts/salt') - .outputFluids(Fluid.of('minecraft:water', 5000)) - .duration(400) - .EUt(GTValues.VA[GTValues.HV]) - event.recipes.gtceu.chemical_reactor('tfg:trimethyl_borate_synthesis') - .itemInputs('#forge:dusts/boric_acid') - .inputFluids(Fluid.of('gtceu:methanol', 3000), Fluid.of('gtceu:sulfuric_acid', 100)) - .outputFluids(Fluid.of('tfg:trimethyl_borate', 1000), Fluid.of('minecraft:water', 3000)) - .duration(300) - .EUt(GTValues.VA[GTValues.EV]) - event.recipes.gtceu.chemical_reactor('tfg:sodium_borohydride_synthesis') - .itemInputs('4x #forge:dusts/sodium_hydride') - .inputFluids(Fluid.of('tfg:trimethyl_borate', 1000)) - .itemOutputs('#forge:dusts/sodium_borohydride', '3x #forge:dusts/sodium_methoxide') - .duration(160) - .EUt(GTValues.VA[GTValues.EV]) - event.recipes.gtceu.chemical_reactor('tfg:ammonia_borane_synthesis') - .itemInputs('#forge:dusts/sodium_borohydride', '#forge:dusts/ammonium_chloride') - .itemOutputs('#forge:dusts/ammonia_borane', '#forge:dusts/salt') - .outputFluids(Fluid.of('gtceu:hydrogen', 2000)) - .duration(100) - .EUt(GTValues.VA[GTValues.IV]) - //endregion - - //region polyurethane - event.recipes.gtceu.chemical_reactor('tfg:aniline_synthesis') - .inputFluids(Fluid.of('gtceu:nitrobenzene', 1000), Fluid.of('gtceu:hydrogen', 6000)) - .notConsumable('#forge:dusts/iron') - .outputFluids(Fluid.of('tfg:aniline', 1000), Fluid.of('minecraft:water', 2000)) - .duration(140) - .EUt(GTValues.VA[GTValues.EV]) - event.recipes.gtceu.chemical_reactor('tfg:dimethyl_carbonate_synthesis') - .inputFluids(Fluid.of('gtceu:carbon_monoxide', 1000), Fluid.of('gtceu:oxygen', 500), Fluid.of('gtceu:methanol', 2000)) - .outputFluids(Fluid.of('tfg:dimethyl_carbonate', 1000), Fluid.of('minecraft:water', 1000)) - .duration(120) - .circuit(2) - .EUt(GTValues.VA[GTValues.HV]) - event.recipes.gtceu.chemical_reactor('tfg:methyl_phenylcarbamate_synthesis') - .inputFluids(Fluid.of('tfg:aniline', 1000), Fluid.of('tfg:dimethyl_carbonate', 1000)) - .outputFluids(Fluid.of('tfg:methyl_phenylcarbamate', 1000), Fluid.of('gtceu:methanol', 1000)) - .duration(200) - .EUt(GTValues.VA[GTValues.EV]) - event.recipes.gtceu.chemical_reactor('tfg:mpc_synthesis') - .inputFluids(Fluid.of('tfg:methyl_phenylcarbamate', 2000), Fluid.of('gtceu:formaldehyde', 1000)) - .outputFluids(Fluid.of('tfg:methylene_diphenyl_dicarbamate', 1000), Fluid.of('minecraft:water', 1000)) - .duration(200) - .EUt(GTValues.VA[GTValues.EV]) - event.recipes.gtceu.chemical_reactor('tfg:mpi_synthesis') - .inputFluids(Fluid.of('tfg:methylene_diphenyl_dicarbamate', 1000)) - .itemOutputs('#forge:dusts/methylene_diphenyl_diisocyanate') - .outputFluids(Fluid.of('gtceu:methanol', 2000)) - .duration(80) - .EUt(GTValues.VA[GTValues.IV]) - event.recipes.gtceu.mixer('tfg:aes_polyurethane_electric_only') - .itemInputs('2x #tfg:mineral_rich_wool', 'tfg:aes_compressed_wool', '#forge:dusts/methylene_diphenyl_diisocyanate') - .inputFluids(Fluid.of('gtceu:diethylenetriamine', 250), Fluid.of('gtceu:acetone', 1000)) - .itemOutputs('tfg:aes_polyurethane') - .duration(80) - .EUt(GTValues.VA[GTValues.IV]) - - //endregion - - //Aerogel - event.recipes.gtceu.chemical_reactor('tfg:tmos_synthesis') - .inputFluids(Fluid.of('tfg:dimethyl_carbonate', 2000)) - .itemInputs('#forge:dusts/silicon_dioxide') - .notConsumable('#forge:small_dusts/potassium_hydroxide') - .outputFluids(Fluid.of('tfg:tmos', 1000), Fluid.of('gtceu:carbon_dioxide', 2000)) - .duration(100) - .EUt(GTValues.VA[GTValues.IV]) - event.recipes.gtceu.chemical_reactor('tfg:tmos_hydrolysis') - .inputFluids(Fluid.of('tfg:tmos', 1000), Fluid.of('gtceu:distilled_water', 2000)) - .outputFluids(Fluid.of('gtceu:methanol', 4000)) - .itemOutputs('#forge:dusts/silicon_dioxide') - .duration(100) - .EUt(GTValues.VA[GTValues.MV]) - event.recipes.gtceu.large_chemical_reactor('tfg:silica_gel_synthesis') - .inputFluids(Fluid.of('tfg:tmos', 1000), Fluid.of('gtceu:ethanol', 2000), Fluid.of('gtceu:distilled_water', 500), - Fluid.of('gtceu:hydrochloric_acid', 100)) - .outputFluids(Fluid.of('tfg:silica_gel', 1000)) - .duration(300) - .EUt(GTValues.VA[GTValues.IV]) - event.recipes.gtceu.chemical_reactor('tfg:silica_gel_soaking') - .inputFluids(Fluid.of('tfg:silica_gel', 1000), Fluid.of('gtceu:acetone', 2000)) - .outputFluids(Fluid.of('tfg:soaked_silica_gel', 1000)) - .duration(400) - .EUt(GTValues.VA[GTValues.EV]) - event.recipes.gtceu.large_chemical_reactor('tfg:silica_aerogel') - .inputFluids(Fluid.of('tfg:soaked_silica_gel', 1000), Fluid.of('gtceu:liquid_carbon_dioxide', 3000)) - .outputFluids(Fluid.of('gtceu:carbon_dioxide', 3000), Fluid.of('gtceu:acetone', 1000)) - .itemOutputs('tfg:silica_aerogel') - .duration(400) - .EUt(GTValues.VA[GTValues.IV]) - //endregion - - //Tier 3 insulation - event.recipes.gtceu.forming_press('tfg:mli_shielding') - .itemInputs('4x #forge:plates/ammonia_borane', '2x tfg:aes_polyurethane', '4x gtceu:carbon_fiber_plate') - .itemOutputs('tfg:mli_shielding') - .duration(100) - .EUt(GTValues.VA[GTValues.IV]) - //endregion - - //#region Universal compost - - //Greens - // Lows via crafting with mortar - event.shaped(Item.of('tfg:universal_compost_greens', 1), [ - 'AB' - ], { - A: '#tfc:compost_greens_low', - B: '#forge:tools/mortars' - }).id('tfg:shaped/universal_compost_greens_from_low') - - // Mediums via crafting with mortar - event.shaped(Item.of('tfg:universal_compost_greens', 2), [ - 'AB' - ], { - A: '#tfc:compost_greens', - B: '#forge:tools/mortars' - }).id('tfg:shaped/universal_compost_greens_from_medium') - - // Highs via crafting with mortar - event.shaped(Item.of('tfg:universal_compost_greens', 4), [ - 'AB' - ], { - A: '#tfc:compost_greens_high', - B: '#forge:tools/mortars' - }).id('tfg:shaped/universal_compost_greens_from_high') - - // Filters - const greens_low = Ingredient.of('#tfc:compost_greens_low') - const browns_low = Ingredient.of('#tfc:compost_browns_low').itemIds - const greens_medium = Ingredient.of('#tfc:compost_greens') - const browns_medium = Ingredient.of('#tfc:compost_browns').itemIds - const greens_high = Ingredient.of('#tfc:compost_greens_high') - const browns_high = Ingredient.of('#tfc:compost_browns_high').itemIds - - let low_filtered = greens_low - let medium_filtered = greens_medium - let high_filtered = greens_high - - browns_low.forEach(item => { - low_filtered = low_filtered.subtract(item) - low_filtered = low_filtered.subtract('tfg:universal_compost_greens') - }) - browns_medium.forEach(item => { - medium_filtered = medium_filtered.subtract(item) - }) - browns_high.forEach(item => { - high_filtered = high_filtered.subtract(item) - }) - - // Lows via forge hammer - event.recipes.gtceu.forge_hammer('tfg:universal_compost_greens_low') - .itemInputs(low_filtered) - .itemOutputs('tfg:universal_compost_greens') - .duration(20) - .EUt(8) - - // Mediums via forge hammer - event.recipes.gtceu.forge_hammer('tfg:universal_compost_greens_medium') - .itemInputs(medium_filtered) - .itemOutputs(Item.of('tfg:universal_compost_greens', 2)) - .duration(20) - .EUt(8) - - // Highs via forge hammer - event.recipes.gtceu.forge_hammer('tfg:universal_compost_greens_high') - .itemInputs(high_filtered) - .itemOutputs(Item.of('tfg:universal_compost_greens', 4)) - .duration(20) - .EUt(8) - - //Browns - // Lows via crafting with mortar - event.shaped(Item.of('tfg:universal_compost_browns', 1), [ - 'A', - 'B' - ], { - A: '#tfc:compost_browns_low', - B: '#forge:tools/mortars' - }).id('tfg:shaped/universal_compost_browns_from_low') - - // Mediums via crafting with mortar - event.shaped(Item.of('tfg:universal_compost_browns', 2), [ - 'A', - 'B' - ], { - A: '#tfc:compost_browns', - B: '#forge:tools/mortars' - }).id('tfg:shaped/universal_compost_browns_from_medium') - - // Highs via crafting with mortar - event.shaped(Item.of('tfg:universal_compost_browns', 4), [ - 'A', - 'B' - ], { - A: '#tfc:compost_browns_high', - B: '#forge:tools/mortars' - }).id('tfg:shaped/universal_compost_browns_from_high') - - // Lows via forge hammer - event.recipes.gtceu.forge_hammer('tfg:universal_compost_browns_low') - .itemInputs('#tfc:compost_browns_low') - .itemOutputs('tfg:universal_compost_browns') - .duration(20) - .EUt(8) - - // Mediums via forge hammer - event.recipes.gtceu.forge_hammer('tfg:universal_compost_browns_medium') - .itemInputs('#tfc:compost_browns') - .itemOutputs(Item.of('tfg:universal_compost_browns', 2)) - .duration(20) - .EUt(8) - - // Highs via forge hammer - event.recipes.gtceu.forge_hammer('tfg:universal_compost_browns_high') - .itemInputs('#tfc:compost_browns_high') - .itemOutputs(Item.of('tfg:universal_compost_browns', 4)) - .duration(20) - .EUt(8) - - //#endregion - // Etching Tip event.recipes.tfc.damage_inputs_shapeless_crafting(event.recipes.minecraft.crafting_shapeless('tfg:etching_diamond_tip', [ '#forge:tools/hammers', @@ -1288,220 +81,7 @@ function registerTFGMiscellaneousRecipes(event) { event.replaceInput({ id: "minecraft:jukebox" }, 'minecraft:diamond', 'tfg:etching_diamond_tip'); - //Large Nest - event.shaped('tfg:large_nest_box', - [ - 'B B', - 'ABA', - 'AAA' - ], { - A: 'beneath:crimson_thatch', - B: 'beneath:crimson_straw' - }).id('tfg:shaped_large_nest_crimson') - - event.shaped('tfg:large_nest_box_warped', - [ - 'B B', - 'ABA', - 'AAA' - ], { - A: 'beneath:warped_thatch', - B: 'beneath:warped_straw' - }).id('tfg:shaped_large_nest_warped') - - //#endregion - - //#region flax stuff - - event.shapeless('1x tfg:flax_bundle', ['9x tfg:flax_product']) - event.recipes.gtceu.packer('tfg:packer/flax_bundle') - .itemInputs('9x tfg:flax_product') - .itemOutputs('tfg:flax_bundle') - .duration('100') - .EUt(GTValues.VA[GTValues.ULV]) - - event.shapeless('1x tfg:bundled_scraped_flax', ['9x tfg:flax_waste']) - event.recipes.gtceu.packer('tfg:packer/bundled_scraped_flax') - .itemInputs('9x tfg:flax_waste') - .itemOutputs('tfg:bundled_scraped_flax') - .duration('100') - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.tfc.scraping( - 'tfg:flax_waste', - 'tfg:flax_product', - 'tfg:item/flax_waste', - 'tfg:item/flax_product', - '2x tfg:flax_line' - ).id('tfg:scraping/flax_line') - - event.recipes.tfc.scraping( - 'tfg:bundled_scraped_flax', - 'tfg:flax_bundle', - 'tfg:item/bundled_scraped_flax', - 'tfg:item/flax_bundle', - '18x tfg:flax_line' - ).id('tfg:scraping/flax_line_from_bundle') - - event.recipes.tfc.scraping( - 'tfc:groundcover/humus', - 'tfg:flax_waste', - 'tfc:item/groundcover/humus', - 'tfg:item/flax_waste', - 'tfg:flax_tow' - ).id('tfg:scraping/flax_tow') - - event.recipes.tfc.scraping( - '9x tfc:groundcover/humus', - 'tfg:bundled_scraped_flax', - 'tfc:item/groundcover/humus', - 'tfg:item/bundled_scraped_flax', - '9x tfg:flax_tow' - ).id('tfg:scraping/flax_tow_from_pile') - - event.recipes.gtceu.cutter('tfg:flax_line_in_cutter') - .itemInputs('tfg:flax_product') - .itemOutputs('2x tfg:flax_line', 'tfg:flax_waste') - .duration(60) - .EUt(2) - - event.recipes.gtceu.cutter('tfg:flax_line_from_bundle_in_cutter') - .itemInputs('tfg:flax_bundle') - .itemOutputs('18x tfg:flax_line', 'tfg:bundled_scraped_flax') - .duration(540) - .EUt(2) - - event.recipes.gtceu.cutter('tfg:flax_tow_in_cutter') - .itemInputs('tfg:flax_waste') - .itemOutputs('1x tfg:flax_tow', '1x tfc:groundcover/humus') - .duration(60) - .EUt(2) - - event.recipes.gtceu.cutter('tfg:flax_tow_from_bundle_in_cutter') - .itemInputs('tfg:bundled_scraped_flax') - .itemOutputs('9x tfg:flax_tow', '9x tfc:groundcover/humus') - .duration(540) - .EUt(2) - - event.recipes.gtceu.centrifuge('tfg:flax_product') - .itemInputs('tfg:flax_product') - .itemOutputs('2x tfg:flax_line', 'tfg:flax_tow', 'tfc:groundcover/humus') - .duration(200) - .EUt(GTValues.VA[GTValues.LV]) - - event.recipes.gtceu.centrifuge('tfg:flax_product_from_bundle') - .itemInputs('tfg:flax_bundle') - .itemOutputs('18x tfg:flax_line', '9x tfg:flax_tow', '9x tfc:groundcover/humus') - .duration(1800) - .EUt(GTValues.VA[GTValues.LV]) - - event.custom({ - type: 'vintageimprovements:centrifugation', - ingredients: [{ item: 'tfg:flax_product' }], - results: [{ item: 'tfg:flax_line', count: 2 }, { item: 'tfg:flax_tow' }, { item: 'tfc:groundcover/humus' }], - processingTime: 40 * 10 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER - }).id('tfg:vi_seperate_flax') - - event.custom({ - type: 'vintageimprovements:centrifugation', - ingredients: [{ item: 'tfg:flax_bundle' }], - results: [{ item: 'tfg:flax_line', count: 18 }, { item: 'tfg:flax_tow', count: 9 }, { item: 'tfc:groundcover/humus', count: 9 }], - processingTime: 360 * 90 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER - }).id('tfg:vi_seperate_flax_from_bundle') - - //#region flax line spining - event.recipes.tfc.damage_inputs_shapeless_crafting( - event.shapeless('4x tfg:linen_thread', [ - 'tfg:flax_line', - 'tfc:spindle' - ]).id('tfg:shapeless/linen_thread') - ) - - event.custom({ - type: 'vintageimprovements:coiling', - ingredients: [{ item: 'tfg:flax_line' }], - results: [{ item: 'tfg:linen_thread', count: 4 }], - processingTime: 2 * 10 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER - }).id('tfg:vi_spin_flax_line') - - event.recipes.gtceu.wiremill('tfg:spin_flax_line') - .itemInputs('tfg:flax_line') - .itemOutputs('4x tfg:linen_thread') - .duration(80) - .EUt(GTValues.VA[GTValues.LV]) - - //#region flax looming - event.recipes.tfc.loom( - '1x tfg:linen_cloth', - '16x tfg:linen_thread', - 8, - 'tfc:block/burlap' - ) - - event.recipes.tfc.loom( - '1x tfc:burlap_cloth', - '16x tfg:flax_tow', - 12, - 'tfc:block/burlap' - ) - - event.recipes.gtceu.assembler('tfg:assembler/linen_cloth') - .itemInputs('16x tfg:linen_thread') - .circuit(10) - .itemOutputs('tfg:linen_cloth') - .duration(100) - .EUt(4) - - event.recipes.gtceu.assembler('tfg:assembler/flax_burlap') - .itemInputs('16x tfg:flax_tow') - .circuit(10) - .itemOutputs('tfc:burlap_cloth') - .duration(100) - .EUt(4) - - - - event.recipes.gtceu.assembler('tfg:titanium_concrete') - .itemInputs('2x #forge:rods/titanium', '#forge:dusts/kaolinite') - .inputFluids(Fluid.of('gtceu:concrete', 144 * 1.5)) - .itemOutputs('tfg:titanium_concrete') - .circuit(2) - .duration(20) - .EUt(GTValues.VH[GTValues.EV]) - - event.recipes.gtceu.laser_engraver('tfg:titanium_concrete_bricks') - .itemInputs('tfg:polished_titanium_concrete') - .notConsumable('#forge:lenses/light_blue') - .itemOutputs('tfg:titanium_concrete_bricks') - .duration(20 * (2.5)) - .EUt(GTValues.VA[GTValues.LV]) - event.recipes.gtceu.laser_engraver('tfg:titanium_concrete_bricks_small') - .itemInputs('tfg:polished_titanium_concrete') - .notConsumable('#forge:lenses/pink') - .itemOutputs('tfg:titanium_concrete_bricks_small') - .duration(20 * (2.5)) - .EUt(GTValues.VA[GTValues.LV]) - event.recipes.gtceu.laser_engraver('tfg:titanium_concrete_bricks_square') - .itemInputs('tfg:polished_titanium_concrete') - .notConsumable('#forge:lenses/green') - .itemOutputs('tfg:titanium_concrete_bricks_square') - .duration(20 * (2.5)) - .EUt(GTValues.VA[GTValues.LV]) - event.recipes.gtceu.laser_engraver('tfg:titanium_concrete_tile') - .itemInputs('tfg:polished_titanium_concrete') - .notConsumable('#forge:lenses/red') - .itemOutputs('tfg:titanium_concrete_tile') - .duration(20 * (2.5)) - .EUt(GTValues.VA[GTValues.LV]) - event.recipes.gtceu.laser_engraver('tfg:titanium_concrete_tile_small') - .itemInputs('tfg:polished_titanium_concrete') - .notConsumable('#forge:lenses/black') - .itemOutputs('tfg:titanium_concrete_tile_small') - .duration(20 * (2.5)) - .EUt(GTValues.VA[GTValues.LV]) - // Interplanetary ae2 card - event.recipes.gtceu.assembler('tfg:wireless_card') .itemInputs( 'ae2:advanced_card', @@ -1515,26 +95,45 @@ function registerTFGMiscellaneousRecipes(event) { .itemOutputs('tfg:wireless_card') .duration(300) .EUt(GTValues.VA[GTValues.EV]) - + + // Replace bronze drums & crates with a tag containing the 3 different bronzes + // NOTE: A better way to do this would be to overwrite GTCraftingComponents.CRATE and GTCraftingComponents.DRUM in crafting_components.js, but tags seem to get populated after the recipes get registed, so... + event.replaceInput({ input: 'gtceu:bronze_crate' }, 'gtceu:bronze_crate', '#tfg:any_bronze_crate') + event.replaceInput({ input: 'gtceu:bronze_drum' }, 'gtceu:bronze_drum', '#tfg:any_bronze_drum') + //#region RNR Paving Cart const rubber_types = [ - {fluid:'styrene_butadiene_rubber', quantity: 144}, - {fluid:'silicone_rubber', quantity: 288}, - {fluid:'rubber', quantity: 576} + { fluid: 'styrene_butadiene_rubber', quantity: 144 }, + { fluid: 'silicone_rubber', quantity: 288 }, + { fluid: 'rubber', quantity: 576 } ]; rubber_types.forEach((rubber) => { event.recipes.gtceu.assembler(`tfg:cobalt_brass_wheel/${rubber.fluid}`) .itemInputs( - ChemicalHelper.get(TagPrefix.rod, GTMaterials.CobaltBrass, 9), - Ingredient.of('firmaciv:rope_coil').withCount(2), + ChemicalHelper.get(TagPrefix.rod, GTMaterials.CobaltBrass, 8), + Ingredient.of('firmaciv:rope_coil'), Ingredient.of('#forge:screws/any_bronze').withCount(4) ) .inputFluids(Fluid.of(`gtceu:${rubber.fluid}`, rubber.quantity)) .itemOutputs('tfg:cobalt_brass_wheel') - .duration(20*10) + .duration(20 * 10) .EUt(GTValues.VA[GTValues.LV]) }); - TFGHelpers.registerMaterialInfo('tfg:cobalt_brass_wheel', { 'rubber': 1, 'cobalt_brass': 4}); + TFGHelpers.registerMaterialInfo('tfg:cobalt_brass_wheel', { 'rubber': 1, 'cobalt_brass': 4 }); + + event.recipes.create.mechanical_crafting('tfg:cobalt_brass_wheel', [ + ' D ', + 'CAAAC', + 'DABAD', + 'CAAAC', + ' D ' + + ], { + A: '#forge:rods/cobalt_brass', + B: 'firmaciv:rope_coil', + C: '#forge:screws/any_bronze', + D: '#forge:plates/rubber' + }).id('tfg:mechanical_crafter/cobalt_brass_wheel') const mattock_types = ['red', 'blue']; mattock_types.forEach((type) => { @@ -1549,9 +148,25 @@ function registerTFGMiscellaneousRecipes(event) { Ingredient.of(`#forge:mattock_heads/${type}_steel`).withCount(3) ) .itemOutputs('tfg:rnr_plow') - .duration(20*60) + .duration(20 * 60) .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.create.mechanical_crafting('tfg:rnr_plow', [ + ' B B ', + 'ECACE', + 'DCFCD', + ' GGG ' + ], { + A: '#forge:rods/long/cobalt_brass', + B: '#forge:rods/long/treated_wood', + C: '#forge:plates/invar', + D: '#forge:springs/steel', + E: 'tfg:cobalt_brass_wheel', + F: 'create:chute', + G: `#forge:mattock_heads/${type}_steel` + }).id(`tfg:mechanical_crafter/rnr_plow/${type}_steel`) }); - TFGHelpers.registerMaterialInfo('tfg:rnr_plow', {'cobalt_brass': 5, 'invar': 2, 'steel': 2, 'wrought_iron': 2, 'rubber': 1, 'treated_wood': 1}); + TFGHelpers.registerMaterialInfo('tfg:rnr_plow', { 'cobalt_brass': 9, 'invar': 4, 'steel': 2, 'wrought_iron': 3, 'treated_wood': 2 }); + //#endregion } diff --git a/kubejs/server_scripts/tfg/recipes.space.js b/kubejs/server_scripts/tfg/recipes.space.js deleted file mode 100644 index 17fb6edab..000000000 --- a/kubejs/server_scripts/tfg/recipes.space.js +++ /dev/null @@ -1,457 +0,0 @@ -// priority: 0 -"use strict"; - -/** - * @param {Internal.RecipesEventJS} event - */ -function registerTFGSpaceRecipes(event) { - - const allowedCombustibleDims = [ - { - dimension: "minecraft:the_nether", - type: "dimension" - }, - { - dimension: "minecraft:overworld", - type: "dimension" - } - ] - - event.findRecipes({ type: "gtceu:large_boiler" }).forEach(recipe => { - recipe.json.add("recipeConditions", allowedCombustibleDims) - }) - event.findRecipes({ type: "gtceu:steam_boiler" }).forEach(recipe => { - recipe.json.add("recipeConditions", allowedCombustibleDims) - }) - event.findRecipes({ type: "gtceu:combustion_generator" }).forEach(recipe => { - recipe.json.add("recipeConditions", allowedCombustibleDims) - }) - event.findRecipes({ type: "gtceu:gas_turbine" }).forEach(recipe => { - recipe.json.add("recipeConditions", allowedCombustibleDims) - }) - - // Air collector - - event.recipes.gtceu.gas_collector('tfg:nether') - .circuit(2) - .outputFluids(Fluid.of('gtceu:air', 10000)) - .dimension('minecraft:the_nether') - .duration(200) - .EUt(16) - - event.recipes.gtceu.gas_collector('tfg:moon') - .circuit(3) - .outputFluids(Fluid.of('gtceu:argon', 1)) - .dimension('ad_astra:moon') - .duration(20*60*30) - .EUt(16) - - event.recipes.gtceu.gas_collector('tfg:mars') - .circuit(4) - .outputFluids(Fluid.of('tfg:mars_air', 10000)) - .dimension('ad_astra:mars') - .duration(20*10) - .EUt(16) - - event.recipes.gtceu.vacuum_freezer('tfg:liquid_mars_air') - .inputFluids(Fluid.of('tfg:mars_air', 4000)) - .outputFluids(Fluid.of('tfg:liquid_mars_air', 4000)) - .duration(80) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.centrifuge('tfg:centrifuge_mars_air') - .inputFluids(Fluid.of('tfg:mars_air', 10000)) - .outputFluids(Fluid.of('gtceu:carbon_dioxide', 3900), Fluid.of('gtceu:nitrogen', 1000), Fluid.of('gtceu:argon', 500)) - .duration(1600) - .EUt(GTValues.VA[GTValues.MV]) - - // TODO: move neon and xenon somewhere else - event.recipes.gtceu.distillation_tower('tfg:distill_liquid_mars_air') - .inputFluids(Fluid.of('tfg:liquid_mars_air', 100000)) - .outputFluids(Fluid.of('gtceu:carbon_dioxide', 80000)) - .outputFluids(Fluid.of('gtceu:nitrogen', 7000)) - .outputFluids(Fluid.of('gtceu:argon', 5000)) - .outputFluids(Fluid.of('gtceu:oxygen', 3000)) - .outputFluids(Fluid.of('gtceu:krypton', 1000)) - .outputFluids(Fluid.of('gtceu:neon', 1000)) - .outputFluids(Fluid.of('gtceu:xenon', 1000)) - .chancedOutput('gtceu:ammonium_chloride_dust', 2250, 0) - .disableDistilleryRecipes(true) - .duration(2000) - .EUt(GTValues.VA[GTValues.EV]) - - // Aqueous accumulator -- use adjacentFluids (plural) to avoid rhino ambiguous method issues - - let aaCircuit = 1; - - event.recipes.gtceu.aqueous_accumulator('water') - .circuit(aaCircuit++) - .duration(20) - .EUt(GTValues.VHA[GTValues.ULV]) - .adjacentFluids(["minecraft:water"]) - .outputFluids(Fluid.of("minecraft:water", 1000)) - - event.recipes.gtceu.aqueous_accumulator('sea_water') - .circuit(aaCircuit++) - .duration(20) - .EUt(GTValues.VA[GTValues.ULV]) - .adjacentFluids(["tfc:salt_water"]) - .outputFluids(Fluid.of("tfc:salt_water", 1000)) - - event.recipes.gtceu.aqueous_accumulator('semiheavy_water_mars') - .circuit(aaCircuit++) - .dimension('ad_astra:mars') - .duration(20) - .EUt(GTValues.VHA[GTValues.ULV]) - .adjacentFluids(["tfg:semiheavy_ammoniacal_water"]) - .outputFluids(Fluid.of("tfg:semiheavy_ammoniacal_water", 1000)) - - event.recipes.gtceu.aqueous_accumulator('lava_overworld') - .circuit(aaCircuit++) - .dimension('minecraft:overworld') - .duration(20*15) - .EUt(GTValues.VHA[GTValues.HV]) - .adjacentFluids(["minecraft:lava"]) - .outputFluids(Fluid.of("minecraft:lava", 1000)) - - event.recipes.gtceu.aqueous_accumulator('lava_nether') - .circuit(aaCircuit++) - .dimension('minecraft:the_nether') - .duration(20*15) - .EUt(GTValues.VHA[GTValues.HV]) - .adjacentFluids(["minecraft:lava"]) - .outputFluids(Fluid.of("minecraft:lava", 1000)) - - event.recipes.gtceu.aqueous_accumulator('spring_water') - .circuit(aaCircuit++) - .dimension('minecraft:overworld') - .duration(20) - .EUt(GTValues.VA[GTValues.LV]) - .adjacentFluids(["tfc:spring_water"]) - .outputFluids(Fluid.of("tfc:spring_water", 1000)) - - event.recipes.gtceu.aqueous_accumulator('more_water') - .circuit(aaCircuit++) - .duration(10) - .EUt(GTValues.VHA[GTValues.HV]) - .adjacentFluids(["minecraft:water"]) - .outputFluids(Fluid.of("minecraft:water", 16000)) - - - // Plants - Can't use the default builder here because fertiliser is much harder to get on the moon, - // and we're using helium-3 as the fertiliser - - // Chorus - event.recipes.gtceu.greenhouse('tfg:chorus') - .notConsumable('8x tfg:lunar_chorus_flower') - .itemOutputs('64x minecraft:chorus_fruit') - .chancedOutput('8x tfg:lunar_chorus_flower', 750, 0) - .chancedOutput('8x tfg:lunar_chorus_flower', 500, 0) - .chancedOutput('8x tfg:lunar_chorus_flower', 750, 0) - .duration(36000) // 30 mins - .circuit(1) - .EUt(GTValues.VA[GTValues.MV]) - .dimension('ad_astra:moon') - - event.recipes.gtceu.greenhouse('tfg:chorus_helium') - .notConsumable('8x tfg:lunar_chorus_flower') - .inputFluids(Fluid.of('gtceu:helium_3', 2000)) - .itemOutputs('64x minecraft:chorus_fruit') - .chancedOutput('8x tfg:lunar_chorus_flower', 4000, 0) - .chancedOutput('8x tfg:lunar_chorus_flower', 3000, 0) - .chancedOutput('8x tfg:lunar_chorus_flower', 4000, 0) - .duration(12000) // 10 mins - .circuit(2) - .EUt(GTValues.VA[GTValues.MV]) - .dimension('ad_astra:moon') - - // Replace the built-in greg one to add a circuit - event.recipes.gtceu.fermenter('fermented_biomass') - .inputFluids(Fluid.of('gtceu:biomass', 100)) - .outputFluids(Fluid.of('gtceu:fermented_biomass', 100)) - .circuit(1) - .duration(150) - .EUt(2) - - event.recipes.gtceu.fermenter('tfg:chorus') - .itemInputs('minecraft:chorus_fruit') - .inputFluids(Fluid.of('gtceu:biomass', 20)) - .chancedOutput('ae2:ender_dust', 100, 0) - .outputFluids(Fluid.of('gtceu:nitrogen', 1000)) - .circuit(2) - .duration(5 * 20) - .EUt(GTValues.VA[GTValues.MV]) - .dimension('ad_astra:moon') - - event.recipes.gtceu.fermenter('tfg:chorus_flower') - .itemInputs('tfg:lunar_chorus_flower') - .inputFluids(Fluid.of('gtceu:biomass', 20)) - .chancedOutput('ae2:ender_dust', 100, 0) - .outputFluids(Fluid.of('gtceu:nitrogen', 1000)) - .circuit(2) - .duration(5 * 20) - .EUt(GTValues.VA[GTValues.MV]) - .dimension('ad_astra:moon') - - event.recipes.gtceu.mixer('tfg:bio_glowstone') - .itemInputs('betterend:cave_pumpkin_chunks', '4x species:alphacene_mushroom_block') - .outputFluids(Fluid.of('gtceu:biomass', 100)) - .itemOutputs('2x minecraft:glowstone_dust') - .duration(5 * 20) - .EUt(GTValues.VA[GTValues.EV]) - .dimension('ad_astra:mars') - - // Lightblooms - event.recipes.gtceu.greenhouse('tfg:lightbloom') - .notConsumable('8x minecraft:twisting_vines') - .itemOutputs('16x minecraft:twisting_vines') - .chancedOutput('minecraft:pearlescent_froglight', 2500, 0) - .chancedOutput('minecraft:verdant_froglight', 2500, 0) - .chancedOutput('minecraft:ochre_froglight', 2500, 0) - .duration(36000) // 30 mins - .circuit(1) - .EUt(GTValues.VA[GTValues.LV]) - .dimension('ad_astra:moon') - - event.recipes.gtceu.greenhouse('tfg:lightbloom_helium') - .notConsumable('8x minecraft:twisting_vines') - .inputFluids(Fluid.of('gtceu:helium_3', 2000)) - .itemOutputs('16x minecraft:twisting_vines') - .chancedOutput('minecraft:pearlescent_froglight', 3500, 0) - .chancedOutput('minecraft:verdant_froglight', 3500, 0) - .chancedOutput('minecraft:ochre_froglight', 3500, 0) - .duration(12000) // 30 mins - .circuit(2) - .EUt(GTValues.VA[GTValues.LV]) - .dimension('ad_astra:moon') - - event.recipes.gtceu.brewery('biomass_from_twisting_vines') - .itemInputs('minecraft:twisting_vines') - .inputFluids("#tfg:clean_water 20") - .outputFluids(Fluid.of('gtceu:biomass', 20)) - .duration(50) - .EUt(3) - - // Space suit gases - - event.recipes.gtceu.gas_pressurizer('compressed_nitrox') - .inputFluids(Fluid.of('gtceu:nitrogen', 8000), Fluid.of('gtceu:oxygen', 2000)) - .outputFluids(Fluid.of('tfg:compressed_nitrox', 1000)) - .circuit(1) - .duration(100) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.gas_pressurizer('compressed_heliox') - .inputFluids(Fluid.of('gtceu:helium', 8000), Fluid.of('gtceu:oxygen', 2000)) - .outputFluids(Fluid.of('tfg:compressed_heliox', 1000)) - .circuit(1) - .duration(100) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.gas_pressurizer('compressed_heliox_3') - .inputFluids(Fluid.of('gtceu:helium_3', 8000), Fluid.of('gtceu:oxygen', 2000)) - .outputFluids(Fluid.of('tfg:compressed_heliox_3', 1000)) - .circuit(1) - .duration(100) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.gas_pressurizer('compressed_trimix') - .inputFluids(Fluid.of('gtceu:nitrogen', 5000), Fluid.of('gtceu:oxygen', 3000), Fluid.of('gtceu:helium', 2000)) - .outputFluids(Fluid.of('tfg:compressed_trimix', 1000)) - .circuit(2) - .duration(100) - .EUt(GTValues.VA[GTValues.HV]) - - event.recipes.gtceu.gas_pressurizer('compressed_trimix_3') - .inputFluids(Fluid.of('gtceu:nitrogen', 5000), Fluid.of('gtceu:oxygen', 3000), Fluid.of('gtceu:helium_3', 2000)) - .outputFluids(Fluid.of('tfg:compressed_trimix_3', 1000)) - .circuit(2) - .duration(100) - .EUt(GTValues.VA[GTValues.HV]) - - //Cryo Fluix Pearl - event.recipes.gtceu.autoclave('tfg:cryo_fluix_pearl') - .inputFluids(Fluid.of('tfg:cryogenized_fluix', 576)) - .itemInputs('tfg:vitrified_pearl') - .itemOutputs('tfg:cryo_fluix_pearl') - .duration(300) - .EUt(GTValues.VA[GTValues.EV]) - .cleanroom(CleanroomType.CLEANROOM) - - // Railgun stuff - // (the railgun inputs and outputs are in tfg-core) - - - //item bus to railgun item bus conversion recipes - const GTTiers = ['ulv', 'lv', 'mv', 'hv', 'ev', 'iv', 'luv', 'zpm', 'uv', 'uhv'] - GTTiers.forEach(x => { - event.recipes.gtceu.assembler(`tfg:${x}_input_to_${x}_railgun_input_assembler`) - .itemInputs(`gtceu:${x}_input_bus`) - .circuit(4) - .itemOutputs(`tfg:${x}_railgun_item_loader_in`) - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.LV]) - - event.recipes.gtceu.assembler(`tfg:${x}_output_to_${x}_railgun_output_assembler`) - .itemInputs(`gtceu:${x}_output_bus`) - .circuit(4) - .itemOutputs(`tfg:${x}_railgun_item_loader_out`) - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.LV]) - }) - - //Railgun ammo - event.recipes.gtceu.assembler('tfg:railgun_ammo_basic') - .itemInputs('#forge:double_plates/steel', '2x #forge:rods/magnetic_iron', '2x #forge:fine_wires/annealed_copper') - .inputFluids('gtceu:rocket_fuel 250') - .itemOutputs('tfg:railgun_ammo_shell') - .duration(20 * 10) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.assembler('tfg:railgun_ammo_advanced') - .itemInputs('#forge:double_plates/titanium', '2x #forge:rods/magnetic_steel', '2x #forge:fine_wires/gold') - .inputFluids('gtceu:rocket_fuel 250') - .itemOutputs('4x tfg:railgun_ammo_shell') - .duration(20 * 10) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.assembler('tfg:railgun_ammo_best') - .itemInputs('#forge:double_plates/tungsten', '2x #forge:rods/magnetic_neodymium', '2x #forge:fine_wires/aluminium') - .inputFluids('gtceu:rocket_fuel 250') - .itemOutputs('8x tfg:railgun_ammo_shell') - .duration(20 * 10) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.assembler('tfg:railgun_ammo_moon') - .itemInputs('#forge:double_plates/steel', '2x ae2:charged_certus_quartz_crystal', '2x ae2:quartz_fiber') - .inputFluids('gtceu:rocket_fuel 250') - .itemOutputs('4x tfg:railgun_ammo_shell') - .dimension('ad_astra:moon') - .duration(20 * 10) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.assembler('tfg:railgun_ammo_mars') - .itemInputs('#forge:double_plates/lead', '2x #forge:rods/ostrum', '2x #forge:fine_wires/silver') - .inputFluids('gtceu:rocket_fuel 250') - .itemOutputs('8x tfg:railgun_ammo_shell') - .dimension('ad_astra:mars') - .duration(20 * 10) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.shaped('tfg:railgun_ammo_loader', [ - 'RMR', - 'MBM', - 'CCC' - ], { - B: 'gtceu:mv_input_bus', - R: 'gtceu:mv_robot_arm', - M: 'gtceu:mv_electric_motor', - C: '#forge:single_cables/annealed_copper' - }).addMaterialInfo().id('tfg:shaped/railgun_ammo_loader') - - event.recipes.gtceu.shaped('tfg:interplanetary_logistics_monitor', [ - 'CDC', - 'SHE', - 'WCW' - ], { - C: '#gtceu:circuits/hv', - D: 'gtceu:computer_monitor_cover', - S: 'gtceu:hv_sensor', - H: 'gtceu:hv_machine_hull', - E: 'gtceu:hv_emitter', - W: '#forge:single_cables/silver' - }).addMaterialInfo().id('tfg:shaped/interplanetary_logistics_monitor') - - event.recipes.gtceu.shaped('tfg:interplanetary_item_launcher', [ - 'NSN', - 'CHC', - 'NEN' - ], { - C: '#gtceu:circuits/ev', - S: 'gtceu:hv_sensor', - E: 'gtceu:hv_emitter', - H: 'gtceu:ev_machine_hull', - N: '#forge:plates/hsla_steel' - }).addMaterialInfo().id('tfg:shaped/interplanetary_item_launcher') - - event.recipes.gtceu.shaped('tfg:interplanetary_item_receiver', [ - 'CSC', - 'WHW', - 'CSC' - ], { - C: '#gtceu:circuits/mv', - S: 'gtceu:mv_sensor', - W: '#forge:double_cables/copper', - H: 'gtceu:mv_machine_hull' - }).addMaterialInfo().id('tfg:shaped/interplanetary_item_receiver') - - // Mars tree tapping - - event.recipes.gtceu.autoclave('tfg:crimsene') - .inputFluids(Fluid.of('tfg:crimsene', 144), Fluid.of('gtceu:liquid_carbon_dioxide', 1000)) - .outputFluids(Fluid.of('gtceu:carbon_monoxide', 1000)) - .itemOutputs('#forge:gems/crimsene') - .duration(20 * 30) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.autoclave('tfg:warpane') - .inputFluids(Fluid.of('tfg:warpane', 144), Fluid.of('gtceu:liquid_carbon_dioxide', 1000)) - .outputFluids(Fluid.of('gtceu:hydrogen', 1000)) - .itemOutputs('#forge:gems/warpane') - .duration(20 * 30) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.macerator('tfg:crimsene') - .itemInputs('#forge:gems/crimsene') - .itemOutputs('#forge:dusts/crimsene') - .duration(20 * 5) - .EUt(2) - - event.recipes.gtceu.macerator('tfg:warpane') - .itemInputs('#forge:gems/warpane') - .itemOutputs('#forge:dusts/warpane') - .duration(20 * 5) - .EUt(2) - - event.recipes.gtceu.mixer('tfg:mars_sap') - .itemInputs('#forge:dusts/warpane', '#forge:dusts/crimsene') - .inputFluids(Fluid.of('gtceu:hydrochloric_acid', 1000), Fluid.of('gtceu:krypton', 500)) - .itemOutputs('#forge:dusts/mycelienzene') - .duration(30 * 20) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.deafission.fission_reactor_processing('tfg:mars_sap') - .itemInputs('#forge:dusts/mycelienzene') - .outputFluids(Fluid.of('tfg:cooked_mycelienzane', 1000)) - // TODO: change these to something appropriate - .blastFurnaceTemp(100) - .duration(30 * 10) - - event.recipes.gtceu.centrifuge('mars_sap_separation') - .inputFluids(Fluid.of('tfg:cooked_mycelienzane', 2000)) - .outputFluids( - Fluid.of('tfg:iodomethane', 1000), - Fluid.of('tfg:trideuteroiodomethane', 1000), - Fluid.of('gtceu:krypton', 1000), - Fluid.of('gtceu:diluted_hydrochloric_acid', 4000)) - .duration(20 * 20) - .EUt(GTValues.VA[GTValues.EV]) - - event.recipes.gtceu.chemical_reactor('tfg:iodomethane_separation') - .inputFluids( - Fluid.of('tfg:iodomethane', 1000), - Fluid.of('gtceu:hydrogen', 1000)) - .itemOutputs('#forge:dusts/iodine') - .outputFluids(Fluid.of('gtceu:methane', 1000)) - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.MV]) - - event.recipes.gtceu.chemical_reactor('tfg:trideuteroiodomethane_separation') - .inputFluids( - Fluid.of('tfg:trideuteroiodomethane', 1000), - Fluid.of('gtceu:oxygen', 1500)) - .itemOutputs('#forge:dusts/iodine', '#forge:dusts/carbon') - .outputFluids(Fluid.of('tfg:heavy_water', 1500)) - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.MV]) -} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/space_general/recipes.insulation.js b/kubejs/server_scripts/tfg/space_general/recipes.insulation.js new file mode 100644 index 000000000..40bd3062d --- /dev/null +++ b/kubejs/server_scripts/tfg/space_general/recipes.insulation.js @@ -0,0 +1,234 @@ +"use strict"; + +function registerTFGInsulationRecipes(event) { + + //#region Rock-wool stuff + event.recipes.gtceu.mixer('tfg:aes_mix') + .itemInputs('5x gtceu:silicon_dioxide_dust', '4x gtceu:quicklime_dust', 'gtceu:magnesia_dust') + .itemOutputs('10x tfg:aes_mix_dust') + .duration(160) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.electric_blast_furnace('tfg:molten_aes') + .itemInputs('2x tfg:aes_mix_dust') + .outputFluids(Fluid.of('tfg:molten_aes', 1000)) + .chancedOutput('gtceu:ash_dust', 3000, 0) + .circuit(1) + .duration(400) + .blastFurnaceTemp(3000) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.electric_blast_furnace('tfg:molten_aes_he') + .itemInputs('2x tfg:aes_mix_dust') + .inputFluids(Fluid.of('gtceu:helium', 200)) + .outputFluids(Fluid.of('tfg:molten_aes', 1000)) + .circuit(2) + .duration(140) + .blastFurnaceTemp(3000) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.centrifuge('tfg:aes_wool') + .inputFluids(Fluid.of('tfg:molten_aes', 200)) + .itemOutputs('tfg:aes_wool') + .duration(30) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.forming_press('tfg:aes_compressed_wool') + .itemInputs('4x tfg:aes_wool') + .notConsumable('gtceu:ingot_casting_mold') + .itemOutputs('tfg:aes_compressed_wool') + .duration(40) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.chemical_bath('tfg:aes_insulation_sheet') + .itemInputs('tfg:aes_compressed_wool') + .inputFluids(Fluid.of('gtceu:epoxy', 72)) + .circuit(1) + .itemOutputs('tfg:aes_insulation_sheet') + .duration(80) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.chemical_bath('tfg:aes_insulation_roll') + .itemInputs('9x tfg:aes_compressed_wool') + .inputFluids(Fluid.of('gtceu:epoxy', 648)) + .itemOutputs('tfg:aes_insulation_roll') + .circuit(9) + .duration(400) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.assembler('tfg:aes_insulation_roll') + .itemInputs('9x tfg:aes_insulation_sheet') + .itemOutputs('tfg:aes_insulation_roll') + .circuit(0) + .duration(20) + .EUt(GTValues.VA[GTValues.LV]) + + event.shaped('tfg:aes_insulation_roll', [ + 'AAA', + 'AAA', + 'AAA' + ], { + A: 'tfg:aes_insulation_sheet' + }).id('tfg:shaped/aes_insulation_roll') + + event.recipes.gtceu.assembler('tfg:aes_insulation_sheet') + .itemInputs('9x tfg:aes_insulation_sheet') + .itemOutputs('tfg:aes_insulation_roll') + .circuit(0) + .duration(20) + .EUt(GTValues.VA[GTValues.LV]) + + event.shapeless('9x tfg:aes_insulation_sheet', [ + 'tfg:aes_insulation_roll' + ]).id('tfg:shapeless/aes_insulation_sheet') + + event.recipes.gtceu.electric_blast_furnace('tfg:smelt_aes_sheet') + .itemInputs('tfg:aes_insulation_sheet') + .inputFluids(Fluid.of('gtceu:helium', 200)) + .outputFluids(Fluid.of('tfg:molten_aes', 800)) + .chancedOutput('gtceu:ash_dust', 2500, 0) + .circuit(1) + .duration(140) + .blastFurnaceTemp(3000) + .EUt(GTValues.VA[GTValues.EV]) + event.recipes.gtceu.electric_blast_furnace('tfg:smelt_aes_roll') + .itemInputs('tfg:aes_insulation_roll') + .inputFluids(Fluid.of('gtceu:helium', 1000)) + .itemOutputs('2x gtceu:ash_dust') + .outputFluids(Fluid.of('tfg:molten_aes', 7200)) + .circuit(9) + .duration(1000) + .blastFurnaceTemp(3000) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.electric_blast_furnace('tfg:smelt_sniffer_wool') + .itemInputs('tfg:sniffer_wool') + .chancedOutput('gtceu:ash_dust', 7500, 0) + .outputFluids(Fluid.of('tfg:molten_aes', 200)) + .circuit(4) + .duration(80) + .blastFurnaceTemp(3000) + .EUt(GTValues.VA[GTValues.EV]) + event.recipes.gtceu.electric_blast_furnace('tfg:smelt_wraptor_wool') + .itemInputs('tfg:wraptor_wool') + .chancedOutput('gtceu:ash_dust', 5000, 0) + .outputFluids(Fluid.of('tfg:molten_aes', 100)) + .circuit(8) + .duration(60) + .blastFurnaceTemp(3000) + .EUt(GTValues.VA[GTValues.EV]) + // #endregion + + //#region ammonia borane + event.recipes.gtceu.chemical_reactor('tfg:sodium_hydride_synthesis') + .itemInputs('#forge:dusts/sodium') + .inputFluids(Fluid.of('gtceu:hydrogen', 1000)) + .itemOutputs('2x #forge:dusts/sodium_hydride') + .duration(400) + .EUt(GTValues.VA[GTValues.HV]) + event.recipes.gtceu.chemical_reactor('tfg:boric_acid_synthesis') + .itemInputs('23x #forge:dusts/borax') + .inputFluids(Fluid.of('gtceu:hydrochloric_acid', 2000)) + .itemOutputs('28x #forge:dusts/boric_acid', '2x #forge:dusts/salt') + .outputFluids(Fluid.of('minecraft:water', 5000)) + .duration(400) + .EUt(GTValues.VA[GTValues.HV]) + event.recipes.gtceu.chemical_reactor('tfg:trimethyl_borate_synthesis') + .itemInputs('7x #forge:dusts/boric_acid') + .inputFluids(Fluid.of('gtceu:methanol', 3000), Fluid.of('gtceu:sulfuric_acid', 100)) + .outputFluids(Fluid.of('tfg:trimethyl_borate', 1000), Fluid.of('minecraft:water', 3000)) + .duration(300) + .EUt(GTValues.VA[GTValues.EV]) + event.recipes.gtceu.chemical_reactor('tfg:sodium_borohydride_synthesis') + .itemInputs('4x #forge:dusts/sodium_hydride') + .inputFluids(Fluid.of('tfg:trimethyl_borate', 1000)) + .itemOutputs('6x #forge:dusts/sodium_borohydride', '18x #forge:dusts/sodium_methoxide') + .duration(160) + .EUt(GTValues.VA[GTValues.EV]) + event.recipes.gtceu.chemical_reactor('tfg:ammonia_borane_synthesis') + .itemInputs('6x #forge:dusts/sodium_borohydride', '6x #forge:dusts/ammonium_chloride') + .itemOutputs('8x #forge:dusts/ammonia_borane', '2x #forge:dusts/salt') + .outputFluids(Fluid.of('gtceu:hydrogen', 2000)) + .duration(100) + .EUt(GTValues.VA[GTValues.IV]) + //#endregion + + //#region polyurethane + event.recipes.gtceu.chemical_reactor('tfg:aniline_synthesis') + .inputFluids(Fluid.of('gtceu:nitrobenzene', 1000), Fluid.of('gtceu:hydrogen', 6000)) + .notConsumable('#forge:dusts/iron') + .outputFluids(Fluid.of('tfg:aniline', 1000), Fluid.of('minecraft:water', 2000)) + .duration(140) + .EUt(GTValues.VA[GTValues.EV]) + event.recipes.gtceu.chemical_reactor('tfg:dimethyl_carbonate_synthesis') + .inputFluids(Fluid.of('gtceu:carbon_monoxide', 1000), Fluid.of('gtceu:oxygen', 1000), Fluid.of('gtceu:methanol', 2000)) + .outputFluids(Fluid.of('tfg:dimethyl_carbonate', 1000), Fluid.of('minecraft:water', 1000)) + .duration(120) + .circuit(2) + .EUt(GTValues.VA[GTValues.HV]) + event.recipes.gtceu.chemical_reactor('tfg:methyl_phenylcarbamate_synthesis') + .inputFluids(Fluid.of('tfg:aniline', 1000), Fluid.of('tfg:dimethyl_carbonate', 1000)) + .outputFluids(Fluid.of('tfg:methyl_phenylcarbamate', 1000), Fluid.of('gtceu:methanol', 1000)) + .duration(200) + .EUt(GTValues.VA[GTValues.EV]) + event.recipes.gtceu.chemical_reactor('tfg:mpc_synthesis') + .inputFluids(Fluid.of('tfg:methyl_phenylcarbamate', 2000), Fluid.of('gtceu:formaldehyde', 1000)) + .outputFluids(Fluid.of('tfg:methylene_diphenyl_dicarbamate', 1000), Fluid.of('minecraft:water', 1000)) + .duration(200) + .EUt(GTValues.VA[GTValues.EV]) + event.recipes.gtceu.chemical_reactor('tfg:mpi_synthesis') + .inputFluids(Fluid.of('tfg:methylene_diphenyl_dicarbamate', 1000)) + .itemOutputs('27x #forge:dusts/methylene_diphenyl_diisocyanate') + .outputFluids(Fluid.of('gtceu:methanol', 2000)) + .duration(80) + .EUt(GTValues.VA[GTValues.IV]) + event.recipes.gtceu.mixer('tfg:aes_polyurethane_electric_only') + .itemInputs('2x #tfg:mineral_rich_wool', 'tfg:aes_compressed_wool', '27x #forge:dusts/methylene_diphenyl_diisocyanate') + .inputFluids(Fluid.of('gtceu:diethylenetriamine', 250), Fluid.of('gtceu:acetone', 1000)) + .itemOutputs('tfg:aes_polyurethane') + .duration(80) + .EUt(GTValues.VA[GTValues.IV]) + + //#endregion + + //#region Aerogel + event.recipes.gtceu.chemical_reactor('tfg:tmos_synthesis') + .inputFluids(Fluid.of('tfg:dimethyl_carbonate', 2000)) + .itemInputs('3x #forge:dusts/silicon_dioxide') + .notConsumable('#forge:small_dusts/potassium_hydroxide') + .outputFluids(Fluid.of('tfg:tmos', 1000), Fluid.of('gtceu:carbon_dioxide', 2000)) + .duration(100) + .EUt(GTValues.VA[GTValues.IV]) + event.recipes.gtceu.chemical_reactor('tfg:tmos_hydrolysis') + .inputFluids(Fluid.of('tfg:tmos', 1000), Fluid.of('gtceu:distilled_water', 2000)) + .outputFluids(Fluid.of('gtceu:methanol', 4000)) + .itemOutputs('3x #forge:dusts/silicon_dioxide') + .duration(100) + .EUt(GTValues.VA[GTValues.MV]) + event.recipes.gtceu.large_chemical_reactor('tfg:silica_gel_synthesis') + .inputFluids(Fluid.of('tfg:tmos', 1000), Fluid.of('gtceu:ethanol', 2000), Fluid.of('gtceu:distilled_water', 500), + Fluid.of('gtceu:hydrochloric_acid', 100)) + .outputFluids(Fluid.of('tfg:silica_gel', 1000)) + .duration(300) + .EUt(GTValues.VA[GTValues.IV]) + event.recipes.gtceu.chemical_reactor('tfg:silica_gel_soaking') + .inputFluids(Fluid.of('tfg:silica_gel', 1000), Fluid.of('gtceu:acetone', 2000)) + .outputFluids(Fluid.of('tfg:soaked_silica_gel', 1000)) + .duration(400) + .EUt(GTValues.VA[GTValues.EV]) + event.recipes.gtceu.large_chemical_reactor('tfg:silica_aerogel') + .inputFluids(Fluid.of('tfg:soaked_silica_gel', 1000), Fluid.of('gtceu:liquid_carbon_dioxide', 3000)) + .outputFluids(Fluid.of('gtceu:carbon_dioxide', 3000), Fluid.of('gtceu:acetone', 1000)) + .itemOutputs('tfg:silica_aerogel') + .duration(400) + .EUt(GTValues.VA[GTValues.IV]) + //#endregion + + //#region Tier 3 insulation + event.recipes.gtceu.forming_press('tfg:mli_shielding') + .itemInputs('4x #forge:plates/ammonia_borane', '2x tfg:aes_polyurethane', '4x gtceu:carbon_fiber_plate') + .itemOutputs('tfg:mli_shielding') + .duration(100) + .EUt(GTValues.VA[GTValues.IV]) + //#endregion +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/space_general/recipes.railgun.js b/kubejs/server_scripts/tfg/space_general/recipes.railgun.js new file mode 100644 index 000000000..fb532c5bf --- /dev/null +++ b/kubejs/server_scripts/tfg/space_general/recipes.railgun.js @@ -0,0 +1,111 @@ +"use strict"; + +function registerTFGRailgunRecipes(event) { + + // Railgun stuff + // (the railgun inputs and outputs are in tfg-core) + + + //item bus to railgun item bus conversion recipes + const GTTiers = ['ulv', 'lv', 'mv', 'hv', 'ev', 'iv', 'luv', 'zpm', 'uv', 'uhv'] + GTTiers.forEach(x => { + event.recipes.gtceu.assembler(`tfg:${x}_input_to_${x}_railgun_input_assembler`) + .itemInputs(`gtceu:${x}_input_bus`) + .circuit(4) + .itemOutputs(`tfg:${x}_railgun_item_loader_in`) + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.assembler(`tfg:${x}_output_to_${x}_railgun_output_assembler`) + .itemInputs(`gtceu:${x}_output_bus`) + .circuit(4) + .itemOutputs(`tfg:${x}_railgun_item_loader_out`) + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.LV]) + }) + + //Railgun ammo + event.recipes.gtceu.assembler('tfg:railgun_ammo_basic') + .itemInputs('#forge:double_plates/steel', '2x #forge:rods/magnetic_iron', '2x #forge:fine_wires/annealed_copper') + .inputFluids('gtceu:rocket_fuel 250') + .itemOutputs('tfg:railgun_ammo_shell') + .duration(20 * 10) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.assembler('tfg:railgun_ammo_advanced') + .itemInputs('#forge:double_plates/titanium', '2x #forge:rods/magnetic_steel', '2x #forge:fine_wires/gold') + .inputFluids('gtceu:rocket_fuel 250') + .itemOutputs('4x tfg:railgun_ammo_shell') + .duration(20 * 10) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.assembler('tfg:railgun_ammo_best') + .itemInputs('#forge:double_plates/tungsten', '2x #forge:rods/magnetic_neodymium', '2x #forge:fine_wires/aluminium') + .inputFluids('gtceu:rocket_fuel 250') + .itemOutputs('8x tfg:railgun_ammo_shell') + .duration(20 * 10) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.assembler('tfg:railgun_ammo_moon') + .itemInputs('#forge:double_plates/steel', '2x ae2:charged_certus_quartz_crystal', '2x ae2:quartz_fiber') + .inputFluids('gtceu:rocket_fuel 250') + .itemOutputs('4x tfg:railgun_ammo_shell') + .dimension('ad_astra:moon') + .duration(20 * 10) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.assembler('tfg:railgun_ammo_mars') + .itemInputs('#forge:double_plates/lead', '2x #forge:rods/ostrum', '2x #forge:fine_wires/silver') + .inputFluids('gtceu:rocket_fuel 250') + .itemOutputs('8x tfg:railgun_ammo_shell') + .dimension('ad_astra:mars') + .duration(20 * 10) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.shaped('tfg:railgun_ammo_loader', [ + 'RMR', + 'MBM', + 'CCC' + ], { + B: 'gtceu:mv_input_bus', + R: 'gtceu:mv_robot_arm', + M: 'gtceu:mv_electric_motor', + C: '#forge:single_cables/annealed_copper' + }).addMaterialInfo().id('tfg:shaped/railgun_ammo_loader') + + event.recipes.gtceu.shaped('tfg:interplanetary_logistics_monitor', [ + 'CDC', + 'SHE', + 'WCW' + ], { + C: '#gtceu:circuits/hv', + D: 'gtceu:computer_monitor_cover', + S: 'gtceu:hv_sensor', + H: 'gtceu:hv_machine_hull', + E: 'gtceu:hv_emitter', + W: '#forge:single_cables/silver' + }).addMaterialInfo().id('tfg:shaped/interplanetary_logistics_monitor') + + event.recipes.gtceu.shaped('tfg:interplanetary_item_launcher', [ + 'NSN', + 'CHC', + 'NEN' + ], { + C: '#gtceu:circuits/ev', + S: 'gtceu:hv_sensor', + E: 'gtceu:hv_emitter', + H: 'gtceu:ev_machine_hull', + N: '#forge:plates/hsla_steel' + }).addMaterialInfo().id('tfg:shaped/interplanetary_item_launcher') + + event.recipes.gtceu.shaped('tfg:interplanetary_item_receiver', [ + 'CSC', + 'WHW', + 'CSC' + ], { + C: '#gtceu:circuits/mv', + S: 'gtceu:mv_sensor', + W: '#forge:double_cables/copper', + H: 'gtceu:mv_machine_hull' + }).addMaterialInfo().id('tfg:shaped/interplanetary_item_receiver') +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/space_general/recipes.rockets.js b/kubejs/server_scripts/tfg/space_general/recipes.rockets.js new file mode 100644 index 000000000..161eb46af --- /dev/null +++ b/kubejs/server_scripts/tfg/space_general/recipes.rockets.js @@ -0,0 +1,283 @@ +"use strict"; + +function registerTFGRocketRecipes(event) { + + //#region Tier 1 rocket + + event.recipes.gtceu.assembler('tfg:rocket_nose_cone_t1') + .itemInputs( + 'gtceu:hv_emitter', + ChemicalHelper.get(TagPrefix.plateDense, TFGHelpers.getMaterial('rocket_alloy_t1'), 1), + ChemicalHelper.get(TagPrefix.plateDouble, GTMaterials.StainlessSteel, 3)) + .inputFluids(Fluid.of('gtceu:polyethylene', 144 * 16)) + .itemOutputs('ad_astra:rocket_nose_cone') + .duration(1200) + .circuit(2) + .EUt(480) + .addMaterialInfo(true, true) + + + event.recipes.gtceu.pyrolyse_oven('tfg:pyrolyse_vitrified_asbestos_dust') + .inputFluids(Fluid.of('gtceu:nitrogen', 100)) + .itemInputs('gtceu:asbestos_dust') + .itemOutputs('gtceu:vitrified_asbestos_dust') + .duration(80) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.mixer('tfg:rocket_alloy_t1') + .itemInputs('6x #forge:dusts/aluminium', '2x #forge:dusts/stainless_steel') + .inputFluids(Fluid.of('gtceu:red_steel', 144)) + .itemOutputs('9x #forge:dusts/rocket_alloy_t1') + .duration(580) + .circuit(2) + .EUt(480) + + event.recipes.gtceu.chemical_bath('tfg:rocket_alloy_cool_down_water') + .itemInputs('#forge:hot_ingots/rocket_alloy_t1') + .inputFluids(Fluid.of('minecraft:water', 100)) + .itemOutputs('#forge:ingots/rocket_alloy_t1') + .duration(400) + .EUt(120) + + event.recipes.gtceu.chemical_bath('tfg:rocket_alloy_cool_down_distilled_water') + .itemInputs('#forge:hot_ingots/rocket_alloy_t1') + .inputFluids(Fluid.of('gtceu:distilled_water', 100)) + .itemOutputs('#forge:ingots/rocket_alloy_t1') + .duration(250) + .EUt(120) + + event.recipes.gtceu.assembler(`tfg:rocket_fin_t1`) + .itemInputs( + ChemicalHelper.get(TagPrefix.plate, TFGHelpers.getMaterial('rocket_alloy_t1'), 1), + ChemicalHelper.get(TagPrefix.plateDouble, GTMaterials.StainlessSteel, 1) + ) + .itemOutputs('ad_astra:rocket_fin') + .duration(150) + .circuit(2) + .EUt(GTValues.VA[GTValues.HV]) + .addMaterialInfo(true) + + + event.recipes.gtceu.assembler('tfg:rocket_steel_engine') + .itemInputs( + ChemicalHelper.get(TagPrefix.plateDouble, GTMaterials.StainlessSteel, 2), + '2x #gtceu:circuits/hv', + 'gtceu:hv_electric_pump', + '2x gtceu:power_thruster', + ChemicalHelper.get(TagPrefix.rotor, GTMaterials.StainlessSteel, 1) + ) + .inputFluids(Fluid.of('gtceu:blue_steel', 144 * 8)) + .itemOutputs('ad_astra:steel_engine') + .duration(600) + .circuit(2) + .EUt(GTValues.VA[GTValues.HV]) + .addMaterialInfo(true, true) + + event.recipes.gtceu.assembler('ad_astra:assembler_tier_1_rocket') + .itemInputs( + ChemicalHelper.get(TagPrefix.plateDense, TFGHelpers.getMaterial('rocket_alloy_t1'), 8), + '4x ad_astra:rocket_fin', + '1x ad_astra:steel_engine', + '1x ad_astra:rocket_nose_cone', + '16x #forge:insulation_t1', + '4x #gtceu:circuits/hv' + ) + .inputFluids(Fluid.of('gtceu:silicon', 144 * 16)) + .itemOutputs('ad_astra:tier_1_rocket') + .duration(1200) + .circuit(2) + .EUt(GTValues.VA[GTValues.HV]) + .addMaterialInfo(true, true) + + //#endregion + + + //region tier 2 rocket + + event.remove({ mod: 'gtceu', input: 'gtceu:hot_rocket_alloy_t2_ingot' }) + + event.recipes.gtceu.alloy_blast_smelter('gtceu:alloy_blast_smelter/rocket_alloy_t2') + .itemInputs('19x #forge:dusts/titanium', '3x #forge:dusts/chromium', '3x #forge:dusts/tin', '3x #forge:dusts/aluminium') + .inputFluids(Fluid.of('gtceu:vanadium', 144 * 4), Fluid.of('gtceu:distilled_water', 16000)) + .outputFluids(Fluid.of('gtceu:molten_rocket_alloy_t2', 144 * 32)) + .duration(1320 * 20) + .circuit(2) + .blastFurnaceTemp(3200) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.alloy_blast_smelter('gtceu:alloy_blast_smelter/rocket_alloy_t2_gas') + .itemInputs('19x #forge:dusts/titanium', '3x #forge:dusts/chromium', '3x #forge:dusts/tin', '3x #forge:dusts/aluminium') + .inputFluids(Fluid.of('gtceu:vanadium', 144 * 4), Fluid.of('gtceu:distilled_water', 16000), Fluid.of('gtceu:helium', 3200)) + .outputFluids(Fluid.of('gtceu:molten_rocket_alloy_t2', 144 * 32)) + .duration(17688) + .circuit(12) + .blastFurnaceTemp(3200) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.vacuum_freezer('tfg:vacuum_freezer/cool_molten_rocket_alloy_t2') + .notConsumable('gtceu:ingot_casting_mold') + .inputFluids(Fluid.of('gtceu:molten_rocket_alloy_t2', 144), Fluid.of('tfg:cryogenized_fluix', 288)) + .itemOutputs('#forge:ingots/rocket_alloy_t2') + .duration(120) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.mixer('tfg:rocket_alloy_t2') + .itemInputs('19x #forge:dusts/titanium', '3x #forge:dusts/chromium', '3x #forge:dusts/tin', '3x #forge:dusts/aluminium') + .inputFluids(Fluid.of('gtceu:vanadium', 144 * 4)) + .itemOutputs('32x #forge:dusts/rocket_alloy_t2') + .duration(15 * 20) + .circuit(5) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.vacuum_freezer('tfg:vacuum_freezer/cool_rocket_alloy_t2') + .itemInputs('#forge:hot_ingots/rocket_alloy_t2') + .inputFluids(Fluid.of('gtceu:distilled_water', 500), Fluid.of('tfg:cryogenized_fluix', 288)) + .itemOutputs('#forge:ingots/rocket_alloy_t2') + .duration(120) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.assembler('tfg:rocket_fin_t2') + .itemInputs('#forge:plates/rocket_alloy_t2', + '#forge:double_plates/titanium') + .itemOutputs('tfg:rocket_fin_t2') + .duration(180) + .circuit(3) + .EUt(GTValues.VA[GTValues.EV]) + .addMaterialInfo(true) + + event.recipes.gtceu.assembler('tfg:rocket_cone_t2') + .itemInputs('gtceu:ev_emitter', '#forge:dense_plates/rocket_alloy_t2', '#forge:double_plates/titanium', + '#forge:double_plates/desh') + .itemOutputs('tfg:rocket_cone_t2') + .duration(1440) + .circuit(3) + .EUt(GTValues.VA[GTValues.EV]) + .addMaterialInfo(true) + + + event.recipes.gtceu.assembler('tfg:rocket_desh_engine') + .itemInputs( + ChemicalHelper.get(TagPrefix.plateDouble, GTMaterials.Titanium, 4), + '2x #gtceu:circuits/ev', + 'gtceu:ev_electric_pump', + '3x gtceu:advanced_power_thruster', + ChemicalHelper.get(TagPrefix.rod, GTMaterials.NeodymiumMagnetic, 4), + ChemicalHelper.get(TagPrefix.rotor, GTMaterials.Titanium, 1)) + .inputFluids(Fluid.of('gtceu:desh', 144 * 12)) + .itemOutputs('ad_astra:desh_engine') + .duration(800) + .circuit(3) + .EUt(GTValues.VA[GTValues.EV]) + .addMaterialInfo(true, true) + + event.recipes.gtceu.assembler('ad_astra:tier_2_rocket') + .itemInputs( + ChemicalHelper.get(TagPrefix.plateDense, TFGHelpers.getMaterial('rocket_alloy_t2'), 12), + '4x tfg:rocket_fin_t2', + '1x ad_astra:desh_engine', + '1x tfg:rocket_cone_t2', + '12x #forge:insulation_t2/roll', + '4x #gtceu:circuits/ev' + ) + .inputFluids(Fluid.of('gtceu:titanium', 144 * 16)) + .itemOutputs('ad_astra:tier_2_rocket') + .duration(1440) + .circuit(3) + .EUt(GTValues.VA[GTValues.EV]) + .addMaterialInfo(true, true) + + //#endregion + + //region Tier 3 DISABLED UNTIL IV + event.remove({ id: "gtceu:vacuum_freezer/cool_hot_rocket_alloy_t3_ingot" }) + event.remove({ id: "gtceu:vacuum_freezer/rocket_alloy_t3" }) + /* + event.recipes.gtceu.vacuum_freezer('tfg:cool_rocket_alloy_t3') + .inputFluids(Fluid.of('gtceu:molten_rocket_alloy_t3', 144), Fluid.of('gtceu:ice', 4000)) + .notConsumable('gtceu:ingot_casting_mold') + .itemOutputs('#forge:ingots/rocket_alloy_t3') + .duration(800) + .EUt(GTValues.VA[GTValues.HV]) + event.recipes.gtceu.vacuum_freezer('tfg:cool_hot_rocket_alloy_t3') + .itemInputs('#forge:hot_ingots/rocket_alloy_t3') + .inputFluids(Fluid.of('gtceu:liquid_helium', 500)) + .itemOutputs('#forge:ingots/rocket_alloy_t3') + .outputFluids(Fluid.of('gtceu:helium', 250)) + .duration(400) + .EUt(GTValues.VA[GTValues.HV]) + + //Add some unique cooling thing for molten ingots + + event.recipes.gtceu.assembler('tfg:rocket_fin_t3') + .itemInputs('#forge:plates/rocket_alloy_t3', '#forge:double_plates/tungsten_steel') + .itemOutputs('tfg:rocket_fin_t3') + .duration(220) + .circuit(4) + .EUt(GTValues.VA[GTValues.IV]) + .addMaterialInfo(true) + + event.recipes.gtceu.assembler('tfg:rocket_cone_t3') + .itemInputs('gtceu:iv_emitter', '#forge:dense_plates/rocket_alloy_t3', '#forge:double_plates/tungsten_steel', + '#forge:double_plates/ostrum', 'gtceu:plutonium_nugget') //change this to the pellet + .itemOutputs('tfg:rocket_cone_t3') + .duration(1700) + .circuit(4) + .EUt(GTValues.VA[GTValues.IV]) + .addMaterialInfo(true) + + event.recipes.gtceu.assembler('tfg:elite_power_thruster') + .itemInputs('gtceu:ev_electric_motor', '2x #forge:rings/titanium', '#forge:rods/titanium', + 'gtceu:ultimet_rotor', '2x gtceu:aluminium_single_cable') + .itemOutputs('tfg:elite_power_thruster') + .duration(200) + .EUt(GTValues.VA[GTValues.LV]) + .addMaterialInfo(true) + + event.recipes.gtceu.assembler('tfg:rocket_ostrum_engine') + .itemInputs( + '6x #forge:double_plates/tungsten_steel', + '4x #gtceu:circuits/iv', + 'gtceu:iv_electric_pump', + '3x tfg:elite_power_thruster', + '4x #forge:insulation_t3/cryo', + '6x #forge:rods/magnetic_neodymium', + '#forge:rotors/tungsten_steel') + .inputFluids(Fluid.of('gtceu:ostrum', 144 * 16)) + .itemOutputs('ad_astra:ostrum_engine') + .duration(960) + .circuit(4) + .EUt(GTValues.VA[GTValues.IV]) + .addMaterialInfo(true, true) + + event.recipes.gtceu.assembler('tfg:rocket_ostrum_tank') + .itemInputs( + '4x #forge:double_plates/rocket_alloy_t3', + 'gtceu:iv_electric_pump', + 'tfg:elite_power_thruster', + '2x #forge:insulation_t3/cryo') + .inputFluids(Fluid.of('gtceu:ostrum', 144 * 4)) + .itemOutputs('ad_astra:ostrum_tank') + .duration(400) + .circuit(4) + .EUt(GTValues.VA[GTValues.IV]) + .addMaterialInfo(true, true) + + event.recipes.gtceu.assembler('ad_astra:tier_3_rocket') + .itemInputs( + '16x #forge:dense_plates/rocket_alloy_t3', + '4x tfg:rocket_fin_t3', + '1x ad_astra:ostrum_engine', + '2x ad_astra:ostrum_tank', + '1x tfg:rocket_cone_t3', + '8x #forge:insulation_t3/sheet' + ) + .inputFluids(Fluid.of('gtceu:bromine', 1000 * 16)) + .itemOutputs('ad_astra:tier_3_rocket') + .duration(1700) + .circuit(4) + .EUt(GTValues.VA[GTValues.IV]) + .addMaterialInfo(true, true) + + //#endregion +*/ +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/space_general/recipes.space.js b/kubejs/server_scripts/tfg/space_general/recipes.space.js new file mode 100644 index 000000000..88e54b3a5 --- /dev/null +++ b/kubejs/server_scripts/tfg/space_general/recipes.space.js @@ -0,0 +1,114 @@ +// priority: 0 +"use strict"; + +/** + * @param {Internal.RecipesEventJS} event + */ +function registerTFGSpaceRecipes(event) { + + const allowedCombustibleDims = [ + { + dimension: "minecraft:the_nether", + type: "dimension" + }, + { + dimension: "minecraft:overworld", + type: "dimension" + } + ] + + event.findRecipes({ type: "gtceu:large_boiler" }).forEach(recipe => { + recipe.json.add("recipeConditions", allowedCombustibleDims) + }) + event.findRecipes({ type: "gtceu:steam_boiler" }).forEach(recipe => { + recipe.json.add("recipeConditions", allowedCombustibleDims) + }) + event.findRecipes({ type: "gtceu:combustion_generator" }).forEach(recipe => { + recipe.json.add("recipeConditions", allowedCombustibleDims) + }) + event.findRecipes({ type: "gtceu:gas_turbine" }).forEach(recipe => { + recipe.json.add("recipeConditions", allowedCombustibleDims) + }) + + // Air collector + + event.recipes.gtceu.gas_collector('tfg:nether') + .circuit(2) + .outputFluids(Fluid.of('gtceu:air', 10000)) + .dimension('minecraft:the_nether') + .duration(200) + .EUt(16) + + event.recipes.gtceu.gas_collector('tfg:moon') + .circuit(3) + .outputFluids(Fluid.of('gtceu:argon', 1)) + .dimension('ad_astra:moon') + .duration(20*60*30) + .EUt(16) + + event.recipes.gtceu.gas_collector('tfg:mars') + .circuit(4) + .outputFluids(Fluid.of('tfg:mars_air', 10000)) + .dimension('ad_astra:mars') + .duration(20*10) + .EUt(16) + + + // Aqueous accumulator -- use adjacentFluids (plural) to avoid rhino ambiguous method issues + + let aaCircuit = 1; + + event.recipes.gtceu.aqueous_accumulator('water') + .circuit(aaCircuit++) + .duration(20) + .EUt(GTValues.VHA[GTValues.ULV]) + .adjacentFluids(["minecraft:water"]) + .outputFluids(Fluid.of("minecraft:water", 1000)) + + event.recipes.gtceu.aqueous_accumulator('sea_water') + .circuit(aaCircuit++) + .duration(20) + .EUt(GTValues.VA[GTValues.ULV]) + .adjacentFluids(["tfc:salt_water"]) + .outputFluids(Fluid.of("tfc:salt_water", 1000)) + + event.recipes.gtceu.aqueous_accumulator('semiheavy_water_mars') + .circuit(aaCircuit++) + .dimension('ad_astra:mars') + .duration(20) + .EUt(GTValues.VHA[GTValues.ULV]) + .adjacentFluids(["tfg:semiheavy_ammoniacal_water"]) + .outputFluids(Fluid.of("tfg:semiheavy_ammoniacal_water", 1000)) + + event.recipes.gtceu.aqueous_accumulator('lava_overworld') + .circuit(aaCircuit++) + .dimension('minecraft:overworld') + .duration(20*15) + .EUt(GTValues.VHA[GTValues.HV]) + .adjacentFluids(["minecraft:lava"]) + .outputFluids(Fluid.of("minecraft:lava", 1000)) + + event.recipes.gtceu.aqueous_accumulator('lava_nether') + .circuit(aaCircuit++) + .dimension('minecraft:the_nether') + .duration(20*15) + .EUt(GTValues.VHA[GTValues.HV]) + .adjacentFluids(["minecraft:lava"]) + .outputFluids(Fluid.of("minecraft:lava", 1000)) + + event.recipes.gtceu.aqueous_accumulator('spring_water') + .circuit(aaCircuit++) + .dimension('minecraft:overworld') + .duration(20) + .EUt(GTValues.VA[GTValues.LV]) + .adjacentFluids(["tfc:spring_water"]) + .outputFluids(Fluid.of("tfc:spring_water", 1000)) + + event.recipes.gtceu.aqueous_accumulator('more_water') + .circuit(aaCircuit++) + .duration(10) + .EUt(GTValues.VHA[GTValues.HV]) + .adjacentFluids(["minecraft:water"]) + .outputFluids(Fluid.of("minecraft:water", 16000)) + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/space_general/recipes.space_suits.js b/kubejs/server_scripts/tfg/space_general/recipes.space_suits.js new file mode 100644 index 000000000..7c1d54856 --- /dev/null +++ b/kubejs/server_scripts/tfg/space_general/recipes.space_suits.js @@ -0,0 +1,182 @@ +"use strict"; + +function registerTFGSpaceSuitRecipes(event) { + + event.recipes.gtceu.shaped('ad_astra:launch_pad', [ + 'BAB', + 'AAA', + 'BAB' + ], { + A: '#forge:plates/steel', + B: '#forge:rods/steel' + }).addMaterialInfo().id('tfg:launch_pad') + + + // Space suit gases + + event.recipes.gtceu.gas_pressurizer('compressed_nitrox') + .inputFluids(Fluid.of('gtceu:nitrogen', 8000), Fluid.of('gtceu:oxygen', 2000)) + .outputFluids(Fluid.of('tfg:compressed_nitrox', 1000)) + .circuit(1) + .duration(100) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.gas_pressurizer('compressed_heliox') + .inputFluids(Fluid.of('gtceu:helium', 8000), Fluid.of('gtceu:oxygen', 2000)) + .outputFluids(Fluid.of('tfg:compressed_heliox', 1000)) + .circuit(1) + .duration(100) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.gas_pressurizer('compressed_heliox_3') + .inputFluids(Fluid.of('gtceu:helium_3', 8000), Fluid.of('gtceu:oxygen', 2000)) + .outputFluids(Fluid.of('tfg:compressed_heliox_3', 1000)) + .circuit(1) + .duration(100) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.gas_pressurizer('compressed_trimix') + .inputFluids(Fluid.of('gtceu:nitrogen', 5000), Fluid.of('gtceu:oxygen', 3000), Fluid.of('gtceu:helium', 2000)) + .outputFluids(Fluid.of('tfg:compressed_trimix', 1000)) + .circuit(2) + .duration(100) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.gas_pressurizer('compressed_trimix_3') + .inputFluids(Fluid.of('gtceu:nitrogen', 5000), Fluid.of('gtceu:oxygen', 3000), Fluid.of('gtceu:helium_3', 2000)) + .outputFluids(Fluid.of('tfg:compressed_trimix_3', 1000)) + .circuit(2) + .duration(100) + .EUt(GTValues.VA[GTValues.HV]) + + //#region space suits + + event.recipes.gtceu.forming_press('space_suit_fabric') + .itemInputs( + '#forge:foils/aluminium', + 'gtceu:carbon_fiber_mesh', + '#forge:foils/silicone_rubber', + 'tfg:polycaprolactam_fabric' + ) + .itemOutputs('2x tfg:space_suit_fabric') + .duration(20 * 10) + .EUt(GTValues.VA[GTValues.HV]) + .addMaterialInfo(true) + + event.recipes.gtceu.forming_press('better_space_suit_fabric') + .itemInputs( + '#forge:foils/polybenzimidazole', + 'gtceu:carbon_fiber_mesh', + '#forge:aerogels', + 'tfg:glacian_wool' + ) + .itemOutputs('2x tfg:better_space_suit_fabric') + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.IV]) + .addMaterialInfo(true) + + event.recipes.gtceu.shaped('ad_astra:space_helmet', [ + 'AAA', + 'ADA', + 'BBB' + ], { + A: 'gtceu:tempered_glass', + B: 'tfg:space_suit_fabric', + D: '#forge:small_fluid_pipes/polyethylene' + }).addMaterialInfo().id('tfg:space_helmet') + + event.recipes.gtceu.assembler('ad_astra:netherite_space_helmet') + .itemInputs( + 'ad_astra:space_helmet', + '2x #forge:plates/tungsten_steel', + '1x #forge:plates/ostrum', + '3x tfg:better_space_suit_fabric', + '5x gtceu:laminated_glass' + ) + .itemOutputs('ad_astra:netherite_space_helmet') + .duration(400) + .EUt(GTValues.VA[GTValues.IV]) + .addMaterialInfo(true) + + event.recipes.gtceu.shaped('ad_astra:space_suit', [ + 'B B', + 'BDB', + 'BBB' + ], { + B: 'tfg:space_suit_fabric', + D: 'ad_astra:oxygen_gear' + }).addMaterialInfo().id('tfg:space_suit') + + event.shapeless('ad_astra:space_suit', ['ad_astra:space_suit']) + .id('tfg:empty_space_suit') + + event.recipes.gtceu.assembler('ad_astra:netherite_space_suit') + .itemInputs( + 'ad_astra:space_suit', + '3x #forge:plates/tungsten_steel', + '2x #forge:plates/ostrum', + '5x tfg:better_space_suit_fabric' + ) + .itemOutputs('ad_astra:netherite_space_suit') + .duration(400) + .EUt(GTValues.VA[GTValues.IV]) + .addMaterialInfo(true) + + event.shapeless('ad_astra:netherite_space_suit', ['ad_astra:netherite_space_suit']) + .id('tfg:empty_netherite_space_suit') + + event.recipes.gtceu.shaped('ad_astra:space_pants', [ + 'BAB', + 'B B', + 'B B' + ], { + A: 'gtceu:hv_electric_motor', + B: 'tfg:space_suit_fabric', + }).addMaterialInfo().id('tfg:space_pants') + + event.recipes.gtceu.assembler('ad_astra:netherite_space_pants') + .itemInputs( + 'ad_astra:space_pants', + '2x #forge:plates/tungsten_steel', + '2x #forge:plates/ostrum', + '4x tfg:better_space_suit_fabric' + ) + .itemOutputs('ad_astra:netherite_space_pants') + .duration(400) + .EUt(GTValues.VA[GTValues.IV]) + .addMaterialInfo(true) + + event.recipes.gtceu.shaped('ad_astra:space_boots', [ + 'B B', + 'A A' + ], { + A: '#forge:plates/polyphenylene_sulfide', + B: 'tfg:space_suit_fabric' + }).addMaterialInfo().id('tfg:space_boots') + + event.recipes.gtceu.assembler('ad_astra:netherite_space_boots') + .itemInputs( + 'ad_astra:space_boots', + '1x #forge:plates/tungsten_steel', + '1x #forge:plates/ostrum', + '2x tfg:better_space_suit_fabric' + ) + .itemOutputs('ad_astra:netherite_space_boots') + .duration(400) + .EUt(GTValues.VA[GTValues.IV]) + .addMaterialInfo(true) + + event.recipes.gtceu.shaped('ad_astra:oxygen_gear', [ + 'BAB', + 'ECE', + 'BDB' + ], { + A: '#gtceu:circuits/hv', + B: '#forge:tiny_fluid_pipes/stainless_steel', + C: 'gtceu:hv_electric_pump', + D: 'gtceu:fluid_detector_cover', + E: 'ad_astra:gas_tank' + }).addMaterialInfo().id('tfg:oxygen_gear') + + //#endregion +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/space_general/tags.railgun.js b/kubejs/server_scripts/tfg/space_general/tags.railgun.js new file mode 100644 index 000000000..0ad284fb5 --- /dev/null +++ b/kubejs/server_scripts/tfg/space_general/tags.railgun.js @@ -0,0 +1,82 @@ +"use strict"; + +function registerTFGRailgunItemTags(event) { + + event.add('tfg:cannot_launch_in_railgun', '#tfc:vessels') + event.add('tfg:cannot_launch_in_railgun', '#tfc:large_vessels') + event.add('tfg:cannot_launch_in_railgun', 'ae2:item_storage_cell_1k') + event.add('tfg:cannot_launch_in_railgun', 'ae2:item_storage_cell_4k') + event.add('tfg:cannot_launch_in_railgun', 'ae2:item_storage_cell_16k') + event.add('tfg:cannot_launch_in_railgun', 'ae2:item_storage_cell_64k') + event.add('tfg:cannot_launch_in_railgun', 'ae2:item_storage_cell_256k') + event.add('tfg:cannot_launch_in_railgun', 'ae2:fluid_storage_cell_1k') + event.add('tfg:cannot_launch_in_railgun', 'ae2:fluid_storage_cell_4k') + event.add('tfg:cannot_launch_in_railgun', 'ae2:fluid_storage_cell_16k') + event.add('tfg:cannot_launch_in_railgun', 'ae2:fluid_storage_cell_64k') + event.add('tfg:cannot_launch_in_railgun', 'ae2:fluid_storage_cell_256k') + event.add('tfg:cannot_launch_in_railgun', 'ae2:spatial_storage_cell_2') + event.add('tfg:cannot_launch_in_railgun', 'ae2:spatial_storage_cell_16') + event.add('tfg:cannot_launch_in_railgun', 'ae2:spatial_storage_cell_128') + event.add('tfg:cannot_launch_in_railgun', 'megacells:item_storage_cell_1m') + event.add('tfg:cannot_launch_in_railgun', 'megacells:item_storage_cell_4m') + event.add('tfg:cannot_launch_in_railgun', 'megacells:item_storage_cell_16m') + event.add('tfg:cannot_launch_in_railgun', 'megacells:item_storage_cell_64m') + event.add('tfg:cannot_launch_in_railgun', 'megacells:fluid_storage_cell_1m') + event.add('tfg:cannot_launch_in_railgun', 'megacells:fluid_storage_cell_4m') + event.add('tfg:cannot_launch_in_railgun', 'megacells:fluid_storage_cell_16m') + event.add('tfg:cannot_launch_in_railgun', 'megacells:fluid_storage_cell_64m') + event.add('tfg:cannot_launch_in_railgun', 'create:minecart_contraption') + event.add('tfg:cannot_launch_in_railgun', 'tfg:railgun_ammo_shell') + event.add('tfg:cannot_launch_in_railgun', 'create:cardboard_package_12x10') + event.add('tfg:cannot_launch_in_railgun', 'create:cardboard_package_10x8') + event.add('tfg:cannot_launch_in_railgun', 'create:cardboard_package_10x12') + event.add('tfg:cannot_launch_in_railgun', 'create:cardboard_package_12x12') + event.add('tfg:cannot_launch_in_railgun', 'create_factory_logistics:composite_package') + event.add('tfg:cannot_launch_in_railgun', 'create_factory_logistics:copper_jar_package_8x8') + event.add('tfg:cannot_launch_in_railgun', 'sns:ore_sack') + event.add('tfg:cannot_launch_in_railgun', 'sns:leather_sack') + event.add('tfg:cannot_launch_in_railgun', 'sns:burlap_sack') + event.add('tfg:cannot_launch_in_railgun', 'sns:seed_pouch') + event.add('tfg:cannot_launch_in_railgun', 'sns:straw_basket') + event.add('tfg:cannot_launch_in_railgun', 'sns:frame_pack') + event.add('tfg:cannot_launch_in_railgun', 'tfclunchbox:lunchbox') + event.add('tfg:cannot_launch_in_railgun', 'tfclunchbox:cooling_lunchbox') + event.add('tfg:cannot_launch_in_railgun', 'tfclunchbox:electric_lunchbox') + event.add('tfg:cannot_launch_in_railgun', 'sophisticatedbackpacks:backpack') + event.add('tfg:cannot_launch_in_railgun', 'sophisticatedbackpacks:copper_backpack') + event.add('tfg:cannot_launch_in_railgun', 'sophisticatedbackpacks:iron_backpack') + event.add('tfg:cannot_launch_in_railgun', 'sophisticatedbackpacks:gold_backpack') + event.add('tfg:cannot_launch_in_railgun', 'sophisticatedbackpacks:diamond_backpack') + event.add('tfg:cannot_launch_in_railgun', 'sophisticatedbackpacks:netherite_backpack') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:wood_crate') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:bronze_crate') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:black_bronze_crate') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:bismuth_bronze_crate') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:steel_crate') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:aluminium_crate') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:stainless_steel_crate') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:titanium_crate') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:tungsten_steel_crate') + event.add('tfg:cannot_launch_in_railgun', '#create:toolboxes') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:ulv_super_chest') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:lv_super_chest') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:mv_super_chest') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:hv_super_chest') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:ev_super_chest') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:iv_quantum_chest') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:luv_quantum_chest') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:zpm_quantum_chest') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:uv_quantum_chest') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:uhv_quantum_chest') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:ulv_super_tank') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:lv_super_tank') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:mv_super_tank') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:hv_super_tank') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:ev_super_tank') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:iv_quantum_tank') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:luv_quantum_tank') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:zpm_quantum_tank') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:uv_quantum_tank') + event.add('tfg:cannot_launch_in_railgun', 'gtceu:uhv_quantum_tank') + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/space_general/tags.rockets.js b/kubejs/server_scripts/tfg/space_general/tags.rockets.js new file mode 100644 index 000000000..fd6a8ef65 --- /dev/null +++ b/kubejs/server_scripts/tfg/space_general/tags.rockets.js @@ -0,0 +1,28 @@ +"use strict"; + +function registerTFGRocketItemTags(event) { + + // Insulation Tier 1 + event.add('forge:insulation_t1', 'gtceu:borosilicate_glass_dust') + event.add('forge:insulation_t1', 'gtceu:vitrified_asbestos_dust') + + //Insulation Tier 2 + event.add('forge:insulation_t2/sheet', 'tfg:aes_insulation_sheet') + event.add('forge:insulation_t2/roll', 'tfg:aes_insulation_roll') + + //Insulation Tier3 + event.add('forge:insulation_t3/foam', 'tfg:aes_polyurethane') + event.add('forge:insulation_t3/sheet', 'tfg:mli_shielding') + event.add('forge:insulation_t3/cryo', 'tfg:silica_aerogel') + + event.add('forge:aerogels', 'tfg:silica_aerogel') + + //Rocket Engines + event.add('ad_astra:rocket_engine', 'ad_astra:steel_engine') + event.add('ad_astra:rocket_engine', 'ad_astra:desh_engine') + event.add('ad_astra:rocket_engine', 'ad_astra:ostrum_engine') + + //Rocket Tank + event.add('ad_astra:rocket_tank', 'ad_astra:ostrum_tank') + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/tags.interaction.js b/kubejs/server_scripts/tfg/tags.interaction.js index 99be4b76f..ad0c2bea0 100644 --- a/kubejs/server_scripts/tfg/tags.interaction.js +++ b/kubejs/server_scripts/tfg/tags.interaction.js @@ -1,8 +1,8 @@ // priority: 0 "use strict"; -function registerBlockInteractionTags(event) { - +function registerBlockInteractionItemTags(event) { + /** * @typedef {Object} BrickVariant * @property {string} brick_type - The name of the brick variant. @@ -23,11 +23,11 @@ function registerBlockInteractionTags(event) { * @property {string|null} smooth_slab - Smooth brick slab block ID. * @property {string|null} smooth_wall - Smooth brick wall block ID. * @property {string|null} chiseled_brick - Chiseled brick block ID. - */ - - for (const b of global.BRICK_INDEX) { + */ + + for (const b of global.BRICK_INDEX) { if (b.brick !== null) { event.add('tfg:interaction/brick', b.brick) } - if (b.brick_stairs !== null) {event.add('tfg:interaction/brick_stairs', b.brick_stairs) } + if (b.brick_stairs !== null) { event.add('tfg:interaction/brick_stairs', b.brick_stairs) } if (b.brick_slab !== null) { event.add('tfg:interaction/brick_slab', b.brick_slab) } if (b.brick_wall !== null) { event.add('tfg:interaction/brick_wall', b.brick_wall) } @@ -42,27 +42,22 @@ function registerBlockInteractionTags(event) { if (b.mossy_wall !== null) { event.add('tfg:interaction/mossy_brick_wall', b.mossy_wall) } if (b.smooth_brick !== null) { event.add('tfg:interaction/smooth_brick', b.smooth_brick) } - //event.add('tfg:interaction/smooth_bricks', b.smooth_stairs) - //event.add('tfg:interaction/smooth_bricks', b.smooth_slab) - //event.add('tfg:interaction/smooth_bricks', b.smooth_wall) - + //event.add('tfg:interaction/smooth_bricks', b.smooth_stairs) + //event.add('tfg:interaction/smooth_bricks', b.smooth_slab) + //event.add('tfg:interaction/smooth_bricks', b.smooth_wall) + } - } - - - for (const c of global.COBBLE_INDEX) { - - event.add('tfg:interaction/cobble', c.block) - event.add('tfg:interaction/cobble_stairs', c.stairs) - event.add('tfg:interaction/cobble_slab', c.slab) - event.add('tfg:interaction/cobble_wall', c.wall) - event.add('tfg:interaction/mossy_cobble', c.mossy_block) - event.add('tfg:interaction/mossy_cobble_stairs', c.mossy_stairs) - event.add('tfg:interaction/mossy_cobble_slab', c.mossy_slab) - event.add('tfg:interaction/mossy_cobble_wall', c.mossy_wall) + for (const c of global.COBBLE_INDEX) { - - } - + event.add('tfg:interaction/cobble', c.block) + event.add('tfg:interaction/cobble_stairs', c.stairs) + event.add('tfg:interaction/cobble_slab', c.slab) + event.add('tfg:interaction/cobble_wall', c.wall) + + event.add('tfg:interaction/mossy_cobble', c.mossy_block) + event.add('tfg:interaction/mossy_cobble_stairs', c.mossy_stairs) + event.add('tfg:interaction/mossy_cobble_slab', c.mossy_slab) + event.add('tfg:interaction/mossy_cobble_wall', c.mossy_wall) + } } diff --git a/kubejs/server_scripts/tfg/tags.js b/kubejs/server_scripts/tfg/tags.js index 9d8564b5b..0362ce7d9 100644 --- a/kubejs/server_scripts/tfg/tags.js +++ b/kubejs/server_scripts/tfg/tags.js @@ -2,73 +2,26 @@ const registerTFGItemTags = (event) => { - registerTFGTrimTags(event) - registerFacadeWhitelistTags(event) - registerBlockInteractionTags(event) - registerTFGItemStoneTags(event) - - //crop stuff - event.add('tfc:seeds', 'tfg:sunflower_seeds') - event.add('tfc:seeds', 'tfg:rapeseed_seeds') - event.add('tfc:seeds', 'tfg:flax_seeds') - event.add('tfc:compost_greens_high', 'tfg:rapeseed_product') - event.add('tfc:compost_greens_high', 'tfg:sunflower_product') - event.add('tfc:compost_greens_high', 'tfg:flax_product') - event.add('tfc:compost_greens_high', 'tfg:lunar_chorus_flower') - event.add('tfg:water_breathing_ingredients', 'tfg:rapeseed_product') - event.add('tfg:night_vision_ingredients', 'tfg:sunflower_product') - - // Actually "layers", can't rename them without screwing with peoples' worlds - event.add('c:hidden_from_recipe_viewers', 'tfg:ash_pile') - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/black_sand') - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/brown_sand') - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/green_sand') - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/pink_sand') - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/red_sand') - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/white_sand') - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/yellow_sand') - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/mars_sand') - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/moon_sand') - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/venus_sand') - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/hematitic_sand') - - // Actually "piles", the kind that can hide plants inside them - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/mars_sand_covering') - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/venus_sand_covering') - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/hematitic_sand_covering') - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/mars_snow_covering') - - // Actually "piles", the kind that can hide plants inside them - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/mars_sand_covering') - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/venus_sand_covering') - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/hematitic_sand_covering') - event.add('c:hidden_from_recipe_viewers', 'tfg:pile/mars_snow_covering') - - event.add('c:hidden_from_recipe_viewers', 'tfg:mars_ice') - - //Decorative Vases - global.MINECRAFT_DYE_NAMES.forEach(color => { - event.add('c:hidden_from_recipe_viewers', `tfg:decorative_vase/generated/${color}`) - event.add('tfg:decorative_vases/generated', `tfg:decorative_vase/generated/${color}`) - event.add('tfg:decorative_vases', `tfg:decorative_vase/${color}`) - event.add('tfg:decorative_vases/unfired', `tfg:decorative_vase/unfired/${color}`) - }) - event.add('tfg:decorative_vases', 'tfg:decorative_vase') - event.add('tfg:decorative_vases/unfired', 'tfg:decorative_vase/unfired') - - //Knapping - event.add('tfc:any_knapping', 'minecraft:flint') + registerTFGTrimItemTags(event) + registerTFGFacadeWhitelistItemTags(event) + registerBlockInteractionItemTags(event) + registerTFGStoneItemTags(event) + registerTFGFoodItemTags(event); + registerTFGMedicineItemTags(event); + registerTFGPrimitiveItemTags(event) + registerTFGEquipmentItemTags(event); + registerTFGRailgunItemTags(event) + registerTFGRocketItemTags(event) + registerTFGGeneralWorldgenItemTags(event); + registerTFGBeneathItemTags(event) + registerTFGMoonItemTags(event) + registerTFGMarsItemTags(event) + registerTFGVenusItemTags(event) //Circuit Stuff event.add('tfg:components/uv_leds', 'tfg:uv_led') event.add('tfg:components/uv_leds', 'tfg:smd_uv_led') - //Fission Nucleat Fuel - event.add('deafission:fuels', 'tfg:thorium_rod') - event.add('deafission:fuels', 'tfg:uranium_rod') - event.add('deafission:fuels', 'tfg:plutonium_rod') - event.add('tfg:fission_rods', '#deafission:fuels') - // Platline event.add('tfg:platinum_ore_group', 'gtceu:purified_pentlandite_ore') event.add('tfg:platinum_ore_group', 'gtceu:purified_chalcopyrite_ore') @@ -77,135 +30,21 @@ const registerTFGItemTags = (event) => { event.add('tfg:platinum_ore_group', 'gtceu:purified_cooperite_ore') event.add('tfg:platinum_ore_group', 'gtceu:purified_chalcocite_ore') - //#region Tools & Armor - event.add('forge:tools/fishing_nets', 'tfg:fishing_net/wood') - event.add('forge:tools/fishing_nets', 'tfg:fishing_net/brass') - event.add('forge:tools/fishing_nets', 'tfg:fishing_net/rose_gold') - event.add('forge:tools/fishing_nets', 'tfg:fishing_net/sterling_silver') - event.add('forge:tools/fishing_nets', 'tfg:fishing_net/invar') - event.add('forge:tools/fishing_nets', 'tfg:fishing_net/tin_alloy') - event.add('forge:tools/fishing_nets', 'tfg:fishing_net/cupronickel') - event.add('forge:tools/fishing_nets', 'tfg:fishing_net/magnalium') - - event.add('minecraft:piglin_loved', 'tfg:piglin_disguise') - - event.add('forge:tools/trowels', 'tfg:trowel') - event.add('tfc:usable_on_tool_rack', 'tfg:trowel') - - event.add('tfg:harvester', 'tfg:harvest_basket') - event.add('tfg:harvester', 'tfg:aluminium_harvest_basket') - - event.add('tfg:tools/ore_prospectors/copper', 'tfc:metal/propick/copper') - event.add('tfg:tools/ore_prospectors/bronze', 'tfc:metal/propick/bronze') - event.add('tfg:tools/ore_prospectors/bronze', 'tfc:metal/propick/bismuth_bronze') - event.add('tfg:tools/ore_prospectors/bronze', 'tfc:metal/propick/black_bronze') - event.add('tfg:tools/ore_prospectors/wrought_iron', 'tfc:metal/propick/wrought_iron') - event.add('tfg:tools/ore_prospectors/steel', 'tfc:metal/propick/steel') - event.add('tfg:tools/ore_prospectors/black_steel', 'tfc:metal/propick/black_steel') - event.add('tfg:tools/ore_prospectors/blue_steel', 'tfc:metal/propick/blue_steel') - event.add('tfg:tools/ore_prospectors/red_steel', 'tfc:metal/propick/red_steel') + //Bronze Crates & Drums + event.add('tfg:any_bronze_crate', 'gtceu:bronze_crate') + event.add('tfg:any_bronze_crate', 'gtceu:black_bronze_crate') + event.add('tfg:any_bronze_crate', 'gtceu:bismuth_bronze_crate') + event.add('tfg:any_bronze_drum', 'gtceu:bronze_drum') + event.add('tfg:any_bronze_drum', 'gtceu:black_bronze_drum') + event.add('tfg:any_bronze_drum', 'gtceu:bismuth_bronze_drum') + //#region Tools event.add('tfg:empty_dna_syringes', 'tfg:empty_dna_syringe') event.add('tfg:empty_dna_syringes', 'tfg:clean_dna_syringe') event.add('tfc:sewing_needles', 'tfg:stainless_steel_needle') //#endregion - // #region Paper from wood - event.add('tfg:hardwood_strips', 'tfg:hardwood_strip') - event.add('tfg:hardwood_strips', 'tfg:soaked_hardwood_strip') - //Adding any of these dusts to the forge dusts/wood tag will make it so you can craft softwood pulp using hardwood pulp. which is not ok. - event.add('tfg:wood_dusts', 'gtceu:hardwood_dust') - event.add('tfg:tiny_wood_dusts', 'gtceu:tiny_hardwood_dust') - event.add('tfg:small_wood_dusts', 'gtceu:small_hardwood_dust') - event.add('tfg:wood_dusts', 'gtceu:wood_dust') - event.add('tfg:tiny_wood_dusts', 'gtceu:tiny_wood_dust') - event.add('tfg:small_wood_dusts', 'gtceu:small_wood_dust') - - event.add('forge:wax', 'tfg:paraffin_wax') - event.add('forge:wax', 'firmalife:beeswax') - event.add('forge:wax', 'tfg:conifer_rosin') - event.add('forge:wax', 'tfg:crimsene_gem') - event.add('forge:wax', 'tfg:warpane_gem') - // #endregion - - event.add('buildinggadgets2:deny', 'tfg:spice') - - //#region Cloth & String - event.add('forge:cloth', 'tfg:phantom_silk') - event.add('forge:cloth', 'tfg:polycaprolactam_fabric') - event.add('tfc:high_quality_cloth', 'tfg:phantom_silk') - event.add('tfc:high_quality_cloth', 'tfg:polycaprolactam_fabric') - event.add('tfc:sewing_light_cloth', 'tfg:phantom_silk') - event.add('tfc:sewing_dark_cloth', 'tfg:polycaprolactam_fabric') - event.add('forge:string', 'tfg:phantom_thread') - event.add('forge:string', 'tfg:polycaprolactam_string') - event.add('forge:string', 'firmalife:pineapple_yarn') - //#endregion - - // #region Medicines - event.add('tfg:antipoison_ingredients', 'tfc:plant/blood_lily') - event.add('tfg:antipoison_ingredients', 'tfc:plant/pistia') - event.add('tfg:antipoison_ingredients', 'tfc:powder/bismuthinite') - event.add('tfg:antipoison_ingredients', 'gtceu:mica_dust') - event.add('tfg:antipoison_ingredients', 'gtceu:fullers_earth_dust') - - event.add('tfg:poison_ingredients', 'tfc:plant/butterfly_milkweed') - event.add('tfg:poison_ingredients', 'tfc:plant/grape_hyacinth') - event.add('tfg:poison_ingredients', 'tfc:plant/lily_of_the_valley') - event.add('tfg:poison_ingredients', 'tfc:plant/pulsatilla') - event.add('tfg:poison_ingredients', 'firmalife:food/nightshade_berry') - event.add('tfg:poison_ingredients', 'minecraft:red_mushroom') - - event.add('tfg:regeneration_ingredients', 'tfc:plant/lilac') - event.add('tfg:regeneration_ingredients', 'tfc:plant/field_horsetail') - event.add('tfg:regeneration_ingredients', 'tfc:plant/licorice_fern') - event.add('tfg:regeneration_ingredients', 'tfc:plant/sacred_datura') - - event.add('tfg:speed_ingredients', 'tfc:plant/labrador_tea') - event.add('tfg:speed_ingredients', 'firmalife:raw_honey') - - event.add('tfg:slowness_ingredients', 'tfc:plant/marigold') - event.add('tfg:slowness_ingredients', 'tfc:plant/nasturtium') - event.add('tfg:slowness_ingredients', 'tfc:plant/snapdragon_red') - event.add('tfg:slowness_ingredients', 'tfc:plant/snapdragon_white') - event.add('tfg:slowness_ingredients', 'tfc:plant/snapdragon_yellow') - - event.add('tfg:weakness_ingredients', 'tfc:plant/laminaria') - event.add('tfg:weakness_ingredients', 'tfc:plant/sea_palm') - event.add('tfg:weakness_ingredients', 'tfc:plant/sea_lavender') - event.add('tfg:weakness_ingredients', 'tfc:plant/canna') - event.add('tfg:weakness_ingredients', 'tfc:plant/water_canna') - - event.add('tfg:haste_ingredients', '#tfg:sugars') - - event.add('tfg:water_breathing_ingredients', 'tfc:powder/saltpeter') - event.add('tfg:water_breathing_ingredients', 'tfc:powder/charcoal') - - event.add('tfg:night_vision_ingredients', 'tfc:food/carrot') - event.add('tfg:night_vision_ingredients', 'beneath:gleamflower') - - event.add('tfg:invisibility_ingredients', 'tfc:plant/calendula') - event.add('tfg:absorption_ingredients', 'beneath:burpflower') - - event.add('tfg:fire_resistance_ingredients', 'tfc:plant/cattail') - event.add('tfg:fire_resistance_ingredients', 'tfc:plant/meads_milkweed') - event.add('tfg:fire_resistance_ingredients', 'firmalife:plant/bay_laurel') - event.add('tfg:fire_resistance_ingredients', 'beneath:ghost_pepper') - - event.add('tfg:resistance_ingredients', 'tfc:plant/hibiscus') - event.add('tfg:resistance_ingredients', 'gtceu:calcium_dust') - - event.add('tfg:instant_health_ingredients', 'tfc:plant/foxglove') - event.add('tfg:instant_health_ingredients', 'tfc:plant/artists_conk') - - event.add('tfg:absorption_ingredients', 'tfc:plant/poppy') - event.add('tfg:invisibility_ingredients', 'tfc:plant/snapdragon_pink') - - event.add('tfg:luck_ingredients', 'tfc:plant/goldenrod') - event.add('tfg:luck_ingredients', 'tfc:plant/heather') - // #endregion - // Airplane Upgrades global.AIRCRAFT_UPGRADES.forEach(value => { event.add('immersive_aircraft:upgrades', `tfg:${value}`); @@ -237,387 +76,16 @@ const registerTFGItemTags = (event) => { event.add('forge:screws/any_bronze', '#forge:screws/bronze') event.add('forge:screws/any_bronze', '#forge:screws/bismuth_bronze') event.add('forge:screws/any_bronze', '#forge:screws/black_bronze') - - //#region Food - const RAW_MEATS = [ - 'tfg:food/raw_birt', - 'tfg:food/raw_crawlermari', - 'tfg:food/raw_limpet' - ] - RAW_MEATS.forEach(meat => { - event.add('tfc:foods', meat) - event.add('tfc:foods/meats', meat) - event.add('tfc:foods/raw_meats', meat) - }) - - const COOKED_MEATS = [ - 'tfg:food/cooked_birt', - 'tfg:food/cooked_crawlermari', - 'tfg:food/cooked_limpet' - ] - COOKED_MEATS.forEach(meat => { - event.add('tfc:foods', meat) - event.add('tfc:foods/meats', meat) - event.add('tfc:foods/cooked_meats', meat) - }) - - //These tags are used to add the tooltips and for searchability - global.COOLING_FOODS.forEach(food => { event.add('tfg:cooling_foods', food) }) - - event.add('tfg:cooling_foods_strong', 'tfg:food/ice_soup') - - global.WARMING_FOODS.forEach(food => { event.add('tfg:warming_foods', food) }) - - //jam sandwhich stuff - const usable_in_jam_sandwich = Ingredient.of('#tfc:foods/usable_in_jam_sandwich').itemIds.toArray().map(String); - const preserves = Ingredient.of('#tfc:foods/preserves').itemIds.toArray().map(String); - - const usable_in_jam_sandwich_2 = usable_in_jam_sandwich.filter(item => !preserves.includes(item)); - - usable_in_jam_sandwich_2.forEach(item => { - event.add('tfc:foods/usable_in_jam_sandwich_2', item); - }); - - event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_sniffer_beef') - event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_wraptor') - event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_springling_collar') - event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_walker_steak') - event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_glider_wings') - event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_whole_soarer') - event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_crusher_meat') - event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_goober_meat') - event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_cruncher_ribs') - event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_surfer_steak') - event.add('tfg:raw_dinosaur_meat', 'wan_ancient_beasts:raw_ancient_meat') - - /** - * List of items that can make light stock. - * @type {string[]} - */ - const makesLightStock = [ - 'tfc:food/chicken', - 'tfc:food/cooked_chicken', - 'tfc:food/quail', - 'tfc:food/cooked_quail', - 'tfc:food/pheasant', - 'tfc:food/cooked_pheasant', - 'tfc:food/grouse', - 'tfc:food/cooked_grouse', - 'tfc:food/turkey', - 'tfc:food/cooked_turkey', - 'tfc:food/peafowl', - 'tfc:food/cooked_peafowl', - 'tfc:food/rabbit', - 'tfc:food/cooked_rabbit', - 'tfc:food/duck', - 'tfc:food/cooked_duck', - 'tfg:food/raw_birt', - 'tfg:food/cooked_birt', - 'tfg:food/raw_moon_rabbit', - 'tfg:food/cooked_moon_rabbit', - 'tfg:food/raw_wraptor', - 'tfg:food/cooked_wraptor', - 'tfg:food/raw_glider_wings', - 'tfg:food/cooked_glider_wings', - 'tfg:food/raw_whole_soarer', - 'tfg:food/cooked_whole_soarer' - ]; - makesLightStock.forEach(item => { - event.add('tfg:foods/makes_light_stock', item); - }); - - /** - * List of items that can make rich stock. - * @type {string[]} - */ - const makesRichStock = [ - 'tfc:food/beef', - 'tfc:food/cooked_beef', - 'tfc:food/mutton', - 'tfc:food/cooked_mutton', - 'tfc:food/bear', - 'tfc:food/cooked_bear', - 'tfc:food/horse_meat', - 'tfc:food/cooked_horse_meat', - 'tfc:food/venison', - 'tfc:food/cooked_venison', - 'tfc:food/chevon', - 'tfc:food/cooked_chevon', - 'tfc:food/gran_feline', - 'tfc:food/cooked_gran_feline', - 'tfc:food/turtle', - 'tfc:food/cooked_turtle', - 'tfc:food/camelidae', - 'tfc:food/cooked_camelidae', - 'tfg:food/raw_glacian_mutton', - 'tfg:food/cooked_glacian_mutton', - 'tfg:food/raw_sniffer_beef', - 'tfg:food/cooked_sniffer_beef', - 'tfg:food/raw_walker_steak', - 'tfg:food/cooked_walker_steak', - 'tfg:food/raw_crusher_meat', - 'tfg:food/cooked_crusher_meat', - 'wan_ancient_beasts:raw_ancient_meat', - 'wan_ancient_beasts:cooked_ancient_meat' - ]; - makesRichStock.forEach(item => { - event.add('tfg:foods/makes_rich_stock', item); - }); - - /** - * @type {string[]} - List of cheese curd item IDs. - */ - const cheeseCurds = [ - 'firmalife:food/yak_curd', - 'firmalife:food/goat_curd', - 'firmalife:food/milk_curd' - ]; - cheeseCurds.forEach(item => { - event.add('tfg:foods/cheese_curds', item); - }); - - /** - * @type {string[]} - List of item tags and item IDs that can be used on burgers. - */ - const usable_in_burgers = [ - '#tfc:foods/vegetables', - 'firmalife:food/cooked_bacon', - 'tfc:food/cooked_egg', - 'firmalife:food/tofu' - ]; - usable_in_burgers.forEach(item => { - event.add('tfg:foods/usable_in_burgers', item); - }); - - /** - * @type {string[]} - List of cheese tags and item IDs that can be used on a cheeseburger. - */ - const cheeses = [ - '#firmalife:foods/cheeses', - 'tfg:food/slice_of_cheese', - 'firmalife:food/shredded_cheese' - ]; - cheeses.forEach(item => { - event.add('tfg:foods/cheeses', item); - }); - - /** - * @type {string[]} - List of item IDs that can be used as burger meats. - */ - const burgerMeats = [ - 'tfc:food/beef', - 'tfc:food/turkey', - 'tfc:food/venison', - 'tfg:food/raw_sniffer_beef', - 'tfg:food/raw_crusher_meat', - 'wan_ancient_beasts:raw_ancient_meat' - ]; - burgerMeats.forEach(item => { - event.add('tfg:foods/burger_meats', item); - }); - - // Spice tags - global.SPICES.forEach(spice => { - event.add('tfg:foods/spices', spice.product); - event.add('tfg:foods/spice_plants', spice.plant); - }); - - /** - * @type {string[]} - List of item tags and item IDs that are allowed to be used in oatmeal. - */ - const usable_in_oatmeal = [ - '#tfc:foods/fruits', - 'tfc:food/oat_grain', - '#firmalife:foods/chocolate' - ]; - usable_in_oatmeal.forEach(item => { - event.add('tfg:foods/usable_in_oatmeal', item); - }); - - /** - * @type {string[]} - List of citrus fruit item IDs. - */ - const citrus_fruits = [ - 'tfc:food/orange', - 'tfc:jar/orange_unsealed', - 'tfg:food/freeze_dried/orange', - 'tfc:food/lemon', - 'tfc:jar/lemon_unsealed', - 'tfg:food/freeze_dried/lemon', - 'minecraft:glow_berries', - 'tfg:food/freeze_dried/glow_berries' - ]; - citrus_fruits.forEach(item => { - event.add('tfg:foods/citrus_fruits', item); - }); - - /** - * List of item tags and item IDs that are allowed to be used in a meal bag. - * @type {string[]} - */ - const usable_in_meal_bag = [ - '#tfc:foods/meats', - '#tfc:foods/grains', - '#tfc:foods/vegetables', - '#tfc:foods/fruits', - '#tfc:foods/dairy', - '#tfc:foods/preserves', - '#firmalife:foods/chocolate', - '#tfcchannelcasting:foods/chocolate_sweet', - 'firmalife:food/sugar_cookie', - 'firmalife:food/chocolate_chip_cookie', - 'firmalife:food/vanilla_ice_cream', - 'firmalife:food/strawberry_ice_cream', - 'firmalife:food/chocolate_ice_cream', - 'tfc:food/cooked_egg', - 'tfc:food/boiled_egg', - 'firmalife:food/pickled_egg', - 'tfc:food/cooked_rice', - 'firmalife:food/cooked_pasta', - 'firmalife:food/pasta_with_tomato_sauce', - 'firmalife:food/cooked_rice_noodles', - 'firmalife:food/tortilla_chips', - 'firmalife:food/shredded_cheese', - 'firmalife:food/salsa', - 'firmalife:food/tomato_sauce', - 'tfg:roasted_sunflower_seeds', - 'tfg:food/cooked_dino_nugget', - 'firmalife:food/toast', - 'firmalife:food/toast_with_butter', - 'firmalife:food/toast_with_jam', - 'firmalife:food/butter' - ]; - usable_in_meal_bag.forEach(item => { - event.add('tfg:foods/usable_in_meal_bag', item); - }); - event.add('tfg:foil_packs', 'tfg:foil_pack'); - event.add('tfg:foil_packs', 'tfg:clean_foil_pack') - - event.add('tfg:solid_fats', 'firmalife:food/butter') - event.add('tfg:solid_fats', 'tfc:blubber') - //#endregion - - //#region Blacklisted from the railgun - event.add('tfg:cannot_launch_in_railgun', '#tfc:vessels') - event.add('tfg:cannot_launch_in_railgun', '#tfc:large_vessels') - event.add('tfg:cannot_launch_in_railgun', 'ae2:item_storage_cell_1k') - event.add('tfg:cannot_launch_in_railgun', 'ae2:item_storage_cell_4k') - event.add('tfg:cannot_launch_in_railgun', 'ae2:item_storage_cell_16k') - event.add('tfg:cannot_launch_in_railgun', 'ae2:item_storage_cell_64k') - event.add('tfg:cannot_launch_in_railgun', 'ae2:item_storage_cell_256k') - event.add('tfg:cannot_launch_in_railgun', 'ae2:fluid_storage_cell_1k') - event.add('tfg:cannot_launch_in_railgun', 'ae2:fluid_storage_cell_4k') - event.add('tfg:cannot_launch_in_railgun', 'ae2:fluid_storage_cell_16k') - event.add('tfg:cannot_launch_in_railgun', 'ae2:fluid_storage_cell_64k') - event.add('tfg:cannot_launch_in_railgun', 'ae2:fluid_storage_cell_256k') - event.add('tfg:cannot_launch_in_railgun', 'ae2:spatial_storage_cell_2') - event.add('tfg:cannot_launch_in_railgun', 'ae2:spatial_storage_cell_16') - event.add('tfg:cannot_launch_in_railgun', 'ae2:spatial_storage_cell_128') - event.add('tfg:cannot_launch_in_railgun', 'megacells:item_storage_cell_1m') - event.add('tfg:cannot_launch_in_railgun', 'megacells:item_storage_cell_4m') - event.add('tfg:cannot_launch_in_railgun', 'megacells:item_storage_cell_16m') - event.add('tfg:cannot_launch_in_railgun', 'megacells:item_storage_cell_64m') - event.add('tfg:cannot_launch_in_railgun', 'megacells:fluid_storage_cell_1m') - event.add('tfg:cannot_launch_in_railgun', 'megacells:fluid_storage_cell_4m') - event.add('tfg:cannot_launch_in_railgun', 'megacells:fluid_storage_cell_16m') - event.add('tfg:cannot_launch_in_railgun', 'megacells:fluid_storage_cell_64m') - event.add('tfg:cannot_launch_in_railgun', 'create:minecart_contraption') - event.add('tfg:cannot_launch_in_railgun', 'tfg:railgun_ammo_shell') - event.add('tfg:cannot_launch_in_railgun', 'create:cardboard_package_12x10') - event.add('tfg:cannot_launch_in_railgun', 'create:cardboard_package_10x8') - event.add('tfg:cannot_launch_in_railgun', 'create:cardboard_package_10x12') - event.add('tfg:cannot_launch_in_railgun', 'create:cardboard_package_12x12') - event.add('tfg:cannot_launch_in_railgun', 'create_factory_logistics:composite_package') - event.add('tfg:cannot_launch_in_railgun', 'create_factory_logistics:copper_jar_package_8x8') - event.add('tfg:cannot_launch_in_railgun', 'sns:ore_sack') - event.add('tfg:cannot_launch_in_railgun', 'sns:leather_sack') - event.add('tfg:cannot_launch_in_railgun', 'sns:burlap_sack') - event.add('tfg:cannot_launch_in_railgun', 'sns:seed_pouch') - event.add('tfg:cannot_launch_in_railgun', 'sns:straw_basket') - event.add('tfg:cannot_launch_in_railgun', 'sns:frame_pack') - event.add('tfg:cannot_launch_in_railgun', 'tfclunchbox:lunchbox') - event.add('tfg:cannot_launch_in_railgun', 'tfclunchbox:cooling_lunchbox') - event.add('tfg:cannot_launch_in_railgun', 'tfclunchbox:electric_lunchbox') - event.add('tfg:cannot_launch_in_railgun', 'sophisticatedbackpacks:backpack') - event.add('tfg:cannot_launch_in_railgun', 'sophisticatedbackpacks:copper_backpack') - event.add('tfg:cannot_launch_in_railgun', 'sophisticatedbackpacks:iron_backpack') - event.add('tfg:cannot_launch_in_railgun', 'sophisticatedbackpacks:gold_backpack') - event.add('tfg:cannot_launch_in_railgun', 'sophisticatedbackpacks:diamond_backpack') - event.add('tfg:cannot_launch_in_railgun', 'sophisticatedbackpacks:netherite_backpack') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:wood_crate') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:bronze_crate') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:black_bronze_crate') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:bismuth_bronze_crate') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:steel_crate') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:aluminium_crate') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:stainless_steel_crate') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:titanium_crate') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:tungsten_steel_crate') - event.add('tfg:cannot_launch_in_railgun', '#create:toolboxes') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:ulv_super_chest') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:lv_super_chest') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:mv_super_chest') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:hv_super_chest') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:ev_super_chest') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:iv_quantum_chest') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:luv_quantum_chest') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:zpm_quantum_chest') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:uv_quantum_chest') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:uhv_quantum_chest') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:ulv_super_tank') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:lv_super_tank') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:mv_super_tank') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:hv_super_tank') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:ev_super_tank') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:iv_quantum_tank') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:luv_quantum_tank') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:zpm_quantum_tank') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:uv_quantum_tank') - event.add('tfg:cannot_launch_in_railgun', 'gtceu:uhv_quantum_tank') - //#endregion - - // #region Dirt - event.add('tfg:moon_plants', 'tfg:lunar_roots') - event.add('tfg:moon_plants', 'tfg:lunar_sprouts') - - event.add('minecraft:dirt', 'tfg:grass/mars_dirt') - event.add('minecraft:dirt', 'tfg:grass/mars_clay_dirt') - event.add('tfc:dirt', 'tfg:grass/mars_dirt') - event.add('tfc:dirt', 'tfg:grass/mars_clay_dirt') - event.add('tfc:grass', 'tfg:grass/amber_mycelium') - event.add('tfc:grass', 'tfg:grass/amber_clay_mycelium') - event.add('tfc:grass', 'tfg:grass/rusticus_mycelium') - event.add('tfc:grass', 'tfg:grass/rusticus_clay_mycelium') - event.add('tfc:grass', 'tfg:grass/sangnum_mycelium') - event.add('tfc:grass', 'tfg:grass/sangnum_clay_mycelium') - event.add('tfc:farmland', 'tfg:grass/mars_farmland') - event.add('tfc:paths', 'tfg:grass/mars_path') - event.add('tfc:kaolin_clay', 'tfg:grass/amber_kaolin_mycelium') - event.add('tfc:kaolin_clay', 'tfg:grass/rusticus_kaolin_mycelium') - event.add('tfc:kaolin_clay', 'tfg:grass/sangnum_kaolin_mycelium') - // #endregion - - //Mars animal region - event.add('tfg:martian_eggs', 'tfg:sniffer_egg') - event.add('tfg:martian_eggs', 'tfg:wraptor_egg') - event.add('forge:eggs', '#tfg:martian_eggs') - event.add('firmalife:foods/raw_eggs', '#tfg:martian_eggs') - - event.add('tfg:martian_animal_foods', 'betterend:amber_root_product') - event.add('tfg:martian_animal_foods', 'betterend:blossom_berry_product') - event.add('tfg:martian_animal_foods', 'betterend:chorus_mushroom_product') - event.add('tfg:martian_animal_foods', 'betterend:shadow_berry_product') - event.add('tfg:martian_animal_foods', 'betterend:bolux_mushroom_product') - event.add('tfg:martian_animal_foods', 'betterend:cave_pumpkin_chunks') - - event.add('tfg:glacian_ram_food', '#tfg:martian_animal_foods') - event.add('tfg:sniffer_food', '#tfg:martian_animal_foods') - event.add('tfg:wraptor_food', '#tfg:martian_animal_foods') - - event.add('tfg:mineral_rich_wool', 'tfg:wraptor_wool') - event.add('tfg:mineral_rich_wool', 'tfg:sniffer_wool') - //#endregion + // Steam Bloomery + event.add("tfg:steam_bloomery_basic_fuels", "minecraft:coal"); + event.add("tfg:steam_bloomery_basic_fuels", "minecraft:charcoal"); + event.add("tfg:steam_bloomery_basic_fuels", "gtceu:rich_raw_coal"); + event.add("tfg:steam_bloomery_basic_fuels", "gtceu:raw_coal"); + event.add("tfg:steam_bloomery_basic_fuels", "gtceu:poor_raw_coal"); + event.add("tfg:steam_bloomery_basic_fuels", "gtceu:coal_dust"); + event.add("tfg:steam_bloomery_basic_fuels", "gtceu:charcoal_dust"); + //#region holder materials event.remove('forge:dusts', 'tfg:nitrocellulose') event.remove('forge:dusts/nitrocellulose', 'tfg:nitrocellulose') @@ -625,180 +93,25 @@ const registerTFGItemTags = (event) => { event.remove('forge:dusts', 'tfg:cellulose_matrix') event.remove('forge:dusts/cellulose_matrix', 'tfg:cellulose_matrix') - event.remove('balm:ingots', 'tfg:polycaprolactam_fabric') event.remove('tfc:pileable_ingots', 'tfg:polycaprolactam_fabric') event.remove('forge:ingots', 'tfg:polycaprolactam_fabric') event.remove('forge:ingots/tfg_polycaprolactam', 'tfg:polycaprolactam_fabric') - event.remove('balm:nuggets', 'tfg:polycaprolactam_string') event.remove('forge:nuggets', 'tfg:polycaprolactam_string') event.remove('forge:nuggets/tfg_polycaprolactam', 'tfg:polycaprolactam_string') - + //#endregion } //#region Blocks const registerTFGBlockTags = (event) => { - event.add('minecraft:mineable/shovel', 'tfg:ash_pile') - //crop stuff - event.add('tfc:crops', 'tfg:rapeseed') - event.add('tfc:mineable_with_sharp_tool', 'tfg:rapeseed') - - event.add('tfc:crops', 'tfg:sunflower') - event.add('tfc:mineable_with_sharp_tool', 'tfg:sunflower') - - event.add('tfc:crops', 'tfg:flax') - event.add('tfc:mineable_with_sharp_tool', 'tfg:flax') - - // Spice unmovable - - event.add('buildinggadgets2:deny', 'tfg:spice') - event.add('ae2:blacklisted/spatial', 'tfg:spice') - - event.add('buildinggadgets2:deny', 'tfg:geyser_source') - event.add('ae2:blacklisted/spatial', 'tfg:geyser_source') - - event.add('buildinggadgets2:deny', 'tfg:geyser_source_small') - event.add('ae2:blacklisted/spatial', 'tfg:geyser_source_small') - - // Spice unmovable - - event.add('buildinggadgets2:deny', 'tfg:spice') - event.add('ae2:blacklisted/spatial', 'tfg:spice') - - event.add('buildinggadgets2:deny', 'tfg:geyser_source') - event.add('ae2:blacklisted/spatial', 'tfg:geyser_source') - - event.add('buildinggadgets2:deny', 'tfg:geyser_source_small') - event.add('ae2:blacklisted/spatial', 'tfg:geyser_source_small') - - //#region Fision Components - let COMPONENTS = 'deafission:components'; - - // Max Heating - event.add(COMPONENTS, 'tfg:glacian_wool_frame'); // Max Heat 2 - event.add(COMPONENTS, 'minecraft:blue_ice'); // Max Heat 0.5 - event.add(COMPONENTS, 'tfg:aes_insulation_frame'); // Max Heat 1 - event.add(COMPONENTS, 'tfg:moderate_core_frame'); // Max Heat 10 - event.add(COMPONENTS, 'tfg:impure_moderate_core_frame'); // Max Heat 5 - //event.add(COMPONENTS, 'minecraft:blue_ice'); // Max Heat 0.5 - - event.add(COMPONENTS, 'minecraft:bedrock'); // Max Heat 10000 CREATIVE BLOCK - - // Increase Throttle - //event.add(COMPONENTS, 'minecraft:iron_block'); - - // Increase Effiency - //event.add(COMPONENTS, 'minecraft:packed_ice'); - - event.add('tfg:fission_coolant','deafission:components') - - //#endregion - - // #region Nether blocks - event.add('minecraft:nether_carver_replaceables', 'tfg:rock/hardened_deepslate') - event.add('minecraft:moss_replaceable', 'tfg:rock/hardened_deepslate') - event.add('minecraft:base_stone_nether', 'tfg:rock/hardened_deepslate') - event.add('beneath:nether_bush_plantable_on', 'tfg:rock/hardened_deepslate') - event.add('tfc:grass_plantable_on', 'tfg:rock/hardened_deepslate') - event.add('tfc:creeping_plantable_on', 'tfg:rock/hardened_deepslate') - event.add('tfc:rock/hardened', 'tfg:rock/hardened_deepslate') - - event.add('minecraft:nether_carver_replaceables', 'tfg:rock/hardened_blackstone') - event.add('minecraft:moss_replaceable', 'tfg:rock/hardened_blackstone') - event.add('minecraft:base_stone_nether', 'tfg:rock/hardened_blackstone') - event.add('beneath:nether_bush_plantable_on', 'tfg:rock/hardened_blackstone') - event.add('tfc:creeping_plantable_on', 'tfg:rock/hardened_blackstone') - event.add('tfc:rock/hardened', 'tfg:rock/hardened_blackstone') - - event.add('minecraft:nether_carver_replaceables', 'tfg:rock/hardened_dripstone') - event.add('minecraft:base_stone_nether', 'tfg:rock/hardened_dripstone') - event.add('tfc:rock/hardened', 'tfg:rock/hardened_dripstone') - // #endregion - - // #region Mars blocks - event.add('minecraft:dirt', 'tfg:grass/mars_dirt') - event.add('minecraft:dirt', 'tfg:grass/mars_clay_dirt') - event.add('minecraft:dirt', 'tfg:grass/amber_mycelium') - event.add('minecraft:dirt', 'tfg:grass/rusticus_mycelium') - event.add('minecraft:dirt', 'tfg:grass/sangnum_mycelium') - event.add('minecraft:dirt', 'tfg:grass/amber_clay_mycelium') - event.add('minecraft:dirt', 'tfg:grass/rusticus_clay_mycelium') - event.add('minecraft:dirt', 'tfg:grass/sangnum_clay_mycelium') - event.add('minecraft:dirt', 'tfg:grass/amber_kaolin_mycelium') - event.add('minecraft:dirt', 'tfg:grass/rusticus_kaolin_mycelium') - event.add('minecraft:dirt', 'tfg:grass/sangnum_kaolin_mycelium') - event.add('tfc:dirt', 'tfg:grass/mars_dirt') - event.add('tfc:dirt', 'tfg:grass/mars_clay_dirt') - event.add('tfc:farmland', 'tfg:grass/mars_farmland') - event.add('tfc:paths', 'tfg:grass/mars_path') - event.add('tfc:grass', 'tfg:grass/amber_mycelium') - event.add('tfc:grass', 'tfg:grass/rusticus_mycelium') - event.add('tfc:grass', 'tfg:grass/sangnum_mycelium') - event.add('tfc:grass', 'tfg:grass/amber_clay_mycelium') - event.add('tfc:grass', 'tfg:grass/rusticus_clay_mycelium') - event.add('tfc:grass', 'tfg:grass/sangnum_clay_mycelium') - event.add('tfc:grass', 'tfg:grass/amber_kaolin_mycelium') - event.add('tfc:grass', 'tfg:grass/rusticus_kaolin_mycelium') - event.add('tfc:grass', 'tfg:grass/sangnum_kaolin_mycelium') - event.add('tfc:kaolin_clay', 'tfg:grass/amber_kaolin_mycelium') - event.add('tfc:kaolin_clay', 'tfg:grass/rusticus_kaolin_mycelium') - event.add('tfc:kaolin_clay', 'tfg:grass/sangnum_kaolin_mycelium') - event.add('tfg:do_not_destroy_in_space', 'tfg:grass/amber_mycelium') - event.add('tfg:do_not_destroy_in_space', 'tfg:grass/rusticus_mycelium') - event.add('tfg:do_not_destroy_in_space', 'tfg:grass/sangnum_mycelium') - event.add('tfg:do_not_destroy_in_space', 'tfg:grass/amber_clay_mycelium') - event.add('tfg:do_not_destroy_in_space', 'tfg:grass/rusticus_clay_mycelium') - event.add('tfg:do_not_destroy_in_space', 'tfg:grass/sangnum_clay_mycelium') - event.add('tfg:do_not_destroy_in_space', 'tfg:grass/amber_kaolin_mycelium') - event.add('tfg:do_not_destroy_in_space', 'tfg:grass/rusticus_kaolin_mycelium') - event.add('tfg:do_not_destroy_in_space', 'tfg:grass/sangnum_kaolin_mycelium') - event.add('tfg:do_not_destroy_in_space', 'tfg:grass/mars_farmland') - event.add('tfg:do_not_destroy_in_space', 'tfg:grass/mars_path') - event.add('tfc:can_landslide', 'tfg:grass/mars_dirt') - event.add('tfc:can_landslide', 'tfg:grass/mars_clay_dirt') - event.add('tfc:can_landslide', 'tfg:grass/mars_farmland') - event.add('tfc:can_landslide', 'tfg:grass/mars_path') - event.add('tfc:can_landslide', 'tfg:grass/amber_mycelium') - event.add('tfc:can_landslide', 'tfg:grass/rusticus_mycelium') - event.add('tfc:can_landslide', 'tfg:grass/sangnum_mycelium') - event.add('tfc:can_landslide', 'tfg:grass/amber_clay_mycelium') - event.add('tfc:can_landslide', 'tfg:grass/rusticus_clay_mycelium') - event.add('tfc:can_landslide', 'tfg:grass/sangnum_clay_mycelium') - event.add('tfc:can_landslide', 'tfg:grass/amber_kaolin_mycelium') - event.add('tfc:can_landslide', 'tfg:grass/rusticus_kaolin_mycelium') - event.add('tfc:can_landslide', 'tfg:grass/sangnum_kaolin_mycelium') - event.add('minecraft:mineable/shovel', 'tfg:grass/mars_dirt') - event.add('minecraft:mineable/shovel', 'tfg:grass/mars_clay_dirt') - event.add('minecraft:mineable/shovel', 'tfg:grass/mars_path') - event.add('minecraft:mineable/shovel', 'tfg:grass/mars_farmland') - event.add('minecraft:mineable/shovel', 'tfg:grass/amber_mycelium') - event.add('minecraft:mineable/shovel', 'tfg:grass/amber_clay_mycelium') - event.add('minecraft:mineable/shovel', 'tfg:grass/amber_kaolin_mycelium') - event.add('minecraft:mineable/shovel', 'tfg:grass/rusticus_mycelium') - event.add('minecraft:mineable/shovel', 'tfg:grass/rusticus_clay_mycelium') - event.add('minecraft:mineable/shovel', 'tfg:grass/rusticus_kaolin_mycelium') - event.add('minecraft:mineable/shovel', 'tfg:grass/sangnum_mycelium') - event.add('minecraft:mineable/shovel', 'tfg:grass/sangnum_clay_mycelium') - event.add('minecraft:mineable/shovel', 'tfg:grass/sangnum_kaolin_mycelium') - event.add('tfc:bush_plantable_on', 'tfg:grass/mars_farmland') - event.add('tfc:grass_plantable_on', 'tfg:grass/mars_farmland') - event.add('tfc:creeping_plantable_on', 'tfg:grass/mars_farmland') - - event.add('minecraft:mushroom_grow_block', '#tfc:dirt') - event.add('minecraft:mushroom_grow_block', '#tfc:grass') - event.add('minecraft:mushroom_grow_block', '#forge:sand') - event.add('minecraft:mushroom_grow_block', '#forge:gravel') - // #endregion - - event.add('tfg:harvester_harvestable', '#tfc:fruit_tree_leaves') - event.add('tfg:harvester_harvestable', '#tfc:berry_bushes') - event.add('tfg:harvester_harvestable', '#tfc:any_spreading_bush') - event.add('tfg:harvester_harvestable', '#firmalife:grape_strings') - event.add('tfg:harvester_harvestable', '#firmalife:grape_trellis_posts_plant') - //added for QOL but doesnt harvest anything - event.add('tfg:harvester_harvestable', 'firmalife:grape_fluff_red') - event.add('tfg:harvester_harvestable', 'firmalife:grape_fluff_white') + registerTFGPrimitiveBlockTags(event) + registerTFGFoodBlockTags(event) + registerTFGGeneralWorldgenBlockTags(event) + registerTFGBeneathBlockTags(event) + registerTFGMoonBlockTags(event) + registerTFGMarsBlockTags(event) + registerTFGVenusBlockTags(event) event.add('minecraft:mineable/pickaxe', 'tfg:superconductor_coil_large') event.add('minecraft:mineable/pickaxe', 'tfg:superconductor_coil_small') @@ -811,47 +124,12 @@ const registerTFGBlockTags = (event) => { event.add('forge:mineable/wrench', 'tfg:reflector') event.add('forge:mineable/wrench', 'tfg:machine_casing_aluminium_plated_steel') - event.add('tfg:decorative_plant_attachable', '#minecraft:logs') - event.add('tfg:decorative_plant_attachable', 'minecraft:mushroom_stem') - event.add('tfg:decorative_plant_attachable', 'species:alphacene_mushroom_block') - event.add('tfg:decorative_plant_attachable', 'species:alphacene_moss_block') - event.add('tfg:decorative_plant_attachable', 'ad_astra:aeronos_cap') - event.add('tfg:decorative_plant_attachable', 'ad_astra:strophar_cap') - event.add('tfg:decorative_plant_attachable', 'tfg:glacian_leaves') - event.add('tfg:decorative_plant_attachable', 'minecraft:nether_wart_block') - event.add('tfg:decorative_plant_attachable', 'minecraft:warped_wart_block') - event.add('tfg:decorative_plant_attachable', 'betterend:cave_bush') - event.add('tfg:decorative_plant_attachable', 'betterend:lucernia_leaves') - event.add('minecraft:mineable/pickaxe', 'tfg:mars_ice') event.add('minecraft:mineable/pickaxe', 'tfg:dry_ice') event.add('tfcambiental:cold_stuff', 'tfg:mars_ice') event.add('tfcambiental:cold_stuff', 'tfg:dry_ice') event.add('minecraft:ice', 'tfg:mars_ice') event.add('minecraft:ice', 'tfg:dry_ice') - - event.add('minecraft:mineable/shovel', 'tfg:ash_pile') - event.add('minecraft:mineable/shovel', 'tfg:pile/black_sand') - event.add('minecraft:mineable/shovel', 'tfg:pile/white_sand') - event.add('minecraft:mineable/shovel', 'tfg:pile/brown_sand') - event.add('minecraft:mineable/shovel', 'tfg:pile/red_sand') - event.add('minecraft:mineable/shovel', 'tfg:pile/yellow_sand') - event.add('minecraft:mineable/shovel', 'tfg:pile/pink_sand') - event.add('minecraft:mineable/shovel', 'tfg:pile/green_sand') - event.add('minecraft:mineable/shovel', 'tfg:pile/moon_sand') - event.add('minecraft:mineable/shovel', 'tfg:pile/mars_sand') - event.add('minecraft:mineable/shovel', 'tfg:pile/venus_sand') - event.add('minecraft:mineable/shovel', 'tfg:pile/hematitic_sand') - event.add('minecraft:mineable/shovel', 'tfg:pile/mars_sand_covering') - event.add('minecraft:mineable/shovel', 'tfg:pile/venus_sand_covering') - event.add('minecraft:mineable/shovel', 'tfg:pile/hematitic_sand_covering') - - event.add('tfc:can_landslide', 'tfg:sand/fluorapatite/blue') - event.add('tfc:can_landslide', 'tfg:sand/fluorapatite/green') - event.add('tfc:can_landslide', 'tfg:sand/fluorapatite/brown') - event.add('tfc:can_landslide', 'tfg:sand/fluorapatite/orange') - event.add('tfc:can_landslide', 'tfg:sand/fluorapatite/white') - event.add('tfc:can_landslide', 'tfg:sand/fluorapatite/yellow') } //#endregion @@ -876,12 +154,10 @@ const registerTFGFluidTags = (event) => { event.add('tfc:any_drinkables', 'tfg:brown_gravy') event.add('minecraft:water', 'tfg:rich_stock') - event.add('tfc:any_water', 'tfg:rich_stock') event.add('tfc:drinkables', 'tfg:rich_stock') event.add('tfc:any_drinkables', 'tfg:rich_stock') event.add('minecraft:water', 'tfg:light_stock') - event.add('tfc:any_water', 'tfg:light_stock') event.add('tfc:drinkables', 'tfg:light_stock') event.add('tfc:any_drinkables', 'tfg:light_stock') @@ -897,91 +173,37 @@ const registerTFGFluidTags = (event) => { const registerTFGBiomeTags = (event) => { - - // #region TFG Structure Biomes - - event.add('tfg:has_structure/plains_temperate_0', 'tfc:plains') - event.add('tfg:has_structure/plains_temperate_0', 'tfc:plateau') - event.add('tfg:has_structure/plains_temperate_0', 'tfc:highlands') - - event.add('tfg:has_structure/aqueduct', 'tfc:plains') - event.add('tfg:has_structure/aqueduct', 'tfc:highlands') - event.add('tfg:has_structure/aqueduct', 'tfc:lowlands') - event.add('tfg:has_structure/aqueduct', 'tfc:badlands') - - event.add('tfg:has_structure/ocean_moai_0', 'tfc:volcanic_oceanic_mountains') - event.add('tfg:has_structure/ocean_moai_0', 'tfc:volcanic_mountains') - - event.add('tfg:has_structure/illages', 'tfc:plains') - event.add('tfg:has_structure/illages', 'tfc:hills') - event.add('tfg:has_structure/illages', 'tfc:rolling_hills') - event.add('tfg:has_structure/illages', 'tfc:badlands') - event.add('tfg:has_structure/illages', 'tfc:plateau') - event.add('tfg:has_structure/illages', 'tfc:old_mountains') - - event.add('tfg:never_has_structure/illages', '#tfc:is_lake') - event.add('tfg:never_has_structure/illages', '#tfc:is_ocean') - event.add('tfg:never_has_structure/illages', '#tfc:is_river') - - // #endregion - - // #region Nether biomes - event.add('tfg:nether_biomes', 'tfg:nether/lush_hollow') - event.add('minecraft:allows_surface_slime_spawns', 'tfg:nether/lush_hollow') - event.add('minecraft:spawns_cold_variant_frogs', 'tfg:nether/lush_hollow') - - event.add('tfg:nether_biomes', 'tfg:nether/decaying_caverns') - event.add('minecraft:allows_surface_slime_spawns', 'tfg:nether/decaying_caverns') - event.add('minecraft:spawns_warm_variant_frogs', 'tfg:nether/decaying_caverns') - event.add('minecraft:has_closer_water_fog', 'tfg:nether/decaying_caverns') - - event.add('tfg:nether_biomes', 'tfg:nether/basalt_deltas') - event.add('tfg:nether_biomes', 'tfg:nether/ash_forest') - event.add('tfg:nether_biomes', 'tfg:nether/lava_floes') - event.add('tfg:nether_biomes', 'tfg:nether/webbed_lair') - event.add('tfg:nether_biomes', 'tfg:nether/gneiss_caves') - event.add('tfg:nether_biomes', 'tfg:nether/diorite_caves') - event.add('tfg:nether_biomes', 'tfg:nether/gabbro_caves') - event.add('tfg:nether_biomes', 'tfg:nether/granite_caves') - event.add('tfg:nether_biomes', 'tfg:nether/schist_caves') - - event.add('minecraft:has_structure/nether_fossil', '#tfg:nether_biomes') - event.add('minecraft:has_structure/bastion_remnant', '#tfg:nether_biomes') - // #endregion + registerTFGOverworldBiomeTags(event) + registerTFGBeneathBiomeTags(event) + registerTFGMoonBiomeTags(event) + registerTFGMarsBiomeTags(event) + registerTFGVenusBiomeTags(event) } function registerTFGConfiguredFeatures(event) { registerTFGForestConfiguredFeatures(event) } -// Other space decoration is in ad_astra/tags.js const registerTFGPlacedFeatures = (event) => { - - // #region Earth biomes - - event.add('tfc:in_biome/surface_decoration/ocean', 'tfg:earth/rose_quartz/rose_quartz') - event.add('tfc:in_biome/surface_decoration/ocean_reef', 'tfg:earth/rose_quartz/rose_quartz') - event.add('tfc:in_biome/surface_decoration/deep_ocean', 'tfg:earth/rose_quartz/rose_quartz') - event.add('tfc:in_biome/surface_decoration/deep_ocean_trench', 'tfg:earth/rose_quartz/rose_quartz') - event.add('tfc:in_biome/surface_decoration/shore', 'tfg:earth/rose_quartz/rose_quartz') - event.add('tfc:in_biome/surface_decoration/tidal_flats', 'tfg:earth/rose_quartz/rose_quartz') - event.add('tfc:in_biome/surface_decoration/lowlands', 'tfg:earth/rose_quartz/rose_quartz') - event.add('tfc:in_biome/surface_decoration/salt_marsh', 'tfg:earth/rose_quartz/rose_quartz') - event.add('tfc:in_biome/surface_decoration/plains', 'tfg:earth/rose_quartz/rose_quartz') - event.add('tfc:in_biome/surface_decoration/lake', 'tfg:earth/rose_quartz/rose_quartz') - - // #endregion - registerTFGOreVeinFeatures(event); - // #region Nether - - event.add('tfg:nether_veins', 'beneath:vein/crackrack_pipe') - - event.add('tfg:nether_underground_decoration', 'minecraft:spring_open') - event.add('tfg:nether_underground_decoration', 'minecraft:spring_closed') - event.add('tfg:nether_underground_decoration', 'tfg:nether/terrain/magma_blob') - - // #endregion - + registerTFGOverworldPlacedFeatures(event); + registerTFGBeneathPlacedFeatures(event); + registerTFGMoonPlacedFeatures(event); + registerTFGMarsPlacedFeatures(event); + registerTFGVenusPlacedFeatures(event); + registerTFGEuropaPlacedFeatures(event); } + +const registerTFGEntityTypeTags = (event) => { + + registerTFGMoonEntityTypeTags(event) + registerTFGMarsEntityTypeTags(event) + registerTFGVenusEntityTypeTags(event) + registerTFGEuropaEntityTypeTags(event) + + event.add('ad_astra:can_survive_in_space', 'railways:conductor') + event.add('ad_astra:can_survive_in_space', 'endermanoverhaul:pet_enderman') + event.add('ad_astra:can_survive_in_space', 'endermanoverhaul:axolotl_pet_enderman') + event.add('ad_astra:can_survive_in_space', 'endermanoverhaul:hammerhead_pet_enderman') +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/tags.veins.js b/kubejs/server_scripts/tfg/tags.veins.js index 75fd2d810..6b1420420 100644 --- a/kubejs/server_scripts/tfg/tags.veins.js +++ b/kubejs/server_scripts/tfg/tags.veins.js @@ -48,6 +48,7 @@ const registerTFGOreVeinFeatures = (event) => { event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_sphalerite') event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_spodumene') event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_sulfur') + event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_tarkianite') event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_tetrahedrite') event.add('tfc:in_biome/veins', 'tfg:earth/vein/surface_bismuthinite') event.add('tfc:in_biome/veins', 'tfg:earth/vein/surface_cassiterite') diff --git a/kubejs/server_scripts/tfg/venus/data.venus.js b/kubejs/server_scripts/tfg/venus/data.venus.js new file mode 100644 index 000000000..7dc7d555d --- /dev/null +++ b/kubejs/server_scripts/tfg/venus/data.venus.js @@ -0,0 +1,26 @@ +"use strict"; + +function registerTFGVenusBedrockFluidVeins(event) { + + event.add('tfg:venus_sulfuric_acid', vein => { + vein.dimensions('ad_astra:venus') + vein.fluid(() => Fluid.of('gtceu:sulfuric_acid').fluid) + vein.weight(50) + vein.minimumYield(100) + vein.maximumYield(200) + vein.depletionAmount(1) + vein.depletionChance(50) + vein.depletedYield(20) + }) + + event.add('tfg:venus_lava', vein => { + vein.dimensions('ad_astra:venus') + vein.fluid(() => Fluid.of('minecraft:lava').fluid) + vein.weight(50) + vein.minimumYield(200) + vein.maximumYield(400) + vein.depletionAmount(1) + vein.depletionChance(1) + vein.depletedYield(50) + }) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.biochem.js b/kubejs/server_scripts/tfg/venus/recipes.biochem.js similarity index 99% rename from kubejs/server_scripts/tfg/recipes.biochem.js rename to kubejs/server_scripts/tfg/venus/recipes.biochem.js index 734d322fb..c43cd7182 100644 --- a/kubejs/server_scripts/tfg/recipes.biochem.js +++ b/kubejs/server_scripts/tfg/venus/recipes.biochem.js @@ -403,7 +403,8 @@ function registerTFGBiochemRecipes(event) { Fluid.of('tfg:sodium_hypochlorite', 1000), Fluid.of('minecraft:water', 1000) ) - .itemOutputs(Item.of('gtceu:salt')) + .itemOutputs(Item.of('gtceu:salt_dust')) + .circuit(1) .duration(10*20) .EUt(GTValues.VA[GTValues.HV]); @@ -488,7 +489,7 @@ function registerTFGBiochemRecipes(event) { ) .outputFluids( Fluid.of('tfg:crystal_violet', 1000), - Fluid.of('gtceu:water', 3000) + Fluid.of('gtceu:distilled_water', 3000) ) .duration(20*20) .EUt(GTValues.VA[GTValues.IV]); diff --git a/kubejs/server_scripts/tfg/venus/tags.venus.js b/kubejs/server_scripts/tfg/venus/tags.venus.js new file mode 100644 index 000000000..493030147 --- /dev/null +++ b/kubejs/server_scripts/tfg/venus/tags.venus.js @@ -0,0 +1,117 @@ +"use strict"; + +function registerTFGVenusItemTags(event) { + +} + + +function registerTFGVenusBlockTags(event) { + + event.add('buildinggadgets2:deny', 'tfg:geyser_source') + event.add('ae2:blacklisted/spatial', 'tfg:geyser_source') + + event.add('buildinggadgets2:deny', 'tfg:geyser_source_small') + event.add('ae2:blacklisted/spatial', 'tfg:geyser_source_small') + + event.add('ad_astra:venus_stone_replaceables', 'ad_astra:venus_stone') + event.add('ad_astra:venus_stone_replaceables', 'tfg:rock/hardened_venus_stone') + event.add('ad_astra:venus_stone_replaceables', 'gtceu:red_granite') + event.add('ad_astra:venus_stone_replaceables', 'tfg:rock/hardened_red_granite') + event.add('ad_astra:venus_stone_replaceables', 'ad_astra:moon_deepslate') + event.add('ad_astra:venus_stone_replaceables', 'tfg:rock/hardened_moon_deepslate') + event.add('ad_astra:venus_stone_replaceables', 'minecraft:deepslate') + event.add('ad_astra:venus_stone_replaceables', 'tfg:rock/hardened_deepslate') + event.add('ad_astra:venus_stone_replaceables', 'minecraft:dripstone_block') + event.add('ad_astra:venus_stone_replaceables', 'tfg:rock/hardened_dripstone') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/granite') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/granite') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/diorite') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/diorite') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/gabbro') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/gabbro') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/basalt') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/basalt') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/rhyolite') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/andesite') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/dacite') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/dacite') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/slate') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/slate') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/schist') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/schist') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/gneiss') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/gneiss') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/phyllite') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/phyllite') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/raw/quartzite') + event.add('ad_astra:venus_stone_replaceables', 'tfc:rock/hardened/quartzite') + event.add('ad_astra:venus_stone_replaceables', 'tfg:sand/fluorapatite/blue') + event.add('ad_astra:venus_stone_replaceables', 'tfg:sandstone/raw/fluorapatite/blue') + event.add('ad_astra:venus_stone_replaceables', 'tfg:sand/fluorapatite/green') + event.add('ad_astra:venus_stone_replaceables', 'tfg:sandstone/raw/fluorapatite/green') + event.add('ad_astra:venus_stone_replaceables', 'tfg:sand/fluorapatite/brown') + event.add('ad_astra:venus_stone_replaceables', 'tfg:sandstone/raw/fluorapatite/brown') + event.add('ad_astra:venus_stone_replaceables', 'tfg:sand/fluorapatite/orange') + event.add('ad_astra:venus_stone_replaceables', 'tfg:sandstone/raw/fluorapatite/orange') + event.add('ad_astra:venus_stone_replaceables', 'tfg:sand/fluorapatite/white') + event.add('ad_astra:venus_stone_replaceables', 'tfg:sandstone/raw/fluorapatite/white') + event.add('ad_astra:venus_stone_replaceables', 'tfg:sand/fluorapatite/yellow') + event.add('ad_astra:venus_stone_replaceables', 'tfg:sandstone/raw/fluorapatite/yellow') + event.add('ad_astra:venus_stone_replaceables', 'tfg:geyser_slurry') + event.add('ad_astra:venus_stone_replaceables', 'tfg:sulfur_fumes') + event.add('ad_astra:venus_stone_replaceables', 'minecraft:lava') + event.add('ad_astra:venus_stone_replaceables', 'create:scoria') + event.add('ad_astra:venus_stone_replaceables', 'create:scorchia') + event.add('ad_astra:venus_stone_replaceables', 'minecraft:tuff') + + event.add('tfc:can_carve', '#ad_astra:venus_stone_replaceables') + + event.add('tfc:can_landslide', 'tfg:sand/fluorapatite/blue') + event.add('tfc:can_landslide', 'tfg:sand/fluorapatite/green') + event.add('tfc:can_landslide', 'tfg:sand/fluorapatite/brown') + event.add('tfc:can_landslide', 'tfg:sand/fluorapatite/orange') + event.add('tfc:can_landslide', 'tfg:sand/fluorapatite/white') + event.add('tfc:can_landslide', 'tfg:sand/fluorapatite/yellow') +} + +function registerTFGVenusBiomeTags(event) { + global.VENUS_BIOMES.forEach(biome => { + event.add('tfg:venus_biomes', biome); + event.add('ad_astra:has_acid_rain', biome); + }) +} + +function registerTFGVenusEntityTypeTags(event) { + const ENTITIES = [ + 'minecraft:enderman', + "endermanoverhaul:desert_enderman", + "endermanoverhaul:savanna_enderman", + "endermanoverhaul:nether_wastes_enderman", + "ad_astra:sulfur_creeper", + 'species:cliff_hanger', + ] + + ENTITIES.forEach(entity => { + event.add('ad_astra:can_survive_extreme_heat', entity) + event.add('ad_astra:lives_without_oxygen', entity) + }) + + event.add('tfc:deals_slashing_damage', 'endermanoverhaul:desert_enderman') + event.add('tfc:deals_slashing_damage', 'endermanoverhaul:savanna_enderman') + event.add('tfc:deals_slashing_damage', 'endermanoverhaul:nether_wastes_enderman') + event.add('tfc:deals_slashing_damage', 'species:cliff_hanger') +} + +function registerTFGVenusPlacedFeatures(event) { + + // Underground decoration + event.add("tfg:venus_underground_decoration", "tfg:glow_lichen") + event.add('tfg:venus_underground_decoration', 'tfg:venus/underground/loose_rocks') + event.add('tfg:venus_underground_decoration', 'tfc:cave_spike') + event.add('tfg:venus_underground_decoration', 'tfc:cave_column') + event.add('tfg:venus_underground_decoration', 'tfc:large_cave_spike') + event.add('tfg:venus_underground_decoration', 'tfg:venus/underground/noise_cave_stalagmite') + event.add('tfg:venus_underground_decoration', 'tfg:venus/underground/noise_cave_stalagtite') + + event.add("tfg:venus_top_layer_modification", "tfc:surface_loose_rocks") +} diff --git a/kubejs/server_scripts/tfg/worldgen/data.fauna.js b/kubejs/server_scripts/tfg/worldgen/data.fauna.js new file mode 100644 index 000000000..6a54f27b4 --- /dev/null +++ b/kubejs/server_scripts/tfg/worldgen/data.fauna.js @@ -0,0 +1,108 @@ +"use strict"; + + +/** @param {Internal.TFCDataEventJS} event */ +function registerTFGFauna(event) { + + // -108 is the average at z=-4k to z=-6k, which feels like a big enough band + event.fauna( + climate => { + climate.maxTemp(-108) + climate.fuzzy(false) + }, + faunaData => { + faunaData.solidGround(true) + }, + "tfg:glacian_ram") + + event.fauna( + climate => { + climate.minTemp(-102) + climate.maxTemp(-30) + climate.fuzzy(true) + }, + faunaData => { + faunaData.solidGround(true) + }, + "tfg:sniffer") + + event.fauna( + climate => { + climate.minTemp(-100) + climate.fuzzy(true) + }, + faunaData => { + faunaData.solidGround(true) + }, + "tfg:wraptor") + + event.fauna( + climate => { + climate.minTemp(-108) + climate.fuzzy(true) + }, + faunaData => { + faunaData.solidGround(true) + }, + "species:springling") + + event.fauna( + climate => { + climate.minTemp(-109) + climate.fuzzy(true) + }, + faunaData => { + faunaData.solidGround(true) + }, + "species:goober") + + event.fauna( + climate => { + climate.minTemp(-97) + climate.fuzzy(true) + }, + faunaData => { + faunaData.solidGround(true) + }, + "wan_ancient_beasts:walker") + + event.fauna( + climate => { + climate.minTemp(-109) + climate.fuzzy(true) + }, + faunaData => { + faunaData.solidGround(true) + }, + "wan_ancient_beasts:eater") + + event.fauna( + climate => { + climate.minTemp(-100) + climate.fuzzy(true) + }, + faunaData => { + faunaData.solidGround(true) + }, + "wan_ancient_beasts:crusher") + + event.fauna( + climate => { + climate.minTemp(-105) + climate.fuzzy(true) + }, + faunaData => { + faunaData.solidGround(true) + }, + "wan_ancient_beasts:soarer") + + event.fauna( + climate => { + climate.minTemp(-106) + climate.fuzzy(true) + }, + faunaData => { + faunaData.solidGround(true) + }, + "wan_ancient_beasts:glider") +} diff --git a/kubejs/server_scripts/tfg/entities.js b/kubejs/server_scripts/tfg/worldgen/entities.js similarity index 100% rename from kubejs/server_scripts/tfg/entities.js rename to kubejs/server_scripts/tfg/worldgen/entities.js diff --git a/kubejs/server_scripts/tfg/events.chunks.js b/kubejs/server_scripts/tfg/worldgen/events.chunks.js similarity index 100% rename from kubejs/server_scripts/tfg/events.chunks.js rename to kubejs/server_scripts/tfg/worldgen/events.chunks.js diff --git a/kubejs/server_scripts/tfg/events.forests.js b/kubejs/server_scripts/tfg/worldgen/events.forests.js similarity index 100% rename from kubejs/server_scripts/tfg/events.forests.js rename to kubejs/server_scripts/tfg/worldgen/events.forests.js diff --git a/kubejs/server_scripts/tfc/select_climates.js b/kubejs/server_scripts/tfg/worldgen/select_climates.js similarity index 100% rename from kubejs/server_scripts/tfc/select_climates.js rename to kubejs/server_scripts/tfg/worldgen/select_climates.js diff --git a/kubejs/server_scripts/tfg/worldgen/tags.general_worldgen.js b/kubejs/server_scripts/tfg/worldgen/tags.general_worldgen.js new file mode 100644 index 000000000..55ba87c95 --- /dev/null +++ b/kubejs/server_scripts/tfg/worldgen/tags.general_worldgen.js @@ -0,0 +1,212 @@ +"use strict"; + +function registerTFGGeneralWorldgenItemTags(event) { + + // Actually "layers", can't rename them without screwing with peoples' worlds + event.add('c:hidden_from_recipe_viewers', 'tfg:ash_pile') + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/black_sand') + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/brown_sand') + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/green_sand') + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/pink_sand') + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/red_sand') + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/white_sand') + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/yellow_sand') + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/mars_sand') + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/moon_sand') + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/venus_sand') + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/hematitic_sand') + + // Actually "piles", the kind that can hide plants inside them + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/mars_sand_covering') + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/venus_sand_covering') + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/hematitic_sand_covering') + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/mars_snow_covering') + + event.add('forge:cobblestone', 'ad_astra:moon_cobblestone') + event.add('forge:cobblestone', 'ad_astra:mars_cobblestone') + event.add('forge:cobblestone', 'ad_astra:venus_cobblestone') + event.add('forge:cobblestone', 'ad_astra:mercury_cobblestone') + event.add('forge:cobblestone', 'ad_astra:glacio_cobblestone') + + event.add('forge:smooth_stone_slab', 'ad_astra:polished_moon_stone_slab') + event.add('forge:smooth_stone_slab', 'ad_astra:polished_mars_stone_slab') + event.add('forge:smooth_stone_slab', 'ad_astra:polished_venus_stone_slab') + event.add('forge:smooth_stone_slab', 'ad_astra:polished_mercury_stone_slab') + event.add('forge:smooth_stone_slab', 'ad_astra:polished_glacio_stone_slab') + event.add('forge:smooth_stone_slab', 'ad_astra:polished_permafrost_slab') + event.add('forge:smooth_stone_slab', 'minecraft:polished_deepslate_slab') + event.add('forge:smooth_stone_slab', 'minecraft:polished_blackstone_slab') + event.add('forge:smooth_stone_slab', 'minecraft:polished_blackstone_brick_slab') + + event.add('tfc:rock/smooth', 'minecraft:smooth_stone') + + event.add('tfc:rock/raw', 'minecraft:deepslate') + event.add('tfc:rock/raw', 'minecraft:blackstone') + event.add('tfc:rock/raw', 'minecraft:dripstone_block') + + event.add('minecraft:wart_blocks', 'ad_astra:aeronos_cap') + event.add('minecraft:wart_blocks', 'ad_astra:strophar_cap') + event.add('minecraft:wart_blocks', 'minecraft:mushroom_stem') + event.add('tfc:compost_greens', 'minecraft:nether_wart_block') + event.add('tfc:compost_greens', 'minecraft:warped_wart_block') +} + +function registerTFGGeneralWorldgenBlockTags(event) { + + // All new stones + global.EXTRATERRESTRIAL_RAW_ROCKS.forEach(rock => { + event.add('forge:stone', rock) + event.add('tfc:breaks_when_isolated', rock) + event.add('tfc:rock/raw', rock) + event.add('minecraft:mineable/pickaxe', rock) + event.add('tfc:can_carve', rock) + // Collapse tags also require a collapse recipe to work. + // Don't add the recipe if you don't want them to actually collapse! + event.add('tfc:can_collapse', rock) + event.add('tfc:can_trigger_collapse', rock) + event.add('tfc:can_start_collapse', rock) + event.add('tfc:powderkeg_breaking_blocks', rock) + event.add('tfc:bloomery_insulation', rock) + event.add('firmalife:oven_insulation', rock) + event.add('tfc:forge_insulation', rock) + }) + + global.EXTRATERRESTRIAL_HARDENED_ROCKS.forEach(rock => { + event.add('minecraft:mineable/pickaxe', rock) + event.add('tfc:can_collapse', rock) + event.add('tfc:can_trigger_collapse', rock) + event.add('tfc:powderkeg_breaking_blocks', rock) + event.add('tfc:bloomery_insulation', rock) + event.add('firmalife:oven_insulation', rock) + event.add('tfc:forge_insulation', rock) + event.add('tfc:can_carve', rock) + }) + + event.add('tfc:can_landslide', 'minecraft:cobbled_deepslate') + event.add('forge:cobblestone/normal', 'minecraft:cobbled_deepslate') + + event.add('tfc:breaks_when_isolated', 'minecraft:deepslate') + event.add('tfc:breaks_when_isolated', 'minecraft:blackstone') + event.add('tfc:breaks_when_isolated', 'minecraft:gilded_blackstone') + event.add('tfc:breaks_when_isolated', 'minecraft:dripstone_block') + + event.add('forge:stone', 'minecraft:blackstone') + + event.add('tfg:rock_stairs', 'minecraft:cobbled_deepslate_stairs') + event.add('tfg:rock_slabs', 'minecraft:cobbled_deepslate_slab') + event.add('tfg:rock_walls', 'minecraft:cobbled_deepslate_wall') + event.add('tfg:brick_stairs', 'minecraft:deepslate_brick_stairs') + event.add('tfg:brick_slabs', 'minecraft:deepslate_brick_slab') + event.add('tfg:brick_walls', 'minecraft:deepslate_brick_wall') + event.add('tfg:brick_stairs', 'minecraft:deepslate_tile_stairs') + event.add('tfg:brick_slabs', 'minecraft:deepslate_tile_slab') + event.add('tfg:brick_walls', 'minecraft:deepslate_tile_wall') + event.add('tfg:rock_stairs', 'minecraft:blackstone_stairs') + event.add('tfg:rock_slabs', 'minecraft:blackstone_slab') + event.add('tfg:rock_walls', 'minecraft:blackstone_wall') + event.add('tfg:brick_stairs', 'minecraft:blackstone_stairs') + event.add('tfg:brick_slabs', 'minecraft:blackstone_slab') + event.add('tfg:brick_walls', 'minecraft:blackstone_wall') + + event.add('tfc:bloomery_insulation', 'minecraft:polished_deepslate'); + event.add('tfc:forge_insulation', 'minecraft:polished_deepslate'); + event.add('tfc:bloomery_insulation', 'minecraft:polished_blackstone'); + event.add('tfc:forge_insulation', 'minecraft:polished_blackstone'); + event.add('tfc:bloomery_insulation', 'minecraft:deepslate_tiles'); + event.add('tfc:forge_insulation', 'minecraft:deepslate_tiles'); + event.add('tfc:bloomery_insulation', 'minecraft:cracked_deepslate_tiles'); + event.add('tfc:forge_insulation', 'minecraft:cracked_deepslate_tiles'); + event.add('tfc:bloomery_insulation', 'minecraft:chiseled_deepslate'); + event.add('tfc:forge_insulation', 'minecraft:chiseled_deepslate'); + event.add('tfc:bloomery_insulation', 'minecraft:chiseled_polished_blackstone'); + event.add('tfc:forge_insulation', 'minecraft:chiseled_polished_blackstone'); + event.add('tfc:bloomery_insulation', 'minecraft:gilded_blackstone'); + event.add('tfc:forge_insulation', 'minecraft:gilded_blackstone'); + event.add('tfc:bloomery_insulation', 'minecraft:basalt'); + event.add('tfc:forge_insulation', 'minecraft:basalt'); + event.add('tfc:bloomery_insulation', 'minecraft:smooth_basalt'); + event.add('tfc:forge_insulation', 'minecraft:smooth_basalt'); + + // Ores + event.add("minecraft:mineable/pickaxe", "#forge:ores"); + event.add("minecraft:needs_iron_tool", "#forge:ores"); + + event.add("tfc:can_collapse", "#forge:ores"); + event.add("tfc:can_start_collapse", "#forge:ores"); + event.add("tfc:can_trigger_collapse", "#forge:ores"); + event.add("c:hidden_from_recipe_viewers", "#forge:ores"); + + event.add("tfc:can_collapse", "#forge:raw_ore_blocks"); + event.add("tfc:can_start_collapse", "#forge:raw_ore_blocks"); + event.add("tfc:can_trigger_collapse", "#forge:raw_ore_blocks"); + event.add("c:hidden_from_recipe_viewers", "#forge:raw_ore_blocks"); + + // Let GT indicators be covered by snow + forEachMaterial((material) => { + if (material.hasProperty(PropertyKey.ORE)) { + const indicator = `gtceu:${material.getName()}_indicator`; + + event.add("tfg:dust_ore_indicators", indicator); + event.add("tfc:can_be_snow_piled", indicator); + event.add("tfc:can_be_ice_piled", indicator); + + if (material.hasProperty(PropertyKey.GEM)) { + const bud = `gtceu:${material.getName()}_bud_indicator`; + + event.add("tfg:bud_ore_indicators", bud); + event.add("tfc:can_be_snow_piled", bud); + event.add("tfc:can_be_ice_piled", bud); + + event.add("minecraft:mineable/pickaxe", bud); + } + } + }); + + // More rock tags + event.add('tfc:can_landslide', 'ad_astra:moon_sand') + event.add('tfc:can_landslide', 'ad_astra:mars_sand') + event.add('tfc:can_landslide', 'ad_astra:venus_sand') + event.add('tfc:can_landslide', 'minecraft:red_sand') + + event.add('tfc:can_landslide', 'ad_astra:moon_cobblestone') + event.add('tfc:can_landslide', 'ad_astra:mars_cobblestone') + event.add('tfc:can_landslide', 'ad_astra:venus_cobblestone') + event.add('tfc:can_landslide', 'ad_astra:mercury_cobblestone') + event.add('tfc:can_landslide', 'ad_astra:glacio_cobblestone') + event.add('tfc:can_landslide', 'gtceu:red_granite_cobblestone') + + event.add('forge:cobblestone', 'ad_astra:moon_cobblestone') + event.add('forge:cobblestone', 'ad_astra:mars_cobblestone') + event.add('forge:cobblestone', 'ad_astra:venus_cobblestone') + event.add('forge:cobblestone', 'ad_astra:mercury_cobblestone') + event.add('forge:cobblestone', 'ad_astra:glacio_cobblestone') + + event.add('tfc:can_landslide', 'ad_astra:moon_cobblestone_slab') + event.add('tfc:can_landslide', 'ad_astra:mars_cobblestone_slab') + event.add('tfc:can_landslide', 'ad_astra:venus_cobblestone_slab') + event.add('tfc:can_landslide', 'ad_astra:mercury_cobblestone_slab') + event.add('tfc:can_landslide', 'ad_astra:glacio_cobblestone_slab') + + event.add('tfc:can_landslide', 'ad_astra:moon_cobblestone_stairs') + event.add('tfc:can_landslide', 'ad_astra:mars_cobblestone_stairs') + event.add('tfc:can_landslide', 'ad_astra:venus_cobblestone_stairs') + event.add('tfc:can_landslide', 'ad_astra:mercury_cobblestone_stairs') + event.add('tfc:can_landslide', 'ad_astra:glacio_cobblestone_stairs') + + event.add('tfg:rock_stairs', 'ad_astra:moon_stone_stairs') + event.add('tfg:rock_stairs', 'ad_astra:mars_stone_stairs') + event.add('tfg:rock_stairs', 'ad_astra:venus_stone_stairs') + event.add('tfg:rock_stairs', 'ad_astra:mercury_stone_stairs') + event.add('tfg:rock_stairs', 'ad_astra:glacio_stone_stairs') + + event.add('tfg:rock_slabs', 'ad_astra:moon_stone_slab') + event.add('tfg:rock_slabs', 'ad_astra:mars_stone_slab') + event.add('tfg:rock_slabs', 'ad_astra:venus_stone_slab') + event.add('tfg:rock_slabs', 'ad_astra:mercury_stone_slab') + event.add('tfg:rock_slabs', 'ad_astra:glacio_stone_slab') + + event.add('minecraft:mushroom_grow_block', '#tfc:dirt') + event.add('minecraft:mushroom_grow_block', '#tfc:grass') + event.add('minecraft:mushroom_grow_block', '#forge:sand') + event.add('minecraft:mushroom_grow_block', '#forge:gravel') +} diff --git a/kubejs/server_scripts/tfg/worldgen/tags.overworld.js b/kubejs/server_scripts/tfg/worldgen/tags.overworld.js new file mode 100644 index 000000000..7bd81d8d9 --- /dev/null +++ b/kubejs/server_scripts/tfg/worldgen/tags.overworld.js @@ -0,0 +1,76 @@ +"use strict"; + +function registerTFGOverworldBiomeTags(event) { + + // Structures + event.add('tfg:has_structure/plains_temperate_0', 'tfc:plains') + event.add('tfg:has_structure/plains_temperate_0', 'tfc:plateau') + event.add('tfg:has_structure/plains_temperate_0', 'tfc:highlands') + + event.add('tfg:has_structure/aqueduct', 'tfc:plains') + event.add('tfg:has_structure/aqueduct', 'tfc:highlands') + event.add('tfg:has_structure/aqueduct', 'tfc:lowlands') + event.add('tfg:has_structure/aqueduct', 'tfc:badlands') + + event.add('tfg:has_structure/ocean_moai_0', 'tfc:volcanic_oceanic_mountains') + event.add('tfg:has_structure/ocean_moai_0', 'tfc:volcanic_mountains') + + event.add('tfg:has_structure/illages', 'tfc:plains') + event.add('tfg:has_structure/illages', 'tfc:hills') + event.add('tfg:has_structure/illages', 'tfc:rolling_hills') + event.add('tfg:has_structure/illages', 'tfc:badlands') + event.add('tfg:has_structure/illages', 'tfc:plateau') + event.add('tfg:has_structure/illages', 'tfc:old_mountains') + + event.add('tfg:never_has_structure/illages', '#tfc:is_lake') + event.add('tfg:never_has_structure/illages', '#tfc:is_ocean') + event.add('tfg:never_has_structure/illages', '#tfc:is_river') + + // Kaolin + event.add("tfc:kaolin_clay_spawns_in", "tfc:rolling_hills"); + + global.TFC_BIOMES.forEach(biome => { + event.add('tfg:overworld_biomes', biome); + }) +} + +function registerTFGOverworldPlacedFeatures(event) { + + // Rose quartz + event.add('tfc:in_biome/surface_decoration/ocean', 'tfg:earth/rose_quartz/rose_quartz') + event.add('tfc:in_biome/surface_decoration/ocean_reef', 'tfg:earth/rose_quartz/rose_quartz') + event.add('tfc:in_biome/surface_decoration/deep_ocean', 'tfg:earth/rose_quartz/rose_quartz') + event.add('tfc:in_biome/surface_decoration/deep_ocean_trench', 'tfg:earth/rose_quartz/rose_quartz') + event.add('tfc:in_biome/surface_decoration/shore', 'tfg:earth/rose_quartz/rose_quartz') + event.add('tfc:in_biome/surface_decoration/tidal_flats', 'tfg:earth/rose_quartz/rose_quartz') + event.add('tfc:in_biome/surface_decoration/lowlands', 'tfg:earth/rose_quartz/rose_quartz') + event.add('tfc:in_biome/surface_decoration/salt_marsh', 'tfg:earth/rose_quartz/rose_quartz') + event.add('tfc:in_biome/surface_decoration/plains', 'tfg:earth/rose_quartz/rose_quartz') + event.add('tfc:in_biome/surface_decoration/lake', 'tfg:earth/rose_quartz/rose_quartz') + + // Add back the non-ore ones + event.add("tfc:in_biome/veins", "tfc:vein/gravel"); + event.add("tfc:in_biome/veins", "tfc:vein/kaolin_disc"); + event.add("tfc:in_biome/veins", "tfc:vein/granite_dike"); + event.add("tfc:in_biome/veins", "tfc:vein/diorite_dike"); + event.add("tfc:in_biome/veins", "tfc:vein/gabbro_dike"); + + // Geodes + event.add("tfc:in_biome/veins", "tfg:earth/geode/amethyst"); + event.add("tfc:in_biome/veins", "tfg:earth/geode/barite"); + event.add("tfc:in_biome/veins", "tfg:earth/geode/calcite"); + event.add("tfc:in_biome/veins", "tfg:earth/geode/gypsum"); + event.add("tfc:in_biome/veins", "tfg:earth/geode/opal"); + event.add("tfc:in_biome/veins", "tfg:earth/geode/pyrite"); + event.add("tfc:in_biome/veins", "tfg:earth/geode/quartzite"); + + // Crops + event.add("tfc:feature/crops", "tfg:earth/sunflower_patch"); + event.add("tfc:feature/crops", "tfg:earth/rapeseed_patch"); + event.add("tfc:feature/crops", "tfg:earth/flax_patch"); + + // Other decoration + event.add("tfc:in_biome/underground_decoration", "tfg:glow_lichen"); + event.add("tfc:in_biome/underground_decoration", "tfg:earth/sulfur_patch"); + event.add("tfc:in_biome/underground_decoration", "tfg:earth/oil_spout"); +} \ No newline at end of file diff --git a/kubejs/server_scripts/vintage_improvements/recipes.js b/kubejs/server_scripts/vintage_improvements/recipes.js index 9e0d8d7d3..d2099231b 100644 --- a/kubejs/server_scripts/vintage_improvements/recipes.js +++ b/kubejs/server_scripts/vintage_improvements/recipes.js @@ -755,6 +755,20 @@ function registerVintageImprovementsRecipes(event) { }).id(`tfg:vi/curving/wrought_iron_grill`) // #endregion + + // #region Centrifuging + + //event.custom({ + // type: 'vintageimprovements:centrifugation', + // ingredients: [{ tag: 'forge:dusts/oilsands' }], + // results: [ + // { item: "tfc:sand/yellow", chance: 0.5 }, + // { fluid: "gtceu:oil", amount: 2000 } + // ], + // processingTime: 10 * 20 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER + //}).id(`tfg:vi/centrifuge/oilsands`) + + // #endregion } function generateHammeringRecipe(event, material, blows, anvil) { diff --git a/kubejs/server_scripts/wan_ancient_beasts/recipes.js b/kubejs/server_scripts/wan_ancient_beasts/recipes.js index 2b65d3851..9f083ead7 100644 --- a/kubejs/server_scripts/wan_ancient_beasts/recipes.js +++ b/kubejs/server_scripts/wan_ancient_beasts/recipes.js @@ -38,19 +38,6 @@ const registerWABRecipes = (event) => { .duration(400) .EUt(30) - event.recipes.tfc.damage_inputs_shapeless_crafting( - event.shapeless('4x tfg:fletching', [ - 'wan_ancient_beasts:glider_feather', - '#forge:tools/knives' - ]).id('tfg:shapeless/glider_feather_fletching')) - - event.recipes.gtceu.assembler('tfg:assembler/glider_feather_fletching') - .itemInputs('1x wan_ancient_beasts:glider_feather') - .itemOutputs('4x tfg:fletching') - .duration(20) - .circuit(4) - .EUt(GTValues.VA[GTValues.ULV]) - event.shaped('wan_ancient_beasts:reinforced_shield', [ 'BAB', 'DCD', diff --git a/kubejs/server_scripts/wan_ancient_beasts/tags.js b/kubejs/server_scripts/wan_ancient_beasts/tags.js index 044e0c9af..5e5e95e49 100644 --- a/kubejs/server_scripts/wan_ancient_beasts/tags.js +++ b/kubejs/server_scripts/wan_ancient_beasts/tags.js @@ -30,7 +30,7 @@ const registerWABItemTags = (event) => { event.add('tfc:foods/cooked_meats', 'wan_ancient_beasts:cooked_toxlacanth') event.add('firmalife:foods/cooked_fish', 'wan_ancient_beasts:cooked_toxlacanth') - event.add('tfc:food/meats', 'wan_ancient_beasts:cooked_toxlacanth') + event.add('tfc:foods/meats', 'wan_ancient_beasts:cooked_toxlacanth') // Eater meat event.add('tfc:foods/raw_meats', 'wan_ancient_beasts:raw_ancient_meat') diff --git a/kubejs/startup_scripts/ad_astra/materials.js b/kubejs/startup_scripts/ad_astra/materials.js deleted file mode 100644 index 98d9d69f3..000000000 --- a/kubejs/startup_scripts/ad_astra/materials.js +++ /dev/null @@ -1,92 +0,0 @@ -// priority: 0 -"use strict"; - -const registerAdAstraMaterials = (event) => { - - event.create('armalcolite') - .gem(2) - .components('1x magnesium', '1x rutile', '1x ilmenite') - .color(0x443333) - .secondaryColor(0x5e2c21) - .iconSet(GTMaterialIconSet.getByName('tfc_emerald')) - .ore() - .addOreByproducts('rutile', 'rutile', 'ilmenite') - - // #region ad astra ores - - // moon - event.create('desh') - .components('2x olivine', '1x rutile', '4x nitrogen') - .color(0xF39A4C) - .secondaryColor(0xF35A6C) - .iconSet(GTMaterialIconSet.getByName('tfc_hematite')) - .ore() - .addOreByproducts('olivine', 'rutile', 'rutile') - .ingot() - .liquid() - .blastTemp(2800, 'mid', GTValues.VA[GTValues.HV]) - .flags( - GTMaterialFlags.FORCE_GENERATE_BLOCK, - GTMaterialFlags.GENERATE_PLATE, - GTMaterialFlags.GENERATE_ROD, - GTMaterialFlags.GENERATE_DENSE, - GTMaterialFlags.GENERATE_GEAR, - GTMaterialFlags.GENERATE_FRAME, - GTMaterialFlags.DISABLE_ALLOY_BLAST - ) - - // mars - event.create('ostrum') - .components('2x pitchblende', '1x tricalcium_phosphate', '1x bauxite', '1x silver', '1x beryllium') - .color(0xbd7980) - .secondaryColor(0xA66C8D) - .iconSet(GTMaterialIconSet.getByName('tfc_cassiterite')) - .ingot() - .liquid() - .blastTemp(3700, 'mid', GTValues.VA[GTValues.EV]) - .flags( - GTMaterialFlags.DISABLE_DECOMPOSITION, - GTMaterialFlags.FORCE_GENERATE_BLOCK, - GTMaterialFlags.GENERATE_PLATE, - GTMaterialFlags.GENERATE_ROD, - GTMaterialFlags.GENERATE_FRAME, - GTMaterialFlags.DISABLE_ALLOY_BLAST - ) - - // venus? - event.create('calorite') - //.components('2x mercury', '1x tungsten', '1x rhodium', '2x sulfur') - .color(0xC94D4E) - .secondaryColor(0x9A296A) - .iconSet(GTMaterialIconSet.getByName('tfc_copper')) - .ore() - .ingot() - .flags( - GTMaterialFlags.FORCE_GENERATE_BLOCK, - GTMaterialFlags.GENERATE_PLATE - ) - - // ??? - event.create('etrium') - //.components('1x niobium', '1x molybdenum', '1x ruthenium', '3x carbon', '1x monochloramine') - .color(0x7BFCD7) - .secondaryColor(0x3582D2) - .iconSet(GTMaterialIconSet.getByName('tfc_silver')) - .ore() - .ingot() - .flags( - GTMaterialFlags.FORCE_GENERATE_BLOCK, - GTMaterialFlags.GENERATE_PLATE, - GTMaterialFlags.GENERATE_ROD - ) - - // #endregion -} - -const registerAdAstraMaterialModification = (event) => { - - const $FLUID_PIPE_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.FluidPipeProperties') - - // Ostrum fluid pipe - same flow rate as titanium, higher temp range - GTMaterials.get('ostrum').setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(3700, 150, true, false, true, false)); -} \ No newline at end of file diff --git a/kubejs/startup_scripts/ae2/fluids.js b/kubejs/startup_scripts/ae2/fluids.js deleted file mode 100644 index 60038bb0b..000000000 --- a/kubejs/startup_scripts/ae2/fluids.js +++ /dev/null @@ -1,13 +0,0 @@ -// priority: 0 -"use strict"; - -const registerAE2Fluids = (event) => { - -// AE2 Moon Fluix - - event.create('tfg:cryogenized_fluix') - .thickTexture(0xde8cfb) - .bucketColor(0xde8cfb) - .luminosity(14) - .temperature(10) -} \ No newline at end of file diff --git a/kubejs/startup_scripts/chisel_and_bits/constants.js b/kubejs/startup_scripts/chisel_and_bits/constants.js deleted file mode 100644 index 5c8a9ee0f..000000000 --- a/kubejs/startup_scripts/chisel_and_bits/constants.js +++ /dev/null @@ -1,17 +0,0 @@ -// priority: 0 -"use strict"; - -global.CHISEL_AND_BITS_DISABLED_ITEMS = [ - 'chiselsandbits:block_bit', - 'chiselsandbits:chiseled_block', - - 'chiselsandbits:chisel_stone', - 'chiselsandbits:chisel_iron', - 'chiselsandbits:chisel_gold', - 'chiselsandbits:chisel_netherite', - - 'chiselsandbits:bit_bag_dyed', - 'chiselsandbits:pattern_single_use', - 'chiselsandbits:pattern_multi_use', - 'chiselsandbits:monocle' -]; \ No newline at end of file diff --git a/kubejs/startup_scripts/constants.js b/kubejs/startup_scripts/constants.js new file mode 100644 index 000000000..f23433066 --- /dev/null +++ b/kubejs/startup_scripts/constants.js @@ -0,0 +1,6 @@ +// priority: 0 +"use strict"; + +global.TAB_IDS = Object.freeze({ + CREATE_BASE: 'create:base' +}) \ No newline at end of file diff --git a/kubejs/startup_scripts/create/constants.js b/kubejs/startup_scripts/create/constants.js index 65e50e6e2..7d2b4c4b0 100644 --- a/kubejs/startup_scripts/create/constants.js +++ b/kubejs/startup_scripts/create/constants.js @@ -68,8 +68,6 @@ global.CREATE_DISABLED_ITEMS = [ 'create:creative_fluid_tank', 'create:unprocessed_obsidian_sheet', 'create:creative_motor', - 'create:refined_radiance_casing', - 'create:shadow_steel_casing', 'create:wooden_bracket', 'create:red_sand_paper', 'create:empty_blaze_burner', diff --git a/kubejs/startup_scripts/create/creative_tab.js b/kubejs/startup_scripts/create/creative_tab.js new file mode 100644 index 000000000..61c769984 --- /dev/null +++ b/kubejs/startup_scripts/create/creative_tab.js @@ -0,0 +1,7 @@ +// priority: 0 +"use strict"; + +function modifyCreateCreativeTab(event) { + event.add('create:shadow_steel_casing') + event.add('create:refined_radiance_casing') +} diff --git a/kubejs/startup_scripts/firmalife/constants.js b/kubejs/startup_scripts/firmalife/constants.js index 83747ad96..4a04d2c2c 100644 --- a/kubejs/startup_scripts/firmalife/constants.js +++ b/kubejs/startup_scripts/firmalife/constants.js @@ -35,7 +35,10 @@ global.FIRMALIFE_DISABLED_ITEMS = [ // disabled so people use tongs instead 'firmalife:peel', - 'firmalife:bucket/chocolate' + 'firmalife:bucket/chocolate', + 'firmalife:bucket/fruity_fluid', + 'firmalife:bucket/metal/chromium', + 'firmalife:bucket/metal/stainless_steel' ]; global.FIRMALIFE_HIDED_ITEMS = [ diff --git a/kubejs/startup_scripts/gtceu/constants.js b/kubejs/startup_scripts/gtceu/constants.js index 85c03441a..4666d23a6 100644 --- a/kubejs/startup_scripts/gtceu/constants.js +++ b/kubejs/startup_scripts/gtceu/constants.js @@ -156,11 +156,6 @@ global.GTCEU_DISABLED_ITEMS = /** @type {const} */ ([ "gtceu:titanium_leggings", "gtceu:titanium_boots", - // Huh - "gtceu:wax_dust", - "gtceu:small_wax_dust", - "gtceu:tiny_wax_dust", - // Sculk "gtceu:tiny_echo_shard_dust", "gtceu:small_echo_shard_dust", diff --git a/kubejs/startup_scripts/gtceu/items.js b/kubejs/startup_scripts/gtceu/items.js deleted file mode 100644 index 6b29ca59f..000000000 --- a/kubejs/startup_scripts/gtceu/items.js +++ /dev/null @@ -1,45 +0,0 @@ -// priority: 0 -"use strict"; - -const registerGTCEuItems = (event) => { - - event.create('tfg:ulv_universal_circuit') - .translationKey('item.ulv_universal_circuit') - - event.create('tfg:lv_universal_circuit') - .translationKey('item.lv_universal_circuit') - - event.create('tfg:mv_universal_circuit') - .translationKey('item.mv_universal_circuit') - - event.create('tfg:hv_universal_circuit') - .translationKey('item.hv_universal_circuit') - - event.create('tfg:ev_universal_circuit') - .translationKey('item.ev_universal_circuit') - - event.create('tfg:iv_universal_circuit') - .translationKey('item.iv_universal_circuit') - - event.create('tfg:luv_universal_circuit') - .translationKey('item.luv_universal_circuit') - - event.create('tfg:zpm_universal_circuit') - .translationKey('item.zpm_universal_circuit') - - event.create('tfg:uv_universal_circuit') - .translationKey('item.uv_universal_circuit') - - event.create('tfg:uhv_universal_circuit') - .translationKey('item.uhv_universal_circuit') - - event.create('tfg:chipboard_composite') - .translationKey('item.chipboard_composite') - - event.create('tfg:treated_chipboard_composite') - .translationKey('item.treated_chipboard_composite') - - event.create('tfg:high_density_treated_fiberboard') - .translationKey('item.high_density_treated_fiberboard') - -} diff --git a/kubejs/startup_scripts/gtceu/machines.js b/kubejs/startup_scripts/gtceu/machines.js index 45e7d1b21..6bef61a11 100644 --- a/kubejs/startup_scripts/gtceu/machines.js +++ b/kubejs/startup_scripts/gtceu/machines.js @@ -270,8 +270,8 @@ const registerGTCEuMachines = (event) => { .recipeType('nuclear_fuel_factory') .recipeModifiers( [ - GTRecipeModifiers.PARALLEL_HATCH, - (machine, recipe) => GTRecipeModifiers.pyrolyseOvenOverclock(machine, recipe), + GTRecipeModifiers.PARALLEL_HATCH, + (machine, recipe) => GTRecipeModifiers.pyrolyseOvenOverclock(machine, recipe), GTRecipeModifiers.BATCH_MODE ] ) @@ -447,59 +447,39 @@ const registerGTCEuMachines = (event) => { 'gtceu:block/casings/gcym/nonconducting_casing', 'gtceu:block/multiblock/distillation_tower') - // Extraterrestrial Ore Fabricator - event.create('ostrum_linear_accelerator', 'multiblock') + //#region Power Rework + + // Coal Liquefaction Tower + + event.create('coal_liquefaction_tower', 'multiblock') + .machine((holder) => new CoilWorkableElectricMultiblockMachine(holder)) .rotationState(RotationState.NON_Y_AXIS) - .recipeType('ostrum_linear_accelerator') - .recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, GTRecipeModifiers.OC_NON_PERFECT, GTRecipeModifiers.BATCH_MODE]) - .appearanceBlock(() => Block.getBlock('tfg:casings/machine_casing_mars')) + .recipeType('coal_liquefaction_tower') + .recipeModifiers([(machine, recipe) => GTRecipeModifiers.crackerOverclock(machine, recipe), GTRecipeModifiers.BATCH_MODE]) + .appearanceBlock(() => Block.getBlock('gtceu:solid_machine_casing')) .pattern(definition => FactoryBlockPattern.start() - .aisle('AAAAAAAAA', 'AAAAAAAAA', 'AAAAAAAAA', ' ', ' ' ) - .aisle('BAAAAAAAA', 'B#######D', 'BBBBBBBAA', ' BCCCB ', ' BBBBB ' ) - .aisle('AAAAAAAAA', 'A#######D', 'BB###BBAA', ' C###C ', ' BHHHB ' ) - .aisle('BEBEBEAAA', 'BEBEBEA#D', 'BBBBBBBAA', ' BCCCB ', ' BBBBB ' ) - .aisle('A AFA', 'A AXA', 'AAAAAAAFA', ' ', ' ' ) + .aisle('CCC', 'D D', 'D D', 'DED', 'DED', 'BBB') + .aisle('CCC', ' Y ', ' E ', 'E#E', 'EEE', 'BMB') + .aisle('CXC', 'D D', 'D D', 'DED', 'DED', 'BBB' ) .where('X', Predicates.controller(Predicates.blocks(definition.get()))) - .where('A', Predicates.blocks('tfg:casings/machine_casing_mars') - .or(Predicates.abilities(PartAbility.INPUT_ENERGY).setMinGlobalLimited(1).setMaxGlobalLimited(2))) - .where('B', Predicates.blocks('tfg:casings/machine_casing_ostrum_carbon')) - .where('C', Predicates.blocks('tfg:casings/machine_casing_vacuum_engine_intake')) - .where('D', Predicates.blocks('gtceu:heat_vent')) - .where('E', Predicates.blocks('tfg:casings/machine_casing_mars') - .or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setMaxGlobalLimited(6)) - .or(Predicates.abilities(PartAbility.IMPORT_ITEMS).setMaxGlobalLimited(6))) - .where('F', Predicates.blocks('tfg:casings/machine_casing_mars') - .or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))) - .where('H', Predicates.blocks('tfg:casings/machine_casing_mars') - .or(Predicates.abilities(PartAbility.EXPORT_ITEMS)) - .or(Predicates.abilities(PartAbility.EXPORT_FLUIDS))) + .where('B', Predicates.blocks('gtceu:solid_machine_casing').setMinGlobalLimited(4) + .or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setPreviewCount(2)) + .or(Predicates.abilities(PartAbility.IMPORT_ITEMS).setPreviewCount(1))) + .where('C', Predicates.blocks('gtceu:solid_machine_casing') + .or(Predicates.abilities(PartAbility.EXPORT_FLUIDS).setPreviewCount(2)) + .or(Predicates.abilities(PartAbility.INPUT_ENERGY).setExactLimit(1).setPreviewCount(1)) + .or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1).setPreviewCount(1))) + .where('D', Predicates.blocks('create:metal_girder')) + .where('E', Predicates.blocks('gtceu:steam_machine_casing')) + .where('Y', Predicates.heatingCoils()) + .where('M', Predicates.abilities(PartAbility.MUFFLER).setExactLimit(1)) .where('#', Predicates.air()) .where(' ', Predicates.any()) .build() ) - .shapeInfo(controller => MultiblockShapeInfo.builder() - .aisle('KKAAAAAAA', 'AAAAAAAAA', 'AAAAAAAAA', ' ', ' ' ) - .aisle('BAAAAAAAA', 'B D', 'BBBBBBBAA', ' BCCCB ', ' BBBBB ' ) - .aisle('AAAAAAAAA', 'A D', 'BB BBAA', ' C C ', ' BIAHB ' ) - .aisle('BEBEBEAAA', 'BEBFBEA#D', 'BBBBBBBAA', ' BCCCB ', ' BBBBB ' ) - .aisle('A AMA', 'A AXA', 'AAAAAAAAA', ' ', ' ' ) - .where('X', controller, Direction.SOUTH) - .where('A', Block.getBlock('tfg:casings/machine_casing_mars')) - .where('B', Block.getBlock('tfg:casings/machine_casing_ostrum_carbon')) - .where('C', Block.getBlock('tfg:casings/machine_casing_vacuum_engine_intake')) - .where('D', Block.getBlock('gtceu:heat_vent')) - .where('E', GTMachines.FLUID_IMPORT_HATCH[GTValues.EV], Direction.SOUTH) - .where('F', GTMachines.ITEM_IMPORT_BUS[GTValues.EV], Direction.SOUTH) - .where('H', GTMachines.ITEM_EXPORT_BUS[GTValues.EV], Direction.UP) - .where('I', GTMachines.FLUID_EXPORT_HATCH[GTValues.EV], Direction.UP) - .where('M', GTMachines.AUTO_MAINTENANCE_HATCH, Direction.SOUTH) - .where('K', GTMachines.ENERGY_INPUT_HATCH[GTValues.HV], Direction.NORTH) - .where(' ', Block.getBlock('minecraft:air')) - .build() - ) .workableCasingModel( - 'tfg:block/casings/machine_casing_mars', - 'gtceu:block/machines/thermal_centrifuge') + 'gtceu:block/casings/solid/machine_casing_solid_steel', + 'gtceu:block/multiblock/distillation_tower') -} +} \ No newline at end of file diff --git a/kubejs/startup_scripts/gtceu/materials.js b/kubejs/startup_scripts/gtceu/material_modification.js similarity index 94% rename from kubejs/startup_scripts/gtceu/materials.js rename to kubejs/startup_scripts/gtceu/material_modification.js index 9684071d5..aba518db4 100644 --- a/kubejs/startup_scripts/gtceu/materials.js +++ b/kubejs/startup_scripts/gtceu/material_modification.js @@ -1,15 +1,14 @@ // priority: 0 "use strict"; -const registerGTCEuMaterials = (event) => { - -} - const registerGTCEuMaterialModification = (event) => { //const TFGPropertyKey = Java.loadClass('su.terrafirmagreg.core.compat.gtceu.TFGPropertyKeys') const $TFC_PROPERTY = Java.loadClass('su.terrafirmagreg.core.compat.gtceu.properties.TFCProperty') const $ORE_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.OreProperty') + const $INGOT_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.IngotProperty') + const $DustProperty = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.DustProperty'); + const $BLAST_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.BlastProperty') const $ITEM_PIPE_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.ItemPipeProperties') const $FLUID_PIPE_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.FluidPipeProperties') const $HAZARD_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.HazardProperty') @@ -211,6 +210,7 @@ const registerGTCEuMaterialModification = (event) => { GTMaterials.Malachite.addFlags(HAS_SMALL_TFC_ORE); GTMaterials.Sphalerite.addFlags(HAS_SMALL_TFC_ORE); GTMaterials.Tetrahedrite.addFlags(HAS_SMALL_TFC_ORE); + GTMaterials.Chromite.addFlags(HAS_SMALL_TFC_ORE); // // /* Имеют маленькие чистые куски руды TFC */ GTMaterials.Copper.addFlags(HAS_SMALL_NATIVE_TFC_ORE); @@ -295,6 +295,12 @@ const registerGTCEuMaterialModification = (event) => { GTMaterials.Plutonium239.addFlags(GENERATE_ROD, NO_ORE_PROCESSING_TAB, NO_ORE_SMELTING) GTMaterials.Thorium.addFlags(NO_ORE_SMELTING) + // Unhiding elements + GTMaterials.Zirconium.addFlags(GENERATE_FINE_WIRE, GENERATE_PLATE, NO_ORE_SMELTING); + GTMaterials.Zirconium.setProperty(PropertyKey.INGOT, new $INGOT_PROPERTY()); + GTMaterials.Zirconium.setProperty(PropertyKey.BLAST, new $BLAST_PROPERTY(4200, 'mid', GTValues.VA[GTValues.EV], 1300, GTValues.VA[GTValues.HV], 14.7*20)); + + // Tools GTMaterials.Stone.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(1.2, 1.0, 8, 1, [ GTToolType.AXE, GTToolType.HARD_HAMMER, @@ -333,6 +339,8 @@ const registerGTCEuMaterialModification = (event) => { GTMaterials.RedSteel.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(370, 75, true, false, true, false)); // Blue steel fluid pipe - same flow rate as aluminium, same temp tolerance as tungsten GTMaterials.BlueSteel.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(4618, 75, true, false, false, false)); + // Ostrum fluid pipe - same flow rate as titanium, higher temp range + TFGHelpers.getMaterial('ostrum').setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(3700, 150, true, false, true, false)); // Add some hazards back GTMaterials.Realgar.setProperty(PropertyKey.HAZARD, new $HAZARD_PROPERTY($HAZARD_PROPERTY.HazardTrigger.INHALATION, GTMedicalConditions.ARSENICOSIS, 1, false)); @@ -408,6 +416,8 @@ const registerGTCEuMaterialModification = (event) => { GTMaterials.GraniteRed.setMaterialARGB(0x974B3C) GTMaterials.GraniteRed.setMaterialSecondaryARGB(0x632117) GTMaterials.RhodiumPlatedPalladium.setMaterialARGB(0xFFC2EC) + GTMaterials.Rhenium.setMaterialARGB(0x8cb07f) + GTMaterials.Rhenium.setMaterialSecondaryARGB(0x9ccbd6) global.MINECRAFT_DYE_NAMES.forEach(colorName => { @@ -421,6 +431,9 @@ const registerGTCEuMaterialModification = (event) => { rose_quartz.setProperty(PropertyKey.ORE, new $ORE_PROPERTY()); rose_quartz.getProperty(PropertyKey.ORE).setOreByProducts(rose_quartz, GTMaterials.Redstone, rose_quartz); rose_quartz.setMaterialIconSet(GTMaterialIconSet.getByName('nether_quartz')) + + let zirconium_diboride = TFGHelpers.getMaterial('zirconium_diboride'); + zirconium_diboride.setProperty(PropertyKey.BLAST, new $BLAST_PROPERTY(4500, "high", GTValues.VA[GTValues.EV], 2700, GTValues.VA[GTValues.HV], 12.5*20)); GTMaterials.CertusQuartz.setComponents('1x unknown', '1x silicon', '2x oxygen') GTMaterials.GraniteRed.setComponents([]) diff --git a/kubejs/startup_scripts/gtceu/recipe_types.js b/kubejs/startup_scripts/gtceu/recipe_types.js index 4550c419c..39c361169 100644 --- a/kubejs/startup_scripts/gtceu/recipe_types.js +++ b/kubejs/startup_scripts/gtceu/recipe_types.js @@ -39,10 +39,11 @@ const registerGTCEuRecipeTypes = (event) => { event.create('heat_exchanger') .category('heat_exchanger') .setEUIO('in') - .setMaxIOSize(0, 0, 4, 4) + .setMaxIOSize(1, 0, 3, 3) .setSlotOverlay(false, false, GuiTextures.ATOMIC_OVERLAY_1) .setProgressBar(GuiTextures.PROGRESS_BAR_GAS_COLLECTOR, FillDirection.LEFT_TO_RIGHT) .setSound(GTSoundEntries.TURBINE) + /* Just keeping it in case we got mod issues event.create('fission_reactor') .category('fission_reactor') @@ -68,12 +69,12 @@ const registerGTCEuRecipeTypes = (event) => { .setProgressBar(GuiTextures.PROGRESS_BAR_GAS_COLLECTOR, FillDirection.LEFT_TO_RIGHT) .setSound(GTSoundEntries.TURBINE) - event.create('ostrum_linear_accelerator') - .category('ostrum_linear_accelerator') + event.create('coal_liquefaction_tower') + .category('coal_liquefaction_tower') .setEUIO('in') - .setMaxIOSize(1, 3, 3, 3) - .setSlotOverlay(false, false, GuiTextures.EXTRACTOR_OVERLAY) - .setProgressBar(GuiTextures.PROGRESS_BAR_EXTRACT, FillDirection.LEFT_TO_RIGHT) - .setSound(GTSoundEntries.BATH) + .setMaxIOSize(2, 0, 3, 3) + .setSlotOverlay(false, false, GuiTextures.HEATING_OVERLAY_1) + .setProgressBar(GuiTextures.PROGRESS_BAR_ARC_FURNACE, FillDirection.LEFT_TO_RIGHT) + .setSound(GTSoundEntries.COMBUSTION) -} +} \ No newline at end of file diff --git a/kubejs/startup_scripts/main_startup_script.js b/kubejs/startup_scripts/main_startup_script.js index e49d025ee..79399185f 100644 --- a/kubejs/startup_scripts/main_startup_script.js +++ b/kubejs/startup_scripts/main_startup_script.js @@ -2,18 +2,11 @@ "use strict"; StartupEvents.registry('item', event => { - registerBetterEndItems(event) - registerGTCEuItems(event) registerTFGItems(event) }) StartupEvents.registry('block', event => { registerTFGBlocks(event) - registerBetterEndBlocks(event) -}) - -StartupEvents.registry('entity_type', event => { - registerTFGEntityTypes(event) }) BlockEvents.modification(event => { @@ -32,7 +25,6 @@ ItemEvents.modification(event => { StartupEvents.registry('fluid', event => { registerTFGFluids(event) - registerAE2Fluids(event) }) GTCEuStartupEvents.registry('gtceu:recipe_type', event => { @@ -51,25 +43,19 @@ GTCEuStartupEvents.registry('gtceu:tag_prefix', event => { }) GTCEuStartupEvents.registry('gtceu:material', event => { - registerAdAstraMaterials(event) registerAE2Materials(event) registerCreateMaterials(event) - registerTFCMaterials(event) - registerGTCEuMaterials(event) registerGreateMaterials(event) registerTFGMaterials(event) - registerTFGNuclearMaterials(event) - registerTFGBiolineMaterials(event) }) GTCEuStartupEvents.registry('gtceu:material_icon_set', event => { - registerTFCIconSets(event) + registerTFGIconSets(event) }) GTCEuStartupEvents.materialModification(event => { registerGTCEuMaterialModification(event) registerGreateMaterialModification(event) - registerAdAstraMaterialModification(event) }) GTCEuStartupEvents.registry('gtceu:dimension_marker', event => { @@ -84,6 +70,10 @@ GTCEuStartupEvents.craftingComponents(event => { registerTFGCraftingComponents(event) }) +StartupEvents.modifyCreativeTab(global.TAB_IDS.CREATE_BASE, event => { + modifyCreateCreativeTab(event) +}) + Platform.mods.primitive_creatures.name = "Primitive Creatures"; Platform.mods.tfg.name = "TerraFirmaGreg"; Platform.mods.kubejs.name = "TerraFirmaGreg"; diff --git a/kubejs/startup_scripts/tacz/constants.js b/kubejs/startup_scripts/tacz/constants.js index 319b52e24..ae2892684 100644 --- a/kubejs/startup_scripts/tacz/constants.js +++ b/kubejs/startup_scripts/tacz/constants.js @@ -134,7 +134,7 @@ global.TACZ_AMMO_INDEX = [ 'tacz:357mag', 'tacz:46x30', 'tacz:57x28', - 'tacz:30x06', + 'tacz:30_06', 'tacz:50ae', 'tacz:45_70', 'tacz:762x25', @@ -346,12 +346,14 @@ global.TACZ_ENABLED_GUNS = [ //Pistol 'ulv_guns:flintlock', 'create_armorer:pistol_revolver_torque', + 'create_armorer:pistol_auto_stress', 'applied_armorer:niklas_pistol_semi_right', 'applied_armorer:niklas_pistol_semi_pride', 'applied_armorer:niklas_pistol_double_win_win', //Sniper 'tacz:springfield1873', + 'tacz:m700', 'create_armorer:sniper_semi_clockwork', 'applied_armorer:moritz_sniper_semi_k30', @@ -367,7 +369,8 @@ global.TACZ_ENABLED_GUNS = [ 'tacz:db_long', //SMG - + 'create_armorer:smg_auto_crank', + 'applied_armorer:niklas_smg_freedom', //Heavy 'create_armorer:mg_platemag_flywheel', @@ -380,6 +383,7 @@ global.TACZ_ENABLED_GUNS = [ global.TACZ_ENABLED_AMMO = [ 'tacz:12g', 'tacz:45_70', + 'tacz:30_06', 'create_armorer:slap', 'create_armorer:rbapb', 'create_armorer:40mmhe', diff --git a/kubejs/startup_scripts/tfc/constants.js b/kubejs/startup_scripts/tfc/constants.js index 5486c4949..ddb133edf 100644 --- a/kubejs/startup_scripts/tfc/constants.js +++ b/kubejs/startup_scripts/tfc/constants.js @@ -800,7 +800,11 @@ global.TFC_FURNACE_MOLD_RECIPE_COMPONENTS = /** @type {const} */ ([ { input: "tfc:ceramic/unfired_vessel", output: "tfc:ceramic/vessel", name: "vessel" }, { input: "tfc:ceramic/unfired_large_vessel", output: "tfc:ceramic/large_vessel", name: "large_vessel" }, { input: "tfcchannelcasting:unfired_channel", output: "tfcchannelcasting:channel", name: "channel" }, - { input: "tfcchannelcasting:unfired_mold_table", output: "tfcchannelcasting:mold_table", name: "mold_table" } + { input: "tfcchannelcasting:unfired_mold_table", output: "tfcchannelcasting:mold_table", name: "mold_table" }, + { input: "firmalife:oven_top", output: "firmalife:cured_oven_top", name: "oven_top" }, + { input: "firmalife:oven_chimney", output: "firmalife:cured_oven_chimney", name: "oven_chimney" }, + { input: "firmalife:oven_bottom", output: "firmalife:cured_oven_bottom", name: "oven_bottom" }, + { input: "firmalife:oven_hopper", output: "firmalife:cured_oven_hopper", name: "oven_hopper" } ]); global.TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS = /** @type {const} */ ([ @@ -830,6 +834,12 @@ global.TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS = /** @type {const} */ ([ { input: "5x minecraft:clay_ball", output: "tfc:ceramic/unfired_large_vessel", name: "large_vessel" }, { input: "5x minecraft:clay_ball", output: "tfcchannelcasting:unfired_heart_mold", name: "heart_mold" }, { input: "5x minecraft:clay_ball", output: "10x rnr:unfired_roof_tile", name: "roof_tile" }, + { input: "5x minecraft:clay_ball", output: "firmalife:oven_top", name: "oven_top" }, + { input: "5x minecraft:clay_ball", output: "firmalife:oven_chimney", name: "oven_chimney" }, + { input: "5x minecraft:clay_ball", output: "firmalife:oven_bottom", name: "oven_bottom" }, +]); + +global.TFC_FIRE_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS = /** @type {const} */ ([ { input: "5x tfc:fire_clay", output: "tfc:ceramic/unfired_fire_ingot_mold", name: "fire_ingot_mold" }, { input: "5x tfc:fire_clay", output: "tfc:ceramic/unfired_crucible", name: "crucible" }, { input: "5x tfc:fire_clay", output: "tfcchannelcasting:unfired_channel", name: "channel" }, @@ -1038,9 +1048,36 @@ global.TFC_MILKS = /** @type {const} */ ([ ]); global.TFC_CURDS_AND_CHEESES = /** @type {const} */ ([ - { id: "milk", input_fluid: "tfc:curdled_milk", curd: "firmalife:food/milk_curd", cheese1: "gouda", cheese2: "cheddar"}, - { id: "yak", input_fluid: "firmalife:curdled_yak_milk", curd: "firmalife:food/yak_curd", cheese1: "shosha", cheese2: "rajya_metok"}, - { id: "goat", input_fluid: "firmalife:curdled_goat_milk", curd: "firmalife:food/goat_curd", cheese1: "feta", cheese2: "chevre"} + { + id: "cow", milk: "minecraft:milk", curdled_fluid: "tfc:curdled_milk", curd: "firmalife:food/milk_curd", + unsalted_cheese: "firmalife:food/gouda", unsalted_wheel: "firmalife:gouda_wheel", + salted_cheese: "firmalife:food/cheddar", salted_wheel: "firmalife:cheddar_wheel" + }, + { + id: "yak", milk: "firmalife:yak_milk", curdled_fluid: "firmalife:curdled_yak_milk", curd: "firmalife:food/yak_curd", + unsalted_cheese: "firmalife:food/shosha", unsalted_wheel: "firmalife:shosha_wheel", + salted_cheese: "firmalife:food/rajya_metok", salted_wheel: "firmalife:rajya_metok_wheel" + }, + { + id: "goat", milk: "firmalife:goat_milk", curdled_fluid: "firmalife:curdled_goat_milk", curd: "firmalife:food/goat_curd", + unsalted_cheese: "firmalife:food/feta", unsalted_wheel: "firmalife:feta_wheel", + salted_cheese: "firmalife:food/chevre", salted_wheel: "firmalife:chevre_wheel" + }, + { + id: "ox", milk: "tfc_gurman:ox_milk", curdled_fluid: "tfc_gurman:curdled_ox_milk", curd: "tfc_gurman:ox_curd", + unsalted_cheese: "tfc_gurman:ox_brinza_slice", unsalted_wheel: "tfc_gurman:ox_brinza_wheel", + salted_cheese: null, salted_wheel: null + }, + { + id: "sheep", milk: "tfc_gurman:sheep_milk", curdled_fluid: "tfc_gurman:curdled_sheep_milk", curd: "tfc_gurman:sheep_curd", + unsalted_cheese: "tfc_gurman:sheep_brinza_slice", unsalted_wheel: "tfc_gurman:sheep_brinza_wheel", + salted_cheese: null, salted_wheel: null + }, + { + id: "alpaca", milk: "tfc_gurman:alpaca_milk", curdled_fluid: "tfc_gurman:curdled_alpaca_milk", curd: "tfc_gurman:alpaca_curd", + unsalted_cheese: "tfc_gurman:alpaca_brinza_slice", unsalted_wheel: "tfc_gurman:alpaca_brinza_wheel", + salted_cheese: null, salted_wheel: null + } ]); global.TFC_DRY_MUD_BRICKS = /** @type {const} */ ([ diff --git a/kubejs/startup_scripts/tfc/icon_sets.js b/kubejs/startup_scripts/tfc/icon_sets.js deleted file mode 100644 index 7a90f7027..000000000 --- a/kubejs/startup_scripts/tfc/icon_sets.js +++ /dev/null @@ -1,39 +0,0 @@ -// priority: 0 -"use strict"; - -function registerTFCIconSets(event) { - - event.create('tfc_borax').parent('rough') - event.create('tfc_gypsum').parent('rough') - event.create('tfc_graphite').parent('rough') - event.create('tfc_saltpeter').parent('fine') - event.create('tfc_sulfur').parent('fine') - - event.create('tfc_amethyst').parent('ruby') - event.create('tfc_redstone').parent('fine') - event.create('tfc_diamond').parent('diamond') - event.create('tfc_emerald').parent('emerald') - event.create('tfc_lapis').parent('lapis') - event.create('tfc_opal').parent('opal') - event.create('tfc_pyrite').parent('bright') - event.create('tfc_ruby').parent('ruby') - event.create('tfc_sapphire').parent('gem_horizontal') - event.create('tfc_topaz').parent('gem_vertical') - event.create('tfc_realgar').parent('emerald') - - event.create('tfc_bismuth').parent('bright') - event.create('tfc_cassiterite').parent('bright') - event.create('tfc_garnierite').parent('bright') - event.create('tfc_hematite').parent('metallic') - event.create('tfc_limonite').parent('metallic') - event.create('tfc_magnetite').parent('dull') - event.create('tfc_malachite').parent('shiny') - event.create('tfc_copper').parent('bright') - event.create('tfc_gold').parent('shiny') - event.create('tfc_silver').parent('shiny') - event.create('tfc_sphalerite').parent('dull') - event.create('tfc_tetrahedrite').parent('dull') - event.create('tfc_chromite').parent('dull') - - event.create('nether_quartz').parent('quartz') -} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/biotech/items.biotech.js b/kubejs/startup_scripts/tfg/biotech/items.biotech.js new file mode 100644 index 000000000..681f12e91 --- /dev/null +++ b/kubejs/startup_scripts/tfg/biotech/items.biotech.js @@ -0,0 +1,39 @@ +"use strict"; + +function registerTFGBiotechItems(event) { + + event.create('tfg:stainless_steel_needle') + .unstackable() + .maxDamage(9999) + + //#region Lab Equipment + + global.LAB_EQUIPMENT_CONTAINERS.forEach((item) => { + event.create(`tfg:${item.type}`, 'tfc:glass_bottle') + .fluidTagAccept('tfg:not_solid') + .capacity(item.capacity) + .translationKey(`item.tfg.lab_equipment.${item.type}`) + .tag('tfg:lab_equipment_containers') + .tag('tfc:fluid_item_ingredient_empty_containers') + .tag('tfc:glass_bottles') + }) + + event.create('tfg:lab_equipment') + .translationKey('item.tfg.lab_equipment.lab_equipment') + .tooltip(Text.translatable('tfg.tooltip.lab_equipment.set')) + + event.create('tfg:dirty_lab_equipment') + .translationKey('item.tfg.lab_equipment.dirty_lab_equipment') + .tooltip(Text.translatable('tfg.tooltip.lab_equipment.set_dirty')) + //#endregion + + + //#region Bioline + + event.create('tfg:cellulose_matrix') + event.create('tfg:smooth_endoplasmic_reticula') + event.create('tfg:rough_endoplasmic_reticula') + event.create('tfg:alpha_keratin') + + //#endregion +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/biotech/items.medicine.js b/kubejs/startup_scripts/tfg/biotech/items.medicine.js new file mode 100644 index 000000000..a3584c88f --- /dev/null +++ b/kubejs/startup_scripts/tfg/biotech/items.medicine.js @@ -0,0 +1,69 @@ +// priority: 0 +"use strict"; + +function registerTFGMedicineItems(event) { + const pill = [ + 'haste', + 'night_vision', + 'poison', + 'regeneration', + 'slowness', + 'speed', + 'water_breathing', + 'weakness' + ] + + const pill_names = [ + 'Haste', + 'Night Vision', + 'Poison', + 'Regeneration', + 'Slowness', + 'Speed', + 'Water Breathing', + 'Weakness' + ] + + pill.forEach((pill_array, index) => { + const pill_names_array = pill_names[index]; + + event.create(`tfg:${pill_array}_pill`) + .tooltip(`§9${pill_names_array} (08:00)`) + + event.create(`tfg:${pill_array}_tablet`) + .tooltip(`§9${pill_names_array} (30:00)`) + }) + + event.create(`tfg:antipoison_pill`) + .tooltip(`§9Cures Poison`) + + event.create(`tfg:antipoison_tablet`) + .tooltip(`§9Cures All Harmful Effects`) + + //salvos + + const salvo = [ + 'absorption', + 'fire_resistance', + 'invisibility', + 'luck', + 'resistance' + ] + const salvo_names = [ + 'Absorption', + 'Fire Resistance', + 'Invisibility', + 'Luck', + 'Resistance' + ] + + salvo.forEach((salvo_array, index) => { + const salvo_names_array = salvo_names[index]; + + event.create(`tfg:${salvo_array}_salvo`) + .tooltip(`§9${salvo_names_array} (08:00)`) + }) + + event.create(`tfg:instant_health_salvo`) + .tooltip(`§9Instant Health II`) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials.bioline.js b/kubejs/startup_scripts/tfg/biotech/materials.bioline.js similarity index 100% rename from kubejs/startup_scripts/tfg/materials.bioline.js rename to kubejs/startup_scripts/tfg/biotech/materials.bioline.js diff --git a/kubejs/startup_scripts/tfg/blocks.casings.js b/kubejs/startup_scripts/tfg/blocks.casings.js new file mode 100644 index 000000000..b11f03bdd --- /dev/null +++ b/kubejs/startup_scripts/tfg/blocks.casings.js @@ -0,0 +1,121 @@ +"use strict"; + +function registerTFGCasingBlocks(event) { + + global.TFG_MACHINE_CASINGS.forEach(type => { + event.create(`tfg:casings/${type}`) + .translationKey(`block.tfg.casings.${type}`) + .model(`tfg:block/casings/${type}`) + .soundType('copper') + .hardness(5) + .resistance(6) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .mapColor('color_light_gray') + }) + + event.create(`tfg:casings/machine_casing_stainless_evaporation`) + .translationKey(`block.tfg.casings.machine_casing_stainless_evaporation`) + .model(`tfg:block/casings/machine_casing_stainless_evaporation`) + .soundType('copper') + .hardness(5) + .resistance(6) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .mapColor('color_light_gray') + + event.create('tfg:casings/machine_casing_vacuum_engine_intake', 'gtceu:active') + .simple('tfg:block/casings/machine_casing_vacuum_engine_intake') + .translationKey('block.tfg.casings.machine_casing_vacuum_engine_intake') + .soundType('metal') + .resistance(6).hardness(5) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .requiresTool(true) + .mapColor('color_light_gray') + + event.create('tfg:casings/machine_casing_bioculture') + .translationKey('block.tfg.casings.machine_casing_bioculture') + .model('tfg:block/casings/machine_casing_bioculture') + .soundType('copper') + .hardness(5) + .resistance(6) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .mapColor('color_red') + + event.create('tfg:casings/machine_casing_bioculture_glass') + .translationKey('block.tfg.casings.machine_casing_bioculture_glass') + .model('tfg:block/casings/machine_casing_bioculture_glass') + .soundType('glass') + .hardness(5) + .resistance(6) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .mapColor('color_orange') + .defaultTranslucent() + + event.create('tfg:casings/bioculture_rotor_primary', 'tfg:active_particle_emitter') + .translationKey('block.tfg.casings.bioculture_rotor_primary') + .soundType('copper') + .hardness(5) + .resistance(6) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .mapColor('color_light_gray') + .activeOffset(1.6, 2, 1.6) + .activeVelocity(0, 0, 0) + .activeParticle('minecraft:landing_lava') + .activeCount(10) + .activeForced(false) + + event.create('tfg:casings/bioculture_rotor_secondary', 'gtceu:active') + .translationKey('block.tfg.casings.bioculture_rotor_secondary') + .model('tfg:block/casings/bioculture_rotor_secondary') + .soundType('copper') + .hardness(5) + .resistance(6) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .mapColor('color_light_gray') + + event.create('tfg:casings/machine_casing_ultraviolet', 'gtceu:active') + .translationKey('block.tfg.casings.machine_casing_ultraviolet') + .soundType('glass') + .hardness(5) + .resistance(6) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .mapColor('color_light_gray') + + event.create('tfg:casings/heat_pipe_casing') + .translationKey('block.tfg.casings.heat_pipe_casing') + .model('tfg:block/casings/heat_pipe_casing') + .soundType('copper') + .hardness(5) + .resistance(6) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .mapColor('color_black') + + event.create('tfg:sample_rack', 'tfg:active_cardinal') + .soundType('copper') + .hardness(5) + .resistance(6) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .mapColor('color_light_gray') + .notSolid() + .renderType('cutout') + .opaque(false) + + event.create('tfg:growth_monitor', 'tfg:active_cardinal') + .soundType('copper') + .hardness(5) + .resistance(6) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .mapColor('color_light_gray') + .notSolid() + .renderType('cutout') + .opaque(false) + + event.create('tfg:casings/machine_casing_sterilizing_pipes', 'tfg:active_cardinal') + .soundType('copper') + .hardness(5) + .resistance(6) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .mapColor('color_brown') + + + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/blocks.plants.js b/kubejs/startup_scripts/tfg/blocks.crops.js similarity index 71% rename from kubejs/startup_scripts/tfg/blocks.plants.js rename to kubejs/startup_scripts/tfg/blocks.crops.js index 47208d86b..289eee7d1 100644 --- a/kubejs/startup_scripts/tfg/blocks.plants.js +++ b/kubejs/startup_scripts/tfg/blocks.crops.js @@ -310,115 +310,4 @@ const registerTFGCrops = (event) => { .tagBlock('minecraft:mineable/hoe') .tagBlock('tfc:can_be_snow_piled') .tagItem('c:hidden_from_recipe_viewers') - - // Mars Saplings - - event.create('tfg:saplings/crimson', 'tfc:sapling') - .features('tfg:mars/tree/crimson') - .tagBoth('minecraft:saplings') - .tagBlock('tfg:do_not_destroy_in_space') - .tagBlock('tfc:can_be_snow_piled') - .growthDays(6) - .soundType('nether_wart') - .defaultCutout() - .noCollision() - - event.create('tfg:saplings/warped', 'tfc:sapling') - .features('tfg:mars/tree/warped') - .tagBoth('minecraft:saplings') - .tagBlock('tfg:do_not_destroy_in_space') - .tagBlock('tfc:can_be_snow_piled') - .growthDays(6) - .soundType('nether_wart') - .defaultCutout() - .noCollision() - - event.create('tfg:saplings/alphacene', 'tfc:sapling') - .features('species:alphacene_mushroom') - .tagBoth('minecraft:saplings') - .tagBlock('tfg:do_not_destroy_in_space') - .tagBlock('tfc:can_be_snow_piled') - .growthDays(3) - .soundType('nether_wart') - .defaultCutout() - .noCollision() - - event.create('tfg:saplings/strophar', 'tfc:sapling') - .features('tfg:mars/tree/strophar_mini') - .tagBoth('minecraft:saplings') - .tagBlock('tfg:do_not_destroy_in_space') - .tagBlock('tfc:can_be_snow_piled') - .growthDays(7) - .soundType('nether_wart') - .defaultCutout() - .noCollision() - - event.create('tfg:saplings/aeronos', 'tfc:sapling') - .features('tfg:mars/tree/aeronos_mini') - .tagBoth('minecraft:saplings') - .tagBlock('tfg:do_not_destroy_in_space') - .tagBlock('tfc:can_be_snow_piled') - .growthDays(9) - .soundType('nether_wart') - .defaultCutout() - .noCollision() - - event.create('tfg:saplings/glacian', 'tfc:sapling') - .features('tfg:mars/tree/glacian_mini') - .tagBoth('minecraft:saplings') - .tagBlock('tfg:do_not_destroy_in_space') - .tagBlock('tfc:can_be_snow_piled') - .growthDays(9) - .soundType('nether_wart') - .defaultCutout() - .noCollision() - - // Glacian tree stuff - event.create('tfg:glacian_leaves', 'tfc:leaves') - .soundType('azalea_leaves') - .tagBlock('minecraft:mineable/hoe') - .tagBlock('tfg:do_not_destroy_in_space') - .mapColor('snow') - .seasonalColors(false) - .fallenLeaves(leaves => { - leaves.noCollision() - leaves.notSolid() - leaves.defaultCutout() - leaves.soundType('azalea_leaves') - leaves.tagBlock('minecraft:mineable/hoe') - leaves.tagBlock('minecraft:replaceable') - leaves.noDynamicTinting() - leaves.models((modelType, generator) => { - if (modelType.layers != 8) { - generator.parent("tfc:block/groundcover/fallen_leaves_height" + modelType.height); - generator.texture("all", "ad_astra:block/glacian_leaves"); - } else { - generator.parent("ad_astra:block/glacian_leaves"); - } - }) - }) - - event.create('tfg:glacian_wood', 'tfc:log') - .tagBoth('minecraft:logs') - .tagItem('minecraft:logs_that_burn') - .tagItem('ad_astra:glacian_logs') - .tagBlock('minecraft:mineable/axe') - .soundType('wood') - .stripped(stripped => { - stripped.tagBoth('minecraft:logs') - stripped.tagItem('minecraft:logs_that_burn') - stripped.tagItem('ad_astra:glacian_logs') - stripped.tagBlock('minecraft:mineable/axe') - stripped.soundType('wood') - }) - - event.create('tfg:glacian_log', 'tfc:log') - .tagBoth('minecraft:logs') - .tagBoth('c:hidden_from_recipe_viewers') - .soundType('wood') - .stripped(stripped => { - stripped.tagBoth('minecraft:logs') - stripped.tagBoth('c:hidden_from_recipe_viewers') - stripped.soundType('wood') - }) } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/blocks.js b/kubejs/startup_scripts/tfg/blocks.js index a0cc2148c..85b9d9286 100644 --- a/kubejs/startup_scripts/tfg/blocks.js +++ b/kubejs/startup_scripts/tfg/blocks.js @@ -2,369 +2,30 @@ const registerTFGBlocks = (event) => { - registerTFGNetherBlocks(event) - registerTFGSpaceBlocks(event) + registerTFGDimensionMarkerBlocks(event) + registerTFGCrops(event) + registerTFGVaseBlocks(event) + registerTFGSupportBlocks(event) registerTFGAqueductBlocks(event) - registerTFGCrops(event) - - event.create('tfg:titanium_exhaust_vent', 'tfg:active_particle_emitter') - .textureAll('tfg:block/titanium_exhaust_vent') - .soundType('metal') - .hardness(5) - .resistance(6) + registerTFGRockBlocks(event) + registerTFGVanillaStoneBlocks(event) + + registerTFGWorldGenTrees(event) + registerTFGWorldGenBeneathDecoBlocks(event) + registerTFGWorldGenMoonDecoBlocks(event) + registerTFGWorldGenMarsDecoBlocks(event) + registerTFGWorldGenVenusDecoBlocks(event) + registerTFGWorldGenEuropaDecoBlocks(event) + + registerTFGCasingBlocks(event) + registerTFGNuclearBlocks(event) + + + // Temporary, remove in 0.12 + event.create('gtceu:ostrum_linear_accelerator') .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .mapColor('color_black') - .speedFactor(1.1) - .activeOffset(3.5, 2, 3.5) - .activeVelocity(0.0, 0.0, 0.0) - .activeParticle('tfg:cooling_steam') - .activeBase(0.0, 12.5, 0.0) - .activeCount(8) - .activeForced(false) - .hasTicker(true) - - // #region Machine Casings - - global.TFG_MACHINE_CASINGS.forEach(type => { - event.create(`tfg:casings/${type}`) - .translationKey(`block.tfg.casings.${type}`) - .model(`tfg:block/casings/${type}`) - .soundType('copper') - .hardness(5) - .resistance(6) - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .mapColor('color_light_gray') - }) - - event.create(`tfg:casings/machine_casing_stainless_evaporation`) - .translationKey(`block.tfg.casings.machine_casing_stainless_evaporation`) - .model(`tfg:block/casings/machine_casing_stainless_evaporation`) - .soundType('copper') - .hardness(5) - .resistance(6) - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .mapColor('color_light_gray') - - event.create('tfg:casings/machine_casing_vacuum_engine_intake', 'gtceu:active') - .simple('tfg:block/casings/machine_casing_vacuum_engine_intake') - .translationKey('block.tfg.casings.machine_casing_vacuum_engine_intake') - .soundType('metal') - .resistance(6).hardness(5) - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .requiresTool(true) - .mapColor('color_light_gray') - - event.create('tfg:casings/machine_casing_bioculture') - .translationKey('block.tfg.casings.machine_casing_bioculture') - .model('tfg:block/casings/machine_casing_bioculture') - .soundType('copper') - .hardness(5) - .resistance(6) - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .mapColor('color_red') - - event.create('tfg:casings/machine_casing_bioculture_glass') - .translationKey('block.tfg.casings.machine_casing_bioculture_glass') - .model('tfg:block/casings/machine_casing_bioculture_glass') - .soundType('glass') - .hardness(5) - .resistance(6) - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .mapColor('color_orange') - .defaultTranslucent() - - event.create('tfg:casings/bioculture_rotor_primary', 'tfg:active_particle_emitter') - .translationKey('block.tfg.casings.bioculture_rotor_primary') - .soundType('copper') - .hardness(5) - .resistance(6) - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .mapColor('color_light_gray') - .activeOffset(1.6, 2, 1.6) - .activeVelocity(0, 0, 0) - .activeParticle('minecraft:landing_lava') - .activeCount(10) - .activeForced(false) - - event.create('tfg:casings/bioculture_rotor_secondary', 'gtceu:active') - .translationKey('block.tfg.casings.bioculture_rotor_secondary') - .model('tfg:block/casings/bioculture_rotor_secondary') - .soundType('copper') - .hardness(5) - .resistance(6) - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .mapColor('color_light_gray') - - event.create('tfg:casings/machine_casing_ultraviolet', 'gtceu:active') - .translationKey('block.tfg.casings.machine_casing_ultraviolet') - .soundType('glass') - .hardness(5) - .resistance(6) - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .mapColor('color_light_gray') + .requiresTool(false) + .textureAll('tfg:item/deprecated') - event.create('tfg:casings/heat_pipe_casing') - .translationKey('block.tfg.casings.heat_pipe_casing') - .model('tfg:block/casings/heat_pipe_casing') - .soundType('copper') - .hardness(5) - .resistance(6) - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .mapColor('color_black') - - event.create('tfg:sample_rack', 'tfg:active_cardinal') - .soundType('copper') - .hardness(5) - .resistance(6) - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .mapColor('color_light_gray') - .notSolid() - .renderType('cutout') - .opaque(false) - - event.create('tfg:growth_monitor', 'tfg:active_cardinal') - .soundType('copper') - .hardness(5) - .resistance(6) - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .mapColor('color_light_gray') - .notSolid() - .renderType('cutout') - .opaque(false) - - event.create('tfg:casings/machine_casing_sterilizing_pipes', 'tfg:active_cardinal') - .soundType('copper') - .hardness(5) - .resistance(6) - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .mapColor('color_brown') - - //#endregion - - event.create('tfg:titanium_concrete') - .translationKey('block.tfg.titanium_concrete') - .model('tfg:block/concrete/titanium_concrete') - .soundType('stone') - .mapColor('stone') - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .tagBoth('tfg:titanium_concrete') - - event.create('tfg:polished_titanium_concrete') - .translationKey('block.tfg.polished_titanium_concrete') - .model('tfg:block/concrete/polished_titanium_concrete') - .soundType('stone') - .mapColor('stone') - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .tagBoth('tfg:titanium_concrete') - - event.create('tfg:titanium_concrete_tile') - .translationKey('block.tfg.titanium_concrete_tile') - .model('tfg:block/concrete/titanium_concrete_tile') - .soundType('stone') - .mapColor('stone') - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .tagBoth('tfg:titanium_concrete') - - event.create('tfg:titanium_concrete_tile_small') - .translationKey('block.tfg.titanium_concrete_tile_small') - .model('tfg:block/concrete/titanium_concrete_tile_small') - .soundType('stone') - .mapColor('stone') - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .tagBoth('tfg:titanium_concrete') - - event.create('tfg:titanium_concrete_bricks') - .translationKey('block.tfg.titanium_concrete_bricks') - .model('tfg:block/concrete/titanium_concrete_bricks') - .soundType('stone') - .mapColor('stone') - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .tagBoth('tfg:titanium_concrete') - - event.create('tfg:titanium_concrete_bricks_small') - .translationKey('block.tfg.titanium_concrete_bricks_small') - .model('tfg:block/concrete/titanium_concrete_bricks_small') - .soundType('stone') - .mapColor('stone') - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .tagBoth('tfg:titanium_concrete') - - event.create('tfg:titanium_concrete_bricks_square') - .translationKey('block.tfg.titanium_concrete_bricks_square') - .model('tfg:block/concrete/titanium_concrete_bricks_square') - .soundType('stone') - .mapColor('stone') - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .tagBoth('tfg:titanium_concrete') - - // #region insulation - event.create('tfg:glacian_wool_frame') - .soundType('copper') - .hardness(4) - .resistance(6) - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - - event.create('tfg:aes_insulation_frame') - .soundType('copper') - .hardness(5) - .resistance(6) - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - - event.create('tfg:moderate_core_frame') - .soundType('copper') - .hardness(4) - .resistance(6) - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - - event.create('tfg:impure_moderate_core_frame') - .soundType('copper') - .hardness(5) - .resistance(6) - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - - // Unfinished Insulation - event.create('tfg:moderate_core') - .soundType('ancient_debris') - .hardness(7) - .resistance(8) - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .model('tfg:block/fission/moderate_core') - - event.create('tfg:impure_moderate_core') - .soundType('ancient_debris') - .hardness(7) - .resistance(8) - .tagBlock('gtceu:mineable/pickaxe_or_wrench') - .model('tfg:block/fission/impure_moderate_core') - - // #region Decorative vases - global.MINECRAFT_DYE_NAMES.forEach(color => { - event.create(`tfg:decorative_vase/generated/${color}`, 'cardinal') - .model(`tfg:block/decorative_vase/loot_vase_${color}`) - .soundType('decorated_pot') - .hardness(0.7) - .tagBlock('minecraft:mineable/pickaxe') - .mapColor(`color_${color}`) - .box(2, 0, 2, 14, 20, 14) - .fullBlock(false) - .opaque(false) - .renderType('cutout') - - event.create(`tfg:decorative_vase/${color}`, 'cardinal') - .model(`tfg:block/decorative_vase/vase_${color}`) - .soundType('decorated_pot') - .hardness(0.7) - .tagBlock('minecraft:mineable/pickaxe') - .mapColor(`color_${color}`) - .box(2, 0, 2, 14, 20, 14) - .fullBlock(false) - .opaque(false) - .renderType('cutout') - .blockEntity(be => { - be.attach('tfc:inventory', { - width: 9, - height: 1, - size: size => size.isSmallerThan('large') - }) - be.rightClickOpensInventory() - }) - - event.create(`tfg:decorative_vase/unfired/${color}`, 'cardinal') - .model(`tfg:block/decorative_vase/vase_unfired_${color}`) - .soundType('decorated_pot') - .hardness(0.7) - .tagBlock('minecraft:mineable/pickaxe') - .mapColor(`color_${color}`) - .box(2, 0, 2, 14, 20, 14) - .fullBlock(false) - .opaque(false) - .renderType('cutout') - }) - event.create('tfg:decorative_vase', 'cardinal') - .model('tfg:block/decorative_vase/vase') - .soundType('decorated_pot') - .hardness(0.7) - .tagBlock('minecraft:mineable/pickaxe') - .mapColor(`color_gray`) - .box(2, 0, 2, 14, 20, 14) - .fullBlock(false) - .opaque(false) - .renderType('cutout') - .blockEntity(be => { - be.attach('tfc:inventory', { - width: 9, - height: 1, - size: size => size.isSmallerThan('large') - }) - be.rightClickOpensInventory() - }) - - event.create('tfg:decorative_vase/unfired', 'cardinal') - .model('tfg:block/decorative_vase/vase_unfired') - .soundType('decorated_pot') - .hardness(0.7) - .tagBlock('minecraft:mineable/pickaxe') - .mapColor(`color_gray`) - .box(2, 0, 2, 14, 20, 14) - .fullBlock(false) - .opaque(false) - .renderType('cutout') - - // #endregion - - // #region Reconstituted Stone - - event.create(`tfg:rock/stone_wall`, 'wall') - .soundType(global.STONE_CHARACS.reconstituted.sound) - .textureAll('minecraft:block/stone') - .tagBoth('tfg:rock_wall') - .mapColor(global.STONE_CHARACS.reconstituted.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - let SHAPES = ['stairs', 'wall'] - SHAPES.forEach(shape => { - event.create(`tfg:rock/smooth_stone_${shape}`, shape) - .soundType(global.STONE_CHARACS.reconstituted.sound) - .textureAll('minecraft:block/smooth_stone') - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .mapColor(global.STONE_CHARACS.reconstituted.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - SHAPES = ['stairs', 'slab', 'wall'] - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_bricks_stone_${shape}`, shape) - .soundType(global.STONE_CHARACS.reconstituted.sound) - .textureAll('minecraft:block/cracked_stone_bricks') - .tagBoth(`tfg:brick_${shape}s`.replace(/ss/g, 's')) - .mapColor(global.STONE_CHARACS.reconstituted.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/quartz_wall', 'wall') - .soundType('stone') - .textureAll('minecraft:block/quartz_block_side') - .tagBoth('tfg:rock_wall') - .mapColor('snow') - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/smooth_quartz_wall', 'wall') - .soundType('stone') - .textureAll('minecraft:block/quartz_block_bottom') - .tagBoth('tfg:rock_wall') - .mapColor('snow') - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - // #endregion Reconstituted Stone } diff --git a/kubejs/startup_scripts/tfg/blocks.nether.js b/kubejs/startup_scripts/tfg/blocks.nether.js deleted file mode 100644 index 765b3b6e2..000000000 --- a/kubejs/startup_scripts/tfg/blocks.nether.js +++ /dev/null @@ -1,592 +0,0 @@ -"use strict"; - -function registerTFGNetherBlocks(event) { - const SHAPES = ['stairs', 'slab', 'wall'] - - // #region Raw Stones - SHAPES.forEach(shape => { - event.create(`tfg:rock/deepslate_${shape}`, shape) - .soundType(global.STONE_CHARACS.deepslate.sound) - .textureAll('minecraft:block/deepslate') - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/dripstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.dripstone.sound) - .textureAll('minecraft:block/dripstone_block') - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/crackrack_${shape}`, shape) - .soundType(global.STONE_CHARACS.crackrack.sound) - .textureAll('beneath:block/crackrack') - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) - .mapColor(global.STONE_CHARACS.crackrack.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // #endregion Raw Stones - - // #region Hardened Stones - event.create('tfg:rock/hardened_deepslate') - .soundType(global.STONE_CHARACS.deepslate.sound) - .property(BlockProperties.AXIS) - .requiresTool(true) - .item(item => { - item.modelJson({ parent: 'minecraft:item/deepslate' }) - }) - .tagBlock('tfc:can_carve') - .tagBoth('forge:stone') - .tagBoth('tfc:rock/hardened') - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/hardened_blackstone') - .soundType(global.STONE_CHARACS.blackstone.sound) - .requiresTool(true) - .item(item => { - item.modelJson({ parent: 'minecraft:item/blackstone' }) - }) - .tagBlock('tfc:can_carve') - .tagBoth('forge:stone') - .tagBoth('tfc:rock/hardened') - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/hardened_dripstone') - .soundType(global.STONE_CHARACS.dripstone.sound) - .stoneSoundType() - .requiresTool(true) - .item(item => { - item.modelJson({ parent: 'minecraft:item/dripstone_block' }) - }) - .tagBlock('tfc:can_carve') - .tagBoth('forge:stone') - .tagBoth('tfc:rock/hardened') - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - // #endregion Hardened stones - - // #region Spikes - event.create('tfg:spike/deepslate_spike', 'tfc:rock_spike') - .textureAll('minecraft:block/deepslate') - .soundType(global.STONE_CHARACS.deepslate.sound) - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - - event.create('tfg:spike/blackstone_spike', 'tfc:rock_spike') - .textureAll('minecraft:block/blackstone') - .soundType(global.STONE_CHARACS.blackstone.sound) - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - - event.create('tfg:spike/dripstone_spike', 'tfc:rock_spike') - .textureAll('minecraft:block/dripstone_block') - .soundType(global.STONE_CHARACS.dripstone.sound) - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - - // #endregion Spikes - - // #region Loose Stones - event.create('tfg:loose/deepslate', 'tfc:loose_rock') - .soundType(global.STONE_CHARACS.deepslate.sound) - .itemTexture('tfg:item/loose/deepslate') - .rockTypeModel(global.STONE_CHARACS.deepslate.type) - .translationKey("block.tfg.loose.deepslate") - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('tfc:loose_rocks') - .tagItem('tfc:any_knapping') - .tagItem('tfc:rock_knapping') - .tagItem(`tfc:${global.STONE_CHARACS.deepslate.type}_rock`) - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .tagItem("rnr:loose_rock_items") - - event.create('tfg:loose/dripstone', 'tfc:loose_rock') - .soundType(global.STONE_CHARACS.dripstone.sound) - .itemTexture('tfg:item/loose/dripstone') - .rockTypeModel(global.STONE_CHARACS.dripstone.type) - .translationKey("block.tfg.loose.dripstone") - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('tfc:loose_rocks') - .tagItem('tfc:any_knapping') - .tagItem('tfc:rock_knapping') - .tagItem(`tfc:${global.STONE_CHARACS.dripstone.type}_rock`) - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .tagItem("rnr:loose_rock_items") - - event.create('tfg:loose/crackrack', 'tfc:loose_rock') - .soundType(global.STONE_CHARACS.crackrack.sound) - .itemTexture('tfg:item/loose/crackrack') - .rockTypeModel(global.STONE_CHARACS.crackrack.type) - .translationKey("block.tfg.loose.crackrack") - .mapColor(global.STONE_CHARACS.crackrack.mapColor) - .tagBlock('tfc:loose_rocks') - .tagItem('tfc:any_knapping') - .tagItem('tfc:rock_knapping') - .tagItem(`tfc:${global.STONE_CHARACS.crackrack.type}_rock`) - .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) - .tagItem("rnr:loose_rock_items") - - // #endregion Loose rocks - - // #region Cobblestones - - // Deepslate - event.create('tfg:rock/mossy_cobble_deepslate') - .soundType(global.STONE_CHARACS.deepslate.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_cobble_deepslate_${shape}`, shape) - .soundType(global.STONE_CHARACS.deepslate.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Blackstone - event.create('tfg:rock/cobble_blackstone') - .soundType(global.STONE_CHARACS.blackstone.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/cobble_blackstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.blackstone.sound) - .textureAll('minecraft:block/blackstone_top') - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_cobble_blackstone') - .soundType(global.STONE_CHARACS.blackstone.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_cobble_blackstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.blackstone.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Dripstone - event.create('tfg:rock/cobble_dripstone') - .soundType(global.STONE_CHARACS.dripstone.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/cobble_dripstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.dripstone.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_cobble_dripstone') - .soundType(global.STONE_CHARACS.dripstone.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_cobble_dripstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.dripstone.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Crackrack - event.create('tfg:rock/cobble_crackrack') - .soundType(global.STONE_CHARACS.crackrack.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) - .mapColor(global.STONE_CHARACS.crackrack.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/cobble_crackrack_${shape}`, shape) - .soundType(global.STONE_CHARACS.crackrack.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) - .mapColor(global.STONE_CHARACS.crackrack.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_cobble_crackrack') - .soundType(global.STONE_CHARACS.crackrack.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) - .mapColor(global.STONE_CHARACS.crackrack.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_cobble_crackrack_${shape}`, shape) - .soundType(global.STONE_CHARACS.crackrack.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) - .mapColor(global.STONE_CHARACS.crackrack.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // #region Smooth (Polished/Cut) Stones - - event.create('tfg:rock/polished_crackrack') - .soundType(global.STONE_CHARACS.crackrack.sound) - .tagBoth('forge:smooth_stone') - .tagBoth('tfc:igneous_intrusive_items') - .tagBoth('tfc:rock/smooth') - .mapColor('crimson_stem') - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/polished_crackrack_${shape}`, shape) - .soundType(global.STONE_CHARACS.crackrack.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) - .mapColor(global.STONE_CHARACS.crackrack.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // #endregion Smooth (Polished/Cut) Stones - - // #region Gravels - event.create('tfg:rock/gravel_deepslate') - .soundType('gravel') - .tagBoth('forge:gravel') - .tagBoth('tfc:rock/gravel') - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/shovel') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/gravel_blackstone') - .soundType('gravel') - .tagBoth('forge:gravel') - .tagBoth('tfc:rock/gravel') - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/shovel') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/gravel_dripstone') - .soundType('gravel') - .tagBoth('forge:gravel') - .tagBoth('tfc:rock/gravel') - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/shovel') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/gravel_crackrack') - .soundType('gravel') - .tagBoth('forge:gravel') - .tagBoth('tfc:rock/gravel') - .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) - .mapColor(global.STONE_CHARACS.crackrack.mapColor) - .tagBlock('minecraft:mineable/shovel') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - // #endregion Gravels - - // #region Bricks / Decorative - - // Deepslate - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_bricks_deepslate_${shape}`, shape) - .soundType(global.STONE_CHARACS.deepslate.sound) - .textureAll('minecraft:block/cracked_deepslate_bricks') - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_tiles_deepslate_${shape}`, shape) - .soundType(global.STONE_CHARACS.deepslate.sound) - .textureAll('minecraft:block/cracked_deepslate_tiles') - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_bricks_deepslate') - .soundType(global.STONE_CHARACS.deepslate.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/mossy_bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_bricks_deepslate_${shape}`, shape) - .soundType(global.STONE_CHARACS.deepslate.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Blackstone - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_bricks_blackstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.blackstone.sound) - .textureAll('minecraft:block/cracked_polished_blackstone_bricks') - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_bricks_blackstone') - .soundType(global.STONE_CHARACS.blackstone.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/mossy_bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_bricks_blackstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.blackstone.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Dripstone - event.create('tfg:rock/cracked_bricks_dripstone') - .soundType(global.STONE_CHARACS.dripstone.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/mossy_bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_bricks_dripstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.dripstone.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_bricks_dripstone') - .soundType(global.STONE_CHARACS.dripstone.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/mossy_bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_bricks_dripstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.dripstone.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Crackrack - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_bricks_nether_${shape}`, shape) - .soundType(global.STONE_CHARACS.nether.sound) - .textureAll('minecraft:block/cracked_nether_bricks') - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`) - .mapColor(global.STONE_CHARACS.nether.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_bricks_nether') - .soundType(global.STONE_CHARACS.nether.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/mossy_bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`) - .mapColor(global.STONE_CHARACS.nether.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_bricks_nether_${shape}`, shape) - .soundType(global.STONE_CHARACS.nether.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`) - .mapColor(global.STONE_CHARACS.nether.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // #endregion Bricks / Decorative - - // #region Plants - event.create('tfg:mushroom_roots', 'tfg:decorative_plant') - .soundType('nether_wart') - .tagItem('tfc:plants') - - event.create('tfg:mushroom_sprouts', 'tfg:decorative_plant') - .soundType('nether_wart') - .tagItem('tfc:plants') - - event.create('tfg:charred_log') - .fullBlock(true) - .woodSoundType() - .property(BlockProperties.AXIS) - .tagBoth('minecraft:mineable/axe') - .tagBoth('tfc:logs_that_log') - .tagBoth('afc:logs_that_log') - .tagBoth('minecraft:logs') - .mapColor('black') -} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/constants.js b/kubejs/startup_scripts/tfg/constants.js index 7964bc271..01e7e1586 100644 --- a/kubejs/startup_scripts/tfg/constants.js +++ b/kubejs/startup_scripts/tfg/constants.js @@ -28,13 +28,17 @@ global.AIRCRAFT_UPGRADES = [ * @type {string[]} - Item IDs */ global.EXTRATERRESTRIAL_RAW_ROCKS = [ + 'minecraft:deepslate', + 'minecraft:blackstone', + 'minecraft:dripstone_block', 'ad_astra:moon_stone', 'ad_astra:moon_deepslate', 'ad_astra:mars_stone', 'ad_astra:venus_stone', 'ad_astra:mercury_stone', 'ad_astra:glacio_stone', - 'gtceu:red_granite' + 'gtceu:red_granite', + 'beneath:crackrack' ] /** @@ -47,7 +51,11 @@ global.EXTRATERRESTRIAL_HARDENED_ROCKS = [ 'tfg:rock/hardened_venus_stone', 'tfg:rock/hardened_mercury_stone', 'tfg:rock/hardened_glacio_stone', - 'tfg:rock/hardened_red_granite' + 'tfg:rock/hardened_red_granite', + 'tfg:rock/hardened_deepslate', + 'tfg:rock/hardened_blackstone', + 'tfg:rock/hardened_dripstone', + 'tfg:rock/hardened_crackrack' ] /** @@ -211,24 +219,24 @@ global.HAMMERING = [ // Crushing relationships for manual block hammering, creat { raw: 'tfg:rock/hardened_deepslate', hammered: 'minecraft:cobbled_deepslate', duration: 10, eu: 16 }, { raw: 'minecraft:cobbled_deepslate', hammered: 'tfg:rock/gravel_deepslate', duration: 10, eu: 16 }, { raw: 'tfg:rock/mossy_cobble_deepslate', hammered: 'tfg:rock/gravel_deepslate', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_deepslate', hammered: 'tfc:sand/black', duration: 70, eu: 2 }, + { raw: 'tfg:rock/gravel_deepslate', hammered: 'tfc:sand/black', duration: 70, eu: 16 }, { raw: 'minecraft:blackstone', hammered: 'tfg:rock/cobble_blackstone', duration: 10, eu: 16 }, { raw: 'tfg:rock/hardened_blackstone', hammered: 'tfg:rock/cobble_blackstone', duration: 10, eu: 16 }, { raw: 'tfg:rock/cobble_blackstone', hammered: 'tfg:rock/gravel_blackstone', duration: 10, eu: 16 }, { raw: 'tfg:rock/mossy_cobble_blackstone', hammered: 'tfg:rock/gravel_blackstone', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_blackstone', hammered: 'tfc:sand/black', duration: 70, eu: 2 }, + { raw: 'tfg:rock/gravel_blackstone', hammered: 'tfc:sand/black', duration: 70, eu: 16 }, { raw: 'minecraft:dripstone_block', hammered: 'tfg:rock/cobble_dripstone', duration: 10, eu: 16 }, { raw: 'tfg:rock/hardened_dripstone', hammered: 'tfg:rock/cobble_dripstone', duration: 10, eu: 16 }, { raw: 'tfg:rock/cobble_dripstone', hammered: 'tfg:rock/gravel_dripstone', duration: 10, eu: 16 }, { raw: 'tfg:rock/mossy_cobble_dripstone', hammered: 'tfg:rock/gravel_dripstone', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_dripstone', hammered: 'tfc:sand/brown', duration: 70, eu: 2 }, + { raw: 'tfg:rock/gravel_dripstone', hammered: 'tfc:sand/brown', duration: 70, eu: 16 }, { raw: 'beneath:crackrack', hammered: 'tfg:rock/cobble_crackrack', duration: 10, eu: 16 }, { raw: 'tfg:rock/cobble_crackrack', hammered: 'tfg:rock/gravel_crackrack', duration: 10, eu: 16 }, { raw: 'tfg:rock/mossy_cobble_crackrack', hammered: 'tfg:rock/gravel_crackrack', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_crackrack', hammered: 'tfc:sand/pink', duration: 70, eu: 2 }, + { raw: 'tfg:rock/gravel_crackrack', hammered: 'tfc:sand/pink', duration: 70, eu: 16 }, { raw: 'minecraft:basalt', hammered: 'tfc:rock/cobble/basalt', duration: 10, eu: 16 }, @@ -237,7 +245,7 @@ global.HAMMERING = [ // Crushing relationships for manual block hammering, creat { raw: 'tfg:rock/hardened_moon_stone', hammered: 'ad_astra:moon_cobblestone', duration: 10, eu: 16 }, { raw: 'ad_astra:moon_cobblestone', hammered: 'tfg:rock/gravel_moon', duration: 10, eu: 16 }, { raw: 'tfg:rock/mossy_cobble_moon', hammered: 'tfg:rock/gravel_moon', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_moon', hammered: 'ad_astra:moon_sand', duration: 70, eu: 2 }, + { raw: 'tfg:rock/gravel_moon', hammered: 'ad_astra:moon_sand', duration: 70, eu: 16 }, { raw: 'ad_astra:moon_deepslate', hammered: 'tfg:rock/cobble_moon_deepslate', duration: 10, eu: 16 }, { raw: 'tfg:rock/hardened_moon_deepslate', hammered: 'tfg:rock/cobble_moon_deepslate', duration: 10, eu: 16 }, @@ -249,14 +257,14 @@ global.HAMMERING = [ // Crushing relationships for manual block hammering, creat { raw: 'tfg:rock/hardened_glacio_stone', hammered: 'ad_astra:glacio_cobblestone', duration: 10, eu: 16 }, { raw: 'ad_astra:glacio_cobblestone', hammered: 'tfg:rock/gravel_glacio', duration: 10, eu: 16 }, { raw: 'tfg:rock/mossy_cobble_glacio', hammered: 'tfg:rock/gravel_glacio', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_glacio', hammered: 'tfc:sand/white', duration: 70, eu: 2 }, + { raw: 'tfg:rock/gravel_glacio', hammered: 'tfc:sand/white', duration: 70, eu: 16 }, // Mars { raw: 'ad_astra:mars_stone', hammered: 'ad_astra:mars_cobblestone', duration: 10, eu: 16 }, { raw: 'tfg:rock/hardened_mars_stone', hammered: 'ad_astra:mars_cobblestone', duration: 10, eu: 16 }, { raw: 'ad_astra:mars_cobblestone', hammered: 'tfg:rock/gravel_mars', duration: 10, eu: 16 }, { raw: 'tfg:rock/mossy_cobble_mars', hammered: 'tfg:rock/gravel_mars', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_mars', hammered: 'ad_astra:mars_sand', duration: 70, eu: 2 }, + { raw: 'tfg:rock/gravel_mars', hammered: 'ad_astra:mars_sand', duration: 70, eu: 16 }, { raw: 'minecraft:red_sandstone', hammered: '4x minecraft:red_sand', duration: 10, eu: 16 }, @@ -264,29 +272,29 @@ global.HAMMERING = [ // Crushing relationships for manual block hammering, creat { raw: 'tfg:rock/hardened_red_granite', hammered: 'gtceu:red_granite_cobblestone', duration: 10, eu: 16 }, { raw: 'gtceu:red_granite_cobblestone', hammered: 'tfg:rock/gravel_red_granite', duration: 10, eu: 16 }, { raw: 'gtceu:mossy_red_granite_cobblestone', hammered: 'tfg:rock/gravel_red_granite', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_red_granite', hammered: 'minecraft:red_sand', duration: 70, eu: 2 }, + { raw: 'tfg:rock/gravel_red_granite', hammered: 'minecraft:red_sand', duration: 70, eu: 16 }, // Venus { raw: 'ad_astra:venus_stone', hammered: 'ad_astra:venus_cobblestone', duration: 10, eu: 16 }, { raw: 'tfg:rock/hardened_venus_stone', hammered: 'ad_astra:venus_cobblestone', duration: 10, eu: 16 }, { raw: 'ad_astra:venus_cobblestone', hammered: 'tfg:rock/gravel_venus', duration: 10, eu: 16 }, { raw: 'tfg:rock/mossy_cobble_venus', hammered: 'tfg:rock/gravel_venus', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_venus', hammered: 'ad_astra:venus_sand', duration: 70, eu: 2 }, + { raw: 'tfg:rock/gravel_venus', hammered: 'ad_astra:venus_sand', duration: 70, eu: 16 }, - { raw: 'ad_astra:venus_sandstone', hammered: '4x ad_astra:venus_sand', duration: 70, eu: 2 }, + { raw: 'ad_astra:venus_sandstone', hammered: '4x ad_astra:venus_sand', duration: 70, eu: 16 }, // Mercury { raw: 'ad_astra:mercury_stone', hammered: 'ad_astra:mercury_cobblestone', duration: 10, eu: 16 }, { raw: 'tfg:rock/hardened_mercury_stone', hammered: 'ad_astra:mercury_cobblestone', duration: 10, eu: 16 }, { raw: 'ad_astra:mercury_cobblestone', hammered: 'tfg:rock/gravel_mercury', duration: 10, eu: 16 }, { raw: 'tfg:rock/mossy_cobble_mercury', hammered: 'tfg:rock/gravel_mercury', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_mercury', hammered: 'tfc:sand/red', duration: 70, eu: 2 }, + { raw: 'tfg:rock/gravel_mercury', hammered: 'tfc:sand/red', duration: 70, eu: 16 }, // Europa { raw: 'ad_astra:permafrost', hammered: 'tfg:rock/cobble_permafrost', duration: 10, eu: 16 }, { raw: 'tfg:rock/cobble_permafrost', hammered: 'tfg:rock/gravel_permafrost', duration: 10, eu: 16 }, { raw: 'tfg:rock/mossy_cobble_permafrost', hammered: 'tfg:rock/gravel_permafrost', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_permafrost', hammered: '4x gtceu:ice_dust', duration: 70, eu: 2 }, + { raw: 'tfg:rock/gravel_permafrost', hammered: '4x gtceu:ice_dust', duration: 70, eu: 16 }, // Misc { raw: 'ad_astra:conglomerate', hammered: 'tfc:rock/gravel/conglomerate', duration: 10, eu: 16 }, diff --git a/kubejs/startup_scripts/tfg/dimension_markers.js b/kubejs/startup_scripts/tfg/dimension_markers.js index 053035b80..51301a50b 100644 --- a/kubejs/startup_scripts/tfg/dimension_markers.js +++ b/kubejs/startup_scripts/tfg/dimension_markers.js @@ -1,6 +1,64 @@ // priority: 0 "use strict"; + +function registerTFGDimensionMarkerItems(event) { + event.create('tfg:marker/earth_orbit').tag('c:hidden_from_recipe_viewers') + event.create('tfg:marker/moon_orbit').tag('c:hidden_from_recipe_viewers') + event.create('tfg:marker/mars_orbit').tag('c:hidden_from_recipe_viewers') + event.create('tfg:marker/venus_orbit').tag('c:hidden_from_recipe_viewers') + event.create('tfg:marker/mercury_orbit').tag('c:hidden_from_recipe_viewers') + event.create('tfg:marker/glacio_orbit').tag('c:hidden_from_recipe_viewers') +} + +function registerTFGDimensionMarkerBlocks(event) { + + event.create('tfg:marker/moon') + .stoneSoundType() + .item(item => { + item.modelJson({ parent: 'tfg:block/marker/moon' }) + }) + .tagBlock('c:hidden_from_recipe_viewers') + .fullBlock(true) + .opaque(true) + + event.create('tfg:marker/mars') + .stoneSoundType() + .item(item => { + item.modelJson({ parent: 'tfg:block/marker/mars' }) + }) + .tagBlock('c:hidden_from_recipe_viewers') + .fullBlock(true) + .opaque(true) + + event.create('tfg:marker/venus') + .stoneSoundType() + .item(item => { + item.modelJson({ parent: 'tfg:block/marker/venus' }) + }) + .tagBlock('c:hidden_from_recipe_viewers') + .fullBlock(true) + .opaque(true) + + event.create('tfg:marker/mercury') + .stoneSoundType() + .item(item => { + item.modelJson({ parent: 'tfg:block/marker/mercury' }) + }) + .tagBlock('c:hidden_from_recipe_viewers') + .fullBlock(true) + .opaque(true) + + event.create('tfg:marker/glacio') + .stoneSoundType() + .item(item => { + item.modelJson({ parent: 'tfg:block/marker/glacio' }) + }) + .tagBlock('c:hidden_from_recipe_viewers') + .fullBlock(true) + .opaque(true) +} + function registerTFGDimensionMarkers(event) { event.create('ad_astra:earth_orbit') diff --git a/kubejs/startup_scripts/tfg/entity_types.js b/kubejs/startup_scripts/tfg/entity_types.js deleted file mode 100644 index f39471767..000000000 --- a/kubejs/startup_scripts/tfg/entity_types.js +++ /dev/null @@ -1,26 +0,0 @@ -// priority: 0 -"use strict"; - -function registerTFGEntityTypes(event) { - - //event.create('tfg:moon_rabbit', 'tfc:mammal') - // .withFaunaDefinition('on_ground', 'world_surface_wg') - // .foodTag('tfc:rabbit_food') - // .sized(1, 1) - // .modelSize(1, 1) - // .updateInterval(3) - // .setDeathSound("minecraft:entity.rabbit.death") - // .setAmbientSound("minecraft:entity.rabbit.ambient") - // .setHurtSound(context => "minecraft:entity.rabbit.hurt") - // .canJump(true) - // .setBlockJumpFactor(entity => 0.42) - // // these are the same as tfc rabbits - // .configs(config => { - // config.gestationDays(19) - // config.daysToAdult(80) - // config.childCount(6) - // config.uses(40) - // config.maxFamiliarity(0.35) - // config.eatsRottenFood(true) - // }) -} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/equipment/items.weapons.js b/kubejs/startup_scripts/tfg/equipment/items.weapons.js new file mode 100644 index 000000000..8ad88500c --- /dev/null +++ b/kubejs/startup_scripts/tfg/equipment/items.weapons.js @@ -0,0 +1,15 @@ +"use strict"; + +function registerTFGWeaponItems(event) { + + //Tacz Helper Region + event.create('tfg:flintlock_mechanism') + event.create('tfg:advanced_clockwork_mechanism') + event.create('tfg:certus_mechanism') + + event.create('tfg:small_bullet_casing') + event.create('tfg:shell_bullet_casing') + event.create('tfg:large_bullet_casing') + event.create('tfg:nitrocellulose') + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/europa/blocks.europa_deco.js b/kubejs/startup_scripts/tfg/europa/blocks.europa_deco.js new file mode 100644 index 000000000..e71f03cab --- /dev/null +++ b/kubejs/startup_scripts/tfg/europa/blocks.europa_deco.js @@ -0,0 +1,39 @@ +"use strict"; + +function registerTFGWorldGenEuropaDecoBlocks(event) { + + + event.create('tfg:corallium_arenicolus_0', 'tfg:tall_decorative_plant') + .height(2) + .soundType('nether_wart') + .tagItem('tfg:venus_plants') + .lightLevel(0.4) + .renderType('translucent') + + event.create('tfg:corallium_arenicolus_1', 'tfg:decorative_plant') + .soundType('nether_wart') + .tagItem('tfg:venus_plants') + .box(3, 0, 3, 13, 14, 13) + + event.create('tfg:corallium_arenicolus_2', 'tfg:decorative_plant') + .soundType('nether_wart') + .tagItem('tfg:venus_plants') + .renderType('translucent') + .box(0, 0, 0, 16, 4, 16) + + event.create('tfg:corallium_arenicolus_3', 'tfg:decorative_plant') + .soundType('nether_wart') + .tagItem('tfg:venus_plants') + .box(3, 0, 3, 13, 14, 13) + + event.create('tfg:corallium_arenicolus_4', 'tfg:decorative_plant') + .soundType('nether_wart') + .tagItem('tfg:venus_plants') + .box(3, 0, 3, 13, 14, 13) + + event.create('tfg:corallium_arenicolus_5', 'tfg:decorative_plant') + .soundType('nether_wart') + .tagItem('tfg:venus_plants') + .box(3, 0, 3, 13, 14, 13) + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/europa/materials.europa.js b/kubejs/startup_scripts/tfg/europa/materials.europa.js new file mode 100644 index 000000000..a4fb06ddd --- /dev/null +++ b/kubejs/startup_scripts/tfg/europa/materials.europa.js @@ -0,0 +1,18 @@ +"use strict"; + +function registerTFGEuropaMaterials(event) { + + event.create('tfg:etrium') + //.components('1x niobium', '1x molybdenum', '1x ruthenium', '3x carbon', '1x monochloramine') + .color(0x7BFCD7) + .secondaryColor(0x3582D2) + .iconSet(GTMaterialIconSet.getByName('tfc_silver')) + .ore() + .ingot() + .flags( + GTMaterialFlags.FORCE_GENERATE_BLOCK, + GTMaterialFlags.GENERATE_PLATE, + GTMaterialFlags.GENERATE_ROD + ) + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/fluids.js b/kubejs/startup_scripts/tfg/fluids.js index 0133e5b7d..287f1dd0d 100644 --- a/kubejs/startup_scripts/tfg/fluids.js +++ b/kubejs/startup_scripts/tfg/fluids.js @@ -3,17 +3,21 @@ const registerTFGFluids = (event) => { - //#region Mars + // Moon + event.create('tfg:cryogenized_fluix') + .thickTexture(0xde8cfb) + .bucketColor(0xde8cfb) + .luminosity(14) + .temperature(10) + // Mars event.create('tfg:heavy_ammoniacal_water') .thinTexture(0x08733f) .bucketColor(0x08733f) .temperature(236) .noBlock() - //#endregion - - //#region Venus + // Venus event.create('tfg:sulfur_fumes') .stillTexture('tfg:block/planets/venus/sulfur_fumes_still') .flowingTexture('tfg:block/planets/venus/sulfur_fumes_flow') @@ -29,6 +33,5 @@ const registerTFGFluids = (event) => { .bucketColor(0xc4d984) .temperature(1000) .renderType('translucent') - //#endregion } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfc/materials.js b/kubejs/startup_scripts/tfg/icon_sets.js similarity index 76% rename from kubejs/startup_scripts/tfc/materials.js rename to kubejs/startup_scripts/tfg/icon_sets.js index 5883dc369..39e0c7b21 100644 --- a/kubejs/startup_scripts/tfc/materials.js +++ b/kubejs/startup_scripts/tfg/icon_sets.js @@ -1,45 +1,48 @@ // priority: 0 "use strict"; -const registerTFCMaterials = (event) => { - const registerStoneMaterial = (rockType, color) => - event.create(`tfg:${rockType}`) - .dust() - .color(color) - .iconSet(GTMaterialIconSet.ROUGH) - .flags( - GTMaterialFlags.MORTAR_GRINDABLE, - GTMaterialFlags.NO_SMASHING, - GTMaterialFlags.NO_SMELTING - ) +function registerTFGIconSets(event) { - /* TFC Stone Types Materials */ - registerStoneMaterial('gabbro', 0x7F8081) - registerStoneMaterial('shale', 0x686567) - registerStoneMaterial('claystone', 0xAF9377) - registerStoneMaterial('limestone', 0xA09885) - registerStoneMaterial('conglomerate', 0xA3977F) - registerStoneMaterial('dolomite', 0x515155) - registerStoneMaterial('chert', 0x7A6756) - registerStoneMaterial('chalk', 0xA4A39F) - registerStoneMaterial('rhyolite', 0x726D69) - registerStoneMaterial('dacite', 0x979797) - registerStoneMaterial('slate', 0x989287) - registerStoneMaterial('phyllite', 0x706B61) - registerStoneMaterial('schist', 0x6E735C) - registerStoneMaterial('gneiss', 0x6A6D60) + event.create('tfc_borax').parent('rough') + event.create('tfc_gypsum').parent('rough') + event.create('tfc_graphite').parent('rough') + event.create('tfc_saltpeter').parent('fine') + event.create('tfc_sulfur').parent('fine') - registerStoneMaterial('dripstone', 0x927965) + event.create('tfc_amethyst').parent('ruby') + event.create('tfc_redstone').parent('fine') + event.create('tfc_diamond').parent('diamond') + event.create('tfc_emerald').parent('emerald') + event.create('tfc_lapis').parent('lapis') + event.create('tfc_opal').parent('opal') + event.create('tfc_pyrite').parent('bright') + event.create('tfc_ruby').parent('ruby') + event.create('tfc_sapphire').parent('gem_horizontal') + event.create('tfc_topaz').parent('gem_vertical') + event.create('tfc_realgar').parent('emerald') + + event.create('tfc_bismuth').parent('bright') + event.create('tfc_cassiterite').parent('bright') + event.create('tfc_garnierite').parent('bright') + event.create('tfc_hematite').parent('metallic') + event.create('tfc_limonite').parent('metallic') + event.create('tfc_magnetite').parent('dull') + event.create('tfc_malachite').parent('shiny') + event.create('tfc_copper').parent('bright') + event.create('tfc_gold').parent('shiny') + event.create('tfc_silver').parent('shiny') + event.create('tfc_sphalerite').parent('dull') + event.create('tfc_tetrahedrite').parent('dull') + event.create('tfc_chromite').parent('dull') + + event.create('nether_quartz').parent('quartz') - registerStoneMaterial('moon_stone', 0x506869) - registerStoneMaterial('moon_deepslate', 0x45474D) - registerStoneMaterial('mars_stone', 0xD08957) - registerStoneMaterial('venus_stone', 0xD5A664) - registerStoneMaterial('mercury_stone', 0x723E49) - registerStoneMaterial('glacio_stone', 0x9897BF) - - // Specialized icon sets for TFC's own + // Credits to Flare from the Cosmic Frontiers team + event.create('chonky').parent('shiny') +} +function modifyTFGIconSets(event) { + GTMaterials.Coal.setMaterialIconSet(GTMaterialIconSet.LIGNITE) GTMaterials.Borax.setMaterialIconSet(GTMaterialIconSet.getByName('tfc_borax')) GTMaterials.Gypsum.setMaterialIconSet(GTMaterialIconSet.getByName('tfc_gypsum')) @@ -102,10 +105,9 @@ const registerTFCMaterials = (event) => { GTMaterials.Galena.setMaterialIconSet(GTMaterialIconSet.getByName('tfc_copper')) GTMaterials.Grossular.setMaterialIconSet(GTMaterialIconSet.getByName('tfc_sapphire')) GTMaterials.Neodymium.setMaterialIconSet(GTMaterialIconSet.getByName('tfc_limonite')) - GTMaterials.Palladium.setMaterialIconSet(GTMaterialIconSet.getByName('tfc_pyrite')) + GTMaterials.Palladium.setMaterialIconSet(GTMaterialIconSet.getByName('tfc_gold')) GTMaterials.Platinum.setMaterialIconSet(GTMaterialIconSet.getByName('tfc_gold')) GTMaterials.Thorium.setMaterialIconSet(GTMaterialIconSet.getByName('tfc_hematite')) - GTMaterials.Naquadah.setMaterialIconSet(GTMaterialIconSet.getByName('tfc_malachite')) GTMaterials.Goethite.setMaterialIconSet(GTMaterialIconSet.getByName('tfc_silver')) GTMaterials.Calcite.setMaterialIconSet(GTMaterialIconSet.getByName('tfc_borax')) GTMaterials.Cooperite.setMaterialIconSet(GTMaterialIconSet.getByName('tfc_gold')) @@ -135,4 +137,15 @@ const registerTFCMaterials = (event) => { GTMaterials.Zeolite.setMaterialIconSet(GTMaterialIconSet.getByName('tfc_copper')) GTMaterials.Electrotine.setMaterialIconSet(GTMaterialIconSet.getByName('tfc_garnierite')) GTMaterials.Bauxite.setMaterialIconSet(GTMaterialIconSet.getByName('tfc_borax')) + + GTMaterials.Naquadah.setMaterialIconSet(GTMaterialIconSet.getByName('chonky')) + GTMaterials.NaquadahEnriched.setMaterialIconSet(GTMaterialIconSet.getByName('chonky')) + GTMaterials.Naquadria.setMaterialIconSet(GTMaterialIconSet.getByName('chonky')) + GTMaterials.UraniumRhodiumDinaquadide.setMaterialIconSet(GTMaterialIconSet.getByName('chonky')) + GTMaterials.EnrichedNaquadahTriniumEuropiumDuranide.setMaterialIconSet(GTMaterialIconSet.getByName('chonky')) + GTMaterials.NaquadahAlloy.setMaterialIconSet(GTMaterialIconSet.getByName('chonky')) + GTMaterials.Neutronium.setMaterialIconSet(GTMaterialIconSet.getByName('chonky')) + GTMaterials.RutheniumTriniumAmericiumNeutronate.setMaterialIconSet(GTMaterialIconSet.getByName('chonky')) + + GTMaterials.Zirconium.setMaterialIconSet(GTMaterialIconSet.getByName('chonky')) } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/items.aircraft.js b/kubejs/startup_scripts/tfg/items.aircraft.js new file mode 100644 index 000000000..651171046 --- /dev/null +++ b/kubejs/startup_scripts/tfg/items.aircraft.js @@ -0,0 +1,41 @@ +"use strict"; + +function registerTFGAircraftItems(event) { + + event.create('tfg:scaffolding_frame') + + event.create('tfg:airship_hull') + + event.create('tfg:airship_balloon') + + event.create('tfg:lv_aircraft_engine') + + event.create('tfg:hv_aircraft_engine') + + event.create('tfg:ev_aircraft_engine') + + event.create('tfg:black_steel_plated_airplane_propeller') + + event.create('tfg:redblu_steel_plated_airplane_propeller') + + event.create('tfg:stainless_steel_plated_airplane_propeller') + + event.create('tfg:titanium_plated_airplane_propeller') + + event.create('tfg:redblu_steel_landing_gear') + + event.create('tfg:aluminium_landing_gear') + + event.create('tfg:stainless_steel_landing_gear') + + event.create('tfg:titanium_landing_gear') + + event.create('tfg:redblu_steel_hull_reinforcement') + + event.create('tfg:aluminium_hull_reinforcement') + + event.create('tfg:stainless_steel_hull_reinforcement') + + event.create('tfg:titanium_hull_reinforcement') + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/items.food.js b/kubejs/startup_scripts/tfg/items.food.js index 5a6b9888d..2ff882c35 100644 --- a/kubejs/startup_scripts/tfg/items.food.js +++ b/kubejs/startup_scripts/tfg/items.food.js @@ -2,55 +2,10 @@ "use strict"; function registerTFGFoodItems(event) { - - event.create('tfg:food/raw_birt') - .translationKey('item.tfg.food.raw_birt') - .food(food => food.hunger(2).saturation(1) - .effect('species:birtd', 50, 0, 1) - .eaten(ctx => { - ctx.player.level.runCommandSilent(`playsound species:effect.birtd.applied player ${ctx.player.username} ${ctx.player.x} ${ctx.player.y} ${ctx.player.z} 1 1`) - })) - - event.create('tfg:food/cooked_birt') - .translationKey('item.tfg.food.cooked_birt') - .food(food => food.hunger(4).saturation(2)) - - event.create('tfg:food/raw_limpet') - .translationKey('item.tfg.food.raw_limpet') - .food(food => food.hunger(2).saturation(1) - .effect('minecraft:hunger', 100, 0, 1)) - - event.create('tfg:food/cooked_limpet') - .translationKey('item.tfg.food.cooked_limpet') - .food(food => food.hunger(4).saturation(2)) - - event.create('tfg:food/raw_crawlermari') - .translationKey('item.tfg.food.raw_crawlermari') - .food(food => food.hunger(2).saturation(1)) - - event.create('tfg:food/cooked_crawlermari') - .translationKey('item.tfg.food.cooked_crawlermari') - .food(food => food.hunger(4).saturation(2)) - - global.FOOD_FRUIT.forEach(fruit => { - event.create(`tfg:food/freeze_dried/${fruit.name}`) - .translationKey(`item.tfg.food.freeze_dried/${fruit.name}`) - .texture(`tfg:item/food/freeze_dried_${fruit.name}`) - .tag('tfg:space_food') - .food(food => food.hunger(4).saturation(1) - .eaten(ctx => { - ctx.player.give('tfg:used_foil_pack') - })) - }) - - event.create('tfg:food/calorie_paste') - .translationKey('item.tfg.food.calorie_paste') - .food(food => food.hunger(8).saturation(5) - .eaten(ctx => { - ctx.player.give('tfg:used_foil_pack') - })) - .texture('tfg:item/food/calorie_paste') - .tag('tfg:space_food') + + // Meal bags + event.create('tfg:foil_pack') + event.create('tfg:clean_foil_pack') event.create('tfg:used_foil_pack') .translationKey('item.tfg.food.used_foil_pack') @@ -68,6 +23,61 @@ function registerTFGFoodItems(event) { .texture('tfg:item/food/meal_bag') .tag('tfg:space_food') + // Birt + event.create('tfg:food/raw_birt') + .translationKey('item.tfg.food.raw_birt') + .food(food => food.hunger(2).saturation(1) + .effect('species:birtd', 50, 0, 1) + .eaten(ctx => { + ctx.player.level.runCommandSilent(`playsound species:effect.birtd.applied player ${ctx.player.username} ${ctx.player.x} ${ctx.player.y} ${ctx.player.z} 1 1`) + })) + + event.create('tfg:food/cooked_birt') + .translationKey('item.tfg.food.cooked_birt') + .food(food => food.hunger(4).saturation(2)) + + // Limpet + event.create('tfg:food/raw_limpet') + .translationKey('item.tfg.food.raw_limpet') + .food(food => food.hunger(2).saturation(1) + .effect('minecraft:hunger', 100, 0, 1)) + + event.create('tfg:food/cooked_limpet') + .translationKey('item.tfg.food.cooked_limpet') + .food(food => food.hunger(4).saturation(2)) + + // Crawlermari + event.create('tfg:food/raw_crawlermari') + .translationKey('item.tfg.food.raw_crawlermari') + .food(food => food.hunger(2).saturation(1)) + + event.create('tfg:food/cooked_crawlermari') + .translationKey('item.tfg.food.cooked_crawlermari') + .food(food => food.hunger(4).saturation(2)) + + // Freeze dried fruit + global.FOOD_FRUIT.forEach(fruit => { + event.create(`tfg:food/freeze_dried/${fruit.name}`) + .translationKey(`item.tfg.food.freeze_dried/${fruit.name}`) + .texture(`tfg:item/food/freeze_dried_${fruit.name}`) + .tag('tfg:space_food') + .food(food => food.hunger(4).saturation(1) + .eaten(ctx => { + ctx.player.give('tfg:used_foil_pack') + })) + }) + + // Calorie paste + event.create('tfg:food/calorie_paste') + .translationKey('item.tfg.food.calorie_paste') + .food(food => food.hunger(8).saturation(5) + .eaten(ctx => { + ctx.player.give('tfg:used_foil_pack') + })) + .texture('tfg:item/food/calorie_paste') + .tag('tfg:space_food') + + // Sunflower seeds event.create('tfg:roasted_sunflower_seeds') .translationKey('item.tfg.roasted_sunflower_seeds') .texture('tfg:item/roasted_sunflower_seeds') @@ -486,4 +496,10 @@ function registerTFGFoodItems(event) { .texture('tfg:item/food/allspice'); //#endregion + + // Animal products + event.create('tfg:wraptor_sugar') + .tag('tfg:sugars') + .tag('tfg:haste_ingredients') + .tag('tfc:sweetener') } diff --git a/kubejs/startup_scripts/tfg/items.js b/kubejs/startup_scripts/tfg/items.js index 3c18ddc84..4183c56a8 100644 --- a/kubejs/startup_scripts/tfg/items.js +++ b/kubejs/startup_scripts/tfg/items.js @@ -8,8 +8,22 @@ const registerTFGItems = (event) => { registerTFGFoodItems(event) + registerTFGPrimitiveItems(event); + registerTFGNuclearItems(event); + registerTFGWoodItems(event); + registerTFGMedicineItems(event); + registerTFGAircraftItems(event); + registerTFGSpaceItems(event); + registerTFGMarsItems(event); + registerTFGDimensionMarkerItems(event); + registerTFGBiotechItems(event); + registerTFGWeaponItems(event); + registerTFGRockItems(event); + + event.create('tfg:terra_firma_greg') + .tag('c:hidden_from_recipe_viewers') - // #region Electronics + // Electronics event.create('tfg:unfinished_electron_tube', 'create:sequenced_assembly') event.create('tfg:unfinished_vacuum_tube', 'create:sequenced_assembly') event.create('tfg:unfinished_basic_electronic_circuit', 'create:sequenced_assembly') @@ -17,540 +31,22 @@ const registerTFGItems = (event) => { event.create('tfg:unfinished_inscriber_accumulation_press') event.create('tfg:vitrified_pearl') event.create('tfg:cryo_fluix_pearl') - .translationKey('tfg:cryo_fluix_pearl') - // #endregion - - // #region Space - - // Orbit dimension markers - event.create('tfg:marker/earth_orbit').tag('c:hidden_from_recipe_viewers') - event.create('tfg:marker/moon_orbit').tag('c:hidden_from_recipe_viewers') - event.create('tfg:marker/mars_orbit').tag('c:hidden_from_recipe_viewers') - event.create('tfg:marker/venus_orbit').tag('c:hidden_from_recipe_viewers') - event.create('tfg:marker/mercury_orbit').tag('c:hidden_from_recipe_viewers') - event.create('tfg:marker/glacio_orbit').tag('c:hidden_from_recipe_viewers') - - global.AD_ASTRA_WOOD.forEach(wood => { - event.create(`tfg:wood/lumber/${wood.name}`) - .translationKey(`item.tfg.${wood.name}_lumber`) - .tag('tfc:lumber') - }) - // #endregion - - // #region Paper making - event.create('tfg:hardwood_strip') - .translationKey('item.tfg.hardwood_strip') - - event.create('tfg:soaked_hardwood_strip') - .translationKey('item.tfg.soaked_hardwood_strip') - - event.create('tfg:soaked_unrefined_paper') - .translationKey('item.tfg.soaked_unrefined_paper') - - event.create('tfg:terra_firma_greg') - .translationKey('item.tfg.terra_firma_greg') - .tag('c:hidden_from_recipe_viewers') - - //#region chalk creation - event.create('tfg:unfired_chalk') - .translationKey('item.tfg.unfired_chalk') - - Color.DYE.forEach((dyeName, dye) => { - event.create(`tfg:wet_${dyeName}_chalk`) - .translationKey(`item.tfg.wet_${dyeName}_chalk`) - .textureJson({ - layer0: 'tfg:item/unfired_chalk' - }) - .color(0, dye.getHexJS()); - }); - //#endregion - - - // #region Molds - global.TFG_EXTRUDER_MOLDS.forEach(id => event.create(id)) - - global.TFG_CASTING_MOLDS.forEach(id => event.create(id)) - // #endregion - - // #region Stone bricks and dusts - event.create('tfg:brick/deepslate') - .tag(`tfc:metamorphic_items`) - .translationKey('item.tfg.brick.deepslate') - - event.create('tfg:brick/dripstone') - .tag(`tfc:sedimentary_items`) - .translationKey('item.tfg.brick.dripstone') - - event.create('tfg:brick/moon_stone') - .tag(`tfc:igneous_intrusive_items`) - .translationKey('item.tfg.brick.moon_stone') - - event.create('tfg:brick/moon_deepslate') - .tag(`tfc:igneous_intrusive_items`) - .translationKey('item.tfg.moon_deepslate') - - event.create('tfg:brick/mars_stone') - .tag(`tfc:sedimentary_items`) - .translationKey('item.tfg.brick.mars_stone') - - event.create('tfg:brick/venus_stone') - .tag(`tfc:igneous_extrusive_items`) - .translationKey('item.tfg.brick.venus_stone') - - event.create('tfg:brick/mercury_stone') - .tag(`tfc:igneous_intrusive_items`) - .translationKey('item.tfg.brick.mercury_stone') - - event.create('tfg:brick/glacio_stone') - .tag(`tfc:igneous_extrusive_items`) - .translationKey('item.tfg.brick.glacio_stone') - - event.create('tfg:brick/permafrost') - .translationKey('item.tfg.brick.permafrost') - - event.create('tfg:brick/red_granite') - .tag(`tfc:igneous_intrusive_items`) - .translationKey('item.tfg.red_granite') - - // #endregion - - // #region Primitive rubber gloves - event.create('tfg:prepared_leather_gloves') - .translationKey('item.tfg.prepared_leather_gloves') - - event.create('tfg:latex_soaked_gloves') - .translationKey('item.tfg.latex_soaked_gloves') - // #endregion - - //#region Medicine - - const pill = [ - 'haste', - 'night_vision', - 'poison', - 'regeneration', - 'slowness', - 'speed', - 'water_breathing', - 'weakness' - ] - const pill_names = [ - 'Haste', - 'Night Vision', - 'Poison', - 'Regeneration', - 'Slowness', - 'Speed', - 'Water Breathing', - 'Weakness' - ] - - pill.forEach((pill_array, index) => { - const pill_names_array = pill_names[index]; - - event.create(`tfg:${pill_array}_pill`) - .translationKey(`item.tfg.${pill_array}_pill`) - .tooltip(`§9${pill_names_array} (08:00)`) - - event.create(`tfg:${pill_array}_tablet`) - .translationKey(`item.tfg.${pill_array}_tablet`) - .tooltip(`§9${pill_names_array} (30:00)`) - }) - - event.create(`tfg:antipoison_pill`) - .translationKey(`item.tfg.antipoison_pill`) - .tooltip(`§9Cures Poison`) - - event.create(`tfg:antipoison_tablet`) - .translationKey(`item.tfg.antipoison_tablet`) - .tooltip(`§9Cures All Harmful Effects`) - - //salvos - - const salvo = [ - 'absorption', - 'fire_resistance', - 'invisibility', - 'luck', - 'resistance' - ] - const salvo_names = [ - 'Absorption', - 'Fire Resistance', - 'Invisibility', - 'Luck', - 'Resistance' - ] - - salvo.forEach((salvo_array, index) => { - const salvo_names_array = salvo_names[index]; - - event.create(`tfg:${salvo_array}_salvo`) - .translationKey(`item.tfg.${salvo_array}_salvo`) - .tooltip(`§9${salvo_names_array} (08:00)`) - }) - - event.create(`tfg:instant_health_salvo`) - .translationKey(`item.tfg.instant_health_salvo`) - .tooltip(`§9Instant Health II`) - //#endregion - - //#region Misc - event.create('tfg:paraffin_wax') - event.create('tfg:conifer_rosin') - event.create('tfg:foil_pack') - event.create('tfg:clean_foil_pack') - event.create('tfg:flint_club_head') event.create('tfg:uv_led') event.create('tfg:smd_uv_led') - event.create('tfg:twigs/strophar') - .tag('tfc:twigs') - .texture('tfg:item/wood/twig/strophar') - event.create('tfg:twigs/aeronos') - .tag('tfc:twigs') - .texture('tfg:item/wood/twig/aeronos') - event.create('tfg:twigs/glacian') - .tag('tfc:twigs') - .texture('tfg:item/wood/twig/glacian') - event.create('tfg:twigs/alphacene') - .tag('tfc:twigs') - .texture('tfg:item/wood/twig/alphacene') - - event.create('tfg:cobalt_brass_wheel') - .translationKey('item.tfg.cobalt_brass_wheel') - //#endregion - - //#region Cloth & String - event.create('tfg:polycaprolactam_fabric') - .translationKey('item.tfg.polycaprolactam_fabric') - - event.create('tfg:polycaprolactam_string') - .translationKey('item.tfg.polycaprolactam_string') - - event.create('tfg:phantom_silk') - .translationKey('item.tfg.phantom_silk') - - event.create('tfg:phantom_thread') - .translationKey('item.tfg.phantom_thread') - - event.create('tfg:space_suit_fabric') - .translationKey('item.tfg.space_suit_fabric') - //#endregion - - //#region Tools - event.create('tfg:flint_arrow_head') - .translationKey('item.tfg.flint_arrow_head') - - event.create('tfg:fletching') - .translationKey('item.tfg.fletching') - - event.create('tfg:armor_stand_arms') - .translationKey('item.tfg.armor_stand_arms') - - event.create('tfg:harvest_basket') - .translationKey('item.tfg.harvest_basket') - .parentModel('tfg:item/harvest_basket') - .maxDamage(128) - - event.create('tfg:aluminium_harvest_basket') - .translationKey('item.tfg.aluminium_harvest_basket') - .parentModel('tfg:item/aluminium_harvest_basket') - .unstackable() - - event.create('tfg:stainless_steel_needle') - .translationKey('item.tfg.stainless_steel_needle') - .unstackable() - .maxDamage(9999) - - //Fishing Nets - event.create('tfg:fishing_net/wood') - .translationKey('item.tfg.fishing_net.wood') - .parentModel('tfg:item/fishing_nets/wood_fishing_net') - .texture('tfg:item/fishing_nets/wood_fishing_net') - .maxDamage(112) - - event.create('tfg:fishing_net/brass') - .translationKey('item.tfg.fishing_net.brass') - .parentModel('tfg:item/fishing_nets/brass_fishing_net') - .texture('tfg:item/fishing_nets/brass_fishing_net') - .maxDamage(326) - - event.create('tfg:fishing_net/rose_gold') - .translationKey('item.tfg.fishing_net.rose_gold') - .parentModel('tfg:item/fishing_nets/rose_gold_fishing_net') - .texture('tfg:item/fishing_nets/rose_gold_fishing_net') - .maxDamage(380) - - event.create('tfg:fishing_net/sterling_silver') - .translationKey('item.tfg.fishing_net.sterling_silver') - .parentModel('tfg:item/fishing_nets/sterling_silver_fishing_net') - .texture('tfg:item/fishing_nets/sterling_silver_fishing_net') - .maxDamage(380) - - event.create('tfg:fishing_net/invar') - .translationKey('item.tfg.fishing_net.invar') - .parentModel('tfg:item/fishing_nets/invar_fishing_net') - .texture('tfg:item/fishing_nets/invar_fishing_net') - .maxDamage(740) - - event.create('tfg:fishing_net/tin_alloy') - .translationKey('item.tfg.fishing_net.tin_alloy') - .parentModel('tfg:item/fishing_nets/tin_alloy_fishing_net') - .texture('tfg:item/fishing_nets/tin_alloy_fishing_net') - .maxDamage(710) - - event.create('tfg:fishing_net/cupronickel') - .translationKey('item.tfg.fishing_net.cupronickel') - .parentModel('tfg:item/fishing_nets/cupronickel_fishing_net') - .texture('tfg:item/fishing_nets/cupronickel_fishing_net') - .maxDamage(560) - - event.create('tfg:fishing_net/magnalium') - .translationKey('item.tfg.fishing_net.magnalium') - .parentModel('tfg:item/fishing_nets/magnalium_fishing_net') - .texture('tfg:item/fishing_nets/magnalium_fishing_net') - .maxDamage(1830) - - //#endregion - - //#region Immersive Aircraft Impl - event.create('tfg:scaffolding_frame') - .translationKey('item.tfg.scaffolding_frame') - - event.create('tfg:airship_hull') - .translationKey('item.tfg.airship_hull') - - event.create('tfg:airship_balloon') - .translationKey('item.tfg.airship_balloon') - - event.create('tfg:lv_aircraft_engine') - .translationKey('item.tfg.lv_aircraft_engine') - - event.create('tfg:hv_aircraft_engine') - .translationKey('item.tfg.hv_aircraft_engine') - - event.create('tfg:ev_aircraft_engine') - .translationKey('item.tfg.ev_aircraft_engine') - - event.create('tfg:black_steel_plated_airplane_propeller') - .translationKey('item.tfg.black_steel_plated_airplane_propeller') - - event.create('tfg:redblu_steel_plated_airplane_propeller') - .translationKey('item.tfg.redblu_steel_plated_airplane_propeller') - - event.create('tfg:stainless_steel_plated_airplane_propeller') - .translationKey('item.tfg.stainless_steel_plated_airplane_propeller') - - event.create('tfg:titanium_plated_airplane_propeller') - .translationKey('item.tfg.titanium_plated_airplane_propeller') - - event.create('tfg:redblu_steel_landing_gear') - .translationKey('item.tfg.redblu_steel_landing_gear') - - event.create('tfg:aluminium_landing_gear') - .translationKey('item.tfg.aluminium_landing_gear') - - event.create('tfg:stainless_steel_landing_gear') - .translationKey('item.tfg.stainless_steel_landing_gear') - - event.create('tfg:titanium_landing_gear') - .translationKey('item.tfg.titanium_landing_gear') - - event.create('tfg:redblu_steel_hull_reinforcement') - .translationKey('item.tfg.redblu_steel_hull_reinforcement') - - event.create('tfg:aluminium_hull_reinforcement') - .translationKey('item.tfg.aluminium_hull_reinforcement') - - event.create('tfg:stainless_steel_hull_reinforcement') - .translationKey('item.tfg.stainless_steel_hull_reinforcement') - - event.create('tfg:titanium_hull_reinforcement') - .translationKey('item.tfg.titanium_hull_reinforcement') - //#endregion - - //Tacz Helper Region - event.create('tfg:flintlock_mechanism') - .translationKey('item.tfg.flintlock_mechanism') - event.create('tfg:advanced_clockwork_mechanism') - .translationKey('item.tfg.advanced_clockwork_mechanism') - event.create('tfg:certus_mechanism') - .translationKey('item.tfg.certus_mechanism') - - event.create('tfg:small_bullet_casing') - .translationKey('tfg:small_bullet_casing') - event.create('tfg:shell_bullet_casing') - .translationKey('tfg:shell_bullet_casing') - event.create('tfg:large_bullet_casing') - .translationKey('tfg:large_bullet_casing') - event.create('tfg:nitrocellulose') - .translationKey('tfg:nitrocellulose') - //endregion - - //Tier2 Insulation - event.create('tfg:aes_wool') - .translationKey('tfg:aes_wool') - event.create('tfg:aes_compressed_wool') - .translationKey('tfg:aes_compressed_wool') - event.create('tfg:aes_insulation_sheet') - .translationKey('tfg:aes_insulation_sheet') - event.create('tfg:aes_insulation_roll') - .translationKey('tfg:aes_insulation_roll') - //endregion - - //Tier 2 Rocket Parts - event.create('tfg:rocket_fin_t2') - event.create('tfg:rocket_cone_t2') - //endregion - - //Tier 3 Insulation - event.create('tfg:aes_polyurethane') - event.create('tfg:mli_shielding') - event.create('tfg:silica_aerogel') - //endregion - - //Tier 3 Rocket Parts - event.create('tfg:rocket_fin_t3') - event.create('tfg:rocket_cone_t3') - event.create('tfg:elite_power_thruster') - - event.create('tfg:better_space_suit_fabric') - //endregion - - //#region Universal compost items - event.create('tfg:universal_compost_browns') - .tag('tfc:compost_browns_low') - - event.create('tfg:universal_compost_greens') - .tag('tfc:compost_greens_low') - //#endregion - - //#region Etched Diamond Etching Tip - event.create('tfg:etching_diamond_tip') - .translationKey("item.tfg.etching_diamond_tip") - //#endregion - - //#region Solar Panel - - event.create('tfg:photo_cell_t1') - .translationKey("item.tfg.basic.photovoltaic.cell") - .texture('tfg:item/photo_cell_t1') - //#endregion - - //#region Mars Animals - event.create('tfg:wraptor_sugar') - .tag('tfg:sugars') - .tag('tfg:haste_ingredients') - .tag('tfc:sweetener') - //#endregion - - //#region Flax Stuff - event.create('tfg:flax_waste') - .tag('tfc:scrapable') - event.create('tfg:flax_tow') - .tag('tfg:burlap_fiber') - .tag('tfc:compost_browns') - event.create('tfg:flax_line') - .tag('tfc:compost_browns_low') - event.create('tfg:linen_thread') - .tag('forge:string') - event.create('tfg:linen_cloth') - .tag('forge:cloth') - .tag('tfc:sewing_light_cloth') - - event.create('tfg:flax_bundle') - .tag('tfc:scrapable') - .translationKey('item.tfg.flax_bundle') - .texture('tfg:item/flax_bundle') - - event.create('tfg:bundled_scraped_flax') - .tag('tfc:scrapable') - .translationKey('item.tfg.bundled_scraped_flax') - .texture('tfg:item/bundled_scraped_flax') - - //#region Lab Equipment - - global.LAB_EQUIPMENT_CONTAINERS.forEach((item) => { - event.create(`tfg:${item.type}`, 'tfc:glass_bottle') - .fluidTagAccept('tfg:not_solid') - .capacity(item.capacity) - .translationKey(`item.tfg.lab_equipment.${item.type}`) - .tag('tfg:lab_equipment_containers') - .tag('tfc:fluid_item_ingredient_empty_containers') - .tag('tfc:glass_bottles') - }) - - event.create('tfg:lab_equipment') - .translationKey('item.tfg.lab_equipment.lab_equipment') - .tooltip(Text.translatable('tfg.tooltip.lab_equipment.set')) - - event.create('tfg:dirty_lab_equipment') - .translationKey('item.tfg.lab_equipment.dirty_lab_equipment') - .tooltip(Text.translatable('tfg.tooltip.lab_equipment.set_dirty')) - //#endregion - - // Empty Fission Rod - - event.create('tfg:empty_rod') - .translationKey('item.tfg.empty_road') - .texture('tfg:item/fuel_rod_empty') - .tag('tfg:fission_rods') - - event.create('tfg:refrigerant_pellet') - .translationKey('item.tfg.refrigerant_pellet') - .texture('tfg:item/refrigerant_pellet') - .tag('tfg:fission_coolant') - - // Moderator Line - - event.create('tfg:graphite_compound') - .translationKey('item.tfg.graphite_compound') - .texture('tfg:item/graphite_line/graphite_compound') - - event.create('tfg:raw_graphite_briquette') - .translationKey('item.tfg.raw_graphite_briquette') - .texture('tfg:item/graphite_line/raw_graphite_briquette') - - event.create('tfg:faulty_graphite_briquette') - .translationKey('item.tfg.faulty_graphite_briquette') - .texture('tfg:item/graphite_line/faulty_graphite_briquette') - - event.create('tfg:washed_graphite_briquette') - .translationKey('item.tfg.washed_graphite_briquette') - - event.create('tfg:pure_graphite_rod') - .translationKey('item.tfg.pure_graphite_rod') - .texture('tfg:item/graphite_line/pure_graphite_rod') - - event.create('tfg:impure_graphite_rod') - .translationKey('item.tfg.impure_graphite_rod') - .texture('tfg:item/graphite_line/impure_graphite_rod') - - event.create('tfg:annealed_graphite_rod') - .translationKey('item.tfg.annealed_graphite_rod') - - event.create('tfg:impure_annealed_graphite_rod') - .translationKey('item.tfg.impure_annealed_graphite_rod') - - event.create('tfg:graphite_moderator') - .translationKey('item.tfg.graphite_moderator') - .texture('tfg:item/graphite_line/graphite_moderator') - - event.create('tfg:impure_graphite_moderator') - .translationKey('item.tfg.impure_graphite_moderator') - .texture('tfg:item/graphite_line/impure_graphite_moderator') - - event.create('tfg:advanced_polymer_binder') - .translationKey('item.tfg.advanced_polymer_binder') - .texture('tfg:item/graphite_line/advanced_polymer_binder') - - //#region Bioline - - event.create('tfg:cellulose_matrix') - event.create('tfg:smooth_endoplasmic_reticula') - event.create('tfg:rough_endoplasmic_reticula') - event.create('tfg:alpha_keratin') - - //#endregion + // Molds + global.TFG_EXTRUDER_MOLDS.forEach(id => event.create(id)) + global.TFG_CASTING_MOLDS.forEach(id => event.create(id)) + + // Universal Circuits + event.create('tfg:ulv_universal_circuit') + event.create('tfg:lv_universal_circuit') + event.create('tfg:mv_universal_circuit') + event.create('tfg:hv_universal_circuit') + event.create('tfg:ev_universal_circuit') + event.create('tfg:iv_universal_circuit') + event.create('tfg:luv_universal_circuit') + event.create('tfg:zpm_universal_circuit') + event.create('tfg:uv_universal_circuit') + event.create('tfg:uhv_universal_circuit') } diff --git a/kubejs/startup_scripts/betterend/blocks.js b/kubejs/startup_scripts/tfg/mars/blocks.mars_deco.js similarity index 69% rename from kubejs/startup_scripts/betterend/blocks.js rename to kubejs/startup_scripts/tfg/mars/blocks.mars_deco.js index 49d5cf1fe..3043fc2ef 100644 --- a/kubejs/startup_scripts/betterend/blocks.js +++ b/kubejs/startup_scripts/tfg/mars/blocks.mars_deco.js @@ -1,31 +1,6 @@ -// priority: 0 "use strict"; -function registerBetterEndBlocks(event) { - - // Moon - - event.create('betterend:chorus_lily', 'tfc:ground_cover') - .soundType('cherry_wood') - .hardness(0.5) - .tagItem('tfg:moon_plants') - .tagBlock('minecraft:mineable/hoe') - .tagBlock('tfg:do_not_destroy_in_space') - .mapColor('terracotta_white') - .box(0, 0, 0, 16, 6, 16) - .fullBlock(false) - .opaque(false) - .notSolid() - .renderType('cutout') - - // 1 block tall - createPlant(event, 'inflexia', 'moon') - createPlant(event, 'chorus_grass', 'moon') - createPlant(event, 'salteago', 'moon') - createPlant(event, 'vaiolush_fern', 'moon') - - - // Mars +function registerTFGWorldGenMarsDecoBlocks(event) { // 1 block tall createPlant(event, 'aeridium', 'mars') @@ -202,40 +177,74 @@ function registerBetterEndBlocks(event) { .tagBlock('tfg:do_not_destroy_in_space') .mapColor('color_orange') - // europa...? + // Ground cover - createPlant(event, 'crystal_grass', 'unused') - .box(3, 0, 3, 13, 12, 13) - createPlant(event, 'blooming_cooksonia', 'unused') - .box(3, 0, 3, 13, 12, 13) - createPlant(event, 'fracturn', 'unused') - .box(3, 0, 3, 13, 12, 13) - createPlant(event, 'jungle_grass', 'unused') - .box(3, 0, 3, 13, 12, 13) -} - -/** - * @param {any} event - * @param {string} id - * @param {string} planet - */ -function createPlant(event, id, planet) { - return event.create(`betterend:${id}`, 'tfg:decorative_plant') - .tagItem(`tfg:${planet}_plants`) - .tagBlock('minecraft:replaceable') - .tagBlock('tfg:do_not_destroy_in_space') + event.create('tfg:groundcover/glider_feather', 'tfc:ground_cover') + .box(4, 0, 4, 12, 2, 12) + .soundType('wool') + .groundCoverModelShape('feather') + .withPreexistingItem('wan_ancient_beasts:glider_feather') + .textureAll('wan_ancient_beasts:item/glider_feather') .tagBlock('tfc:can_be_snow_piled') -} -/** - * @param {any} event - * @param {string} id - * @param {string} planet - */ -function createWaterPlant(event, id, planet) { - return event.create(`betterend:${id}`, 'tfg:decorative_plant') - .tagItem(`tfg:${planet}_plants`) - .tagBlock('minecraft:replaceable') - .tagBlock('tfg:do_not_destroy_in_space') - .tagBlock('tfc:can_be_ice_piled') + event.create('tfg:groundcover/wraptor_feather', 'tfc:ground_cover') + .box(4, 0, 4, 12, 2, 12) + .soundType('wool') + .groundCoverModelShape('feather') + .withPreexistingItem('minecraft:feather') + .textureAll('tfg:item/wraptor_wool') + .tagBlock('tfc:can_be_snow_piled') + + event.create('tfg:groundcover/aeronos_stick', 'tfc:ground_cover') + .box(3, 0, 3, 13, 3, 13) + .groundCoverModelShape('twig') + .withPreexistingItem('tfg:twigs/aeronos') + .tagBlock('tfc:can_be_snow_piled') + .texture('particle', 'ad_astra:block/aeronos_stem') + .texture('all', 'ad_astra:block/aeronos_stem') + .texture('top', 'ad_astra:block/aeronos_stem_inside') + + event.create('tfg:groundcover/strophar_stick', 'tfc:ground_cover') + .box(3, 0, 3, 13, 3, 13) + .groundCoverModelShape('twig') + .withPreexistingItem('tfg:twigs/strophar') + .tagBlock('tfc:can_be_snow_piled') + .texture('particle', 'ad_astra:block/strophar_stem') + .texture('all', 'ad_astra:block/strophar_stem') + .texture('top', 'ad_astra:block/strophar_stem_inside') + + event.create('tfg:groundcover/glacian_stick', 'tfc:ground_cover') + .box(3, 0, 3, 13, 3, 13) + .groundCoverModelShape('twig') + .withPreexistingItem('tfg:twigs/glacian') + .tagBlock('tfc:can_be_snow_piled') + .texture('particle', 'ad_astra:block/glacian_log') + .texture('all', 'ad_astra:block/glacian_log') + .texture('top', 'ad_astra:block/glacian_log_top') + + event.create('tfg:groundcover/alphacene_stick', 'tfc:ground_cover') + .box(3, 0, 3, 13, 3, 13) + .groundCoverModelShape('twig') + .withPreexistingItem('tfg:twigs/alphacene') + .tagBlock('tfc:can_be_snow_piled') + .texture('particle', 'species:block/alphacene_mushroom_block') + .texture('all', 'species:block/alphacene_mushroom_block') + .texture('top', 'minecraft:block/mushroom_stem') + + // Misc + + event.create('tfg:spice', 'tfg:particle_emitter') + .textureAll('tfg:block/sand_spice') + .soundType('sand') + .hardness(2) + .resistance(6) + // makes it invisible on xaeros, so people can't use it to find the deposits :) + .mapColor('none') + .particleOffset(0.3, 1.5, 0.3) + .particleVelocity(0, 0.05, 0) + .particle('electric_spark') + .particleCount(2) + .particleForced(false) + .fullBlock(true) + .opaque(true) } \ No newline at end of file diff --git a/kubejs/startup_scripts/betterend/items.js b/kubejs/startup_scripts/tfg/mars/items.mars.js similarity index 88% rename from kubejs/startup_scripts/betterend/items.js rename to kubejs/startup_scripts/tfg/mars/items.mars.js index 3c23730ef..5460fe4f6 100644 --- a/kubejs/startup_scripts/betterend/items.js +++ b/kubejs/startup_scripts/tfg/mars/items.mars.js @@ -1,11 +1,7 @@ -// priority: 0 "use strict"; -/** - * - * @param {Registry.Item} event - */ -function registerBetterEndItems(event) { +function registerTFGMarsItems(event) { + event.create('betterend:bolux_mushroom_cooked') .food(food => { food.hunger(2) @@ -35,4 +31,5 @@ function registerBetterEndItems(event) { food.hunger(5) food.saturation(2) }) + } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/mars/materials.mars.js b/kubejs/startup_scripts/tfg/mars/materials.mars.js new file mode 100644 index 000000000..e03e5dc76 --- /dev/null +++ b/kubejs/startup_scripts/tfg/mars/materials.mars.js @@ -0,0 +1,105 @@ +"use strict"; + +function registerTFGMarsMaterials(event) { + + event.create('liquid_carbon_dioxide') + .liquid(100) //Not realistic but I want it to be cryogenic + .components('1x carbon', '2x oxygen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xDBFBFF) + + // Mars Ore Line + + event.create('lightweight_ostrum_vapor') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(760)) + + event.create('ostrum_vapor') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(815)) + + event.create('dense_ostrum_vapor') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(930)) + + event.create('residual_radioactive_concoction') + .liquid(new GTFluidBuilder().customStill().temperature(450)) + + // Atmosphere + + event.create('tfg:mars_air') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(208)) + .color('0xD08957') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .components('94x carbon_dioxide', '3x nitrogen', '2x argon', '1x oxygen') + + // TODO: move neon and xenon somewhere else + event.create('tfg:liquid_mars_air') + .liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(58)) + .color('0xD08957') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .components('80x carbon_dioxide', '7x nitrogen', '5x argon', '3x oxygen', '1x neon', '1x krypton', '1x xenon') + + // Mars sap + + event.create('tfg:crimsene') + .liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(220)) + .gem() + .iconSet('lapis') + .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES) + .color(0xB12727) + .secondaryColor(0x562C3E) + + event.create('tfg:warpane') + .liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(220)) + .gem() + .iconSet('quartz') + .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES) + .color(0x45ABA9) + .secondaryColor(0x562C3E) + + event.create('tfg:mycelienzene') + .dust() + .color(0x9E7385) + + event.create('tfg:cooked_mycelienzane') + .liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(1830)) + .color(0x9E7385) + + event.create('tfg:iodomethane') + .liquid() + .components('1x carbon', '3x hydrogen', '1x iodine') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xAC45C6) + + event.create('tfg:trideuteroiodomethane') + .liquid() + .components('1x carbon', '3x deuterium', '1x iodine') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xDD9DED) + + // Ores + + event.create('ostrum') + .components('2x pitchblende', '1x tricalcium_phosphate', '1x bauxite', '1x silver', '1x beryllium') + .color(0xbd7980) + .secondaryColor(0xA66C8D) + .iconSet(GTMaterialIconSet.getByName('tfc_cassiterite')) + .ingot() + .liquid() + .blastTemp(3700, 'mid', GTValues.VA[GTValues.EV]) + .flags( + GTMaterialFlags.DISABLE_DECOMPOSITION, + GTMaterialFlags.FORCE_GENERATE_BLOCK, + GTMaterialFlags.GENERATE_PLATE, + GTMaterialFlags.GENERATE_ROD, + GTMaterialFlags.GENERATE_FRAME, + GTMaterialFlags.DISABLE_ALLOY_BLAST + ) + + event.create("ostrum_iodide") + .ingot() + .components('2x ostrum', 'iodine') + .blastTemp(3700, 'mid', GTValues.VA[GTValues.IV], (20*120)) + .iconSet(GTMaterialIconSet.BRIGHT) + .flags(GTMaterialFlags.GENERATE_GEAR) + .color(0xc696f2) + .secondaryColor(0x9b99ff) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials.js b/kubejs/startup_scripts/tfg/materials.js index 76fdb3038..b25ca13df 100644 --- a/kubejs/startup_scripts/tfg/materials.js +++ b/kubejs/startup_scripts/tfg/materials.js @@ -7,118 +7,19 @@ const registerTFGMaterials = (event) => { .color('0xFFFFFF') .formula('?') .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + registerTFGPowerReworkMaterials(event); + registerTFGNuclearMaterials(event); + registerTFGBiolineMaterials(event); + registerTFGPrimitiveMaterials(event); + registerTFGRockMaterials(event); - event.create('hardwood') - .dust() - .flags(GTMaterialFlags.FLAMMABLE) - .iconSet(GTMaterialIconSet.WOOD) - .color('0x7a5225') - .secondaryColor('0x7a5225') + registerTFGRocketMaterials(event); + registerTFGMoonMaterials(event); + registerTFGMarsMaterials(event); + registerTFGVenusMaterials(event); + registerTFGEuropaMaterials(event); - event.create('thermochemically_treated_hardwood') - .dust() - .flags(GTMaterialFlags.FLAMMABLE) - .iconSet(GTMaterialIconSet.WOOD) - .color('0x52482c') - .secondaryColor('0x52482c') - - // Important tags to add to fluids: - // tfc:usable_in_pot, tfc:usable_in_barrel, tfc:usable_in_wooden_bucket - - event.create('tfg:latex') - .liquid() - .color(0xFBB982) - - event.create('tfg:vulcanized_latex') - .liquid() - .color(0xc79973) - - event.create('tfg:conifer_pitch') - .liquid() - .color(0xfbdf82) - .secondaryColor(0xff9d2e) - - // Cooking - - event.create('lactose') - .dust() - .iconSet(GTMaterialIconSet.FINE) - .color('0xede8da') - .secondaryColor('0xeddcad') - .components('12x carbon', '22x hydrogen', '11x oxygen') - - // Used as a TFC aluminium substitute so you can't make actual aluminium ingots early - event.create('aluminium_silicate') - .dust() - .ingot() - .liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(1520)) - .components('2x aluminium', '1x silicon', '5x oxygen') - .iconSet('metallic') - .color(0xB6D3FF) - .secondaryColor(0x6F4AB3) - - // Space Rocket Materials - - event.create('rocket_alloy_t1') - .ingot() - .components('6x aluminium', '2x stainless_steel', '1x red_steel') - .color(0x333e47) - .iconSet('metallic') - .flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR) - .blastTemp(1760, 'low', 256, 900) - - event.create('rocket_alloy_t2') - .ingot() - .components('19x titanium', '4x vanadium', '3x aluminium', '3x chromium', '3x tin') - .color(0x3c253d) - .iconSet('metallic') - .flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.DISABLE_ALLOY_BLAST) - .blastTemp(3200, 'mid', 1024, 1100) - .liquid() - -/* event.create('rocket_alloy_t3') - .ingot() - .components('8x titanium', '9x tungsten_steel', '2x tantalum', '2x radon') - .color(0x6c678b) - //.secondaryColor(0xa59fc6) - .liquid() - .removeHazard() - .iconSet('metallic') - .flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR) - .blastTemp(4200, 'high', 4096, 1300) - */ - event.create('vitrified_asbestos') - .dust() - .fluid() - .iconSet('glass') - .color(0xcccccc) - - // Space suit gases (these all add up to 10B of components = 1B of space suit gas) - - event.create('tfg:compressed_nitrox') - .gas() - .components('8x nitrogen', '2x oxygen') - .color(0xaef5ef) - - event.create('tfg:compressed_heliox') - .gas() - .components('8x helium', '2x oxygen') - .color(0xf5eeb3) - - event.create('tfg:compressed_heliox_3') - .gas() - .components('8x helium_3', '2x oxygen') - .color(0xf5ea90) - - event.create('tfg:compressed_trimix') - .gas() - .components('5x nitrogen', '3x oxygen', '2x helium') - .color(0xc3fab9) - - event.create('tfg:compressed_trimix_3') - .gas() - .components('5x nitrogen', '3x oxygen', '2x helium_3') - .color(0xa3ed95) // Refrigerants @@ -142,25 +43,8 @@ const registerTFGMaterials = (event) => { .components('2x carbon', '2x hydrogen', '4x fluorine') .color(0x46702e) - // Fission Component - - event.create('tfg:tetrafluoroethane') - .fluid() - .gem() - .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES, GTMaterialFlags.DISABLE_DECOMPOSITION) - .iconSet(GTMaterialIconSet.QUARTZ) - .components('2x carbon', '2x hydrogen', '4x fluorine') - .color(0x46702e) - // Crafting components - event.create('tfg:kaolinite') - .dust() - .components('2x aluminium', '2x silicon', '9x oxygen', '4x hydrogen') - .color(0xEEB9AD) - .secondaryColor(0xF6A797) - .formula("Al2Si2O5(OH)4") - event.create('tfg:vitrified_pearl') .dust() .flags(GTMaterialFlags.DECOMPOSITION_BY_CENTRIFUGING) @@ -169,250 +53,6 @@ const registerTFGMaterials = (event) => { .secondaryColor(0x67FFE6) .formula("(Al2Si2O5(OH)4)(BeK4N5)") - //#region Solar Panel Chemicals - - event.create('tfg:chloryl_fluoride') - .gas() - .components('1x fluorine', '1x chlorine', '2x oxygen') - .color(0x8AFAF4) - - event.create('tfg:chlorine_pentafluoride') - .gas() - .components('5x fluorine', '1x chlorine') - .color(0x51F7C0) - - event.create('tfg:solar_coolant') - .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(163)) - .components('8x helium_3', '11x oxygen', '11x hydrogen') - .color(0xEDFFB3) - - event.create('tfg:solar_coolant_tier2') - .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(73)) - .components('8x tfg:solar_coolant', '1x argon') - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - .color(0xfeff5d) - - //#endregion - event.create('liquid_carbon_dioxide') - .liquid(100) //Not realistic but I want it to be cryogenic - .components('1x carbon', '2x oxygen') - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - .color(0xDBFBFF) - - //#region Rockwool - event.create('tfg:aes_mix') - .dust() - .flags(GTMaterialFlags.DECOMPOSITION_BY_CENTRIFUGING) - .components('5x silicon_dioxide', '4x quicklime', '1x magnesia') - .hazard(HazardProperty.HazardTrigger.SKIN_CONTACT, GTMedicalConditions.CHEMICAL_BURNS) - .color(0xE0E9E4) - //.secondaryColor(0x54483d) - event.create('tfg:molten_aes') - .liquid(2900) - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - .components('5x silicon_dioxide', '4x quicklime', '1x magnesia') - .color(0xe65609) - .secondaryColor(0xe65609) - //#endregion - - //#region Ammonia Borane - event.create('tfg:sodium_hydride') - .dust() - .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) - .components('1x sodium', '1x hydrogen') - .color(0xEDF5F3) - event.create('tfg:boric_acid') - .dust() - .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) - .components('3x hydrogen', '1x boron', '3x oxygen') - .color(0xDFEDDF) - .secondaryColor(0xDFEDDF) - event.create('tfg:trimethyl_borate') - .liquid() - .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) - .components('3x carbon', '9x hydrogen', '1x boron', '3x oxygen') - .color(0xF7F7F7) - event.create('tfg:sodium_borohydride') - .dust() - .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) - .components('1x sodium', '1x boron', '4x hydrogen') - .color(0xE8F1FF) - .secondaryColor(0xE8F1FF) - event.create('tfg:sodium_methoxide') - .dust() - .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) - .components('1x sodium', '1x oxygen', '1x carbon', '3x hydrogen') - .color(0xE8E5DF) - .secondaryColor(0xE8E5DF) - event.create('tfg:ammonia_borane') - .dust() - .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING, GTMaterialFlags.GENERATE_PLATE) - .components('1x ammonia', '1x boron', '3x hydrogen') - .color(0xCCE3E3) - .secondaryColor(0xCCE3E3) - //#endregion - - //#region polyurethane - event.create('tfg:aniline') - .liquid() - .components('6x carbon', '5x hydrogen', '1x nitrogen', '2x hydrogen') - .color(0xBAB999) - event.create('tfg:dimethyl_carbonate') - .liquid() - .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) - .components('3x formaldehyde') // CH2O - .color(0xFFFFF2) - event.create('tfg:methyl_phenylcarbamate') - .liquid() - .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) - .components('8x carbon','9x hydrogen','1x nitrogen', '2x oxygen') - .color(0xB4EDB4) - event.create('tfg:methylene_diphenyl_dicarbamate') - .liquid() - .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) - .components('17x carbon','18x hydrogen','2x nitrogen', '4x oxygen') - .color(0x69C2C1) - event.create('tfg:methylene_diphenyl_diisocyanate') - .dust() - .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) - .components('13x carbon','10x hydrogen','2x nitrogen', '2x oxygen') - .color(0xFFFFBA) - //#endregion - - //#region aerogel - event.create('tfg:tmos') - .liquid() - .formula("Si(OCH3)4") - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - .color(0xC2C6CC) - event.create('tfg:silica_gel') - .liquid() - .color(0x60BABF) - .secondaryColor(0xFFD38C) - event.create('tfg:soaked_silica_gel') - .liquid() - .color(0x9ED5D9) - //#endregion - - //#region Bromine Line - - event.create('raw_brine') - .fluid() - .color(0x947a11) - //.secondaryColor(0x81FFF9) - - event.create('hot_brine') - .liquid(320) - .color(0x944611) - - event.create('hot_chlorinated_brominated_brine') - .liquid(320) - .color(0xbf8d5a) - .components('1x unknown', '1x chlorine') - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - - event.create('brominated_chlorine_vapor') - .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(320)) - .color(0xbf8d5a) - .components('1x chlorine', '1x bromine', '1x water') - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - - event.create('acidic_bromine_solution') - .liquid(new GTFluidBuilder().attribute(GTFluidAttributes.ACID)) - .color(0xe7b989) - .components('1x chlorine', '1x bromine') - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - - event.create('concentrated_bromine_solution') - .liquid() - .color(0x905d29) - .components('1x bromine', '1x chlorine') - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - - event.create('debrominated_brine') - .liquid() - .color(0xc3874a) - - event.create('acidic_bromine_exhaust') - .gas(new GTFluidBuilder().state(GTFluidState.GAS).attribute(GTFluidAttributes.ACID).temperature(293)) - .color(0xec9c4a) - .components('3x water', '1x chlorine') - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - - event.create('hot_alkaline_debrominated_brine') - .liquid() - .color(0xcc6a06) - .components('2x unknown', '1x chlorine') - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - - event.create('hot_debrominated_brine') - .liquid(320) - .color(0xb08e6b) - - event.create('hydrogen_iodide') - .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(293)) - .color(0x82a6ce) - .components('1x hydrogen', '1x iodine') - - //#endregion - - //#region Mars Ore Line - - event.create('lightweight_ostrum_vapor') - .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(760)) - - event.create('ostrum_vapor') - .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(815)) - - event.create('dense_ostrum_vapor') - .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(930)) - - event.create('residual_radioactive_concoction') - .liquid(new GTFluidBuilder().customStill().temperature(450)) - - //#endregion - - //#region Moon Ore Line - - event.create('regolith_vapor') - .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(727)) - - event.create('tfg:certus_regolith') - .dust() - .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES) - .iconSet(GTMaterialIconSet.CERTUS) - .color('0xc1e6e4') - .secondaryColor('0x7a5225') - - event.create('tfg:goethe_regolith') - .dust() - .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES) - .iconSet(GTMaterialIconSet.METALLIC) - .color('0xb0af5b') - .secondaryColor('0x7a5225') - - event.create('tfg:bright_regolith') - .dust() - .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES) - .iconSet(GTMaterialIconSet.SHINY) - .color('0xf0efe9') - .secondaryColor('0xffffff') - - event.create('tfg:cassiterite_regolith') - .dust() - .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES) - .iconSet(GTMaterialIconSet.METALLIC) - .color('0xbab6b7') - .secondaryColor('0x7a5225') - - event.create('tfg:regolith_mush') - .dust() - .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES) - .iconSet(GTMaterialIconSet.WOOD) - .color('0xa2cde0') - .secondaryColor('0x7a5225') - - //#endregion //#region Tungsten Line @@ -423,22 +63,18 @@ const registerTFGMaterials = (event) => { .components('2x sodium','1x tungsten', '4x oxygen') .color('0xdcf6f7') - event.create('tfg:tungstate') - .components('2x hydrogen', '12x tungsten', '42x oxygen') - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - - event.create('tfg:ammonium_tungstate') - .dust() - .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES, GTMaterialFlags.DISABLE_DECOMPOSITION) - .iconSet(GTMaterialIconSet.DULL) - .components('10x ammonia', '1x tfg:tungstate') - .color('0xfafafa') + event.create('tfg:ammonium_tungstate') + .dust() + .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES, GTMaterialFlags.DISABLE_DECOMPOSITION) + .iconSet(GTMaterialIconSet.DULL) + .components('10x ammonia', '2x hydrogen', '12x tungsten', '42x oxygen') + .color('0xfafafa') event.create('tfg:apt') .gem() .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) .iconSet(GTMaterialIconSet.FLINT) - .components('10x ammonia', '1x tfg:tungstate', '4x water') + .components('10x ammonia', '4x water', '2x hydrogen', '12x tungsten', '42x oxygen') .color('0xaabdf0') event.create('tfg:tungsten_oxide') @@ -450,23 +86,6 @@ const registerTFGMaterials = (event) => { // #endregion - // #region Atmospheres - - event.create('tfg:mars_air') - .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(208)) - .color('0xD08957') - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - .components('94x carbon_dioxide', '3x nitrogen', '2x argon', '1x oxygen') - - // TODO: move neon and xenon somewhere else - event.create('tfg:liquid_mars_air') - .liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(58)) - .color('0xD08957') - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - .components('80x carbon_dioxide', '7x nitrogen', '5x argon', '3x oxygen', '1x neon', '1x krypton', '1x xenon') - - // #endregion - //#region New Alloy for Turbines event.create('tfg:tungsten_bismuth_oxide_composite') @@ -485,55 +104,17 @@ const registerTFGMaterials = (event) => { GTMaterialFlags.EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES, GTMaterialFlags.GENERATE_GEAR ) + .fluidPipeProperties(4250, 1700, true, false, false, false) // #endregion - // #region Mars sap - - event.create('tfg:crimsene') - .liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(220)) - .gem() - .iconSet('lapis') - .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES) - .color(0xB12727) - .secondaryColor(0x562C3E) - - event.create('tfg:warpane') - .liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(220)) - .gem() - .iconSet('quartz') - .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES) - .color(0x45ABA9) - .secondaryColor(0x562C3E) - - event.create('tfg:mycelienzene') - .dust() - .color(0x9E7385) - - event.create('tfg:cooked_mycelienzane') - .liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(1830)) - .color(0x9E7385) - - event.create('tfg:iodomethane') - .liquid() - .components('1x carbon', '3x hydrogen', '1x iodine') - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - .color(0xAC45C6) - - event.create('tfg:trideuteroiodomethane') - .liquid() - .components('1x carbon', '3x deuterium', '1x iodine') - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - .color(0xDD9DED) - - // #endregion - // #region conductor event.create('tfg:thermally_conductive_fluid') .liquid() .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) .components('7x gallium', '2x tin', '1x zinc') .color('0x34cfeb') + // #endregion // #region holder materials // These allow us to give material components to non-material items @@ -553,34 +134,55 @@ const registerTFGMaterials = (event) => { .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES, GTMaterialFlags.EXPLOSIVE) .macerateInto('gtceu:polycaprolactam') .color(0x000000) + // #endregion - //#endregion - //#region Food Materials(?) - - event.create('tfg:sodium_dihydrogen_citrate') - .dust() + // #region Zirconium + event.create('tfg:zircon') + .gem() + .color(0xF1B6B0) + .secondaryColor(0x4BABC6) + .iconSet('gem_horizontal') + .components('1x zirconium', '1x silicon', '4x oxygen') .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - .iconSet(GTMaterialIconSet.BRIGHT) - .components('6x carbon', '7x hydrogen', '1x sodium', '7x oxygen') - .color('0xE38818') - event.create('tfg:citric_acid') + event.create('tfg:zirconium_tetrachloride') .dust() + .color(0xF1B6B0) + .secondaryColor(0x146946) + .iconSet('rough') + .components('1x zirconium', '4x chlorine') .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - .iconSet(GTMaterialIconSet.SHINY) - .components('6x carbon', '8x hydrogen', '7x oxygen') - .color('0xE3AD18') - // I decided to make these materials because why not? - event.create('tfg:rich_stock') - .liquid(new GTFluidBuilder().customStill().state(GTFluidState.LIQUID).temperature(360)); + event.create('tfg:silicon_tetrachloride') + .liquid() + .color(0x707078) + .secondaryColor(0x146946) + .components('1x silicon', '4x chlorine') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - event.create('tfg:light_stock') - .liquid(new GTFluidBuilder().customStill().state(GTFluidState.LIQUID).temperature(360)); + event.create('tfg:zirconium_bromide') + .dust() + .color(0xBA776F) + .secondaryColor(0x146985) + .iconSet('shiny') + .components('1x zirconium', '4x bromine') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - event.create('tfg:brown_gravy') - .liquid(new GTFluidBuilder().customStill().state(GTFluidState.LIQUID).temperature(360)); + event.create('tfg:zirconium_diboride') + .ingot() + .color(0xFADED2) + .secondaryColor(0x4FA883) + .iconSet('chonky') + .components('1x zirconium', '2x boron') + .flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_FOIL) - //#endregion + event.create('tfg:boron_carbide') + .ingot() + .iconSet('dull') + .color(0x42705D) + .components('4x boron', '1x carbon') + .blastTemp(3041, "mid", GTValues.VA[GTValues.HV], 1500) + .flags(GTMaterialFlags.GENERATE_PLATE) + // #endregion } diff --git a/kubejs/startup_scripts/tfg/materials.power_rework.js b/kubejs/startup_scripts/tfg/materials.power_rework.js new file mode 100644 index 000000000..7c062d24b --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials.power_rework.js @@ -0,0 +1,55 @@ +// priority: 0 +"use strict"; + +const registerTFGPowerReworkMaterials = (event) => { + + // Syngas + event.create('tfg:syngas') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(650)) + .components('11x carbon', '20x hydrogen', '12x oxygen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + // Raw Aromatic Mix + event.create('tfg:raw_aromatic_mix') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(420)) + .components('137x carbon', '154x hydrogen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x8a4b3d) + .secondaryColor(0xd8b6ac) + + // Aromatic Feedstock + event.create('tfg:aromatic_feedstock') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(450)) + .components('67x carbon', '74x hydrogen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x915c2f) + .secondaryColor(0xe2c49b) + + // Reformed Aromatic Feedstock + event.create('tfg:reformed_aromatic_feedstock') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(500)) + .components('133x carbon', '146x hydrogen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x4e6b83) + .secondaryColor(0xbacdde) + + // Reformate Gas + event.create('tfg:reformate_gas') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(540)) + .components('13x carbon', '63x hydrogen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + // Cracker Off-Gas + event.create('tfg:cracker_off_gas') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(480)) + .components('31x carbon', '128x hydrogen', '2x oxygen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xa36f2a) + .secondaryColor(0xecd8ae) + + // Reformate Gas + event.create('tfg:btx_fuel') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(540)) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + +} diff --git a/kubejs/startup_scripts/tfg/moon/blocks.moon_deco.js b/kubejs/startup_scripts/tfg/moon/blocks.moon_deco.js new file mode 100644 index 000000000..0cd4d8935 --- /dev/null +++ b/kubejs/startup_scripts/tfg/moon/blocks.moon_deco.js @@ -0,0 +1,53 @@ +"use strict"; + +function registerTFGWorldGenMoonDecoBlocks(event) { + + // Moon + + event.create('tfg:lunar_roots', 'tfg:decorative_plant') + .soundType('nether_wart') + .lightLevel(0.4) + .tagItem('tfg:moon_plants') + .tagBlock('minecraft:replaceable') + + event.create('tfg:lunar_sprouts', 'tfg:decorative_plant') + .soundType('nether_wart') + .tagItem('tfg:moon_plants') + .tagBlock('minecraft:replaceable') + + event.create('betterend:chorus_lily', 'tfc:ground_cover') + .soundType('cherry_wood') + .hardness(0.5) + .tagItem('tfg:moon_plants') + .tagBlock('minecraft:mineable/hoe') + .tagBlock('tfg:do_not_destroy_in_space') + .mapColor('terracotta_white') + .box(0, 0, 0, 16, 6, 16) + .fullBlock(false) + .opaque(false) + .notSolid() + .renderType('cutout') + + // 1 block tall + createPlant(event, 'inflexia', 'moon') + createPlant(event, 'chorus_grass', 'moon') + createPlant(event, 'salteago', 'moon') + createPlant(event, 'vaiolush_fern', 'moon') + + + // Mars + + + + // europa...? + + createPlant(event, 'crystal_grass', 'unused') + .box(3, 0, 3, 13, 12, 13) + createPlant(event, 'blooming_cooksonia', 'unused') + .box(3, 0, 3, 13, 12, 13) + createPlant(event, 'fracturn', 'unused') + .box(3, 0, 3, 13, 12, 13) + createPlant(event, 'jungle_grass', 'unused') + .box(3, 0, 3, 13, 12, 13) +} + diff --git a/kubejs/startup_scripts/tfg/moon/materials.moon.js b/kubejs/startup_scripts/tfg/moon/materials.moon.js new file mode 100644 index 000000000..24722152d --- /dev/null +++ b/kubejs/startup_scripts/tfg/moon/materials.moon.js @@ -0,0 +1,98 @@ +"use strict"; + +function registerTFGMoonMaterials(event) { + + // Solar Panel Chemicals + + event.create('tfg:chloryl_fluoride') + .gas() + .components('1x fluorine', '1x chlorine', '2x oxygen') + .color(0x8AFAF4) + + event.create('tfg:chlorine_pentafluoride') + .gas() + .components('5x fluorine', '1x chlorine') + .color(0x51F7C0) + + event.create('tfg:solar_coolant') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(163)) + .components('8x helium_3', '11x oxygen', '11x hydrogen') + .color(0xEDFFB3) + + event.create('tfg:solar_coolant_tier2') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(73)) + .components('8x tfg:solar_coolant', '1x argon') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xfeff5d) + + // Moon Ore Line + + event.create('regolith_vapor') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(727)) + + event.create('tfg:certus_regolith') + .dust() + .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES) + .iconSet(GTMaterialIconSet.CERTUS) + .color('0xc1e6e4') + .secondaryColor('0x7a5225') + + event.create('tfg:goethe_regolith') + .dust() + .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES) + .iconSet(GTMaterialIconSet.METALLIC) + .color('0xb0af5b') + .secondaryColor('0x7a5225') + + event.create('tfg:bright_regolith') + .dust() + .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES) + .iconSet(GTMaterialIconSet.SHINY) + .color('0xf0efe9') + .secondaryColor('0xffffff') + + event.create('tfg:cassiterite_regolith') + .dust() + .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES) + .iconSet(GTMaterialIconSet.METALLIC) + .color('0xbab6b7') + .secondaryColor('0x7a5225') + + event.create('tfg:regolith_mush') + .dust() + .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES) + .iconSet(GTMaterialIconSet.WOOD) + .color('0xa2cde0') + .secondaryColor('0x7a5225') + + // Ores + + event.create('armalcolite') + .gem(2) + .components('1x magnesium', '1x rutile', '1x ilmenite') + .color(0x443333) + .secondaryColor(0x5e2c21) + .iconSet(GTMaterialIconSet.getByName('tfc_emerald')) + .ore() + .addOreByproducts('rutile', 'rutile', 'ilmenite') + + event.create('desh') + .components('2x olivine', '1x rutile', '4x nitrogen') + .color(0xF39A4C) + .secondaryColor(0xF35A6C) + .iconSet(GTMaterialIconSet.getByName('tfc_hematite')) + .ore() + .addOreByproducts('olivine', 'rutile', 'rutile') + .ingot() + .liquid() + .blastTemp(2800, 'mid', GTValues.VA[GTValues.HV]) + .flags( + GTMaterialFlags.FORCE_GENERATE_BLOCK, + GTMaterialFlags.GENERATE_PLATE, + GTMaterialFlags.GENERATE_ROD, + GTMaterialFlags.GENERATE_DENSE, + GTMaterialFlags.GENERATE_GEAR, + GTMaterialFlags.GENERATE_FRAME, + GTMaterialFlags.DISABLE_ALLOY_BLAST + ) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/nuclear/blocks.nuclear.js b/kubejs/startup_scripts/tfg/nuclear/blocks.nuclear.js new file mode 100644 index 000000000..e1a5954ae --- /dev/null +++ b/kubejs/startup_scripts/tfg/nuclear/blocks.nuclear.js @@ -0,0 +1,118 @@ +"use strict"; + +function registerTFGNuclearBlocks(event) { + + // Insulation + event.create('tfg:glacian_wool_frame') + .soundType('copper') + .hardness(4) + .resistance(6) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + + event.create('tfg:aes_insulation_frame') + .soundType('copper') + .hardness(5) + .resistance(6) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + + event.create('tfg:moderate_core_frame') + .soundType('copper') + .hardness(4) + .resistance(6) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + + event.create('tfg:impure_moderate_core_frame') + .soundType('copper') + .hardness(5) + .resistance(6) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + + // Unfinished Insulation + event.create('tfg:moderate_core') + .soundType('ancient_debris') + .hardness(7) + .resistance(8) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .model('tfg:block/fission/moderate_core') + + event.create('tfg:impure_moderate_core') + .soundType('ancient_debris') + .hardness(7) + .resistance(8) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .model('tfg:block/fission/impure_moderate_core') + + // Nuclear cooling tower + event.create('tfg:titanium_exhaust_vent', 'tfg:active_particle_emitter') + .textureAll('tfg:block/titanium_exhaust_vent') + .soundType('metal') + .hardness(5) + .resistance(6) + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .mapColor('color_black') + .speedFactor(1.1) + .activeOffset(3.5, 2, 3.5) + .activeVelocity(0.0, 0.0, 0.0) + .activeParticle('tfg:cooling_steam') + .activeBase(0.0, 12.5, 0.0) + .activeCount(8) + .activeForced(false) + .hasTicker(true) + + event.create('tfg:titanium_concrete') + .translationKey('block.tfg.titanium_concrete') + .model('tfg:block/concrete/titanium_concrete') + .soundType('stone') + .mapColor('stone') + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .tagBoth('tfg:titanium_concrete') + + event.create('tfg:polished_titanium_concrete') + .translationKey('block.tfg.polished_titanium_concrete') + .model('tfg:block/concrete/polished_titanium_concrete') + .soundType('stone') + .mapColor('stone') + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .tagBoth('tfg:titanium_concrete') + + event.create('tfg:titanium_concrete_tile') + .translationKey('block.tfg.titanium_concrete_tile') + .model('tfg:block/concrete/titanium_concrete_tile') + .soundType('stone') + .mapColor('stone') + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .tagBoth('tfg:titanium_concrete') + + event.create('tfg:titanium_concrete_tile_small') + .translationKey('block.tfg.titanium_concrete_tile_small') + .model('tfg:block/concrete/titanium_concrete_tile_small') + .soundType('stone') + .mapColor('stone') + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .tagBoth('tfg:titanium_concrete') + + event.create('tfg:titanium_concrete_bricks') + .translationKey('block.tfg.titanium_concrete_bricks') + .model('tfg:block/concrete/titanium_concrete_bricks') + .soundType('stone') + .mapColor('stone') + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .tagBoth('tfg:titanium_concrete') + + event.create('tfg:titanium_concrete_bricks_small') + .translationKey('block.tfg.titanium_concrete_bricks_small') + .model('tfg:block/concrete/titanium_concrete_bricks_small') + .soundType('stone') + .mapColor('stone') + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .tagBoth('tfg:titanium_concrete') + + event.create('tfg:titanium_concrete_bricks_square') + .translationKey('block.tfg.titanium_concrete_bricks_square') + .model('tfg:block/concrete/titanium_concrete_bricks_square') + .soundType('stone') + .mapColor('stone') + .tagBlock('gtceu:mineable/pickaxe_or_wrench') + .tagBoth('tfg:titanium_concrete') + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/nuclear/items.nuclear.js b/kubejs/startup_scripts/tfg/nuclear/items.nuclear.js new file mode 100644 index 000000000..33d19dcb9 --- /dev/null +++ b/kubejs/startup_scripts/tfg/nuclear/items.nuclear.js @@ -0,0 +1,59 @@ +"use strict"; + +function registerTFGNuclearItems(event) { + + // Empty Fission Rod + + event.create('tfg:empty_rod') + .translationKey('item.tfg.empty_road') + .texture('tfg:item/fuel_rod_empty') + .tag('tfg:fission_rods') + + event.create('tfg:refrigerant_pellet') + .translationKey('item.tfg.refrigerant_pellet') + .texture('tfg:item/refrigerant_pellet') + .tag('tfg:fission_coolant') + + // Moderator Line + + event.create('tfg:graphite_compound') + .translationKey('item.tfg.graphite_compound') + .texture('tfg:item/graphite_line/graphite_compound') + + event.create('tfg:raw_graphite_briquette') + .translationKey('item.tfg.raw_graphite_briquette') + .texture('tfg:item/graphite_line/raw_graphite_briquette') + + event.create('tfg:faulty_graphite_briquette') + .translationKey('item.tfg.faulty_graphite_briquette') + .texture('tfg:item/graphite_line/faulty_graphite_briquette') + + event.create('tfg:washed_graphite_briquette') + .translationKey('item.tfg.washed_graphite_briquette') + + event.create('tfg:pure_graphite_rod') + .translationKey('item.tfg.pure_graphite_rod') + .texture('tfg:item/graphite_line/pure_graphite_rod') + + event.create('tfg:impure_graphite_rod') + .translationKey('item.tfg.impure_graphite_rod') + .texture('tfg:item/graphite_line/impure_graphite_rod') + + event.create('tfg:annealed_graphite_rod') + .translationKey('item.tfg.annealed_graphite_rod') + + event.create('tfg:impure_annealed_graphite_rod') + .translationKey('item.tfg.impure_annealed_graphite_rod') + + event.create('tfg:graphite_moderator') + .translationKey('item.tfg.graphite_moderator') + .texture('tfg:item/graphite_line/graphite_moderator') + + event.create('tfg:impure_graphite_moderator') + .translationKey('item.tfg.impure_graphite_moderator') + .texture('tfg:item/graphite_line/impure_graphite_moderator') + + event.create('tfg:advanced_polymer_binder') + .translationKey('item.tfg.advanced_polymer_binder') + .texture('tfg:item/graphite_line/advanced_polymer_binder') +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials.nuclear.js b/kubejs/startup_scripts/tfg/nuclear/materials.nuclear.js similarity index 53% rename from kubejs/startup_scripts/tfg/materials.nuclear.js rename to kubejs/startup_scripts/tfg/nuclear/materials.nuclear.js index cb92092db..8da8a343d 100644 --- a/kubejs/startup_scripts/tfg/materials.nuclear.js +++ b/kubejs/startup_scripts/tfg/nuclear/materials.nuclear.js @@ -23,11 +23,18 @@ const registerTFGNuclearMaterials = (event) => { //#region Fluid + // Steam + event.create('dense_steam') .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(3730)) .components('2x hydrogen', '1x oxygen') .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + event.create('critical_steam') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(3730)) + .components('2x hydrogen', '1x oxygen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + event.create('radioactive_steam') .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(3730)) .components('1x water', '1x unknown') @@ -43,6 +50,8 @@ const registerTFGNuclearMaterials = (event) => { .components('1x water', '1x unknown') .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + // Coolant + event.create('tfg:heavy_water') .liquid(new GTFluidBuilder().temperature(236)) .components('2x deuterium', '1x oxygen') @@ -55,6 +64,20 @@ const registerTFGNuclearMaterials = (event) => { .color(0xb5ffff) .secondaryColor(0x81FFF9) + event.create('tfg:boron_enriched_coolant') + .liquid(new GTFluidBuilder().temperature(213)) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x43D6E4) + .secondaryColor(0x2C9AAF) + + event.create('tfg:hot_boron_enriched_coolant') + .liquid(new GTFluidBuilder().temperature(2000)) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xFF715B) + .secondaryColor(0xFF9D6E) + + // Fision Waste + event.create('uranium_waste') .liquid(new GTFluidBuilder().customStill().temperature(3850)) .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) @@ -66,6 +89,8 @@ const registerTFGNuclearMaterials = (event) => { .components('1x thorium', '1x uranium', '1x unknown') .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + // Plutonium Line + event.create('dirty_hexafluorosilicic_acid') .liquid(new GTFluidBuilder().attribute(GTFluidAttributes.ACID)) .components('2x hydrogen', '1x silicon', '6x fluorine', '1x unknown') @@ -93,6 +118,22 @@ const registerTFGNuclearMaterials = (event) => { .components('2x tritium', '1x oxygen') .color(0xb2c3e7) + event.create('tfg:tetrafluoroethane') + .fluid() + .gem() + .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES, GTMaterialFlags.DISABLE_DECOMPOSITION) + .iconSet(GTMaterialIconSet.QUARTZ) + .components('2x carbon', '2x hydrogen', '4x fluorine') + .color(0x46702e) + + event.create('tfg:booster_t3') + .fluid() + .color(0xb2c3e7) + + event.create('tfg:polyalkylene_lubricant') + .fluid() + .color(0xb2c3e7) + // FLiBe Line event.create('raw_rich_brine') @@ -205,17 +246,157 @@ const registerTFGNuclearMaterials = (event) => { .color(0x694c66) .radioactiveHazard(1000) - event.create("ostrum_iodide") + event.create('tfg:americium_241') .ingot() - .components('2x ostrum', 'iodine') - .blastTemp(3700, 'mid', GTValues.VA[GTValues.IV], (20*120)) - .iconSet(GTMaterialIconSet.BRIGHT) - .flags(GTMaterialFlags.GENERATE_GEAR) - .color(0xc696f2) - .secondaryColor(0x9b99ff) + .element(GTElements.get("americium_241")) + .iconSet(GTMaterialIconSet.RADIOACTIVE) + .flags(GTMaterialFlags.GENERATE_ROD) + .color(0x0600ff) + .secondaryColor(0x1b1d36) + .radioactiveHazard(1000000) + + event.create('tfg:neptunium_237') + .ingot() + .element(GTElements.get("neptunium_237")) + .iconSet(GTMaterialIconSet.RADIOACTIVE) + .flags(GTMaterialFlags.GENERATE_ROD) + .color(0x00df98) + .secondaryColor(0xffffff) + .radioactiveHazard(5000000) + + event.create('tfg:californium_252') + .ingot() + .element(GTElements.get("californium_252")) + .iconSet(GTMaterialIconSet.RADIOACTIVE) + .flags(GTMaterialFlags.GENERATE_ROD) + .color(0xffba00) + .secondaryColor(0xdfffff) + .radioactiveHazard(10000000) //#endregion + //#region Isotopic Solvent + + // Organic Stabilizer + event.create('tfg:organic_stabilizer') + .dust() + .components('49x carbon', '64x hydrogen', '6x oxygen', '1x nitrogen', '1x chlorine') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xd8c9b5) + .secondaryColor(0xb8a896) + .iconSet(GTMaterialIconSet.BRIGHT) + + // Trace Catalyst Salt - E + event.create('tfg:trace_catalyst_salt_e') + .dust() + .components( + '2x carbon', + '9x hydrogen', + '8x oxygen', + '1x copper', + '1x sodium', + '1x chlorine', + '1x magnesium', + '1x fluorine', + '1x sulfur') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xcad4cf) + .secondaryColor(0x9eb1a9) + .iconSet(GTMaterialIconSet.EMERALD) + + // Sodium Fluoride + event.create('tfg:sodium_fluoride') + .dust() + .components('1x sodium', '1x fluorine') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xffffff) + .secondaryColor(0xb7b9bd) + .iconSet(GTMaterialIconSet.ROUGH) + + // Copper Trace Catalyst Dust + event.create('tfg:copper_trace_catalyst_dust') + .dust() + .components('1x copper', '1x sodium', '1x chlorine', '1x magnesium', '1x fluorine', '1x sulfur', '6x oxygen', '1x hydrogen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x4a2e1a) + .secondaryColor(0x7a5c47) + .iconSet(GTMaterialIconSet.FINE) + + // Isotopic Solvent + event.create('tfg:isotopic_solvent') + .liquid(new GTFluidBuilder().temperature(320)) + .components( + '51x carbon', + '75x hydrogen', + '15x oxygen', + '1x nitrogen', + '2x chlorine', + '2x sodium', + '2x fluorine', + '1x copper', + '1x magnesium', + '1x sulfur', + '1x argon') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xd4b464) + .secondaryColor(0xa88e55) + + // Degraded Solvent Stream + event.create('tfg:degraded_solvent_stream') + .liquid(new GTFluidBuilder().temperature(350)) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x8b4513) + .secondaryColor(0xd2b48c) + + // Inert Dust Fraction + event.create('tfg:inert_dust_fraction') + .dust() + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xaaaaaa) + .secondaryColor(0x555555) + .iconSet(GTMaterialIconSet.RADIOACTIVE) + .radioactiveHazard(10000) + + // Residual Sludge + event.create('tfg:residual_sludge') + .liquid(new GTFluidBuilder().temperature(300)) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x4b0082) + .secondaryColor(0x8a2be2) + + // Gas Fraction + event.create('tfg:gas_fraction') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(400)) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xcccccc) + .secondaryColor(0x999999) + + // Organic Degradation Slurry + event.create('tfg:organic_degradation_slurry') + .liquid(new GTFluidBuilder().temperature(300)) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x556b2f) + .secondaryColor(0x8fbc8f) + + // Recovered Ionic Complex + event.create('tfg:recovered_ionic_complex') + .dust() + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xffff00) + .secondaryColor(0xffa500) + .iconSet(GTMaterialIconSet.SAND) + + // Mixed Radioactive Fluid + event.create('tfg:mixed_radioactive_fluid') + .liquid(new GTFluidBuilder().temperature(300)) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xff4500) + .secondaryColor(0xff6347) + + + +}; + //#region Fuel Pellet /* @@ -230,38 +411,39 @@ const registerTFGNuclearMaterials = (event) => { So purely passively it reaches 20000.0 heat. */ -} - const $FuelCellItem = Java.loadClass("fi.dea.mc.deafission.common.data.items.FuelCellItem"); +const $DepletedFuelCellItem = Java.loadClass("fi.dea.mc.deafission.common.data.items.DepletedFuelCellItem"); + +//const $ComponentTotals = Java.loadClass("fi.dea.mc.deafission.core.components.ComponentTotals"); +//const $ReactorBaseStats = Java.loadClass("fi.dea.mc.deafission.core.ReactorBaseStats"); +//$ReactorBaseStats.Smr1 = new $ComponentTotals(200, 0, 0); StartupEvents.registry("item", (event) => { - event.createCustom("tfg:thorium_rod", () => { - return new $FuelCellItem( - 5000, - 1, - 0.7 // Max Heat 139 - 1 Fuel - ); - }) - event.createCustom("tfg:uranium_rod", () => { - return new $FuelCellItem( - 20000, - 1, - 2.2 // Max Heat 435 - 1 Fuel - ); - }) - event.createCustom("tfg:plutonium_rod", () => { - return new $FuelCellItem( - 30000, - 1, - 3.0 // Max Heat 595 - 1 Fuel - ); - }) + const fuel = function(id, durability, rods, heat, createDepleted) { - event.createCustom("tfg:tbu_232_rod", () => { - return new $FuelCellItem( - 20000, - 1, - 2.0 - ); - }) + if (createDepleted === undefined) createDepleted = true; + + event.createCustom("tfg:" + id, () => { + return new $FuelCellItem( + durability, + rods, + heat + ); + }); + + if (createDepleted) { + event.createCustom("tfg:depleted_" + id, () => { + return new $DepletedFuelCellItem(); + }); + } + }; + + fuel("thorium_rod", 5000, 1, 0.7, false); // Max Heat 139 - 1 Fuel + fuel("uranium_rod", 20000, 1, 2.2, false); // Max Heat 435 - 1 Fuel + fuel("plutonium_rod", 30000, 4, 3, false); // Max Heat 595 - 1 Fuel + fuel("tbu_232_rod", 10000, 1, 2); // Max Heat 396 - 1 Fuel + + fuel("americium_241_rod", 1000000, 1, 0.5); + fuel("neptunium_237_rod", 50000, 1, 2); + fuel("californium_252_rod", 500000, 1, 4); }); diff --git a/kubejs/startup_scripts/tfg/blocks.supports.js b/kubejs/startup_scripts/tfg/primitive/blocks.supports.js similarity index 100% rename from kubejs/startup_scripts/tfg/blocks.supports.js rename to kubejs/startup_scripts/tfg/primitive/blocks.supports.js diff --git a/kubejs/startup_scripts/tfg/primitive/blocks.vases.js b/kubejs/startup_scripts/tfg/primitive/blocks.vases.js new file mode 100644 index 000000000..9cd41569e --- /dev/null +++ b/kubejs/startup_scripts/tfg/primitive/blocks.vases.js @@ -0,0 +1,77 @@ +"use strict"; + +function registerTFGVaseBlocks(event) { + + global.MINECRAFT_DYE_NAMES.forEach(color => { + event.create(`tfg:decorative_vase/generated/${color}`, 'cardinal') + .model(`tfg:block/decorative_vase/loot_vase_${color}`) + .soundType('decorated_pot') + .hardness(0.7) + .tagBlock('minecraft:mineable/pickaxe') + .mapColor(`color_${color}`) + .box(2, 0, 2, 14, 20, 14) + .fullBlock(false) + .opaque(false) + .renderType('cutout') + + event.create(`tfg:decorative_vase/${color}`, 'cardinal') + .model(`tfg:block/decorative_vase/vase_${color}`) + .soundType('decorated_pot') + .hardness(0.7) + .tagBlock('minecraft:mineable/pickaxe') + .mapColor(`color_${color}`) + .box(2, 0, 2, 14, 20, 14) + .fullBlock(false) + .opaque(false) + .renderType('cutout') + .blockEntity(be => { + be.attach('tfc:inventory', { + width: 9, + height: 1, + size: size => size.isSmallerThan('large') + }) + be.rightClickOpensInventory() + }) + + event.create(`tfg:decorative_vase/unfired/${color}`, 'cardinal') + .model(`tfg:block/decorative_vase/vase_unfired_${color}`) + .soundType('decorated_pot') + .hardness(0.7) + .tagBlock('minecraft:mineable/pickaxe') + .mapColor(`color_${color}`) + .box(2, 0, 2, 14, 20, 14) + .fullBlock(false) + .opaque(false) + .renderType('cutout') + }) + event.create('tfg:decorative_vase', 'cardinal') + .model('tfg:block/decorative_vase/vase') + .soundType('decorated_pot') + .hardness(0.7) + .tagBlock('minecraft:mineable/pickaxe') + .mapColor(`color_gray`) + .box(2, 0, 2, 14, 20, 14) + .fullBlock(false) + .opaque(false) + .renderType('cutout') + .blockEntity(be => { + be.attach('tfc:inventory', { + width: 9, + height: 1, + size: size => size.isSmallerThan('large') + }) + be.rightClickOpensInventory() + }) + + event.create('tfg:decorative_vase/unfired', 'cardinal') + .model('tfg:block/decorative_vase/vase_unfired') + .soundType('decorated_pot') + .hardness(0.7) + .tagBlock('minecraft:mineable/pickaxe') + .mapColor(`color_gray`) + .box(2, 0, 2, 14, 20, 14) + .fullBlock(false) + .opaque(false) + .renderType('cutout') + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/primitive/items.primitive.js b/kubejs/startup_scripts/tfg/primitive/items.primitive.js new file mode 100644 index 000000000..35b0a78d1 --- /dev/null +++ b/kubejs/startup_scripts/tfg/primitive/items.primitive.js @@ -0,0 +1,139 @@ +"use strict"; + +function registerTFGPrimitiveItems(event) { + + // Paper making + event.create('tfg:hardwood_strip') + event.create('tfg:soaked_hardwood_strip') + event.create('tfg:soaked_unrefined_paper') + + // Chalk + event.create('tfg:unfired_chalk') + + Color.DYE.forEach((dyeName, dye) => { + event.create(`tfg:wet_${dyeName}_chalk`) + .textureJson({ + layer0: 'tfg:item/unfired_chalk' + }) + .color(0, dye.getHexJS()); + }); + + // Primitive rubber gloves + event.create('tfg:prepared_leather_gloves') + event.create('tfg:latex_soaked_gloves') + + // Chipboard + event.create('tfg:chipboard_composite') + event.create('tfg:treated_chipboard_composite') + event.create('tfg:high_density_treated_fiberboard') + + // Wax + event.create('tfg:paraffin_wax') + event.create('tfg:conifer_rosin') + + // Tools + event.create('tfg:flint_club_head') + + event.create('tfg:flint_arrow_head') + event.create('tfg:fletching') + + event.create('tfg:armor_stand_arms') + + event.create('tfg:harvest_basket') + .parentModel('tfg:item/harvest_basket') + .maxDamage(128) + + event.create('tfg:aluminium_harvest_basket') + .parentModel('tfg:item/aluminium_harvest_basket') + .unstackable() + + // Carts + event.create('tfg:cobalt_brass_wheel') + + // Fishing Nets + event.create('tfg:fishing_net/wood') + .translationKey('item.tfg.fishing_net.wood') + .parentModel('tfg:item/fishing_nets/wood_fishing_net') + .texture('tfg:item/fishing_nets/wood_fishing_net') + .maxDamage(112) + + event.create('tfg:fishing_net/brass') + .translationKey('item.tfg.fishing_net.brass') + .parentModel('tfg:item/fishing_nets/brass_fishing_net') + .texture('tfg:item/fishing_nets/brass_fishing_net') + .maxDamage(326) + + event.create('tfg:fishing_net/rose_gold') + .translationKey('item.tfg.fishing_net.rose_gold') + .parentModel('tfg:item/fishing_nets/rose_gold_fishing_net') + .texture('tfg:item/fishing_nets/rose_gold_fishing_net') + .maxDamage(380) + + event.create('tfg:fishing_net/sterling_silver') + .translationKey('item.tfg.fishing_net.sterling_silver') + .parentModel('tfg:item/fishing_nets/sterling_silver_fishing_net') + .texture('tfg:item/fishing_nets/sterling_silver_fishing_net') + .maxDamage(380) + + event.create('tfg:fishing_net/invar') + .translationKey('item.tfg.fishing_net.invar') + .parentModel('tfg:item/fishing_nets/invar_fishing_net') + .texture('tfg:item/fishing_nets/invar_fishing_net') + .maxDamage(740) + + event.create('tfg:fishing_net/tin_alloy') + .translationKey('item.tfg.fishing_net.tin_alloy') + .parentModel('tfg:item/fishing_nets/tin_alloy_fishing_net') + .texture('tfg:item/fishing_nets/tin_alloy_fishing_net') + .maxDamage(710) + + event.create('tfg:fishing_net/cupronickel') + .translationKey('item.tfg.fishing_net.cupronickel') + .parentModel('tfg:item/fishing_nets/cupronickel_fishing_net') + .texture('tfg:item/fishing_nets/cupronickel_fishing_net') + .maxDamage(560) + + event.create('tfg:fishing_net/magnalium') + .translationKey('item.tfg.fishing_net.magnalium') + .parentModel('tfg:item/fishing_nets/magnalium_fishing_net') + .texture('tfg:item/fishing_nets/magnalium_fishing_net') + .maxDamage(1830) + + // Universal compost items + event.create('tfg:universal_compost_browns') + .tag('tfc:compost_browns_low') + + event.create('tfg:universal_compost_greens') + .tag('tfc:compost_greens_low') + + // Etched Diamond Etching Tip + event.create('tfg:etching_diamond_tip') + + // Cloth & String + event.create('tfg:polycaprolactam_fabric') + event.create('tfg:polycaprolactam_string') + event.create('tfg:phantom_silk') + event.create('tfg:phantom_thread') + + // Flax Stuff + event.create('tfg:flax_waste') + .tag('tfc:scrapable') + event.create('tfg:flax_tow') + .tag('tfg:burlap_fiber') + .tag('tfc:compost_browns') + event.create('tfg:flax_line') + .tag('tfc:compost_browns_low') + event.create('tfg:linen_thread') + .tag('forge:string') + event.create('tfg:linen_cloth') + .tag('forge:cloth') + .tag('tfc:sewing_light_cloth') + + event.create('tfg:flax_bundle') + .tag('tfc:scrapable') + .texture('tfg:item/flax_bundle') + + event.create('tfg:bundled_scraped_flax') + .tag('tfc:scrapable') + .texture('tfg:item/bundled_scraped_flax') +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/primitive/materials.primitive.js b/kubejs/startup_scripts/tfg/primitive/materials.primitive.js new file mode 100644 index 000000000..c5230e941 --- /dev/null +++ b/kubejs/startup_scripts/tfg/primitive/materials.primitive.js @@ -0,0 +1,91 @@ +"use strict"; + +function registerTFGPrimitiveMaterials(event) { + + // Paper + event.create('hardwood') + .dust() + .flags(GTMaterialFlags.FLAMMABLE) + .iconSet(GTMaterialIconSet.WOOD) + .color('0x7a5225') + .secondaryColor('0x7a5225') + + event.create('thermochemically_treated_hardwood') + .dust() + .flags(GTMaterialFlags.FLAMMABLE) + .iconSet(GTMaterialIconSet.WOOD) + .color('0x52482c') + .secondaryColor('0x52482c') + + // Tree tapping + event.create('tfg:latex') + .liquid() + .color(0xFBB982) + + event.create('tfg:vulcanized_latex') + .liquid() + .color(0xc79973) + + event.create('tfg:conifer_pitch') + .liquid() + .color(0xfbdf82) + .secondaryColor(0xff9d2e) + + // Food/Cooking + event.create('lactose') + .dust() + .iconSet(GTMaterialIconSet.FINE) + .color('0xede8da') + .secondaryColor('0xeddcad') + .components('12x carbon', '22x hydrogen', '11x oxygen') + + event.create('tfg:sodium_dihydrogen_citrate') + .dust() + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .iconSet(GTMaterialIconSet.BRIGHT) + .components('6x carbon', '7x hydrogen', '1x sodium', '7x oxygen') + .color('0xE38818') + + event.create('tfg:citric_acid') + .dust() + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .iconSet(GTMaterialIconSet.SHINY) + .components('6x carbon', '8x hydrogen', '7x oxygen') + .color('0xE3AD18') + + // I decided to make these materials because why not? + event.create('tfg:rich_stock') + .liquid(new GTFluidBuilder().customStill().state(GTFluidState.LIQUID).temperature(360)); + + event.create('tfg:light_stock') + .liquid(new GTFluidBuilder().customStill().state(GTFluidState.LIQUID).temperature(360)); + + event.create('tfg:brown_gravy') + .liquid(new GTFluidBuilder().customStill().state(GTFluidState.LIQUID).temperature(360)); + + // Ores -- these need to be in the gtceu namespace for the ore tool to work + event.create('tarkianite') + .ore() + .components('1x copper', '1x iron', '4x rhenium', '4x molybdenum', '8x sulfur') + .color(0x8bb054) + .secondaryColor(0x3d8021) + .iconSet(GTMaterialIconSet.getByName('tfc_emerald')) + .addOreByproducts('sulfur', 'rhenium', 'molybdenum') + + // Metals/minerals + event.create('aluminium_silicate') + .dust() + .ingot() + .liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(1520)) + .components('2x aluminium', '1x silicon', '5x oxygen') + .iconSet('metallic') + .color(0xB6D3FF) + .secondaryColor(0x6F4AB3) + + event.create('tfg:kaolinite') + .dust() + .components('2x aluminium', '2x silicon', '9x oxygen', '4x hydrogen') + .color(0xEEB9AD) + .secondaryColor(0xF6A797) + .formula("Al2Si2O5(OH)4") +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/space_general/items.space.js b/kubejs/startup_scripts/tfg/space_general/items.space.js new file mode 100644 index 000000000..a13727058 --- /dev/null +++ b/kubejs/startup_scripts/tfg/space_general/items.space.js @@ -0,0 +1,33 @@ +"use strict"; + +function registerTFGSpaceItems(event) { + + // Space suits + event.create('tfg:space_suit_fabric') + event.create('tfg:better_space_suit_fabric') + + // Tier2 Insulation + event.create('tfg:aes_wool') + event.create('tfg:aes_compressed_wool') + event.create('tfg:aes_insulation_sheet') + event.create('tfg:aes_insulation_roll') + + //Tier 2 Rocket Parts + event.create('tfg:rocket_fin_t2') + event.create('tfg:rocket_cone_t2') + + //Tier 3 Insulation + event.create('tfg:aes_polyurethane') + event.create('tfg:mli_shielding') + event.create('tfg:silica_aerogel') + + //Tier 3 Rocket Parts + event.create('tfg:rocket_fin_t3') + event.create('tfg:rocket_cone_t3') + event.create('tfg:elite_power_thruster') + + // Solar Panel + event.create('tfg:photo_cell_t1') + .translationKey("item.tfg.basic.photovoltaic.cell") + .texture('tfg:item/photo_cell_t1') +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/space_general/materials.rockets.js b/kubejs/startup_scripts/tfg/space_general/materials.rockets.js new file mode 100644 index 000000000..49ffd7665 --- /dev/null +++ b/kubejs/startup_scripts/tfg/space_general/materials.rockets.js @@ -0,0 +1,162 @@ +"use strict"; + +function registerTFGRocketMaterials(event) { + + // Space Rocket Materials + + event.create('rocket_alloy_t1') + .ingot() + .components('6x aluminium', '2x stainless_steel', '1x red_steel') + .color(0x333e47) + .iconSet('metallic') + .flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR) + .blastTemp(1760, 'low', 256, 900) + + event.create('rocket_alloy_t2') + .ingot() + .components('19x titanium', '4x vanadium', '3x aluminium', '3x chromium', '3x tin') + .color(0x3c253d) + .iconSet('metallic') + .flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.DISABLE_ALLOY_BLAST) + .blastTemp(3200, 'mid', 1024, 1100) + .liquid() + +/* event.create('rocket_alloy_t3') + .ingot() + .components('8x titanium', '9x tungsten_steel', '2x tantalum', '2x radon') + .color(0x6c678b) + //.secondaryColor(0xa59fc6) + .liquid() + .removeHazard() + .iconSet('metallic') + .flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR) + .blastTemp(4200, 'high', 4096, 1300) + */ + + // Insulation + event.create('vitrified_asbestos') + .dust() + .fluid() + .iconSet('glass') + .color(0xcccccc) + + event.create('tfg:aes_mix') + .dust() + .flags(GTMaterialFlags.DECOMPOSITION_BY_CENTRIFUGING) + .components('5x silicon_dioxide', '4x quicklime', '1x magnesia') + .hazard(HazardProperty.HazardTrigger.SKIN_CONTACT, GTMedicalConditions.CHEMICAL_BURNS) + .color(0xE0E9E4) + event.create('tfg:molten_aes') + .liquid(2900) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .components('5x silicon_dioxide', '4x quicklime', '1x magnesia') + .color(0xe65609) + .secondaryColor(0xe65609) + + //#region Ammonia Borane + event.create('tfg:sodium_hydride') + .dust() + .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) + .components('1x sodium', '1x hydrogen') + .color(0xEDF5F3) + event.create('tfg:boric_acid') + .dust() + .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) + .components('3x hydrogen', '1x boron', '3x oxygen') + .color(0xDFEDDF) + .secondaryColor(0xDFEDDF) + event.create('tfg:trimethyl_borate') + .liquid() + .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) + .components('3x carbon', '9x hydrogen', '1x boron', '3x oxygen') + .color(0xF7F7F7) + event.create('tfg:sodium_borohydride') + .dust() + .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) + .components('1x sodium', '1x boron', '4x hydrogen') + .color(0xE8F1FF) + .secondaryColor(0xE8F1FF) + event.create('tfg:sodium_methoxide') + .dust() + .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) + .components('1x sodium', '1x oxygen', '1x carbon', '3x hydrogen') + .color(0xE8E5DF) + .secondaryColor(0xE8E5DF) + event.create('tfg:ammonia_borane') + .dust() + .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING, GTMaterialFlags.GENERATE_PLATE) + .components('1x ammonia', '1x boron', '3x hydrogen') + .color(0xCCE3E3) + .secondaryColor(0xCCE3E3) + //#endregion + + //#region polyurethane + event.create('tfg:aniline') + .liquid() + .components('6x carbon', '5x hydrogen', '1x nitrogen', '2x hydrogen') + .color(0xBAB999) + event.create('tfg:dimethyl_carbonate') + .liquid() + .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) + .components('3x formaldehyde') // CH2O + .color(0xFFFFF2) + event.create('tfg:methyl_phenylcarbamate') + .liquid() + .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) + .components('8x carbon','9x hydrogen','1x nitrogen', '2x oxygen') + .color(0xB4EDB4) + event.create('tfg:methylene_diphenyl_dicarbamate') + .liquid() + .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) + .components('17x carbon','18x hydrogen','2x nitrogen', '4x oxygen') + .color(0x69C2C1) + event.create('tfg:methylene_diphenyl_diisocyanate') + .dust() + .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) + .components('13x carbon','10x hydrogen','2x nitrogen', '2x oxygen') + .color(0xFFFFBA) + //#endregion + + //#region aerogel + event.create('tfg:tmos') + .liquid() + .formula("Si(OCH3)4") + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xC2C6CC) + event.create('tfg:silica_gel') + .liquid() + .color(0x60BABF) + .secondaryColor(0xFFD38C) + event.create('tfg:soaked_silica_gel') + .liquid() + .color(0x9ED5D9) + //#endregion + + + // Space suit gases (these all add up to 10B of components = 1B of space suit gas) + + event.create('tfg:compressed_nitrox') + .gas() + .components('8x nitrogen', '2x oxygen') + .color(0xaef5ef) + + event.create('tfg:compressed_heliox') + .gas() + .components('8x helium', '2x oxygen') + .color(0xf5eeb3) + + event.create('tfg:compressed_heliox_3') + .gas() + .components('8x helium_3', '2x oxygen') + .color(0xf5ea90) + + event.create('tfg:compressed_trimix') + .gas() + .components('5x nitrogen', '3x oxygen', '2x helium') + .color(0xc3fab9) + + event.create('tfg:compressed_trimix_3') + .gas() + .components('5x nitrogen', '3x oxygen', '2x helium_3') + .color(0xa3ed95) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/blocks.aqueducts.js b/kubejs/startup_scripts/tfg/stone_types/blocks.aqueducts.js similarity index 100% rename from kubejs/startup_scripts/tfg/blocks.aqueducts.js rename to kubejs/startup_scripts/tfg/stone_types/blocks.aqueducts.js diff --git a/kubejs/startup_scripts/tfg/blocks.space.js b/kubejs/startup_scripts/tfg/stone_types/blocks.rocks.js similarity index 71% rename from kubejs/startup_scripts/tfg/blocks.space.js rename to kubejs/startup_scripts/tfg/stone_types/blocks.rocks.js index d9ce73696..be5727415 100644 --- a/kubejs/startup_scripts/tfg/blocks.space.js +++ b/kubejs/startup_scripts/tfg/stone_types/blocks.rocks.js @@ -1,60 +1,49 @@ "use strict"; -function registerTFGSpaceBlocks(event) { - - // #region Dimension markers - event.create('tfg:marker/moon') - .stoneSoundType() - .item(item => { - item.modelJson({ parent: 'tfg:block/marker/moon' }) - }) - .tagBlock('c:hidden_from_recipe_viewers') - .fullBlock(true) - .opaque(true) - - event.create('tfg:marker/mars') - .stoneSoundType() - .item(item => { - item.modelJson({ parent: 'tfg:block/marker/mars' }) - }) - .tagBlock('c:hidden_from_recipe_viewers') - .fullBlock(true) - .opaque(true) - - event.create('tfg:marker/venus') - .stoneSoundType() - .item(item => { - item.modelJson({ parent: 'tfg:block/marker/venus' }) - }) - .tagBlock('c:hidden_from_recipe_viewers') - .fullBlock(true) - .opaque(true) - - event.create('tfg:marker/mercury') - .stoneSoundType() - .item(item => { - item.modelJson({ parent: 'tfg:block/marker/mercury' }) - }) - .tagBlock('c:hidden_from_recipe_viewers') - .fullBlock(true) - .opaque(true) - - event.create('tfg:marker/glacio') - .stoneSoundType() - .item(item => { - item.modelJson({ parent: 'tfg:block/marker/glacio' }) - }) - .tagBlock('c:hidden_from_recipe_viewers') - .fullBlock(true) - .opaque(true) - - // #endregion Dimension markers +function registerTFGRockBlocks(event) { const SHAPES = ['stairs', 'slab', 'wall'] const AA_REGULAR_STONES = ['moon', 'mars', 'venus', 'mercury', 'glacio'] // #region Raw Stones + + SHAPES.forEach(shape => { + event.create(`tfg:rock/deepslate_${shape}`, shape) + .soundType(global.STONE_CHARACS.deepslate.sound) + .textureAll('minecraft:block/deepslate') + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) + .mapColor(global.STONE_CHARACS.deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/dripstone_${shape}`, shape) + .soundType(global.STONE_CHARACS.dripstone.sound) + .textureAll('minecraft:block/dripstone_block') + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) + .mapColor(global.STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/crackrack_${shape}`, shape) + .soundType(global.STONE_CHARACS.crackrack.sound) + .textureAll('beneath:block/crackrack') + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) + .mapColor(global.STONE_CHARACS.crackrack.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + event.create('tfg:rock/moon_stone_wall', 'wall') .soundType(global.STONE_CHARACS.moon.sound) .textureAll('ad_astra:block/moon_stone') @@ -139,10 +128,57 @@ function registerTFGSpaceBlocks(event) { .fullBlock(true) .opaque(true) }) - + // #endregion Raw Stones // #region Hardened Stones + event.create('tfg:rock/hardened_deepslate') + .soundType(global.STONE_CHARACS.deepslate.sound) + .property(BlockProperties.AXIS) + .requiresTool(true) + .item(item => { + item.modelJson({ parent: 'minecraft:item/deepslate' }) + }) + .tagBlock('tfc:can_carve') + .tagBoth('forge:stone') + .tagBoth('tfc:rock/hardened') + .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) + .mapColor(global.STONE_CHARACS.deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/hardened_blackstone') + .soundType(global.STONE_CHARACS.blackstone.sound) + .requiresTool(true) + .item(item => { + item.modelJson({ parent: 'minecraft:item/blackstone' }) + }) + .tagBlock('tfc:can_carve') + .tagBoth('forge:stone') + .tagBoth('tfc:rock/hardened') + .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) + .mapColor(global.STONE_CHARACS.blackstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/hardened_dripstone') + .soundType(global.STONE_CHARACS.dripstone.sound) + .stoneSoundType() + .requiresTool(true) + .item(item => { + item.modelJson({ parent: 'minecraft:item/dripstone_block' }) + }) + .tagBlock('tfc:can_carve') + .tagBoth('forge:stone') + .tagBoth('tfc:rock/hardened') + .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) + .mapColor(global.STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + event.create('tfg:rock/hardened_moon_stone') .soundType(global.STONE_CHARACS.moon.sound) .requiresTool(true) @@ -251,6 +287,45 @@ function registerTFGSpaceBlocks(event) { // #endregion Hardened Stones // #region Loose Stones + event.create('tfg:loose/deepslate', 'tfc:loose_rock') + .soundType(global.STONE_CHARACS.deepslate.sound) + .itemTexture('tfg:item/loose/deepslate') + .rockTypeModel(global.STONE_CHARACS.deepslate.type) + .translationKey("block.tfg.loose.deepslate") + .mapColor(global.STONE_CHARACS.deepslate.mapColor) + .tagBlock('tfc:loose_rocks') + .tagItem('tfc:any_knapping') + .tagItem('tfc:rock_knapping') + .tagItem(`tfc:${global.STONE_CHARACS.deepslate.type}_rock`) + .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) + .tagItem("rnr:loose_rock_items") + + event.create('tfg:loose/dripstone', 'tfc:loose_rock') + .soundType(global.STONE_CHARACS.dripstone.sound) + .itemTexture('tfg:item/loose/dripstone') + .rockTypeModel(global.STONE_CHARACS.dripstone.type) + .translationKey("block.tfg.loose.dripstone") + .mapColor(global.STONE_CHARACS.blackstone.mapColor) + .tagBlock('tfc:loose_rocks') + .tagItem('tfc:any_knapping') + .tagItem('tfc:rock_knapping') + .tagItem(`tfc:${global.STONE_CHARACS.dripstone.type}_rock`) + .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) + .tagItem("rnr:loose_rock_items") + + event.create('tfg:loose/crackrack', 'tfc:loose_rock') + .soundType(global.STONE_CHARACS.crackrack.sound) + .itemTexture('tfg:item/loose/crackrack') + .rockTypeModel(global.STONE_CHARACS.crackrack.type) + .translationKey("block.tfg.loose.crackrack") + .mapColor(global.STONE_CHARACS.crackrack.mapColor) + .tagBlock('tfc:loose_rocks') + .tagItem('tfc:any_knapping') + .tagItem('tfc:rock_knapping') + .tagItem(`tfc:${global.STONE_CHARACS.crackrack.type}_rock`) + .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) + .tagItem("rnr:loose_rock_items") + event.create('tfg:loose/moon_stone', 'tfc:loose_rock') .soundType(global.STONE_CHARACS.moon.sound) .itemTexture('tfg:item/loose/moon_stone') @@ -340,6 +415,37 @@ function registerTFGSpaceBlocks(event) { // #endregion Loose stones // #region Spikes + + event.create('tfg:spike/deepslate_spike', 'tfc:rock_spike') + .textureAll('minecraft:block/deepslate') + .soundType(global.STONE_CHARACS.deepslate.sound) + .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) + .mapColor(global.STONE_CHARACS.deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .hardness(0.8) + .resistance(0.8) + .requiresTool(true) + + event.create('tfg:spike/blackstone_spike', 'tfc:rock_spike') + .textureAll('minecraft:block/blackstone') + .soundType(global.STONE_CHARACS.blackstone.sound) + .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) + .mapColor(global.STONE_CHARACS.blackstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .hardness(0.8) + .resistance(0.8) + .requiresTool(true) + + event.create('tfg:spike/dripstone_spike', 'tfc:rock_spike') + .textureAll('minecraft:block/dripstone_block') + .soundType(global.STONE_CHARACS.dripstone.sound) + .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) + .mapColor(global.STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .hardness(0.8) + .resistance(0.8) + .requiresTool(true) + event.create('tfg:spike/moon_stone_spike', 'tfc:rock_spike') .textureAll('ad_astra:block/moon_stone') .soundType(global.STONE_CHARACS.moon.sound) @@ -407,6 +513,166 @@ function registerTFGSpaceBlocks(event) { // #endregion Spikes // #region Cobblestones + + // Deepslate + event.create('tfg:rock/mossy_cobble_deepslate') + .soundType(global.STONE_CHARACS.deepslate.sound) + .tagBoth('forge:cobblestone') + .tagBoth('forge:cobblestone/normal') + .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) + .mapColor(global.STONE_CHARACS.deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_cobble_deepslate_${shape}`, shape) + .soundType(global.STONE_CHARACS.deepslate.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) + .mapColor(global.STONE_CHARACS.deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // Blackstone + event.create('tfg:rock/cobble_blackstone') + .soundType(global.STONE_CHARACS.blackstone.sound) + .tagBoth('forge:cobblestone') + .tagBoth('forge:cobblestone/normal') + .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) + .mapColor(global.STONE_CHARACS.blackstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/cobble_blackstone_${shape}`, shape) + .soundType(global.STONE_CHARACS.blackstone.sound) + .textureAll('minecraft:block/blackstone_top') + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) + .mapColor(global.STONE_CHARACS.blackstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_cobble_blackstone') + .soundType(global.STONE_CHARACS.blackstone.sound) + .tagBoth('forge:cobblestone') + .tagBoth('forge:cobblestone/normal') + .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) + .mapColor(global.STONE_CHARACS.blackstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_cobble_blackstone_${shape}`, shape) + .soundType(global.STONE_CHARACS.blackstone.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) + .mapColor(global.STONE_CHARACS.blackstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // Dripstone + event.create('tfg:rock/cobble_dripstone') + .soundType(global.STONE_CHARACS.dripstone.sound) + .tagBoth('forge:cobblestone') + .tagBoth('forge:cobblestone/normal') + .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) + .mapColor(global.STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/cobble_dripstone_${shape}`, shape) + .soundType(global.STONE_CHARACS.dripstone.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) + .mapColor(global.STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_cobble_dripstone') + .soundType(global.STONE_CHARACS.dripstone.sound) + .tagBoth('forge:cobblestone') + .tagBoth('forge:cobblestone/normal') + .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) + .mapColor(global.STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_cobble_dripstone_${shape}`, shape) + .soundType(global.STONE_CHARACS.dripstone.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) + .mapColor(global.STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // Crackrack + event.create('tfg:rock/cobble_crackrack') + .soundType(global.STONE_CHARACS.crackrack.sound) + .tagBoth('forge:cobblestone') + .tagBoth('forge:cobblestone/normal') + .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) + .mapColor(global.STONE_CHARACS.crackrack.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/cobble_crackrack_${shape}`, shape) + .soundType(global.STONE_CHARACS.crackrack.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) + .mapColor(global.STONE_CHARACS.crackrack.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_cobble_crackrack') + .soundType(global.STONE_CHARACS.crackrack.sound) + .tagBoth('forge:cobblestone') + .tagBoth('forge:cobblestone/normal') + .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) + .mapColor(global.STONE_CHARACS.crackrack.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_cobble_crackrack_${shape}`, shape) + .soundType(global.STONE_CHARACS.crackrack.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) + .mapColor(global.STONE_CHARACS.crackrack.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + // Moon event.create('tfg:rock/cobble_moon_wall', 'wall') .soundType(global.STONE_CHARACS.moon.sound) @@ -685,6 +951,50 @@ function registerTFGSpaceBlocks(event) { // #endregion Cobblestones // #region Gravels + event.create('tfg:rock/gravel_deepslate') + .soundType('gravel') + .tagBoth('forge:gravel') + .tagBoth('tfc:rock/gravel') + .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) + .mapColor(global.STONE_CHARACS.deepslate.mapColor) + .tagBlock('minecraft:mineable/shovel') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/gravel_blackstone') + .soundType('gravel') + .tagBoth('forge:gravel') + .tagBoth('tfc:rock/gravel') + .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) + .mapColor(global.STONE_CHARACS.blackstone.mapColor) + .tagBlock('minecraft:mineable/shovel') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/gravel_dripstone') + .soundType('gravel') + .tagBoth('forge:gravel') + .tagBoth('tfc:rock/gravel') + .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) + .mapColor(global.STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/shovel') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/gravel_crackrack') + .soundType('gravel') + .tagBoth('forge:gravel') + .tagBoth('tfc:rock/gravel') + .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) + .mapColor(global.STONE_CHARACS.crackrack.mapColor) + .tagBlock('minecraft:mineable/shovel') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + event.create('tfg:rock/gravel_moon') .soundType('gravel') .tagBoth('forge:gravel') @@ -775,6 +1085,28 @@ function registerTFGSpaceBlocks(event) { // #endregion Gravels // #region Smooth (Polished/Cut) Stones + + event.create('tfg:rock/polished_crackrack') + .soundType(global.STONE_CHARACS.crackrack.sound) + .tagBoth('forge:smooth_stone') + .tagBoth('tfc:igneous_intrusive_items') + .tagBoth('tfc:rock/smooth') + .mapColor('crimson_stem') + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/polished_crackrack_${shape}`, shape) + .soundType(global.STONE_CHARACS.crackrack.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) + .mapColor(global.STONE_CHARACS.crackrack.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + event.create('tfg:rock/polished_moon_wall', 'wall') .soundType(global.STONE_CHARACS.moon.sound) .textureAll('ad_astra:block/polished_moon_stone') @@ -871,6 +1203,174 @@ function registerTFGSpaceBlocks(event) { // #endregion Smooth (Polished/Cut) Stones // #region Bricks / Decorative + + // Deepslate + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_deepslate_${shape}`, shape) + .soundType(global.STONE_CHARACS.deepslate.sound) + .textureAll('minecraft:block/cracked_deepslate_bricks') + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) + .mapColor(global.STONE_CHARACS.deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_tiles_deepslate_${shape}`, shape) + .soundType(global.STONE_CHARACS.deepslate.sound) + .textureAll('minecraft:block/cracked_deepslate_tiles') + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) + .mapColor(global.STONE_CHARACS.deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_bricks_deepslate') + .soundType(global.STONE_CHARACS.deepslate.sound) + .tagBoth('minecraft:stone_bricks') + .tagBoth('forge:stone_bricks') + .tagBoth('tfc:rock/bricks') + .tagBoth('tfc:rock/mossy_bricks') + .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) + .mapColor(global.STONE_CHARACS.deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_bricks_deepslate_${shape}`, shape) + .soundType(global.STONE_CHARACS.deepslate.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) + .mapColor(global.STONE_CHARACS.deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // Blackstone + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_blackstone_${shape}`, shape) + .soundType(global.STONE_CHARACS.blackstone.sound) + .textureAll('minecraft:block/cracked_polished_blackstone_bricks') + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) + .mapColor(global.STONE_CHARACS.blackstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_bricks_blackstone') + .soundType(global.STONE_CHARACS.blackstone.sound) + .tagBoth('minecraft:stone_bricks') + .tagBoth('forge:stone_bricks') + .tagBoth('tfc:rock/bricks') + .tagBoth('tfc:rock/mossy_bricks') + .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) + .mapColor(global.STONE_CHARACS.blackstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_bricks_blackstone_${shape}`, shape) + .soundType(global.STONE_CHARACS.blackstone.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) + .mapColor(global.STONE_CHARACS.blackstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // Dripstone + event.create('tfg:rock/cracked_bricks_dripstone') + .soundType(global.STONE_CHARACS.dripstone.sound) + .tagBoth('minecraft:stone_bricks') + .tagBoth('forge:stone_bricks') + .tagBoth('tfc:rock/bricks') + .tagBoth('tfc:rock/mossy_bricks') + .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) + .mapColor(global.STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_dripstone_${shape}`, shape) + .soundType(global.STONE_CHARACS.dripstone.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) + .mapColor(global.STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_bricks_dripstone') + .soundType(global.STONE_CHARACS.dripstone.sound) + .tagBoth('minecraft:stone_bricks') + .tagBoth('forge:stone_bricks') + .tagBoth('tfc:rock/bricks') + .tagBoth('tfc:rock/mossy_bricks') + .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) + .mapColor(global.STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_bricks_dripstone_${shape}`, shape) + .soundType(global.STONE_CHARACS.dripstone.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) + .mapColor(global.STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // Crackrack + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_nether_${shape}`, shape) + .soundType(global.STONE_CHARACS.nether.sound) + .textureAll('minecraft:block/cracked_nether_bricks') + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`) + .mapColor(global.STONE_CHARACS.nether.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_bricks_nether') + .soundType(global.STONE_CHARACS.nether.sound) + .tagBoth('minecraft:stone_bricks') + .tagBoth('forge:stone_bricks') + .tagBoth('tfc:rock/bricks') + .tagBoth('tfc:rock/mossy_bricks') + .tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`) + .mapColor(global.STONE_CHARACS.nether.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_bricks_nether_${shape}`, shape) + .soundType(global.STONE_CHARACS.nether.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`) + .mapColor(global.STONE_CHARACS.nether.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + // Moon Stone SHAPES.forEach(shape => { event.create(`tfg:rock/cracked_bricks_moon_${shape}`, shape) @@ -1332,300 +1832,4 @@ function registerTFGSpaceBlocks(event) { // #endregion Sandstone - // #region Plants - - /* - Custom TFG Builder information https://github.com/TerraFirmaGreg-Team/Modpack-Modern/wiki/%5BEN%5D-TFG-Custom-Kubejs-Scripts - */ - - event.create('tfg:lunar_roots', 'tfg:decorative_plant') - .soundType('nether_wart') - .lightLevel(0.4) - .tagItem('tfg:moon_plants') - .tagBlock('minecraft:replaceable') - - event.create('tfg:lunar_sprouts', 'tfg:decorative_plant') - .soundType('nether_wart') - .tagItem('tfg:moon_plants') - .tagBlock('minecraft:replaceable') - - event.create('tfg:corallium_arenicolus_0', 'tfg:tall_decorative_plant') - .height(2) - .soundType('nether_wart') - .tagItem('tfg:venus_plants') - .lightLevel(0.4) - .renderType('translucent') - - event.create('tfg:corallium_arenicolus_1', 'tfg:decorative_plant') - .soundType('nether_wart') - .tagItem('tfg:venus_plants') - .box(3, 0, 3, 13, 14, 13) - - event.create('tfg:corallium_arenicolus_2', 'tfg:decorative_plant') - .soundType('nether_wart') - .tagItem('tfg:venus_plants') - .renderType('translucent') - .box(0, 0, 0, 16, 4, 16) - - event.create('tfg:corallium_arenicolus_3', 'tfg:decorative_plant') - .soundType('nether_wart') - .tagItem('tfg:venus_plants') - .box(3, 0, 3, 13, 14, 13) - - event.create('tfg:corallium_arenicolus_4', 'tfg:decorative_plant') - .soundType('nether_wart') - .tagItem('tfg:venus_plants') - .box(3, 0, 3, 13, 14, 13) - - event.create('tfg:corallium_arenicolus_5', 'tfg:decorative_plant') - .soundType('nether_wart') - .tagItem('tfg:venus_plants') - .box(3, 0, 3, 13, 14, 13) - - event.create('tfg:geyser_source', 'tfg:particle_emitter_decoration') - .soundType('dripstone_block') - .mapColor('color_white') - .resistance(6) - .hardness(1.5) - .particleOffset(0.3, 1, 0.3) - .particleVelocity(0, 0.1, 0) - .particle('minecraft:campfire_signal_smoke') - .particleCount(5) - .particleForced(true) - - event.create('tfg:geyser_source_small', 'tfg:particle_emitter_decoration') - .soundType('dripstone_block') - .mapColor('color_white') - .resistance(6) - .hardness(1.5) - .particleOffset(0.3, 1, 0.3) - .particleVelocity(0, 0.05, 0) - .particle('minecraft:campfire_cosy_smoke') - .particleCount(2) - .particleForced(false) - - event.create('tfg:stromatolite_cluster_small', 'tfg:decorative_plant') - .soundType('dripstone_block') - .mapColor('color_brown') - .box(3, 0, 3, 13, 6, 13) - - event.create('tfg:stromatolite_cluster_medium', 'tfg:decorative_plant') - .soundType('dripstone_block') - .mapColor('color_brown') - .box(3, 0, 3, 13, 14, 13) - - // #endregion - - // #region Mars Blocks - - event.create('tfg:spice', 'tfg:particle_emitter') - .textureAll('tfg:block/sand_spice') - .soundType('sand') - .hardness(2) - .resistance(6) - // makes it invisible on xaeros, so people can't use it to find the deposits :) - .mapColor('none') - .particleOffset(0.3, 1.5, 0.3) - .particleVelocity(0, 0.05, 0) - .particle('electric_spark') - .particleCount(2) - .particleForced(false) - .fullBlock(true) - .opaque(true) - - event.create('tfg:groundcover/glider_feather', 'tfc:ground_cover') - .box(4, 0, 4, 12, 2, 12) - .soundType('wool') - .groundCoverModelShape('feather') - .withPreexistingItem('wan_ancient_beasts:glider_feather') - .textureAll('wan_ancient_beasts:item/glider_feather') - .tagBlock('tfc:can_be_snow_piled') - - event.create('tfg:groundcover/wraptor_feather', 'tfc:ground_cover') - .box(4, 0, 4, 12, 2, 12) - .soundType('wool') - .groundCoverModelShape('feather') - .withPreexistingItem('minecraft:feather') - .textureAll('tfg:item/wraptor_wool') - .tagBlock('tfc:can_be_snow_piled') - - event.create('tfg:groundcover/aeronos_stick', 'tfc:ground_cover') - .box(3, 0, 3, 13, 3, 13) - .groundCoverModelShape('twig') - .withPreexistingItem('tfg:twigs/aeronos') - .tagBlock('tfc:can_be_snow_piled') - .texture('particle', 'ad_astra:block/aeronos_stem') - .texture('all', 'ad_astra:block/aeronos_stem') - .texture('top', 'ad_astra:block/aeronos_stem_inside') - - event.create('tfg:groundcover/strophar_stick', 'tfc:ground_cover') - .box(3, 0, 3, 13, 3, 13) - .groundCoverModelShape('twig') - .withPreexistingItem('tfg:twigs/strophar') - .tagBlock('tfc:can_be_snow_piled') - .texture('particle', 'ad_astra:block/strophar_stem') - .texture('all', 'ad_astra:block/strophar_stem') - .texture('top', 'ad_astra:block/strophar_stem_inside') - - event.create('tfg:groundcover/glacian_stick', 'tfc:ground_cover') - .box(3, 0, 3, 13, 3, 13) - .groundCoverModelShape('twig') - .withPreexistingItem('tfg:twigs/glacian') - .tagBlock('tfc:can_be_snow_piled') - .texture('particle', 'ad_astra:block/glacian_log') - .texture('all', 'ad_astra:block/glacian_log') - .texture('top', 'ad_astra:block/glacian_log_top') - - event.create('tfg:groundcover/alphacene_stick', 'tfc:ground_cover') - .box(3, 0, 3, 13, 3, 13) - .groundCoverModelShape('twig') - .withPreexistingItem('tfg:twigs/alphacene') - .tagBlock('tfc:can_be_snow_piled') - .texture('particle', 'species:block/alphacene_mushroom_block') - .texture('all', 'species:block/alphacene_mushroom_block') - .texture('top', 'minecraft:block/mushroom_stem') - - // #endregion - - //#region Venus Blocks - //Fluorapatite - const fluorapatite_colors = ['blue', 'green', 'brown', 'orange', 'white', 'yellow']; - fluorapatite_colors.forEach(color => { - const mapColor = color === 'white' ? 'quartz' : `color_${color}`; - - //Sand - event.create(`tfg:sand/fluorapatite/${color}`, 'falling') - .textureAll(`tfg:block/planets/venus/sand_fluorapatite_${color}`) - .soundType('sand') - .requiresTool(false) - .tagBoth('forge:sand') - .tagItem('forge:sand/fluorapatite') - .tagBlock('minecraft:mineable/shovel') - .mapColor(mapColor) - .fullBlock(true) - .opaque(true) - //Raw Sandstone - event.create(`tfg:sandstone/raw/fluorapatite/${color}`) - .textureAll(`tfg:block/planets/venus/sandstone_bottom_fluorapatite_${color}`) - .texture('up', `tfg:block/planets/venus/sandstone_top_fluorapatite_${color}`) - .hardness(0.8) - .resistance(0.8) - .soundType('stone') - .requiresTool(true) - .tagBoth('forge:sandstone') - .tagItem('forge:sandstone/fluorapatite') - .tagBlock('minecraft:mineable/pickaxe') - .mapColor(mapColor) - .fullBlock(true) - .opaque(true) - //Smooth Sandstone - event.create(`tfg:sandstone/smooth/fluorapatite/${color}`) - .textureAll(`tfg:block/planets/venus/sandstone_top_fluorapatite_${color}`) - .hardness(0.8) - .resistance(0.8) - .soundType('stone') - .requiresTool(true) - .tagBoth('forge:sandstone') - .tagItem('forge:sandstone/fluorapatite') - .tagBlock('minecraft:mineable/pickaxe') - .mapColor(mapColor) - .fullBlock(true) - .opaque(true) - //Chiseled Sandstone - event.create(`tfg:sandstone/smooth/chiseled/fluorapatite/${color}`) - .textureAll(`tfg:block/planets/venus/sandstone_chiseled_fluorapatite_${color}`) - .texture('up', `tfg:block/planets/venus/sandstone_top_fluorapatite_${color}`) - .texture('down', `tfg:block/planets/venus/sandstone_bottom_fluorapatite_${color}`) - .hardness(0.8) - .resistance(0.8) - .soundType('stone') - .requiresTool(true) - .tagBoth('forge:sandstone') - .tagItem('forge:sandstone/fluorapatite') - .tagBlock('minecraft:mineable/pickaxe') - .mapColor(mapColor) - .fullBlock(true) - .opaque(true) - //Sandstone - event.create(`tfg:sandstone/fluorapatite/${color}`) - .textureAll(`tfg:block/planets/venus/sandstone_fluorapatite_${color}`) - .texture('down', `tfg:block/planets/venus/sandstone_bottom_fluorapatite_${color}`) - .texture('up', `tfg:block/planets/venus/sandstone_top_fluorapatite_${color}`) - .hardness(0.8) - .resistance(0.8) - .soundType('stone') - .requiresTool(true) - .tagBoth('forge:sandstone') - .tagItem('forge:sandstone/fluorapatite') - .tagBlock('minecraft:mineable/pickaxe') - .mapColor(mapColor) - .fullBlock(true) - .opaque(true) - }) - - //#region Venus Stone - - //Stromatolite - event.create('tfg:rock/raw/stromatolite', 'tfc:raw_rock') - .textureAll('tfg:block/planets/venus/stromatolite_spike') - .model('tfg:block/rock/stromatolite_block') - .rockTypeTooltip(Text.translatable('tooltip.tfg.sedimentary')) - .naturallySupported(true) - .sedimentary() - .renderType('cutout') - .soundType('dripstone_block') - .requiresTool(true) - .hardness(0.8) - .resistance(0.8) - .tagBlock('minecraft:mineable/pickaxe') - - event.create('tfg:rock/spike/stromatolite', 'tfc:rock_spike') - .textureAll('tfg:block/planets/venus/stromatolite_spike') - .soundType('dripstone_block') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - .tagBlock('minecraft:mineable/pickaxe') - - //Geyserite - event.create('tfg:rock/raw/geyserite', 'tfc:raw_rock') - .textureAll('tfg:block/planets/venus/geyserite') - .rockTypeTooltip(Text.translatable('tooltip.tfg.sedimentary')) - .naturallySupported(true) - .mapColor('quartz') - .sedimentary() - .soundType('dripstone_block') - .requiresTool(true) - .hardness(0.8) - .resistance(0.8) - .tagBlock('minecraft:mineable/pickaxe') - - event.create('tfg:rock/spike/geyserite', 'tfc:rock_spike') - .textureAll('tfg:block/planets/venus/geyserite') - .soundType('dripstone_block') - .mapColor('quartz') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - .tagBlock('minecraft:mineable/pickaxe') - - // Halite - event.create('tfg:rock/halite') - .mapColor('quartz') - .soundType('deepslate') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - event.create('tfg:rock/halite2') - .mapColor('snow') - .soundType('deepslate') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/stone_types/blocks.vanilla_stone.js b/kubejs/startup_scripts/tfg/stone_types/blocks.vanilla_stone.js new file mode 100644 index 000000000..98d0e933a --- /dev/null +++ b/kubejs/startup_scripts/tfg/stone_types/blocks.vanilla_stone.js @@ -0,0 +1,56 @@ +"use strict"; + +function registerTFGVanillaStoneBlocks(event) { + + event.create(`tfg:rock/stone_wall`, 'wall') + .soundType(global.STONE_CHARACS.reconstituted.sound) + .textureAll('minecraft:block/stone') + .tagBoth('tfg:rock_wall') + .mapColor(global.STONE_CHARACS.reconstituted.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + let SHAPES = ['stairs', 'wall'] + SHAPES.forEach(shape => { + event.create(`tfg:rock/smooth_stone_${shape}`, shape) + .soundType(global.STONE_CHARACS.reconstituted.sound) + .textureAll('minecraft:block/smooth_stone') + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .mapColor(global.STONE_CHARACS.reconstituted.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + SHAPES = ['stairs', 'slab', 'wall'] + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_stone_${shape}`, shape) + .soundType(global.STONE_CHARACS.reconstituted.sound) + .textureAll('minecraft:block/cracked_stone_bricks') + .tagBoth(`tfg:brick_${shape}s`.replace(/ss/g, 's')) + .mapColor(global.STONE_CHARACS.reconstituted.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/quartz_wall', 'wall') + .soundType('stone') + .textureAll('minecraft:block/quartz_block_side') + .tagBoth('tfg:rock_wall') + .mapColor('snow') + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/smooth_quartz_wall', 'wall') + .soundType('stone') + .textureAll('minecraft:block/quartz_block_bottom') + .tagBoth('tfg:rock_wall') + .mapColor('snow') + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/stone_types/items.rocks.js b/kubejs/startup_scripts/tfg/stone_types/items.rocks.js new file mode 100644 index 000000000..8cf86dbb8 --- /dev/null +++ b/kubejs/startup_scripts/tfg/stone_types/items.rocks.js @@ -0,0 +1,43 @@ +"use strict"; + +function registerTFGRockItems(event) { + + event.create('tfg:brick/deepslate') + .tag(`tfc:metamorphic_items`) + .translationKey('item.tfg.brick.deepslate') + + event.create('tfg:brick/dripstone') + .tag(`tfc:sedimentary_items`) + .translationKey('item.tfg.brick.dripstone') + + event.create('tfg:brick/moon_stone') + .tag(`tfc:igneous_intrusive_items`) + .translationKey('item.tfg.brick.moon_stone') + + event.create('tfg:brick/moon_deepslate') + .tag(`tfc:igneous_intrusive_items`) + .translationKey('item.tfg.moon_deepslate') + + event.create('tfg:brick/mars_stone') + .tag(`tfc:sedimentary_items`) + .translationKey('item.tfg.brick.mars_stone') + + event.create('tfg:brick/venus_stone') + .tag(`tfc:igneous_extrusive_items`) + .translationKey('item.tfg.brick.venus_stone') + + event.create('tfg:brick/mercury_stone') + .tag(`tfc:igneous_intrusive_items`) + .translationKey('item.tfg.brick.mercury_stone') + + event.create('tfg:brick/glacio_stone') + .tag(`tfc:igneous_extrusive_items`) + .translationKey('item.tfg.brick.glacio_stone') + + event.create('tfg:brick/permafrost') + .translationKey('item.tfg.brick.permafrost') + + event.create('tfg:brick/red_granite') + .tag(`tfc:igneous_intrusive_items`) + .translationKey('item.tfg.red_granite') +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/stone_types/materials.rocks.js b/kubejs/startup_scripts/tfg/stone_types/materials.rocks.js new file mode 100644 index 000000000..ee90eda0a --- /dev/null +++ b/kubejs/startup_scripts/tfg/stone_types/materials.rocks.js @@ -0,0 +1,43 @@ +// priority: 0 +"use strict"; + +const registerTFGRockMaterials = (event) => { + const registerStoneMaterial = (rockType, color) => + event.create(`tfg:${rockType}`) + .dust() + .color(color) + .iconSet(GTMaterialIconSet.ROUGH) + .flags( + GTMaterialFlags.MORTAR_GRINDABLE, + GTMaterialFlags.NO_SMASHING, + GTMaterialFlags.NO_SMELTING + ) + + /* TFC Stone Types Materials */ + registerStoneMaterial('gabbro', 0x7F8081) + registerStoneMaterial('shale', 0x686567) + registerStoneMaterial('claystone', 0xAF9377) + registerStoneMaterial('limestone', 0xA09885) + registerStoneMaterial('conglomerate', 0xA3977F) + registerStoneMaterial('dolomite', 0x515155) + registerStoneMaterial('chert', 0x7A6756) + registerStoneMaterial('chalk', 0xA4A39F) + registerStoneMaterial('rhyolite', 0x726D69) + registerStoneMaterial('dacite', 0x979797) + registerStoneMaterial('slate', 0x989287) + registerStoneMaterial('phyllite', 0x706B61) + registerStoneMaterial('schist', 0x6E735C) + registerStoneMaterial('gneiss', 0x6A6D60) + + registerStoneMaterial('dripstone', 0x927965) + + registerStoneMaterial('moon_stone', 0x506869) + registerStoneMaterial('moon_deepslate', 0x45474D) + registerStoneMaterial('mars_stone', 0xD08957) + registerStoneMaterial('venus_stone', 0xD5A664) + registerStoneMaterial('mercury_stone', 0x723E49) + registerStoneMaterial('glacio_stone', 0x9897BF) + + // Specialized icon sets for TFC's own + modifyTFGIconSets(event) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/venus/blocks.venus_deco.js b/kubejs/startup_scripts/tfg/venus/blocks.venus_deco.js new file mode 100644 index 000000000..4e6961652 --- /dev/null +++ b/kubejs/startup_scripts/tfg/venus/blocks.venus_deco.js @@ -0,0 +1,176 @@ +"use strict"; + +function registerTFGWorldGenVenusDecoBlocks(event) { + + event.create('tfg:geyser_source', 'tfg:particle_emitter_decoration') + .soundType('dripstone_block') + .mapColor('color_white') + .resistance(6) + .hardness(1.5) + .particleOffset(0.3, 1, 0.3) + .particleVelocity(0, 0.1, 0) + .particle('minecraft:campfire_signal_smoke') + .particleCount(5) + .particleForced(true) + + event.create('tfg:geyser_source_small', 'tfg:particle_emitter_decoration') + .soundType('dripstone_block') + .mapColor('color_white') + .resistance(6) + .hardness(1.5) + .particleOffset(0.3, 1, 0.3) + .particleVelocity(0, 0.05, 0) + .particle('minecraft:campfire_cosy_smoke') + .particleCount(2) + .particleForced(false) + + //Geyserite + event.create('tfg:rock/raw/geyserite', 'tfc:raw_rock') + .textureAll('tfg:block/planets/venus/geyserite') + .rockTypeTooltip(Text.translatable('tooltip.tfg.sedimentary')) + .naturallySupported(true) + .mapColor('quartz') + .sedimentary() + .soundType('dripstone_block') + .requiresTool(true) + .hardness(0.8) + .resistance(0.8) + .tagBlock('minecraft:mineable/pickaxe') + + event.create('tfg:rock/spike/geyserite', 'tfc:rock_spike') + .textureAll('tfg:block/planets/venus/geyserite') + .soundType('dripstone_block') + .mapColor('quartz') + .hardness(0.8) + .resistance(0.8) + .requiresTool(true) + .tagBlock('minecraft:mineable/pickaxe') + + // Halite + event.create('tfg:rock/halite') + .mapColor('quartz') + .soundType('deepslate') + .hardness(0.8) + .resistance(0.8) + .requiresTool(true) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + event.create('tfg:rock/halite2') + .mapColor('snow') + .soundType('deepslate') + .hardness(0.8) + .resistance(0.8) + .requiresTool(true) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + //Stromatolite + event.create('tfg:rock/raw/stromatolite', 'tfc:raw_rock') + .textureAll('tfg:block/planets/venus/stromatolite_spike') + .model('tfg:block/rock/stromatolite_block') + .rockTypeTooltip(Text.translatable('tooltip.tfg.sedimentary')) + .naturallySupported(true) + .sedimentary() + .renderType('cutout') + .soundType('dripstone_block') + .requiresTool(true) + .hardness(0.8) + .resistance(0.8) + .tagBlock('minecraft:mineable/pickaxe') + + event.create('tfg:rock/spike/stromatolite', 'tfc:rock_spike') + .textureAll('tfg:block/planets/venus/stromatolite_spike') + .soundType('dripstone_block') + .hardness(0.8) + .resistance(0.8) + .requiresTool(true) + .tagBlock('minecraft:mineable/pickaxe') + + event.create('tfg:stromatolite_cluster_small', 'tfg:decorative_plant') + .soundType('dripstone_block') + .mapColor('color_brown') + .box(3, 0, 3, 13, 6, 13) + + event.create('tfg:stromatolite_cluster_medium', 'tfg:decorative_plant') + .soundType('dripstone_block') + .mapColor('color_brown') + .box(3, 0, 3, 13, 14, 13) + + //#region Fluorapatite + const fluorapatite_colors = ['blue', 'green', 'brown', 'orange', 'white', 'yellow']; + fluorapatite_colors.forEach(color => { + const mapColor = color === 'white' ? 'quartz' : `color_${color}`; + + //Sand + event.create(`tfg:sand/fluorapatite/${color}`, 'falling') + .textureAll(`tfg:block/planets/venus/sand_fluorapatite_${color}`) + .soundType('sand') + .requiresTool(false) + .tagBoth('forge:sand') + .tagItem('forge:sand/fluorapatite') + .tagBlock('minecraft:mineable/shovel') + .mapColor(mapColor) + .fullBlock(true) + .opaque(true) + //Raw Sandstone + event.create(`tfg:sandstone/raw/fluorapatite/${color}`) + .textureAll(`tfg:block/planets/venus/sandstone_bottom_fluorapatite_${color}`) + .texture('up', `tfg:block/planets/venus/sandstone_top_fluorapatite_${color}`) + .hardness(0.8) + .resistance(0.8) + .soundType('stone') + .requiresTool(true) + .tagBoth('forge:sandstone') + .tagItem('forge:sandstone/fluorapatite') + .tagBlock('minecraft:mineable/pickaxe') + .mapColor(mapColor) + .fullBlock(true) + .opaque(true) + //Smooth Sandstone + event.create(`tfg:sandstone/smooth/fluorapatite/${color}`) + .textureAll(`tfg:block/planets/venus/sandstone_top_fluorapatite_${color}`) + .hardness(0.8) + .resistance(0.8) + .soundType('stone') + .requiresTool(true) + .tagBoth('forge:sandstone') + .tagItem('forge:sandstone/fluorapatite') + .tagBlock('minecraft:mineable/pickaxe') + .mapColor(mapColor) + .fullBlock(true) + .opaque(true) + //Chiseled Sandstone + event.create(`tfg:sandstone/smooth/chiseled/fluorapatite/${color}`) + .textureAll(`tfg:block/planets/venus/sandstone_chiseled_fluorapatite_${color}`) + .texture('up', `tfg:block/planets/venus/sandstone_top_fluorapatite_${color}`) + .texture('down', `tfg:block/planets/venus/sandstone_bottom_fluorapatite_${color}`) + .hardness(0.8) + .resistance(0.8) + .soundType('stone') + .requiresTool(true) + .tagBoth('forge:sandstone') + .tagItem('forge:sandstone/fluorapatite') + .tagBlock('minecraft:mineable/pickaxe') + .mapColor(mapColor) + .fullBlock(true) + .opaque(true) + //Sandstone + event.create(`tfg:sandstone/fluorapatite/${color}`) + .textureAll(`tfg:block/planets/venus/sandstone_fluorapatite_${color}`) + .texture('down', `tfg:block/planets/venus/sandstone_bottom_fluorapatite_${color}`) + .texture('up', `tfg:block/planets/venus/sandstone_top_fluorapatite_${color}`) + .hardness(0.8) + .resistance(0.8) + .soundType('stone') + .requiresTool(true) + .tagBoth('forge:sandstone') + .tagItem('forge:sandstone/fluorapatite') + .tagBlock('minecraft:mineable/pickaxe') + .mapColor(mapColor) + .fullBlock(true) + .opaque(true) + }) + //#endregion +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/venus/materials.venus.js b/kubejs/startup_scripts/tfg/venus/materials.venus.js new file mode 100644 index 000000000..124fa9c6e --- /dev/null +++ b/kubejs/startup_scripts/tfg/venus/materials.venus.js @@ -0,0 +1,80 @@ +"use strict"; + +function registerTFGVenusMaterials(event) { + + // Ores + + event.create('tfg:calorite') + //.components('2x mercury', '1x tungsten', '1x rhodium', '2x sulfur') + .color(0xC94D4E) + .secondaryColor(0x9A296A) + .iconSet(GTMaterialIconSet.getByName('tfc_copper')) + .ore() + .ingot() + .flags( + GTMaterialFlags.FORCE_GENERATE_BLOCK, + GTMaterialFlags.GENERATE_PLATE + ) + + //#region Bromine Line + + event.create('raw_brine') + .fluid() + .color(0x947a11) + //.secondaryColor(0x81FFF9) + + event.create('hot_brine') + .liquid(320) + .color(0x944611) + + event.create('hot_chlorinated_brominated_brine') + .liquid(320) + .color(0xbf8d5a) + .components('1x unknown', '1x chlorine') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('brominated_chlorine_vapor') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(320)) + .color(0xbf8d5a) + .components('1x chlorine', '1x bromine', '1x water') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('acidic_bromine_solution') + .liquid(new GTFluidBuilder().attribute(GTFluidAttributes.ACID)) + .color(0xe7b989) + .components('1x chlorine', '1x bromine') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('concentrated_bromine_solution') + .liquid() + .color(0x905d29) + .components('1x bromine', '1x chlorine') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('debrominated_brine') + .liquid() + .color(0xc3874a) + + event.create('acidic_bromine_exhaust') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).attribute(GTFluidAttributes.ACID).temperature(293)) + .color(0xec9c4a) + .components('3x water', '1x chlorine') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('hot_alkaline_debrominated_brine') + .liquid() + .color(0xcc6a06) + .components('2x unknown', '1x chlorine') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('hot_debrominated_brine') + .liquid(320) + .color(0xb08e6b) + + event.create('hydrogen_iodide') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(293)) + .color(0x82a6ce) + .components('1x hydrogen', '1x iodine') + + //#endregion +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/worldgen/blocks.beneath_deco.js b/kubejs/startup_scripts/tfg/worldgen/blocks.beneath_deco.js new file mode 100644 index 000000000..963c68a77 --- /dev/null +++ b/kubejs/startup_scripts/tfg/worldgen/blocks.beneath_deco.js @@ -0,0 +1,22 @@ +"use strict"; + +function registerTFGWorldGenBeneathDecoBlocks(event) { + + event.create('tfg:mushroom_roots', 'tfg:decorative_plant') + .soundType('nether_wart') + .tagItem('tfc:plants') + + event.create('tfg:mushroom_sprouts', 'tfg:decorative_plant') + .soundType('nether_wart') + .tagItem('tfc:plants') + + event.create('tfg:charred_log') + .fullBlock(true) + .woodSoundType() + .property(BlockProperties.AXIS) + .tagBoth('minecraft:mineable/axe') + .tagBoth('tfc:logs_that_log') + .tagBoth('afc:logs_that_log') + .tagBoth('minecraft:logs') + .mapColor('black') +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/worldgen/blocks.trees.js b/kubejs/startup_scripts/tfg/worldgen/blocks.trees.js new file mode 100644 index 000000000..b5142d066 --- /dev/null +++ b/kubejs/startup_scripts/tfg/worldgen/blocks.trees.js @@ -0,0 +1,115 @@ +"use strict"; + +function registerTFGWorldGenTrees(event) { + + // Mars Saplings + + event.create('tfg:saplings/crimson', 'tfc:sapling') + .features('tfg:mars/tree/crimson') + .tagBoth('minecraft:saplings') + .tagBlock('tfg:do_not_destroy_in_space') + .tagBlock('tfc:can_be_snow_piled') + .growthDays(6) + .soundType('nether_wart') + .defaultCutout() + .noCollision() + + event.create('tfg:saplings/warped', 'tfc:sapling') + .features('tfg:mars/tree/warped') + .tagBoth('minecraft:saplings') + .tagBlock('tfg:do_not_destroy_in_space') + .tagBlock('tfc:can_be_snow_piled') + .growthDays(6) + .soundType('nether_wart') + .defaultCutout() + .noCollision() + + event.create('tfg:saplings/alphacene', 'tfc:sapling') + .features('species:alphacene_mushroom') + .tagBoth('minecraft:saplings') + .tagBlock('tfg:do_not_destroy_in_space') + .tagBlock('tfc:can_be_snow_piled') + .growthDays(3) + .soundType('nether_wart') + .defaultCutout() + .noCollision() + + event.create('tfg:saplings/strophar', 'tfc:sapling') + .features('tfg:mars/tree/strophar_mini') + .tagBoth('minecraft:saplings') + .tagBlock('tfg:do_not_destroy_in_space') + .tagBlock('tfc:can_be_snow_piled') + .growthDays(7) + .soundType('nether_wart') + .defaultCutout() + .noCollision() + + event.create('tfg:saplings/aeronos', 'tfc:sapling') + .features('tfg:mars/tree/aeronos_mini') + .tagBoth('minecraft:saplings') + .tagBlock('tfg:do_not_destroy_in_space') + .tagBlock('tfc:can_be_snow_piled') + .growthDays(9) + .soundType('nether_wart') + .defaultCutout() + .noCollision() + + event.create('tfg:saplings/glacian', 'tfc:sapling') + .features('tfg:mars/tree/glacian_mini') + .tagBoth('minecraft:saplings') + .tagBlock('tfg:do_not_destroy_in_space') + .tagBlock('tfc:can_be_snow_piled') + .growthDays(9) + .soundType('nether_wart') + .defaultCutout() + .noCollision() + + // Glacian tree stuff + event.create('tfg:glacian_leaves', 'tfc:leaves') + .soundType('azalea_leaves') + .tagBlock('minecraft:mineable/hoe') + .tagBlock('tfg:do_not_destroy_in_space') + .mapColor('snow') + .seasonalColors(false) + .fallenLeaves(leaves => { + leaves.noCollision() + leaves.notSolid() + leaves.defaultCutout() + leaves.soundType('azalea_leaves') + leaves.tagBlock('minecraft:mineable/hoe') + leaves.tagBlock('minecraft:replaceable') + leaves.noDynamicTinting() + leaves.models((modelType, generator) => { + if (modelType.layers != 8) { + generator.parent("tfc:block/groundcover/fallen_leaves_height" + modelType.height); + generator.texture("all", "ad_astra:block/glacian_leaves"); + } else { + generator.parent("ad_astra:block/glacian_leaves"); + } + }) + }) + + event.create('tfg:glacian_wood', 'tfc:log') + .tagBoth('minecraft:logs') + .tagItem('minecraft:logs_that_burn') + .tagItem('ad_astra:glacian_logs') + .tagBlock('minecraft:mineable/axe') + .soundType('wood') + .stripped(stripped => { + stripped.tagBoth('minecraft:logs') + stripped.tagItem('minecraft:logs_that_burn') + stripped.tagItem('ad_astra:glacian_logs') + stripped.tagBlock('minecraft:mineable/axe') + stripped.soundType('wood') + }) + + event.create('tfg:glacian_log', 'tfc:log') + .tagBoth('minecraft:logs') + .tagBoth('c:hidden_from_recipe_viewers') + .soundType('wood') + .stripped(stripped => { + stripped.tagBoth('minecraft:logs') + stripped.tagBoth('c:hidden_from_recipe_viewers') + stripped.soundType('wood') + }) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/fauna.js b/kubejs/startup_scripts/tfg/worldgen/fauna.js similarity index 100% rename from kubejs/startup_scripts/tfg/fauna.js rename to kubejs/startup_scripts/tfg/worldgen/fauna.js diff --git a/kubejs/startup_scripts/tfg/worldgen/items.wood.js b/kubejs/startup_scripts/tfg/worldgen/items.wood.js new file mode 100644 index 000000000..db87b70c9 --- /dev/null +++ b/kubejs/startup_scripts/tfg/worldgen/items.wood.js @@ -0,0 +1,24 @@ +"use strict"; + +function registerTFGWoodItems(event) { + + global.AD_ASTRA_WOOD.forEach(wood => { + event.create(`tfg:wood/lumber/${wood.name}`) + .translationKey(`item.tfg.${wood.name}_lumber`) + .tag('tfc:lumber') + }) + + + event.create('tfg:twigs/strophar') + .tag('tfc:twigs') + .texture('tfg:item/wood/twig/strophar') + event.create('tfg:twigs/aeronos') + .tag('tfc:twigs') + .texture('tfg:item/wood/twig/aeronos') + event.create('tfg:twigs/glacian') + .tag('tfc:twigs') + .texture('tfg:item/wood/twig/glacian') + event.create('tfg:twigs/alphacene') + .tag('tfc:twigs') + .texture('tfg:item/wood/twig/alphacene') +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/register_climates.js b/kubejs/startup_scripts/tfg/worldgen/register_climates.js similarity index 100% rename from kubejs/startup_scripts/tfg/register_climates.js rename to kubejs/startup_scripts/tfg/worldgen/register_climates.js diff --git a/kubejs/startup_scripts/tfg/worldgen/utility.js b/kubejs/startup_scripts/tfg/worldgen/utility.js new file mode 100644 index 000000000..83e19c2f5 --- /dev/null +++ b/kubejs/startup_scripts/tfg/worldgen/utility.js @@ -0,0 +1,29 @@ +// priority: 0 +"use strict"; + + +/** + * @param {any} event + * @param {string} id + * @param {string} planet + */ +function createPlant(event, id, planet) { + return event.create(`betterend:${id}`, 'tfg:decorative_plant') + .tagItem(`tfg:${planet}_plants`) + .tagBlock('minecraft:replaceable') + .tagBlock('tfg:do_not_destroy_in_space') + .tagBlock('tfc:can_be_snow_piled') +} + +/** + * @param {any} event + * @param {string} id + * @param {string} planet + */ +function createWaterPlant(event, id, planet) { + return event.create(`betterend:${id}`, 'tfg:decorative_plant') + .tagItem(`tfg:${planet}_plants`) + .tagBlock('minecraft:replaceable') + .tagBlock('tfg:do_not_destroy_in_space') + .tagBlock('tfc:can_be_ice_piled') +} \ No newline at end of file diff --git a/pakku-lock.json b/pakku-lock.json index 26a1b0f0a..8c92a816c 100644 --- a/pakku-lock.json +++ b/pakku-lock.json @@ -852,7 +852,7 @@ "files": [ { "type": "curseforge", - "file_name": "alltheleaks-1.1.0+1.20.1-forge.jar", + "file_name": "alltheleaks-1.1.1+1.20.1-forge.jar", "mc_versions": [ "1.20.1" ], @@ -860,16 +860,16 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/7189/127/alltheleaks-1.1.0+1.20.1-forge.jar", - "id": "7189127", + "url": "https://edge.forgecdn.net/files/7235/989/alltheleaks-1.1.1+1.20.1-forge.jar", + "id": "7235989", "parent_id": "1091339", "hashes": { - "sha1": "d38ae474a0d8d9c6671fe7419e36c1ac859c9e68", - "md5": "a1284d5c8ee99ba6de078db3b22709c6" + "sha1": "3c43c2e76093dc7ef5ad6e456d20da9674c653aa", + "md5": "df84fbdadaf7947dc530872fa60fbc56" }, "required_dependencies": [], - "size": 1186965, - "date_published": "2025-11-05T14:35:56.437Z" + "size": 1187126, + "date_published": "2025-11-18T17:28:45.610Z" } ] }, @@ -1035,7 +1035,7 @@ "files": [ { "type": "modrinth", - "file_name": "ae2wtlib-15.3.1-forge.jar", + "file_name": "ae2wtlib-15.3.3-forge.jar", "mc_versions": [ "1.20.1" ], @@ -1043,25 +1043,25 @@ "forge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/pNabrMMw/versions/BLQZoB0F/ae2wtlib-15.3.1-forge.jar", - "id": "BLQZoB0F", + "url": "https://cdn.modrinth.com/data/pNabrMMw/versions/z8QXeyI0/ae2wtlib-15.3.3-forge.jar", + "id": "z8QXeyI0", "parent_id": "pNabrMMw", "hashes": { - "sha512": "57603754e9b51858678d0bbabea8c47050f56b810cdf06d528fdf97262cda4c26fa758830c997d2f0cdf7772142d70d99ea8e4be33fc9d20e54b7c43803ea109", - "sha1": "2df257a66c16c30f4fcae2de0d6b387251b7f114" + "sha512": "f036f278e6d1360147b04f2090829154e75e456f3b2c0af7571b537bf0fd13e97f29211f7a044f9437a171a1c525195737860895118eab70b2b4af54485367d4", + "sha1": "1a546af04844677542b6914191783c7de15364fc" }, "required_dependencies": [ - "vvuO3ImH", - "lhGA9TYQ", + "9s6osm5g", "XxWD5pD3", - "9s6osm5g" + "lhGA9TYQ", + "vvuO3ImH" ], - "size": 228960, - "date_published": "2025-10-26T23:02:08.228212Z" + "size": 229518, + "date_published": "2025-11-23T00:02:50.212750Z" }, { "type": "curseforge", - "file_name": "ae2wtlib-15.3.1-forge.jar", + "file_name": "ae2wtlib-15.3.3-forge.jar", "mc_versions": [ "1.20.1" ], @@ -1069,21 +1069,21 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/7154/316/ae2wtlib-15.3.1-forge.jar", - "id": "7154316", + "url": "https://edge.forgecdn.net/files/7251/206/ae2wtlib-15.3.3-forge.jar", + "id": "7251206", "parent_id": "459929", "hashes": { - "sha1": "2df257a66c16c30f4fcae2de0d6b387251b7f114", - "md5": "91c10c49ecea8f771aef27de03da0dec" + "sha1": "1a546af04844677542b6914191783c7de15364fc", + "md5": "9e60a31acb384e832f03bcb16e092ec9" }, "required_dependencies": [ + "309927", "223794", "348521", - "309927", "419699" ], - "size": 228960, - "date_published": "2025-10-26T23:02:05.480Z" + "size": 229518, + "date_published": "2025-11-23T00:02:48.137Z" } ] }, @@ -1459,7 +1459,7 @@ }, { "type": "curseforge", - "file_name": "baguettelib-1.20.1-Forge-1.1.1.jar", + "file_name": "baguettelib-1.20.1-Forge-1.1.5.jar", "mc_versions": [ "1.20.1" ], @@ -1467,16 +1467,16 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/7031/573/baguettelib-1.20.1-Forge-1.1.1.jar", - "id": "7031573", + "url": "https://edge.forgecdn.net/files/7287/505/baguettelib-1.20.1-Forge-1.1.5.jar", + "id": "7287505", "parent_id": "1264423", "hashes": { - "sha1": "eb060d8ed625c2ed9182db62e60154bb94c69046", - "md5": "558b2a3c6ed2caa44883e551580c0845" + "sha1": "7aaab6216e7fc72e1606b1e35f1f56a18f01153f", + "md5": "21c32e7a3fcd7501915bf2b91d76df9b" }, "required_dependencies": [], - "size": 30312, - "date_published": "2025-09-25T09:12:10.740Z" + "size": 31868, + "date_published": "2025-12-02T22:51:20.803Z" } ] }, @@ -1499,7 +1499,7 @@ "files": [ { "type": "modrinth", - "file_name": "balm-forge-1.20.1-7.3.33-all.jar", + "file_name": "balm-forge-1.20.1-7.3.37-all.jar", "mc_versions": [ "1.20", "1.20.1" @@ -1508,20 +1508,20 @@ "forge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/MBAkmtvl/versions/Et3eoKPd/balm-forge-1.20.1-7.3.33-all.jar", - "id": "Et3eoKPd", + "url": "https://cdn.modrinth.com/data/MBAkmtvl/versions/Ue8C6cKq/balm-forge-1.20.1-7.3.37-all.jar", + "id": "Ue8C6cKq", "parent_id": "MBAkmtvl", "hashes": { - "sha512": "d2ae5b6da42930735fd7132a67c4bd8a81cc44f686d680f73e7ffb686d0f873d408bff16153a9bff0651d888d0fe5473574c0d0d4f33ce564fbf3561beb4bbb5", - "sha1": "991d476a261027f2c3fef6545b6e24bcfee47de2" + "sha512": "3f01038d48f068ebc9941ad9ea23266e7f25a8851bb8f4ac4dd150bb2eddf10f6b2c0dac6e2a8d2cf4af2febfb884766f5ca000cf460d53ccde87cead2b0b5a8", + "sha1": "8ed877e61adf550c68aa4fc75d163ff97c0c5006" }, "required_dependencies": [], - "size": 596328, - "date_published": "2025-07-18T16:27:58.574138Z" + "size": 590487, + "date_published": "2025-10-09T16:46:34.849157Z" }, { "type": "curseforge", - "file_name": "balm-forge-1.20.1-7.3.33-all.jar", + "file_name": "balm-forge-1.20.1-7.3.37-all.jar", "mc_versions": [ "1.20.1", "1.20" @@ -1530,16 +1530,16 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/6784/115/balm-forge-1.20.1-7.3.33-all.jar", - "id": "6784115", + "url": "https://edge.forgecdn.net/files/7087/245/balm-forge-1.20.1-7.3.37-all.jar", + "id": "7087245", "parent_id": "531761", "hashes": { - "sha1": "190bb6d7e3b51f786fc3968bd142ca8705cd85ac", - "md5": "2ff37a0442953ee751f788bea5658473" + "sha1": "bb7af11fd4bc2e76fce98f90c752279ae381b934", + "md5": "e4d3fb7b0d8e9271aca89f7964367b1a" }, "required_dependencies": [], - "size": 596329, - "date_published": "2025-07-18T16:27:33.377Z" + "size": 590486, + "date_published": "2025-10-09T16:46:44.680Z" } ] }, @@ -2294,7 +2294,7 @@ "files": [ { "type": "modrinth", - "file_name": "chat_heads-0.14.0-forge-1.20.jar", + "file_name": "chat_heads-0.14.2-forge-1.20.jar", "mc_versions": [ "1.20", "1.20.1" @@ -2303,20 +2303,20 @@ "forge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/Wb5oqrBJ/versions/2OV95AUL/chat_heads-0.14.0-forge-1.20.jar", - "id": "2OV95AUL", + "url": "https://cdn.modrinth.com/data/Wb5oqrBJ/versions/kHywXsX0/chat_heads-0.14.2-forge-1.20.jar", + "id": "kHywXsX0", "parent_id": "Wb5oqrBJ", "hashes": { - "sha512": "9d1f0ff0daa940869b5b6af45f75e73d6fda8c6ee38fd0534b6d121c5e26aaeb8c87b856ecef1fc64b4c3d09f34c69ce8f27213837856637e4637c0970a22909", - "sha1": "567ee6f6d2b72a8203b73887e38344ffa2834b12" + "sha512": "44970e9d913c19b0c36990dcf6f4cf757b032f3bec596cc9b85ff0ac7fe5fcab3d20cd590e31825e649f5393189fc2bb89386f95cca36013e9c0195eb62e10e2", + "sha1": "0410ab9636c69324e3671012af64c7743f6d6079" }, "required_dependencies": [], - "size": 718407, - "date_published": "2025-10-02T14:11:45.140239Z" + "size": 718678, + "date_published": "2025-11-11T19:30:49.532052Z" }, { "type": "curseforge", - "file_name": "chat_heads-0.14.0-forge-1.20.jar", + "file_name": "chat_heads-0.14.2-forge-1.20.jar", "mc_versions": [ "1.20.1", "1.20" @@ -2325,16 +2325,16 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/7057/824/chat_heads-0.14.0-forge-1.20.jar", - "id": "7057824", + "url": "https://edge.forgecdn.net/files/7211/700/chat_heads-0.14.2-forge-1.20.jar", + "id": "7211700", "parent_id": "407206", "hashes": { - "sha1": "567ee6f6d2b72a8203b73887e38344ffa2834b12", - "md5": "b0d253116c8e585f087b481ec46a5c55" + "sha1": "0410ab9636c69324e3671012af64c7743f6d6079", + "md5": "90c7b2c8dd6b9001528c5d741152b784" }, "required_dependencies": [], - "size": 718407, - "date_published": "2025-10-02T14:11:48.900Z" + "size": 718678, + "date_published": "2025-11-11T19:30:55.800Z" } ] }, @@ -2529,7 +2529,7 @@ "files": [ { "type": "modrinth", - "file_name": "clienttweaks-forge-1.20.1-11.1.4.jar", + "file_name": "clienttweaks-forge-1.20.1-11.1.5.jar", "mc_versions": [ "1.20", "1.20.1" @@ -2538,22 +2538,22 @@ "forge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/vPNqo58Q/versions/CgYDErri/clienttweaks-forge-1.20.1-11.1.4.jar", - "id": "CgYDErri", + "url": "https://cdn.modrinth.com/data/vPNqo58Q/versions/H8SeAE8l/clienttweaks-forge-1.20.1-11.1.5.jar", + "id": "H8SeAE8l", "parent_id": "vPNqo58Q", "hashes": { - "sha512": "5ebce9bc1517f588bf5627c236fd45a7d1e852f05791574d2f5dab4e53549247f401e0c0d39dc904c110392f9c320d4685c5a864fb73f1719c7febe5c159de24", - "sha1": "35a27c237edc88ce5a48b271a83ad3cf577fe8e4" + "sha512": "83b3fd505453298e1b29483e4f30c096988479c909d0d6e79cda40bd310db6d3ba658d5a5a18c2625e74c4c71ea563646e75e7135e334cf51c14b5f925b4c19e", + "sha1": "14a951b96c22ed76057c1da4415f8234bcbc8dbc" }, "required_dependencies": [ "MBAkmtvl" ], - "size": 137803, - "date_published": "2025-07-17T13:16:41.315425Z" + "size": 137930, + "date_published": "2025-09-30T07:22:37.019245Z" }, { "type": "curseforge", - "file_name": "clienttweaks-forge-1.20.1-11.1.4.jar", + "file_name": "clienttweaks-forge-1.20.1-11.1.5.jar", "mc_versions": [ "1.20.1", "1.20" @@ -2562,18 +2562,18 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/6778/900/clienttweaks-forge-1.20.1-11.1.4.jar", - "id": "6778900", + "url": "https://edge.forgecdn.net/files/7047/908/clienttweaks-forge-1.20.1-11.1.5.jar", + "id": "7047908", "parent_id": "251407", "hashes": { - "sha1": "6389f338e671a149138175fd5ef9fe096d276970", - "md5": "24d4ad737448d3d2243042d33bfe084d" + "sha1": "dd42a485ccb028b04425ed6bac050d547266dfd7", + "md5": "c2f2bfe44ae97b97dfd9751f3b771820" }, "required_dependencies": [ "531761" ], - "size": 137803, - "date_published": "2025-07-17T13:16:38.110Z" + "size": 137930, + "date_published": "2025-09-30T07:22:41.783Z" } ] }, @@ -2682,7 +2682,7 @@ }, { "type": "curseforge", - "file_name": "Waves-1.20.1-1.6a.jar", + "file_name": "Waves-1.20.1-1.6.1.jar", "mc_versions": [ "1.20.1" ], @@ -2691,16 +2691,16 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/7046/424/Waves-1.20.1-1.6a.jar", - "id": "7046424", + "url": "https://edge.forgecdn.net/files/7208/600/Waves-1.20.1-1.6.1.jar", + "id": "7208600", "parent_id": "1155936", "hashes": { - "sha1": "cd2242b9102cebbdb117591be1b7c0b3465e3122", - "md5": "b510f00117054c6c06a0369edb44d4e0" + "sha1": "9704c7049b49ba6f5969ba2a1442490385764d03", + "md5": "9012ca8827fef15f7fa78179ce2fbf86" }, "required_dependencies": [], - "size": 1337728, - "date_published": "2025-09-29T18:42:51.277Z" + "size": 1337928, + "date_published": "2025-11-10T23:43:44.807Z" } ] }, @@ -3578,32 +3578,9 @@ "modrinth": "kU1G12Nn" }, "files": [ - { - "type": "curseforge", - "file_name": "createaddition-1.20.1-1.3.2.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "forge" - ], - "release_type": "release", - "url": "https://edge.forgecdn.net/files/6901/922/createaddition-1.20.1-1.3.2.jar", - "id": "6901922", - "parent_id": "439890", - "hashes": { - "sha1": "41ea564e270effea8bad04b937fb30d2a3bb5053", - "md5": "0a70304b24fed06ef44470b613cdb251" - }, - "required_dependencies": [ - "328085" - ], - "size": 1583476, - "date_published": "2025-08-18T21:47:44.397Z" - }, { "type": "modrinth", - "file_name": "createaddition-1.20.1-1.3.1.jar", + "file_name": "createaddition-1.20.1-1.3.3.jar", "mc_versions": [ "1.20.1" ], @@ -3611,18 +3588,41 @@ "forge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/kU1G12Nn/versions/SecVSw22/createaddition-1.20.1-1.3.1.jar", - "id": "SecVSw22", + "url": "https://cdn.modrinth.com/data/kU1G12Nn/versions/9LgyB6Yb/createaddition-1.20.1-1.3.3.jar", + "id": "9LgyB6Yb", "parent_id": "kU1G12Nn", "hashes": { - "sha512": "d9fd62d5041670e3194848624672674b2ef23a88348f30968574803786da0a56b3d34a1ab7e542d6666cd3983d88fbedce08b2c56165a464fee7e3c383c07ad5", - "sha1": "0c408317b7c3bc3c7f7d5f6dbbb3ee106fa5f4fc" + "sha512": "a34f5c3b0226069d2882a3e23ba0e364a78bc5d26983b0cecea8d998718f454d3238ab7c5b4b3ef1749b6f2b26a4e427839c7c32468558fa7a8edb0edc727d10", + "sha1": "c7d464c451fdc2979bc29a67d7eec2a30858af12" }, "required_dependencies": [ "LNytGWDc" ], - "size": 1547196, - "date_published": "2025-03-22T16:14:26.357192Z" + "size": 1577313, + "date_published": "2025-11-10T23:46:17.426080Z" + }, + { + "type": "curseforge", + "file_name": "createaddition-1.20.1-1.3.3.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/7208/610/createaddition-1.20.1-1.3.3.jar", + "id": "7208610", + "parent_id": "439890", + "hashes": { + "sha1": "c7d464c451fdc2979bc29a67d7eec2a30858af12", + "md5": "1c0d2275ead3e4756d77ac5a86f135ab" + }, + "required_dependencies": [ + "328085" + ], + "size": 1577313, + "date_published": "2025-11-10T23:45:16.187Z" } ] }, @@ -3767,30 +3767,9 @@ "modrinth": "9Qm19XSM" }, "files": [ - { - "type": "curseforge", - "file_name": "createhorsepower-1.0.1.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "forge" - ], - "release_type": "release", - "url": "https://edge.forgecdn.net/files/6514/772/createhorsepower-1.0.1.jar", - "id": "6514772", - "parent_id": "1121632", - "hashes": { - "sha1": "8ff20e3a91d86f5b188ff11a0aca979c62f21a53", - "md5": "1808ba5a8e918ade9fa41a9bcd490ce7" - }, - "required_dependencies": [], - "size": 258705, - "date_published": "2025-05-10T04:44:32.127Z" - }, { "type": "modrinth", - "file_name": "createhorsepower-1.0.1.jar", + "file_name": "createhorsepower-1.20.1-1.1.0.jar", "mc_versions": [ "1.20.1" ], @@ -3798,18 +3777,40 @@ "forge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/9Qm19XSM/versions/U0KKv9fU/createhorsepower-1.0.1.jar", - "id": "U0KKv9fU", + "url": "https://cdn.modrinth.com/data/9Qm19XSM/versions/bHSeI5kR/createhorsepower-1.20.1-1.1.0.jar", + "id": "bHSeI5kR", "parent_id": "9Qm19XSM", "hashes": { - "sha512": "4a8a30e5601783d214e96310cd71447054f0d2ac7545e7996b15161184ae4cace8fa556e84728aee3d37b639de029ca6c5d6cca3d12f637eb26c6aa77a9c819c", - "sha1": "8ff20e3a91d86f5b188ff11a0aca979c62f21a53" + "sha512": "8bb9e3d2b9e327709e26e247210efc10db6ade1a13156175d39729fe8bafae5e75f7c9104b03ce7c358bad40dcee767c1181bd8340f2e5ec314a36fc2822abdb", + "sha1": "b4a5802ec8e5c1eef4fe69b9ca973eb7fe02ace9" }, "required_dependencies": [ - "LNytGWDc" + "LNytGWDc", + "u6dRKJwZ" ], - "size": 258705, - "date_published": "2025-05-10T04:41:21.145727Z" + "size": 259693, + "date_published": "2025-11-25T04:46:17.404117Z" + }, + { + "type": "curseforge", + "file_name": "createhorsepower-1.20.1-1.1.0.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/7259/899/createhorsepower-1.20.1-1.1.0.jar", + "id": "7259899", + "parent_id": "1121632", + "hashes": { + "sha1": "b4a5802ec8e5c1eef4fe69b9ca973eb7fe02ace9", + "md5": "4d2d9e1f33a934e7c60f734b9d848dc3" + }, + "required_dependencies": [], + "size": 259693, + "date_published": "2025-11-25T04:44:48.007Z" } ] }, @@ -3874,7 +3875,7 @@ "files": [ { "type": "modrinth", - "file_name": "create_connected-1.1.9-mc1.20.1-all.jar", + "file_name": "create_connected-1.1.10-mc1.20.1-all.jar", "mc_versions": [ "1.20.1" ], @@ -3883,42 +3884,42 @@ "neoforge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/Vg5TIO6d/versions/j8VEpPsE/create_connected-1.1.9-mc1.20.1-all.jar", - "id": "j8VEpPsE", + "url": "https://cdn.modrinth.com/data/Vg5TIO6d/versions/saiZ8AwJ/create_connected-1.1.10-mc1.20.1-all.jar", + "id": "saiZ8AwJ", "parent_id": "Vg5TIO6d", "hashes": { - "sha512": "008704b7f5aba95ad9f83d53494c45d660c6e112abc116c54f4fd6c33bcd3b94b87beceae729dbccd28fba331722e80b2cddc5171e03e2f2159a2ece23ae074d", - "sha1": "8ecff58c8516e5c624ac060cd06b2200deb342a9" + "sha512": "0b885e09e0f074051120669337e0f53f42ca43a244cfde02f90b43da5a09853f92715371a9377c542886a673aefeda6f01becd3cb4b1e012d300618f1e33dce8", + "sha1": "329b9417c0fd52f0a5a153de31d7d075c521e900" }, "required_dependencies": [ "LNytGWDc" ], - "size": 6566808, - "date_published": "2025-11-09T08:44:57.079900Z" + "size": 6567116, + "date_published": "2025-11-23T02:14:34.172787Z" }, { "type": "curseforge", - "file_name": "create_connected-1.1.9-mc1.20.1-all.jar", + "file_name": "create_connected-1.1.10-mc1.20.1-all.jar", "mc_versions": [ "1.20.1" ], "loaders": [ - "neoforge", - "forge" + "forge", + "neoforge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/7201/963/create_connected-1.1.9-mc1.20.1-all.jar", - "id": "7201963", + "url": "https://edge.forgecdn.net/files/7251/637/create_connected-1.1.10-mc1.20.1-all.jar", + "id": "7251637", "parent_id": "947914", "hashes": { - "sha1": "8ecff58c8516e5c624ac060cd06b2200deb342a9", - "md5": "a272e0f472171f9f47c296d3d4045b20" + "sha1": "eea1d04aee638689a99acf66457327b13a4b3f96", + "md5": "b119043b5504991e86a5d7d06734f49b" }, "required_dependencies": [ "328085" ], - "size": 6566808, - "date_published": "2025-11-09T08:44:56.310Z" + "size": 6567117, + "date_published": "2025-11-23T02:14:45.303Z" } ] }, @@ -3944,7 +3945,7 @@ "files": [ { "type": "modrinth", - "file_name": "create_hypertube-0.2.6-hotfix-FORGE.jar", + "file_name": "create_hypertube-0.3.0-FORGE.jar", "mc_versions": [ "1.20.1", "1.20.2", @@ -3954,45 +3955,46 @@ "1.20.6" ], "loaders": [ - "forge" + "forge", + "neoforge" ], "release_type": "beta", - "url": "https://cdn.modrinth.com/data/ATDdrG1y/versions/iRjDdZIt/create_hypertube-0.2.6-hotfix-FORGE.jar", - "id": "iRjDdZIt", + "url": "https://cdn.modrinth.com/data/ATDdrG1y/versions/pX1oNdBc/create_hypertube-0.3.0-FORGE.jar", + "id": "pX1oNdBc", "parent_id": "ATDdrG1y", "hashes": { - "sha512": "3883609379fed3cde7a046667cb1d04af5816d007bb9c875603d7fb4f3292926663dd22ecc660faa733743fb1adae52cde8dbf2667655846f6bb00af4825e748", - "sha1": "83c1728344eef7669b933e36a42a1d0e4f529ea8" + "sha512": "4ffaff34cdd31c6ff11364809992cb4f15e1e00fd3d87a5be6a9006e95ad9c4636ffbe6845ee2d59b55d20e9896bedb1e5ada699202e9b71a90195833161a140", + "sha1": "476ae93802024b766badb15e538e0cf65a2e3fbd" }, "required_dependencies": [ "LNytGWDc" ], - "size": 351225, - "date_published": "2025-10-09T14:05:53.834301Z" + "size": 390634, + "date_published": "2025-11-21T17:40:28.963108Z" }, { "type": "curseforge", - "file_name": "create_hypertube-0.2.6-hotfix-FORGE.jar", + "file_name": "create_hypertube-0.3.0-FORGE.jar", "mc_versions": [ "1.20.1" ], "loaders": [ - "neoforge", - "forge" + "forge", + "neoforge" ], "release_type": "beta", - "url": "https://edge.forgecdn.net/files/7086/642/create_hypertube-0.2.6-hotfix-FORGE.jar", - "id": "7086642", + "url": "https://edge.forgecdn.net/files/7246/344/create_hypertube-0.3.0-FORGE.jar", + "id": "7246344", "parent_id": "1281336", "hashes": { - "sha1": "83c1728344eef7669b933e36a42a1d0e4f529ea8", - "md5": "3863248ebd60a41ebf7dac874cf6e0c0" + "sha1": "476ae93802024b766badb15e538e0cf65a2e3fbd", + "md5": "7cab909e9c8de12b8c97518ca0042c1b" }, "required_dependencies": [ "328085" ], - "size": 351225, - "date_published": "2025-10-09T14:00:11.063Z" + "size": 390634, + "date_published": "2025-11-21T17:32:38.960Z" } ] }, @@ -4340,7 +4342,7 @@ "files": [ { "type": "curseforge", - "file_name": "deafission-1.20.1-0.14.0.jar", + "file_name": "deafission-1.20.1-0.15.4.jar", "mc_versions": [ "1.20.1" ], @@ -4348,19 +4350,19 @@ "forge" ], "release_type": "beta", - "url": "https://edge.forgecdn.net/files/7183/3/deafission-1.20.1-0.14.0.jar", - "id": "7183003", + "url": "https://edge.forgecdn.net/files/7305/261/deafission-1.20.1-0.15.4.jar", + "id": "7305261", "parent_id": "1354541", "hashes": { - "sha1": "be825bbade05cbb92d4036018ac2ed2afdd0c60e", - "md5": "5c75e50c6375e902b55d1d5e8443d6b8" + "sha1": "5b814421715f3f15606a4b2ecc23816432c6911c", + "md5": "64b8f3da2f95649bbef00af310fdc102" }, "required_dependencies": [ "890405", "238086" ], - "size": 291509, - "date_published": "2025-11-03T18:53:38.453Z" + "size": 415411, + "date_published": "2025-12-07T18:28:09.053Z" } ] }, @@ -4634,7 +4636,7 @@ "files": [ { "type": "modrinth", - "file_name": "diggerhelmet-1.20.1-1.0.0.24.jar", + "file_name": "diggerhelmet-1.20.1-1.0.0.25.jar", "mc_versions": [ "1.20.1" ], @@ -4643,46 +4645,46 @@ "neoforge" ], "release_type": "beta", - "url": "https://cdn.modrinth.com/data/8Aatj9Zy/versions/LOYb1iLX/diggerhelmet-1.20.1-1.0.0.24.jar", - "id": "LOYb1iLX", + "url": "https://cdn.modrinth.com/data/8Aatj9Zy/versions/T1mIzBuf/diggerhelmet-1.20.1-1.0.0.25.jar", + "id": "T1mIzBuf", "parent_id": "8Aatj9Zy", "hashes": { - "sha512": "042d2aaf48c2af72d401d1aaf961162545def9217b38e0fb52ff2d6879efd54af9320d499caa0cc1175ecc0442099486c1504d59337c10359feaed0960eb66c0", - "sha1": "3faf8dcea2520a247d983dcb16ad43ab1e495bf4" + "sha512": "471e84a1fa896565e65619645d78945ebafff246661fbc851ec84a18f2bb575a75a31cea381544125ce36530fc486570e07b47f813fb063f71339238964bf8d6", + "sha1": "8c49656e74daa66fd8e1c9170fab72493aaa21dd" }, "required_dependencies": [ + "JaCEZUhg", "vvuO3ImH", - "8BmcQJ2H", - "JaCEZUhg" + "8BmcQJ2H" ], - "size": 211958, - "date_published": "2025-10-16T10:59:42.921213Z" + "size": 232711, + "date_published": "2025-10-26T03:39:53.401428Z" }, { "type": "curseforge", - "file_name": "diggerhelmet-1.20.1-1.0.0.25.jar", + "file_name": "diggerhelmet-1.20.1-1.0.0.26.jar", "mc_versions": [ "1.20.1" ], "loaders": [ - "neoforge", - "forge" + "forge", + "neoforge" ], "release_type": "beta", - "url": "https://edge.forgecdn.net/files/7132/920/diggerhelmet-1.20.1-1.0.0.25.jar", - "id": "7132920", + "url": "https://edge.forgecdn.net/files/7290/228/diggerhelmet-1.20.1-1.0.0.26.jar", + "id": "7290228", "parent_id": "1243596", "hashes": { - "sha1": "8c49656e74daa66fd8e1c9170fab72493aaa21dd", - "md5": "7209f67f6e71313209e12d76313efc22" + "sha1": "3fe3d9911069db3c0d816bdbbed01193ba880087", + "md5": "cd1ea215f760b776c3bf48e93188de04" }, "required_dependencies": [ - "302973", "309927", - "388172" + "388172", + "302973" ], - "size": 232711, - "date_published": "2025-10-21T12:56:28.140Z" + "size": 233928, + "date_published": "2025-12-03T15:49:31.887Z" } ] }, @@ -4808,33 +4810,9 @@ "modrinth": "v3CYg2V9" }, "files": [ - { - "type": "curseforge", - "file_name": "drippyloadingscreen_forge_3.0.12_MC_1.20.1.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "forge" - ], - "release_type": "release", - "url": "https://edge.forgecdn.net/files/6412/211/drippyloadingscreen_forge_3.0.12_MC_1.20.1.jar", - "id": "6412211", - "parent_id": "511770", - "hashes": { - "sha1": "ea21436917b84780835b041cd27b7f86679dc6a1", - "md5": "a8cbcca4541cb6eb794ded4a10c57ac9" - }, - "required_dependencies": [ - "410295", - "367706" - ], - "size": 239365, - "date_published": "2025-04-11T20:29:43.010Z" - }, { "type": "modrinth", - "file_name": "drippyloadingscreen_forge_3.0.12_MC_1.20.1.jar", + "file_name": "drippyloadingscreen_forge_3.1.0_MC_1.20.1.jar", "mc_versions": [ "1.20.1" ], @@ -4842,19 +4820,43 @@ "forge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/v3CYg2V9/versions/SCbkqLQR/drippyloadingscreen_forge_3.0.12_MC_1.20.1.jar", - "id": "SCbkqLQR", + "url": "https://cdn.modrinth.com/data/v3CYg2V9/versions/68GEZSYA/drippyloadingscreen_forge_3.1.0_MC_1.20.1.jar", + "id": "68GEZSYA", "parent_id": "v3CYg2V9", "hashes": { - "sha512": "b253926f9faab8ae069bb6cf4a5380ff3cc04071d44216ebc8cd032f68a4ae760320a03059fe5fa2daf6563f6fa39e90fc659b6e64bae94079ae8e74ae8342d5", - "sha1": "ea21436917b84780835b041cd27b7f86679dc6a1" + "sha512": "a40bc04b995c5ff5ec5ab6e999925296c613213de0db301b5171d7379672b28050d961556d6e5d41396d5493bdcd20a74fbeefe40b29bf61d74a465f6c71d13d", + "sha1": "5c5e9dd39881b9b65dba7d7124690c51430a3ff1" }, "required_dependencies": [ - "J81TRJWm", - "Wq5SjeWM" + "Wq5SjeWM", + "J81TRJWm" ], - "size": 239365, - "date_published": "2025-04-11T20:29:48.819686Z" + "size": 285003, + "date_published": "2025-11-22T07:39:16.928909Z" + }, + { + "type": "curseforge", + "file_name": "drippyloadingscreen_forge_3.1.0_MC_1.20.1.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/7248/426/drippyloadingscreen_forge_3.1.0_MC_1.20.1.jar", + "id": "7248426", + "parent_id": "511770", + "hashes": { + "sha1": "5c5e9dd39881b9b65dba7d7124690c51430a3ff1", + "md5": "029b16e576071b67f3de0df7215a1062" + }, + "required_dependencies": [ + "367706", + "410295" + ], + "size": 285003, + "date_published": "2025-11-22T07:39:11.367Z" } ] }, @@ -5273,7 +5275,7 @@ "files": [ { "type": "modrinth", - "file_name": "everycomp-1.20-2.9.9-forge.jar", + "file_name": "everycomp-1.20-2.9.12-forge.jar", "mc_versions": [ "1.20.1" ], @@ -5281,22 +5283,22 @@ "forge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/eiktJyw1/versions/S6PhzmO8/everycomp-1.20-2.9.9-forge.jar", - "id": "S6PhzmO8", + "url": "https://cdn.modrinth.com/data/eiktJyw1/versions/Wa7DK8Yb/everycomp-1.20-2.9.12-forge.jar", + "id": "Wa7DK8Yb", "parent_id": "eiktJyw1", "hashes": { - "sha512": "cc4b0ddd47f421b1d045e755912c1118f5db60f2c699266576c4302162e753bc11537d8c5c31416f95566d5df42de3edfd781704df1108ba286dc6e3e40d856c", - "sha1": "666eb792088684bf576a71c20eb24f654abb51fa" + "sha512": "db03a2c4724a347428ba15c7a8979838aea8e92d221db16baba0b2a05a59d774b9da24791063060000244de9a2eaa9b4ea3e208cbbea91a7eed044b3b3a763db", + "sha1": "1a9fab9e9273ab45f0a312b7a71aeade41716a4a" }, "required_dependencies": [ "twkfQtEc" ], - "size": 2792770, - "date_published": "2025-10-26T21:32:31.262632Z" + "size": 2807757, + "date_published": "2025-11-21T09:08:18.503085Z" }, { "type": "curseforge", - "file_name": "everycomp-1.20-2.9.9-forge.jar", + "file_name": "everycomp-1.20-2.9.12-forge.jar", "mc_versions": [ "1.20.1" ], @@ -5304,18 +5306,18 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/7153/995/everycomp-1.20-2.9.9-forge.jar", - "id": "7153995", + "url": "https://edge.forgecdn.net/files/7245/151/everycomp-1.20-2.9.12-forge.jar", + "id": "7245151", "parent_id": "628539", "hashes": { - "sha1": "666eb792088684bf576a71c20eb24f654abb51fa", - "md5": "39370d9743ad8a57f7d6121efaa9d769" + "sha1": "1a9fab9e9273ab45f0a312b7a71aeade41716a4a", + "md5": "85cf20ae4cbe5ac2f13b489258cb15f8" }, "required_dependencies": [ "499980" ], - "size": 2792770, - "date_published": "2025-10-26T21:32:18.910Z" + "size": 2807757, + "date_published": "2025-11-21T09:08:07.257Z" } ] }, @@ -5405,29 +5407,29 @@ "files": [ { "type": "curseforge", - "file_name": "ExtendedAE-1.20-1.4.8-forge.jar", + "file_name": "ExtendedAE-1.20-1.4.9-forge.jar", "mc_versions": [ "1.20.1" ], "loaders": [ - "neoforge", - "forge" + "forge", + "neoforge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/7144/417/ExtendedAE-1.20-1.4.8-forge.jar", - "id": "7144417", + "url": "https://edge.forgecdn.net/files/7248/944/ExtendedAE-1.20-1.4.9-forge.jar", + "id": "7248944", "parent_id": "892005", "hashes": { - "sha1": "a21a3d004276fac47a7d0c18424f3583e7fab3c4", - "md5": "c8017c9e6e53c98c337cfc45d9a5153d" + "sha1": "55a8c773659036176142242ded460a4b88ee6fb0", + "md5": "25b69893094daf52bd8b77964404bfdc" }, "required_dependencies": [ + "957920", "223794", - "1173950", - "957920" + "1173950" ], - "size": 2667284, - "date_published": "2025-10-24T14:19:14.703Z" + "size": 2672648, + "date_published": "2025-11-22T11:56:02.143Z" } ] }, @@ -5756,7 +5758,7 @@ "files": [ { "type": "curseforge", - "file_name": "ftb-library-forge-2001.2.10.jar", + "file_name": "ftb-library-forge-2001.2.12.jar", "mc_versions": [ "1.20.1" ], @@ -5764,18 +5766,18 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/6807/424/ftb-library-forge-2001.2.10.jar", - "id": "6807424", + "url": "https://edge.forgecdn.net/files/7296/748/ftb-library-forge-2001.2.12.jar", + "id": "7296748", "parent_id": "404465", "hashes": { - "sha1": "9472bb30d0e38cb774b9cc7852bdd8dbf845622b", - "md5": "ae5292127a5a0d85d793bbce8f1e24dd" + "sha1": "7f36ec4af42ad1d69872c58022e93a9d1b9c82b7", + "md5": "8bbd067159587d80f1c5286ea52e567b" }, "required_dependencies": [ "419699" ], - "size": 791875, - "date_published": "2025-07-24T16:54:08.133Z" + "size": 780523, + "date_published": "2025-12-05T12:02:22.023Z" } ] }, @@ -5791,7 +5793,7 @@ "curseforge": "ftb-quests-forge" }, "name": { - "curseforge": "FTB Quests (Forge)" + "curseforge": "FTB Quests (NeoForge)" }, "id": { "curseforge": "289412" @@ -5800,7 +5802,7 @@ "files": [ { "type": "curseforge", - "file_name": "ftb-quests-forge-2001.4.14.jar", + "file_name": "ftb-quests-forge-2001.4.17.jar", "mc_versions": [ "1.20.1" ], @@ -5808,20 +5810,20 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/6829/212/ftb-quests-forge-2001.4.14.jar", - "id": "6829212", + "url": "https://edge.forgecdn.net/files/7260/736/ftb-quests-forge-2001.4.17.jar", + "id": "7260736", "parent_id": "289412", "hashes": { - "sha1": "479d9ad654984f5cedf23c14a311f3cff4efbcb7", - "md5": "a02b8885bc618a54f41885ddb24e2d8f" + "sha1": "f7e4fec8991ce2b036ed4628e01fb48446a25ec7", + "md5": "35f79e8e8b0849d6038cd4cd9c86b08a" }, "required_dependencies": [ - "419699", + "404468", "404465", - "404468" + "419699" ], - "size": 1222711, - "date_published": "2025-07-30T15:39:30.857Z" + "size": 1227820, + "date_published": "2025-11-25T11:37:06.847Z" } ] }, @@ -5980,33 +5982,9 @@ "modrinth": "Wq5SjeWM" }, "files": [ - { - "type": "curseforge", - "file_name": "fancymenu_forge_3.7.0_MC_1.20.1.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "forge" - ], - "release_type": "release", - "url": "https://edge.forgecdn.net/files/6918/987/fancymenu_forge_3.7.0_MC_1.20.1.jar", - "id": "6918987", - "parent_id": "367706", - "hashes": { - "sha1": "f33a40f7d33585e781d90d00d156178e369ae8ed", - "md5": "365e76a8d99085a1ac942c2b46125508" - }, - "required_dependencies": [ - "410295", - "938643" - ], - "size": 3628603, - "date_published": "2025-08-23T14:52:56.903Z" - }, { "type": "modrinth", - "file_name": "fancymenu_forge_3.7.0_MC_1.20.1.jar", + "file_name": "fancymenu_forge_3.8.1_MC_1.20.1.jar", "mc_versions": [ "1.20.1" ], @@ -6014,19 +5992,43 @@ "forge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/Wq5SjeWM/versions/MbyfTTsz/fancymenu_forge_3.7.0_MC_1.20.1.jar", - "id": "MbyfTTsz", + "url": "https://cdn.modrinth.com/data/Wq5SjeWM/versions/MywA2BxT/fancymenu_forge_3.8.1_MC_1.20.1.jar", + "id": "MywA2BxT", "parent_id": "Wq5SjeWM", "hashes": { - "sha512": "00579685f38e30eaeaf2ab01c23ea72b53ef03245e46be35297e0955383e070a92983ec5ca2043592fcf34213d3cf9ae8e82165187da7d3b32d84b65c9d054fa", - "sha1": "f33a40f7d33585e781d90d00d156178e369ae8ed" + "sha512": "71aca039cd5eb81f7a169df32473465e6bbd13f88b703de68475298f5dbf76bc85787ecd6b786a049cb7e6bf2426dac254424abd15c1900d9d520276f7d63ad9", + "sha1": "1fef1d8ab0dc2dec116bc6d6cb6f789fd33b23b0" }, "required_dependencies": [ - "CVT4pFB2", - "J81TRJWm" + "J81TRJWm", + "CVT4pFB2" ], - "size": 3628603, - "date_published": "2025-08-23T14:53:05.096476Z" + "size": 4472193, + "date_published": "2025-11-24T08:24:19.760480Z" + }, + { + "type": "curseforge", + "file_name": "fancymenu_forge_3.8.1_MC_1.20.1.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/7256/735/fancymenu_forge_3.8.1_MC_1.20.1.jar", + "id": "7256735", + "parent_id": "367706", + "hashes": { + "sha1": "1fef1d8ab0dc2dec116bc6d6cb6f789fd33b23b0", + "md5": "bf41a4251d431d92b89b6c91f84d5546" + }, + "required_dependencies": [ + "938643", + "410295" + ], + "size": 4472193, + "date_published": "2025-11-24T08:24:12.380Z" } ] }, @@ -6741,6 +6743,27 @@ "modrinth": "8BmcQJ2H" }, "files": [ + { + "type": "modrinth", + "file_name": "geckolib-forge-1.20.1-4.8.2.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/8BmcQJ2H/versions/aVW7Z5da/geckolib-forge-1.20.1-4.8.2.jar", + "id": "aVW7Z5da", + "parent_id": "8BmcQJ2H", + "hashes": { + "sha512": "8d8cb1f2d60c885b3b312aca63b94e3942e50ca40e96514f35fb74a39367afa07e4986640a66c66b035da9ea60cb6d8ff602e9c0b6b298e5ce584ad9f46a2f45", + "sha1": "395a9f21a36dc8466d67c2af67a904e7013460d1" + }, + "required_dependencies": [], + "size": 1038979, + "date_published": "2025-09-23T10:09:01.034935Z" + }, { "type": "curseforge", "file_name": "geckolib-forge-1.20.1-4.7.jar", @@ -6762,27 +6785,6 @@ "required_dependencies": [], "size": 1004042, "date_published": "2024-12-27T16:27:17.200Z" - }, - { - "type": "modrinth", - "file_name": "geckolib-forge-1.20.1-4.7.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "forge" - ], - "release_type": "release", - "url": "https://cdn.modrinth.com/data/8BmcQJ2H/versions/LwI6czff/geckolib-forge-1.20.1-4.7.jar", - "id": "LwI6czff", - "parent_id": "8BmcQJ2H", - "hashes": { - "sha512": "4efd2d70533d73fc70012b0969bac9fb6035a4ebcc8b6ccb692321456bcc044da93a12b44392fca3c607889c134acd41db9e0fed376151a46d5391c56881a149", - "sha1": "451226923e02ac708b8fe59d75a2f9a28cc7e467" - }, - "required_dependencies": [], - "size": 1004043, - "date_published": "2024-12-27T16:27:02.907556Z" } ] }, @@ -6944,7 +6946,7 @@ "files": [ { "type": "modrinth", - "file_name": "greate-0.0.54.jar", + "file_name": "greate-0.0.57.jar", "mc_versions": [ "1.20.1" ], @@ -6953,44 +6955,44 @@ "neoforge" ], "release_type": "alpha", - "url": "https://cdn.modrinth.com/data/8wDcQuht/versions/wqUKZ5yH/greate-0.0.54.jar", - "id": "wqUKZ5yH", + "url": "https://cdn.modrinth.com/data/8wDcQuht/versions/D1FDmRDa/greate-0.0.57.jar", + "id": "D1FDmRDa", "parent_id": "8wDcQuht", "hashes": { - "sha512": "5c98f96e0b442ffd97434337dd2c9b8bd6c84d4de179ddf1c38d3346521ca7fe11e12f813c438e1348c1b0e6000f0d0c1b498ae9c46c955b112858f291ab1156", - "sha1": "09c0d610b6989fe68f6ab98cc97ff2bb3894032f" + "sha512": "47b814782e431dc9dc8f17cc6591c6fc8874f094d80b311065e3b6bebed8d8559313d7de3b8613b17c66bf6f2c1311141995e65a34bced89ff862d0d2a0696c6", + "sha1": "de882a9d6be660e27834823ce33caaaca834d24c" }, "required_dependencies": [ - "7tG215v7", - "LNytGWDc" + "LNytGWDc", + "7tG215v7" ], - "size": 1518975, - "date_published": "2025-11-04T01:46:16.009732Z" + "size": 1518380, + "date_published": "2025-11-25T19:56:33.474491Z" }, { "type": "curseforge", - "file_name": "greate-0.0.54.jar", + "file_name": "greate-0.0.57.jar", "mc_versions": [ "1.20.1" ], "loaders": [ - "neoforge", - "forge" + "forge", + "neoforge" ], "release_type": "alpha", - "url": "https://edge.forgecdn.net/files/7184/105/greate-0.0.54.jar", - "id": "7184105", + "url": "https://edge.forgecdn.net/files/7262/33/greate-0.0.57.jar", + "id": "7262033", "parent_id": "901996", "hashes": { - "sha1": "09c0d610b6989fe68f6ab98cc97ff2bb3894032f", - "md5": "7685e598a57e31266428cecad9affc7b" + "sha1": "de882a9d6be660e27834823ce33caaaca834d24c", + "md5": "2a74c594a5e559ca63ef375f1286afda" }, "required_dependencies": [ "328085", "890405" ], - "size": 1518975, - "date_published": "2025-11-04T01:46:13.693Z" + "size": 1518380, + "date_published": "2025-11-25T19:56:30.993Z" } ] }, @@ -7013,7 +7015,7 @@ "files": [ { "type": "modrinth", - "file_name": "gtceu-1.20.1-7.2.1.jar", + "file_name": "gtceu-1.20.1-7.4.0.jar", "mc_versions": [ "1.20.1" ], @@ -7021,20 +7023,20 @@ "forge" ], "release_type": "beta", - "url": "https://cdn.modrinth.com/data/7tG215v7/versions/bf5ztbzI/gtceu-1.20.1-7.2.1.jar", - "id": "bf5ztbzI", + "url": "https://cdn.modrinth.com/data/7tG215v7/versions/Wt20eol8/gtceu-1.20.1-7.4.0.jar", + "id": "Wt20eol8", "parent_id": "7tG215v7", "hashes": { - "sha512": "2a5c670d0a581035aac0d1abdcaeef275567bed1a85d72fda260ed46c76d6f7bdc4f18f2a763839d33a710583fb15c8701000500b5cf201470832a2ffc78c01d", - "sha1": "7f99b2e1f64696da30c829d38c0bab6f5f471c24" + "sha512": "2e850a957f6f5cdb350f07cfea64906d6731a74ec7655263c4588dd7b16ee582d6479dbd73733ffcb5388df3cf4d60a91285d7fb065c9021c6e02a22c4c59cf1", + "sha1": "19c638cb4913b0581da1e518771f41965f96932f" }, "required_dependencies": [], - "size": 17992116, - "date_published": "2025-10-26T06:03:09.219616Z" + "size": 18054871, + "date_published": "2025-11-25T20:33:56.058299Z" }, { "type": "curseforge", - "file_name": "gtceu-1.20.1-7.2.1.jar", + "file_name": "gtceu-1.20.1-7.4.0.jar", "mc_versions": [ "1.20.1" ], @@ -7042,16 +7044,16 @@ "forge" ], "release_type": "beta", - "url": "https://edge.forgecdn.net/files/7150/919/gtceu-1.20.1-7.2.1.jar", - "id": "7150919", + "url": "https://edge.forgecdn.net/files/7262/157/gtceu-1.20.1-7.4.0.jar", + "id": "7262157", "parent_id": "890405", "hashes": { - "sha1": "7f99b2e1f64696da30c829d38c0bab6f5f471c24", - "md5": "7e0d9355ef6281a2ed6603b8ead98588" + "sha1": "19c638cb4913b0581da1e518771f41965f96932f", + "md5": "a5e09409a38ef3ee43702b1aad20da9d" }, "required_dependencies": [], - "size": 17992116, - "date_published": "2025-10-26T06:02:29.950Z" + "size": 18054871, + "date_published": "2025-11-25T20:33:46.053Z" } ] }, @@ -8165,35 +8167,9 @@ "modrinth": "ordsPcFz" }, "files": [ - { - "type": "curseforge", - "file_name": "kotlinforforge-4.11.0-all.jar", - "mc_versions": [ - "1.20.2", - "1.20.3", - "1.20.1", - "1.20", - "1.20.4" - ], - "loaders": [ - "neoforge", - "forge" - ], - "release_type": "release", - "url": "https://edge.forgecdn.net/files/5402/61/kotlinforforge-4.11.0-all.jar", - "id": "5402061", - "parent_id": "351264", - "hashes": { - "sha1": "1fd8acfd75a2be2dc3cdcc7e816482b2e427d6e5", - "md5": "417caa90d17dc86cf7d24b802c2a5c56" - }, - "required_dependencies": [], - "size": 7193768, - "date_published": "2024-06-05T23:45:43.380Z" - }, { "type": "modrinth", - "file_name": "kotlinforforge-4.11.0-all.jar", + "file_name": "kotlinforforge-4.12.0-all.jar", "mc_versions": [ "1.19.3", "1.19.4", @@ -8208,16 +8184,42 @@ "neoforge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/ordsPcFz/versions/hmeyC41q/kotlinforforge-4.11.0-all.jar", - "id": "hmeyC41q", + "url": "https://cdn.modrinth.com/data/ordsPcFz/versions/Zsh14XeQ/kotlinforforge-4.12.0-all.jar", + "id": "Zsh14XeQ", "parent_id": "ordsPcFz", "hashes": { - "sha512": "d72707078f0c4fde78981c638ca976722f22a64ce74bdb489258790fe9886d763a7b1e0dfbc5429ddd3105d8a65d177f06242dfb1457e219e56c70dd3e8cbf2c", - "sha1": "1fd8acfd75a2be2dc3cdcc7e816482b2e427d6e5" + "sha512": "767f40030ed4b370a3838fa65ae1b79974f31979342fff7cc834a0d5f39eb28612642519352ff2a1dd5226ce1f745f8b3156ee3625ffde01219137d064c1ee40", + "sha1": "962fdb760409d6d71cbf079235f1ca94e3863a22" }, "required_dependencies": [], - "size": 7193768, - "date_published": "2024-06-06T01:10:20.253226Z" + "size": 7442998, + "date_published": "2025-12-03T19:48:01.561702Z" + }, + { + "type": "curseforge", + "file_name": "kotlinforforge-4.12.0-all.jar", + "mc_versions": [ + "1.20.2", + "1.20.1", + "1.20", + "1.20.4", + "1.20.3" + ], + "loaders": [ + "forge", + "neoforge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/7291/67/kotlinforforge-4.12.0-all.jar", + "id": "7291067", + "parent_id": "351264", + "hashes": { + "sha1": "962fdb760409d6d71cbf079235f1ca94e3863a22", + "md5": "d6a40dede74edbe646b34a1bafd53b4d" + }, + "required_dependencies": [], + "size": 7442998, + "date_published": "2025-12-03T19:47:08.457Z" } ] }, @@ -8813,7 +8815,7 @@ "files": [ { "type": "modrinth", - "file_name": "lootr-forge-1.20-0.7.35.93.jar", + "file_name": "lootr-forge-1.20-0.7.35.94.jar", "mc_versions": [ "1.20", "1.20.1" @@ -8822,20 +8824,20 @@ "forge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/EltpO5cN/versions/pvIQeqjt/lootr-forge-1.20-0.7.35.93.jar", - "id": "pvIQeqjt", + "url": "https://cdn.modrinth.com/data/EltpO5cN/versions/mWTXC1ZX/lootr-forge-1.20-0.7.35.94.jar", + "id": "mWTXC1ZX", "parent_id": "EltpO5cN", "hashes": { - "sha512": "5080f9a48e4dfa9854de5f21584dba62e75bdb064bab3974c7a427072435740d04e63c548ff27eda0fc30d163c26595034833e6703edb8ca54a3994c06ae53fb", - "sha1": "a109f9d34f39af38a394a58fc506583eb078704d" + "sha512": "a04c6371376bfdac2b10cbb2bb9af7ded10ac26faaeb252b59aab2f02c2b2064c2c4ab665fb6ea218243e89d6f237d878c6951638bb948edead2c0a604dd023a", + "sha1": "1ec77a7df8adbf3290a296bf25b8f99f37a60020" }, "required_dependencies": [], - "size": 460882, - "date_published": "2025-09-04T02:32:15.399196Z" + "size": 463485, + "date_published": "2025-11-26T03:16:17.725541Z" }, { "type": "curseforge", - "file_name": "lootr-forge-1.20-0.7.35.93.jar", + "file_name": "lootr-forge-1.20-0.7.35.94.jar", "mc_versions": [ "1.20.1", "1.20" @@ -8844,16 +8846,16 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/6961/345/lootr-forge-1.20-0.7.35.93.jar", - "id": "6961345", + "url": "https://edge.forgecdn.net/files/7263/76/lootr-forge-1.20-0.7.35.94.jar", + "id": "7263076", "parent_id": "361276", "hashes": { - "sha1": "a109f9d34f39af38a394a58fc506583eb078704d", - "md5": "2d5374b809d9ec1d7700a194b2fd0dd5" + "sha1": "1ec77a7df8adbf3290a296bf25b8f99f37a60020", + "md5": "56dd6966de4ba641cf00ef5b9ce8d2d7" }, "required_dependencies": [], - "size": 460882, - "date_published": "2025-09-04T02:28:45.837Z" + "size": 463485, + "date_published": "2025-11-26T03:14:51.900Z" } ] }, @@ -10148,7 +10150,7 @@ "files": [ { "type": "modrinth", - "file_name": "packetfixer-3.3.0-1.18-1.20.4-merged.jar", + "file_name": "packetfixer-3.3.1-1.18-1.20.4-merged.jar", "mc_versions": [ "1.18", "1.18.1", @@ -10171,44 +10173,44 @@ "quilt" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/c7m1mi73/versions/Jt7R7s5s/packetfixer-3.3.0-1.18-1.20.4-merged.jar", - "id": "Jt7R7s5s", + "url": "https://cdn.modrinth.com/data/c7m1mi73/versions/96y8nmkX/packetfixer-3.3.1-1.18-1.20.4-merged.jar", + "id": "96y8nmkX", "parent_id": "c7m1mi73", "hashes": { - "sha512": "0f86b9b03672e67e5eac23146bfc56a536f8985daecaec3bf089ee489240b5afec1571c733fc058c335fdd9e8ace94796c257e4c59a33be7cf1dcba32009c2a1", - "sha1": "e07b58008aeae90d61c5324c740cbbd66bbb34e3" + "sha512": "e098addf143dafa9e516ad07cb0ddaa489035e19c306e6f78b0afef6f776ce27d2386f2ede1879bb477e420ca8a00831f099f1a92a508e3085a45fbb87103405", + "sha1": "0bef29023c8cadb2934d78a8b0066b49d4460974" }, "required_dependencies": [], - "size": 190422, - "date_published": "2025-08-29T08:29:49.302535Z" + "size": 188673, + "date_published": "2025-11-14T17:34:13.517155Z" }, { "type": "curseforge", - "file_name": "packetfixer-3.3.0-1.18-1.20.4-merged.jar", + "file_name": "packetfixer-3.3.1-1.18-1.20.4-merged.jar", "mc_versions": [ "1.20.2", - "1.20.3", "1.20.1", "1.20", - "1.20.4" + "1.20.4", + "1.20.3" ], "loaders": [ "fabric", - "neoforge", "forge", + "neoforge", "quilt" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/6940/439/packetfixer-3.3.0-1.18-1.20.4-merged.jar", - "id": "6940439", + "url": "https://edge.forgecdn.net/files/7221/527/packetfixer-3.3.1-1.18-1.20.4-merged.jar", + "id": "7221527", "parent_id": "689467", "hashes": { - "sha1": "e07b58008aeae90d61c5324c740cbbd66bbb34e3", - "md5": "75045a749fde88dc20972e34bb815f29" + "sha1": "0bef29023c8cadb2934d78a8b0066b49d4460974", + "md5": "da8492dc74813d847ba128c23253c376" }, "required_dependencies": [], - "size": 190422, - "date_published": "2025-08-29T08:31:50.963Z" + "size": 188673, + "date_published": "2025-11-14T17:30:18.777Z" } ] }, @@ -10819,8 +10821,8 @@ }, "files": [ { - "type": "curseforge", - "file_name": "primitive creatures V2.2 1.20.1 .jar", + "type": "modrinth", + "file_name": "primitive_creatures_2.7forge1.20.1.jar", "mc_versions": [ "1.20.1" ], @@ -10828,39 +10830,39 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/7000/784/primitive creatures V2.2 1.20.1 .jar", - "id": "7000784", + "url": "https://cdn.modrinth.com/data/GfUwaZEm/versions/y7oCH4pT/primitive_creatures_2.7forge1.20.1.jar", + "id": "y7oCH4pT", + "parent_id": "GfUwaZEm", + "hashes": { + "sha512": "09ed9ac29baa8ccd0449d953747458254b2f17baa0a2526a9ed55f8199225d6ebd642813d53dc938c3b18b2cbb5dd112912cd02ea709d71c4da23ca83b5bbb59", + "sha1": "f2fb38516941ac4193282af35bc2182ca98b17f5" + }, + "required_dependencies": [], + "size": 526919, + "date_published": "2025-12-02T21:13:23.239833Z" + }, + { + "type": "curseforge", + "file_name": "primitive_creatures_2.7forge1.20.1.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/7287/434/primitive_creatures_2.7forge1.20.1.jar", + "id": "7287434", "parent_id": "1218288", "hashes": { - "sha1": "f76bde1ecf37c7111859ebb02cdef978ec370191", - "md5": "9cc3392503d06d05fe2d5fe22a64e6cf" + "sha1": "f2fb38516941ac4193282af35bc2182ca98b17f5", + "md5": "5848f8db0bc1a95133c10ff6c7dc2513" }, "required_dependencies": [ "388172" ], - "size": 525102, - "date_published": "2025-09-15T19:44:19.663Z" - }, - { - "type": "modrinth", - "file_name": "primitive creatures V2.0.4 1.20.1.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "forge" - ], - "release_type": "release", - "url": "https://cdn.modrinth.com/data/GfUwaZEm/versions/WS4cl75O/primitive creatures V2.0.4 1.20.1.jar", - "id": "WS4cl75O", - "parent_id": "GfUwaZEm", - "hashes": { - "sha512": "24066d5ac2ce72e86a8bbf11d4e860d681cc67faec01621bb368160d636c1e2121803530c3f46e829a85b4419d16fc0a4715896d11c6101f5e8ffad5a664cd6a", - "sha1": "939d37037cc19b15aa8581afa513a724268858b1" - }, - "required_dependencies": [], - "size": 501549, - "date_published": "2025-08-22T19:33:48.426929Z" + "size": 526919, + "date_published": "2025-12-02T22:23:27.723Z" } ] }, @@ -11473,7 +11475,7 @@ "files": [ { "type": "modrinth", - "file_name": "ShoulderSurfing-Forge-1.20.1-4.15.0.jar", + "file_name": "ShoulderSurfing-Forge-1.20.1-4.17.0.jar", "mc_versions": [ "1.20", "1.20.1" @@ -11482,20 +11484,20 @@ "forge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/kepjj2sy/versions/6okOewio/ShoulderSurfing-Forge-1.20.1-4.15.0.jar", - "id": "6okOewio", + "url": "https://cdn.modrinth.com/data/kepjj2sy/versions/EAmVtA50/ShoulderSurfing-Forge-1.20.1-4.17.0.jar", + "id": "EAmVtA50", "parent_id": "kepjj2sy", "hashes": { - "sha512": "02ea515a4fa94ad38e9a2fec54999998def07fa7317d602dc3fd3dedd56c94402c59d456f1d0841a6579e49b74ec907ca040eb2500f65d80b8db27bef840beb7", - "sha1": "2a95a27723ddaeb28c0e3edb139bd8980ce252b7" + "sha512": "67d14cc08a9e2c26e1df2a72283cf564b89c8235b1fc7489f2eac0665653d525f3265d9231b8e73e7de86d29359819a9089000fb24c3cb857c85579ecac8e4f5", + "sha1": "77741047e50205980a6eb518aec2514784584c09" }, "required_dependencies": [], - "size": 251309, - "date_published": "2025-11-06T20:49:38.589392Z" + "size": 263677, + "date_published": "2025-12-07T19:55:42.391935Z" }, { "type": "curseforge", - "file_name": "ShoulderSurfing-Forge-1.20.1-4.15.0.jar", + "file_name": "ShoulderSurfing-Forge-1.20.1-4.17.0.jar", "mc_versions": [ "1.20.1", "1.20" @@ -11504,16 +11506,16 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/7193/397/ShoulderSurfing-Forge-1.20.1-4.15.0.jar", - "id": "7193397", + "url": "https://edge.forgecdn.net/files/7305/583/ShoulderSurfing-Forge-1.20.1-4.17.0.jar", + "id": "7305583", "parent_id": "243190", "hashes": { - "sha1": "2a95a27723ddaeb28c0e3edb139bd8980ce252b7", - "md5": "311850730a11614852a4f253c0d20f97" + "sha1": "77741047e50205980a6eb518aec2514784584c09", + "md5": "906de79806f24c12d188126b47afa35f" }, "required_dependencies": [], - "size": 251309, - "date_published": "2025-11-06T20:49:32.400Z" + "size": 263677, + "date_published": "2025-12-07T19:55:42.833Z" } ] }, @@ -11944,7 +11946,7 @@ "files": [ { "type": "modrinth", - "file_name": "sophisticatedbackpacks-1.20.1-3.23.23.1285.jar", + "file_name": "sophisticatedbackpacks-1.20.1-3.24.12.1411.jar", "mc_versions": [ "1.20.1" ], @@ -11953,22 +11955,22 @@ "neoforge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/TyCTlI4b/versions/pHEQ4KzD/sophisticatedbackpacks-1.20.1-3.23.23.1285.jar", - "id": "pHEQ4KzD", + "url": "https://cdn.modrinth.com/data/TyCTlI4b/versions/ePNVFnS7/sophisticatedbackpacks-1.20.1-3.24.12.1411.jar", + "id": "ePNVFnS7", "parent_id": "TyCTlI4b", "hashes": { - "sha512": "c49b904fe0db57924df2e53f99115899ac0f6768725f654e758c8481cd695db55a44c7a71a2c79a0448a39067de5b19986377749d86a89bdaaebb79fea1e658f", - "sha1": "f3b47c5ce13cca89cab9f937a07e1a9502e27fdb" + "sha512": "880d192072c5ef2683fcdd65cfaa0ab1c53c2dacf2194f5d1f4f616bc482ac554bc8968e8fae016234a021c25831915d8b5f6bf17af4a670a3611ca43bcd2f31", + "sha1": "c6624f4719cfa8c15ef87860570a2748afd715da" }, "required_dependencies": [ "nmoqTijg" ], - "size": 930758, - "date_published": "2025-07-19T19:19:00.802910Z" + "size": 973366, + "date_published": "2025-10-31T10:20:39.100246Z" }, { "type": "curseforge", - "file_name": "sophisticatedbackpacks-1.20.1-3.23.23.1285.jar", + "file_name": "sophisticatedbackpacks-1.20.1-3.24.12.1411.jar", "mc_versions": [ "1.20.1" ], @@ -11977,18 +11979,18 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/6788/668/sophisticatedbackpacks-1.20.1-3.23.23.1285.jar", - "id": "6788668", + "url": "https://edge.forgecdn.net/files/7169/843/sophisticatedbackpacks-1.20.1-3.24.12.1411.jar", + "id": "7169843", "parent_id": "422301", "hashes": { - "sha1": "e0fa977420774eb50ad4ab3e9dee16bf5d79b627", - "md5": "0bb94b3bb5d4df97bca7c593cbc2abb8" + "sha1": "6fcdb6e2fc18e24cd0e65fe57961310dd2443bd9", + "md5": "a2d81606c31421d45aa3518e5471f154" }, "required_dependencies": [ "618298" ], - "size": 930758, - "date_published": "2025-07-19T19:18:44.143Z" + "size": 973366, + "date_published": "2025-10-31T10:20:22.040Z" } ] }, @@ -12011,7 +12013,7 @@ "files": [ { "type": "modrinth", - "file_name": "sophisticatedcore-1.20.1-1.2.78.1052.jar", + "file_name": "sophisticatedcore-1.20.1-1.2.107.1240.jar", "mc_versions": [ "1.20.1" ], @@ -12020,20 +12022,20 @@ "neoforge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/nmoqTijg/versions/hvAbUDQp/sophisticatedcore-1.20.1-1.2.78.1052.jar", - "id": "hvAbUDQp", + "url": "https://cdn.modrinth.com/data/nmoqTijg/versions/qpP3IdRu/sophisticatedcore-1.20.1-1.2.107.1240.jar", + "id": "qpP3IdRu", "parent_id": "nmoqTijg", "hashes": { - "sha512": "f5661cb0db3013cb970c3287d8d628de98d8cca21d46356c5198cb88af903a68aab6041cf8c8460c0a501ed523d7186869106a8a9c669a96d51c8fd1db0bb3d0", - "sha1": "fbfebafec1de249a2e8c02f9d2d289a0c4df6690" + "sha512": "64402513db4d8285732795c72712aff2944b14e91f0cce866472702622e20a65d7e9cb67988dab77383dd6a9639ae693ee43916cb5380ca5c74d309b3e50c1d8", + "sha1": "a0a8e69b482e18bc82404c57f868db06d827ffca" }, "required_dependencies": [], - "size": 1334327, - "date_published": "2025-07-27T13:23:22.968294Z" + "size": 1438965, + "date_published": "2025-10-31T05:57:49.898960Z" }, { "type": "curseforge", - "file_name": "sophisticatedcore-1.20.1-1.2.78.1052.jar", + "file_name": "sophisticatedcore-1.20.1-1.2.107.1240.jar", "mc_versions": [ "1.20.1" ], @@ -12042,16 +12044,16 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/6817/409/sophisticatedcore-1.20.1-1.2.78.1052.jar", - "id": "6817409", + "url": "https://edge.forgecdn.net/files/7169/400/sophisticatedcore-1.20.1-1.2.107.1240.jar", + "id": "7169400", "parent_id": "618298", "hashes": { - "sha1": "a854d7bb990f2ed960cc39e74f0a5e92e4f03747", - "md5": "2e44d4484ab623276362e076c6dec66b" + "sha1": "bd25a3a9d1b4a6e25b4087b58c0cd3a9564a78a7", + "md5": "fbc7db24a060b7cbe715013b071d604f" }, "required_dependencies": [], - "size": 1334328, - "date_published": "2025-07-27T13:23:07.270Z" + "size": 1438965, + "date_published": "2025-10-31T05:57:33.977Z" } ] }, @@ -12110,7 +12112,7 @@ "files": [ { "type": "modrinth", - "file_name": "sound-physics-remastered-forge-1.20.1-1.4.15.jar", + "file_name": "sound-physics-remastered-forge-1.20.1-1.5.1.jar", "mc_versions": [ "1.20.1" ], @@ -12118,20 +12120,20 @@ "forge" ], "release_type": "alpha", - "url": "https://cdn.modrinth.com/data/qyVF9oeo/versions/o4QlRA76/sound-physics-remastered-forge-1.20.1-1.4.15.jar", - "id": "o4QlRA76", + "url": "https://cdn.modrinth.com/data/qyVF9oeo/versions/x0sJ9PeR/sound-physics-remastered-forge-1.20.1-1.5.1.jar", + "id": "x0sJ9PeR", "parent_id": "qyVF9oeo", "hashes": { - "sha512": "bf13d3ab4df46d446067b8bf648a84c57a5c0aa134118967a85397fc732df4689e6fa15db1728995ae06c39e0bdbd54bbdff7ee044b67a1f3f513a289e47fe60", - "sha1": "990bd9caa7c4394e66d379263139495a27147a67" + "sha512": "5509a7b51ec1d57aae2af0a0200bda474539fcfe28303f3ff0158ba95b8e7a88ae023d8a9bd97d4626a6a8ce809506e19cdcb05b76e8be5bf8a0450c5d6a46b1", + "sha1": "944b4673bcab118f411d050b2cd6b693262bb664" }, "required_dependencies": [], - "size": 204487, - "date_published": "2025-07-25T07:23:13.030771Z" + "size": 206984, + "date_published": "2025-09-25T14:25:25.304739Z" }, { "type": "curseforge", - "file_name": "sound-physics-remastered-forge-1.20.1-1.4.15.jar", + "file_name": "sound-physics-remastered-forge-1.20.1-1.5.1.jar", "mc_versions": [ "1.20.1" ], @@ -12139,16 +12141,16 @@ "forge" ], "release_type": "alpha", - "url": "https://edge.forgecdn.net/files/6809/408/sound-physics-remastered-forge-1.20.1-1.4.15.jar", - "id": "6809408", + "url": "https://edge.forgecdn.net/files/7032/235/sound-physics-remastered-forge-1.20.1-1.5.1.jar", + "id": "7032235", "parent_id": "535489", "hashes": { - "sha1": "a1678721a328eb2e68c259b208e8043cca606dd5", - "md5": "bf2e072b924a55422849f6c126bd2455" + "sha1": "aef2c02392624f0a12475ada809366b12ac9ec52", + "md5": "d70031b5058fb81d2670a4039440b00f" }, "required_dependencies": [], - "size": 204486, - "date_published": "2025-07-25T07:22:50.880Z" + "size": 206984, + "date_published": "2025-09-25T14:25:13.323Z" } ] }, @@ -12400,48 +12402,49 @@ "modrinth": "K7eNiRnX" }, "files": [ - { - "type": "curseforge", - "file_name": "tfcambiental-1.20.1-3.3.1.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "neoforge", - "forge" - ], - "release_type": "release", - "url": "https://edge.forgecdn.net/files/5655/440/tfcambiental-1.20.1-3.3.1.jar", - "id": "5655440", - "parent_id": "940350", - "hashes": { - "sha1": "0837547febfc05c18e224fd8b3f9ed4eef8eb9de", - "md5": "f057f8e13adacf35c50ae52cf312ee38" - }, - "required_dependencies": [], - "size": 640068, - "date_published": "2024-08-23T09:41:25.543Z" - }, { "type": "modrinth", - "file_name": "tfcambiental-1.20.1-3.3.1.jar", + "file_name": "tfcambiental-1.20.1-3.4.0.jar", "mc_versions": [ "1.20.1" ], "loaders": [ - "forge" + "forge", + "neoforge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/K7eNiRnX/versions/to7EBq2d/tfcambiental-1.20.1-3.3.1.jar", - "id": "to7EBq2d", + "url": "https://cdn.modrinth.com/data/K7eNiRnX/versions/dSotPtx8/tfcambiental-1.20.1-3.4.0.jar", + "id": "dSotPtx8", "parent_id": "K7eNiRnX", "hashes": { - "sha512": "ad600d3731080320a4d0a3134fbdbe8041f2671c395fef73d316e8d39d1bc2672f75f583817f6389aa11c456c0508e031ad5e3b9c876ca19b605c1e107a693cb", - "sha1": "0837547febfc05c18e224fd8b3f9ed4eef8eb9de" + "sha512": "1ac37c9c4777a596a2418ff31254e59e8421793329235a6f596271d0f634858d4ba11f2e062d8e6f3dd87388b9ce7c197f4eea438eed1a0afad7f51805c22c7a", + "sha1": "4f506dcf9acd95c274225b6ea3dd7dd5cac996ab" }, "required_dependencies": [], - "size": 640068, - "date_published": "2025-07-20T08:59:11.860074Z" + "size": 646197, + "date_published": "2025-11-30T08:26:10.111188Z" + }, + { + "type": "curseforge", + "file_name": "tfcambiental-1.20.1-3.4.0.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge", + "neoforge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/7277/343/tfcambiental-1.20.1-3.4.0.jar", + "id": "7277343", + "parent_id": "940350", + "hashes": { + "sha1": "4f506dcf9acd95c274225b6ea3dd7dd5cac996ab", + "md5": "5dd04665c5c5c5386e5edc0159514bb2" + }, + "required_dependencies": [], + "size": 646197, + "date_published": "2025-11-30T08:24:10.973Z" } ] }, @@ -12725,6 +12728,74 @@ } ] }, + { + "pakku_id": "zjKgkuN1c64ZMrfV", + "pakku_links": [ + "AqNG8HNM9pfy1ges", + "64uacGcEw697jVGs" + ], + "type": "MOD", + "side": "BOTH", + "slug": { + "curseforge": "tfcgurman", + "modrinth": "tfc_gurman" + }, + "name": { + "curseforge": "TFC Gurman", + "modrinth": "TFC Gurman" + }, + "id": { + "curseforge": "1363944", + "modrinth": "ERme2o65" + }, + "files": [ + { + "type": "modrinth", + "file_name": "tfc_gurman-1.2.0.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/ERme2o65/versions/Cz4jYtUl/tfc_gurman-1.2.0.jar", + "id": "Cz4jYtUl", + "parent_id": "ERme2o65", + "hashes": { + "sha512": "ad839d5f2b963d433fd9a9ff965953c7dcbebf5a7b1f660ed5d84b440a2af047a0684b01d0391c012ca69ea8e49a9973f1d7400f40c1e16b0877c8c08f942b7e", + "sha1": "4e219504c5ca011c2ea7036d6002d30ce14085c0" + }, + "required_dependencies": [], + "size": 518871, + "date_published": "2025-11-28T21:26:28.110692Z" + }, + { + "type": "curseforge", + "file_name": "tfc_gurman-1.2.0.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/7272/449/tfc_gurman-1.2.0.jar", + "id": "7272449", + "parent_id": "1363944", + "hashes": { + "sha1": "4e219504c5ca011c2ea7036d6002d30ce14085c0", + "md5": "a10ca1fd4dd5f98f9f646d713995e95e" + }, + "required_dependencies": [ + "453394", + "302973" + ], + "size": 518871, + "date_published": "2025-11-28T21:24:49.587Z" + } + ] + }, { "pakku_id": "qsPtzQR6kvGPEfHU", "pakku_links": [ @@ -13593,33 +13664,9 @@ "modrinth": "pAcsgLW2" }, "files": [ - { - "type": "curseforge", - "file_name": "taczjs-forge-1.3.6-mc1.20.1.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "forge" - ], - "release_type": "release", - "url": "https://edge.forgecdn.net/files/6639/214/taczjs-forge-1.3.6-mc1.20.1.jar", - "id": "6639214", - "parent_id": "1130998", - "hashes": { - "sha1": "9a75526b23e2c851df20749ba1a5f3e11f90c603", - "md5": "203a8995aa6a69c6b6ec38136d8bd4b5" - }, - "required_dependencies": [ - "1028108", - "238086" - ], - "size": 90443, - "date_published": "2025-06-11T07:06:10.097Z" - }, { "type": "modrinth", - "file_name": "taczjs-forge-1.3.6-mc1.20.1.jar", + "file_name": "taczjs-forge-1.3.7-mc1.20.1.jar", "mc_versions": [ "1.20.1" ], @@ -13627,19 +13674,43 @@ "forge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/pAcsgLW2/versions/u3boO1Li/taczjs-forge-1.3.6-mc1.20.1.jar", - "id": "u3boO1Li", + "url": "https://cdn.modrinth.com/data/pAcsgLW2/versions/vV5GSjdw/taczjs-forge-1.3.7-mc1.20.1.jar", + "id": "vV5GSjdw", "parent_id": "pAcsgLW2", "hashes": { - "sha512": "02427d1396fc7eae8ebcd030739e90ab0e31aaefbaee5a4642e6ce0b3f1c51084066f74d88d988768741bd76e8b5dbcf3960250ca0f5ab901d48752531e953c9", - "sha1": "9a75526b23e2c851df20749ba1a5f3e11f90c603" + "sha512": "ef11ded5705b8eeb9d8f38800615e0c3ca05236cba6462cbf5d52dcd8dc8c6b0e3250fc021bb3475479097c9d47faf1a7466974c64006984bbeaff75b52a6c65", + "sha1": "8a97de20e31f7e863a968f82fd90e196f4b3a3b3" }, "required_dependencies": [ "umyGl7zF", "SzzJttH8" ], - "size": 90443, - "date_published": "2025-06-11T07:07:34.035734Z" + "size": 90442, + "date_published": "2025-12-02T00:14:24.346621Z" + }, + { + "type": "curseforge", + "file_name": "taczjs-forge-1.3.7-mc1.20.1.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/7284/184/taczjs-forge-1.3.7-mc1.20.1.jar", + "id": "7284184", + "parent_id": "1130998", + "hashes": { + "sha1": "8a97de20e31f7e863a968f82fd90e196f4b3a3b3", + "md5": "acdef4ed6293254878749b7c8294370d" + }, + "required_dependencies": [ + "1028108", + "238086" + ], + "size": 90442, + "date_published": "2025-12-02T01:43:33.197Z" } ] }, @@ -13667,7 +13738,7 @@ "files": [ { "type": "modrinth", - "file_name": "tacz-tweaks-2.10.0-all.jar", + "file_name": "tacz-tweaks-2.11.2-all.jar", "mc_versions": [ "1.20", "1.20.1" @@ -13676,24 +13747,24 @@ "forge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/H8peNuJG/versions/6u8Qmehi/tacz-tweaks-2.10.0-all.jar", - "id": "6u8Qmehi", + "url": "https://cdn.modrinth.com/data/H8peNuJG/versions/qD990J7Z/tacz-tweaks-2.11.2-all.jar", + "id": "qD990J7Z", "parent_id": "H8peNuJG", "hashes": { - "sha512": "9c5c35e3aa7d544f21af76e665894a8412c5252c81c0cc23736d6ec58749388af3baf6aa7aac292cf434ff974c8da4be0f7ee6beb40d6448ea9281859404cc32", - "sha1": "204a636d7e84ba8631c15f11f84be8c635e7ab4f" + "sha512": "67ab623a60951ce1d6bb9b5a9e0b7a8770b399d19c8de739a7bc7a4f3536126a232cb1292be4f7599b921c2075344dc360e6a80fabbfe6c73c775bcb77fae739", + "sha1": "889c0885b6388fc7966b956a5df4efbb1c758965" }, "required_dependencies": [ "ordsPcFz", "SzzJttH8", "1eAoo2KR" ], - "size": 1737843, - "date_published": "2025-11-05T13:18:31.842515Z" + "size": 1748066, + "date_published": "2025-12-04T12:41:22.415350Z" }, { "type": "curseforge", - "file_name": "tacz-tweaks-2.10.0-all.jar", + "file_name": "tacz-tweaks-2.11.2-all.jar", "mc_versions": [ "1.20.1", "1.20" @@ -13702,20 +13773,20 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/7188/921/tacz-tweaks-2.10.0-all.jar", - "id": "7188921", + "url": "https://edge.forgecdn.net/files/7293/523/tacz-tweaks-2.11.2-all.jar", + "id": "7293523", "parent_id": "1193263", "hashes": { - "sha1": "204a636d7e84ba8631c15f11f84be8c635e7ab4f", - "md5": "5e30e520314ac6855883f2b7b164bb8c" + "sha1": "889c0885b6388fc7966b956a5df4efbb1c758965", + "md5": "0b11bd77a8d1e56bd8673cc9946023e1" }, "required_dependencies": [ "667299", "351264", "1028108" ], - "size": 1737843, - "date_published": "2025-11-05T13:18:30.730Z" + "size": 1748066, + "date_published": "2025-12-04T12:41:22.310Z" } ] }, @@ -13809,7 +13880,7 @@ "files": [ { "type": "modrinth", - "file_name": "TerraFirmaGreg-Core-Modern-0.8.6.jar", + "file_name": "TerraFirmaGreg-Core-Modern-0.8.7.jar", "mc_versions": [ "1.20.1" ], @@ -13818,23 +13889,23 @@ "neoforge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/lNttW2Xl/versions/w34zm4Xq/TerraFirmaGreg-Core-Modern-0.8.6.jar", - "id": "w34zm4Xq", + "url": "https://cdn.modrinth.com/data/lNttW2Xl/versions/bROqTVck/TerraFirmaGreg-Core-Modern-0.8.7.jar", + "id": "bROqTVck", "parent_id": "lNttW2Xl", "hashes": { - "sha512": "677785f7b14208293f9a4ec2d1605339b47f3bd76e81daf5709fb9a19851f4a5149b590e9e2ad4a423839352946d3f976897089386da6508cfad5bd0f82e6499", - "sha1": "8c37ab2de9e8a646395b49088d21abb692e54909" + "sha512": "136f0851e89bdb911d319ed12aac0f2803d0b7d74ca18ad2fb6330ebc5965e0fee82862ea87f49901aa41783cea98a4968786b8ff2fb1503f90e3e828e79ee44", + "sha1": "c0c1a2c44998b630ad56be665017896287cf685c" }, "required_dependencies": [ - "JaCEZUhg", - "7tG215v7" + "7tG215v7", + "JaCEZUhg" ], - "size": 9283735, - "date_published": "2025-11-17T08:16:44.842196Z" + "size": 9315464, + "date_published": "2025-12-07T21:45:07.908480Z" }, { "type": "curseforge", - "file_name": "TerraFirmaGreg-Core-Modern-0.8.6.jar", + "file_name": "TerraFirmaGreg-Core-Modern-0.8.7.jar", "mc_versions": [ "1.20.1" ], @@ -13843,19 +13914,19 @@ "neoforge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/7231/807/TerraFirmaGreg-Core-Modern-0.8.6.jar", - "id": "7231807", + "url": "https://edge.forgecdn.net/files/7305/932/TerraFirmaGreg-Core-Modern-0.8.7.jar", + "id": "7305932", "parent_id": "513402", "hashes": { - "sha1": "8c37ab2de9e8a646395b49088d21abb692e54909", - "md5": "0fba8bdf94413edb751a97ed05943ca8" + "sha1": "c0c1a2c44998b630ad56be665017896287cf685c", + "md5": "e4dcd7222073266fe1188fe52ca35d5f" }, "required_dependencies": [ "302973", "890405" ], - "size": 9283735, - "date_published": "2025-11-17T08:16:39.213Z" + "size": 9315464, + "date_published": "2025-12-07T21:45:02.070Z" } ] }, @@ -14077,32 +14148,9 @@ "modrinth": "yFypjcfd" }, "files": [ - { - "type": "curseforge", - "file_name": "toomanyrecipeviewers-0.6.4+mc.20.1.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "forge" - ], - "release_type": "release", - "url": "https://edge.forgecdn.net/files/7093/9/toomanyrecipeviewers-0.6.4+mc.20.1.jar", - "id": "7093009", - "parent_id": "1194921", - "hashes": { - "sha1": "4209411389ebc078bdfcc0b54fe33163fc511ce5", - "md5": "abc53ecc7c9ead751c757bb7e3a90d26" - }, - "required_dependencies": [ - "580555" - ], - "size": 1215706, - "date_published": "2025-10-11T01:34:51.447Z" - }, { "type": "modrinth", - "file_name": "toomanyrecipeviewers-0.6.4+mc.20.1.jar", + "file_name": "toomanyrecipeviewers-0.7.0+mc.20.1.jar", "mc_versions": [ "1.20.1" ], @@ -14110,18 +14158,41 @@ "forge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/yFypjcfd/versions/8nQIjuFd/toomanyrecipeviewers-0.6.4+mc.20.1.jar", - "id": "8nQIjuFd", + "url": "https://cdn.modrinth.com/data/yFypjcfd/versions/KfDtkeCS/toomanyrecipeviewers-0.7.0+mc.20.1.jar", + "id": "KfDtkeCS", "parent_id": "yFypjcfd", "hashes": { - "sha512": "84bf6f926534687ccde30f926f687c1c9b9dd8608355d8ec8e5e90a217d49bf7141ca5969256ff091ccedadf4bb8f2d00e4810ca24431f467efc06b4643ab193", - "sha1": "4209411389ebc078bdfcc0b54fe33163fc511ce5" + "sha512": "db2d525c3d6f5b1771dc8348e74cbf60bb6406a340af043690c3800be495230b6defcad38e35a61aede43eb03eb65e599570a1b212a394b51c726db687de58f8", + "sha1": "24973cc8530188fef712d34767a27d2f001c50e6" }, "required_dependencies": [ "fRiHVvU7" ], - "size": 1215706, - "date_published": "2025-10-11T01:34:54.514399Z" + "size": 1666127, + "date_published": "2025-11-25T00:22:16.932262Z" + }, + { + "type": "curseforge", + "file_name": "toomanyrecipeviewers-0.7.0+mc.20.1.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/7259/315/toomanyrecipeviewers-0.7.0+mc.20.1.jar", + "id": "7259315", + "parent_id": "1194921", + "hashes": { + "sha1": "24973cc8530188fef712d34767a27d2f001c50e6", + "md5": "f9d556546061c90499fa6fc0c462c00e" + }, + "required_dependencies": [ + "580555" + ], + "size": 1666127, + "date_published": "2025-11-25T00:22:12.340Z" } ] }, @@ -14746,47 +14817,48 @@ "modrinth": "SzzJttH8" }, "files": [ - { - "type": "curseforge", - "file_name": "tacz-1.20.1-1.1.6-hotfix.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "forge" - ], - "release_type": "release", - "url": "https://edge.forgecdn.net/files/6654/541/tacz-1.20.1-1.1.6-hotfix.jar", - "id": "6654541", - "parent_id": "1028108", - "hashes": { - "sha1": "e951d81b5f452bcad47c20d5b491fd26f8de8ce2", - "md5": "51636447584a75f8d2db2fb930d110b1" - }, - "required_dependencies": [], - "size": 47826468, - "date_published": "2025-06-15T15:09:58.720Z" - }, { "type": "modrinth", - "file_name": "tacz-1.20.1-1.1.6-hotfix.jar", + "file_name": "tacz-1.20.1-1.1.7-release.jar", "mc_versions": [ + "1.20", "1.20.1" ], "loaders": [ "forge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/SzzJttH8/versions/quyywMZF/tacz-1.20.1-1.1.6-hotfix.jar", - "id": "quyywMZF", + "url": "https://cdn.modrinth.com/data/SzzJttH8/versions/fErpFI0g/tacz-1.20.1-1.1.7-release.jar", + "id": "fErpFI0g", "parent_id": "SzzJttH8", "hashes": { - "sha512": "2db28186cc436b2e163db822dc0632fc32d5080adea3b3a0f891255cefe007ec029acd1e477f01adf5db8de7f79d14d4afa67c31a53b8c5ceaf00ce72b5de501", - "sha1": "e951d81b5f452bcad47c20d5b491fd26f8de8ce2" + "sha512": "3f4aa30d50e75b1e4e5291c4eee59107da60355c5e4b59fc3be0bc84e611d1acf0320aa8a7b905ab42d0c464d19765e58bac16e9ad6770860c19695e887ccc94", + "sha1": "869decffc818e6ccd7d6d0d734aecfaa265e908b" }, "required_dependencies": [], - "size": 47826468, - "date_published": "2025-06-15T15:12:58.577730Z" + "size": 52403127, + "date_published": "2025-12-01T04:26:59.653447Z" + }, + { + "type": "curseforge", + "file_name": "tacz-1.20.1-1.1.7-release.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/7278/3/tacz-1.20.1-1.1.7-release.jar", + "id": "7278003", + "parent_id": "1028108", + "hashes": { + "sha1": "869decffc818e6ccd7d6d0d734aecfaa265e908b", + "md5": "27696ec987eefbec8e7ba6596e418b35" + }, + "required_dependencies": [], + "size": 52403127, + "date_published": "2025-11-30T12:53:47.060Z" } ] }, diff --git a/tacz/TACZ_CHANGELOG.md b/tacz/TACZ_CHANGELOG.md new file mode 100644 index 000000000..49e0d5b08 --- /dev/null +++ b/tacz/TACZ_CHANGELOG.md @@ -0,0 +1,133 @@ +# TACZ CHANGELOG +## TFG Version 0.11.9 +## Additions + +### "Clutch" Sniper Rifle +- True MV tier marksman Rifle +- Uses new .30-06 SLAP Ammo +- Stats + - Damage: 32 + - Ammo Capacity: 3 + - Armor Piercing: 50% + - Headshot Multi: 175% + +### "Stress" Semi Pistol +- MV tier Pistol +- Uses Rimmed Blunt Ammo +- Stats + - Damage: 8 + - Ammo Capacity: 26 + - Armor Piercing: 25% + - Headshot Multi: 120% + +### "Crank" SMG +- MV tier SMG +- Uses Rimmed Blunt Ammo +- Stats + - Damage: 8 + - Ammo Capacity: 26 + - Armor Piercing: 25% + - Headshot Multi: 120% + +### Freedom SMG +- EV tier SMG +- Uses Etched Quartz Bullets +- Stats + - Damage: 10 + - Ammo Capacity: 36 + - Armor Piercing: 25% + - Headshot Multi: 150% +## Balance Changes +## Pistols +### "Torque" Revolver +- Tier: MV -> LV +- Damage: 18 -> 12 +- Damage Falloff: + - 0-25: 18 -> 12 + - 25-50: 17 -> 11 + - 50-75: 16 -> 9 + - 75+: 16 -> 7 +- Armor Pierce: 40% -> 25% +- Headshot Multi: 200% -> 150% + +### Pride Pistol +- Armor Pierce: 20% -> 25% + +### Win-Win Pistols +- Damage: 9 -> 10 +- Damage Falloff: + - 0-15: 9 -> 10 + - 15-35: 8 -> 9 + - 35+: 7 -> 8 +- Armor Pierce: 10% -> 25% +- Headshot Multi: 125% -> 150% + +## Snipers + +### Springfield Sniper +- Damage: 35 -> 25 +- Damage Falloff: + - 0-40: 35 -> 25 + - 40-70: 28 -> 21 + - 70-100: 19 -> 17 + - 100+: 16 -> 12 + +### K30 Sniper +- Damage: 45 -> 40 +- Damage Falloff: + - 0-100: 45 -> 40 + - 100-200: 43 -> 35 + - 200+: 38 -> 30 +- Armor Pierce: 50% -> 55% +- Pierce: 3 -> 4 + +## Rifles + +### "Clockwork" Rifle +- Designation: Sniper -> Rifle +- Ammo: Rimmed Blunt -> SLAP +- Ammo Count: + - Base: 8 -> 10 + - Extend 1: 10 -> 13 + - Extend 2: 12 -> 16 + - Extend 3: 14 -> 20 +- Headshot Multi: 200% -> 150% + +### "Crane" Assault Rifle +- Ammo Count: + - Base: 10 -> 20 + - Extend 1: 20 -> 28 + - Extend 2: 30 -> 36 + - Extend 3: 40 -> 44 + +### AR77 Rifle +- Ammo Count: + - Base: 20 -> 25 + - Extend 1: 27 -> 36 + - Extend 2: 34 -> 45 + - Extend 3: 40 -> 52 +- Damage: 13 -> 14 +- Damage Falloff: + - 0-80: 13 -> 14 + - 80-160: 11 -> 12 + - 160+: 9 -> 10 + +## Machine Guns + +### "Flywheel" Machine Gun +- Ammo Count: + - Base: 50 -> 40 + - Extend 1: 65 -> 55 + - Extend 2: 80 -> 80 + - Extend 3: 100 -> 115 +- Fire Rate: 600 -> 650 +- Damage: 13 -> 12 +- Damage Falloff: + - 0-32: 13 -> 12 + - 32-64: 12 -> 11 + - 64+: 10 -> 10 + +## Ammo + +### SLAP Ammo +- Lead Nuggets -> Lead Bolts \ No newline at end of file diff --git a/tacz/ulv_guns.zip b/tacz/ulv_guns.zip index 074c170d9..c58813fc3 100644 Binary files a/tacz/ulv_guns.zip and b/tacz/ulv_guns.zip differ