Java Code Examples for net.minecraft.init.Blocks.MAGMA

The following are Jave code examples for showing how to use MAGMA of the net.minecraft.init.Blocks class. You can vote up the examples you like. Your votes will be used in our system to get more good examples.
+ Save this method
Example 1
Project: ThermionicsWorld   File: GeneratorMagmaSpike.java   View Source Code Vote up 5 votes
public static boolean isNonSpikeSurface(World world, BlockPos pos) {
	Block surface = world.getBlockState(pos.down()).getBlock();
	if (surface==Blocks.MAGMA || surface==Blocks.OBSIDIAN) return false;
	
	return world.isAirBlock(pos) &&
			world.isBlockFullCube(pos.down());
}
 
Example 2
Project: Infernum   File: PigmanMageTowerGenerator.java   View Source Code Vote up 4 votes
public void generateTower(WorldServer world, BlockPos pos, Random rand) {
	MinecraftServer server = world.getMinecraftServer();
	Template template = world.getStructureTemplateManager().getTemplate(server, TOWER_STRUCTURE);
	PlacementSettings settings = new PlacementSettings();
	settings.setRotation(Rotation.values()[rand.nextInt(Rotation.values().length)]);
	
	BlockPos size = template.getSize();
	int airBlocks = 0;
	for(int x = 0; x < size.getX(); x++) {
		for (int z = 0; z < size.getZ(); z++) {
			if (world.isAirBlock(pos.add(template.transformedBlockPos(settings, new BlockPos(x, 0, z))))) {
				airBlocks++;
				if (airBlocks > 0.33 * (size.getX() * size.getZ())) {
					return;
				}
			}
		}
	}
	for (int x = 0; x < size.getX(); x++) {
		for (int z = 0; z < size.getZ(); z++) {
			if (x == 0 || x == size.getX() - 1 || z == 0 || z == size.getZ() - 1) {
				for (int y = 0; y < size.getY(); y++) {
					BlockPos checkPos = pos.add(template.transformedBlockPos(settings, new BlockPos(x, y, z)));
					IBlockState checkState = world.getBlockState(checkPos);
					if (!checkState.getBlock().isAir(checkState, world, checkPos)) {
						if (!(y <= 3 && (checkState.getBlock() == Blocks.NETHERRACK || checkState.getBlock() == Blocks.QUARTZ_ORE || checkState.getBlock() == Blocks.MAGMA))) {
							return;
						}
					}
				}
			}
		}
	}

	template.addBlocksToWorld(world, pos, settings);

	Map<BlockPos, String> dataBlocks = template.getDataBlocks(pos, settings);
	for (Entry<BlockPos, String> entry : dataBlocks.entrySet()) {
		String[] tokens = entry.getValue().split(" ");
		if (tokens.length == 0)
			return;

		BlockPos dataPos = entry.getKey();
		EntityPigMage pigMage;

		switch (tokens[0]) {
		case "pigman_mage":
			pigMage = new EntityPigMage(world);
			pigMage.setPosition(dataPos.getX() + 0.5, dataPos.getY(), dataPos.getZ() + 0.5);
			pigMage.onInitialSpawn(world.getDifficultyForLocation(dataPos), null);
			world.spawnEntity(pigMage);
			break;
		case "fortress_chest":
			IBlockState chestState = Blocks.CHEST.getDefaultState().withRotation(settings.getRotation());
			chestState = chestState.withMirror(Mirror.FRONT_BACK);
			world.setBlockState(dataPos, chestState);
			TileEntity tile = world.getTileEntity(dataPos);
			if (tile != null && tile instanceof TileEntityLockableLoot)
				((TileEntityLockableLoot) tile).setLootTable(NETHER_BRIDGE_LOOT_TABLE, rand.nextLong());
			break;
		}
	}

}
 
Example 3
Project: Infernum   File: InfernalMonumentGenerator.java   View Source Code Vote up 4 votes
public void generateMonument(WorldServer world, BlockPos pos, Random rand) {
	MinecraftServer server = world.getMinecraftServer();
	Template template = world.getStructureTemplateManager().getTemplate(server, MONUMENT_STRUCTURE);
	PlacementSettings settings = new PlacementSettings();
	settings.setRotation(Rotation.values()[rand.nextInt(Rotation.values().length)]);
	
	BlockPos size = template.getSize();
	int airBlocks = 0;
	for(int x = 0; x < size.getX(); x++) {
		for (int z = 0; z < size.getZ(); z++) {
			if (world.isAirBlock(pos.add(template.transformedBlockPos(settings, new BlockPos(x, -1, z))))) {
				airBlocks++;
				if (airBlocks > 0.33 * (size.getX() * size.getZ())) {
					return;
				}
			}
		}
	}
	for (int x = 0; x < size.getX(); x++) {
		for (int z = 0; z < size.getZ(); z++) {
			if (x == 0 || x == size.getX() - 1 || z == 0 || z == size.getZ() - 1) {
				for (int y = 0; y < size.getY(); y++) {
					BlockPos checkPos = pos.add(template.transformedBlockPos(settings, new BlockPos(x, y, z)));
					IBlockState checkState = world.getBlockState(checkPos);
					if (!checkState.getBlock().isAir(checkState, world, checkPos)) {
						if (!(y <= 0 && (checkState.getBlock() == Blocks.NETHERRACK || checkState.getBlock() == Blocks.QUARTZ_ORE || checkState.getBlock() == Blocks.MAGMA))) {
							return;
						}
					}
				}
			}
		}
	}

	template.addBlocksToWorld(world, pos, settings);

	Map<BlockPos, String> dataBlocks = template.getDataBlocks(pos, settings);
	for (Entry<BlockPos, String> entry : dataBlocks.entrySet()) {
		String[] tokens = entry.getValue().split(" ");
		if (tokens.length == 0)
			return;

		BlockPos dataPos = entry.getKey();

		if (tokens[0].equals("pedestal")) {
			IBlockState chestState = InfernumBlocks.PEDESTAL.getDefaultState();
			world.setBlockState(dataPos, chestState);
			TileEntity tile = world.getTileEntity(dataPos);
			if (tile instanceof TilePedestal) {
				((TilePedestal) tile).setStack(new ItemStack(InfernumItems.KNOWLEDGE_BOOK));
			}
		}

	}

}
 
Example 4
Project: Backmemed   File: WalkNodeProcessor.java   View Source Code Vote up 4 votes
public PathNodeType getPathNodeType(IBlockAccess blockaccessIn, int x, int y, int z)
{
    PathNodeType pathnodetype = this.getPathNodeTypeRaw(blockaccessIn, x, y, z);

    if (pathnodetype == PathNodeType.OPEN && y >= 1)
    {
        Block block = blockaccessIn.getBlockState(new BlockPos(x, y - 1, z)).getBlock();
        PathNodeType pathnodetype1 = this.getPathNodeTypeRaw(blockaccessIn, x, y - 1, z);
        pathnodetype = pathnodetype1 != PathNodeType.WALKABLE && pathnodetype1 != PathNodeType.OPEN && pathnodetype1 != PathNodeType.WATER && pathnodetype1 != PathNodeType.LAVA ? PathNodeType.WALKABLE : PathNodeType.OPEN;

        if (pathnodetype1 == PathNodeType.DAMAGE_FIRE || block == Blocks.MAGMA)
        {
            pathnodetype = PathNodeType.DAMAGE_FIRE;
        }

        if (pathnodetype1 == PathNodeType.DAMAGE_CACTUS)
        {
            pathnodetype = PathNodeType.DAMAGE_CACTUS;
        }
    }

    BlockPos.PooledMutableBlockPos blockpos$pooledmutableblockpos = BlockPos.PooledMutableBlockPos.retain();

    if (pathnodetype == PathNodeType.WALKABLE)
    {
        for (int j = -1; j <= 1; ++j)
        {
            for (int i = -1; i <= 1; ++i)
            {
                if (j != 0 || i != 0)
                {
                    Block block1 = blockaccessIn.getBlockState(blockpos$pooledmutableblockpos.setPos(j + x, y, i + z)).getBlock();

                    if (block1 == Blocks.CACTUS)
                    {
                        pathnodetype = PathNodeType.DANGER_CACTUS;
                    }
                    else if (block1 == Blocks.FIRE)
                    {
                        pathnodetype = PathNodeType.DANGER_FIRE;
                    }
                }
            }
        }
    }

    blockpos$pooledmutableblockpos.release();
    return pathnodetype;
}
 
Example 5
Project: CustomWorldGen   File: WalkNodeProcessor.java   View Source Code Vote up 4 votes
public PathNodeType getPathNodeType(IBlockAccess blockaccessIn, int x, int y, int z)
{
    PathNodeType pathnodetype = this.getPathNodeTypeRaw(blockaccessIn, x, y, z);

    if (pathnodetype == PathNodeType.OPEN && y >= 1)
    {
        Block block = blockaccessIn.getBlockState(new BlockPos(x, y - 1, z)).getBlock();
        PathNodeType pathnodetype1 = this.getPathNodeTypeRaw(blockaccessIn, x, y - 1, z);
        pathnodetype = pathnodetype1 != PathNodeType.WALKABLE && pathnodetype1 != PathNodeType.OPEN && pathnodetype1 != PathNodeType.WATER && pathnodetype1 != PathNodeType.LAVA ? PathNodeType.WALKABLE : PathNodeType.OPEN;

        if (pathnodetype1 == PathNodeType.DAMAGE_FIRE || block == Blocks.MAGMA)
        {
            pathnodetype = PathNodeType.DAMAGE_FIRE;
        }

        if (pathnodetype1 == PathNodeType.DAMAGE_CACTUS)
        {
            pathnodetype = PathNodeType.DAMAGE_CACTUS;
        }
    }

    BlockPos.PooledMutableBlockPos blockpos$pooledmutableblockpos = BlockPos.PooledMutableBlockPos.retain();

    if (pathnodetype == PathNodeType.WALKABLE)
    {
        for (int j = -1; j <= 1; ++j)
        {
            for (int i = -1; i <= 1; ++i)
            {
                if (j != 0 || i != 0)
                {
                    Block block1 = blockaccessIn.getBlockState(blockpos$pooledmutableblockpos.setPos(j + x, y, i + z)).getBlock();

                    if (block1 == Blocks.CACTUS)
                    {
                        pathnodetype = PathNodeType.DANGER_CACTUS;
                    }
                    else if (block1 == Blocks.FIRE)
                    {
                        pathnodetype = PathNodeType.DANGER_FIRE;
                    }
                }
            }
        }
    }

    blockpos$pooledmutableblockpos.release();
    return pathnodetype;
}