Skip to content

Commit

Permalink
feat: remove legacy item tags for biomass
Browse files Browse the repository at this point in the history
  • Loading branch information
Elenterius committed Nov 1, 2023
1 parent 8a9df68 commit dd31596
Show file tree
Hide file tree
Showing 7 changed files with 65 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ private String getTagName(TagKey<Item> tag) {

IRecipeBuilder unlockedBy(String name, CriterionTriggerInstance criterionTrigger);

default IRecipeBuilder unlockedBy(String name, ItemPredicate predicate) {
return unlockedBy(name, inventoryTrigger(predicate));
}

default IRecipeBuilder unlockedBy(ItemLike itemLike, CriterionTriggerInstance criterionTrigger) {
return unlockedBy("has_" + getItemName(itemLike), criterionTrigger);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.github.alexthe666.alexsmobs.AlexsMobs;
import com.github.alexthe666.alexsmobs.item.AMItemRegistry;
import com.github.elenterius.biomancy.BiomancyMod;
import com.github.elenterius.biomancy.advancements.predicate.FoodItemPredicate;
import com.github.elenterius.biomancy.crafting.recipe.FoodNutritionIngredient;
import com.github.elenterius.biomancy.init.ModBioForgeTabs;
import com.github.elenterius.biomancy.init.ModItems;
Expand Down Expand Up @@ -370,30 +371,31 @@ private void registerWorkbenchRecipes(Consumer<FinishedRecipe> consumer) {
}

private void registerDigestingRecipes(Consumer<FinishedRecipe> consumer) {
FoodItemPredicate foodItemPredicate = new FoodItemPredicate();

DigesterRecipeBuilder.create(ModItems.NUTRIENT_PASTE.get(), 1, "poor_food")
.setIngredient(new FoodNutritionIngredient(0, 1))
.unlockedBy(ModItemTags.POOR_BIOMASS).save(consumer);
.unlockedBy("has_food", foodItemPredicate).save(consumer);

DigesterRecipeBuilder.create(ModItems.NUTRIENT_PASTE.get(), 2, "average_food")
.setIngredient(new FoodNutritionIngredient(2, 3))
.unlockedBy(ModItemTags.AVERAGE_BIOMASS).save(consumer);
.unlockedBy("has_food", foodItemPredicate).save(consumer);

DigesterRecipeBuilder.create(ModItems.NUTRIENT_PASTE.get(), 4, "good_food")
.setIngredient(new FoodNutritionIngredient(4, 5))
.unlockedBy(ModItemTags.GOOD_BIOMASS).save(consumer);
.unlockedBy("has_food", foodItemPredicate).save(consumer);

DigesterRecipeBuilder.create(ModItems.NUTRIENT_PASTE.get(), 6, "superb_food")
.setIngredient(new FoodNutritionIngredient(6, 7))
.unlockedBy(ModItemTags.SUPERB_BIOMASS).save(consumer);
.unlockedBy("has_food", foodItemPredicate).save(consumer);

DigesterRecipeBuilder.create(ModItems.NUTRIENT_PASTE.get(), 8, "excellent_food")
.setIngredient(new FoodNutritionIngredient(8, 9))
.unlockedBy(ModItemTags.SUPERB_BIOMASS).save(consumer);
.unlockedBy("has_food", foodItemPredicate).save(consumer);

DigesterRecipeBuilder.create(ModItems.NUTRIENT_PASTE.get(), 10, "godly_food")
.setIngredient(new FoodNutritionIngredient(10, Integer.MAX_VALUE))
.unlockedBy(ModItemTags.SUPERB_BIOMASS).save(consumer);
.unlockedBy("has_food", foodItemPredicate).save(consumer);

//////////////////////////

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@ public ModItemTagsProvider(DataGenerator dataGenerator, BlockTagsProvider blockT
super(dataGenerator, blockTagProvider, BiomancyMod.MOD_ID, existingFileHelper);
}

private static TagKey<Item> forgeTag(String path) {
return ItemTags.create(new ResourceLocation("forge", path));
}

@Override
protected void addTags() {
addBiomancyTags();
Expand All @@ -38,13 +42,6 @@ private void addBiomancyTags() {
.addOptional("create:sweet_roll", "create:chocolate_glazed_berries", "create:honeyed_apple", "create:bar_of_chocolate")
.addOptional("createaddition:chocolate_cake");

createTag(ModItemTags.POOR_BIOMASS);
createTag(ModItemTags.AVERAGE_BIOMASS);
createTag(ModItemTags.GOOD_BIOMASS);
createTag(ModItemTags.SUPERB_BIOMASS);
createTag(ModItemTags.BIOMASS)
.addTag(ModItemTags.POOR_BIOMASS, ModItemTags.AVERAGE_BIOMASS, ModItemTags.GOOD_BIOMASS, ModItemTags.SUPERB_BIOMASS);

createTag(ModItemTags.RAW_MEATS)
.add(BEEF, PORKCHOP, CHICKEN, RABBIT, MUTTON, COD, SALMON, TROPICAL_FISH, PUFFERFISH)
.add(AMItemRegistry.MOOSE_RIBS.get(), AMItemRegistry.KANGAROO_MEAT.get(), AMItemRegistry.RAW_CATFISH.get(), AMItemRegistry.BLOBFISH.get(), AMItemRegistry.MAGGOT.get())
Expand Down Expand Up @@ -74,10 +71,6 @@ private void addMinecraftTags() {
// tag(ItemTags.FENCES).getInternalBuilder().addTag(ModTags.Blocks.FLESHY_FENCES.getName(), BiomancyMod.MOD_ID);
}

private static TagKey<Item> forgeTag(String path) {
return ItemTags.create(new ResourceLocation("forge", path));
}

private void addForgeTags() {
// tag(ModItemTags.FORGE_TOOLS_KNIVES);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.github.elenterius.biomancy.advancements.predicate;

import com.github.elenterius.biomancy.BiomancyMod;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import net.minecraft.advancements.critereon.ItemPredicate;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.ItemStack;

public class FoodItemPredicate extends ItemPredicate {

public static final ResourceLocation ID = BiomancyMod.createRL("is_food_item");

public FoodItemPredicate() {}

@Override
public boolean matches(ItemStack stack) {
if (!stack.isEdible()) return false;
return stack.getFoodProperties(null) != null;
}

@Override
public JsonElement serializeToJson() {
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("type", ID.toString());
return jsonObject;
}

public static FoodItemPredicate deserializeFromJson(JsonObject jsonObject) {
return new FoodItemPredicate();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ public static void onSetup(final FMLCommonSetupEvent event) {
// if not thread safe do it after the common setup event on a single thread
event.enqueueWork(() -> {
ModTriggers.register();
ModPredicates.registerItemPredicates();

registerDispenserBehaviors();
ModRecipes.registerComposterRecipes();

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.github.elenterius.biomancy.init;

import com.github.elenterius.biomancy.advancements.predicate.FoodItemPredicate;
import net.minecraft.advancements.critereon.ItemPredicate;

public final class ModPredicates {

private ModPredicates() {}

public static void registerItemPredicates() {
ItemPredicate.register(FoodItemPredicate.ID, FoodItemPredicate::deserializeFromJson);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,6 @@ public final class ModItemTags {
public static final TagKey<Item> COOKED_MEATS = tag("cooked_meats");
public static final TagKey<Item> SUGARS = tag("sugars");

public static final TagKey<Item> BIOMASS = tag("biomass");
public static final TagKey<Item> POOR_BIOMASS = tag("poor_biomass");
public static final TagKey<Item> AVERAGE_BIOMASS = tag("average_biomass");
public static final TagKey<Item> GOOD_BIOMASS = tag("good_biomass");
public static final TagKey<Item> SUPERB_BIOMASS = tag("superb_biomass");

private ModItemTags() {}

private static TagKey<Item> tag(String name) {
Expand Down

0 comments on commit dd31596

Please sign in to comment.