Skip to content

Commit

Permalink
add Immersive Technology compat (#199)
Browse files Browse the repository at this point in the history
  • Loading branch information
WaitingIdly committed Aug 30, 2024
1 parent b7d0966 commit 807f9ee
Show file tree
Hide file tree
Showing 18 changed files with 1,933 additions and 3 deletions.
3 changes: 2 additions & 1 deletion dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,9 @@ final def mod_dependencies = [
'extrabotany-299086:3112313' : [project.debug_extra_botany],
'extra-utilities-2-225561:2678374' : [project.debug_extra_utilities_2],
'forestry-59751:2918418' : [project.debug_forestry],
'immersive_engineering-231951:2974106' : [project.debug_immersive_engineering, project.debug_immersive_petroleum],
'immersive_engineering-231951:2974106' : [project.debug_immersive_engineering, project.debug_immersive_petroleum, project.debug_immersive_technology],
'immersive-petroleum-268250:3382321' : [project.debug_immersive_petroleum],
'mct-immersive-technology-359407:5108047' : [project.debug_immersive_technology],
// WARNING: experimental must be placed before classic, otherwise you will crash when debugging either. Check FluidGenerator compat to confirm
'industrialcraft_experimental-242638:3838713' : [project.debug_industrial_craft_2_experimental],
'industrialcraft_classic-242942:3093607' : [project.debug_industrial_craft_2_classic],
Expand Down
263 changes: 263 additions & 0 deletions examples/postInit/immersivetech.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,263 @@

// Auto generated groovyscript example file
// MODS_LOADED: immersivetech

println 'mod \'immersivetech\' detected, running script'

// Boiler:
// Converts an input fluidstack into an output fluidstack after a given amount of time in a multiblock structure when the
// multiblock has had its heat value increased enough by fuel.

mods.immersivetech.boiler.removeByInput(fluid('water'))
mods.immersivetech.boiler.removeByOutput(fluid('steam'))
// mods.immersivetech.boiler.removeAll()

mods.immersivetech.boiler.recipeBuilder()
.fluidInput(fluid('lava') * 100)
.fluidOutput(fluid('hot_spring_water') * 500)
.time(100)
.register()

mods.immersivetech.boiler.recipeBuilder()
.fluidInput(fluid('water') * 50)
.fluidOutput(fluid('lava') * 50)
.time(50)
.register()


// Boiler Fuel:
// Converts an input fluidstack into heat for the Boiler multiblock structure over a given amount of time.

mods.immersivetech.boiler_fuel.removeByInput(fluid('biodiesel'))
// mods.immersivetech.boiler_fuel.removeAll()

mods.immersivetech.boiler_fuel.recipeBuilder()
.fluidInput(fluid('lava') * 100)
.time(100)
.heat(10)
.register()

mods.immersivetech.boiler_fuel.recipeBuilder()
.fluidInput(fluid('water') * 50)
.time(50)
.heat(0.05)
.register()


// Cooling Tower:
// Converts up to two input fluidstacks into up to three output fluidstacks after a given amount of time in a multiblock
// structure.

mods.immersivetech.cooling_tower.removeByInput(fluid('hot_spring_water'))
// mods.immersivetech.cooling_tower.removeByOutput(fluid('water'))
// mods.immersivetech.cooling_tower.removeAll()

mods.immersivetech.cooling_tower.recipeBuilder()
.fluidInput(fluid('lava') * 100)
.fluidOutput(fluid('hot_spring_water') * 500)
.time(100)
.register()

mods.immersivetech.cooling_tower.recipeBuilder()
.fluidInput(fluid('water') * 50, fluid('hot_spring_water') * 50)
.fluidOutput(fluid('lava') * 50, fluid('water') * 50, fluid('lava') * 50)
.time(50)
.register()


// Distiller:
// Converts an input fluidstack into an output fluidstack and has a chance to output an itemstack after a given amount of
// time in a multiblock structure.

// mods.immersivetech.distiller.removeByInput(fluid('water'))
mods.immersivetech.distiller.removeByOutput(fluid('distwater'))
// mods.immersivetech.distiller.removeByOutput(item('immersivetech:material'))
// mods.immersivetech.distiller.removeAll()

mods.immersivetech.distiller.recipeBuilder()
.fluidInput(fluid('lava') * 100)
.fluidOutput(fluid('hot_spring_water') * 500)
.time(100)
.register()

mods.immersivetech.distiller.recipeBuilder()
.fluidInput(fluid('water') * 50)
.fluidOutput(fluid('lava') * 50)
.output(item('minecraft:diamond'))
.chance(0.5f)
.time(50)
.energy(5000)
.register()


// Electrolytic Crucible Battery:
// Converts an input fluidstack into up to three output fluidstacks after a given amount of time and energy in a multiblock
// structure.

mods.immersivetech.electrolytic_crucible_battery.removeByInput(fluid('moltensalt'))
// mods.immersivetech.electrolytic_crucible_battery.removeByOutput(fluid('chlorine'))
// mods.immersivetech.electrolytic_crucible_battery.removeAll()

mods.immersivetech.electrolytic_crucible_battery.recipeBuilder()
.fluidInput(fluid('lava') * 100)
.fluidOutput(fluid('hot_spring_water') * 500)
.output(item('minecraft:clay'))
.time(100)
.register()

mods.immersivetech.electrolytic_crucible_battery.recipeBuilder()
.fluidInput(fluid('water') * 500)
.fluidOutput(fluid('lava') * 50, fluid('hot_spring_water') * 50, fluid('water') * 400)
.output(item('minecraft:diamond'))
.time(50)
.energy(5000)
.register()


// Gas Turbine:
// Converts an input fluidstack into an output fluidstack after a given amount of time in a multiblock structure, producing
// power for an adjacent Alternator multiblock.

mods.immersivetech.gas_turbine.removeByInput(fluid('biodiesel'))
// mods.immersivetech.gas_turbine.removeByOutput(fluid('fluegas'))
// mods.immersivetech.gas_turbine.removeAll()

mods.immersivetech.gas_turbine.recipeBuilder()
.fluidInput(fluid('lava') * 100)
.fluidOutput(fluid('hot_spring_water') * 500)
.time(100)
.register()

mods.immersivetech.gas_turbine.recipeBuilder()
.fluidInput(fluid('water') * 50)
.fluidOutput(fluid('lava') * 50)
.time(50)
.register()


// Heat Exchanger:
// Converts up to two input fluidstacks into up to two output fluidstacks after a given amount of time in a multiblock
// structure.

mods.immersivetech.heat_exchanger.removeByInput(fluid('fluegas'))
mods.immersivetech.heat_exchanger.removeByOutput(fluid('hot_spring_water'))
// mods.immersivetech.heat_exchanger.removeAll()

mods.immersivetech.heat_exchanger.recipeBuilder()
.fluidInput(fluid('lava') * 100, fluid('lava') * 50)
.fluidOutput(fluid('hot_spring_water') * 500)
.time(100)
.register()

mods.immersivetech.heat_exchanger.recipeBuilder()
.fluidInput(fluid('water') * 50, fluid('hot_spring_water') * 50)
.fluidOutput(fluid('lava') * 50, fluid('water') * 10)
.time(50)
.energy(5000)
.register()


// High-Pressure Steam Turbine:
// Converts an input fluidstack into an output fluidstack after a given amount of time in a multiblock structure, producing
// power for an adjacent Alternator multiblock.

mods.immersivetech.high_pressure_steam_turbine.removeByInput(fluid('highpressuresteam'))
// mods.immersivetech.high_pressure_steam_turbine.removeByOutput(fluid('steam'))
// mods.immersivetech.high_pressure_steam_turbine.removeAll()

mods.immersivetech.high_pressure_steam_turbine.recipeBuilder()
.fluidInput(fluid('lava') * 100)
.fluidOutput(fluid('hot_spring_water') * 500)
.time(100)
.register()

mods.immersivetech.high_pressure_steam_turbine.recipeBuilder()
.fluidInput(fluid('water') * 50)
.fluidOutput(fluid('lava') * 50)
.time(50)
.register()


// Melting Crucible:
// Converts an input itemstack into an output fluidstack after a given amount of time and energy in a multiblock structure.

mods.immersivetech.melting_crucible.removeByInput(item('minecraft:cobblestone'))
mods.immersivetech.melting_crucible.removeByOutput(fluid('moltensalt'))
// mods.immersivetech.melting_crucible.removeAll()

mods.immersivetech.melting_crucible.recipeBuilder()
.input(item('minecraft:diamond'))
.fluidOutput(fluid('hot_spring_water'))
.time(100)
.register()

mods.immersivetech.melting_crucible.recipeBuilder()
.input(item('minecraft:clay') * 8)
.fluidOutput(fluid('lava') * 50)
.time(50)
.energy(5000)
.register()


// Radiator:
// Converts an input fluidstack into an output fluidstack after a given amount of time in a multiblock structure.

mods.immersivetech.radiator.removeByInput(fluid('exhauststeam'))
// mods.immersivetech.radiator.removeByOutput(fluid('distwater'))
// mods.immersivetech.radiator.removeAll()

mods.immersivetech.radiator.recipeBuilder()
.fluidInput(fluid('lava') * 100)
.fluidOutput(fluid('hot_spring_water') * 500)
.time(100)
.register()

mods.immersivetech.radiator.recipeBuilder()
.fluidInput(fluid('water') * 50)
.fluidOutput(fluid('lava') * 50)
.time(50)
.register()


// Solar Tower:
// Converts an input fluidstack into an output fluidstack after a given amount of time in a multiblock structure, with the
// time being able to be sped up via Solar Reflector multiblocks.

mods.immersivetech.solar_tower.removeByInput(fluid('water'))
mods.immersivetech.solar_tower.removeByOutput(fluid('superheatedmoltensodium'))
// mods.immersivetech.solar_tower.removeAll()

mods.immersivetech.solar_tower.recipeBuilder()
.fluidInput(fluid('lava') * 100)
.fluidOutput(fluid('hot_spring_water') * 500)
.time(100)
.register()

mods.immersivetech.solar_tower.recipeBuilder()
.fluidInput(fluid('water') * 50)
.fluidOutput(fluid('lava') * 50)
.time(50)
.register()


// Steam Turbine:
// Converts an input fluidstack into an output fluidstack after a given amount of time in a multiblock structure, producing
// power for an adjacent Alternator multiblock.

mods.immersivetech.steam_turbine.removeByInput(fluid('steam'))
// mods.immersivetech.steam_turbine.removeByOutput(fluid('exhauststeam'))
// mods.immersivetech.steam_turbine.removeAll()

mods.immersivetech.steam_turbine.recipeBuilder()
.fluidInput(fluid('lava') * 100)
.fluidOutput(fluid('hot_spring_water') * 500)
.time(100)
.register()

mods.immersivetech.steam_turbine.recipeBuilder()
.fluidInput(fluid('water') * 50)
.fluidOutput(fluid('lava') * 50)
.time(50)
.register()


5 changes: 3 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
debug_run_ls = false
debug_use_examples_folder = true
debug_log_missing_lang_keys = true
debug_generate_examples = false
debug_generate_wiki = false
debug_generate_examples = true
debug_generate_wiki = true
debug_generate_and_crash = false

# END SECTION: development environment settings
Expand Down Expand Up @@ -40,6 +40,7 @@ debug_extra_utilities_2 = false
debug_forestry = false
debug_immersive_engineering = false
debug_immersive_petroleum = false
debug_immersive_technology = true
debug_industrial_craft_2_classic = false
debug_industrial_craft_2_experimental = false
debug_industrial_foregoing = false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import com.cleanroommc.groovyscript.compat.mods.ic2.IC2;
import com.cleanroommc.groovyscript.compat.mods.immersiveengineering.ImmersiveEngineering;
import com.cleanroommc.groovyscript.compat.mods.immersivepetroleum.ImmersivePetroleum;
import com.cleanroommc.groovyscript.compat.mods.immersivetechnology.ImmersiveTechnology;
import com.cleanroommc.groovyscript.compat.mods.industrialforegoing.IndustrialForegoing;
import com.cleanroommc.groovyscript.compat.mods.inspirations.Inspirations;
import com.cleanroommc.groovyscript.compat.mods.integrateddynamics.IntegratedDynamics;
Expand Down Expand Up @@ -101,6 +102,7 @@ public class ModSupport {
public static final GroovyContainer<Forestry> FORESTRY = new InternalModContainer<>("forestry", "Forestry", Forestry::new);
public static final GroovyContainer<ImmersiveEngineering> IMMERSIVE_ENGINEERING = new InternalModContainer<>("immersiveengineering", "Immersive Engineering", ImmersiveEngineering::new, "ie");
public static final GroovyContainer<ImmersivePetroleum> IMMERSIVE_PETROLEUM = new InternalModContainer<>("immersivepetroleum", "Immersive Petroleum", ImmersivePetroleum::new);
public static final GroovyContainer<ImmersiveTechnology> IMMERSIVE_TECHNOLOGY = new InternalModContainer<>("immersivetech", "Immersive Technology", ImmersiveTechnology::new);
public static final GroovyContainer<IC2> INDUSTRIALCRAFT = new InternalModContainer<>("ic2", "Industrial Craft 2", IC2::new, "industrialcraft");
public static final GroovyContainer<IndustrialForegoing> INDUSTRIAL_FOREGOING = new InternalModContainer<>("industrialforegoing", "Industrial Foregoing", IndustrialForegoing::new);
public static final GroovyContainer<Inspirations> INSPIRATIONS = new InternalModContainer<>("inspirations", "Inspirations", Inspirations::new);
Expand Down
Loading

0 comments on commit 807f9ee

Please sign in to comment.