Skip to content

Commit e36fc30

Browse files
committed
Attempt at generated recipes, round 1
1 parent 629c155 commit e36fc30

File tree

13 files changed

+101
-278
lines changed

13 files changed

+101
-278
lines changed

build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ minecraft {
8181
}
8282
}
8383

84+
sourceSets.main.resources { srcDir 'src/generated/resources' }
85+
8486
def getModVersion(filename) {
8587
// println(filename);
8688
def pattern = /^(?<modid>[^-]+)(?:-(?<mcversion>[0-9.]+))?(?:-(?<modver>[0-9.\-]+))\.jar$/;
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.robotgryphon.compactmachines.compat.jei;
2+
3+
import com.robotgryphon.compactmachines.CompactMachines;
4+
import mezz.jei.api.IModPlugin;
5+
import mezz.jei.api.JeiPlugin;
6+
import mezz.jei.api.runtime.IJeiRuntime;
7+
import net.minecraft.util.ResourceLocation;
8+
9+
@JeiPlugin
10+
public class CompactMachinesJeiPlugin implements IModPlugin {
11+
@Override
12+
public ResourceLocation getPluginUid() {
13+
return new ResourceLocation(CompactMachines.MODID, "main");
14+
}
15+
16+
@Override
17+
public void onRuntimeAvailable(IJeiRuntime jeiRuntime) {
18+
}
19+
}

src/main/java/com/robotgryphon/compactmachines/datagen/DataGeneration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ public static void gatherData(GatherDataEvent event) {
2020
}
2121

2222
private static void registerServerProviders(DataGenerator generator, GatherDataEvent event) {
23-
2423
generator.addProvider(new BlockLootGenerator(generator));
24+
generator.addProvider(new RecipeGenerator(generator));
2525
}
2626

2727
private static void registerClientProviders(DataGenerator generator, GatherDataEvent event) {
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package com.robotgryphon.compactmachines.datagen;
2+
3+
import com.robotgryphon.compactmachines.core.Registrations;
4+
import net.minecraft.data.DataGenerator;
5+
import net.minecraft.data.IFinishedRecipe;
6+
import net.minecraft.data.RecipeProvider;
7+
import net.minecraft.data.ShapedRecipeBuilder;
8+
import net.minecraft.item.Item;
9+
import net.minecraft.item.Items;
10+
import net.minecraft.tags.ITag;
11+
import net.minecraft.tags.ItemTags;
12+
import net.minecraft.util.IItemProvider;
13+
import net.minecraftforge.common.Tags;
14+
import net.minecraftforge.common.crafting.ConditionalRecipe;
15+
import net.minecraftforge.common.crafting.conditions.ModLoadedCondition;
16+
import net.minecraftforge.common.crafting.conditions.NotCondition;
17+
18+
import java.util.Objects;
19+
import java.util.function.Consumer;
20+
21+
public class RecipeGenerator extends RecipeProvider {
22+
public RecipeGenerator(DataGenerator generatorIn) {
23+
super(generatorIn);
24+
}
25+
26+
@Override
27+
protected void registerRecipes(Consumer<IFinishedRecipe> consumer) {
28+
ShapedRecipeBuilder.shapedRecipe(Registrations.ITEM_BREAKABLE_WALL.get())
29+
.patternLine(" R ")
30+
.patternLine(" I ")
31+
.key('R', Tags.Items.DUSTS_REDSTONE)
32+
.key('I', Tags.Items.STORAGE_BLOCKS_IRON)
33+
.addCriterion("has_recipe", hasItem(Tags.Items.STORAGE_BLOCKS_IRON))
34+
.build(consumer);
35+
36+
ShapedRecipeBuilder.shapedRecipe(Registrations.PERSONAL_SHRINKING_DEVICE.get())
37+
.patternLine(" P ")
38+
.patternLine("EBE")
39+
.patternLine(" I ")
40+
.key('P', Tags.Items.GLASS_PANES)
41+
.key('E', Items.ENDER_EYE)
42+
.key('B', Items.BOOK)
43+
.key('I', Tags.Items.INGOTS_IRON)
44+
.addCriterion("has_recipe", hasItem(Items.ENDER_EYE))
45+
.build(consumer);
46+
47+
registerMachineRecipe(consumer, Registrations.MACHINE_BLOCK_ITEM_TINY.get(), ItemTags.PLANKS);
48+
registerMachineRecipe(consumer, Registrations.MACHINE_BLOCK_ITEM_SMALL.get(), Tags.Items.STORAGE_BLOCKS_IRON);
49+
registerMachineRecipe(consumer, Registrations.MACHINE_BLOCK_ITEM_NORMAL.get(), Tags.Items.STORAGE_BLOCKS_GOLD);
50+
registerMachineRecipe(consumer, Registrations.MACHINE_BLOCK_ITEM_GIANT.get(), Tags.Items.STORAGE_BLOCKS_DIAMOND);
51+
registerMachineRecipe(consumer, Registrations.MACHINE_BLOCK_ITEM_LARGE.get(), Tags.Items.OBSIDIAN);
52+
registerMachineRecipe(consumer, Registrations.MACHINE_BLOCK_ITEM_MAXIMUM.get(), Tags.Items.STORAGE_BLOCKS_EMERALD);
53+
}
54+
55+
protected void registerMachineRecipe(Consumer<IFinishedRecipe> consumer, IItemProvider out, ITag<Item> center) {
56+
Item wall = Registrations.ITEM_BREAKABLE_WALL.get();
57+
ShapedRecipeBuilder recipe = ShapedRecipeBuilder.shapedRecipe(out)
58+
.patternLine("WWW");
59+
60+
if (center != null)
61+
recipe.patternLine("WCW");
62+
else
63+
recipe.patternLine("W W");
64+
65+
recipe.patternLine("WWW").key('W', wall);
66+
if (center != null)
67+
recipe.key('C', center);
68+
69+
recipe
70+
.addCriterion("has_recipe", hasItem(wall));
71+
72+
ConditionalRecipe.builder()
73+
.addCondition(new NotCondition(new ModLoadedCondition("compactcrafting")))
74+
.addRecipe(recipe::build)
75+
.build(consumer, Objects.requireNonNull(out.asItem().getRegistryName()));
76+
}
77+
}

src/main/resources/data/compactmachines/loot_tables/blocks/machine_giant.json

Lines changed: 0 additions & 38 deletions
This file was deleted.

src/main/resources/data/compactmachines/loot_tables/blocks/machine_large.json

Lines changed: 0 additions & 38 deletions
This file was deleted.

src/main/resources/data/compactmachines/loot_tables/blocks/machine_maximum.json

Lines changed: 0 additions & 38 deletions
This file was deleted.

src/main/resources/data/compactmachines/loot_tables/blocks/machine_normal.json

Lines changed: 0 additions & 38 deletions
This file was deleted.

src/main/resources/data/compactmachines/loot_tables/blocks/machine_small.json

Lines changed: 0 additions & 38 deletions
This file was deleted.

src/main/resources/data/compactmachines/loot_tables/blocks/machine_tiny.json

Lines changed: 0 additions & 38 deletions
This file was deleted.

0 commit comments

Comments
 (0)