NaturesAura/src/main/java/de/ellpeck/naturesaura/compat/patchouli/ProcessorAnimalSpawner.java

54 lines
1.9 KiB
Java
Raw Normal View History

2019-01-01 15:20:12 +01:00
package de.ellpeck.naturesaura.compat.patchouli;
import de.ellpeck.naturesaura.api.NaturesAuraAPI;
import de.ellpeck.naturesaura.api.recipes.AnimalSpawnerRecipe;
import net.minecraft.client.resources.I18n;
2020-01-21 21:04:44 +01:00
import net.minecraft.entity.EntityType;
2019-01-01 15:20:12 +01:00
import net.minecraft.item.ItemStack;
2020-01-21 21:04:44 +01:00
import net.minecraft.item.SpawnEggItem;
import net.minecraftforge.registries.ForgeRegistries;
2019-01-01 15:20:12 +01:00
import vazkii.patchouli.api.IComponentProcessor;
import vazkii.patchouli.api.IVariableProvider;
import vazkii.patchouli.api.PatchouliAPI;
public class ProcessorAnimalSpawner implements IComponentProcessor {
private AnimalSpawnerRecipe recipe;
@Override
public void setup(IVariableProvider<String> provider) {
this.recipe = PatchouliCompat.getRecipe(NaturesAuraAPI.ANIMAL_SPAWNER_RECIPES, provider.get("recipe"));
2019-01-01 15:20:12 +01:00
}
@Override
public String process(String key) {
if (this.recipe == null)
return null;
2019-01-01 15:20:12 +01:00
if (key.startsWith("input")) {
int id = Integer.parseInt(key.substring(5)) - 1;
if (this.recipe.ingredients.length > id)
return PatchouliAPI.instance.serializeIngredient(this.recipe.ingredients[id]);
else
return null;
} else {
2020-01-21 21:04:44 +01:00
EntityType entry = ForgeRegistries.ENTITIES.getValue(this.recipe.entity);
2019-01-01 15:20:12 +01:00
switch (key) {
case "name":
return I18n.format("entity." + entry.getName() + ".name");
case "entity":
return this.recipe.entity.toString();
case "egg":
2020-01-21 21:04:44 +01:00
ItemStack egg = new ItemStack(SpawnEggItem.getEgg(entry));
2019-01-01 15:20:12 +01:00
return PatchouliAPI.instance.serializeItemStack(egg);
default:
return null;
}
}
}
@Override
public boolean allowRender(String group) {
return !"seekrit".equals(group);
}
}