From 3c72e941095b7c447268bbb016668639d6a3f24a Mon Sep 17 00:00:00 2001 From: TomPlop Date: Mon, 28 Jul 2025 15:02:05 -0400 Subject: [PATCH] Adding Nuclear Line on Mars (#1467) * Adding the Nuclear Line CPU Wafer * merge * Revert "merge" This reverts commit b29b5e324f587042a7aad01a49cfdf63b33ab7b4. * revert * Revert "revert" This reverts commit 38376879b37a1150bd84dfa524621c2ffe6350db. * no change weird things happening to me * add fluid textures * Modification of nuclear line * fix conflict for fluids * first balance change * fix conflict with recipes.rocks * Nuclear Line * Add the bromine line and more fixes * Fully added back the bromine line * Add nuclear energy line and more fixes * fix conflit * Add back the recipes change to gtceu for nuclear * revert * fix conflict * One last try * Adjust Reactor rates * Added change to uranium dust commented out until Mars Update * Remove long rod from nuclear pellet --- defaultconfigs/create-server.toml | 1086 ++++++++--------- .../block/fluids/fluid.dense_steam.png | Bin 0 -> 2375 bytes .../block/fluids/fluid.dense_steam.png.mcmeta | 45 + .../block/fluids/fluid.irradiated_steam.png | Bin 0 -> 6687 bytes .../fluids/fluid.irradiated_steam.png.mcmeta | 45 + .../block/fluids/fluid.nuclear_waste.png | Bin 0 -> 28120 bytes .../fluids/fluid.nuclear_waste.png.mcmeta | 87 ++ .../block/fluids/fluid.radioactive_steam.png | Bin 0 -> 2409 bytes .../fluids/fluid.radioactive_steam.png.mcmeta | 45 + .../block/fluids/fluid.radioactive_waste.png | Bin 0 -> 9427 bytes .../fluids/fluid.radioactive_waste.png.mcmeta | 69 ++ .../block/fluids/fluid.uranium_waste.png | Bin 0 -> 25271 bytes .../fluids/fluid.uranium_waste.png.mcmeta | 87 ++ .../block/casings/machine_casing_mars.png | Bin 0 -> 4494 bytes .../casings/machine_casing_mars.png.mcmeta | 5 + .../block/casings/machine_casing_mars_ctm.png | Bin 0 -> 4842 bytes .../machine_casing_stainless_evaporation.png | Bin 0 -> 293 bytes ...ne_casing_stainless_evaporation.png.mcmeta | 5 + ...chine_casing_stainless_evaporation_ctm.png | Bin 0 -> 456 bytes .../tfc/tfc/drinkables/aged_corn_whiskey.json | 24 +- .../tfc/tfc/drinkables/aged_rye_whiskey.json | 24 +- kubejs/server_scripts/gregtech/recipes.js | 33 + .../gregtech/recipes.machines.js | 2 + .../gregtech/recipes.removes.js | 3 + kubejs/server_scripts/tfg/recipes.js | 1 + kubejs/server_scripts/tfg/recipes.nuclear.js | 405 ++++++ kubejs/server_scripts/tfg/recipes.space.js | 7 + kubejs/server_scripts/tfg/tags.js | 6 + kubejs/startup_scripts/gtceu/machines.js | 137 +++ kubejs/startup_scripts/gtceu/materials.js | 6 +- kubejs/startup_scripts/gtceu/recipe_types.js | 49 +- kubejs/startup_scripts/main_startup_script.js | 6 + kubejs/startup_scripts/tfg/blocks.js | 11 + kubejs/startup_scripts/tfg/constants.js | 15 +- kubejs/startup_scripts/tfg/element.js | 13 + kubejs/startup_scripts/tfg/items.js | 1 + kubejs/startup_scripts/tfg/items.nuclear.js | 6 + kubejs/startup_scripts/tfg/materials.js | 54 + .../startup_scripts/tfg/materials.nuclear.js | 251 ++++ 39 files changed, 1945 insertions(+), 583 deletions(-) create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.dense_steam.png create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.dense_steam.png.mcmeta create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.irradiated_steam.png create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.irradiated_steam.png.mcmeta create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.nuclear_waste.png create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.nuclear_waste.png.mcmeta create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.radioactive_steam.png create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.radioactive_steam.png.mcmeta create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.radioactive_waste.png create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.radioactive_waste.png.mcmeta create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.uranium_waste.png create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.uranium_waste.png.mcmeta create mode 100644 kubejs/assets/tfg/textures/block/casings/machine_casing_mars.png create mode 100644 kubejs/assets/tfg/textures/block/casings/machine_casing_mars.png.mcmeta create mode 100644 kubejs/assets/tfg/textures/block/casings/machine_casing_mars_ctm.png create mode 100644 kubejs/assets/tfg/textures/block/casings/machine_casing_stainless_evaporation.png create mode 100644 kubejs/assets/tfg/textures/block/casings/machine_casing_stainless_evaporation.png.mcmeta create mode 100644 kubejs/assets/tfg/textures/block/casings/machine_casing_stainless_evaporation_ctm.png create mode 100644 kubejs/server_scripts/tfg/recipes.nuclear.js create mode 100644 kubejs/startup_scripts/tfg/element.js create mode 100644 kubejs/startup_scripts/tfg/items.nuclear.js create mode 100644 kubejs/startup_scripts/tfg/materials.nuclear.js diff --git a/defaultconfigs/create-server.toml b/defaultconfigs/create-server.toml index ce9cffa37..0fb3cd5f2 100644 --- a/defaultconfigs/create-server.toml +++ b/defaultconfigs/create-server.toml @@ -1,543 +1,543 @@ - -#. -#The Backbone of Create -[infrastructure] - #. - #[in Ticks] - #The amount of time a server waits before sending out tickrate synchronization packets. - #These packets help animations to be more accurate when tps is below 20. - #Range: > 5 - tickrateSyncTimer = 20 - -#. -#Packmakers' control panel for internal recipe compat -[recipes] - #. - #. - #Allow the Mechanical Press to process entire stacks at a time. - bulkPressing = false - #. - #Allow the Mechanical Saw to process entire stacks at a time. - bulkCutting = false - #. - #Allow supported potions to be brewed by a Mechanical Mixer + Basin. - allowBrewingInMixer = false - #. - #Allow any shapeless crafting recipes to be processed by a Mechanical Mixer + Basin. - allowShapelessInMixer = false - #. - #Allow any single-ingredient 2x2 or 3x3 crafting recipes to be processed by a Mechanical Press + Basin. - allowShapedSquareInPress = true - #. - #Allow any standard crafting recipes to be processed by Mechanical Crafters. - allowRegularCraftingInCrafter = true - #. - #The Maximum amount of ingredients that can be used to craft Firework Rockets using Mechanical Crafters. - #Range: > 1 - maxFireworkIngredientsInCrafter = 9 - #. - #Allow any stonecutting recipes to be processed by a Mechanical Saw. - allowStonecuttingOnSaw = true - #. - #Allow Spouts to interact with Casting Tables and Basins from Tinkers' Construct. - allowCastingBySpout = true - #. - #Display vanilla Log-stripping interactions in JEI. - displayLogStrippingRecipes = true - #. - #The amount of Light sources destroyed before Chromatic Compound turns into Refined Radiance. - #Range: > 1 - lightSourceCountForRefinedRadiance = 10 - #. - #Allow the standard in-world Refined Radiance recipes. - enableRefinedRadianceRecipe = false - #. - #Allow the standard in-world Shadow Steel recipe. - enableShadowSteelRecipe = false - -#. -#Parameters and abilities of Create's kinetic mechanisms -[kinetics] - #. - #. - #Disable the Stress mechanic altogether. - disableStress = false - #. - #Maximum length in blocks of mechanical belts. - #Range: > 5 - maxBeltLength = 5 - #. - #Damage dealt by active Crushing Wheels. - #Range: > 0 - crushingDamage = 4 - #. - #[in Revolutions per Minute] - #Maximum allowed rotation speed for any Kinetic Block. - #Range: > 64 - maxRotationSpeed = 256 - #. - #Select what mobs should ignore Deployers when attacked by them. - #Allowed Values: ALL, CREEPERS, NONE - ignoreDeployerAttacks = "CREEPERS" - #. - #Game ticks between Kinetic Blocks checking whether their source is still valid. - #Range: > 5 - kineticValidationFrequency = 60 - #. - #multiplier used for calculating exhaustion from speed when a crank is turned. - #Range: 0.0 ~ 1.0 - crankHungerMultiplier = 0.009999999776482582 - #. - #Amount of sail-type blocks required for a windmill to assemble successfully. - #Range: > 0 - minimumWindmillSails = 8 - #. - #Number of sail-type blocks required to increase windmill speed by 1RPM. - #Range: > 1 - windmillSailsPerRPM = 8 - #. - #Max Distance in blocks a Weighted Ejector can throw - #Range: > 0 - maxEjectorDistance = 32 - #. - #Time in ticks until the next item launched by an ejector scans blocks for potential collisions - #Range: > 10 - ejectorScanInterval = 120 - #. - #Maximum length in blocks of chain conveyor connections. - #Range: > 5 - maxChainConveyorLength = 32 - #. - #Maximum amount of connections each chain conveyor can have. - #Range: > 1 - maxChainConveyorConnections = 4 - - #. - #Encased Fan - [kinetics.encasedFan] - #. - #Maximum distance in blocks Fans can push entities. - #Range: > 5 - fanPushDistance = 20 - #. - #Maximum distance in blocks from where Fans can pull entities. - #Range: > 5 - fanPullDistance = 20 - #. - #Game ticks between Fans checking for anything blocking their air flow. - #Range: > 10 - fanBlockCheckRate = 30 - #. - #[in Revolutions per Minute] - #Rotation speed at which the maximum stats of fans are reached. - #Range: > 64 - fanRotationArgmax = 256 - #. - #Game ticks required for a Fan-based processing recipe to take effect. - #Range: > 0 - fanProcessingTime = 400 - - #. - #Moving Contraptions - [kinetics.contraptions] - #. - #Maximum amount of blocks in a structure movable by Pistons, Bearings or other means. - #Range: > 1 - maxBlocksMoved = 2048 - #. - #Maximum value of a chassis attachment range. - #Range: > 1 - maxChassisRange = 16 - #. - #Maximum amount of extension poles behind a Mechanical Piston. - #Range: > 1 - maxPistonPoles = 64 - #. - #Max length of rope available off a Rope Pulley. - #Range: > 1 - maxRopeLength = 400 - #. - #Maximum allowed distance of two coupled minecarts. - #Range: > 1 - maxCartCouplingLength = 32 - #. - #Maximum depth of blocks filled in using a Mechanical Roller. - #Range: > 1 - rollerFillDepth = 12 - #. - #Whether minecart contraptions can be picked up in survival mode. - survivalContraptionPickup = true - #. - #Configure how Spawner blocks can be moved by contraptions. - #Allowed Values: MOVABLE, NO_PICKUP, UNMOVABLE - movableSpawners = "NO_PICKUP" - #. - #Configure how Budding Amethyst can be moved by contraptions. - #Allowed Values: MOVABLE, NO_PICKUP, UNMOVABLE - amethystMovement = "NO_PICKUP" - #. - #Configure how Obsidian blocks can be moved by contraptions. - #Allowed Values: MOVABLE, NO_PICKUP, UNMOVABLE - movableObsidian = "UNMOVABLE" - #. - #Configure how Reinforced Deepslate blocks can be moved by contraptions. - #Allowed Values: MOVABLE, NO_PICKUP, UNMOVABLE - movableReinforcedDeepslate = "UNMOVABLE" - #. - #Whether items mined or harvested by contraptions should be placed in their mounted storage. - moveItemsToStorage = true - #. - #Whether harvesters should break crops that aren't fully grown. - harvestPartiallyGrown = false - #. - #Whether harvesters should replant crops after harvesting. - harvesterReplants = true - #. - #Whether minecart contraptions can be placed into container items. - minecartContraptionInContainers = false - #. - #Whether stabilised bearings create a separated entity even on non-rotating contraptions. - #[Technical] - stabiliseStableContraptions = false - #. - #Whether the players hitbox should be expanded to the size of the contraption hitbox. - #[Technical] - syncPlayerPickupHitboxWithContraptionHitbox = false - - #. - #Configure speed/capacity levels for requirements and indicators. - [kinetics.stats] - #. - #[in Revolutions per Minute] - #Minimum speed of rotation to be considered 'medium' - #Range: 0.0 ~ 4096.0 - mediumSpeed = 30.0 - #. - #[in Revolutions per Minute] - #Minimum speed of rotation to be considered 'fast' - #Range: 0.0 ~ 65535.0 - fastSpeed = 100.0 - #. - #[in Stress Units] - #Minimum stress impact to be considered 'medium' - #Range: 0.0 ~ 4096.0 - mediumStressImpact = 1.0 - #. - #[in Stress Units] - #Minimum stress impact to be considered 'high' - #Range: 0.0 ~ 65535.0 - highStressImpact = 2.0 - #. - #[in Stress Units] - #Minimum added Capacity by sources to be considered 'medium' - #Range: 0.0 ~ 4096.0 - mediumCapacity = 32.0 - #. - #[in Stress Units] - #Minimum added Capacity by sources to be considered 'high' - #Range: 0.0 ~ 65535.0 - highCapacity = 128.0 - - [kinetics.stressValues] - - #. - #Fine tune the kinetic stats of individual components - [kinetics.stressValues.v2] - large_water_wheel = 16.0 - windmill_bearing = 32.0 - hand_crank = 2.0 - creative_motor = 2097152.0 - water_wheel = 4.0 - copper_valve_handle = 2.0 - steam_engine = 16.0 - - #. - #. - #[in Stress Units] - #Configure the individual stress impact of mechanical blocks. Note that this cost is doubled for every speed increase it receives. - [kinetics.stressValues.v2.impact] - display_board = 0.0 - deployer = 0.25 - mechanical_piston = 0.5 - millstone = 65535.0 - mechanical_bearing = 0.5 - clockwork_bearing = 0.5 - cuckoo_clock = 0.125 - speedometer = 0.0 - copper_backtank = 0.25 - mechanical_saw = 65535.0 - flywheel = 0.0 - encased_chain_drive = 0.0 - clutch = 0.0 - encased_fan = 65535.0 - adjustable_chain_gearshift = 0.0 - mechanical_pump = 65535.0 - crushing_wheel = 65535.0 - mechanical_mixer = 65535.0 - gantry_shaft = 0.0 - rope_pulley = 0.25 - rotation_speed_controller = 0.0 - mechanical_arm = 0.25 - netherite_backtank = 0.25 - andesite_encased_shaft = 65535.0 - mechanical_press = 65535.0 - large_cogwheel = 65535.0 - mechanical_drill = 0.5 - andesite_encased_large_cogwheel = 65535.0 - brass_encased_large_cogwheel = 65535.0 - mysterious_cuckoo_clock = 0.125 - stressometer = 0.0 - shaft = 65535.0 - brass_encased_shaft = 65535.0 - gearshift = 0.0 - turntable = 0.25 - sticky_mechanical_piston = 0.5 - sequenced_gearshift = 0.0 - weighted_ejector = 0.25 - cogwheel = 65535.0 - andesite_encased_cogwheel = 65535.0 - belt = 65535.0 - brass_encased_cogwheel = 65535.0 - gearbox = 0.0 - hose_pulley = 0.25 - elevator_pulley = 0.25 - mechanical_crafter = 0.125 - chain_conveyor = 0.0 - - #. - #[in Stress Units] - #Configure how much stress a source can accommodate for. - [kinetics.stressValues.v2.capacity] - copper_valve_handle = 2.0 - hand_crank = 2.0 - steam_engine = 16.0 - creative_motor = 16384.0 - large_water_wheel = 16.0 - water_wheel = 4.0 - windmill_bearing = 32.0 - -#. -#Create's liquid manipulation tools -[fluids] - #. - #. - #[in Buckets] - #The amount of liquid a tank can hold per block. - #Range: > 1 - fluidTankCapacity = 16 - #. - #[in Blocks] - #The maximum height a fluid tank can reach. - #Range: > 1 - fluidTankMaxHeight = 32 - #. - #[in Blocks] - #The maximum distance a mechanical pump can push or pull liquids on either side. - #Range: > 1 - mechanicalPumpRange = 16 - #. - #[in Blocks] - #The maximum distance a hose pulley can draw fluid blocks from. - #Range: > 1 - hosePulleyRange = 256 - #. - #[in Blocks] - #[-1 to disable this behaviour] - #The minimum amount of fluid blocks the hose pulley needs to find before deeming it an infinite source. - #Range: > -1 - hosePulleyBlockThreshold = 2000 - #. - #Whether hose pulleys should continue filling up above-threshold sources. - fillInfinite = false - #. - #Configure which fluids can be drained infinitely. - #Allowed Values: ALLOW_ALL, DENY_ALL, ALLOW_BY_TAG, DENY_BY_TAG - bottomlessFluidMode = "ALLOW_BY_TAG" - #. - #Whether hose pulleys should be allowed to place fluid sources. - fluidFillPlaceFluidSourceBlocks = true - #. - #Whether open-ended pipes should be allowed to place fluid sources. - pipesPlaceFluidSourceBlocks = false - -#. -#Tweaks for logistical components -[logistics] - #. - #. - #The amount of ticks a funnel waits between item transferrals, when it is not re-activated by redstone. - #Range: > 1 - defaultExtractionTimer = 8 - #. - #The amount of ticks a portable storage interface waits for transfers until letting contraptions move along. - #Range: > 1 - psiTimeout = 60 - #. - #Maximum distance in blocks a Mechanical Arm can reach across. - #Range: > 1 - mechanicalArmRange = 5 - #. - #Maximum possible range in blocks of redstone link connections. - #Range: > 1 - linkRange = 256 - #. - #Maximum possible distance in blocks between display links and their target. - #Range: > 1 - displayLinkRange = 64 - #. - #The total amount of stacks a vault can hold per block in size. - #Range: 1 ~ 2048 - vaultCapacity = 20 - #. - #The amount of ticks a brass tunnel waits between distributions. - #Range: 1 ~ 10 - brassTunnelTimer = 10 - #. - #Whether hostile mobs walking near a seat will start riding it. - seatHostileMobs = true - #. - #Maximum distance in blocks a Package Port can be placed at from its target. - #Range: > 1 - packagePortRange = 5 - #. - #The amount of packages a chain conveyor can carry at a time. - #Range: > 1 - chainConveyorCapacity = 20 - #. - #The amount of ticks a factory gauge waits between requests. - #Range: > 5 - factoryGaugeTimer = 100 - -#. -#Everything related to Schematic tools -[schematics] - #. - #. - #Whether placing a Schematic directly in Creative Mode should replace world blocks with Air - creativePrintIncludesAir = false - #. - #The amount of Schematics a player can upload until previous ones are overwritten. - #Range: > 1 - maxSchematics = 256 - #. - #[in Bytes] - #The maximum packet size uploaded Schematics are split into. - #Range: 256 ~ 32767 - maxSchematicPacketSize = 1024 - #. - #Amount of game ticks without new packets arriving until an active schematic upload process is discarded. - #Range: > 100 - schematicIdleTimeout = 600 - #. - #[in KiloBytes] - #The maximum allowed file size of uploaded Schematics. - #Range: > 16 - maxTotalSchematicSize = 256 - - #. - #Schematicannon - [schematics.schematicannon] - #. - #Amount of game ticks between shots of the cannon. Higher => Slower - #Range: > 1 - schematicannonDelay = 10 - #. - #Amount of blocks a Schematicannon can print per Gunpowder item provided. - #Range: > 1 - schematicannonShotsPerGunpowder = 400 - -#. -#Equipment and gadgets added by Create -[equipment] - #. - #. - #The Maximum Distance to an active mirror for the symmetry wand to trigger. - #Range: > 10 - maxSymmetryWandRange = 50 - #. - #The Maximum Distance a Block placed by Create's placement assist will have to its interaction point. - #Range: > 3 - placementAssistRange = 12 - #. - #The Maximum Distance at which a Toolbox can interact with Players' Inventories. - #Range: > 1 - toolboxRange = 10 - #. - #The Maximum volume of Air that can be stored in a backtank = Seconds of underwater breathing - #Range: > 1 - airInBacktank = 1200 - #. - #The volume of Air added by each level of the backtanks Capacity Enchantment - #Range: > 1 - enchantedBacktankCapacity = 300 - #. - #Amount of free Extendo Grip actions provided by one filled Copper Backtank. Set to 0 makes Extendo Grips unbreakable - #Range: > 0 - maxExtendoGripActions = 1000 - #. - #Amount of free Potato Cannon shots provided by one filled Copper Backtank. Set to 0 makes Potato Cannons unbreakable - #Range: > 0 - maxPotatoCannonShots = 200 - -#. -#Create's builtin Railway systems -[trains] - #. - #. - #Whether moving Trains can hurt colliding mobs and players. - trainsCauseDamage = true - #. - #Maximum length of track that can be placed as one batch or turn. - #Range: 16 ~ 128 - maxTrackPlacementLength = 32 - #. - #Maximum length of a Train Stations' assembly track. - #Range: > 5 - maxAssemblyLength = 128 - #. - #Maximum amount of bogeys assembled as a single Train. - #Range: > 1 - maxBogeyCount = 20 - #. - #Relative speed of a manually controlled Train compared to a Scheduled one. - #Range: 0.0 ~ 3.4028234663852886E38 - manualTrainSpeedModifier = 1 - - #. - #Standard Trains - [trains.trainStats] - #. - #[in Blocks/Second] - #The top speed of any assembled Train. - #Range: 0.0 ~ 3.4028234663852886E38 - trainTopSpeed = 28.0 - #. - #[in Blocks/Second] - #The top speed of Trains during a turn. - #Range: 0.0 ~ 3.4028234663852886E38 - trainTurningTopSpeed = 14.0 - #. - #[in Blocks/Second²] - #The acceleration of any assembled Train. - #Range: 0.0 ~ 3.4028234663852886E38 - trainAcceleration = 3.0 - - #. - #Powered Trains - [trains.poweredTrainStats] - #. - #[in Blocks/Second] - #The top speed of powered Trains. - #Range: 0.0 ~ 3.4028234663852886E38 - poweredTrainTopSpeed = 40.0 - #. - #[in Blocks/Second] - #The top speed of powered Trains during a turn. - #Range: 0.0 ~ 3.4028234663852886E38 - poweredTrainTurningTopSpeed = 20.0 - #. - #[in Blocks/Second²] - #The acceleration of powered Trains. - #Range: 0.0 ~ 3.4028234663852886E38 - poweredTrainAcceleration = 3.0 - + +#. +#The Backbone of Create +[infrastructure] + #. + #[in Ticks] + #The amount of time a server waits before sending out tickrate synchronization packets. + #These packets help animations to be more accurate when tps is below 20. + #Range: > 5 + tickrateSyncTimer = 20 + +#. +#Packmakers' control panel for internal recipe compat +[recipes] + #. + #. + #Allow the Mechanical Press to process entire stacks at a time. + bulkPressing = false + #. + #Allow the Mechanical Saw to process entire stacks at a time. + bulkCutting = false + #. + #Allow supported potions to be brewed by a Mechanical Mixer + Basin. + allowBrewingInMixer = false + #. + #Allow any shapeless crafting recipes to be processed by a Mechanical Mixer + Basin. + allowShapelessInMixer = false + #. + #Allow any single-ingredient 2x2 or 3x3 crafting recipes to be processed by a Mechanical Press + Basin. + allowShapedSquareInPress = true + #. + #Allow any standard crafting recipes to be processed by Mechanical Crafters. + allowRegularCraftingInCrafter = true + #. + #The Maximum amount of ingredients that can be used to craft Firework Rockets using Mechanical Crafters. + #Range: > 1 + maxFireworkIngredientsInCrafter = 9 + #. + #Allow any stonecutting recipes to be processed by a Mechanical Saw. + allowStonecuttingOnSaw = true + #. + #Allow Spouts to interact with Casting Tables and Basins from Tinkers' Construct. + allowCastingBySpout = true + #. + #Display vanilla Log-stripping interactions in JEI. + displayLogStrippingRecipes = true + #. + #The amount of Light sources destroyed before Chromatic Compound turns into Refined Radiance. + #Range: > 1 + lightSourceCountForRefinedRadiance = 10 + #. + #Allow the standard in-world Refined Radiance recipes. + enableRefinedRadianceRecipe = false + #. + #Allow the standard in-world Shadow Steel recipe. + enableShadowSteelRecipe = false + +#. +#Parameters and abilities of Create's kinetic mechanisms +[kinetics] + #. + #. + #Disable the Stress mechanic altogether. + disableStress = false + #. + #Maximum length in blocks of mechanical belts. + #Range: > 5 + maxBeltLength = 5 + #. + #Damage dealt by active Crushing Wheels. + #Range: > 0 + crushingDamage = 4 + #. + #[in Revolutions per Minute] + #Maximum allowed rotation speed for any Kinetic Block. + #Range: > 64 + maxRotationSpeed = 256 + #. + #Select what mobs should ignore Deployers when attacked by them. + #Allowed Values: ALL, CREEPERS, NONE + ignoreDeployerAttacks = "CREEPERS" + #. + #Game ticks between Kinetic Blocks checking whether their source is still valid. + #Range: > 5 + kineticValidationFrequency = 60 + #. + #multiplier used for calculating exhaustion from speed when a crank is turned. + #Range: 0.0 ~ 1.0 + crankHungerMultiplier = 0.009999999776482582 + #. + #Amount of sail-type blocks required for a windmill to assemble successfully. + #Range: > 0 + minimumWindmillSails = 8 + #. + #Number of sail-type blocks required to increase windmill speed by 1RPM. + #Range: > 1 + windmillSailsPerRPM = 8 + #. + #Max Distance in blocks a Weighted Ejector can throw + #Range: > 0 + maxEjectorDistance = 32 + #. + #Time in ticks until the next item launched by an ejector scans blocks for potential collisions + #Range: > 10 + ejectorScanInterval = 120 + #. + #Maximum length in blocks of chain conveyor connections. + #Range: > 5 + maxChainConveyorLength = 32 + #. + #Maximum amount of connections each chain conveyor can have. + #Range: > 1 + maxChainConveyorConnections = 4 + + #. + #Encased Fan + [kinetics.encasedFan] + #. + #Maximum distance in blocks Fans can push entities. + #Range: > 5 + fanPushDistance = 20 + #. + #Maximum distance in blocks from where Fans can pull entities. + #Range: > 5 + fanPullDistance = 20 + #. + #Game ticks between Fans checking for anything blocking their air flow. + #Range: > 10 + fanBlockCheckRate = 30 + #. + #[in Revolutions per Minute] + #Rotation speed at which the maximum stats of fans are reached. + #Range: > 64 + fanRotationArgmax = 256 + #. + #Game ticks required for a Fan-based processing recipe to take effect. + #Range: > 0 + fanProcessingTime = 400 + + #. + #Moving Contraptions + [kinetics.contraptions] + #. + #Maximum amount of blocks in a structure movable by Pistons, Bearings or other means. + #Range: > 1 + maxBlocksMoved = 2048 + #. + #Maximum value of a chassis attachment range. + #Range: > 1 + maxChassisRange = 16 + #. + #Maximum amount of extension poles behind a Mechanical Piston. + #Range: > 1 + maxPistonPoles = 64 + #. + #Max length of rope available off a Rope Pulley. + #Range: > 1 + maxRopeLength = 400 + #. + #Maximum allowed distance of two coupled minecarts. + #Range: > 1 + maxCartCouplingLength = 32 + #. + #Maximum depth of blocks filled in using a Mechanical Roller. + #Range: > 1 + rollerFillDepth = 12 + #. + #Whether minecart contraptions can be picked up in survival mode. + survivalContraptionPickup = true + #. + #Configure how Spawner blocks can be moved by contraptions. + #Allowed Values: MOVABLE, NO_PICKUP, UNMOVABLE + movableSpawners = "NO_PICKUP" + #. + #Configure how Budding Amethyst can be moved by contraptions. + #Allowed Values: MOVABLE, NO_PICKUP, UNMOVABLE + amethystMovement = "NO_PICKUP" + #. + #Configure how Obsidian blocks can be moved by contraptions. + #Allowed Values: MOVABLE, NO_PICKUP, UNMOVABLE + movableObsidian = "UNMOVABLE" + #. + #Configure how Reinforced Deepslate blocks can be moved by contraptions. + #Allowed Values: MOVABLE, NO_PICKUP, UNMOVABLE + movableReinforcedDeepslate = "UNMOVABLE" + #. + #Whether items mined or harvested by contraptions should be placed in their mounted storage. + moveItemsToStorage = true + #. + #Whether harvesters should break crops that aren't fully grown. + harvestPartiallyGrown = false + #. + #Whether harvesters should replant crops after harvesting. + harvesterReplants = true + #. + #Whether minecart contraptions can be placed into container items. + minecartContraptionInContainers = false + #. + #Whether stabilised bearings create a separated entity even on non-rotating contraptions. + #[Technical] + stabiliseStableContraptions = false + #. + #Whether the players hitbox should be expanded to the size of the contraption hitbox. + #[Technical] + syncPlayerPickupHitboxWithContraptionHitbox = false + + #. + #Configure speed/capacity levels for requirements and indicators. + [kinetics.stats] + #. + #[in Revolutions per Minute] + #Minimum speed of rotation to be considered 'medium' + #Range: 0.0 ~ 4096.0 + mediumSpeed = 30.0 + #. + #[in Revolutions per Minute] + #Minimum speed of rotation to be considered 'fast' + #Range: 0.0 ~ 65535.0 + fastSpeed = 100.0 + #. + #[in Stress Units] + #Minimum stress impact to be considered 'medium' + #Range: 0.0 ~ 4096.0 + mediumStressImpact = 1.0 + #. + #[in Stress Units] + #Minimum stress impact to be considered 'high' + #Range: 0.0 ~ 65535.0 + highStressImpact = 2.0 + #. + #[in Stress Units] + #Minimum added Capacity by sources to be considered 'medium' + #Range: 0.0 ~ 4096.0 + mediumCapacity = 32.0 + #. + #[in Stress Units] + #Minimum added Capacity by sources to be considered 'high' + #Range: 0.0 ~ 65535.0 + highCapacity = 128.0 + + [kinetics.stressValues] + + #. + #Fine tune the kinetic stats of individual components + [kinetics.stressValues.v2] + large_water_wheel = 16.0 + windmill_bearing = 32.0 + hand_crank = 2.0 + creative_motor = 2097152.0 + water_wheel = 4.0 + copper_valve_handle = 2.0 + steam_engine = 16.0 + + #. + #. + #[in Stress Units] + #Configure the individual stress impact of mechanical blocks. Note that this cost is doubled for every speed increase it receives. + [kinetics.stressValues.v2.impact] + display_board = 0.0 + deployer = 0.25 + mechanical_piston = 0.5 + millstone = 65535.0 + mechanical_bearing = 0.5 + clockwork_bearing = 0.5 + cuckoo_clock = 0.125 + speedometer = 0.0 + copper_backtank = 0.25 + mechanical_saw = 65535.0 + flywheel = 0.0 + encased_chain_drive = 0.0 + clutch = 0.0 + encased_fan = 65535.0 + adjustable_chain_gearshift = 0.0 + mechanical_pump = 65535.0 + crushing_wheel = 65535.0 + mechanical_mixer = 65535.0 + gantry_shaft = 0.0 + rope_pulley = 0.25 + rotation_speed_controller = 0.0 + mechanical_arm = 0.25 + netherite_backtank = 0.25 + andesite_encased_shaft = 65535.0 + mechanical_press = 65535.0 + large_cogwheel = 65535.0 + mechanical_drill = 0.5 + andesite_encased_large_cogwheel = 65535.0 + brass_encased_large_cogwheel = 65535.0 + mysterious_cuckoo_clock = 0.125 + stressometer = 0.0 + shaft = 65535.0 + brass_encased_shaft = 65535.0 + gearshift = 0.0 + turntable = 0.25 + sticky_mechanical_piston = 0.5 + sequenced_gearshift = 0.0 + weighted_ejector = 0.25 + cogwheel = 65535.0 + andesite_encased_cogwheel = 65535.0 + belt = 65535.0 + brass_encased_cogwheel = 65535.0 + gearbox = 0.0 + hose_pulley = 0.25 + elevator_pulley = 0.25 + mechanical_crafter = 0.125 + chain_conveyor = 0.0 + + #. + #[in Stress Units] + #Configure how much stress a source can accommodate for. + [kinetics.stressValues.v2.capacity] + copper_valve_handle = 2.0 + hand_crank = 2.0 + steam_engine = 16.0 + creative_motor = 16384.0 + large_water_wheel = 16.0 + water_wheel = 4.0 + windmill_bearing = 32.0 + +#. +#Create's liquid manipulation tools +[fluids] + #. + #. + #[in Buckets] + #The amount of liquid a tank can hold per block. + #Range: > 1 + fluidTankCapacity = 16 + #. + #[in Blocks] + #The maximum height a fluid tank can reach. + #Range: > 1 + fluidTankMaxHeight = 32 + #. + #[in Blocks] + #The maximum distance a mechanical pump can push or pull liquids on either side. + #Range: > 1 + mechanicalPumpRange = 16 + #. + #[in Blocks] + #The maximum distance a hose pulley can draw fluid blocks from. + #Range: > 1 + hosePulleyRange = 256 + #. + #[in Blocks] + #[-1 to disable this behaviour] + #The minimum amount of fluid blocks the hose pulley needs to find before deeming it an infinite source. + #Range: > -1 + hosePulleyBlockThreshold = 2000 + #. + #Whether hose pulleys should continue filling up above-threshold sources. + fillInfinite = false + #. + #Configure which fluids can be drained infinitely. + #Allowed Values: ALLOW_ALL, DENY_ALL, ALLOW_BY_TAG, DENY_BY_TAG + bottomlessFluidMode = "ALLOW_BY_TAG" + #. + #Whether hose pulleys should be allowed to place fluid sources. + fluidFillPlaceFluidSourceBlocks = true + #. + #Whether open-ended pipes should be allowed to place fluid sources. + pipesPlaceFluidSourceBlocks = false + +#. +#Tweaks for logistical components +[logistics] + #. + #. + #The amount of ticks a funnel waits between item transferrals, when it is not re-activated by redstone. + #Range: > 1 + defaultExtractionTimer = 8 + #. + #The amount of ticks a portable storage interface waits for transfers until letting contraptions move along. + #Range: > 1 + psiTimeout = 60 + #. + #Maximum distance in blocks a Mechanical Arm can reach across. + #Range: > 1 + mechanicalArmRange = 5 + #. + #Maximum possible range in blocks of redstone link connections. + #Range: > 1 + linkRange = 256 + #. + #Maximum possible distance in blocks between display links and their target. + #Range: > 1 + displayLinkRange = 64 + #. + #The total amount of stacks a vault can hold per block in size. + #Range: 1 ~ 2048 + vaultCapacity = 20 + #. + #The amount of ticks a brass tunnel waits between distributions. + #Range: 1 ~ 10 + brassTunnelTimer = 10 + #. + #Whether hostile mobs walking near a seat will start riding it. + seatHostileMobs = true + #. + #Maximum distance in blocks a Package Port can be placed at from its target. + #Range: > 1 + packagePortRange = 5 + #. + #The amount of packages a chain conveyor can carry at a time. + #Range: > 1 + chainConveyorCapacity = 20 + #. + #The amount of ticks a factory gauge waits between requests. + #Range: > 5 + factoryGaugeTimer = 100 + +#. +#Everything related to Schematic tools +[schematics] + #. + #. + #Whether placing a Schematic directly in Creative Mode should replace world blocks with Air + creativePrintIncludesAir = false + #. + #The amount of Schematics a player can upload until previous ones are overwritten. + #Range: > 1 + maxSchematics = 256 + #. + #[in Bytes] + #The maximum packet size uploaded Schematics are split into. + #Range: 256 ~ 32767 + maxSchematicPacketSize = 1024 + #. + #Amount of game ticks without new packets arriving until an active schematic upload process is discarded. + #Range: > 100 + schematicIdleTimeout = 600 + #. + #[in KiloBytes] + #The maximum allowed file size of uploaded Schematics. + #Range: > 16 + maxTotalSchematicSize = 256 + + #. + #Schematicannon + [schematics.schematicannon] + #. + #Amount of game ticks between shots of the cannon. Higher => Slower + #Range: > 1 + schematicannonDelay = 10 + #. + #Amount of blocks a Schematicannon can print per Gunpowder item provided. + #Range: > 1 + schematicannonShotsPerGunpowder = 400 + +#. +#Equipment and gadgets added by Create +[equipment] + #. + #. + #The Maximum Distance to an active mirror for the symmetry wand to trigger. + #Range: > 10 + maxSymmetryWandRange = 50 + #. + #The Maximum Distance a Block placed by Create's placement assist will have to its interaction point. + #Range: > 3 + placementAssistRange = 12 + #. + #The Maximum Distance at which a Toolbox can interact with Players' Inventories. + #Range: > 1 + toolboxRange = 10 + #. + #The Maximum volume of Air that can be stored in a backtank = Seconds of underwater breathing + #Range: > 1 + airInBacktank = 1200 + #. + #The volume of Air added by each level of the backtanks Capacity Enchantment + #Range: > 1 + enchantedBacktankCapacity = 300 + #. + #Amount of free Extendo Grip actions provided by one filled Copper Backtank. Set to 0 makes Extendo Grips unbreakable + #Range: > 0 + maxExtendoGripActions = 1000 + #. + #Amount of free Potato Cannon shots provided by one filled Copper Backtank. Set to 0 makes Potato Cannons unbreakable + #Range: > 0 + maxPotatoCannonShots = 200 + +#. +#Create's builtin Railway systems +[trains] + #. + #. + #Whether moving Trains can hurt colliding mobs and players. + trainsCauseDamage = true + #. + #Maximum length of track that can be placed as one batch or turn. + #Range: 16 ~ 128 + maxTrackPlacementLength = 32 + #. + #Maximum length of a Train Stations' assembly track. + #Range: > 5 + maxAssemblyLength = 128 + #. + #Maximum amount of bogeys assembled as a single Train. + #Range: > 1 + maxBogeyCount = 20 + #. + #Relative speed of a manually controlled Train compared to a Scheduled one. + #Range: 0.0 ~ 3.4028234663852886E38 + manualTrainSpeedModifier = 1 + + #. + #Standard Trains + [trains.trainStats] + #. + #[in Blocks/Second] + #The top speed of any assembled Train. + #Range: 0.0 ~ 3.4028234663852886E38 + trainTopSpeed = 28.0 + #. + #[in Blocks/Second] + #The top speed of Trains during a turn. + #Range: 0.0 ~ 3.4028234663852886E38 + trainTurningTopSpeed = 14.0 + #. + #[in Blocks/Second²] + #The acceleration of any assembled Train. + #Range: 0.0 ~ 3.4028234663852886E38 + trainAcceleration = 3.0 + + #. + #Powered Trains + [trains.poweredTrainStats] + #. + #[in Blocks/Second] + #The top speed of powered Trains. + #Range: 0.0 ~ 3.4028234663852886E38 + poweredTrainTopSpeed = 40.0 + #. + #[in Blocks/Second] + #The top speed of powered Trains during a turn. + #Range: 0.0 ~ 3.4028234663852886E38 + poweredTrainTurningTopSpeed = 20.0 + #. + #[in Blocks/Second²] + #The acceleration of powered Trains. + #Range: 0.0 ~ 3.4028234663852886E38 + poweredTrainAcceleration = 3.0 + diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.dense_steam.png b/kubejs/assets/gtceu/textures/block/fluids/fluid.dense_steam.png new file mode 100644 index 0000000000000000000000000000000000000000..8cca66fc908ee1846f04dc2ce872276ad7fc7113 GIT binary patch literal 2375 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 Q1_lNOPgg&ebxsLQ094J7=l}o! literal 0 HcmV?d00001 diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.dense_steam.png.mcmeta b/kubejs/assets/gtceu/textures/block/fluids/fluid.dense_steam.png.mcmeta new file mode 100644 index 000000000..33611385b --- /dev/null +++ b/kubejs/assets/gtceu/textures/block/fluids/fluid.dense_steam.png.mcmeta @@ -0,0 +1,45 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 18, + 17, + 16, + 15, + 14, + 13, + 12, + 11, + 10, + 9, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1 + ] + } +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.irradiated_steam.png b/kubejs/assets/gtceu/textures/block/fluids/fluid.irradiated_steam.png new file mode 100644 index 0000000000000000000000000000000000000000..38280013783645c635d8925f345209b4f10de1aa GIT binary patch literal 6687 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 TS$@6@3=9mOu6{1-oD!M<=f1@N literal 0 HcmV?d00001 diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.irradiated_steam.png.mcmeta b/kubejs/assets/gtceu/textures/block/fluids/fluid.irradiated_steam.png.mcmeta new file mode 100644 index 000000000..33611385b --- /dev/null +++ b/kubejs/assets/gtceu/textures/block/fluids/fluid.irradiated_steam.png.mcmeta @@ -0,0 +1,45 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 18, + 17, + 16, + 15, + 14, + 13, + 12, + 11, + 10, + 9, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1 + ] + } +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.nuclear_waste.png b/kubejs/assets/gtceu/textures/block/fluids/fluid.nuclear_waste.png new file mode 100644 index 0000000000000000000000000000000000000000..ad8a044a80d4060e7bc820857127901860c0fc8d GIT binary patch literal 28120 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

_knyzrZcZuQFZ+ZD|s;{*@zqdkh!{5-? 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

rP8 zfAczJ7RTPJnBbSR`Ny*jreCf69(T*m5MWi>xB2?z+kf}H<8l(dP=D=xyZkz{m#I^V z0*+M$Hmx~x>E2hXelbm=AI4g-DOgLv#e_V?Ur3%9!>w!n%p-d!*^2ra@8io zmnkNnj5g~2mU*%$DDI5p^QpFxFZf$8?~Z&aY(0JQ$`7});>2EMMjC%wkX!bY<6hwL zEC22uTo?K6?T4)6cQ-#h`}c^}2a&vIt;y?dT+LdyqRs!1#XKHfElXP!_ckHZ|5ZzK zcxuEOrZ%Rz>V8d&`(eW%%__x|tMYucM$MVcQ5%}e-EQ9eb~#Vw#0;LC*>6vPG9q7N}f%_ z^C_Ff+k6eJ4oJ8JSY#xmO0Pe)I_c`{b!)PD7oYu_eD3F6nKv8LcXQ>fIT^0CX1mS? z(I59XRp;(~da{V?xSD_p_pY6$H`BbQYvgSU&6@ZrY{~As{h8_-y-M{OIZ~4|4@#66 zZ0q~1YMH&o&?b(bvA6K8CfA~l1m9IRm?W||;sLn%0;*a3*TdC1?=4}5f-NVkUKK0aP*=F1O zhKBcbPv$yL7Zcib>*9p+1G0w>-i_Y!x7~Yn|K7K^&ON{VGR^W{{Y{tox*NBv1%CRO zo9n3~) zWoDk`(mzsXr$#RJ*?MI9#+UzpI%dCeopbDYwM734x1;)ZOZP~9GYxOiTTprH&GF~g zXMZvC`dX^Oo;Te){IsQUBTxx2W4J%$maAS~!3195KGN>rJ^&H46A?|NPy1 z!d0zW{lt&Ng1>WJebpv@Jf65hzi2^H|HlLJQ%~=Dvj5$#s^eceUtOBIVS)O&8LNWd zvcB|44G4oU>i{K7x;vYOVr&oTFXkFHxgWoy9cy(_zg zE;4@=+w-(7H}3i^Te~lZPxjpnm)#Pq(Xdpn^7n7J&V`9TFw7hVvCu%xaTURT;)5$^^YCB4}_kroP0!XW~A=M%p<(O*t z{?nuz9R3PATU*rQUjNRS(Q|97f7R)RcN0FaCtaQq6&Cblmr8V0?jI$K?A|Le3hg0h z)MM^Uz53^6FZ;Z`ou*ZWDaF2i>W4cPe2Zh(o?Q_dmwN3$ZRFKg?0R37o_|W?t9fv9 z-5lvtZ@gFe>}_OYz8<+TCp|oKlg-X#QwFsK4->S)yZbfvm`{DT^2z1MTettt*e0B{ zdP0BeO6O|~QtRB4vwg*{MP0l0VT&ZQ)UJ;S)*`>#y81%5-R(Q;wj=M#!sKK=<}dRa z_nK@tdfBk{ZI|WxaNpZeZ%mGEUieF$cY5@d%PSSrB`@-JuHwr}OwOHrw*Jh)`fC%X z_D6nw@3_mz_I|nH$2l_XdaeJTGu~H}vDxRl+djsq_TlekZ};wGrG_jLariKYjZ?U8me|GV9{P$}J3d!r{n^76VhK8L4n zS1{SyvfJN*;&J7dcw-Kl@FrhO|jU-p;hYeQVfv=uw^ zralwu4b>8tnXy%Uo_Vsv?{4E!INQd?yek-bQ#`>g%BgZ3{^oQe#)Dg2W0>)BJs zuRKe6c>9QI$Y&-`=x^Wu=lJ|PSY41B2(o@u_m a3|b5f3>*v)a4C2)h~eq#=d#Wzp$PzaX;iZS literal 0 HcmV?d00001 diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.nuclear_waste.png.mcmeta b/kubejs/assets/gtceu/textures/block/fluids/fluid.nuclear_waste.png.mcmeta new file mode 100644 index 000000000..744a3d54c --- /dev/null +++ b/kubejs/assets/gtceu/textures/block/fluids/fluid.nuclear_waste.png.mcmeta @@ -0,0 +1,87 @@ +{ + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 39, + 38, + 37, + 36, + 35, + 34, + 33, + 32, + 31, + 30, + 29, + 28, + 27, + 26, + 25, + 24, + 23, + 22, + 21, + 20, + 19, + 18, + 17, + 16, + 15, + 14, + 13, + 12, + 11, + 10, + 9, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1 + ] + } +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.radioactive_steam.png b/kubejs/assets/gtceu/textures/block/fluids/fluid.radioactive_steam.png new file mode 100644 index 0000000000000000000000000000000000000000..608ba1eb246d4d7035cf087829545b0df9ed8fa1 GIT binary patch literal 2409 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 literal 0 HcmV?d00001 diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.radioactive_steam.png.mcmeta b/kubejs/assets/gtceu/textures/block/fluids/fluid.radioactive_steam.png.mcmeta new file mode 100644 index 000000000..33611385b --- /dev/null +++ b/kubejs/assets/gtceu/textures/block/fluids/fluid.radioactive_steam.png.mcmeta @@ -0,0 +1,45 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 18, + 17, + 16, + 15, + 14, + 13, + 12, + 11, + 10, + 9, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1 + ] + } +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.radioactive_waste.png b/kubejs/assets/gtceu/textures/block/fluids/fluid.radioactive_waste.png new file mode 100644 index 0000000000000000000000000000000000000000..c97f8bf2572f4628f7ee3740589c0fc4f9ac4219 GIT binary patch literal 9427 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 W?CX16oXQO9<$AjMxvXv8VOg$Kr?NpB%b{<- z>kef%Okz11>aDHHbZJST`+|!X)R${aRzIQoWO|hai&JOe=A}`8{>J&YH^#~a+DX2= z-TG9^q_BRkMq z&z8bR9BEdDk?gvX=D5?I_*WA+a@xc!H_wQ`q-D7lGd?;kIHrt9> zsY`?l4QEG-GOy=I;9#EN>XNj~Zn~H1L(6^d9zK2@J0-nx{_o;1nw66o?Iv0rD>FloDdimRBpIJWG zGlxgrj?ZNc-mj#PnPRIHZt82`Ti~3U zk?B!Ylp0*+7m{3+ootz+WN*i1Q(;w+TacStlBiITo0C^;Rbi_HHrFbz*a{@9ucQE0 zQj%?}6yY17;GAESs$imLqGzD%T9H|1q-4jXU{jQmW)IzDWa=>a* zlJ!$_Qgc)DN{aOj^$bzemt>|P0t>}AAQ`ZCkR4KyTL3p7MK#RtV8!4tvU15!E(KZY z>0+w{a<5fNesX4t6_{yiVrpcVY+6v+nImoU88I_WmVr5{Il4xRPW}$0oWRa+AVqlS?YiXHcq-$hsXlY=O zl46pSVg@z}6c1L80iL!>MtTMak${}UlC=DyTw5jI#AF5kV1!IaW^QV5Ng^oJ49!iA zjSWmp%q)ydO^gjJ5Q@T5i;6Sz^FW3g8t55AWKxo?-13WZ6H9EBGIJBtQ}qk-(!p9l z@nYp)l$n}Wk_bwuwn~Oz@rv96E9aur#FG4?ko^1{TP2WV6^!%@Ar1ve`=*v8rX-dm zx+IpQ+A0|t7@1lbm|GbchZve$85mj_nCTjrSQ#Lx&riurt0bh_4irx|kcjfgEH23} zsssx`vQ%(tA%q9v=466YD<~*{bA?r6GQ?g zT1YlZG%`yxGuAb+NK4i=u}DnOwMa`e)HN}(NJ%kFGDt~Df%pn;dU1YQNqJ&Xs$+U; zUWu)eduDC{III*jAW^7^>X`D3R8agF7@6uCnCl`!%mNx>`Vc?b=z~fPn3rwzF#-jm z0I8U<<5GZ#1-ZD{aoOmD%Q{fG2Qd&-?$8oLBZHP!C@73tLQ?pS2G?kCkrV|gW!U_%O^81FmM)l zL>4nJa0`PlBg3pY5)2Fs>?NMQuIw+_#YGu8`eV9H7#Nr)c)B=-L>yi_{cP542Z7`N z1(}?Aq-%3}Je^}=3{)Fsgl=U!=hZgZ1;i=p3wo@7yLY;bmwsb{0Eg7YEf-E~+vLhN ze^RsU>)2A=^(yB**F0N3^Y5?o8QB(pKKHbyMzS${u;E|Tny4|~eepz@?#B}0)5TxB zEibJ2$Jt}3ZRaWEa^Ft*-%oBmRxu|A28m=N!Cw-rp~5|nC7d|k6v;CPxC*j0H;VdC z`}2>RouNg*!n#^NeZirlR~Z}X_OJf=_Km^JJ-qXmt*j|~arEm~aqSyVvNsvUnU-6w z-gogJ%VhntN1oe7y*)6Cy`ikSdLL7&_x4u-m$oq;NVbZ!{B0DM=lF3cr{1}yrs=x1 zlJ;`_6Q2jmyeWOA9bj(pT!z6Qa*fm6Cv&w9hHB?Yt0td5&2q?K3*Wk|)~e~gPGQH` z9T&(S+I8@1`YyrHAF=QBr(Q@q9}@Akwo2$l$djjH6MSa9%ZV(w+_>rK%RMJ_KiKfA ztLLw6{{A~wSHiP!>XWU`Gg4=&t$+QXG$=>d=KS(v&1I{OS+)x}X^WVIt(o-d$H6#v z?wrGu&nH_oR+m;Pdaue->(q_2Hnn&z(_?6G?AkZxImKthu3xaVlgc<(r#Q27lE*y% zkI%mD3-dYg>I?I6cjg`I{p^*xlr#k{H|@&(KJELS)Cj?IJD;rn!o2pLHN$~xXU~4P zsUl?dHHL%nn8d6PeltDRWUF0a4xgTXhu`F>^mk_8pS@q0eSh?RWiG7@7wxoC-Kn{M zW8DJ1_cz|md~3V@u=zXoS)cMIsr>Kc+IlXv+)!ZtZtjohv%T}WZc19gkA*?@2D|^;`9Jukcgbtb$}2(4J6ELyyRN;(f9IZS1*2|5 V%x!PE?RlUP1W#8#mvv4FO#nl959R;> literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/casings/machine_casing_stainless_evaporation.png b/kubejs/assets/tfg/textures/block/casings/machine_casing_stainless_evaporation.png new file mode 100644 index 0000000000000000000000000000000000000000..da4af96c0dbe6c6a2f8252a73f82930d9b6627bf GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdm+fgWR1M)}51i$-uzClJ4m1 z$iT3%pZiZDD+2?AdVo)eYnH9$$AE?g|{{=?lk literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/casings/machine_casing_stainless_evaporation.png.mcmeta b/kubejs/assets/tfg/textures/block/casings/machine_casing_stainless_evaporation.png.mcmeta new file mode 100644 index 000000000..56d55b4dd --- /dev/null +++ b/kubejs/assets/tfg/textures/block/casings/machine_casing_stainless_evaporation.png.mcmeta @@ -0,0 +1,5 @@ +{ + "ldlib": { + "connection": "tfg:block/casings/machine_casing_stainless_evaporation_ctm" + } +} diff --git a/kubejs/assets/tfg/textures/block/casings/machine_casing_stainless_evaporation_ctm.png b/kubejs/assets/tfg/textures/block/casings/machine_casing_stainless_evaporation_ctm.png new file mode 100644 index 0000000000000000000000000000000000000000..91321a59f64e8311e0a6c3734ec72d86034fa9ee GIT binary patch literal 456 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I7G?$phQ^Te;|vT8jKx9jP7LeL$-HD>U|>mi z^mSxl*x1kgCy|wbfk7+4C&cyo_2Q3J5OGjRXjO5X!7L6LE5H2 zfBt{Ax_0T(tsl?K%5}YVm4ShQv%n*=n1Ml034|F}J-R!Ifq_xo)5S4F*{Tia#{OH zY*o6V?yn2=`)j|kFUZ=lqxI=r(Xi|QzKPCNzlAQbt+Kt=VE*Nw<`wA$2UxENaacZ3 zQ+m~}aHYOxWoYk?Djp|35q=RN_CwkCjKt?;_Z^zXEV*FuGtUzTo!C+`w;a04(!I06 zf^DJQfuMT{fp7bq_$<`hOSf`6Suwm>THu*15cbDo!XZ)i;*XLijtYmz77M*Hz4Lvq zVcL((N&TFA?C1Z@e_s3P;ljH`rpIom$qSx%w8v`mj}tm}M&12q9x0 { event.shapeless(Item.of('gtceu:matchbox', '{usesLeft:8}'), ['minecraft:paper', '8x gtceu:matches']) .id('tfg:shapeless/matchbox') + + // Nano CPU use Nuclear Tritiated Water COMMENTED UNTIL MARS IS OUT +/* + event.replaceInput({ id: 'gtceu:chemical_reactor/nano_cpu_wafer' }, Fluid.of('gtceu:glowstone'), Fluid.of('gtceu:tritiated_water')) + event.replaceInput({ id: 'gtceu:large_chemical_reactor/nano_cpu_wafer' }, Fluid.of('gtceu:glowstone'), Fluid.of('gtceu:tritiated_water')) + + // Remove Plutonium from centrifuging Uranium dust + + event.remove({ id: 'gtceu:centrifuge/uranium_238_separation' }) + + event.recipes.gtceu.centrifuge('tfg:uranium_238_separation') + .itemInputs('#forge:dusts/uranium') + .chancedOutput('#forge:tiny_dusts/uranium_235', 2300, 0) + .duration(20*40) + .EUt(GTValues.VA[GTValues.HV]) +*/ + // Change the Large Centrifugal Unit to be craftable at EV + + event.remove({ id: 'gtceu:shaped/large_centrifuge' }) + + event.shaped('gtceu:large_centrifuge', [ + 'EFE', + 'ADA', + 'BCB' + ], { + A: '#gtceu:circuits/iv', + B: 'gtceu:ev_electric_motor', + C: 'gtceu:aluminium_single_cable', + D: 'gtceu:ev_centrifuge', + E: 'gtceu:molybdenum_disilicide_spring', + F: 'gtceu:stainless_steel_huge_fluid_pipe' + }).id('tfg:shaped/large_centrifuge') + } diff --git a/kubejs/server_scripts/gregtech/recipes.machines.js b/kubejs/server_scripts/gregtech/recipes.machines.js index 07a0dfede..9299fe74c 100644 --- a/kubejs/server_scripts/gregtech/recipes.machines.js +++ b/kubejs/server_scripts/gregtech/recipes.machines.js @@ -937,6 +937,8 @@ function registerGTCEuMachineRecipes(event) { .EUt(GTValues.VA[GTValues.ZPM]) .circuit(2) + //#endregion + event.recipes.gtceu.mixer('gtceu:chipboard_composite_wax') .itemInputs('2x #tfg:wood_dusts', '1x #forge:wax') diff --git a/kubejs/server_scripts/gregtech/recipes.removes.js b/kubejs/server_scripts/gregtech/recipes.removes.js index 31e485a53..646c409f1 100644 --- a/kubejs/server_scripts/gregtech/recipes.removes.js +++ b/kubejs/server_scripts/gregtech/recipes.removes.js @@ -692,6 +692,9 @@ function removeGTCEURecipes(event) { event.remove({ id: 'gtceu:shaped/mortar_grind_steel' }) event.remove({ id: 'gtceu:shaped/mortar_grind_wrought_iron' }) + // Replace by the Heat Exchanger recipe for Mars + event.remove({ id: 'gtceu:fluid_heater/formamide' }) + // Snow Stuffs event.remove({ id: 'gtceu:fluid_solidifier/snow_block' }) diff --git a/kubejs/server_scripts/tfg/recipes.js b/kubejs/server_scripts/tfg/recipes.js index 4cf6389e9..855d8b072 100644 --- a/kubejs/server_scripts/tfg/recipes.js +++ b/kubejs/server_scripts/tfg/recipes.js @@ -20,5 +20,6 @@ const registerTFGRecipes = (event) => { registerTFGSpaceRecipes(event) registerTFGStoneDustRecipes(event) registerTFGRecyclingRecipes(event) + registerTFGNuclearRecipes(event) } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.nuclear.js b/kubejs/server_scripts/tfg/recipes.nuclear.js new file mode 100644 index 000000000..9c0650f12 --- /dev/null +++ b/kubejs/server_scripts/tfg/recipes.nuclear.js @@ -0,0 +1,405 @@ +// priority: 0 + +function registerTFGNuclearRecipes(event) { + + //#region Nuclear Pellet + + event.recipes.gtceu.nuclear_fuel_factory('gtceu:thorium_pellet') + .itemInputs('1x #forge:nuggets/thorium_230', '1x #forge:ingots/thorium_232') + .itemOutputs('#forge:ingots/thorium_pellet') + .duration(20*30) + .EUt(GTValues.V[GTValues.HV]) + + event.recipes.gtceu.nuclear_fuel_factory('gtceu:uranium_pellet') + .inputFluids(Fluid.of('gtceu:uranium_waste', 1000)) + .itemInputs('#forge:nuggets/uranium_235', '1x #forge:ingots/uranium') + .itemOutputs('#forge:ingots/uranium_pellet') + .duration(20*30) + .EUt(GTValues.V[GTValues.HV]) + + event.recipes.gtceu.nuclear_fuel_factory('gtceu:plutonium_pellet') + .itemInputs('1x #forge:ingots/plutonium') + .inputFluids(Fluid.of('gtceu:radon', 10)) + .itemOutputs('#forge:ingots/plutonium_pellet') + .duration(20*30) + .EUt(GTValues.V[GTValues.EV]) + + event.recipes.gtceu.nuclear_fuel_factory('gtceu:tbu-232_pellet') + .inputFluids(Fluid.of('gtceu:nuclear_waste', 32000)) + .itemInputs('#forge:ingots/thorium_232') + .itemOutputs('#forge:ingots/tbu-232_pellet') + .duration(20*30) + .EUt(GTValues.V[GTValues.EV]) + + //#endregion + + //#region Processing Fuels + + event.recipes.gtceu.centrifuge('thorium_isotope') + //.inputFluids(Fluid.of('minecraft:water', 50)) + .itemInputs('9x #forge:dusts/thorium') + .chancedOutput('#forge:dusts/thorium_230', 9000, 0) + .itemOutputs('8x #forge:dusts/thorium_232') + .duration(20*30) + .EUt(GTValues.VA[GTValues.HV]) + + //#endregion + + //#region Mars Water + + event.recipes.gtceu.electrolyzer('mars_water') + .inputFluids(Fluid.of('tfg:semiheavy_ammoniacal_water', 1000)) + .outputFluids(Fluid.of('gtceu:heavy_water', 500)) + .itemOutputs('#forge:dusts/ammonium_chloride', '2x #forge:small_dusts/ammonium_chloride') + .duration(20*9) + .EUt(GTValues.VA[GTValues.LV]) + +/* event.recipes.gtceu.electric_blast_furnace('ammonium_chloryde') + .itemInputs('#forge:dusts/ammonium_chloride') + .outputFluids(Fluid.of('gtceu:hydrochloric_acid', 1000)) + .outputFluids(Fluid.of('gtceu:ammonia', 1000)) + .blastFurnaceTemp(4600) + .duration(20*36) + .EUt(GTValues.VA[GTValues.IV])*/ + + // Martian Sludge + + event.recipes.gtceu.chemical_bath('dirty_hexafluorosilicic_acid') + .itemInputs('32x #forge:mars_stone_dusts') + .inputFluids(Fluid.of('gtceu:hydrofluoric_acid', 1000)) + .outputFluids(Fluid.of('gtceu:dirty_hexafluorosilicic_acid', 1000)) + .duration(20*8) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.centrifuge('martian_sludge') + .inputFluids(Fluid.of('gtceu:dirty_hexafluorosilicic_acid', 1000)) + .outputFluids(Fluid.of('gtceu:martian_sludge', 1000)) + .outputFluids(Fluid.of('gtceu:hydrogen', 1000)) + .outputFluids(Fluid.of('gtceu:fluorine', 1000)) + .duration(20*16) + .EUt(GTValues.VA[GTValues.IV]) + + // Plutonium Process + + event.recipes.gtceu.gas_pressurizer('nuclear_residue') + .inputFluids(Fluid.of('gtceu:martian_sludge', 1000)) + .inputFluids(Fluid.of('gtceu:formamide', 1000)) + .inputFluids(Fluid.of('gtceu:radioactive_waste', 1000)) + .outputFluids(Fluid.of('gtceu:radon', 100)) + .itemOutputs('#forge:dusts/nuclear_residue') + .duration(20*48) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.vacuum_freezer('oxidized_nuclear_residue') + .itemInputs('#forge:dusts/nuclear_residue') + .inputFluids(Fluid.of('gtceu:dioxygen_difluoride', 1000)) + .outputFluids(Fluid.of('minecraft:water', 10)) + .itemOutputs('#forge:dusts/oxidized_nuclear_residue') + .duration(20*5) + .EUt(GTValues.VA[GTValues.IV]) + + event.recipes.gtceu.centrifuge('refined_nuclear_residue') + .inputFluids(Fluid.of('gtceu:distilled_water', 1000)) + .itemInputs('#forge:dusts/oxidized_nuclear_residue') + .itemOutputs('#forge:dusts/refined_nuclear_residue') + .outputFluids(Fluid.of('gtceu:hydrofluoric_acid', 2000)) + .outputFluids(Fluid.of('gtceu:oxygen', 1000)) + .duration(20*48) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.large_chemical_reactor('dioxygen_difluoride') + .inputFluids(Fluid.of('gtceu:oxygen', 2000)) + .inputFluids(Fluid.of('gtceu:fluorine', 2000)) + .outputFluids(Fluid.of('gtceu:dioxygen_difluoride', 1000)) + .duration(20*48) + .EUt(GTValues.VA[GTValues.IV]) + + event.recipes.gtceu.large_chemical_reactor('plutonium_dust') + .itemInputs('#forge:dusts/refined_nuclear_residue') + .inputFluids(Fluid.of('gtceu:hydrogen', 2000)) + .itemOutputs('#forge:dusts/plutonium') + .outputFluids(Fluid.of('gtceu:steam', 1000)) + .duration(20*48) + .EUt(GTValues.VA[GTValues.IV]) + + //#endregion + + //#region Heat Exchanger + + event.recipes.gtceu.heat_exchanger('uranium_steam') + .inputFluids(Fluid.of('minecraft:water', 100)) + .inputFluids(Fluid.of('gtceu:radioactive_steam', 100)) + .inputFluids(Fluid.of('gtceu:ammonium_formate', 100)) + .outputFluids(Fluid.of('gtceu:dense_steam', 100)) + .outputFluids(Fluid.of('gtceu:formamide', 100)) + .duration(20*10) + .EUt(1) + + event.recipes.gtceu.heat_exchanger('plutonium_steam') + .inputFluids(Fluid.of('minecraft:water', 100)) + .inputFluids(Fluid.of('gtceu:irradiated_steam', 100)) + .outputFluids(Fluid.of('gtceu:dense_steam', 100)) + .duration(20*10) + .EUt(1) + + // Heat Exchanger for Energy + + event.recipes.gtceu.heat_exchanger('flibe_cooling') + .inputFluids(Fluid.of('gtceu:hot_flibe', 100)) + .inputFluids(Fluid.of('gtceu:distilled_water', 100)) + .chancedFluidInput(Fluid.of('gtceu:hastelloy_c_276', 100), 5000, 0) + .chancedFluidOutput(Fluid.of('gtceu:flibe', 100), 9500, 0) + .outputFluids(Fluid.of('gtceu:dense_steam', 100)) + .duration(20*10) + .EUt(1) + + //#endregion + + //#region Fission Reactor + + event.recipes.gtceu.fission_reactor('thorium_uranium_waste') + .itemInputs('#forge:bolts/thorium_pellet') + .inputFluids(Fluid.of('minecraft:water', 200)) + .outputFluids(Fluid.of('gtceu:dense_steam', 200)) + .outputFluids(Fluid.of('gtceu:uranium_waste', 20)) + .duration(20*100) + .EUt(32) + + event.recipes.gtceu.fission_reactor('thorium_nuclear_waste') + .itemInputs('#forge:bolts/thorium_pellet') + .inputFluids(Fluid.of('gtceu:distilled_water', 200)) + .outputFluids(Fluid.of('gtceu:dense_steam', 200)) + .outputFluids(Fluid.of('gtceu:nuclear_waste', 10)) + .duration(20*100) + .EUt(32) + + event.recipes.gtceu.fission_reactor('uranium_radioactive') + .itemInputs('#forge:bolts/uranium_pellet') + .inputFluids(Fluid.of('gtceu:heavy_water', 500)) + .outputFluids(Fluid.of('gtceu:radioactive_steam', 500)) + .outputFluids(Fluid.of('gtceu:radioactive_waste', 50)) + .duration(20*100) + .EUt(32) + + event.recipes.gtceu.fission_reactor('plutonium_irradiated') + .itemInputs('#forge:bolts/plutonium_pellet') + .inputFluids(Fluid.of('gtceu:heavy_water', 1000)) + .outputFluids(Fluid.of('gtceu:irradiated_steam', 1000)) + .outputFluids(Fluid.of('gtceu:tritiated_water', 50)) + .duration(20*100) + .EUt(32) + + // Fission Reactor for Energy + + event.recipes.gtceu.fission_reactor('tbu_reactor') + .itemInputs('#forge:bolts/tbu-232_pellet') + .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) + + //#endregion + + //#region Power Generation + + event.recipes.gtceu.gas_turbine('dense_steam') + .inputFluids(Fluid.of('gtceu:dense_steam', 1)) + .EUt(-32) + .duration(20*2) + + //#endregion + + //#region FLiBe Line + + event.recipes.gtceu.evaporation_tower('raw_rich_brine') + .inputFluids(Fluid.of('tfc:spring_water', 20000)) + .outputFluids(Fluid.of('gtceu:raw_rich_brine', 1000)) + .duration(20*50) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.chemical_reactor('hydrogen_iodide_to_hot_iodine_brine') + .inputFluids(Fluid.of('gtceu:hydrogen_iodide', 1000)) + .inputFluids(Fluid.of('gtceu:raw_rich_brine', 1000)) + .outputFluids(Fluid.of('gtceu:sodium_potassium', 1000)) + .outputFluids(Fluid.of('gtceu:hot_iodine_brine', 1000)) + .duration(20*24) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.chemical_reactor('basic_bromine_exhaust_to_hot_iodine_brine') + .inputFluids(Fluid.of('gtceu:basic_bromine_exhaust', 1000)) + .inputFluids(Fluid.of('gtceu:raw_rich_brine', 1000)) + .outputFluids(Fluid.of('gtceu:sodium_potassium', 1000)) + .outputFluids(Fluid.of('gtceu:hot_iodine_brine', 1000)) + .outputFluids(Fluid.of('gtceu:steam', 1000)) + .duration(20*30) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.evaporation_tower('brominated_iodine_vapor') + .inputFluids(Fluid.of('gtceu:hot_iodine_brine', 10000)) + .itemOutputs('#forge:dusts/magnesium_chloride') + .outputFluids(Fluid.of('gtceu:brominated_iodine_vapor', 1000)) + .duration(20*50) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.chemical_reactor('lithium_carbonate') + .inputFluids(Fluid.of('gtceu:brominated_iodine_vapor', 1000)) + .itemInputs('#forge:dusts/sodium_hydroxide') + .itemOutputs('#forge:dusts/lithium_carbonate') + .outputFluids(Fluid.of('gtceu:basic_bromine_exhaust', 1000)) + .duration(20*54) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.chemical_reactor('lithium_fluoride') + .inputFluids(Fluid.of('gtceu:hydrofluoric_acid', 1000)) + .itemInputs('#forge:dusts/lithium_carbonate') + .itemOutputs('#forge:gems/lithium_fluoride') + .outputFluids(Fluid.of('gtceu:carbon_dioxide', 1000)) + .outputFluids(Fluid.of('minecraft:water', 1000)) + .duration(20*36) + .EUt(GTValues.VA[GTValues.IV]) + + event.recipes.gtceu.chemical_reactor('tetrafluoroberyllate') + .inputFluids(Fluid.of('gtceu:hydrofluoric_acid', 1000)) + .itemInputs('#forge:purified_ores/beryllium') + .itemOutputs('#forge:gems/tetrafluoroberyllate') + .outputFluids(Fluid.of('minecraft:water', 1000)) + .duration(20*36) + .EUt(GTValues.VA[GTValues.IV]) + + event.recipes.gtceu.alloy_blast_smelter('dirty_flibe') + .inputFluids(Fluid.of('gtceu:hydrofluoric_acid', 1000)) + .inputFluids(Fluid.of('gtceu:helium', 1000)) + .inputFluids(Fluid.of('minecraft:water', 1000)) + .itemInputs('#forge:gems/lithium_fluoride') + .itemInputs('#forge:gems/tetrafluoroberyllate') + .outputFluids(Fluid.of('gtceu:dirty_flibe', 1000)) + .blastFurnaceTemp(3600) + .duration(20*36) + .EUt(GTValues.VA[GTValues.IV]) + + event.recipes.gtceu.electrolyzer('flibe') + .inputFluids(Fluid.of('gtceu:dirty_flibe', 1000)) + .outputFluids(Fluid.of('gtceu:flibe', 1000)) + .itemOutputs('#forge:dusts/chromium') + .itemOutputs('gtceu:nickel_dust') + .itemOutputs('gtceu:iron_dust') + .duration(20*36) + .EUt(GTValues.VA[GTValues.IV]) + + //#endregion + + //#region Bromine Line + + 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.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/recipes.space.js b/kubejs/server_scripts/tfg/recipes.space.js index 8b1d279e3..da83f5408 100644 --- a/kubejs/server_scripts/tfg/recipes.space.js +++ b/kubejs/server_scripts/tfg/recipes.space.js @@ -48,6 +48,13 @@ function registerTFGSpaceRecipes(event) { .duration(20*60*30) .EUt(16) + event.recipes.gtceu.gas_collector('mars') + .circuit(3) + .outputFluids(Fluid.of('gtceu:carbon_dioxide', 10000)) + .dimension('ad_astra:mars') + .duration(20*10) + .EUt(16) + // Aqueous accumulator let aaCircuit = 1; diff --git a/kubejs/server_scripts/tfg/tags.js b/kubejs/server_scripts/tfg/tags.js index 6979a7bee..75f307d66 100644 --- a/kubejs/server_scripts/tfg/tags.js +++ b/kubejs/server_scripts/tfg/tags.js @@ -254,6 +254,12 @@ const registerTFGItemTags = (event) => { event.add('tfc:grass', 'tfg:grass/sangnum_mycelium') // #endregion + // Mars stone dust + + event.add('forge:mars_stone_dusts', 'tfg:venus_stone_dust') + event.add('forge:mars_stone_dusts', 'gtceu:granite_red_dust') + event.add('forge:mars_stone_dusts', 'tfg:mars_stone_dust') + // #region 0.7.19 -> 0.9 conversion event.add('c:hidden_from_recipe_viewers', 'treetap:tap') event.add('c:hidden_from_recipe_viewers', 'tfcea:refrigerator') diff --git a/kubejs/startup_scripts/gtceu/machines.js b/kubejs/startup_scripts/gtceu/machines.js index b8425b0f7..8ec4ef688 100644 --- a/kubejs/startup_scripts/gtceu/machines.js +++ b/kubejs/startup_scripts/gtceu/machines.js @@ -286,4 +286,141 @@ const registerGTCEuMachines = (event) => { ) .workableCasingModel('tfg:block/casings/machine_casing_iron_desh', 'gtceu:block/multiblock/hpca') + //#region Nuclear Multiblocks + + // Nuclear Fuel Factory + + event.create('nuclear_fuel_factory', 'multiblock') + .rotationState(RotationState.NON_Y_AXIS) + .recipeType('nuclear_fuel_factory') + .recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, GTRecipeModifiers.ELECTRIC_OVERCLOCK.apply(OverclockingLogic.NON_PERFECT_OVERCLOCK)]) + .appearanceBlock(() => Block.getBlock('gtceu:atomic_casing')) + .pattern(definition => FactoryBlockPattern.start() + .aisle('RLLLR', 'I I', 'I I', 'I I', 'RLLLR') + .aisle('LRRRL', ' KPK ', ' KPK ', ' KPK ', 'LRRRL') + .aisle('LRSRL', ' PCP ', ' PCP ', ' PCP ', 'LRSRL') + .aisle('LRRRL', ' KPK ', ' KPK ', ' KPK ', 'LRRRL') + .aisle('RLXLR', 'I I', 'I I', 'I I', 'RLLLR') + .where('X', Predicates.controller(Predicates.blocks(definition.get()))) + .where('R', Predicates.blocks('gtceu:atomic_casing')) + .where('I', Predicates.blocks('gtceu:stainless_steel_frame')) + .where('G', Predicates.blocks('gtceu:high_temperature_smelting_casing')) + .where('P', Predicates.blocks('gtceu:laminated_glass')) + .where('S', Predicates.blocks(GTBlocks.CASING_ENGINE_INTAKE.get())) + .where('K', Predicates.blocks('gtceu:high_temperature_smelting_casing')) + .where('C', Predicates.blocks(GTBlocks.COIL_RTMALLOY.get())) + .where('L', Predicates.blocks('gtceu:atomic_casing') + .or(Predicates.abilities(PartAbility.IMPORT_ITEMS).setPreviewCount(1)) + .or(Predicates.abilities(PartAbility.EXPORT_ITEMS).setPreviewCount(1)) + .or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1)) + .or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setPreviewCount(1)) + .or(Predicates.abilities(PartAbility.INPUT_ENERGY).setExactLimit(1)) + .or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setExactLimit(1))) + .where('#', Predicates.air()) + .where(' ', Predicates.any()) + .build() + ) + .workableCasingModel( + 'gtceu:block/casings/gcym/atomic_casing', + 'gtceu:block/machines/fermenter') + + // Nuclear Heat Exchanger + + event.create('heat_exchanger', 'multiblock') + .rotationState(RotationState.NON_Y_AXIS) + .recipeType('heat_exchanger') + .recipeModifiers([GTRecipeModifiers.OC_PERFECT_SUBTICK]) + .appearanceBlock(() => Block.getBlock('gtceu:high_temperature_smelting_casing')) + .pattern(definition => FactoryBlockPattern.start() + .aisle(' ','BBBBBBB','BCCCCCB','BBBBBBB',' ') + .aisle('AAAAAAA','A#####A','BDDDDDB','A#####A','AAAAAAA') + .aisle('AFFFFFA','B#####B','LEEEEEL','B#####B','AFFFFFA') + .aisle('AAAAAAA','A#####A','BDDDDDB','A#####A','AAAAAAA') + .aisle(' ','BBBXBBB','BCCCCCB','BBBMBBB',' ') + .where('X', Predicates.controller(Predicates.blocks(definition.get()))) + .where('A', Predicates.blocks('gtceu:atomic_casing')) + .where('B', Predicates.blocks('gtceu:high_temperature_smelting_casing') + .or(Predicates.abilities(PartAbility.INPUT_ENERGY).setExactLimit(1))) + .where('C', Predicates.blocks('gtceu:laminated_glass')) + .where('D', Predicates.blocks(GTBlocks.FIREBOX_TITANIUM.get())) + .where('E', Predicates.blocks(GTBlocks.CASING_TITANIUM_PIPE.get())) + .where('F', Predicates.blocks(GTBlocks.CASING_ENGINE_INTAKE.get())) + .where('L', Predicates.blocks('gtceu:high_temperature_smelting_casing') + .or(Predicates.abilities(PartAbility.IMPORT_FLUIDS_4X).setExactLimit(1)) + .or(Predicates.abilities(PartAbility.EXPORT_FLUIDS_4X).setExactLimit(1))) + .where('M', Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1) + .or(Predicates.blocks('gtceu:high_temperature_smelting_casing'))) + .where('#', Predicates.air()) + .where(' ', Predicates.any()) + .build() + ) + .workableCasingModel( + "gtceu:block/casings/gcym/high_temperature_smelting_casing", + "gtceu:block/machines/fluid_heater") + + // Nuclear Fission Reactor + + event.create('fission_reactor', 'multiblock') + .rotationState(RotationState.NON_Y_AXIS) + .recipeType('fission_reactor') + .recipeModifiers([GTRecipeModifiers.OC_PERFECT_SUBTICK]) + .appearanceBlock(() => Block.getBlock('gtceu:atomic_casing')) + .pattern(definition => FactoryBlockPattern.start() + .aisle('LLLLL','ABCBA','ABCBA','ABCBA','ABCBA','ABCBA','LLLLL') + .aisle('LAAAL','BE#EB','BE#EB','BE#EB','BE#EB','BE#EB','LAAAL') + .aisle('LAAAL','C#D#C','C#D#C','C#D#C','C#D#C','C#D#C','LAAAL') + .aisle('LAAAL','BE#EB','BE#EB','BE#EB','BE#EB','BE#EB','LAAAL') + .aisle('LLXLL','ABCBA','ABCBA','ABCBA','ABCBA','ABCBA','LLLLL') + .where('X', Predicates.controller(Predicates.blocks(definition.get()))) + .where('A', Predicates.blocks('gtceu:high_temperature_smelting_casing')) + .where('B', Predicates.blocks('gtceu:atomic_casing')) + .where('C', Predicates.blocks('gtceu:laminated_glass')) + .where('D', Predicates.blocks(GTBlocks.FIREBOX_TITANIUM.get())) + .where('E', Predicates.blocks('gtceu:titanium_frame')) + .where('F', Predicates.blocks(GTBlocks.CASING_ENGINE_INTAKE.get())) + .where('L', Predicates.blocks('gtceu:atomic_casing').setMinGlobalLimited(10) + .or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setPreviewCount(1)) + .or(Predicates.abilities(PartAbility.EXPORT_FLUIDS).setPreviewCount(1)) + .or(Predicates.abilities(PartAbility.IMPORT_ITEMS).setPreviewCount(1)) + .or(Predicates.abilities(PartAbility.INPUT_ENERGY).setExactLimit(1)) + .or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))) + .where('#', Predicates.air()) + .where(' ', Predicates.any()) + .build() + ) + .workableCasingModel( + "gtceu:block/casings/gcym/atomic_casing", + "gtceu:block/machines/electromagnetic_separator") + + //#endregion + + //#region Evaporation Tower + + event.create('evaporation_tower', 'multiblock') + .rotationState(RotationState.NON_Y_AXIS) + .recipeType('evaporation_tower') + .noRecipeModifier() + .appearanceBlock(() => Block.getBlock('tfg:casings/machine_casing_stainless_evaporation')) + .pattern(definition => FactoryBlockPattern.start() + .aisle('ZBZ','CCC','CCC','CCC',' A ') + .aisle('BAB','C#C','C#C','C#C','AAA') + .aisle('ZXZ','CCC','CCC','CCC',' A ') + .where('X', Predicates.controller(Predicates.blocks(definition.get()))) + .where('A', Predicates.blocks('tfg:casings/machine_casing_stainless_evaporation')) + .where('B', Predicates.blocks('tfg:casings/machine_casing_stainless_evaporation') + .or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setMaxGlobalLimited(1).setPreviewCount(1)) + .or(Predicates.abilities(PartAbility.EXPORT_ITEMS).setMaxGlobalLimited(1).setPreviewCount(1)) + .or(Predicates.abilities(PartAbility.INPUT_ENERGY).setExactLimit(1))) + .where('C', Predicates.blocks('tfg:casings/machine_casing_stainless_evaporation') + .or(Predicates.abilities(PartAbility.EXPORT_FLUIDS).setPreviewCount(1)) + .or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))) + .where('Z', Predicates.blocks('gtceu:aluminium_frame')) + .where('#', Predicates.air()) + .where(' ', Predicates.any()) + .build() + ) + .workableCasingModel( + 'gtceu:block/casings/solid/machine_casing_stainless_evaporation', + '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/materials.js index adee62c43..72398f083 100644 --- a/kubejs/startup_scripts/gtceu/materials.js +++ b/kubejs/startup_scripts/gtceu/materials.js @@ -292,7 +292,11 @@ const registerGTCEuMaterialModification = (event) => { // Change byproducts so you can't get certus from normal quartzite GTMaterials.Quartzite.getProperty(PropertyKey.ORE).setOreByProducts(GTMaterials.NetherQuartz, GTMaterials.Barite, GTMaterials.NetherQuartz); GTMaterials.CertusQuartz.getProperty(PropertyKey.ORE).setOreByProducts(GTMaterials.CertusQuartz, GTMaterials.Quartzite, GTMaterials.CertusQuartz); - + + // Change Beryllium to add Chemical Bath recipe and Thorium byproduct + GTMaterials.Beryllium.getProperty(PropertyKey.ORE).setOreByProducts(GTMaterials.Emerald, GTMaterials.Emerald, GTMaterials.Thorium, GTMaterials.Thorium); + GTMaterials.Beryllium.getProperty(PropertyKey.ORE).setWashedIn(GTMaterials.SodiumPersulfate); + // Color Adjustments GTMaterials.BismuthBronze.setMaterialARGB(0x5A966E) GTMaterials.BismuthBronze.setMaterialSecondaryARGB(0x203E2A) diff --git a/kubejs/startup_scripts/gtceu/recipe_types.js b/kubejs/startup_scripts/gtceu/recipe_types.js index cfbf4f01e..bfb360612 100644 --- a/kubejs/startup_scripts/gtceu/recipe_types.js +++ b/kubejs/startup_scripts/gtceu/recipe_types.js @@ -23,11 +23,44 @@ const registerGTCEuRecipeTypes = (event) => { .setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT) .setSound(GTSoundEntries.FIRE) - event.create('large_solar_panel') - .category('generator') - .setEUIO('out') - .setMaxIOSize(2, 0, 2, 1) - .setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY) - .setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT) - .setSound(GTSoundEntries.COOLING) -} + event.create('large_solar_panel') + .category('generator') + .setEUIO('out') + .setMaxIOSize(2, 0, 2, 1) + .setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY) + .setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT) + .setSound(GTSoundEntries.COOLING) + + event.create('nuclear_fuel_factory') + .category('nuclear_fuel_factory') + .setEUIO('in') + .setMaxIOSize(2, 1, 1, 0) + .setSlotOverlay(false, false, GuiTextures.ATOMIC_OVERLAY_1) + .setProgressBar(GuiTextures.ATOMIC_OVERLAY_1, FillDirection.DOWN_TO_UP) + .setSound(GTSoundEntries.MINER) + + event.create('heat_exchanger') + .category('heat_exchanger') + .setEUIO('in') + .setMaxIOSize(0, 0, 4, 4) + .setSlotOverlay(false, false, GuiTextures.ATOMIC_OVERLAY_1) + .setProgressBar(GuiTextures.ATOMIC_OVERLAY_1, FillDirection.DOWN_TO_UP) + .setSound(GTSoundEntries.MINER) + + event.create('fission_reactor') + .category('fission_reactor') + .setEUIO('in') + .setMaxIOSize(1, 0, 1, 2) + .setSlotOverlay(false, false, GuiTextures.ATOMIC_OVERLAY_1) + .setProgressBar(GuiTextures.ATOMIC_OVERLAY_1, FillDirection.DOWN_TO_UP) + .setSound(GTSoundEntries.MINER) + + event.create('evaporation_tower') + .category('evaporation_tower') + .setEUIO('in') + .setMaxIOSize(0, 1, 1, 6) + .setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY) + .setProgressBar(GuiTextures.PROGRESS_BAR_DISTILLATION_TOWER, FillDirection.LEFT_TO_RIGHT) + .setSound(GTSoundEntries.BATH) + +} diff --git a/kubejs/startup_scripts/main_startup_script.js b/kubejs/startup_scripts/main_startup_script.js index 17f75d1f8..101bb000a 100644 --- a/kubejs/startup_scripts/main_startup_script.js +++ b/kubejs/startup_scripts/main_startup_script.js @@ -54,6 +54,7 @@ GTCEuStartupEvents.registry('gtceu:material', event => { registerGTCEuMaterials(event) registerGreateMaterials(event) registerTFGMaterials(event) + registerTFGNuclearMaterials(event) }) GTCEuStartupEvents.registry('gtceu:material_icon_set', event => { @@ -69,6 +70,11 @@ GTCEuStartupEvents.registry('gtceu:dimension_marker', event => { registerTFGDimensionMarkers(event) }) + +GTCEuStartupEvents.registry("gtceu:element", event => { + registerTFGElement(event) +}) + Platform.mods.primitive_creatures.name = "Primitive Creatures"; Platform.mods.tfg.name = "TerraFirmaGreg"; Platform.mods.kubejs.name = "TerraFirmaGreg"; diff --git a/kubejs/startup_scripts/tfg/blocks.js b/kubejs/startup_scripts/tfg/blocks.js index feab89736..95cdd68fd 100644 --- a/kubejs/startup_scripts/tfg/blocks.js +++ b/kubejs/startup_scripts/tfg/blocks.js @@ -42,9 +42,20 @@ const registerTFGBlocks = (event) => { .hardness(5) .resistance(6) .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('minecraft:mineable/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('minecraft:mineable/pickaxe') + .tagBlock('minecraft:mineable/wrench') + .mapColor('color_light_gray') + //#endregion // #region Decorative vases diff --git a/kubejs/startup_scripts/tfg/constants.js b/kubejs/startup_scripts/tfg/constants.js index 1404c41ff..7c306fa9a 100644 --- a/kubejs/startup_scripts/tfg/constants.js +++ b/kubejs/startup_scripts/tfg/constants.js @@ -104,14 +104,15 @@ global.MARS_BIOMES = [ * @type {string[]} - Block Names */ global.TFG_MACHINE_CASINGS = [ - //'machine_casing_clean_stainless_steel_desh', - //'machine_casing_desh_ptfe', + 'machine_casing_clean_stainless_steel_desh', + 'machine_casing_desh_ptfe', 'machine_casing_iron_desh', - //'machine_casing_ptfe_desh', - //'machine_casing_stainless_steel_desh', - //'machine_casing_blue_solar_panel', - //'machine_casing_green_solar_panel', - 'machine_casing_red_solar_panel' + 'machine_casing_ptfe_desh', + 'machine_casing_stainless_steel_desh', + 'machine_casing_blue_solar_panel', + 'machine_casing_green_solar_panel', + 'machine_casing_red_solar_panel', + 'machine_casing_mars' ]; /** diff --git a/kubejs/startup_scripts/tfg/element.js b/kubejs/startup_scripts/tfg/element.js new file mode 100644 index 000000000..b71cadcb5 --- /dev/null +++ b/kubejs/startup_scripts/tfg/element.js @@ -0,0 +1,13 @@ +// priority: 0 + +const registerTFGElement = (event) => { + + event.create("thorium_230") + .protons(90) + .neutrons(230) + .symbol("Th²³⁰") + event.create("thorium_232") + .protons(90) + .neutrons(232) + .symbol("Th²³²") +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/items.js b/kubejs/startup_scripts/tfg/items.js index 8044a06fd..fb074c276 100644 --- a/kubejs/startup_scripts/tfg/items.js +++ b/kubejs/startup_scripts/tfg/items.js @@ -5,6 +5,7 @@ const registerTFGItems = (event) => { registerTFGDeprecatedItems(event) registerTFGFoodItems(event) + registerTFGNuclearItems(event) // #region Electronics event.create('tfg:unfinished_electron_tube', 'create:sequenced_assembly') diff --git a/kubejs/startup_scripts/tfg/items.nuclear.js b/kubejs/startup_scripts/tfg/items.nuclear.js new file mode 100644 index 000000000..b7af34d20 --- /dev/null +++ b/kubejs/startup_scripts/tfg/items.nuclear.js @@ -0,0 +1,6 @@ +// priority: 0 + +function registerTFGNuclearItems(event) { + + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials.js b/kubejs/startup_scripts/tfg/materials.js index 19d5cb83b..c8c2cea83 100644 --- a/kubejs/startup_scripts/tfg/materials.js +++ b/kubejs/startup_scripts/tfg/materials.js @@ -166,4 +166,58 @@ const registerTFGMaterials = (event) => { .secondaryColor(0xe65609) //end region + //#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) + .formula('?Cl') + + event.create('brominated_chlorine_vapor') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(320)) + .color(0xbf8d5a) + .formula('ClBr(H2O)') + + event.create('acidic_bromine_solution') + .liquid(new GTFluidBuilder().attribute(GTFluidAttributes.ACID)) + .color(0xe7b989) + .formula('ClBr') + + event.create('concentrated_bromine_solution') + .liquid() + .color(0x905d29) + .formula('Br2Cl') + + 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) + .formula('(H2O)3Cl') + + event.create('hot_alkaline_debrominated_brine') + .liquid() + .color(0xcc6a06) + .formula('?2Cl') + + event.create('hot_debrominated_brine') + .liquid(320) + .color(0xb08e6b) + + event.create('hydrogen_iodide') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(293)) + .color(0x82a6ce) + .formula('HI') + } diff --git a/kubejs/startup_scripts/tfg/materials.nuclear.js b/kubejs/startup_scripts/tfg/materials.nuclear.js new file mode 100644 index 000000000..239002ed4 --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials.nuclear.js @@ -0,0 +1,251 @@ +// priority: 0 + +const registerTFGNuclearMaterials = (event) => { + +/* event.create('mysterious_ooze') + .fluid() + .color(0x500bbf) + .fluidTemp(69420) + .dust() + .cableProperties(GTValues.V[GTValues.LV], 69, 0, true) // Voltage, Amperage, EU loss, Is Superconductor. + .gem(2, 4000) + .element(GTElements.C) + .ore(2, 3) + .color(0x7D2DDB) + .iconSet(GTMaterialIconSet.LIGNITE) + .ingot() + .components('1x andesite', '1x iron') + .color(0x839689) + .iconSet(GTMaterialIconSet.DULL) + .flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_SMALL_GEAR) +*/ + + //#region Fluid + + event.create('dense_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('2x hydrogen', '1x oxygen') + .formula("H20(?)") + .flags( + GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('radioactive_waste') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(3730)) + .formula("(?)") + .flags( + GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('irradiated_steam') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(4250)) + .formula("(?)") + .flags( + GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('heavy_water') + .fluid() + .components('2x deuterium', '1x oxygen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .iconSet(GTMaterialIconSet.FINE) + .color(0xB5B9FF) + .secondaryColor(0x81FFF9) + + event.create('uranium_waste') + .liquid(new GTFluidBuilder().customStill().temperature(3850)) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .iconSet(GTMaterialIconSet.FINE) + .color(0xB5B9FF) + .secondaryColor(0x81FFF9) + + event.create('nuclear_waste') + .liquid(new GTFluidBuilder().customStill().temperature(3850)) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .formula('(ThU(?)') + + event.create('dirty_hexafluorosilicic_acid') + .liquid(new GTFluidBuilder().attribute(GTFluidAttributes.ACID)) + //.liquid(320) + .formula('H2SiF6(?)') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xe6fafb) + .secondaryColor(0xb5fdff) + .iconSet(GTMaterialIconSet.getByName('thick_fluid')) + + event.create('martian_sludge') + .liquid(new GTFluidBuilder().temperature(4239)) + .formula('(?)') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xd86f27) + .secondaryColor(0xecd7c9) + .iconSet(GTMaterialIconSet.getByName('bullshit')) + + event.create('dioxygen_difluoride') + .fluid() + .components('2x oxygen', '2x fluorine') + .iconSet(GTMaterialIconSet.FINE) + .color(0xffa500) + .secondaryColor(0xffffff) + + event.create('tritiated_water') + .fluid() + .components('2x tritium', '1x oxygen') + .iconSet(GTMaterialIconSet.FINE) + .color(0xb2c3e7) + + // FLiBe Line + + event.create('raw_rich_brine') + .liquid(new GTFluidBuilder().customStill().temperature(293)) + + event.create('hot_iodine_brine') + .liquid(new GTFluidBuilder().customStill().temperature(293)) + .formula('HIMgCl(?)') + + event.create('brominated_iodine_vapor') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(412)) + .formula('HI(?)') + + event.create('basic_bromine_exhaust') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(406)) + + event.create('dirty_flibe') + .liquid(new GTFluidBuilder().customStill().temperature(293)) + .formula('FLiBe(?)') + + event.create('flibe') + .liquid(new GTFluidBuilder().customStill().temperature(293)) + .formula('FLiBe') + + event.create('hot_flibe') + .liquid(new GTFluidBuilder().customStill().temperature(3293)) + .formula('FLiBe') + + //#endregion + + //#region Dust + + event.create('tfg:mars_stone_dust') + .dust() + .components('2x deuterium', '1x oxygen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xE79B07) + .secondaryColor(0x5A4316) + .iconSet(GTMaterialIconSet.ROUGH) + + event.create('tfg:nuclear_residue') + .dust() + .formula('(?)') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x332816) + .secondaryColor(0x674c24) + .iconSet(GTMaterialIconSet.RADIOACTIVE) + + event.create('tfg:oxidized_nuclear_residue') + .dust() + .formula('U?O?(?)') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x286529) + .secondaryColor(0x012702) + .iconSet(GTMaterialIconSet.RADIOACTIVE) + + event.create('tfg:refined_nuclear_residue') + .dust() + .formula('U?(?)') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x82c383) + .secondaryColor('0xffffff') + .iconSet(GTMaterialIconSet.RADIOACTIVE) + + // FLiBe Dusts + + event.create('lithium_carbonate') + .dust() + .components('2x lithium', '1x carbon', '3x oxygen') + .formula('Li2CO3') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xffffff) + .secondaryColor(0xb7b9bd) + .iconSet(GTMaterialIconSet.GLASS) + + event.create('lithium_fluoride') + .gem() + .components('1x lithium', '1x fluorine') + .formula('LiF') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION, GTMaterialFlags.NO_UNIFICATION) + .color(0xffffff) + .secondaryColor(0xb7b9bd) + .iconSet(GTMaterialIconSet.FLINT) + + event.create('tetrafluoroberyllate') + .gem() + .components('1x beryllium', '4x fluorine') + .formula('BeF4') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION, GTMaterialFlags.NO_UNIFICATION) + .color(0xdcdee1) + .secondaryColor(0xb7b9bd) + .iconSet(GTMaterialIconSet.OPAL) + + //#endregion + + //#region Ingots + + event.create('thorium_230') + .ingot() + .element(GTElements.get("thorium_230")) + .iconSet(GTMaterialIconSet.RADIOACTIVE) + .color(0x323B2F) + .secondaryColor(0xECECEC) + .radioactiveHazard(1000000) + + event.create("thorium_232") + .ingot() + .element(GTElements.get("thorium_232")) + .iconSet(GTMaterialIconSet.METALLIC) + .color(0x5F694C) + .secondaryColor('0xFFFFFF') + .radioactiveHazard(1000) + + //#endregion + + //#region Fuel Pellet + + event.create('uranium_pellet') + .ingot() + .element(GTElements.U) + .iconSet(GTMaterialIconSet.METALLIC) + .color(0x216614) + .radioactiveHazard(1000000) + .flags(GTMaterialFlags.GENERATE_BOLT_SCREW, GTMaterialFlags.EXCLUDE_BLOCK_CRAFTING_RECIPES, GTMaterialFlags.NO_SMELTING) + + event.create('thorium_pellet') + .ingot() + .element(GTElements.Th) + .iconSet(GTMaterialIconSet.METALLIC) + .color(0x631e5a) + .radioactiveHazard(100000) + .flags(GTMaterialFlags.GENERATE_BOLT_SCREW, GTMaterialFlags.EXCLUDE_BLOCK_CRAFTING_RECIPES, GTMaterialFlags.NO_SMELTING) + + event.create('plutonium_pellet') + .ingot() + .element(GTElements.Pu) + .iconSet(GTMaterialIconSet.METALLIC) + .color(0xc91414) + .radioactiveHazard(10000000) + .flags(GTMaterialFlags.GENERATE_BOLT_SCREW, GTMaterialFlags.EXCLUDE_BLOCK_CRAFTING_RECIPES, GTMaterialFlags.NO_SMELTING) + + event.create('tbu-232_pellet') + .ingot() + .iconSet(GTMaterialIconSet.RADIOACTIVE) + .color(0xaa55ba) + .secondaryColor(0xECECEC) + .radioactiveHazard(10000000) + .flags(GTMaterialFlags.GENERATE_BOLT_SCREW, GTMaterialFlags.EXCLUDE_BLOCK_CRAFTING_RECIPES, GTMaterialFlags.NO_SMELTING) + + //#endregion + + }