Search in sources :

Example 1 with Load

use of cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.Load in project FoodCraft-Reloaded by LasmGratel.

the class RecipeLoader method loadDrinkRecipes.

@Load(LoaderState.AVAILABLE)
public void loadDrinkRecipes() {
    FruitEnumLoader fruitLoader = FoodCraftReloadedMod.getProxy().getLoaderManager().getLoader(FruitEnumLoader.class).get();
    VegetableEnumLoader vegetableLoader = FoodCraftReloadedMod.getProxy().getLoaderManager().getLoader(VegetableEnumLoader.class).get();
    for (FruitType fruitType : FruitType.values()) {
        RecipeManager.getInstance().addRecipe(new DrinkRecipe(fruitLoader.getInstanceMap(ItemFruit.class).get(fruitType), new FluidStack(fruitLoader.getInstance(FluidFruitJuice.class, fruitType), 1000)));
        GameRegistry.addShapedRecipe(new ResourceLocation(FoodCraftReloadedMod.MODID, NameBuilder.buildRegistryName(fruitType.toString(), "sapling")), new ResourceLocation(FoodCraftReloadedMod.MODID, "sapling"), new ItemStack(fruitLoader.getInstanceMap(BlockFruitSapling.class).get(fruitType)).setStackDisplayName(Translator.format("item.foodcraftreloaded.sapling", Translator.format(NameBuilder.buildUnlocalizedName("item.fruit", fruitType.toString())))), "XXX", "XSX", "XXX", 'X', fruitLoader.getInstanceMap(ItemFruit.class).get(fruitType), 'S', "treeSapling");
        GameRegistry.addShapelessRecipe(new ResourceLocation(FoodCraftReloadedMod.MODID, NameBuilder.buildRegistryName(fruitType.toString(), "icecream")), new ResourceLocation(FoodCraftReloadedMod.MODID, "icecream"), new ItemStack(fruitLoader.getInstanceMap(ItemFruitIcecream.class).get(fruitType)), OreIngredient.fromItem(FCRItems.ORIGINAL_ICE_CREAM), OreIngredient.fromItem(fruitLoader.getInstanceMap(ItemFruitJuice.class).get(fruitType)));
        GameRegistry.addShapelessRecipe(new ResourceLocation(FoodCraftReloadedMod.MODID, NameBuilder.buildRegistryName("cake", "fruit", fruitType.toString())), new ResourceLocation(FoodCraftReloadedMod.MODID, "cake"), new ItemStack(fruitLoader.getInstanceMap(ItemFruitCake.class).get(fruitType)), OreIngredient.fromItem(fruitLoader.getInstanceMap(ItemFruitJuice.class).get(fruitType)), OreIngredient.fromItem(Items.CAKE));
    }
    for (KitchenKnifeType kitchenKnifeType : KitchenKnifeType.values()) {
        GameRegistry.addShapedRecipe(new ResourceLocation(FoodCraftReloadedMod.MODID, NameBuilder.buildRegistryName("kitchen", "knife", kitchenKnifeType.toString())), new ResourceLocation(FoodCraftReloadedMod.MODID, "kitchen_knife"), new ItemStack(FoodCraftReloadedMod.getProxy().getLoaderManager().getLoader(KitchenKnifeLoader.class).get().getInstanceMap(ItemKitchenKnife.class).get(kitchenKnifeType)), "XX ", "XX ", "  S", 'X', OreIngredient.fromStacks(kitchenKnifeType.getRepairItemStack()), 'S', "stickWood");
    }
    for (VegetableType vegetableType : VegetableType.values()) {
        RecipeManager.getInstance().addRecipe(new DrinkRecipe(vegetableLoader.getInstanceMap(ItemVegetable.class).get(vegetableType), new FluidStack(vegetableLoader.getInstance(FluidVegetableJuice.class, vegetableType), 1000)));
        GameRegistry.addShapelessRecipe(new ResourceLocation(FoodCraftReloadedMod.MODID, NameBuilder.buildRegistryName(vegetableType.toString(), "icecream")), new ResourceLocation(FoodCraftReloadedMod.MODID, "icecream"), new ItemStack(vegetableLoader.getInstanceMap(ItemVegetableIcecream.class).get(vegetableType)), OreIngredient.fromItem(FCRItems.ORIGINAL_ICE_CREAM), OreIngredient.fromItem(vegetableLoader.getInstanceMap(ItemVegetableJuice.class).get(vegetableType)));
        GameRegistry.addShapelessRecipe(new ResourceLocation(FoodCraftReloadedMod.MODID, NameBuilder.buildRegistryName("cake", "vegetable", vegetableType.toString())), new ResourceLocation(FoodCraftReloadedMod.MODID, "cake"), new ItemStack(vegetableLoader.getInstanceMap(ItemVegetableCake.class).get(vegetableType)), OreIngredient.fromItem(vegetableLoader.getInstanceMap(ItemVegetableJuice.class).get(vegetableType)), OreIngredient.fromItem(Items.CAKE));
    }
// ForgeRegistries.RECIPES.register(new CakeRecipe().setRegistryName(FoodCraftReloadedMod.MODID, "cake_recipe"));
}
Also used : KitchenKnifeType(cc.lasmgratel.foodcraftreloaded.minecraft.common.item.tool.KitchenKnifeType) FluidStack(net.minecraftforge.fluids.FluidStack) FluidVegetableJuice(cc.lasmgratel.foodcraftreloaded.minecraft.common.fluid.FluidVegetableJuice) DrinkRecipe(cc.lasmgratel.foodcraftreloaded.minecraft.api.recipe.DrinkRecipe) ItemKitchenKnife(cc.lasmgratel.foodcraftreloaded.minecraft.common.item.tool.ItemKitchenKnife) FluidFruitJuice(cc.lasmgratel.foodcraftreloaded.minecraft.common.fluid.FluidFruitJuice) ResourceLocation(net.minecraft.util.ResourceLocation) ItemStack(net.minecraft.item.ItemStack) Load(cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.Load)

Example 2 with Load

use of cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.Load in project FoodCraft-Reloaded by LasmGratel.

the class BlockLoader method registerBlocks.

@Load(value = LoaderState.CONSTRUCTING)
public void registerBlocks() {
    for (Field field : FCRBlocks.class.getFields()) {
        field.setAccessible(true);
        RegBlock anno = field.getAnnotation(RegBlock.class);
        if (anno == null)
            continue;
        try {
            Block block = (Block) field.get(null);
            RegisterManager.getInstance().putRegister(block.setRegistryName(NameBuilder.buildRegistryName(anno.value())).setUnlocalizedName(NameBuilder.buildUnlocalizedName(anno.value())));
            // Register item block.
            Class<? extends ItemBlock> itemClass = anno.itemClass();
            Constructor<? extends ItemBlock> con = itemClass.getConstructor(Block.class);
            con.setAccessible(true);
            RegisterManager.getInstance().putRegister(con.newInstance(block).setRegistryName(block.getRegistryName()).setUnlocalizedName(block.getUnlocalizedName()));
            Arrays.asList(anno.oreDict()).forEach(s -> OreDictionary.registerOre(s, block));
        } catch (Exception e) {
            FoodCraftReloaded.getLogger().warn("Un-able to register block " + field.toGenericString(), e);
        }
    }
}
Also used : Field(java.lang.reflect.Field) RegBlock(cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.RegBlock) RegBlock(cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.RegBlock) Block(net.minecraft.block.Block) ItemBlock(net.minecraft.item.ItemBlock) Load(cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.Load)

Example 3 with Load

use of cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.Load in project FoodCraft-Reloaded by LasmGratel.

the class FruitEnumLoader method loadFruits.

@Load
public void loadFruits() {
    register();
    getInstanceMap(BlockFruitSapling.class).values().forEach(sapling -> ForgeRegistries.ITEMS.register(new ItemBlock(sapling).setUnlocalizedName(NameBuilder.buildUnlocalizedName(sapling.getType().toString(), "sapling")).setRegistryName(FoodCraftReloadedMod.MODID, NameBuilder.buildRegistryName(sapling.getType().toString(), "sapling")).setCreativeTab(FCRCreativeTabs.BASE)));
}
Also used : ItemBlock(net.minecraft.item.ItemBlock) Load(cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.Load)

Example 4 with Load

use of cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.Load in project FoodCraft-Reloaded by LasmGratel.

the class ItemLoader method registerOre.

@Load(LoaderState.AVAILABLE)
public void registerOre() {
    for (Field field : FCRItems.class.getFields()) {
        field.setAccessible(true);
        try {
            RegItem annoItem = field.getAnnotation(RegItem.class);
            if (annoItem == null)
                continue;
            Item item = (Item) field.get(null);
            Arrays.asList(annoItem.oreDict()).parallelStream().forEach(s -> OreDictionary.registerOre(s, item));
        } catch (Throwable e) {
            FoodCraftReloaded.getLogger().warn("Un-able to register item " + field.toGenericString(), e);
        }
    }
}
Also used : Field(java.lang.reflect.Field) RegItem(cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.RegItem) Item(net.minecraft.item.Item) RegItem(cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.RegItem) Load(cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.Load)

Example 5 with Load

use of cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.Load in project FoodCraft-Reloaded by LasmGratel.

the class BlockLoader method registerRenders.

@Load(side = Side.CLIENT)
public void registerRenders() {
    for (Field field : FCRBlocks.class.getFields()) {
        field.setAccessible(true);
        RegBlock anno = field.getAnnotation(RegBlock.class);
        if (anno == null)
            continue;
        try {
            Block block = (Block) field.get(null);
            if (block instanceof CustomModelMasking) {
                ModelLoader.setCustomStateMapper(block, b -> ((CustomModelMasking) b).getStateModelLocations());
                if (((CustomModelMasking) block).getModelLocation() != null) {
                    registerRender(Item.getItemFromBlock(block), 0, ((CustomModelMasking) block).getModelLocation());
                    return;
                }
            }
            registerRender(block, 0);
        } catch (Exception e) {
            FoodCraftReloaded.getLogger().warn("Un-able to register block " + field.toGenericString(), e);
        }
    }
}
Also used : Field(java.lang.reflect.Field) RegBlock(cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.RegBlock) CustomModelMasking(cc.lasmgratel.foodcraftreloaded.minecraft.client.util.masking.CustomModelMasking) RegBlock(cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.RegBlock) Block(net.minecraft.block.Block) ItemBlock(net.minecraft.item.ItemBlock) Load(cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.Load)

Aggregations

Load (cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.Load)7 Field (java.lang.reflect.Field)5 ItemBlock (net.minecraft.item.ItemBlock)3 CustomModelMasking (cc.lasmgratel.foodcraftreloaded.minecraft.client.util.masking.CustomModelMasking)2 RegBlock (cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.RegBlock)2 RegItem (cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.RegItem)2 Block (net.minecraft.block.Block)2 Item (net.minecraft.item.Item)2 DrinkRecipe (cc.lasmgratel.foodcraftreloaded.minecraft.api.recipe.DrinkRecipe)1 FluidFruitJuice (cc.lasmgratel.foodcraftreloaded.minecraft.common.fluid.FluidFruitJuice)1 FluidVegetableJuice (cc.lasmgratel.foodcraftreloaded.minecraft.common.fluid.FluidVegetableJuice)1 IMetadatable (cc.lasmgratel.foodcraftreloaded.minecraft.common.item.IMetadatable)1 ItemPFood (cc.lasmgratel.foodcraftreloaded.minecraft.common.item.food.ItemPFood)1 ItemKitchenKnife (cc.lasmgratel.foodcraftreloaded.minecraft.common.item.tool.ItemKitchenKnife)1 KitchenKnifeType (cc.lasmgratel.foodcraftreloaded.minecraft.common.item.tool.KitchenKnifeType)1 RegFood (cc.lasmgratel.foodcraftreloaded.minecraft.common.util.loader.annotation.RegFood)1 ItemStack (net.minecraft.item.ItemStack)1 ResourceLocation (net.minecraft.util.ResourceLocation)1 FluidStack (net.minecraftforge.fluids.FluidStack)1