Package org.terasology.world.generation.facets

Examples of org.terasology.world.generation.facets.SurfaceHeightFacet


        riverNoise = new SubSampledNoise2D(new Noise3DTo2DAdapter(new BrownianNoise3D(new PerlinNoise(seed + 2), 8)), new Vector2f(0.0008f, 0.0008f), SAMPLE_RATE);
    }

    @Override
    public void process(GeneratingRegion region) {
        SurfaceHeightFacet facet = region.getRegionFacet(SurfaceHeightFacet.class);
        float[] noise = riverNoise.noise(facet.getWorldRegion());

        float[] surfaceHeights = facet.getInternal();
        for (int i = 0; i < noise.length; ++i) {
            surfaceHeights[i] += configuration.maxDepth * TeraMath.clamp(7f * (TeraMath.sqrt(Math.abs(noise[i])) - 0.1f) + 0.25f);
        }
    }
View Full Code Here


    public void setSeed(long seed) {
    }

    @Override
    public void process(GeneratingRegion region) {
        SurfaceHeightFacet facet = new SurfaceHeightFacet(region.getRegion(), region.getBorderForFacet(SurfaceHeightFacet.class));

        for (Vector2i pos : facet.getRelativeRegion()) {
            facet.set(pos, height);
        }

        region.setRegionFacet(SurfaceHeightFacet.class, facet);
    }
View Full Code Here

        hillNoise = new SubSampledNoise2D(new Noise3DTo2DAdapter(new BrownianNoise3D(new PerlinNoise(seed + 4))), new Vector2f(0.0008f, 0.0008f), 4);
    }

    @Override
    public void process(GeneratingRegion region) {
        SurfaceHeightFacet facet = region.getRegionFacet(SurfaceHeightFacet.class);

        float[] mountainData = mountainNoise.noise(facet.getWorldRegion());
        float[] hillData = hillNoise.noise(facet.getWorldRegion());
        SurfaceTemperatureFacet temperatureData = region.getRegionFacet(SurfaceTemperatureFacet.class);
        SurfaceHumidityFacet humidityData = region.getRegionFacet(SurfaceHumidityFacet.class);

        float[] heightData = facet.getInternal();
        Iterator<Vector2i> positionIterator = facet.getRelativeRegion().iterator();
        for (int i = 0; i < heightData.length; ++i) {
            Vector2i pos = positionIterator.next();
            float temp = temperatureData.get(pos);
            float tempHumid = temp * humidityData.get(pos);
            Vector2f distanceToMountainBiome = new Vector2f(temp - 0.25f, tempHumid - 0.35f);
View Full Code Here

    @Override
    public void process(GeneratingRegion region) {
        // will give funny results for regions that are not exactly chunk sized, but it is better than sinking in the water on spawn
        Vector3i centerChunkPos = new Vector3i(ChunkConstants.CHUNK_REGION.center());
        if (region.getRegion().encompasses(centerChunkPos)) {
            SurfaceHeightFacet facet = region.getRegionFacet(SurfaceHeightFacet.class);
            SeaLevelFacet seaLevelFacet = region.getRegionFacet(SeaLevelFacet.class);
            float seaLevel = (float) seaLevelFacet.getSeaLevel();

            // update the surface height so that it spikes up to sea level
            Vector2i middlePos = new Vector2i(centerChunkPos.x, centerChunkPos.z);
            for (Vector2i pos : facet.getWorldRegion()) {
                float originalValue = facet.getWorld(pos);
                if (seaLevel > originalValue) {
                    // the surface is below sea level
                    float scaleTowardsSeaLevel = (float) pos.gridDistance(middlePos) / (float) (ChunkConstants.SIZE_X / 2);
                    if (scaleTowardsSeaLevel < 1f) {
                        facet.setWorld(pos, TeraMath.lerp(originalValue, seaLevel, 1f - scaleTowardsSeaLevel));
                    }
                }
            }
        }
    }
View Full Code Here

TOP

Related Classes of org.terasology.world.generation.facets.SurfaceHeightFacet

Copyright © 2018 www.massapicom. 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.