Skip to content

Commit fb5bb6b

Browse files
authored
Merge pull request #16 from GTModpackTeam/add-Botania_Nature
2 parents 780f3cf + d0316bc commit fb5bb6b

13 files changed

Lines changed: 716 additions & 1 deletion

File tree

.github/workflows/publish.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@ jobs:
106106
traverse-reforged(recommended)
107107
nether-update-backport(recommended)
108108
the-twilight-forest(recommended)
109+
botania(recommended)
110+
natura(recommended)
109111
files: |
110112
build/libs/!(*-@(dev|sources|javadoc)).jar
111113
build/libs/*-@(sources).jar

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
# v1.2.1
2+
## New Integration
3+
- Botania
4+
- Natura
5+
6+
* * *
7+
18
# v1.2.0
29
## New Integration
310
- Ice and Fire: Dragons

dependencies.gradle

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,4 +147,16 @@ dependencies {
147147
if (project.debug_all.toBoolean() || project.debug_twilight.toBoolean()) {
148148
runtimeOnlyNonPublishable rfg.deobf("curse.maven:the-twilight-forest-227639:3051450") // The Twilight Forest 3.11.1021
149149
}
150+
151+
// Debug Botania
152+
if (project.debug_all.toBoolean() || project.debug_botania.toBoolean()) {
153+
runtimeOnlyNonPublishable rfg.deobf("curse.maven:baubles-227083:2518667") // Baubles 1.5.2
154+
runtimeOnlyNonPublishable rfg.deobf("curse.maven:botania-225643:3330934") // Botania r1.10-364.4
155+
}
156+
157+
// Debug Natura
158+
if (project.debug_all.toBoolean() || project.debug_natura.toBoolean()) {
159+
runtimeOnlyNonPublishable rfg.deobf("curse.maven:mantle-74924:2713386") // Mantle 1.3.3.55
160+
runtimeOnlyNonPublishable rfg.deobf("curse.maven:natura-74120:2711439") // Natura 4.3.2.69
161+
}
150162
}

gradle.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ debug_wizardry = false
4040
debug_traverse = false
4141
debug_nub = false
4242
debug_twilight = false
43+
debug_botania = false
44+
debug_natura = false
4345

4446
# Select a username for testing your mod with breakpoints. You may leave this empty for a random username each time you
4547
# restart Minecraft in development. Choose this dependent on your mod:

src/main/java/com/github/gtexpert/gtwp/GTWPMod.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@
4141
"after:" + Mods.Names.MYSTICAL_WORLD + ";" + "after:" + Mods.Names.ROOTS + ";" +
4242
"after:" + Mods.Names.BIOMES_O_PLENTY + ";" + "after:" + Mods.Names.ICE_AND_FIRE + ";" +
4343
"after:" + Mods.Names.WIZARDRY + ";" + "after:" + Mods.Names.TRAVERES + ";" +
44-
"after:" + Mods.Names.TWILIGHT_FOREST)
44+
"after:" + Mods.Names.TWILIGHT_FOREST + ";" + "after:" + Mods.Names.BOTANIA + ";" +
45+
"after:" + Mods.Names.NATURA)
4546
@Mod.EventBusSubscriber(modid = ModValues.MODID)
4647
public class GTWPMod {
4748

src/main/java/com/github/gtexpert/gtwp/api/util/Mods.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public enum Mods {
3131
Avaritiaaddons(Names.AVARITIAADDONS),
3232
Baubles(Names.BAUBLES),
3333
BoP(Names.BIOMES_O_PLENTY),
34+
Botania(Names.BOTANIA),
3435
Botany(Names.BOTANY),
3536
Chisel(Names.CHISEL),
3637
CTM(Names.CONNECTED_TEXTURES_MOD),
@@ -88,6 +89,7 @@ public enum Mods {
8889
ModularUI(Names.MODULRAUI),
8990
MixinBooter(Names.MIXINBOOTER),
9091
MysticalWorld(Names.MYSTICAL_WORLD),
92+
Natura(Names.NATURA),
9193
NeevesAE2(Names.NEEVES_AE2),
9294
Nothirium(Names.NOTHIRIUM),
9395
NuclearCraft(Names.NUCLEAR_CRAFT, versionExcludes("2o")),
@@ -142,6 +144,7 @@ public static class Names {
142144
public static final String AVARITIAADDONS = "avaritiaddons";
143145
public static final String BAUBLES = "baubles";
144146
public static final String BIOMES_O_PLENTY = "biomesoplenty";
147+
public static final String BOTANIA = "botania";
145148
public static final String BOTANY = "botany";
146149
public static final String CHISEL = "chisel";
147150
public static final String CONNECTED_TEXTURES_MOD = "ctm";
@@ -199,6 +202,7 @@ public static class Names {
199202
public static final String MODULRAUI = "modularui";
200203
public static final String MIXINBOOTER = "mixinbooter";
201204
public static final String MYSTICAL_WORLD = "mysticalworld";
205+
public static final String NATURA = "natura";
202206
public static final String NEEVES_AE2 = "nae2";
203207
public static final String NOTHIRIUM = "nothirium";
204208
public static final String NUCLEAR_CRAFT = "nuclearcraft";
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.github.gtexpert.gtwp.integration.botania;
2+
3+
import net.minecraftforge.common.config.Config;
4+
5+
import com.github.gtexpert.gtwp.api.ModValues;
6+
import com.github.gtexpert.gtwp.module.Modules;
7+
8+
@Config.LangKey(ModValues.MODID + ".config.integration.botania")
9+
@Config(modid = ModValues.MODID,
10+
name = ModValues.MODID + "/integration/" + Modules.MODULE_BOTANIA,
11+
category = "Botania")
12+
public class BotaniaConfigHolder {}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.github.gtexpert.gtwp.integration.botania;
2+
3+
import net.minecraft.item.crafting.IRecipe;
4+
import net.minecraftforge.event.RegistryEvent;
5+
6+
import com.github.gtexpert.gtwp.api.ModValues;
7+
import com.github.gtexpert.gtwp.api.modules.TModule;
8+
import com.github.gtexpert.gtwp.api.util.Mods;
9+
import com.github.gtexpert.gtwp.integration.GTWPIntegrationSubmodule;
10+
import com.github.gtexpert.gtwp.integration.botania.recipes.BotaniaWoodRecipe;
11+
import com.github.gtexpert.gtwp.module.Modules;
12+
13+
@TModule(
14+
moduleID = Modules.MODULE_BOTANIA,
15+
containerID = ModValues.MODID,
16+
modDependencies = Mods.Names.BOTANIA,
17+
name = "GTWoodProcessing Botania Integration",
18+
description = "Botania Integration Module")
19+
public class BotaniaModule extends GTWPIntegrationSubmodule {
20+
21+
@Override
22+
public void registerRecipesLowest(RegistryEvent.Register<IRecipe> event) {
23+
BotaniaWoodRecipe.init();
24+
}
25+
}
Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
package com.github.gtexpert.gtwp.integration.botania.recipes;
2+
3+
import static gregtech.api.GTValues.*;
4+
import static gregtech.api.GTValues.LV;
5+
import static gregtech.api.unification.ore.OrePrefix.dust;
6+
7+
import java.util.Arrays;
8+
import java.util.List;
9+
10+
import net.minecraft.item.ItemStack;
11+
import net.minecraft.util.ResourceLocation;
12+
13+
import gregtech.api.recipes.ModHandler;
14+
import gregtech.api.recipes.RecipeMaps;
15+
import gregtech.api.unification.material.Materials;
16+
import gregtech.api.util.GTUtility;
17+
import gregtech.common.ConfigHolder;
18+
import gregtech.loaders.WoodTypeEntry;
19+
20+
import com.github.gtexpert.gtwp.api.recipes.GTWPRecipeMaps;
21+
import com.github.gtexpert.gtwp.api.util.Mods;
22+
import com.github.gtexpert.gtwp.loaders.GTWPWoodRecipeLoader;
23+
24+
public class BotaniaWoodRecipe {
25+
26+
private static List<WoodTypeEntry> DEFAULT_ENTRIES;
27+
private static final String mcModId = Mods.Names.BOTANIA;
28+
29+
private static List<WoodTypeEntry> getDefaultEntries() {
30+
if (DEFAULT_ENTRIES == null) {
31+
return DEFAULT_ENTRIES = Arrays.asList(
32+
new WoodTypeEntry.Builder(mcModId, "living_wood")
33+
.log(Mods.Botania.getItem("livingwood"))
34+
.planks(Mods.Botania.getItem("livingwood", 1, 1), "livingwood_1")
35+
.slab(Mods.Botania.getItem("livingwood1slab"), "livingwood1slab_0")
36+
.stairs(Mods.Botania.getItem("livingwood1stairs"), "livingwood1stairs")
37+
.registerAllUnificationInfo()
38+
.build(),
39+
new WoodTypeEntry.Builder(mcModId, "dream_wood")
40+
.log(Mods.Botania.getItem("dreamwood"))
41+
.planks(Mods.Botania.getItem("dreamwood", 1, 1), "dreamwood_1")
42+
.slab(Mods.Botania.getItem("dreamwood1slab"), "dreamwood1slab_0")
43+
.stairs(Mods.Botania.getItem("dreamwood1stairs"), "dreamwood1stairs")
44+
.registerAllUnificationInfo()
45+
.build());
46+
}
47+
return DEFAULT_ENTRIES;
48+
}
49+
50+
public static void init() {
51+
for (WoodTypeEntry entry : getDefaultEntries()) {
52+
GTWPWoodRecipeLoader.removePlankRecipe(false, entry);
53+
54+
GTWPWoodRecipeLoader.registerWoodTypeRecipe(false, entry);
55+
GTWPWoodRecipeLoader.addCuttingRecipe(entry);
56+
GTWPWoodRecipeLoader.addSawmillRecipe(entry);
57+
}
58+
59+
// log-associated recipes
60+
String[] woodName = { "livingwood", "dreamwood", "shimmerwoodplanks" };
61+
for (String name : woodName) {
62+
ItemStack wood = Mods.Botania.getItem(name);
63+
ItemStack stair = Mods.Botania.getItem(name + "0stairs");
64+
ItemStack slab = Mods.Botania.getItem(name + "0slab");
65+
// stairs
66+
ModHandler.removeRecipeByName(new ResourceLocation(mcModId, name + "0stairs"));
67+
68+
ModHandler.addShapedRecipe(mcModId + name + "_stairs", GTUtility.copy(4, stair),
69+
"P ", "PP ", "PPP",
70+
'P', wood);
71+
72+
// plank -> stairs assembling
73+
RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder()
74+
.inputs(GTUtility.copy(6, wood))
75+
.outputs(GTUtility.copy(4, stair))
76+
.circuitMeta(7)
77+
.EUt(1).duration(100).buildAndRegister();
78+
79+
// Slabs
80+
// plank -> slab crafting
81+
ModHandler.addShapedRecipe(mcModId + name + "_slab_saw", GTUtility.copy(2, slab),
82+
"sS", 'S', wood);
83+
84+
if (ConfigHolder.recipes.hardWoodRecipes) {
85+
ModHandler.removeRecipeByName(new ResourceLocation(mcModId, name + "0slab_0"));
86+
}
87+
88+
// plank -> slab cutting
89+
RecipeMaps.CUTTER_RECIPES.recipeBuilder()
90+
.inputs(wood.copy())
91+
.outputs(GTUtility.copy(2, slab))
92+
.duration(200).EUt(VA[ULV])
93+
.buildAndRegister();
94+
95+
GTWPRecipeMaps.SAWMILL_RECIPES.recipeBuilder()
96+
.circuitMeta(17)
97+
.inputs(GTUtility.copy(6, wood))
98+
.fluidInputs(Materials.Water.getFluid(1000))
99+
.outputs(GTUtility.copy(24, slab))
100+
.output(dust, Materials.Wood, 12)
101+
.duration(600).EUt(VA[LV])
102+
.buildAndRegister();
103+
GTWPRecipeMaps.SAWMILL_RECIPES.recipeBuilder()
104+
.circuitMeta(18)
105+
.inputs(GTUtility.copy(6, wood))
106+
.fluidInputs(Materials.Water.getFluid(2500))
107+
.outputs(GTUtility.copy(36, slab))
108+
.duration(800).EUt(VA[LV])
109+
.buildAndRegister();
110+
GTWPRecipeMaps.SAWMILL_RECIPES.recipeBuilder()
111+
.circuitMeta(19)
112+
.inputs(GTUtility.copy(6, wood))
113+
.fluidInputs(Materials.DistilledWater.getFluid(600))
114+
.outputs(GTUtility.copy(24, slab))
115+
.output(dust, Materials.Wood, 12)
116+
.duration(450).EUt(VA[LV])
117+
.buildAndRegister();
118+
GTWPRecipeMaps.SAWMILL_RECIPES.recipeBuilder()
119+
.circuitMeta(20)
120+
.inputs(GTUtility.copy(6, wood))
121+
.fluidInputs(Materials.DistilledWater.getFluid(1500))
122+
.outputs(GTUtility.copy(36, slab))
123+
.duration(650).EUt(VA[LV])
124+
.buildAndRegister();
125+
GTWPRecipeMaps.SAWMILL_RECIPES.recipeBuilder()
126+
.circuitMeta(21)
127+
.inputs(GTUtility.copy(6, wood))
128+
.fluidInputs(Materials.Lubricant.getFluid(120))
129+
.outputs(GTUtility.copy(24, slab))
130+
.output(dust, Materials.Wood, 12)
131+
.duration(300).EUt(VA[LV])
132+
.buildAndRegister();
133+
GTWPRecipeMaps.SAWMILL_RECIPES.recipeBuilder()
134+
.circuitMeta(22)
135+
.inputs(GTUtility.copy(6, wood))
136+
.fluidInputs(Materials.Lubricant.getFluid(300))
137+
.outputs(GTUtility.copy(36, slab))
138+
.duration(500).EUt(VA[LV])
139+
.buildAndRegister();
140+
}
141+
}
142+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.github.gtexpert.gtwp.integration.natura;
2+
3+
import net.minecraftforge.common.config.Config;
4+
5+
import com.github.gtexpert.gtwp.api.ModValues;
6+
import com.github.gtexpert.gtwp.module.Modules;
7+
8+
@Config.LangKey(ModValues.MODID + ".config.integration.natura")
9+
@Config(modid = ModValues.MODID,
10+
name = ModValues.MODID + "/integration/" + Modules.MODULE_NATURA,
11+
category = "Natura")
12+
public class NaturaConfigHolder {}

0 commit comments

Comments
 (0)