Search in sources :

Example 1 with BlockCropDead

use of net.dries007.tfc.objects.blocks.agriculture.BlockCropDead in project firmalife by eerussianguy.

the class BlocksFL method registerBlocks.

@SubscribeEvent
public static void registerBlocks(RegistryEvent.Register<Block> event) {
    // this has to come first
    FluidsFL.registerFluids();
    IForgeRegistry<Block> r = event.getRegistry();
    Builder<ItemBlock> IBs = ImmutableList.builder();
    Builder<Block> normalIBs = ImmutableList.builder();
    Builder<Block> foodIBs = ImmutableList.builder();
    Builder<BlockFruitTreeLeaves> fruitLeaves = ImmutableList.builder();
    Builder<BlockFruitTreeSapling> fruitSaps = ImmutableList.builder();
    Builder<BlockFruitFence> fruitFences = ImmutableList.builder();
    Builder<BlockFruitFenceGate> fruitFenceGates = ImmutableList.builder();
    Builder<BlockFruitDoor> fruitDoors = ImmutableList.builder();
    Builder<BlockFruitTrapDoor> fruitTrapdoors = ImmutableList.builder();
    Builder<BlockCropDead> deadCrops = ImmutableList.builder();
    Builder<BlockStemCrop> cropBlocks = ImmutableList.builder();
    Builder<BlockJackOLantern> jackOLanterns = ImmutableList.builder();
    Builder<Block> invIBs = ImmutableList.builder();
    Builder<BlockBonsai> bonsais = ImmutableList.builder();
    for (FruitTreeFL fruitTree : FruitTreeFL.values()) {
        String name = fruitTree.getName().toLowerCase();
        register(r, name + "_branch", new BlockFruitTreeBranch(fruitTree));
        fruitLeaves.add(register(r, name + "_leaves", new BlockFruitTreeLeaves(fruitTree), CT_WOOD));
        fruitSaps.add(register(r, name + "_sapling", new BlockFruitTreeSapling(fruitTree), CT_WOOD));
        register(r, name + "_trunk", new BlockFruitTreeTrunk(fruitTree));
        doFruitAdditions(r, name, fruitFences, fruitFenceGates, fruitDoors, fruitTrapdoors, bonsais, Optional.of(fruitTree));
    }
    doFruitAdditions(r, "cinnamon", fruitFences, fruitFenceGates, fruitDoors, fruitTrapdoors, bonsais, Optional.empty());
    for (IFruitTree fruitTree : FruitTree.values()) {
        String name = fruitTree.getName().toLowerCase();
        doFruitAdditions(r, name, fruitFences, fruitFenceGates, fruitDoors, fruitTrapdoors, bonsais, Optional.of(fruitTree));
    }
    normalIBs.add(register(r, "oven", new BlockOven(), CT_DECORATIONS));
    normalIBs.add(register(r, "oven_wall", new BlockOvenWall(), CT_DECORATIONS));
    normalIBs.add(register(r, "oven_chimney", new BlockOvenChimney(), CT_DECORATIONS));
    normalIBs.add(register(r, "leaf_mat", new BlockLeafMat(), CT_DECORATIONS));
    normalIBs.add(register(r, "cinnamon_log", new BlockCinnamonLog(), CT_WOOD));
    normalIBs.add(register(r, "cinnamon_leaves", new BlockCinnamonLeaves(), CT_WOOD));
    register(r, "cinnamon_sapling", new BlockCinnamonSapling(), CT_WOOD);
    normalIBs.add(register(r, "greenhouse_wall", new BlockGreenhouseWall(), CT_DECORATIONS));
    normalIBs.add(register(r, "greenhouse_roof", new BlockGreenhouseRoof(), CT_DECORATIONS));
    register(r, "greenhouse_door", new BlockGreenhouseDoor(), CT_DECORATIONS);
    normalIBs.add(register(r, "climate_station", new BlockClimateStation(0), CT_DECORATIONS));
    for (int i = 1; i < 6; i++) normalIBs.add(register(r, "climate_station_" + i, new BlockClimateStation(i), CT_DECORATIONS));
    register(r, "quad_planter", new BlockQuadPlanter(), CT_DECORATIONS);
    register(r, "large_planter", new BlockLargePlanter(), CT_DECORATIONS);
    normalIBs.add(register(r, "pumpkin_hanging_planter", new BlockHangingPlanter(() -> Item.getItemFromBlock(BlocksFL.PUMPKIN_FRUIT), () -> ItemSeedsTFC.get(StemCrop.PUMPKIN), 13), CT_DECORATIONS));
    normalIBs.add(register(r, "melon_hanging_planter", new BlockHangingPlanter(() -> Item.getItemFromBlock(BlocksFL.MELON_FRUIT), () -> ItemSeedsTFC.get(StemCrop.MELON), 13), CT_DECORATIONS));
    normalIBs.add(register(r, "squash_hanging_planter", new BlockHangingPlanter(() -> ItemFoodTFC.get(Food.SQUASH), () -> ItemSeedsTFC.get(Crop.SQUASH), 13), CT_DECORATIONS));
    register(r, "wool_string", new BlockString(() -> ItemsTFC.WOOL_YARN));
    normalIBs.add(register(r, "trellis", new BlockTrellis(), CT_DECORATIONS));
    normalIBs.add(register(r, "beehive", new BlockBeehive(), CT_DECORATIONS));
    register(r, "honey_jar", new BlockJars(() -> ItemsFL.HONEY_JAR), CT_FOOD);
    normalIBs.add(register(r, "bumper", new BlockBumper(), CT_DECORATIONS));
    normalIBs.add(register(r, "candle", new BlockTorchTFC(), CT_DECORATIONS));
    register(r, "bee_nest", new BlockBeeNest(), CT_DECORATIONS);
    normalIBs.add(register(r, "spout", new BlockSpout(false), CT_DECORATIONS));
    normalIBs.add(register(r, "sprinkler", new BlockSpout(true), CT_DECORATIONS));
    normalIBs.add(register(r, "turntable", new BlockTurntable(), CT_DECORATIONS));
    normalIBs.add(register(r, "cheddar_wheel", new BlockCheesewheel(() -> ItemsFL.CHEDDAR), CT_FOOD));
    normalIBs.add(register(r, "chevre_wheel", new BlockCheesewheel(() -> ItemsFL.CHEVRE), CT_FOOD));
    normalIBs.add(register(r, "rajya_metok_wheel", new BlockCheesewheel(() -> ItemsFL.RAJYA_METOK), CT_FOOD));
    normalIBs.add(register(r, "gouda_wheel", new BlockCheesewheel(() -> ItemsFL.GOUDA), CT_FOOD));
    normalIBs.add(register(r, "feta_wheel", new BlockCheesewheel(() -> ItemsFL.FETA), CT_FOOD));
    normalIBs.add(register(r, "shosha_wheel", new BlockCheesewheel(() -> ItemsFL.SHOSHA), CT_FOOD));
    for (BerryBush bush : BerryBush.values()) {
        normalIBs.add(register(r, bush.name().toLowerCase() + "_trellis", new BlockBushTrellis(bush), CT_DECORATIONS));
    }
    for (BushFL bush : BushFL.values()) {
        normalIBs.add(register(r, bush.name().toLowerCase() + "_bush", new BlockBerryBush(bush), CT_FLORA));
        normalIBs.add(register(r, bush.name().toLowerCase() + "_trellis", new BlockBushTrellis(bush), CT_DECORATIONS));
    }
    for (BlockJackOLantern.Carving carving : BlockJackOLantern.Carving.values()) {
        jackOLanterns.add(register(r, "lit_pumpkin_" + carving.getName(), new BlockJackOLantern(carving), CT_DECORATIONS));
    }
    foodIBs.add(register(r, "pumpkin_fruit", new BlockStemFruit(), CT_FLORA));
    foodIBs.add(register(r, "melon_fruit", new BlockStemFruit(), CT_FLORA));
    for (StemCrop crop : StemCrop.values()) {
        deadCrops.add(register(r, "dead_crop/" + crop.name().toLowerCase(), new BlockCropDead(crop)));
        cropBlocks.add(register(r, "crop/" + crop.name().toLowerCase(), BlockStemCrop.create(crop)));
    }
    Builder<BlockFluidBase> fluids = ImmutableList.builder();
    for (FluidWrapper wrapper : FluidsFL.getAllFiniteFluids()) {
        fluids.add(register(r, wrapper.get().getName(), new BlockFluidTFC(wrapper.get(), Material.WATER)));
    }
    allFluidBlocks = fluids.build();
    allNormalIBs = normalIBs.build();
    allNormalIBs.forEach((x) -> {
        IBs.add(new ItemBlockTFC(x));
    });
    allInventoryIBs = invIBs.build();
    allFoodIBs = foodIBs.build();
    allFoodIBs.forEach((x) -> {
        IBs.add(new ItemBlockRot(x));
    });
    allJackOLanterns = jackOLanterns.build();
    allJackOLanterns.forEach((x) -> {
        IBs.add(new ItemBlockTFC(x));
    });
    allFruitLeaves = fruitLeaves.build();
    allFruitLeaves.forEach((x) -> {
        IBs.add(new ItemBlockTFC(x));
    });
    allBonsai = bonsais.build();
    allBonsai.forEach((x) -> {
        IBs.add(new ItemBlockTFC(x));
    });
    allFruitSaps = fruitSaps.build();
    allFruitSaps.forEach((x) -> {
        ItemBlock ib = new ItemBlockTFC(x);
        IBs.add(ib);
    });
    allFruitFences = fruitFences.build();
    allFruitFences.forEach((x) -> {
        IBs.add(new ItemBlockTFC(x));
    });
    allFruitFenceGates = fruitFenceGates.build();
    allFruitFenceGates.forEach((x) -> {
        IBs.add(new ItemBlockTFC(x));
    });
    allFruitDoors = fruitDoors.build();
    allFruitTrapDoors = fruitTrapdoors.build();
    allFruitTrapDoors.forEach((x) -> {
        IBs.add(new ItemBlockTFC(x));
    });
    allIBs = IBs.build();
    allDeadCrops = deadCrops.build();
    allCropBlocks = cropBlocks.build();
    register(TEOven.class, "oven");
    register(TEPlanter.class, "quad_planter");
    register(TELeafMat.class, "leaf_mat");
    register(TEHangingPlanter.class, "hanging_planter");
    register(TEString.class, "string");
    register(TEStemCrop.class, "stem_crop");
    register(TEClimateStation.class, "climate_station");
    register(TETurntable.class, "turntable");
    // needs fix
    FluidsTFC.getWrapper(FluidsFL.COCONUT_MILK.get());
    FluidsTFC.getWrapper(FluidsFL.YAK_MILK.get());
    FluidsTFC.getWrapper(FluidsFL.GOAT_MILK.get());
    FluidsTFC.getWrapper(FluidsFL.ZEBU_MILK.get());
}
Also used : FruitTreeFL(com.eerussianguy.firmalife.init.FruitTreeFL) BushFL(com.eerussianguy.firmalife.init.BushFL) BlockFluidBase(net.minecraftforge.fluids.BlockFluidBase) ItemBlockTFC(net.dries007.tfc.objects.items.itemblock.ItemBlockTFC) BlockFluidTFC(net.dries007.tfc.objects.blocks.BlockFluidTFC) ItemBlock(net.minecraft.item.ItemBlock) BerryBush(net.dries007.tfc.util.agriculture.BerryBush) Block(net.minecraft.block.Block) ItemBlock(net.minecraft.item.ItemBlock) IFruitTree(net.dries007.tfc.api.types.IFruitTree) StemCrop(com.eerussianguy.firmalife.init.StemCrop) BlockTorchTFC(net.dries007.tfc.objects.blocks.BlockTorchTFC) FluidWrapper(net.dries007.tfc.objects.fluids.properties.FluidWrapper) ItemBlockRot(com.eerussianguy.firmalife.items.ItemBlockRot) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent)

Example 2 with BlockCropDead

use of net.dries007.tfc.objects.blocks.agriculture.BlockCropDead in project firmalife by eerussianguy.

the class ClientRegisterEventsFL method registerColorHandlerBlocks.

@SubscribeEvent
@SideOnly(Side.CLIENT)
public static void registerColorHandlerBlocks(ColorHandlerEvent.Block event) {
    BlockColors blockColors = event.getBlockColors();
    IBlockColor foliageColor = GrassColorHandler::computeGrassColor;
    blockColors.registerBlockColorHandler(foliageColor, BlocksFL.getAllFruitLeaves().toArray(new Block[0]));
    blockColors.registerBlockColorHandler(foliageColor, BlocksFL.getAllBonsai().toArray(new Block[0]));
    // use vanilla stem coloring for stemcrops
    for (BlockStemCrop block : BlocksFL.getAllCropBlocks()) {
        blockColors.registerBlockColorHandler((state, world, pos, tintIndex) -> {
            int vanillaAge = VanillaStemStateMapper.getVanillaAge(state);
            if (vanillaAge == -1)
                // for fully grown, we color it like stage 7
                vanillaAge = 7;
            return blockColors.colorMultiplier(Blocks.MELON_STEM.getDefaultState().withProperty(BlockStem.AGE, vanillaAge), world, pos, tintIndex);
        }, block);
    }
    for (BlockCropDead block : BlocksFL.getAllDeadCrops()) {
        blockColors.registerBlockColorHandler((state, world, os, tintIndex) -> 0xCC7400, block);
    }
    blockColors.registerBlockColorHandler(foliageColor, BlocksFL.CINNAMON_LEAVES);
}
Also used : IBlockColor(net.minecraft.client.renderer.color.IBlockColor) BlockStemCrop(com.eerussianguy.firmalife.blocks.BlockStemCrop) ItemBlock(net.minecraft.item.ItemBlock) BlockCropDead(net.dries007.tfc.objects.blocks.agriculture.BlockCropDead) BlockColors(net.minecraft.client.renderer.color.BlockColors) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent) SideOnly(net.minecraftforge.fml.relauncher.SideOnly)

Aggregations

ItemBlock (net.minecraft.item.ItemBlock)2 SubscribeEvent (net.minecraftforge.fml.common.eventhandler.SubscribeEvent)2 BlockStemCrop (com.eerussianguy.firmalife.blocks.BlockStemCrop)1 BushFL (com.eerussianguy.firmalife.init.BushFL)1 FruitTreeFL (com.eerussianguy.firmalife.init.FruitTreeFL)1 StemCrop (com.eerussianguy.firmalife.init.StemCrop)1 ItemBlockRot (com.eerussianguy.firmalife.items.ItemBlockRot)1 IFruitTree (net.dries007.tfc.api.types.IFruitTree)1 BlockFluidTFC (net.dries007.tfc.objects.blocks.BlockFluidTFC)1 BlockTorchTFC (net.dries007.tfc.objects.blocks.BlockTorchTFC)1 BlockCropDead (net.dries007.tfc.objects.blocks.agriculture.BlockCropDead)1 FluidWrapper (net.dries007.tfc.objects.fluids.properties.FluidWrapper)1 ItemBlockTFC (net.dries007.tfc.objects.items.itemblock.ItemBlockTFC)1 BerryBush (net.dries007.tfc.util.agriculture.BerryBush)1 Block (net.minecraft.block.Block)1 BlockColors (net.minecraft.client.renderer.color.BlockColors)1 IBlockColor (net.minecraft.client.renderer.color.IBlockColor)1 BlockFluidBase (net.minecraftforge.fluids.BlockFluidBase)1 SideOnly (net.minecraftforge.fml.relauncher.SideOnly)1