类net.minecraft.world.gen.layer.IntCache源码实例Demo

下面列出了怎么用net.minecraft.world.gen.layer.IntCache的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: TofuCraftReload   文件: GenLayerRiverInit.java
/**
 * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
 * amounts, or biomeList[] indices based on the particular GenLayer subclass.
 */
@Override
public int[] getInts(int par1, int par2, int par3, int par4)
{
    int[] aint = this.parent.getInts(par1, par2, par3, par4);
    int[] aint1 = IntCache.getIntCache(par3 * par4);

    for (int i1 = 0; i1 < par4; ++i1)
    {
        for (int j1 = 0; j1 < par3; ++j1)
        {
            this.initChunkSeed((long)(j1 + par1), (long)(i1 + par2));
            aint1[j1 + i1 * par3] = aint[j1 + i1 * par3] > 0 ? this.nextInt(299999) + 2 : 0;
        }
    }

    return aint1;
}
 
源代码2 项目: TofuCraftReload   文件: GenLayerBiomeEdge.java
/**
 * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
 * amounts, or biomeList[] indices based on the particular GenLayer subclass.
 */
public int[] getInts(int par1, int par2, int par3, int par4)
{
    int[] aint = this.parent.getInts(par1 - 1, par2 - 1, par3 + 2, par4 + 2);
    int[] aint1 = IntCache.getIntCache(par3 * par4);

    for (int i1 = 0; i1 < par4; ++i1)
    {
        for (int j1 = 0; j1 < par3; ++j1)
        {
            this.initChunkSeed((long)(j1 + par1), (long)(i1 + par2));
            int k1 = aint[j1 + 1 + (i1 + 1) * (par3 + 2)];

            if (!this.func_151636_a(aint, aint1, j1, i1, par3, k1, Biome.getIdForBiome(TofuBiomes.TOFU_EXTREME_HILLS), Biome.getIdForBiome(TofuBiomes.TOFU_HILLS_EDGE)))
            {
                aint1[j1 + i1 * par3] = k1;
            }
        }
    }

    return aint1;
}
 
源代码3 项目: TofuCraftReload   文件: GenLayerRiverMix.java
/**
 * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
 * amounts, or biomeList[] indices based on the particular GenLayer subclass.
 */
public int[] getInts(int par1, int par2, int par3, int par4)
{
    int[] aint = this.biomePatternGeneratorChain.getInts(par1, par2, par3, par4);
    int[] aint1 = this.riverPatternGeneratorChain.getInts(par1, par2, par3, par4);
    int[] aint2 = IntCache.getIntCache(par3 * par4);

    for (int i1 = 0; i1 < par3 * par4; ++i1)
    {
        if (aint1[i1] == Biome.getIdForBiome(TofuBiomes.TOFU_RIVER))
        {
            aint2[i1] = aint1[i1] & 255;
        }
        else
        {
            aint2[i1] = aint[i1];
        }
    }

    return aint2;
}
 
源代码4 项目: TofuCraftReload   文件: GenLayerIsland.java
/**
 * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
 * amounts, or biomeList[] indices based on the particular GenLayer subclass.
 */
public int[] getInts(int par1, int par2, int par3, int par4)
{
    int[] aint = IntCache.getIntCache(par3 * par4);

    for (int i1 = 0; i1 < par4; ++i1)
    {
        for (int j1 = 0; j1 < par3; ++j1)
        {
            this.initChunkSeed((long)(par1 + j1), (long)(par2 + i1));
            aint[j1 + i1 * par3] = this.nextInt(10) == 0 ? 1 : 0;
        }
    }

    if (par1 > -par3 && par1 <= 0 && par2 > -par4 && par2 <= 0)
    {
        aint[-par1 + -par2 * par3] = 1;
    }

    return aint;
}
 
源代码5 项目: TofuCraftReload   文件: GenLayerEdge.java
private int[] getIntsSpecial(int p_151625_1_, int p_151625_2_, int p_151625_3_, int p_151625_4_)
{
    int[] aint = this.parent.getInts(p_151625_1_, p_151625_2_, p_151625_3_, p_151625_4_);
    int[] aint1 = IntCache.getIntCache(p_151625_3_ * p_151625_4_);

    for (int i1 = 0; i1 < p_151625_4_; ++i1)
    {
        for (int j1 = 0; j1 < p_151625_3_; ++j1)
        {
            this.initChunkSeed((long)(j1 + p_151625_1_), (long)(i1 + p_151625_2_));
            int k1 = aint[j1 + i1 * p_151625_3_];

            if (k1 != 0 && this.nextInt(13) == 0)
            {
                k1 |= 1 + this.nextInt(15) << 8 & 3840;
            }

            aint1[j1 + i1 * p_151625_3_] = k1;
        }
    }

    return aint1;
}
 
源代码6 项目: TofuCraftReload   文件: GenLayerBiome.java
/**
 * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
 * amounts, or biomeList[] indices based on the particular GenLayer subclass.
 */
@Override
public int[] getInts(int par1, int par2, int par3, int par4)
{
    this.parent.getInts(par1, par2, par3, par4);
    int[] aint1 = IntCache.getIntCache(par3 * par4);

    for (int i1 = 0; i1 < par4; ++i1)
    {
        for (int j1 = 0; j1 < par3; ++j1)
        {
            this.initChunkSeed((j1 + par1), (i1 + par2));
            int idx = this.nextInt(this.allowedBiomes.length);
            aint1[j1 + i1 * par3] = Biome.getIdForBiome(this.allowedBiomes[idx]);
        }
    }

    return aint1;
}
 
源代码7 项目: AdvancedRocketry   文件: GenLayerBiomePlanet.java
/**
 * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
 * amounts, or biomeList[] indices based on the particular GenLayer subclass.
 * @param properties 
 */
@Override
public int[] getInts(int p_75904_1_, int p_75904_2_, int p_75904_3_, int p_75904_4_)
{
	//int[] aint = this.parent.getInts(p_75904_1_, p_75904_2_, p_75904_3_, p_75904_4_);
	int[] aint1 = IntCache.getIntCache(p_75904_3_ * p_75904_4_);
	
	for (int i1 = 0; i1 < p_75904_4_; ++i1)
	{
		for (int j1 = 0; j1 < p_75904_3_; ++j1)
		{
			this.initChunkSeed((long)(j1 + p_75904_1_), (long)(i1 + p_75904_2_));
			
			aint1[j1 + i1 * p_75904_3_] = Biome.getIdForBiome(getWeightedBiomeEntry().biome);
		
		}
	}

	//TODO: DEBUG:
	//Arrays.fill(aint1, BiomeGenBase.desert.biomeID);
	
	return aint1;
}
 
源代码8 项目: TofuCraftReload   文件: GenLayerBiomesTofu.java
@Override
public int[] getInts(int x, int z, int width, int depth) {
    int[] dest = IntCache.getIntCache(width * depth);

    for (int dz = 0; dz < depth; dz++) {
        for (int dx = 0; dx < width; dx++) {
            this.initChunkSeed(dx + x, dz + z);
            dest[(dx + dz * width)] = Biome.getIdForBiome(this.allowedBiomes[nextInt(this.allowedBiomes.length)]);
        }
    }
    return dest;
}
 
源代码9 项目: TofuCraftReload   文件: GenLayerEdge.java
private int[] getIntsCoolWarm(int p_151626_1_, int p_151626_2_, int p_151626_3_, int p_151626_4_)
{
    int i1 = p_151626_1_ - 1;
    int j1 = p_151626_2_ - 1;
    int k1 = 1 + p_151626_3_ + 1;
    int l1 = 1 + p_151626_4_ + 1;
    int[] aint = this.parent.getInts(i1, j1, k1, l1);
    int[] aint1 = IntCache.getIntCache(p_151626_3_ * p_151626_4_);

    for (int i2 = 0; i2 < p_151626_4_; ++i2)
    {
        for (int j2 = 0; j2 < p_151626_3_; ++j2)
        {
            this.initChunkSeed((long)(j2 + p_151626_1_), (long)(i2 + p_151626_2_));
            int k2 = aint[j2 + 1 + (i2 + 1) * k1];

            if (k2 == 1)
            {
                int l2 = aint[j2 + 1 + (i2 + 1 - 1) * k1];
                int i3 = aint[j2 + 1 + 1 + (i2 + 1) * k1];
                int j3 = aint[j2 + 1 - 1 + (i2 + 1) * k1];
                int k3 = aint[j2 + 1 + (i2 + 1 + 1) * k1];
                boolean flag = l2 == 3 || i3 == 3 || j3 == 3 || k3 == 3;
                boolean flag1 = l2 == 4 || i3 == 4 || j3 == 4 || k3 == 4;

                if (flag || flag1)
                {
                    k2 = 2;
                }
            }

            aint1[j2 + i2 * p_151626_3_] = k2;
        }
    }

    return aint1;
}
 
源代码10 项目: TofuCraftReload   文件: GenLayerEdge.java
private int[] getIntsHeatIce(int p_151624_1_, int p_151624_2_, int p_151624_3_, int p_151624_4_)
{
    int i1 = p_151624_1_ - 1;
    int j1 = p_151624_2_ - 1;
    int k1 = 1 + p_151624_3_ + 1;
    int l1 = 1 + p_151624_4_ + 1;
    int[] aint = this.parent.getInts(i1, j1, k1, l1);
    int[] aint1 = IntCache.getIntCache(p_151624_3_ * p_151624_4_);

    for (int i2 = 0; i2 < p_151624_4_; ++i2)
    {
        for (int j2 = 0; j2 < p_151624_3_; ++j2)
        {
            int k2 = aint[j2 + 1 + (i2 + 1) * k1];

            if (k2 == 4)
            {
                int l2 = aint[j2 + 1 + (i2 + 1 - 1) * k1];
                int i3 = aint[j2 + 1 + 1 + (i2 + 1) * k1];
                int j3 = aint[j2 + 1 - 1 + (i2 + 1) * k1];
                int k3 = aint[j2 + 1 + (i2 + 1 + 1) * k1];
                boolean flag = l2 == 2 || i3 == 2 || j3 == 2 || k3 == 2;
                boolean flag1 = l2 == 1 || i3 == 1 || j3 == 1 || k3 == 1;

                if (flag1 || flag)
                {
                    k2 = 3;
                }
            }

            aint1[j2 + i2 * p_151624_3_] = k2;
        }
    }

    return aint1;
}
 
源代码11 项目: TofuCraftReload   文件: GenLayerRiver.java
/**
 * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
 * amounts, or biomeList[] indices based on the particular GenLayer subclass.
 */
@Override
public int[] getInts(int par1, int par2, int par3, int par4)
{
    int i1 = par1 - 1;
    int j1 = par2 - 1;
    int k1 = par3 + 2;
    int l1 = par4 + 2;
    int[] aint = this.parent.getInts(i1, j1, k1, l1);
    int[] aint1 = IntCache.getIntCache(par3 * par4);

    for (int i2 = 0; i2 < par4; ++i2)
    {
        for (int j2 = 0; j2 < par3; ++j2)
        {
            int k2 = this.func_151630_c(aint[j2 + 0 + (i2 + 1) * k1]);
            int l2 = this.func_151630_c(aint[j2 + 2 + (i2 + 1) * k1]);
            int i3 = this.func_151630_c(aint[j2 + 1 + (i2 + 0) * k1]);
            int j3 = this.func_151630_c(aint[j2 + 1 + (i2 + 2) * k1]);
            int k3 = this.func_151630_c(aint[j2 + 1 + (i2 + 1) * k1]);

            if (k3 == k2 && k3 == i3 && k3 == l2 && k3 == j3)
            {
                aint1[j2 + i2 * par3] = -1;
            }
            else
            {
                aint1[j2 + i2 * par3] = Biome.getIdForBiome(TofuBiomes.TOFU_RIVER);
            }
        }
    }

    return aint1;
}
 
源代码12 项目: TofuCraftReload   文件: BiomeProviderTofu.java
/**
 * Returns an array of biomes for the location input.
 */
@Override
public Biome[] getBiomesForGeneration(Biome[] biomes, int x, int z, int width, int height) {
    IntCache.resetIntCache();

    if (biomes == null || biomes.length < width * height)
    {
        biomes = new Biome[width * height];
    }

    int[] aint = this.genBiomes.getInts(x, z, width, height);

    try
    {
        for (int i = 0; i < width * height; ++i)
        {
            biomes[i] = Biome.getBiome(aint[i], TofuBiomes.TOFU_RIVER);
        }

        return biomes;
    }
    catch (Throwable throwable)
    {
        CrashReport crashreport = CrashReport.makeCrashReport(throwable, "Invalid Biome id");
        CrashReportCategory crashreportcategory = crashreport.makeCategory("RawBiomeBlock");
        crashreportcategory.addCrashSection("biomes[] size", Integer.valueOf(biomes.length));
        crashreportcategory.addCrashSection("x", Integer.valueOf(x));
        crashreportcategory.addCrashSection("z", Integer.valueOf(z));
        crashreportcategory.addCrashSection("w", Integer.valueOf(width));
        crashreportcategory.addCrashSection("h", Integer.valueOf(height));
        throw new ReportedException(crashreport);
    }
}
 
源代码13 项目: TofuCraftReload   文件: BiomeProviderTofu.java
/**
 * Gets a list of biomes for the specified blocks.
 */
@Override
public Biome[] getBiomes(@Nullable Biome[] listToReuse, int x, int z, int width, int length, boolean cacheFlag) {
    IntCache.resetIntCache();

    if (listToReuse == null || listToReuse.length < width * length)
    {
        listToReuse = new Biome[width * length];
    }

    if (cacheFlag && width == 16 && length == 16 && (x & 15) == 0 && (z & 15) == 0)
    {
        Biome[] abiome = this.biomeCache.getCachedBiomes(x, z);
        System.arraycopy(abiome, 0, listToReuse, 0, width * length);
        return listToReuse;
    }
    else
    {
        int[] aint = this.biomeIndexLayer.getInts(x, z, width, length);

        for (int i = 0; i < width * length; ++i)
        {
            listToReuse[i] = Biome.getBiome(aint[i], TofuBiomes.TOFU_RIVER);
        }

        return listToReuse;
    }
}
 
源代码14 项目: TofuCraftReload   文件: BiomeProviderTofu.java
/**
 * checks given Chunk's Biomes against List of allowed ones
 */
@Override
public boolean areBiomesViable(int x, int z, int radius, List<Biome> allowed) {
    IntCache.resetIntCache();
    int i = x - radius >> 2;
    int j = z - radius >> 2;
    int k = x + radius >> 2;
    int l = z + radius >> 2;
    int i1 = k - i + 1;
    int j1 = l - j + 1;
    int[] aint = this.genBiomes.getInts(i, j, i1, j1);

    try
    {
        for (int k1 = 0; k1 < i1 * j1; ++k1)
        {
            Biome biome = Biome.getBiome(aint[k1]);

            if (!allowed.contains(biome))
            {
                return false;
            }
        }

        return true;
    }
    catch (Throwable throwable)
    {
        CrashReport crashreport = CrashReport.makeCrashReport(throwable, "Invalid Biome id");
        CrashReportCategory crashreportcategory = crashreport.makeCategory("Layer");
        crashreportcategory.addCrashSection("Layer", this.genBiomes.toString());
        crashreportcategory.addCrashSection("x", Integer.valueOf(x));
        crashreportcategory.addCrashSection("z", Integer.valueOf(z));
        crashreportcategory.addCrashSection("radius", Integer.valueOf(radius));
        crashreportcategory.addCrashSection("allowed", allowed);
        throw new ReportedException(crashreport);
    }
}
 
源代码15 项目: malmo   文件: BiomeGeneratorImplementation.java
@Override
public int[] getInts(int par1, int par2, int par3, int par4) {
	int[] aint2 = IntCache.getIntCache(par3 * par4);

	for (int i = 0; i < aint2.length; i++) {
		aint2[i] = value;
	}

	return aint2;
}
 
源代码16 项目: TofuCraftReload   文件: GenLayerTofuVoronoiZoom.java
/**
 * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
 * amounts, or Biome ID's based on the particular GenLayer subclass.
 */
public int[] getInts(int areaX, int areaY, int areaWidth, int areaHeight)
{
    areaX = areaX - 2;
    areaY = areaY - 2;
    int i = areaX >> 2;
    int j = areaY >> 2;
    int k = (areaWidth >> 2) + 2;
    int l = (areaHeight >> 2) + 2;
    int[] aint = this.parent.getInts(i, j, k, l);
    int i1 = k - 1 << 2;
    int j1 = l - 1 << 2;
    int[] aint1 = IntCache.getIntCache(i1 * j1);

    for (int k1 = 0; k1 < l - 1; ++k1)
    {
        int l1 = 0;
        int i2 = aint[l1 + 0 + (k1 + 0) * k];

        for (int j2 = aint[l1 + 0 + (k1 + 1) * k]; l1 < k - 1; ++l1)
        {
            this.initChunkSeed((long)(l1 + i << 2), (long)(k1 + j << 2));
            double d1 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D;
            double d2 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D;
            this.initChunkSeed((long)(l1 + i + 1 << 2), (long)(k1 + j << 2));
            double d3 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D + 4.0D;
            double d4 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D;
            this.initChunkSeed((long)(l1 + i << 2), (long)(k1 + j + 1 << 2));
            double d5 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D;
            double d6 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D + 4.0D;
            this.initChunkSeed((long)(l1 + i + 1 << 2), (long)(k1 + j + 1 << 2));
            double d7 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D + 4.0D;
            double d8 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D + 4.0D;
            int k2 = aint[l1 + 1 + (k1 + 0) * k] & 255;
            int l2 = aint[l1 + 1 + (k1 + 1) * k] & 255;

            for (int i3 = 0; i3 < 4; ++i3)
            {
                int j3 = ((k1 << 2) + i3) * i1 + (l1 << 2);

                for (int k3 = 0; k3 < 4; ++k3)
                {
                    double d9 = ((double)i3 - d2) * ((double)i3 - d2) + ((double)k3 - d1) * ((double)k3 - d1);
                    double d10 = ((double)i3 - d4) * ((double)i3 - d4) + ((double)k3 - d3) * ((double)k3 - d3);
                    double d11 = ((double)i3 - d6) * ((double)i3 - d6) + ((double)k3 - d5) * ((double)k3 - d5);
                    double d12 = ((double)i3 - d8) * ((double)i3 - d8) + ((double)k3 - d7) * ((double)k3 - d7);

                    if (d9 < d10 && d9 < d11 && d9 < d12)
                    {
                        aint1[j3++] = i2;
                    }
                    else if (d10 < d9 && d10 < d11 && d10 < d12)
                    {
                        aint1[j3++] = k2;
                    }
                    else if (d11 < d9 && d11 < d10 && d11 < d12)
                    {
                        aint1[j3++] = j2;
                    }
                    else
                    {
                        aint1[j3++] = l2;
                    }
                }
            }

            i2 = k2;
            j2 = l2;
        }
    }

    int[] aint2 = IntCache.getIntCache(areaWidth * areaHeight);

    for (int l3 = 0; l3 < areaHeight; ++l3)
    {
        System.arraycopy(aint1, (l3 + (areaY & 3)) * i1 + (areaX & 3), aint2, l3 * areaWidth, areaWidth);
    }

    return aint2;
}
 
源代码17 项目: TofuCraftReload   文件: GenLayerSmooth.java
/**
 * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
 * amounts, or biomeList[] indices based on the particular GenLayer subclass.
 */
@Override
public int[] getInts(int par1, int par2, int par3, int par4)
{
    int i1 = par1 - 1;
    int j1 = par2 - 1;
    int k1 = par3 + 2;
    int l1 = par4 + 2;
    int[] aint = this.parent.getInts(i1, j1, k1, l1);
    int[] aint1 = IntCache.getIntCache(par3 * par4);

    for (int i2 = 0; i2 < par4; ++i2)
    {
        for (int j2 = 0; j2 < par3; ++j2)
        {
            int k2 = aint[j2 + 0 + (i2 + 1) * k1];
            int l2 = aint[j2 + 2 + (i2 + 1) * k1];
            int i3 = aint[j2 + 1 + (i2 + 0) * k1];
            int j3 = aint[j2 + 1 + (i2 + 2) * k1];
            int k3 = aint[j2 + 1 + (i2 + 1) * k1];

            if (k2 == l2 && i3 == j3)
            {
                this.initChunkSeed((j2 + par1), (i2 + par2));

                if (this.nextInt(2) == 0)
                {
                    k3 = k2;
                }
                else
                {
                    k3 = i3;
                }
            }
            else
            {
                if (k2 == l2)
                {
                    k3 = k2;
                }

                if (i3 == j3)
                {
                    k3 = i3;
                }
            }

            aint1[j2 + i2 * par3] = k3;
        }
    }

    return aint1;
}
 
源代码18 项目: TofuCraftReload   文件: GenLayerZoom.java
/**
 * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
 * amounts, or biomeList[] indices based on the particular GenLayer subclass.
 */
@Override
public int[] getInts(int par1, int par2, int par3, int par4)
{
    int i1 = par1 >> 1;
    int j1 = par2 >> 1;
    int k1 = (par3 >> 1) + 2;
    int l1 = (par4 >> 1) + 2;
    int[] aint = this.parent.getInts(i1, j1, k1, l1);
    int i2 = k1 - 1 << 1;
    int j2 = l1 - 1 << 1;
    int[] aint1 = IntCache.getIntCache(i2 * j2);
    int l2;

    for (int k2 = 0; k2 < l1 - 1; ++k2)
    {
        l2 = (k2 << 1) * i2;
        int i3 = 0;
        int j3 = aint[i3 + 0 + (k2 + 0) * k1];

        for (int k3 = aint[i3 + 0 + (k2 + 1) * k1]; i3 < k1 - 1; ++i3)
        {
            this.initChunkSeed((long)(i3 + i1 << 1), (long)(k2 + j1 << 1));
            int l3 = aint[i3 + 1 + (k2 + 0) * k1];
            int i4 = aint[i3 + 1 + (k2 + 1) * k1];
            aint1[l2] = j3;
            aint1[l2++ + i2] = this.selectRandom(new int[]{j3, k3});
            aint1[l2] = this.selectRandom(new int[]{j3, l3});
            aint1[l2++ + i2] = this.selectModeOrRandom(j3, l3, k3, i4);
            j3 = l3;
            k3 = i4;
        }
    }

    int[] aint2 = IntCache.getIntCache(par3 * par4);

    for (l2 = 0; l2 < par4; ++l2)
    {
        System.arraycopy(aint1, (l2 + (par2 & 1)) * i2 + (par1 & 1), aint2, l2 * par3, par3);
    }

    return aint2;
}
 
源代码19 项目: TofuCraftReload   文件: GenLayerShore.java
/**
 * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
 * amounts, or biomeList[] indices based on the particular GenLayer subclass.
 */
@Override
public int[] getInts(int par1, int par2, int par3, int par4)
{
    int[] aint = this.parent.getInts(par1 - 1, par2 - 1, par3 + 2, par4 + 2);
    int[] aint1 = IntCache.getIntCache(par3 * par4);

    for (int i1 = 0; i1 < par4; ++i1)
    {
        for (int j1 = 0; j1 < par3; ++j1)
        {
            this.initChunkSeed((j1 + par1), (i1 + par2));
            int k1 = aint[j1 + 1 + (i1 + 1) * (par3 + 2)];
            int l1;
            int i2;
            int j2;
            int k2;

            if (k1 == Biome.getIdForBiome(TofuBiomes.TOFU_EXTREME_HILLS))
            {
                l1 = aint[j1 + 1 + (i1 + 1 - 1) * (par3 + 2)];
                i2 = aint[j1 + 1 + 1 + (i1 + 1) * (par3 + 2)];
                j2 = aint[j1 + 1 - 1 + (i1 + 1) * (par3 + 2)];
                k2 = aint[j1 + 1 + (i1 + 1 + 1) * (par3 + 2)];

                if (l1 == Biome.getIdForBiome(TofuBiomes.TOFU_EXTREME_HILLS) && i2 == Biome.getIdForBiome(TofuBiomes.TOFU_EXTREME_HILLS) && j2 == Biome.getIdForBiome(TofuBiomes.TOFU_EXTREME_HILLS) && k2 == Biome.getIdForBiome(TofuBiomes.TOFU_EXTREME_HILLS))
                {
                    aint1[j1 + i1 * par3] = k1;
                }
                else
                {
                    aint1[j1 + i1 * par3] = Biome.getIdForBiome(TofuBiomes.TOFU_HILLS_EDGE);
                }
            }
            else
            {
                aint1[j1 + i1 * par3] = k1;
            }
        }
    }

    return aint1;
}
 
源代码20 项目: TofuCraftReload   文件: GenLayerHills.java
/**
 * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
 * amounts, or biomeList[] indices based on the particular GenLayer subclass.
 */
@Override
public int[] getInts(int par1, int par2, int par3, int par4)
{
    int[] aint = this.parent.getInts(par1 - 1, par2 - 1, par3 + 2, par4 + 2);
    int[] aint1 = this.genLayer.getInts(par1 - 1, par2 - 1, par3 + 2, par4 + 2);
    int[] aint2 = IntCache.getIntCache(par3 * par4);

    for (int i1 = 0; i1 < par4; ++i1)
    {
        for (int j1 = 0; j1 < par3; ++j1)
        {
            this.initChunkSeed((j1 + par1), (i1 + par2));
            int k1 = aint[j1 + 1 + (i1 + 1) * (par3 + 2)];
            int l1 = aint1[j1 + 1 + (i1 + 1) * (par3 + 2)];

            if (l1 >= 2 && (l1 - 2) % 29 == 1)
            {
                aint2[j1 + i1 * par3] = k1;
            }
            else if (this.nextInt(3) != 0)
            {
                aint2[j1 + i1 * par3] = k1;
            }
            else
            {
                int i2 = k1;
                int j2;

                if (k1 == Biome.getIdForBiome(TofuBiomes.TOFU_PLAINS))
                {
                    i2 = Biome.getIdForBiome(TofuBiomes.TOFU_PLAIN_HILLS);
                }
                else if (k1 == Biome.getIdForBiome(TofuBiomes.TOFU_FOREST))
                {
                    i2 = Biome.getIdForBiome(TofuBiomes.TOFU_FOREST_HILLS);
                }

                if (i2 == k1)
                {
                    aint2[j1 + i1 * par3] = k1;
                }
                else
                {
                    j2 = aint[j1 + 1 + (i1 + 1 - 1) * (par3 + 2)];
                    int k2 = aint[j1 + 1 + 1 + (i1 + 1) * (par3 + 2)];
                    int l2 = aint[j1 + 1 - 1 + (i1 + 1) * (par3 + 2)];
                    int i3 = aint[j1 + 1 + (i1 + 1 + 1) * (par3 + 2)];
                    int j3 = 0;

                    if (compareBiomesById(j2, k1))
                    {
                        ++j3;
                    }

                    if (compareBiomesById(k2, k1))
                    {
                        ++j3;
                    }

                    if (compareBiomesById(l2, k1))
                    {
                        ++j3;
                    }

                    if (compareBiomesById(i3, k1))
                    {
                        ++j3;
                    }

                    if (j3 >= 3)
                    {
                        aint2[j1 + i1 * par3] = i2;
                    }
                    else
                    {
                        aint2[j1 + i1 * par3] = k1;
                    }
                }
            }
        }
    }

    return aint2;
}
 
源代码21 项目: TofuCraftReload   文件: GenLayerAddIsland.java
/**
 * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
 * amounts, or biomeList[] indices based on the particular GenLayer subclass.
 */
@Override
public int[] getInts(int par1, int par2, int par3, int par4)
{
    int i1 = par1 - 1;
    int j1 = par2 - 1;
    int k1 = par3 + 2;
    int l1 = par4 + 2;
    int[] aint = this.parent.getInts(i1, j1, k1, l1);
    int[] aint1 = IntCache.getIntCache(par3 * par4);

    for (int i2 = 0; i2 < par4; ++i2)
    {
        for (int j2 = 0; j2 < par3; ++j2)
        {
            int k2 = aint[j2 + 0 + (i2 + 0) * k1];
            int l2 = aint[j2 + 2 + (i2 + 0) * k1];
            int i3 = aint[j2 + 0 + (i2 + 2) * k1];
            int j3 = aint[j2 + 2 + (i2 + 2) * k1];
            int k3 = aint[j2 + 1 + (i2 + 1) * k1];
            this.initChunkSeed((j2 + par1), (i2 + par2));

            if (k3 == 0 && (k2 != 0 || l2 != 0 || i3 != 0 || j3 != 0))
            {
                int l3 = 1;
                int i4 = 1;

                if (k2 != 0 && this.nextInt(l3++) == 0)
                {
                    i4 = k2;
                }

                if (l2 != 0 && this.nextInt(l3++) == 0)
                {
                    i4 = l2;
                }

                if (i3 != 0 && this.nextInt(l3++) == 0)
                {
                    i4 = i3;
                }

                if (j3 != 0 && this.nextInt(l3++) == 0)
                {
                    i4 = j3;
                }

                if (this.nextInt(3) == 0)
                {
                    aint1[j2 + i2 * par3] = i4;
                }
                else if (i4 == Biome.getIdForBiome(Biomes.ICE_PLAINS))
                {
                    aint1[j2 + i2 * par3] = Biome.getIdForBiome(Biomes.FROZEN_OCEAN);
                }
                else
                {
                    aint1[j2 + i2 * par3] = 0;
                }
            }
            else if (k3 > 0 && (k2 == 0 || l2 == 0 || i3 == 0 || j3 == 0))
            {
                if (this.nextInt(5) == 0)
                {
                    if (k3 == Biome.getIdForBiome(Biomes.ICE_PLAINS))
                    {
                        aint1[j2 + i2 * par3] = Biome.getIdForBiome(Biomes.FROZEN_OCEAN);
                    }
                    else
                    {
                        aint1[j2 + i2 * par3] = 0;
                    }
                }
                else
                {
                    aint1[j2 + i2 * par3] = k3;
                }
            }
            else
            {
                aint1[j2 + i2 * par3] = k3;
            }
        }
    }

    return aint1;
}
 
源代码22 项目: FastAsyncWorldedit   文件: MutableGenLayer.java
@Override
public int[] getInts(int areaX, int areaY, int areaWidth, int areaHeight) {
    int[] biomes = IntCache.getIntCache(areaWidth * areaHeight);
    Arrays.fill(biomes, biome);
    return biomes;
}
 
源代码23 项目: FastAsyncWorldedit   文件: MutableGenLayer.java
@Override
public int[] getInts(int areaX, int areaY, int areaWidth, int areaHeight) {
    int[] biomes = IntCache.getIntCache(areaWidth * areaHeight);
    Arrays.fill(biomes, biome);
    return biomes;
}
 
源代码24 项目: FastAsyncWorldedit   文件: MutableGenLayer.java
@Override
public int[] getInts(int areaX, int areaY, int areaWidth, int areaHeight) {
    int[] biomes = IntCache.getIntCache(areaWidth * areaHeight);
    Arrays.fill(biomes, biome);
    return biomes;
}
 
源代码25 项目: FastAsyncWorldedit   文件: MutableGenLayer.java
@Override
public int[] getInts(int areaX, int areaY, int areaWidth, int areaHeight) {
    int[] biomes = IntCache.getIntCache(areaWidth * areaHeight);
    Arrays.fill(biomes, biome);
    return biomes;
}
 
源代码26 项目: AdvancedRocketry   文件: GenLayerVoronoiExtended.java
/**
 * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
 * amounts, or biomeList[] indices based on the particular GenLayer subclass.
 */
public int[] getInts(int p_75904_1_, int p_75904_2_, int p_75904_3_, int p_75904_4_)
{
    p_75904_1_ -= 2;
    p_75904_2_ -= 2;
    int i1 = p_75904_1_ >> 2;
    int j1 = p_75904_2_ >> 2;
    int k1 = (p_75904_3_ >> 2) + 2;
    int l1 = (p_75904_4_ >> 2) + 2;
    int[] aint = this.parent.getInts(i1, j1, k1, l1);
    int i2 = k1 - 1 << 2;
    int j2 = l1 - 1 << 2;
    int[] aint1 = IntCache.getIntCache(i2 * j2);
    int l2;

    for (int k2 = 0; k2 < l1 - 1; ++k2)
    {
        l2 = 0;
        int i3 = aint[l2 + 0 + (k2 + 0) * k1];

        for (int j3 = aint[l2 + 0 + (k2 + 1) * k1]; l2 < k1 - 1; ++l2)
        {
            double d0 = 3.6D;
            this.initChunkSeed((long)(l2 + i1 << 2), (long)(k2 + j1 << 2));
            double d1 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D;
            double d2 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D;
            this.initChunkSeed((long)(l2 + i1 + 1 << 2), (long)(k2 + j1 << 2));
            double d3 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D + 4.0D;
            double d4 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D;
            this.initChunkSeed((long)(l2 + i1 << 2), (long)(k2 + j1 + 1 << 2));
            double d5 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D;
            double d6 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D + 4.0D;
            this.initChunkSeed((long)(l2 + i1 + 1 << 2), (long)(k2 + j1 + 1 << 2));
            double d7 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D + 4.0D;
            double d8 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D + 4.0D;
            int k3 = aint[l2 + 1 + (k2 + 0) * k1];
            int l3 = aint[l2 + 1 + (k2 + 1) * k1];

            for (int i4 = 0; i4 < 4; ++i4)
            {
                int j4 = ((k2 << 2) + i4) * i2 + (l2 << 2);

                for (int k4 = 0; k4 < 4; ++k4)
                {
                    double d9 = ((double)i4 - d2) * ((double)i4 - d2) + ((double)k4 - d1) * ((double)k4 - d1);
                    double d10 = ((double)i4 - d4) * ((double)i4 - d4) + ((double)k4 - d3) * ((double)k4 - d3);
                    double d11 = ((double)i4 - d6) * ((double)i4 - d6) + ((double)k4 - d5) * ((double)k4 - d5);
                    double d12 = ((double)i4 - d8) * ((double)i4 - d8) + ((double)k4 - d7) * ((double)k4 - d7);

                    if (d9 < d10 && d9 < d11 && d9 < d12)
                    {
                        aint1[j4++] = i3;
                    }
                    else if (d10 < d9 && d10 < d11 && d10 < d12)
                    {
                        aint1[j4++] = k3;
                    }
                    else if (d11 < d9 && d11 < d10 && d11 < d12)
                    {
                        aint1[j4++] = j3;
                    }
                    else
                    {
                        aint1[j4++] = l3;
                    }
                }
            }

            i3 = k3;
            j3 = l3;
        }
    }

    int[] aint2 = IntCache.getIntCache(p_75904_3_ * p_75904_4_);

    for (l2 = 0; l2 < p_75904_4_; ++l2)
    {
        System.arraycopy(aint1, (l2 + (p_75904_2_ & 3)) * i2 + (p_75904_1_ & 3), aint2, l2 * p_75904_3_, p_75904_3_);
    }

    return aint2;
}
 
 类所在包
 类方法
 同包方法