Java Code Examples for net.minecraft.world.World#setBlock()

The following examples show how to use net.minecraft.world.World#setBlock() . These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: bartworks   File: BW_OreLayer.java    License: MIT License 6 votes vote down vote up
public boolean setGTOreBlockSpace(World aWorld, int aX, int aY, int aZ, int aMetaData, Block block){
    if (!GT_TileEntity_Ores.setOreBlock(aWorld, aX, aY, aZ, aMetaData, false, false)) {
        aY = Math.min(aWorld.getActualHeight(), Math.max(aY, 1));
        Block tBlock = aWorld.getBlock(aX, aY, aZ);
        Block tOreBlock = GregTech_API.sBlockOres1;
        if (aMetaData < 0 || tBlock == Blocks.air) {
            return false;
        } else {
            if (!tBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, block)) {
                return false;
            }
            aMetaData += 5000;
            aWorld.setBlock(aX, aY, aZ, tOreBlock, aMetaData, 0);
            TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
            if (tTileEntity instanceof GT_TileEntity_Ores) {
                ((GT_TileEntity_Ores) tTileEntity).mMetaData = (short) aMetaData;
            }
            return true;
        }
    }else
        return true;
}
 
Example 2
public static void taintplosion(World world, int x, int y, int z, boolean taintBiome, int chanceToTaint, float str, int size, int blocksAffected) {
    if(chanceToTaint < 1) chanceToTaint = 1;
    world.createExplosion(null, x + 0.5D, y + 0.5D, z + 0.5D, str, false);
    for (int a = 0; a < blocksAffected; a++) {
        int xx = x + world.rand.nextInt(size) - world.rand.nextInt(size);
        int yy = y + world.rand.nextInt(size) - world.rand.nextInt(size);
        int zz = z + world.rand.nextInt(size) - world.rand.nextInt(size);
        if (world.isAirBlock(xx, yy, zz)) {
            if (yy < y) {
                world.setBlock(xx, yy, zz, ConfigBlocks.blockFluxGoo, 8, 3);
            } else {
                world.setBlock(xx, yy, zz, ConfigBlocks.blockFluxGas, 8, 3);
            }
        }
        if(!Config.genTaint) continue;

        if(taintBiome && world.rand.nextInt(chanceToTaint) == 0) {
            Utils.setBiomeAt(world, xx, zz, ThaumcraftWorldGenerator.biomeTaint);
        }
    }
}
 
Example 3
/**
 * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
 */
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player){
    BlockPneumaticPlantBase plant = (BlockPneumaticPlantBase)getPlantBlockIDFromSeed(stack.getItemDamage());
    if(plant == Blockss.squidPlant) {
        MovingObjectPosition mop = getMovingObjectPositionFromPlayer(world, player, true);
        if(mop != null) {
            int x = mop.blockX;
            int y = mop.blockY;
            int z = mop.blockZ;
            if(player.canPlayerEdit(x, y, z, 1, stack) && player.canPlayerEdit(x, y + 1, z, 1, stack)) {
                if(plant.canBlockStay(world, x, y + 1, z) && world.isAirBlock(x, y + 1, z)) {
                    stack.stackSize--;
                    world.setBlock(x, y + 1, z, Blockss.squidPlant, 7, 3);
                }
            }
        }
    }
    return stack;
}
 
Example 4
public static void smash(World world, int x, int y, int z) {
	Block block = world.getBlock(x, y, z);
	int meta = world.getBlockMetadata(x, y, z);
	Block resBlock = block;
	int resMeta = meta;

	if (block.equals(Blocks.stone)) {
		resBlock = Blocks.cobblestone;
	} else if (block.equals(Blocks.stonebrick) && meta == 0) {
		resMeta = 2;
	} else if (block.equals(Blocks.cobblestone)) {
		resBlock = Blocks.gravel;
	} else if (block.equals(Blocks.gravel)) {
		resBlock = Blocks.sand;
	}

	if (resBlock.equals(block) && resMeta == meta)
		return;
	world.setBlock(x, y, z, resBlock, resMeta, 3);
}
 
Example 5
private static void basement(World world, int i, int j, int k, Random rand) {
	boolean noair = false;
	int y = -1;
	do {
		noair = false;
		for(int x = 1; x <= 9; x++) {
			for(int z = 0; z <= 8; z++) {
				//5,y,4
				int d = (x-5)*(x-5)+(z-4)*(z-4);
				if(d <= 17) {
					if(!world.getBlock(i+x, j+y, z+k).isOpaqueCube() || world.getBlock(i+x, j+y, z+k) == Blocks.leaves) {
						noair=true;
						world.setBlock(i+x, j+y, z+k, StructureGenHelper.cobbleMossyOrAir(rand), 0, 2);
					}
				}
			}
		}
		y--;
	} while(noair && (j+y) >= 0);
}
 
Example 6
Source Project: GardenCollection   File: BlockDecorativePot.java    License: MIT License 6 votes vote down vote up
@Override
protected boolean applyItemToGarden (World world, int x, int y, int z, EntityPlayer player, ItemStack itemStack, float hitX, float hitY, float hitZ, boolean hitValid) {
    ItemStack item = (itemStack == null) ? player.inventory.getCurrentItem() : itemStack;

    if (item != null && item.getItem() == Items.flint_and_steel) {
        ItemStack substrate = getGardenSubstrate(world, x, y, z, Slot2Profile.SLOT_CENTER);
        if (substrate != null && substrate.getItem() == Item.getItemFromBlock(Blocks.netherrack)) {
            if (world.isAirBlock(x, y + 1, z)) {
                world.playSoundEffect(x + .5, y + .5, z + .5, "fire.ignite", 1, world.rand.nextFloat() * .4f + .8f);
                world.setBlock(x, y + 1, z, ModBlocks.smallFire);

                world.notifyBlocksOfNeighborChange(x, y, z, this);
                world.notifyBlocksOfNeighborChange(x, y - 1, z, this);
            }

            item.damageItem(1, player);
            return true;
        }
    }

    return super.applyItemToGarden(world, x, y, z, player, itemStack, hitX, hitY, hitZ, hitValid);
}
 
Example 7
/**
 * Grow the tree
 */
@Override
public void func_149878_d(World world, int x, int y, int z, Random rand)
{
    if(!world.isRemote)
    {
        int meta = world.getBlockMetadata(x, y, z);

        world.setBlockToAir(x, y, z);
        WorldGenTaintedTree tree = new WorldGenTaintedTree(true);
        if (!tree.generate(world, rand, x, y, z))
        {
            world.setBlock(x, y, z, this, meta, 2);
        }
    }
}
 
Example 8
Source Project: Artifacts   File: ComponentLight.java    License: MIT License 5 votes vote down vote up
@Override
public boolean onEntityItemUpdate(EntityItem entityItem, String type) {
	if(type == "onUpdate") {
		World world = entityItem.worldObj;
		NBTTagCompound data = entityItem.getEntityItem().stackTagCompound;
		int lx = data.getInteger("lastLightX");
		int ly = data.getInteger("lastLightY");
		int lz = data.getInteger("lastLightZ");
		//System.out.println("Last: " + lx + "," + ly + "," + lz);
		int nlx = (int) entityItem.posX;
		int nly = (int) entityItem.posY;
		int nlz = (int) entityItem.posZ;
		if(nlx != lx || nly != ly || nlz != lz) {
			int d = (nlx - lx)*(nlx - lx)+(nly - ly)*(nly - ly)+(nlz - lz)*(nlz - lz);
			if(d > 13) {
				if(ly >= 0 && ly < 256 && world.getBlock(nlx, nly, nlz) == BlockLight.instance)
					world.setBlockToAir(lx, ly, lz);
				if(nly >= 0 && nly < 256 && world.isAirBlock(nlx, nly, nlz)) {
					world.setBlock(nlx, nly, nlz, BlockLight.instance);
					data.setInteger("lastLightX",nlx);
					data.setInteger("lastLightY",nly);
					data.setInteger("lastLightZ",nlz);
					//System.out.println("Placed: " + nlx + "," + nly + "," + nlz);
				}
			}
		}
		//entityItem.getEntityItem().stackTagCompound = data;
	}
	else {
		System.out.println("Hmm. " + type);
	}
	return false;
}
 
Example 9
Source Project: bartworks   File: BW_MetaGenerated_SmallOres.java    License: MIT License 5 votes vote down vote up
public static boolean setOreBlock(World aWorld, int aX, int aY, int aZ, int aMetaData, boolean air, Block block, int[] aBlockMeta) {
    if (!air) {
        aY = Math.min(aWorld.getActualHeight(), Math.max(aY, 1));
    }

    Block tBlock = aWorld.getBlock(aX, aY, aZ);
    Block tOreBlock = WerkstoffLoader.BWSmallOres;
    if (aMetaData < 0 || tBlock == Blocks.air && !air) {
        return false;
    } else {

        if (Block.getIdFromBlock(tBlock) != Block.getIdFromBlock(block)) {
            return false;
        }
        final int aaY = aY;
        if (Arrays.stream(aBlockMeta).noneMatch(e -> e == aWorld.getBlockMetadata(aX, aaY, aZ))) {
            return false;
        }

        aWorld.setBlock(aX, aY, aZ, tOreBlock, aMetaData, 0);
        TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
        if (tTileEntity instanceof BW_MetaGeneratedOreTE) {
            ((BW_MetaGeneratedOreTE) tTileEntity).mMetaData = (short) aMetaData;
        }

        return true;
    }
}
 
Example 10
@Override
public boolean plantSaplingAt(EntityPlayer player, ItemStack germling, World world, int x, int y, int z){
    Block plant = ItemPlasticPlants.getPlantBlockIDFromSeed(germling.getItemDamage());
    if(plant.canBlockStay(world, x, y, z)) {
        return world.setBlock(x, y, z, plant);
    }
    return false;
}
 
Example 11
Source Project: qcraft-mod   File: BlockQuantumOre.java    License: Apache License 2.0 5 votes vote down vote up
private void glow( World world, int i, int j, int k )
{
    this.sparkle( world, i, j, k );
    if( this == QCraft.Blocks.quantumOre )
    {
        world.setBlock( i, j, k, QCraft.Blocks.quantumOreGlowing );
    }
}
 
Example 12
Source Project: Artifacts   File: PlaceTraps.java    License: MIT License 5 votes vote down vote up
private void pyramidSpikeTrap(Random rand, World world, int x, int y, int z) {
	for(int ox = -1; ox <= 1; ox++) {
		for(int oz = -1; oz <= 1; oz++) {
			if(ox != 0 || oz != 0)
				world.setBlock(x+ox, 51, z+oz, Blocks.sandstone);
		}
	}
	for(int ox = -1; ox <= 1; ox++) {
		for(int oz = -1; oz <= 1; oz++) {
			if(ox != 0 || oz != 0)
				world.setBlock(x+ox, 52, z+oz, BlockSpikes.instance);
		}
	}
	world.setBlock(x, 53, z, BlockArtifactsPressurePlate.invisObsidian);
}
 
Example 13
Source Project: GardenCollection   File: ItemSeeds.java    License: MIT License 5 votes vote down vote up
@Override
public boolean onItemUse (ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) {
    if (side != 1)
        return false;
    else if (player.canPlayerEdit(x, y, z, side, itemStack) && player.canPlayerEdit(x, y + 1, z, side, itemStack)) {
        if (world.getBlock(x, y, z).canSustainPlant(world, x, y, z, ForgeDirection.UP, this) && world.isAirBlock(x, y + 1, z)) {
            world.setBlock(x, y + 1, z, plantBlock);
            itemStack.stackSize--;
            return true;
        }
    }

    return false;
}
 
Example 14
public static void setBlock(World world, int x, int y, int z, ChiselMode chiselMode, Block previousBlock, int previousMetadata, Block newBlock, int newMetadata, ForgeDirection direction)
{
    if(chiselMode == ChiselMode.SINGLE)
    {
        world.setBlock(x, y, z, newBlock, newMetadata, 2);
    } else if(chiselMode == ChiselMode.CIRCLETHREE)
    {
        int radius = 1;
        for(int i = -radius; i <= radius; i++)
            for(int j = -radius; j <= radius; j++)
            {
                //TODO facing stuff so this can be anywhere
                if(world.getBlock(x + i, y, z + j) != null)
                {
                    if(world.getBlock(x + i, y, z + j) == previousBlock && world.getBlockMetadata(x + i, y, z + j) == previousMetadata)
                    {
                        int shiftedX = x;
                        int shiftedY = y;
                        int shiftedZ = z;

                        world.setBlock(shiftedX, shiftedY, shiftedZ, newBlock, newMetadata, 2);
                    }
                }
            }

    }

}
 
Example 15
private void place(ItemStack stack, World world, int x, int y, int z, Block toPlace, int metadata) {
	world.setBlock(x, y, z, toPlace, metadata, 2);
	stack.stackSize -= 1;
	world.playSoundEffect(x + 0.5f, y + 0.5f, z + 0.5f, this.field_150939_a.stepSound.func_150496_b(), (this.field_150939_a.stepSound.getVolume() + 1.0F) / 2.0F,
			this.field_150939_a.stepSound.getPitch() * 0.8F);
}
 
Example 16
public void buildOilStructure( World pWorld, Random pRand, int pSphereX, int pSphereY, int pSphereZ, int pRadius, int pGroundLevel, Block pTargetBlock, boolean pCheckValidLocation )
{
  // Make sure to not exceed the max-build height of minecraft

  EDEPOSIT_SIZE eSize;
  int tSpringHeight = 0;

  if( pRadius >= MainRegistry.CoreConfig.OilFixConfig.OilDepositThresholdLarge )
  {
    tSpringHeight = MainRegistry.CoreConfig.OilFixConfig.OilFountainSizeLarge;
    eSize = EDEPOSIT_SIZE.LARGE;
  }
  else if( pRadius >= MainRegistry.CoreConfig.OilFixConfig.OilDepositThresholdMedium )
  {
    tSpringHeight = MainRegistry.CoreConfig.OilFixConfig.OilFountainSizeSmall;
    eSize = EDEPOSIT_SIZE.MEDIUM;
  }
  else {
      eSize = EDEPOSIT_SIZE.SMALL;
  }

  int pMaxHeight = pGroundLevel + tSpringHeight;
  if( pMaxHeight >= pWorld.getActualHeight() - 1 )
  {
    if( YAMCore.isDebug() ) {
        _mLog.warn("The total height of the calculated OilDeposit would exceed the maximum world-size.");
    }
    return;
  }

  int r2 = pRadius * pRadius;
  for( int bx = -pRadius; bx <= pRadius; bx++ )
  {
    for( int by = -pRadius + 2; by <= pRadius - 2; by++ )
    {
      for( int bz = -pRadius; bz <= pRadius; bz++ )
      {
        int d2 = bx * bx + by * by * 3 + bz * bz;

        if( d2 <= r2 )
        {
          if( !checkBlock( pWorld, bx + pSphereX - 1, by + pSphereY, bz + pSphereZ ) || !pCheckValidLocation )
          {
            if( !checkBlock( pWorld, bx + pSphereX + 1, by + pSphereY, bz + pSphereZ ) || !pCheckValidLocation )
            {
              if( !checkBlock( pWorld, bx + pSphereX, by + pSphereY - 1, bz + pSphereZ ) || !pCheckValidLocation )
              {
                if( !checkBlock( pWorld, bx + pSphereX, by + pSphereY, bz + pSphereZ - 1 ) || !pCheckValidLocation )
                {
                  if( !checkBlock( pWorld, bx + pSphereX, by + pSphereY, bz + pSphereZ + 1 ) || !pCheckValidLocation )
                  {
                    if( !checkBlockAbove( pWorld, bx + pSphereX, by + pSphereY + 1, bz + pSphereZ ) || !pCheckValidLocation )
                    {
                      pWorld.setBlock( bx + pSphereX, by + pSphereY, bz + pSphereZ, pTargetBlock, 0, 2 );
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }

  if( eSize.ordinal() >= EDEPOSIT_SIZE.MEDIUM.ordinal() )
  {
    for( int y = pSphereY + 1; y <= pMaxHeight; y++ )
    {
      pWorld.setBlock( pSphereX, y, pSphereZ, pTargetBlock, 0, 3 );
    }
  }

  if( eSize == EDEPOSIT_SIZE.LARGE )
  {

    for( int y = pSphereY; y <= pMaxHeight - tSpringHeight / 2; y++ )
    {
      pWorld.setBlock( pSphereX + 1, y, pSphereZ, pTargetBlock, 0, 3 );
      pWorld.setBlock( pSphereX - 1, y, pSphereZ, pTargetBlock, 0, 3 );
      pWorld.setBlock( pSphereX, y, pSphereZ + 1, pTargetBlock, 0, 3 );
      pWorld.setBlock( pSphereX, y, pSphereZ - 1, pTargetBlock, 0, 3 );
    }
  }
}
 
Example 17
public boolean generate(World world, Random random, int x, int y, int z)
  {
//System.out.println("Generating Portal @ x = "+ x + " y = "+y + " z = "+z + " server = " + MoCreatures.isServer());

if(world.getBlockId(x, y , z) == centerBlockID || world.getBlockId(x, y-1 , z) == centerBlockID || world.getBlockId(x, y+1 , z) == centerBlockID)
{
	//System.out.println("portal already exists");
	return true;
}

if(world.getBlockId(x, y , z) == 0 || world.getBlockId(x, y+1, z) !=0)
{
	return false;
}

int origX = x;
int origY = y;
int origZ = z;

//cleans the area
/*for (int i = x-4; i < x+4; i++)
{
	for (int j = z - 4; j < z + 4 ; j++)
	{
		for (int k = y - 1; k < y + 2; k++)
		{
			world.setBlock(i, k, j, 2, 0, 0);
		}
	}
}*/

stairMetadata = 2;
for (int nZ = z-3; nZ < z+3; nZ = nZ+5)
{
	for (int nX = x-2; nX < x+2; nX++)
	{
		
		if (nZ > z)
		{
			stairMetadata = 3;
		}
		world.setBlock(nX, y+1, nZ, stairBlockID, stairMetadata, 2);
		
		//System.out.println("stairMetadata = " + stairMetadata);
		//stairMetadata++;
	}
}

for (int nX = x-2; nX < x+2; nX++)
{
	for (int nZ = z-2; nZ < z+2; nZ++)
	{
		world.setBlock(nX, y+1, nZ, wallBlockID, wallMetadata, 2);
	}
	
}

for (int nX = x-1; nX < x+1; nX++)
{
	for (int nZ = z-1; nZ < z+1; nZ++)
	{
		world.setBlock(nX, y+1, nZ, centerBlockID, centerMetadata, 2);
	}
	
}





for (int j = x-3; j <x+3; j = j+5)
{
	for (int nZ = z-3; nZ < z+3; nZ++)
	{
		world.setBlock(j, y+6, nZ, wallBlockID, wallMetadata, 2);
	}
}



generatePillar(world, x-3, y, z-3);
generatePillar(world, x-3, y, z+2);
generatePillar(world, x+2, y, z-3);
generatePillar(world, x+2, y, z+2);

//System.out.println("portal generated");
return true;
 
  }
 
Example 18
Source Project: GardenCollection   File: ItemMossPaste.java    License: MIT License 4 votes vote down vote up
@Override
public boolean onItemUse (ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) {
    Block block = world.getBlock(x, y, z);
    int meta = world.getBlockMetadata(x, y, z);

    Block newBlock = null;
    int newMeta = -1;

    if (block == Blocks.stonebrick) {
        if (meta == 0)
            newMeta = 1;
        else if (meta == 1) {
            newBlock = ModBlocks.mossBrick;
            newMeta = 0;
        }
        else if (meta == 2) {
            newBlock = ModBlocks.mossBrick;
            newMeta = 3;
        }
    }
    else if (block == ModBlocks.mossBrick) {
        if (meta == 0)
            newMeta = 1;
        if (meta == 1)
            newMeta = 2;
        if (meta == 3)
            newMeta = 4;
        if (meta == 4)
            newMeta = 5;
        if (meta == 5)
            newMeta = 6;
    }
    else if (block == Blocks.cobblestone) {
        if (meta == 0) {
            newBlock = Blocks.mossy_cobblestone;
            newMeta = 0;
        }
    }

    if (newBlock != null) {
        world.setBlock(x, y, z, newBlock);
    }
    if (newMeta != -1) {
        world.setBlockMetadataWithNotify(x, y, z, newMeta, 3);
        itemStack.damageItem(1, player);

        return true;
    }

    return super.onItemUse(itemStack, player, world, x, y, z, side, hitX, hitY, hitZ);
}
 
Example 19
/**
 * Called when the block is placed in the world.
 */
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack)
{
    world.setBlock(x, y, z, this, 1, 2);
    world.setBlock(x, y + 1, z, this, 0, 2);
}
 
Example 20
/**
 * Returns true if the block was placed (and if the Pure Daisy should do particles and stuffs).
 * Should only place the block if !world.isRemote, but should return true if it would've placed
 * it otherwise. You may return false to cancel the normal particles and do your own.
 */
public boolean set(World world, int x, int y, int z, SubTileEntity pureDaisy) {
	if(!world.isRemote)
		world.setBlock(x, y, z, output, outputMeta, 1 | 2);
	return true;
}