Package pneumaticCraft.common.block.pneumaticPlants

Source Code of pneumaticCraft.common.block.pneumaticPlants.BlockEnderPlant

package pneumaticCraft.common.block.pneumaticPlants;

import java.util.Random;

import net.minecraft.block.Block;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import pneumaticCraft.common.item.ItemPlasticPlants;
import pneumaticCraft.common.item.Itemss;
import pneumaticCraft.common.network.NetworkHandler;
import pneumaticCraft.common.network.PacketSpawnParticle;
import pneumaticCraft.lib.Textures;

public class BlockEnderPlant extends BlockPneumaticPlantBase{

    @Override
    protected int getSeedDamage(){
        return ItemPlasticPlants.ENDER_PLANT_DAMAGE;
    }

    @Override
    protected String getTextureString(){
        return Textures.ICON_ENDER_PLANT_LOCATION;
    }

    @Override
    public boolean canPlantGrowOnThisBlock(Block blockID, World world, int x, int y, int z){
        return blockID == Blocks.end_stone;
    }

    @Override
    protected boolean canGrowWithLightValue(int lightValue){
        return lightValue >= 10;
    }

    @Override
    public void executeFullGrownEffect(World world, int x, int y, int z, Random rand){
        if(!world.isRemote) {
            for(int i = 0; i < 50; i++) {
                int randX = x + rand.nextInt(30) - 15;
                int randY = y + rand.nextInt(8);
                int randZ = z + rand.nextInt(30) - 15;
                Block block = world.getBlock(randX, randY, randZ);
                if(!block.getMaterial().blocksMovement()) {
                    ItemStack seed = new ItemStack(Itemss.plasticPlant, 1, ItemPlasticPlants.ENDER_PLANT_DAMAGE);
                    EntityItem plant = new EntityItem(world, randX + 0.5D, randY + 0.5D, randZ + 0.5D, seed);
                    // plant.motionX = plant.motionY = plant.motionZ = 0;
                    plant.lifespan = 300;
                    ItemPlasticPlants.markInactive(plant);
                    world.spawnEntityInWorld(plant);
                    plant.playSound("mob.endermen.portal", 0.2F, ((rand.nextFloat() - rand.nextFloat()) * 0.7F + 1.0F) * 2.0F);
                    short short1 = 128;
                    for(int j = 0; j < short1; ++j) {
                        double d6 = j / (short1 - 1.0D);
                        float f = (rand.nextFloat() - 0.5F) * 0.2F;
                        float f1 = (rand.nextFloat() - 0.5F) * 0.2F;
                        float f2 = (rand.nextFloat() - 0.5F) * 0.2F;
                        double d7 = x + 0.5D + (plant.posX - (x + 0.5D)) * d6 + (rand.nextDouble() - 0.5D);
                        double d8 = y + 0.5D + (plant.posY - (y + 0.5D)) * d6 + rand.nextDouble();
                        double d9 = z + 0.5D + (plant.posZ - (z + 0.5D)) * d6 + (rand.nextDouble() - 0.5D);
                        NetworkHandler.sendToAllAround(new PacketSpawnParticle("portal", d7, d8, d9, f, f1, f2), world);
                    }
                    world.setBlockMetadataWithNotify(x, y, z, world.getBlockMetadata(x, y, z) - 2, 3);
                    break;
                }
            }

        }
    }
}
TOP

Related Classes of pneumaticCraft.common.block.pneumaticPlants.BlockEnderPlant

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.