Search in sources :

Example 26 with Rect2i

use of org.terasology.math.geom.Rect2i in project Terasology by MovingBlocks.

the class PerlinBaseSurfaceProvider method process.

@Override
public void process(GeneratingRegion region) {
    Border3D border = region.getBorderForFacet(SurfaceHeightFacet.class);
    SurfaceHeightFacet facet = new SurfaceHeightFacet(region.getRegion(), border);
    SeaLevelFacet seaLevelFacet = region.getRegionFacet(SeaLevelFacet.class);
    float seaLevel = seaLevelFacet.getSeaLevel();
    Rect2i processRegion = facet.getWorldRegion();
    float[] noise = surfaceNoise.noise(processRegion);
    for (int i = 0; i < noise.length; ++i) {
        noise[i] = seaLevel + seaLevel * ((noise[i] * 2.11f + 1f) / 2f);
    }
    facet.set(noise);
    region.setRegionFacet(SurfaceHeightFacet.class, facet);
}
Also used : SurfaceHeightFacet(org.terasology.world.generation.facets.SurfaceHeightFacet) Rect2i(org.terasology.math.geom.Rect2i) Border3D(org.terasology.world.generation.Border3D) SeaLevelFacet(org.terasology.world.generation.facets.SeaLevelFacet)

Example 27 with Rect2i

use of org.terasology.math.geom.Rect2i in project Terasology by MovingBlocks.

the class SurfaceToDensityProvider method process.

@Override
public void process(GeneratingRegion region) {
    SurfaceHeightFacet surfaceHeight = region.getRegionFacet(SurfaceHeightFacet.class);
    DensityFacet facet = new DensityFacet(region.getRegion(), region.getBorderForFacet(DensityFacet.class));
    Region3i area = region.getRegion();
    Rect2i rect = Rect2i.createFromMinAndMax(facet.getRelativeRegion().minX(), facet.getRelativeRegion().minZ(), facet.getRelativeRegion().maxX(), facet.getRelativeRegion().maxZ());
    for (BaseVector2i pos : rect.contents()) {
        float height = surfaceHeight.get(pos);
        for (int y = facet.getRelativeRegion().minY(); y <= facet.getRelativeRegion().maxY(); ++y) {
            facet.set(pos.x(), y, pos.y(), height - area.minY() - y);
        }
    }
    region.setRegionFacet(DensityFacet.class, facet);
}
Also used : SurfaceHeightFacet(org.terasology.world.generation.facets.SurfaceHeightFacet) Rect2i(org.terasology.math.geom.Rect2i) DensityFacet(org.terasology.world.generation.facets.DensityFacet) BaseVector2i(org.terasology.math.geom.BaseVector2i) Region3i(org.terasology.math.Region3i)

Example 28 with Rect2i

use of org.terasology.math.geom.Rect2i in project Terasology by MovingBlocks.

the class SubSampledNoise method noise.

public float[] noise(Rect2i region) {
    Rect2i fullRegion = determineRequiredRegion(region);
    float[] keyData = getKeyValues(fullRegion);
    float[] fullData = mapExpand(keyData, fullRegion);
    return getSubset(fullData, fullRegion, region);
}
Also used : Rect2i(org.terasology.math.geom.Rect2i)

Example 29 with Rect2i

use of org.terasology.math.geom.Rect2i in project Terasology by MovingBlocks.

the class SubSampledNoise2D method noise.

public float[] noise(Rect2i region) {
    Rect2i fullRegion = determineRequiredRegion(region);
    float[] keyData = getKeyValues(fullRegion);
    float[] fullData = mapExpand(keyData, fullRegion);
    return getSubset(fullData, fullRegion, region);
}
Also used : Rect2i(org.terasology.math.geom.Rect2i)

Example 30 with Rect2i

use of org.terasology.math.geom.Rect2i in project Terasology by MovingBlocks.

the class CanvasImpl method calculateRestrictedSize.

@Override
public Vector2i calculateRestrictedSize(UIWidget widget, Vector2i sizeRestrictions) {
    if (widget == null) {
        return sizeRestrictions;
    }
    String family = (widget.getFamily() != null) ? widget.getFamily() : state.family;
    UISkin skin = (widget.getSkin() != null) ? widget.getSkin() : state.skin;
    UIStyle elementStyle = skin.getStyleFor(family, widget.getClass(), UIWidget.BASE_PART, widget.getMode());
    Rect2i region = applyStyleToSize(Rect2i.createFromMinAndSize(Vector2i.zero(), sizeRestrictions), elementStyle);
    try (SubRegion ignored = subRegionForWidget(widget, region, false)) {
        Vector2i preferredSize = widget.getPreferredContentSize(this, elementStyle.getMargin().shrink(sizeRestrictions));
        preferredSize = elementStyle.getMargin().grow(preferredSize);
        return applyStyleToSize(preferredSize, elementStyle);
    }
}
Also used : Rect2i(org.terasology.math.geom.Rect2i) UISkin(org.terasology.rendering.nui.skin.UISkin) UIStyle(org.terasology.rendering.nui.skin.UIStyle) Vector2i(org.terasology.math.geom.Vector2i) BaseVector2i(org.terasology.math.geom.BaseVector2i) SubRegion(org.terasology.rendering.nui.SubRegion)

Aggregations

Rect2i (org.terasology.math.geom.Rect2i)59 Vector2i (org.terasology.math.geom.Vector2i)13 SubRegion (org.terasology.rendering.nui.SubRegion)8 BaseVector2i (org.terasology.math.geom.BaseVector2i)7 Font (org.terasology.rendering.assets.font.Font)5 LayoutHint (org.terasology.rendering.nui.LayoutHint)5 SurfaceHeightFacet (org.terasology.world.generation.facets.SurfaceHeightFacet)4 ByteBuffer (java.nio.ByteBuffer)3 List (java.util.List)3 Color (org.terasology.rendering.nui.Color)3 BufferedImage (java.awt.image.BufferedImage)2 Test (org.junit.Test)2 UIWidget (org.terasology.rendering.nui.UIWidget)2 FallbackParagraphRenderStyle (org.terasology.rendering.nui.widgets.browser.ui.style.FallbackParagraphRenderStyle)2 ParagraphRenderStyle (org.terasology.rendering.nui.widgets.browser.ui.style.ParagraphRenderStyle)2 Maps (com.google.common.collect.Maps)1 Sets (com.google.common.collect.Sets)1 TIntList (gnu.trove.list.TIntList)1 Graphics2D (java.awt.Graphics2D)1 DataBufferInt (java.awt.image.DataBufferInt)1