类net.minecraftforge.common.crafting.CraftingHelper源码实例Demo

下面列出了怎么用net.minecraftforge.common.crafting.CraftingHelper的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: GregTech   文件: MetaItemShapelessRecipeFactory.java
@Override
public IRecipe parse(JsonContext context, JsonObject json) {
    String group = JsonUtils.getString(json, "group", "");

    NonNullList<Ingredient> ings = NonNullList.create();
    for (JsonElement ele : JsonUtils.getJsonArray(json, "ingredients"))
        ings.add(CraftingHelper.getIngredient(ele, context));

    if (ings.isEmpty())
        throw new JsonParseException("No ingredients for shapeless recipe");

    JsonObject result = JsonUtils.getJsonObject(json, "result");
    String name = JsonUtils.getString(result, "name");
    int amount = JsonUtils.getInt(result, "amount", 1);
    ItemStack stack = ItemStack.EMPTY;
    for (MetaItem<?> item : MetaItems.ITEMS) {
        MetaItem<?>.MetaValueItem value = item.getItem(name);
        if (value != null) {
            stack = value.getStackForm(amount);
        }
    }
    return new ShapelessOreRecipe(group.isEmpty() ? null : new ResourceLocation(group), ings, stack);
}
 
@Override
public IRecipe parse(JsonContext context, JsonObject json)
{
    String group = JsonUtils.getString(json, "group", "");

    NonNullList<Ingredient> ings = NonNullList.create();
    for (JsonElement ele : JsonUtils.getJsonArray(json, "ingredients"))
        ings.add(CraftingHelper.getIngredient(ele, context));

    if (ings.isEmpty())
        throw new JsonParseException("No ingredients for shapeless recipe");

    ItemStack itemstack = CraftingHelper.getItemStack(JsonUtils.getJsonObject(json, "result"), context);

    int[] damage = new int[ings.size()];
    if (JsonUtils.hasField(json, "damage"))
    {
        JsonArray array = JsonUtils.getJsonArray(json, "damage");
        if (array.size() > damage.length)
            throw new JsonParseException("Too many values for damage array: got " + array.size() + ", expected " + damage.length);

        for (int i = 0; i < array.size(); i++)
        {
            JsonElement element = array.get(i);
            if (!element.isJsonPrimitive() || !element.getAsJsonPrimitive().isNumber())
                throw new JsonSyntaxException("Entry in damage array is not a number, got " + element);

            damage[i] = element.getAsJsonPrimitive().getAsInt();
        }
    }
    return new DamageableShapelessOreRecipe(group.isEmpty() ? null : new ResourceLocation(group), damage, ings, itemstack);
}
 
源代码3 项目: Wizardry   文件: RecipeShapelessFluidFactory.java
@Override
public IRecipe parse(JsonContext context, JsonObject json) {
	String group = JsonUtils.getString(json, "group", "");
	NonNullList<Ingredient> ingredients = NonNullList.create();
	for (JsonElement element : JsonUtils.getJsonArray(json, "ingredients"))
		ingredients.add(CraftingHelper.getIngredient(element, context));

	if (ingredients.isEmpty())
		throw new JsonParseException("No ingredients in shapeless recipe");

	ItemStack result = CraftingHelper.getItemStack(JsonUtils.getJsonObject(json, "result"), context);
	RecipeShapelessFluid recipe = new RecipeShapelessFluid(group.isEmpty() ? null : new ResourceLocation(group), result, ingredients);

	return recipe;
}
 
源代码4 项目: Wizardry   文件: ManaRecipes.java
public static String[] getResourceListing(String mod, String path) {
	List<String> all = Lists.newArrayList();
	if (CraftingHelper.findFiles(Loader.instance().getIndexedModList().get(mod), "assets/" + mod + "/" + path, null,
			(root, full) -> all.add(root.relativize(full).toString()), false, false))
		return all.toArray(new String[0]);
	return new String[0];
}
 
源代码5 项目: Valkyrien-Skies   文件: Module.java
@Deprecated
public static void registerRecipe(RegistryEvent.Register<IRecipe> event, String registryName,
    ItemStack out, Object... in) {
    CraftingHelper.ShapedPrimer primer = CraftingHelper.parseShaped(in);
    event.getRegistry()
        .register(new ShapedRecipes(ValkyrienSkiesMod.MOD_ID, primer.width, primer.height,
            primer.input, out).setRegistryName(ValkyrienSkiesMod.MOD_ID, registryName));
}
 
源代码6 项目: Valkyrien-Skies   文件: ValkyrienSkiesMod.java
private static void registerRecipe(RegistryEvent.Register<IRecipe> event,
    String registryName, ItemStack out, Object... in) {
    CraftingHelper.ShapedPrimer primer = CraftingHelper.parseShaped(in);
    event.getRegistry()
        .register(new ShapedRecipes(ValkyrienSkiesMod.MOD_ID, primer.width, primer.height,
            primer.input, out)
            .setRegistryName(ValkyrienSkiesMod.MOD_ID, registryName));
}
 
源代码7 项目: Survivalist   文件: SurvivalistMod.java
private void registerRecipeSerializers(RegistryEvent.Register<IRecipeSerializer<?>> event)
{
    CraftingHelper.register(ConfigurationCondition.Serializer.INSTANCE);
    CraftingHelper.register(ConfigToggledIngredientSerializer.NAME, ConfigToggledIngredientSerializer.INSTANCE);

    event.getRegistry().registerAll(
            new DryingRecipe.Serializer().setRegistryName("drying"),
            new ChoppingRecipe.Serializer().setRegistryName("chopping")
    );
}
 
@Override
public Ingredient parse(JsonObject json)
{
    String categoryName = JSONUtils.getString(json, "category");
    String keyName = JSONUtils.getString(json, "key");

    return new ConfigToggledIngredient(
            categoryName, keyName,
            CraftingHelper.getIngredient(json.getAsJsonObject("then")),
            CraftingHelper.getIngredient(json.getAsJsonObject("else"))
    );
}
 
源代码9 项目: AgriCraft   文件: CustomWoodShapedRecipe.java
@Override
public IRecipe parse(JsonContext context, JsonObject json) {
    ShapedOreRecipe fake = ShapedOreRecipe.factory(context, json);
    CraftingHelper.ShapedPrimer primer = new CraftingHelper.ShapedPrimer();
    primer.width = fake.getRecipeWidth();
    primer.height = fake.getRecipeHeight();
    primer.input = fake.getIngredients();
    primer.mirrored = JsonUtils.getBoolean(json, "mirrored", true); // Hack
    return new CustomWoodShapedRecipe(fake.getRegistryName(), fake.getRecipeOutput(), primer);
}
 
源代码10 项目: GregTech   文件: ShapedOreEnergyTransferRecipe.java
public ShapedOreEnergyTransferRecipe(ResourceLocation group, @Nonnull ItemStack result, Predicate<ItemStack> chargePredicate, boolean transferMaxCharge, Object... recipe) {
    this(group, result, chargePredicate, transferMaxCharge, CraftingHelper.parseShaped(recipe));
}
 
源代码11 项目: GregTech   文件: MetaTileEntityLockedSafe.java
private static Ingredient createIngredient(Object ingredient) {
    return CraftingHelper.getIngredient(ModHandler.finalizeIngredient(ingredient));
}
 
源代码12 项目: customstuff4   文件: DamageableShapedOreRecipe.java
private DamageableShapedOreRecipe(@Nullable ResourceLocation group, int[] damageAmounts, @Nonnull ItemStack result, CraftingHelper.ShapedPrimer primer)
{
    super(group, result, primer);
    this.damageAmounts = damageAmounts;
    mirroredDamageAmounts = mirror(damageAmounts);
}
 
源代码13 项目: AgriCraft   文件: CustomWoodShapedRecipe.java
public CustomWoodShapedRecipe(ResourceLocation id, ItemStack result, CraftingHelper.ShapedPrimer primer) {
    super(id, result, primer);
}
 
 类方法
 同包方法