Skip to content
This repository has been archived by the owner on May 25, 2024. It is now read-only.

Commit

Permalink
Migrate to new RecipeMap (#219)
Browse files Browse the repository at this point in the history
* Migrate GG recipemaps

* Migrate the rest

* Split classes, renames, more adapt to GT changes

* Update GT to adapt to MaceratorBackend removal

* update gradle+deps+bs

---------

Co-authored-by: Martin Robertz <[email protected]>
Co-authored-by: BlueWeabo <[email protected]>
  • Loading branch information
3 people authored Dec 3, 2023
1 parent c8fc878 commit 981df39
Show file tree
Hide file tree
Showing 33 changed files with 567 additions and 781 deletions.
30 changes: 7 additions & 23 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//version: 1697697256
//version: 1701530445
/*
DO NOT CHANGE THIS FILE!
Also, you may replace this file at any time if there is an update available.
Expand Down Expand Up @@ -28,27 +28,12 @@ import java.util.concurrent.TimeUnit

buildscript {
repositories {
mavenCentral()

maven {
name 'forge'
url 'https://maven.minecraftforge.net'
}
maven {
// GTNH RetroFuturaGradle and ASM Fork
name "GTNH Maven"
url "http://jenkins.usrv.eu:8081/nexus/content/groups/public/"
allowInsecureProtocol = true
}
maven {
name 'sonatype'
url 'https://oss.sonatype.org/content/repositories/snapshots/'
}
maven {
name 'Scala CI dependencies'
url 'https://repo1.maven.org/maven2/'
}

mavenLocal()
}
}
Expand Down Expand Up @@ -302,7 +287,7 @@ if (apiPackage) {
}

if (accessTransformersFile) {
for (atFile in accessTransformersFile.split(",")) {
for (atFile in accessTransformersFile.split(" ")) {
String targetFile = "src/main/resources/META-INF/" + atFile.trim()
if (!getFile(targetFile).exists()) {
throw new GradleException("Could not resolve \"accessTransformersFile\"! Could not find " + targetFile)
Expand Down Expand Up @@ -646,7 +631,7 @@ repositories {

def mixinProviderGroup = "io.github.legacymoddingmc"
def mixinProviderModule = "unimixins"
def mixinProviderVersion = "0.1.7.1"
def mixinProviderVersion = "0.1.13"
def mixinProviderSpecNoClassifer = "${mixinProviderGroup}:${mixinProviderModule}:${mixinProviderVersion}"
def mixinProviderSpec = "${mixinProviderSpecNoClassifer}:dev"
ext.mixinProviderSpec = mixinProviderSpec
Expand Down Expand Up @@ -793,12 +778,12 @@ ext.java17PatchDependenciesCfg = configurations.create("java17PatchDependencies"
}

dependencies {
def lwjgl3ifyVersion = '1.5.1'
def lwjgl3ifyVersion = '1.5.7'
if (modId != 'lwjgl3ify') {
java17Dependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}")
}
if (modId != 'hodgepodge') {
java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.3.17')
java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.3.35')
}

java17PatchDependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}:forgePatches") {transitive = false}
Expand Down Expand Up @@ -1187,9 +1172,8 @@ publishing {
version = System.getenv("RELEASE_VERSION") ?: identifiedVersion
}
}

repositories {
if (usesMavenPublishing.toBoolean()) {
if (usesMavenPublishing.toBoolean() && System.getenv("MAVEN_USER") != null) {
maven {
url = mavenPublishUrl
allowInsecureProtocol = mavenPublishUrl.startsWith("http://") // Mostly for the GTNH maven
Expand Down Expand Up @@ -1311,7 +1295,7 @@ def addCurseForgeRelation(String type, String name) {

// Updating

def buildscriptGradleVersion = "8.2.1"
def buildscriptGradleVersion = "8.5"

tasks.named('wrapper', Wrapper).configure {
gradleVersion = buildscriptGradleVersion
Expand Down
11 changes: 5 additions & 6 deletions dependencies.gradle
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
// Add your dependencies here

dependencies {
api('com.github.GTNewHorizons:GT5-Unofficial:5.09.44.73:dev')
api('com.github.GTNewHorizons:bartworks:0.8.9:dev')
api('com.github.GTNewHorizons:GT5-Unofficial:5.09.44.96:dev')
api('com.github.GTNewHorizons:bartworks:0.8.19:dev')
implementation('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev')
implementation('com.github.GTNewHorizons:GTplusplus:1.10.24:dev')
implementation('com.github.GTNewHorizons:GTplusplus:1.10.37:dev')

compileOnly('com.github.GTNewHorizons:ThaumicEnergistics:1.4.13-GTNH:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:ThaumicEnergistics:1.5.3-GTNH:dev') {transitive = false}

runtimeOnly('com.github.GTNewHorizons:NewHorizonsCoreMod:2.2.32:dev')
runtimeOnly('com.github.GTNewHorizons:Baubles:1.0.1.16:dev')
runtimeOnly('com.github.GTNewHorizons:Baubles:1.0.3:dev')
}
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
3 changes: 2 additions & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
5 changes: 4 additions & 1 deletion gradlew
Original file line number Diff line number Diff line change
Expand Up @@ -130,10 +130,13 @@ location of your Java installation."
fi
else
JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
fi

# Increase the maximum file descriptors if we can.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package goodgenerator.api.recipe;

import java.util.Collections;
import java.util.List;

import javax.annotation.ParametersAreNonnullByDefault;

import com.gtnewhorizons.modularui.api.math.Pos2d;
import com.gtnewhorizons.modularui.api.screen.ModularWindow;

import gregtech.api.recipe.BasicUIPropertiesBuilder;
import gregtech.api.recipe.NEIRecipePropertiesBuilder;
import gregtech.api.recipe.RecipeMapFrontend;
import gregtech.api.util.MethodsReturnNonnullByDefault;
import gregtech.common.gui.modularui.UIHelper;

@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
public class ComponentAssemblyLineFrontend extends RecipeMapFrontend {

public ComponentAssemblyLineFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder,
NEIRecipePropertiesBuilder neiPropertiesBuilder) {
super(uiPropertiesBuilder, neiPropertiesBuilder);
}

@Override
public List<Pos2d> getItemInputPositions(int itemInputCount) {
return UIHelper.getGridPositions(itemInputCount, 16, 8, 3);
}

@Override
public List<Pos2d> getItemOutputPositions(int itemOutputCount) {
return Collections.singletonList(new Pos2d(142, 8));
}

@Override
public List<Pos2d> getFluidInputPositions(int fluidInputCount) {

return UIHelper.getGridPositions(fluidInputCount, 88, 26, 4);
}

@Override
public void addGregTechLogo(ModularWindow.Builder builder, Pos2d windowOffset) {}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package goodgenerator.api.recipe;

import javax.annotation.ParametersAreNonnullByDefault;

import gregtech.api.recipe.RecipeMapBackendPropertiesBuilder;
import gregtech.api.recipe.maps.FuelBackend;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.MethodsReturnNonnullByDefault;

@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
public class ExtremeHeatExchangerBackend extends FuelBackend {

public ExtremeHeatExchangerBackend(RecipeMapBackendPropertiesBuilder propertiesBuilder) {
super(propertiesBuilder);
}

@Override
public GT_Recipe compileRecipe(GT_Recipe recipe) {
if (!(recipe instanceof ExtremeHeatExchangerRecipe)) {
throw new RuntimeException("Recipe must be instance of ExtremeHeatExchangerRecipe");
}
return super.compileRecipe(recipe);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package goodgenerator.api.recipe;

import java.util.Arrays;
import java.util.List;

import javax.annotation.ParametersAreNonnullByDefault;

import net.minecraft.util.StatCollector;
import net.minecraftforge.fluids.FluidStack;

import com.gtnewhorizons.modularui.api.math.Pos2d;

import gregtech.api.recipe.BasicUIPropertiesBuilder;
import gregtech.api.recipe.NEIRecipePropertiesBuilder;
import gregtech.api.recipe.RecipeMapFrontend;
import gregtech.api.util.GT_Utility;
import gregtech.api.util.MethodsReturnNonnullByDefault;
import gregtech.nei.RecipeDisplayInfo;
import gregtech.nei.formatter.INEISpecialInfoFormatter;

@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
public class ExtremeHeatExchangerFrontend extends RecipeMapFrontend {

public ExtremeHeatExchangerFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder,
NEIRecipePropertiesBuilder neiPropertiesBuilder) {
super(uiPropertiesBuilder, neiPropertiesBuilder.neiSpecialInfoFormatter(new EHESpecialValueFormatter()));
}

@Override
public List<Pos2d> getFluidInputPositions(int fluidInputCount) {
return Arrays.asList(new Pos2d(26, 13), new Pos2d(26, 37));
}

@Override
public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) {
return Arrays.asList(new Pos2d(128, 13), new Pos2d(128, 31), new Pos2d(128, 54));
}

private static class EHESpecialValueFormatter implements INEISpecialInfoFormatter {

@Override
public List<String> format(RecipeDisplayInfo recipeInfo) {
FluidStack[] Inputs = recipeInfo.recipe.mFluidInputs;
FluidStack[] Outputs = recipeInfo.recipe.mFluidOutputs;
int threshold = recipeInfo.recipe.mSpecialValue;
return Arrays.asList(
StatCollector.translateToLocal("value.extreme_heat_exchanger.0") + " "
+ GT_Utility.formatNumbers(Inputs[0].amount)
+ " L/s",
StatCollector.translateToLocal("value.extreme_heat_exchanger.1"),
GT_Utility.formatNumbers(Outputs[0].amount / 160) + " L/s",
StatCollector.translateToLocal("value.extreme_heat_exchanger.2"),
GT_Utility.formatNumbers(Outputs[1].amount / 160) + " L/s",
StatCollector.translateToLocal("value.extreme_heat_exchanger.4") + " " + threshold + " L/s");
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package goodgenerator.api.recipe;

import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;

import gregtech.api.util.GT_Recipe;

public class ExtremeHeatExchangerRecipe extends GT_Recipe {

public ExtremeHeatExchangerRecipe(FluidStack[] input, FluidStack[] output, int special) {
super(false, null, null, null, null, input, output, 0, 0, special);
}

public int getMaxHotFluidConsume() {
if (this.mFluidInputs != null) {
return this.mFluidInputs[0].amount;
}
return 0;
}

public Fluid getNormalSteam() {
if (this.mFluidOutputs != null) {
return this.mFluidOutputs[0].getFluid();
}
return null;
}

public Fluid getHeatedSteam() {
if (this.mFluidOutputs != null) {
return this.mFluidOutputs[1].getFluid();
}
return null;
}

public Fluid getCooledFluid() {
if (this.mFluidOutputs != null) {
return this.mFluidOutputs[2].getFluid();
}
return null;
}

public int getEUt() {
if (getNormalSteam() != null) {
switch (getNormalSteam().getName()) {
case "steam": {
int tVal = this.mFluidInputs[1].amount * 4;
if (tVal < 0) tVal = -tVal;
return tVal;
}
case "ic2superheatedsteam": {
int tVal = this.mFluidInputs[1].amount * 8;
if (tVal < 0) tVal = -tVal;
return tVal;
}
case "supercriticalsteam": {
int tVal = this.mFluidInputs[1].amount * 800;
if (tVal < 0) tVal = -tVal;
return tVal;
}
default:
return 0;
}
}
return 0;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package goodgenerator.api.recipe;

import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;

import net.minecraft.util.StatCollector;

import goodgenerator.client.GUI.GG_UITextures;
import gregtech.api.enums.GT_Values;
import gregtech.api.gui.modularui.GT_UITextures;
import gregtech.api.recipe.RecipeMap;
import gregtech.api.recipe.RecipeMapBackend;
import gregtech.api.recipe.RecipeMapBuilder;
import gregtech.api.util.GT_Utility;
import gregtech.nei.formatter.SimpleSpecialValueFormatter;

public class GoodGeneratorRecipeMaps {

public static final RecipeMap<RecipeMapBackend> naquadahReactorFuels = RecipeMapBuilder
.of("gg.recipe.naquadah_reactor").maxIO(0, 0, 1, 1).minInputs(0, 1)
.neiSpecialInfoFormatter(new SimpleSpecialValueFormatter("value.naquadah_reactor"))
.neiRecipeComparator(Comparator.comparing(recipe -> recipe.mSpecialValue)).dontUseProgressBar()
.addSpecialTexture(59, 20, 58, 42, GG_UITextures.PICTURE_NAQUADAH_REACTOR).build();
public static final RecipeMap<RecipeMapBackend> naquadahFuelRefineFactoryRecipes = RecipeMapBuilder
.of("gg.recipe.naquadah_fuel_refine_factory").maxIO(6, 0, 2, 1).minInputs(0, 1)
.neiSpecialInfoFormatter(new SimpleSpecialValueFormatter("value.naquadah_fuel_refine_factory")).build();
public static final RecipeMap<?> neutronActivatorRecipes = RecipeMapBuilder.of("gg.recipe.neutron_activator")
.maxIO(9, 9, 1, 1).dontUseProgressBar()
.addSpecialTexture(73, 22, 31, 21, GG_UITextures.PICTURE_NEUTRON_ACTIVATOR)
.neiSpecialInfoFormatter(recipeInfo -> {
int minNKE = recipeInfo.recipe.mSpecialValue % 10000;
int maxNKE = recipeInfo.recipe.mSpecialValue / 10000;
return Arrays.asList(
StatCollector.translateToLocal("value.neutron_activator.0"),
GT_Utility.formatNumbers(minNKE) + StatCollector.translateToLocal("value.neutron_activator.2"),
StatCollector.translateToLocal("value.neutron_activator.1"),
GT_Utility.formatNumbers(maxNKE) + StatCollector.translateToLocal("value.neutron_activator.2"));
}).build();
public static final RecipeMap<ExtremeHeatExchangerBackend> extremeHeatExchangerFuels = RecipeMapBuilder
.of("gg.recipe.extreme_heat_exchanger", ExtremeHeatExchangerBackend::new).maxIO(0, 0, 2, 3)
.dontUseProgressBar().addSpecialTexture(47, 13, 78, 59, GG_UITextures.PICTURE_EXTREME_HEAT_EXCHANGER)
.frontend(ExtremeHeatExchangerFrontend::new).build();
public static final RecipeMap<RecipeMapBackend> preciseAssemblerRecipes = RecipeMapBuilder
.of("gg.recipe.precise_assembler").maxIO(4, 1, 4, 0).progressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE)
.progressBarPos(85, 30).neiTransferRect(80, 30, 35, 18)
.neiSpecialInfoFormatter(new SimpleSpecialValueFormatter("value.precise_assembler"))
.frontend(PreciseAssemblerFrontend::new).build();
public static final RecipeMap<RecipeMapBackend> componentAssemblyLineRecipes = RecipeMapBuilder
.of("gg.recipe.componentassemblyline").maxIO(12, 1, 12, 0).neiTransferRect(70, 15, 18, 54)
.neiSpecialInfoFormatter(
recipeInfo -> Collections.singletonList(
StatCollector.translateToLocalFormatted(
"value.component_assembly_line",
GT_Values.VN[recipeInfo.recipe.mSpecialValue])))
.dontUseProgressBar().addSpecialTexture(70, 11, 72, 40, GG_UITextures.PICTURE_COMPONENT_ASSLINE)
.frontend(ComponentAssemblyLineFrontend::new).build();
}
Loading

0 comments on commit 981df39

Please sign in to comment.