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 000000000..8cca66fc9 Binary files /dev/null and b/kubejs/assets/gtceu/textures/block/fluids/fluid.dense_steam.png differ 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 000000000..382800137 Binary files /dev/null and b/kubejs/assets/gtceu/textures/block/fluids/fluid.irradiated_steam.png differ 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 000000000..ad8a044a8 Binary files /dev/null and b/kubejs/assets/gtceu/textures/block/fluids/fluid.nuclear_waste.png differ 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 000000000..608ba1eb2 Binary files /dev/null and b/kubejs/assets/gtceu/textures/block/fluids/fluid.radioactive_steam.png differ 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 000000000..c97f8bf25 Binary files /dev/null and b/kubejs/assets/gtceu/textures/block/fluids/fluid.radioactive_waste.png differ diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.radioactive_waste.png.mcmeta b/kubejs/assets/gtceu/textures/block/fluids/fluid.radioactive_waste.png.mcmeta new file mode 100644 index 000000000..52c527b88 --- /dev/null +++ b/kubejs/assets/gtceu/textures/block/fluids/fluid.radioactive_waste.png.mcmeta @@ -0,0 +1,69 @@ +{ + "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, + 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.uranium_waste.png b/kubejs/assets/gtceu/textures/block/fluids/fluid.uranium_waste.png new file mode 100644 index 000000000..af5d59697 Binary files /dev/null and b/kubejs/assets/gtceu/textures/block/fluids/fluid.uranium_waste.png differ diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.uranium_waste.png.mcmeta b/kubejs/assets/gtceu/textures/block/fluids/fluid.uranium_waste.png.mcmeta new file mode 100644 index 000000000..744a3d54c --- /dev/null +++ b/kubejs/assets/gtceu/textures/block/fluids/fluid.uranium_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/tfg/textures/block/casings/machine_casing_mars.png b/kubejs/assets/tfg/textures/block/casings/machine_casing_mars.png new file mode 100644 index 000000000..d0ae5f6d2 Binary files /dev/null and b/kubejs/assets/tfg/textures/block/casings/machine_casing_mars.png differ diff --git a/kubejs/assets/tfg/textures/block/casings/machine_casing_mars.png.mcmeta b/kubejs/assets/tfg/textures/block/casings/machine_casing_mars.png.mcmeta new file mode 100644 index 000000000..65c0383d1 --- /dev/null +++ b/kubejs/assets/tfg/textures/block/casings/machine_casing_mars.png.mcmeta @@ -0,0 +1,5 @@ +{ + "ldlib": { + "connection": "tfg:block/casings/machine_casing_mars_ctm" + } +} diff --git a/kubejs/assets/tfg/textures/block/casings/machine_casing_mars_ctm.png b/kubejs/assets/tfg/textures/block/casings/machine_casing_mars_ctm.png new file mode 100644 index 000000000..e909e3533 Binary files /dev/null and b/kubejs/assets/tfg/textures/block/casings/machine_casing_mars_ctm.png differ 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 000000000..da4af96c0 Binary files /dev/null and b/kubejs/assets/tfg/textures/block/casings/machine_casing_stainless_evaporation.png differ 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 000000000..91321a59f Binary files /dev/null and b/kubejs/assets/tfg/textures/block/casings/machine_casing_stainless_evaporation_ctm.png differ diff --git a/kubejs/data/tfc/tfc/drinkables/aged_corn_whiskey.json b/kubejs/data/tfc/tfc/drinkables/aged_corn_whiskey.json index fb9caffac..6d66d009e 100644 --- a/kubejs/data/tfc/tfc/drinkables/aged_corn_whiskey.json +++ b/kubejs/data/tfc/tfc/drinkables/aged_corn_whiskey.json @@ -1,13 +1,13 @@ -{ - "__comment__": "This file was automatically created by mcresources", - "ingredient": "tfcagedalcohol:aged_corn_whiskey", - "thirst": 15, - "intoxication": 2000, - "effects": [ - { - "type": "minecraft:haste", - "duration": 6400, - "amplifier": 0 - } - ] +{ + "__comment__": "This file was automatically created by mcresources", + "ingredient": "tfcagedalcohol:aged_corn_whiskey", + "thirst": 15, + "intoxication": 2000, + "effects": [ + { + "type": "minecraft:haste", + "duration": 6400, + "amplifier": 0 + } + ] } \ No newline at end of file diff --git a/kubejs/data/tfc/tfc/drinkables/aged_rye_whiskey.json b/kubejs/data/tfc/tfc/drinkables/aged_rye_whiskey.json index bbf9420fc..964129e67 100644 --- a/kubejs/data/tfc/tfc/drinkables/aged_rye_whiskey.json +++ b/kubejs/data/tfc/tfc/drinkables/aged_rye_whiskey.json @@ -1,13 +1,13 @@ -{ - "__comment__": "This file was automatically created by mcresources", - "ingredient": "tfcagedalcohol:aged_rye_whiskey", - "thirst": 15, - "intoxication": 2000, - "effects": [ - { - "type": "minecraft:haste", - "duration": 6400, - "amplifier": 0 - } - ] +{ + "__comment__": "This file was automatically created by mcresources", + "ingredient": "tfcagedalcohol:aged_rye_whiskey", + "thirst": 15, + "intoxication": 2000, + "effects": [ + { + "type": "minecraft:haste", + "duration": 6400, + "amplifier": 0 + } + ] } \ No newline at end of file diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index 17789561a..3994256ef 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -1281,4 +1281,37 @@ const registerGTCEURecipes = (event) => { 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 + + }