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);
}
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);
}
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);
}
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);
}
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);
}
}
Aggregations