Search in sources :

Example 1 with BlockFruitDoor

use of com.eerussianguy.firmalife.blocks.BlockFruitDoor in project firmalife by eerussianguy.

the class ItemsFL method registerItems.

@SubscribeEvent
public static void registerItems(RegistryEvent.Register<Item> event) {
    IForgeRegistry<Item> r = event.getRegistry();
    ImmutableList.Builder<Item> easyItems = ImmutableList.builder();
    ImmutableList.Builder<ItemFruitDoor> fruitDoors = ImmutableList.builder();
    ImmutableList.Builder<Item> unu = ImmutableList.builder();
    for (FoodFL food : FoodFL.values()) {
        FoodData data = food.getData();
        ItemFoodFL foodItem = new ItemFoodFL(data);
        easyItems.add(register(r, food.name().toLowerCase(), foodItem, CT_FOOD));
        OreDictionary.registerOre(convert(food.name()), foodItem);
        String[] nameOverrides = food.getNameOverrides();
        if (nameOverrides != null) {
            for (String name : nameOverrides) OreDictionary.registerOre(name, foodItem);
        } else if (!food.isReplacingOres()) {
            addCategories(foodItem, data);
        }
        foods.put(food, foodItem);
    }
    easyItems.add(register(r, "unfired_mallet_mold", new ItemPottery(), CT_POTTERY));
    malletMold = register(r, "mallet_mold", new ItemMetalMalletMold("mallet"), CT_POTTERY);
    ItemDriedPineapple dryPineapple = new ItemDriedPineapple();
    easyItems.add(register(r, "dried_pineapple", dryPineapple, CT_FOOD));
    OreDictionary.registerOre("dried_pineapple", dryPineapple);
    ItemTrailMix trailMix = new ItemTrailMix();
    easyItems.add(register(r, "trail_mix", trailMix, CT_FOOD));
    OreDictionary.registerOre("categoryMeal", trailMix);
    ItemPizza pizza = new ItemPizza();
    easyItems.add(register(r, "finished_pizza", pizza, CT_FOOD));
    OreDictionary.registerOre("categoryMeal", pizza);
    // Dried Berries
    for (Fruit fruit : Fruit.values()) {
        if (fruit.canDry()) {
            ItemFoodFL dried = new ItemFoodFL(fruit.getDriedData());
            easyItems.add(register(r, "dried_" + fruit.name().toLowerCase(), dried, CT_FOOD));
            OreDictionary.registerOre("dried_" + fruit.name().toLowerCase(), dried);
            OreDictionary.registerOre("fruitDry", dried);
            OreDictionary.registerOre("categoryFruit", dried);
            driedFruits.put(fruit, dried);
        }
    }
    for (String grain : new String[] { "barley", "corn", "oat", "rice", "rye", "wheat" }) {
        ItemFoodFL flatbread_dough = new ItemFoodFL(FoodDataFL.DOUGH);
        easyItems.add(register(r, grain + "_flatbread_dough", flatbread_dough, CT_FOOD));
        OreDictionary.registerOre(grain + "_flatbread_dough", flatbread_dough);
        OreDictionary.registerOre("doughFlat", flatbread_dough);
        ItemFoodFL flatbread = new ItemFoodFL(FoodDataFL.FLATBREAD);
        easyItems.add(register(r, grain + "_flatbread", flatbread, CT_FOOD));
        OreDictionary.registerOre("flatbread", flatbread);
        OreDictionary.registerOre("categoryBread", flatbread);
        ItemHeatableFoodFL slice = new ItemHeatableFoodFL(FoodDataFL.SLICE);
        easyItems.add(register(r, grain + "_slice", slice, CT_FOOD));
        OreDictionary.registerOre("slice", slice);
        OreDictionary.registerOre("categoryBread", slice);
    }
    easyItems.add(register(r, "chestnut_slice", new ItemHeatableFoodFL(FoodDataFL.SLICE), CT_FOOD));
    ItemSandwichFL sandwich = new ItemSandwichFL(FoodDataFL.SANDWICH);
    easyItems.add(register(r, "chestnut_sandwich", sandwich, CT_FOOD));
    OreDictionary.registerOre("sandwich", sandwich);
    OreDictionary.registerOre("categoryMeal", sandwich);
    // Misc Items
    easyItems.add(register(r, "rennet", new ItemMisc(Size.SMALL, Weight.LIGHT), CT_MISC));
    easyItems.add(register(r, "roasted_cocoa_beans", new ItemRoastedCocoaBeans(), CT_MISC));
    easyItems.add(register(r, "cocoa_butter", new ItemMisc(Size.SMALL, Weight.LIGHT), CT_MISC));
    easyItems.add(register(r, "cocoa_powder", new ItemMisc(Size.SMALL, Weight.LIGHT), CT_MISC));
    easyItems.add(register(r, "dark_chocolate_blend", new ItemMisc(Size.SMALL, Weight.LIGHT), CT_MISC));
    easyItems.add(register(r, "milk_chocolate_blend", new ItemMisc(Size.SMALL, Weight.LIGHT), CT_MISC));
    easyItems.add(register(r, "white_chocolate_blend", new ItemMisc(Size.SMALL, Weight.LIGHT), CT_MISC));
    easyItems.add(register(r, "peel", new ItemMisc(Size.LARGE, Weight.VERY_HEAVY), CT_MISC));
    easyItems.add(register(r, "frothy_coconut", new ItemMisc(Size.SMALL, Weight.LIGHT), CT_MISC));
    ItemMisc fruit_leaf = new ItemMisc(Size.VERY_SMALL, Weight.VERY_LIGHT);
    easyItems.add(register(r, "fruit_leaf", fruit_leaf, CT_MISC));
    OreDictionary.registerOre("fruitLeaf", fruit_leaf);
    easyItems.add(register(r, "watering_can", new ItemWateringCan(), CT_MISC));
    easyItems.add(register(r, "vanilla", new ItemMisc(Size.VERY_SMALL, Weight.VERY_LIGHT), CT_MISC));
    easyItems.add(register(r, "cinnamon_bark", new ItemMisc(Size.VERY_SMALL, Weight.VERY_LIGHT), CT_MISC));
    easyItems.add(register(r, "cinnamon", new ItemMisc(Size.VERY_SMALL, Weight.VERY_LIGHT), CT_MISC));
    easyItems.add(register(r, "ground_cinnamon", new ItemMisc(Size.VERY_SMALL, Weight.VERY_LIGHT), CT_MISC));
    easyItems.add(register(r, "greenhouse_door", new ItemGreenhouseDoor(BlocksFL.GREENHOUSE_DOOR), CT_DECORATIONS));
    easyItems.add(register(r, "quad_planter", new ItemBlock(BlocksFL.QUAD_PLANTER), CT_DECORATIONS));
    easyItems.add(register(r, "large_planter", new ItemBlock(BlocksFL.LARGE_PLANTER), CT_DECORATIONS));
    easyItems.add(register(r, "cinnamon_sapling", new ItemBlock(BlocksFL.CINNAMON_SAPLING), CT_DECORATIONS));
    easyItems.add(register(r, "pineapple_leather", new ItemMisc(Size.VERY_SMALL, Weight.VERY_LIGHT), CT_MISC));
    easyItems.add(register(r, "pineapple_fiber", new ItemMisc(Size.VERY_SMALL, Weight.VERY_LIGHT), CT_MISC));
    easyItems.add(register(r, "pineapple_yarn", new ItemMisc(Size.VERY_SMALL, Weight.VERY_LIGHT), CT_MISC));
    easyItems.add(register(r, "honeycomb", new ItemMisc(Size.VERY_SMALL, Weight.VERY_LIGHT), CT_MISC));
    easyItems.add(register(r, "honey_jar", new ItemBlockJar(BlocksFL.HONEY_JAR), CT_FOOD));
    easyItems.add(register(r, "jar", new ItemMisc(Size.VERY_SMALL, Weight.VERY_LIGHT), CT_FOOD));
    easyItems.add(register(r, "treated_lumber", new ItemMisc(Size.SMALL, Weight.MEDIUM), CT_MISC));
    easyItems.add(register(r, "beeswax", new ItemMisc(Size.VERY_SMALL, Weight.VERY_LIGHT), CT_FOOD));
    for (int i = 0; i < 5; i++) {
        ItemMisc item = register(r, "unused" + i, new ItemMisc(Size.VERY_SMALL, Weight.VERY_LIGHT));
        easyItems.add(item);
        unu.add(item);
    }
    ItemMisc cpole = new ItemMisc(Size.SMALL, Weight.MEDIUM);
    easyItems.add(register(r, "cinnamon_pole", cpole, CT_MISC));
    OreDictionary.registerOre("poleWooden", cpole);
    for (FruitTreeFL fruitTree : FruitTreeFL.values()) easyItems.add(registerPole(r, fruitTree));
    for (IFruitTree fruitTree : FruitTree.values()) easyItems.add(registerPole(r, fruitTree));
    for (BlockFruitDoor door : BlocksFL.getAllFruitDoors()) fruitDoors.add(register(r, door.getRegistryName().getPath(), new ItemFruitDoor(door), CT_DECORATIONS));
    for (Metal metal : TFCRegistries.METALS.getValuesCollection()) if (metal.isToolMetal()) {
        ItemMetalMallet mallet = register(r, metal.toString() + "_mallet", new ItemMetalMallet(metal), CT_METAL);
        OreDictionary.registerOre("tool", mallet);
        easyItems.add(mallet);
        ItemMetalMalletHead head = new ItemMetalMalletHead(metal);
        easyItems.add(register(r, metal.toString() + "_mallet_head", head, CT_METAL));
        OreDictionary.registerOre("tool", head);
        malletHeads.put(metal, head);
    }
    // uses a separate model loader
    register(r, "cracked_coconut", new ItemWoodenBucket(), CT_MISC);
    register(r, "cheesecloth", new ItemCheesecloth(), CT_MISC);
    BlocksFL.getAllIBs().forEach((x) -> registerIB(r, x));
    BlocksFL.getAllInventoryIBs().forEach((x) -> easyItems.add(registerIB(r, new ItemBlock(x))));
    for (StemCrop crop : StemCrop.values()) {
        easyItems.add(register(r, "crop/seeds/" + crop.name().toLowerCase(), new ItemSeedsTFC(crop), CT_FOOD));
    }
    allEasyItems = easyItems.build();
    allFruitDoors = fruitDoors.build();
    unused = unu.build();
}
Also used : ImmutableList(com.google.common.collect.ImmutableList) ItemPottery(net.dries007.tfc.objects.items.ceramics.ItemPottery) Metal(net.dries007.tfc.api.types.Metal) ItemSeedsTFC(net.dries007.tfc.objects.items.ItemSeedsTFC) Item(net.minecraft.item.Item) IFruitTree(net.dries007.tfc.api.types.IFruitTree) ItemWoodenBucket(net.dries007.tfc.objects.items.wood.ItemWoodenBucket) ItemBlock(net.minecraft.item.ItemBlock) BlockFruitDoor(com.eerussianguy.firmalife.blocks.BlockFruitDoor) FoodData(net.dries007.tfc.api.capability.food.FoodData) ItemMisc(net.dries007.tfc.objects.items.ItemMisc) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent)

Example 2 with BlockFruitDoor

use of com.eerussianguy.firmalife.blocks.BlockFruitDoor in project firmalife by eerussianguy.

the class ClientRegisterEventsFL method registerModels.

@SubscribeEvent
public static void registerModels(ModelRegistryEvent event) {
    // Setting the model resource location for items
    for (Item i : ItemsFL.getAllEasyItems()) ModelLoader.setCustomModelResourceLocation(i, 0, new ModelResourceLocation(i.getRegistryName().toString()));
    for (ItemFruitDoor i : ItemsFL.getAllFruitDoors()) ModelLoader.setCustomModelResourceLocation(i, 0, new ModelResourceLocation(i.getRegistryName().toString()));
    for (ItemBlock ib : BlocksFL.getAllIBs()) ModelLoader.setCustomModelResourceLocation(ib, 0, new ModelResourceLocation(ib.getRegistryName().toString(), "normal"));
    for (BlockFruitTreeLeaves leaves : BlocksFL.getAllFruitLeaves()) ModelLoader.setCustomStateMapper(leaves, new StateMap.Builder().ignore(BlockFruitTreeLeaves.DECAYABLE).ignore(BlockFruitTreeLeaves.HARVESTABLE).build());
    ModelLoader.setCustomStateMapper(BlocksFL.SPOUT, new StateMap.Builder().ignore(StatePropertiesFL.WATERED).ignore(StatePropertiesFL.NEEDS_SOURCE).build());
    ModelLoader.setCustomStateMapper(BlocksFL.SPRINKLER, new StateMap.Builder().ignore(StatePropertiesFL.WATERED).ignore(StatePropertiesFL.NEEDS_SOURCE).build());
    ModelLoader.setCustomStateMapper(BlocksFL.TURNTABLE, new StateMap.Builder().ignore(StatePropertiesFL.CLAY).build());
    ModelLoader.setCustomModelResourceLocation(ItemsFL.CHEESECLOTH, 0, new ModelResourceLocation(ItemsFL.CHEESECLOTH.getRegistryName(), "inventory"));
    ModelLoader.setCustomModelResourceLocation(ItemsFL.CRACKED_COCONUT, 0, new ModelResourceLocation(ItemsFL.CRACKED_COCONUT.getRegistryName(), "inventory"));
    ModelLoader.setCustomModelResourceLocation(ItemsFL.ITEM_CINNAMON_SAPLING, 0, new ModelResourceLocation(ItemsFL.ITEM_CINNAMON_SAPLING.getRegistryName().toString()));
    ModelLoader.setCustomModelResourceLocation(ItemsFL.ITEM_QUAD_PLANTER, 0, new ModelResourceLocation(ItemsFL.ITEM_QUAD_PLANTER.getRegistryName().toString(), "inventory"));
    ModelLoader.setCustomModelResourceLocation(ItemsFL.ITEM_LARGE_PLANTER, 0, new ModelResourceLocation(ItemsFL.ITEM_LARGE_PLANTER.getRegistryName().toString(), "inventory"));
    // Mallet mold
    ItemMetalMalletMold item = ItemsFL.malletMold;
    ModelBakery.registerItemVariants(item, new ModelResourceLocation(item.getRegistryName().toString()));
    ModelBakery.registerItemVariants(item, TFCRegistries.METALS.getValuesCollection().stream().filter(Metal.ItemType.PROPICK_HEAD::hasMold).map(x -> new ModelResourceLocation(FirmaLife.MOD_ID + ":" + x.getRegistryName().getPath() + "_" + item.getRegistryName().getPath())).toArray(ModelResourceLocation[]::new));
    ModelLoader.setCustomMeshDefinition(item, new ItemMeshDefinition() {

        private final ModelResourceLocation FALLBACK = new ModelResourceLocation(item.getRegistryName().toString());

        @Override
        @Nonnull
        public ModelResourceLocation getModelLocation(@Nonnull ItemStack stack) {
            IFluidHandler cap = stack.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null);
            if (cap instanceof IMoldHandler) {
                Metal metal = ((IMoldHandler) cap).getMetal();
                if (metal != null) {
                    return new ModelResourceLocation(FirmaLife.MOD_ID + ":" + metal.getRegistryName().getPath() + "_" + stack.getItem().getRegistryName().getPath());
                }
            }
            return FALLBACK;
        }
    });
    // use vanilla stem rendering for StemCrops
    for (BlockStemCrop block : BlocksFL.getAllCropBlocks()) ModelLoader.setCustomStateMapper(block, new VanillaStemStateMapper());
    for (BlockFruitDoor door : BlocksFL.getAllFruitDoors()) ModelLoader.setCustomStateMapper(door, new StateMap.Builder().ignore(BlockDoor.POWERED).build());
    for (BlockFruitFenceGate gate : BlocksFL.getAllFruitFenceGates()) ModelLoader.setCustomStateMapper(gate, new StateMap.Builder().ignore(BlockFenceGate.POWERED).build());
    ModelLoader.setCustomStateMapper(BlocksFL.CINNAMON_LOG, new StateMap.Builder().ignore(StatePropertiesFL.CAN_GROW).build());
    ModelLoader.setCustomStateMapper(BlocksFL.CINNAMON_LEAVES, new StateMap.Builder().ignore(BlockLeaves.DECAYABLE).build());
    ModelLoader.setCustomStateMapper(BlocksFL.CINNAMON_SAPLING, new StateMap.Builder().ignore(BlockSaplingTFC.STAGE).build());
    for (Block block : BlocksFL.getAllFluidBlocks()) ModelLoader.setCustomStateMapper(block, new StateMap.Builder().ignore(BlockFluidBase.LEVEL).build());
    ModelLoader.setCustomStateMapper(BlocksFL.GREENHOUSE_DOOR, new StateMap.Builder().ignore(BlockDoor.POWERED).build());
    ModelLoader.setCustomStateMapper(BlocksFL.CINNAMON_LOG, new StateMap.Builder().ignore(StatePropertiesFL.CAN_GROW).build());
    ModelLoader.setCustomStateMapper(BlocksFL.CINNAMON_LEAVES, new StateMap.Builder().ignore(BlockLeaves.DECAYABLE).build());
    ModelLoader.setCustomStateMapper(BlocksFL.CINNAMON_SAPLING, new StateMap.Builder().ignore(BlockSaplingTFC.STAGE).build());
    ModelLoader.setCustomStateMapper(BlocksFL.QUAD_PLANTER, new QuadPlanterStateMapper());
    ModelLoader.setCustomStateMapper(BlocksFL.LARGE_PLANTER, new LargePlanterStateMapper());
    ClientRegistry.bindTileEntitySpecialRenderer(TEOven.class, new TESROven());
    ClientRegistry.bindTileEntitySpecialRenderer(TEString.class, new TESRString());
    ClientRegistry.bindTileEntitySpecialRenderer(TELeafMat.class, new TESRLeafMat());
    ClientRegistry.bindTileEntitySpecialRenderer(TETurntable.class, new TESRTurntable());
}
Also used : StateMap(net.minecraft.client.renderer.block.statemap.StateMap) ModelResourceLocation(net.minecraft.client.renderer.block.model.ModelResourceLocation) Metal(net.dries007.tfc.api.types.Metal) ItemMetalMalletMold(com.eerussianguy.firmalife.items.ItemMetalMalletMold) IFluidHandler(net.minecraftforge.fluids.capability.IFluidHandler) Item(net.minecraft.item.Item) Nonnull(javax.annotation.Nonnull) IMoldHandler(net.dries007.tfc.api.capability.IMoldHandler) BlockFruitFenceGate(com.eerussianguy.firmalife.blocks.BlockFruitFenceGate) ItemBlock(net.minecraft.item.ItemBlock) ItemFruitDoor(com.eerussianguy.firmalife.items.ItemFruitDoor) ItemMeshDefinition(net.minecraft.client.renderer.ItemMeshDefinition) BlockFruitDoor(com.eerussianguy.firmalife.blocks.BlockFruitDoor) BlockFruitTreeLeaves(net.dries007.tfc.objects.blocks.agriculture.BlockFruitTreeLeaves) BlockStemCrop(com.eerussianguy.firmalife.blocks.BlockStemCrop) ItemBlock(net.minecraft.item.ItemBlock) ItemStack(net.minecraft.item.ItemStack) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent)

Aggregations

BlockFruitDoor (com.eerussianguy.firmalife.blocks.BlockFruitDoor)2 Metal (net.dries007.tfc.api.types.Metal)2 Item (net.minecraft.item.Item)2 ItemBlock (net.minecraft.item.ItemBlock)2 SubscribeEvent (net.minecraftforge.fml.common.eventhandler.SubscribeEvent)2 BlockFruitFenceGate (com.eerussianguy.firmalife.blocks.BlockFruitFenceGate)1 BlockStemCrop (com.eerussianguy.firmalife.blocks.BlockStemCrop)1 ItemFruitDoor (com.eerussianguy.firmalife.items.ItemFruitDoor)1 ItemMetalMalletMold (com.eerussianguy.firmalife.items.ItemMetalMalletMold)1 ImmutableList (com.google.common.collect.ImmutableList)1 Nonnull (javax.annotation.Nonnull)1 IMoldHandler (net.dries007.tfc.api.capability.IMoldHandler)1 FoodData (net.dries007.tfc.api.capability.food.FoodData)1 IFruitTree (net.dries007.tfc.api.types.IFruitTree)1 BlockFruitTreeLeaves (net.dries007.tfc.objects.blocks.agriculture.BlockFruitTreeLeaves)1 ItemMisc (net.dries007.tfc.objects.items.ItemMisc)1 ItemSeedsTFC (net.dries007.tfc.objects.items.ItemSeedsTFC)1 ItemPottery (net.dries007.tfc.objects.items.ceramics.ItemPottery)1 ItemWoodenBucket (net.dries007.tfc.objects.items.wood.ItemWoodenBucket)1 ItemMeshDefinition (net.minecraft.client.renderer.ItemMeshDefinition)1