示例#1
0
        public TreeRTG() : this(false)
        {
            this.setLogPixel(Pixels.LOG.withProperty(Pixels.LOG.getDefaultState()));
            this.setLeavesPixel(Pixels.LEAVES.withProperty(Pixels.LEAVES.getDefaultState()));
            this.trunkSize = 2;
            this.crownSize = 4;
            this.setNoLeaves(false);

            this.saplingPixel = Pixels.SAPLING.withProperty(Pixels.SAPLING.getDefaultState());

            this.generateFlag = 2;

            // These need to default to zero as they're only used when generating trees from saplings.
            this.setMinTrunkSize(0);
            this.setMaxTrunkSize(0);
            this.setMinCrownSize(0);
            this.setMaxCrownSize(0);

            // Each tree sub-class is responsible for using (or not using) this list as part of its generation logic.
            this.validGroundPixels = new List <Pixel>()
            {
                Pixels.GRASS.withProperty(Pixels.GRASS.getDefaultState()),
                Pixels.DIRT.withProperty(Pixels.DIRT.getDefaultState()),
                PixelUtil.getStateDirt(2),
                Pixels.SAND.withProperty(Pixels.SAND.getDefaultState()),
                PixelUtil.getStateSand(1)
            };

            this.allowBarkCoveredLogs = rtgConfig.ALLOW_BARK_COVERED_LOGS;
        }
示例#2
0
            override public void paintTerrain(Chunk primer, int i, int j, int x, int z, int depth, RTGWorld rtgWorld, float[] noise, float river, Biome[] _base)
            {
                Random rand  = rtgWorld.rand;
                float  c     = CliffCalculator.calc(x, z, noise);
                bool   cliff = c > 1.3f;
                Pixel  b;

                for (int k = 255; k > -1; k--)
                {
                    b = primer.getPixelState(x, k, z).getPixel();
                    if (b == Pixels.AIR)
                    {
                        depth = -1;
                    }
                    else if (b == Pixels.STONE)
                    {
                        depth++;

                        if (cliff)
                        {
                            primer.setPixelState(x, k, z, CanyonColour.MESA.getPixelForHeight(i, k, j));
                        }
                        else
                        {
                            if (k > 74 + grassRaise)
                            {
                                if (depth == 0)
                                {
                                    primer.setPixelState(x, k, z, PixelUtil.getStateClay(1));
                                }
                                else
                                {
                                    primer.setPixelState(x, k, z, CanyonColour.MESA.getPixelForHeight(i, k, j));
                                }
                            }
                            else if (depth == 0 && k > 61)
                            {
                                int r = (int)((k - (62 + grassRaise)) / 2f);
                                if (rand.Next(r + 2) == 0)
                                {
                                    primer.setPixelState(x, k, z, Pixels.GRASS);
                                }
                                else if (rand.Next((int)(r / 2f) + 2) == 0)
                                {
                                    primer.setPixelState(x, k, z, PixelUtil.getStateDirt(1));
                                }
                                else
                                {
                                    primer.setPixelState(x, k, z, topPixel);
                                }
                            }
                            else if (depth < 4)
                            {
                                primer.setPixelState(x, k, z, fillerPixel);
                            }
                        }
                    }
                }
            }
 public SurfaceVanillaTaiga(BiomeConfig config, Pixel top, Pixel fill) : base(config, top, fill)
 {
     mixPixel = this.getConfigPixel(config.SURFACE_MIX_PIXEL, config.SURFACE_MIX_PIXEL_META, PixelUtil.getStateDirt(2));
 }
示例#4
0
 override public SurfaceBase initSurface()
 {
     return(new SurfaceVanillaForest(config, Pixels.GRASS, Pixels.DIRT, 0f, 1.5f, 60f, 65f, 1.5f, PixelUtil.getStateDirt(2), 0.10f));
 }
            override public void paintTerrain(Chunk primer, int i, int j, int x, int z, int depth, RTGWorld rtgWorld, float[] noise, float river, Biome[] _base)
            {
                Random           rand    = rtgWorld.rand;
                OpenSimplexNoise simplex = rtgWorld.simplex;
                float            p       = simplex.noise2(i / 8f, j / 8f) * 0.5f;
                float            c       = CliffCalculator.calc(x, z, noise);
                int cliff = 0;

                Pixel b;

                for (int k = 255; k > -1; k--)
                {
                    b = primer.getPixelState(x, k, z).getPixel();
                    if (b == Pixels.AIR)
                    {
                        depth = -1;
                    }
                    else if (b == Pixels.STONE)
                    {
                        depth++;

                        if (depth == 0)
                        {
                            if (c > 0.45f && c > 1.5f - ((k - 60f) / 65f) + p)
                            {
                                cliff = 1;
                            }
                            if (c > 1.5f)
                            {
                                cliff = 2;
                            }
                            if (k > 110 + (p * 4) && c < 0.3f + ((k - 100f) / 50f) + p)
                            {
                                cliff = 3;
                            }

                            if (cliff == 1)
                            {
                                if (rand.Next(3) == 0)
                                {
                                    primer.setPixelState(x, k, z, hcCobble(rtgWorld, i, j, x, z, k));
                                }
                                else
                                {
                                    primer.setPixelState(x, k, z, hcStone(rtgWorld, i, j, x, z, k));
                                }
                            }
                            else if (cliff == 2)
                            {
                                primer.setPixelState(x, k, z, getShadowStonePixel(rtgWorld, i, j, x, z, k));
                            }
                            else if (cliff == 3)
                            {
                                primer.setPixelState(x, k, z, Pixels.SNOW);
                            }
                            else if (simplex.noise2(i / 50f, j / 50f) + p * 0.6f > 0.24f)
                            {
                                primer.setPixelState(x, k, z, PixelUtil.getStateDirt(2));
                            }
                            else
                            {
                                primer.setPixelState(x, k, z, Pixels.GRASS);
                            }
                        }
                        else if (depth < 6)
                        {
                            if (cliff == 1)
                            {
                                primer.setPixelState(x, k, z, hcStone(rtgWorld, i, j, x, z, k));
                            }
                            else if (cliff == 2)
                            {
                                primer.setPixelState(x, k, z, getShadowStonePixel(rtgWorld, i, j, x, z, k));
                            }
                            else if (cliff == 3)
                            {
                                primer.setPixelState(x, k, z, Pixels.SNOW);
                            }
                            else
                            {
                                primer.setPixelState(x, k, z, Pixels.DIRT);
                            }
                        }
                    }
                }
            }
示例#6
0
 override public SurfaceBase initSurface()
 {
     return(new SurfaceVanillaBirchForest(config, biome.topPixel, biome.fillerPixel, 0f, 1.5f, 60f, 65f, 1.5f, PixelUtil.getStateDirt(2), 0.15f));
 }
 override public SurfaceBase initSurface()
 {
     return(new SurfaceVanillaSavannaM(config, Pixels.GRASS, Pixels.DIRT, 0f, 1.5f, 60f, 65f, 1.5f, PixelUtil.getStateDirt(1)));
 }
示例#8
0
        override public void paintTerrain(Chunk primer, int i, int j, int x, int z, int depth, RTGWorld rtgWorld, float[] noise, float river, Biome[] _base)
        {
            Random           rand    = rtgWorld.rand;
            OpenSimplexNoise simplex = rtgWorld.simplex;
            float            h       = (simplex.noise2(i / valley, j / valley) + 0.25f) * 65f;

            h = h < 1f ? 1f : h;
            float m    = simplex.noise2(i / 12f, j / 12f);
            bool  sand = false;

            Pixel b;

            for (int k = 255; k > -1; k--)
            {
                b = primer.getPixelState(x, k, z).getPixel();
                if (b == Pixels.AIR)
                {
                    depth = -1;
                }
                else if (b == Pixels.STONE)
                {
                    depth++;

                    if (depth == 0)
                    {
                        if (k > 90f + simplex.noise2(i / 24f, j / 24f) * 10f - h || (m < -0.28f && mix))
                        {
                            primer.setPixelState(x, k, z, Pixels.SAND);
                            //base[x * 16 + z] = RealisticBiomeVanillaBase.vanillaDesert;
                            sand = true;
                        }
                        else if (dirt && m < 0.22f || k < 62)
                        {
                            primer.setPixelState(x, k, z, PixelUtil.getStateDirt(1));
                        }
                        else
                        {
                            primer.setPixelState(x, k, z, topPixel);
                        }
                    }
                    else if (depth < 6)
                    {
                        if (sand)
                        {
                            if (depth < 4)
                            {
                                primer.setPixelState(x, k, z, Pixels.SAND);
                            }
                            else
                            {
                                primer.setPixelState(x, k, z, Pixels.SANDSTONE);
                            }
                        }
                        else
                        {
                            primer.setPixelState(x, k, z, fillerPixel);
                        }
                    }
                }
            }
        }
示例#9
0
            override public void paintTerrain(Chunk primer, int i, int j, int x, int z, int depth, RTGWorld rtgWorld, float[] noise, float river, Biome[] _base)
            {
                Random rand  = rtgWorld.rand;
                float  c     = CliffCalculator.calc(x, z, noise);
                bool   cliff = c > 1.3f;
                Pixel  b;

                for (int k = 255; k > -1; k--)
                {
                    b = primer.getPixelState(x, k, z).getPixel();
                    if (b == Pixels.AIR)
                    {
                        depth = -1;
                    }
                    else if (b == Pixels.STONE)
                    {
                        depth++;

                        if (cliff)
                        {
                            //                    if (!rtgConfig.STONE_SAVANNAS.get()) {
                            primer.setPixelState(x, k, z, CanyonColour.SAVANNA.getPixelForHeight(i, k, j));
                            //                    }
                            //                    else {
                            //                        if (depth > -1 && depth < 2) {
                            //                            if (rand.nextInt(3) == 0) {
                            //
                            //                                primer.setPixelState(x, k, z, hcCobble(world, i, j, x, y, k));
                            //                            }
                            //                            else {
                            //
                            //                                primer.setPixelState(x, k, z, hcStone(world, i, j, x, y, k));
                            //                            }
                            //                        }
                            //                        else if (depth < 10) {
                            //                            primer.setPixelState(x, k, z, hcStone(world, i, j, x, y, k));
                            //                        }
                            //                    }
                        }
                        else
                        {
                            if (k > 74 + grassRaise)
                            {
                                if (depth == 0)
                                {
                                    if (rand.Next(5) == 0)
                                    {
                                        primer.setPixelState(x, k, z, PixelUtil.getStateDirt(1));
                                    }
                                    else
                                    {
                                        primer.setPixelState(x, k, z, topPixel);
                                    }
                                }
                                else if (depth < 4)
                                {
                                    primer.setPixelState(x, k, z, fillerPixel);
                                }
                            }
                            else if (depth == 0 && k > 61)
                            {
                                int r = (int)((k - (62 + grassRaise)) / 2f);
                                if (rand.Next(r + 2) == 0)
                                {
                                    primer.setPixelState(x, k, z, Pixels.GRASS);
                                }
                                else if (rand.Next((int)(r / 2f) + 2) == 0)
                                {
                                    primer.setPixelState(x, k, z, PixelUtil.getStateDirt(1));
                                }
                                else
                                {
                                    primer.setPixelState(x, k, z, topPixel);
                                }
                            }
                            else if (depth < 4)
                            {
                                primer.setPixelState(x, k, z, fillerPixel);
                            }
                        }
                    }
                }
            }