Skip to content

Commit 72ad8ce

Browse files
committed
🐺🌸
1 parent 3684ff4 commit 72ad8ce

File tree

11 files changed

+144
-183
lines changed

11 files changed

+144
-183
lines changed

src/generated/resources/.cache/34d21386915eed570c73c4b9e3f5f51c4ec8c9d7

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// 1.21.1 2025-10-12T13:00:42.5709783 Item Models: futurefood
1+
// 1.21.1 2025-10-14T16:04:38.8837183 Item Models: futurefood
22
66684eb356b1463e5b38e36b309206e7968c3d4a assets/futurefood/models/item/antimatter_snack.json
33
fcf4bfffde1b1679c846c63b7bd6d6f74079bf27 assets/futurefood/models/item/atom_cola.json
44
8f780145ad2000b0300eb2dfb01eb5f356276c2e assets/futurefood/models/item/battery.json
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
// 1.21.1 2025-10-12T13:00:42.5729775 Languages: zh_cn for mod: futurefood
2-
897c051e2530876c926d47c473f671631c9a80dc assets/futurefood/lang/zh_cn.json
1+
// 1.21.1 2025-10-14T16:04:38.8847166 Languages: zh_cn for mod: futurefood
2+
8ff65a004410c27cbcb2cf6a2d19ffcd7405fd44 assets/futurefood/lang/zh_cn.json

src/generated/resources/assets/futurefood/lang/zh_cn.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,8 @@
4444
"item.futurefood.weakly_interacting_water_bottle": "弱相互作用水瓶",
4545
"item.futurefood.white_hole_cake": "白洞蛋糕",
4646
"item.futurefood.wormhole_cookie": "虫洞曲奇",
47-
"itemGroup.futurefood": "未来食物"
47+
"itemGroup.futurefood": "未来食物",
48+
"recipe.particle_collider,jei": "粒子对撞器",
49+
"recipe.particle_collider,processingTime": "处理时间:%s",
50+
"recipe.particle_collider.energy": "能量消耗:%s"
4851
}

src/main/java/top/ctnstudio/futurefood/builder/FoodPropertiesBuilder.java

Lines changed: 0 additions & 172 deletions
This file was deleted.
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package top.ctnstudio.futurefood.client.jei;
2+
3+
import mezz.jei.api.IModPlugin;
4+
import mezz.jei.api.JeiPlugin;
5+
import mezz.jei.api.registration.IRecipeCatalystRegistration;
6+
import mezz.jei.api.registration.IRecipeCategoryRegistration;
7+
import mezz.jei.api.registration.IRecipeRegistration;
8+
import net.minecraft.resources.ResourceLocation;
9+
import top.ctnstudio.futurefood.core.FutureFood;
10+
import top.ctnstudio.futurefood.core.ParticleColliderRecipeManager;
11+
import top.ctnstudio.futurefood.core.init.ModBlock;
12+
13+
@JeiPlugin
14+
public class ModJeiPlugin implements IModPlugin {
15+
@Override
16+
public ResourceLocation getPluginUid() {
17+
return FutureFood.modRL("jei_plugin");
18+
}
19+
20+
@Override
21+
public void registerCategories(IRecipeCategoryRegistration registration) {
22+
registration.addRecipeCategories(new ParticleColliderJeiRecipe(registration.getJeiHelpers().getGuiHelper()));
23+
}
24+
25+
@Override
26+
public void registerRecipes(IRecipeRegistration registration) {
27+
registration.addRecipes(ParticleColliderJeiRecipe.TYPE, ParticleColliderRecipeManager.getALLRecipes());
28+
}
29+
30+
@Override
31+
public void registerRecipeCatalysts(IRecipeCatalystRegistration registration) {
32+
registration.addRecipeCatalyst(ModBlock.PARTICLE_COLLIDER, ParticleColliderJeiRecipe.TYPE);
33+
}
34+
35+
}
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
package top.ctnstudio.futurefood.client.jei;
2+
3+
import mezz.jei.api.gui.builder.IRecipeLayoutBuilder;
4+
import mezz.jei.api.gui.builder.ITooltipBuilder;
5+
import mezz.jei.api.gui.drawable.IDrawable;
6+
import mezz.jei.api.gui.ingredient.IRecipeSlotsView;
7+
import mezz.jei.api.helpers.IGuiHelper;
8+
import mezz.jei.api.ingredients.ITypedIngredient;
9+
import mezz.jei.api.recipe.IFocusGroup;
10+
import mezz.jei.api.recipe.RecipeType;
11+
import mezz.jei.api.recipe.category.IRecipeCategory;
12+
import net.minecraft.network.chat.Component;
13+
import net.minecraft.resources.ResourceLocation;
14+
import net.minecraft.world.item.ItemStack;
15+
import org.jetbrains.annotations.Nullable;
16+
import top.ctnstudio.futurefood.api.recipe.ParticleColliderRecipe;
17+
import top.ctnstudio.futurefood.core.FutureFood;
18+
import top.ctnstudio.futurefood.core.init.ModBlock;
19+
20+
import java.util.Arrays;
21+
22+
public class ParticleColliderJeiRecipe implements IRecipeCategory<ParticleColliderRecipe> {
23+
public static final RecipeType<ParticleColliderRecipe> TYPE = RecipeType.create(
24+
FutureFood.ID, "particle_collider", ParticleColliderRecipe.class);
25+
26+
public static final ResourceLocation BACKGROUND = FutureFood.modRL("textures/gui/jei/particle_collider.png");
27+
28+
private IGuiHelper guiHelper;
29+
30+
public ParticleColliderJeiRecipe(IGuiHelper guiHelper) {
31+
this.guiHelper = guiHelper;
32+
}
33+
34+
@Override
35+
public RecipeType<ParticleColliderRecipe> getRecipeType() {
36+
return TYPE;
37+
}
38+
39+
@Override
40+
public Component getTitle() {
41+
return Component.translatable("recipe.particle_collider,jei");
42+
}
43+
44+
@Override
45+
public int getWidth() {
46+
return 153;
47+
}
48+
49+
@Override
50+
public int getHeight() {
51+
return 67;
52+
}
53+
54+
@Override
55+
public @Nullable IDrawable getBackground() {
56+
return guiHelper.createDrawable(BACKGROUND, 0, 0, this.getWidth(), this.getHeight());
57+
}
58+
59+
@Override
60+
public @Nullable IDrawable getIcon() {
61+
return this.guiHelper.createDrawableItemLike(ModBlock.PARTICLE_COLLIDER);
62+
}
63+
64+
@Override
65+
public void setRecipe(IRecipeLayoutBuilder builder, ParticleColliderRecipe recipe, IFocusGroup focuses) {
66+
builder.addInputSlot(21, 30).addItemStacks(Arrays.stream(recipe.input1().getItems())
67+
.map(it -> it.copyWithCount(recipe.input1Count())).toList());
68+
builder.addInputSlot(125, 30).addItemStacks(Arrays.stream(recipe.input2().getItems())
69+
.map(it -> it.copyWithCount(recipe.input2Count())).toList());
70+
71+
builder.addOutputSlot(73, 30).addItemStack(recipe.output());
72+
}
73+
74+
@Override
75+
public void getTooltip(ITooltipBuilder tooltip, ParticleColliderRecipe recipe,
76+
IRecipeSlotsView recipeSlotsView, double mouseX, double mouseY) {
77+
IRecipeCategory.super.getTooltip(tooltip, recipe, recipeSlotsView, mouseX, mouseY);
78+
79+
if (mouseX > 1 && mouseX < 12 && mouseY > 15 && mouseY < 53) {
80+
tooltip.add(Component.translatable("recipe.particle_collider.energy", recipe.energyCost()));
81+
} else if (mouseX > 57 && mouseX < 105 && mouseY > 4 && mouseY < 15) {
82+
tooltip.add(Component.translatable("recipe.particle_collider,processingTime", recipe.processingTime()));
83+
}
84+
}
85+
}

src/main/java/top/ctnstudio/futurefood/common/block/tile/ParticleColliderBlockEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import top.ctnstudio.futurefood.api.adapter.ModItemStackHandler;
2424
import top.ctnstudio.futurefood.api.block.IUnlimitedEntityReceive;
2525
import top.ctnstudio.futurefood.api.recipe.ParticleColliderRecipe;
26-
import top.ctnstudio.futurefood.api.recipe.ParticleColliderRecipeManager;
26+
import top.ctnstudio.futurefood.core.ParticleColliderRecipeManager;
2727
import top.ctnstudio.futurefood.common.block.ParticleColliderEntityBlock;
2828
import top.ctnstudio.futurefood.common.menu.ParticleColliderMenu;
2929
import top.ctnstudio.futurefood.core.init.ModTileEntity;

src/main/java/top/ctnstudio/futurefood/core/FutureFood.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import net.neoforged.fml.common.Mod;
88
import org.apache.logging.log4j.LogManager;
99
import org.apache.logging.log4j.Logger;
10-
import top.ctnstudio.futurefood.api.recipe.ParticleColliderRecipeManager;
1110
import top.ctnstudio.futurefood.core.init.*;
1211

1312
import javax.annotation.CheckForNull;

src/main/java/top/ctnstudio/futurefood/api/recipe/ParticleColliderRecipeManager.java renamed to src/main/java/top/ctnstudio/futurefood/core/ParticleColliderRecipeManager.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
1-
package top.ctnstudio.futurefood.api.recipe;
1+
package top.ctnstudio.futurefood.core;
22

3+
import com.google.common.collect.ImmutableList;
4+
import com.google.common.collect.Sets;
35
import net.minecraft.world.item.ItemStack;
46
import net.minecraft.world.item.Items;
57
import net.minecraft.world.item.crafting.Ingredient;
6-
import top.ctnstudio.futurefood.common.item.tool.FoodItem;
7-
import top.ctnstudio.futurefood.core.FutureFood;
8+
import top.ctnstudio.futurefood.api.recipe.ParticleColliderRecipe;
89
import top.ctnstudio.futurefood.core.init.ModItem;
910

1011
import java.util.ArrayList;
1112
import java.util.List;
1213
import java.util.Optional;
14+
import java.util.Set;
1315

1416
public class ParticleColliderRecipeManager {
15-
private static final List<ParticleColliderRecipe> RECIPES = new ArrayList<>();
17+
private static final Set<ParticleColliderRecipe> RECIPES = Sets.newHashSet();
1618
private static boolean needsInitialization = true;
1719

1820
/*
@@ -113,6 +115,7 @@ public static void initRecipes(){
113115
public static void checkAndInit() {
114116
if (needsInitialization) {
115117
initRecipes();
118+
needsInitialization = false;
116119
}
117120
}
118121

@@ -128,6 +131,6 @@ public static Optional<ParticleColliderRecipe> findRecipe(ItemStack input1, Item
128131
}
129132

130133
public static List<ParticleColliderRecipe> getALLRecipes(){
131-
return new ArrayList<>(RECIPES);
134+
return ImmutableList.copyOf(RECIPES);
132135
}
133136
}

src/main/java/top/ctnstudio/futurefood/datagen/DatagenI18EnUS.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@ protected void addTranslations() {
8282
// addFood(ModItem.GRAVITON_GELATO, "引力子冰淇淋", "这是铁砧做的吗?");
8383
// addFood(ModItem.PLASMA_SOUP, "等离子体汤", "这汤热得能把你烫伤。");
8484
// addFood(ModItem.NEUTRONIUM_STEAK, "中子星牛排", "中子星可以轻松的吃掉你的鱼子酱,但你可没法那么容易吃掉中子星的牛排。");
85+
86+
add("recipe.particle_collider,jei", "Particle Collider");
87+
add("recipe.particle_collider.energy", "energy cost:%s");
88+
add("recipe.particle_collider,processingTime", "processing time:%s");
8589
}
8690

8791
public void addConfig(String configKey, String translationDescribe, String commentDescribe) {

0 commit comments

Comments
 (0)