- show map on presets page
- interface out 'masked surfaces'
This commit is contained in:
parent
8abd851f77
commit
e37d6bce63
@ -23,7 +23,7 @@
|
|||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.terraforged.api.chunk.surface;
|
package com.terraforged.api.biome.surface;
|
||||||
|
|
||||||
import net.minecraft.world.biome.Biome;
|
import net.minecraft.world.biome.Biome;
|
||||||
|
|
@ -23,7 +23,7 @@
|
|||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.terraforged.api.chunk.surface;
|
package com.terraforged.api.biome.surface;
|
||||||
|
|
||||||
import com.terraforged.api.chunk.ChunkDelegate;
|
import com.terraforged.api.chunk.ChunkDelegate;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
@ -0,0 +1,18 @@
|
|||||||
|
package com.terraforged.api.biome.surface;
|
||||||
|
|
||||||
|
import com.terraforged.core.cell.Cell;
|
||||||
|
import com.terraforged.n2d.util.NoiseUtil;
|
||||||
|
|
||||||
|
public interface MaskedSurface extends Surface {
|
||||||
|
|
||||||
|
default float getMask(Cell cell) {
|
||||||
|
return cell.biomeEdge * NoiseUtil.map(cell.riverMask,0, 0.0005F, 0.0005F);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
default void buildSurface(int x, int z, int height, SurfaceContext ctx) {
|
||||||
|
buildSurface(x, z, height, getMask(ctx.cell), ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
void buildSurface(int x, int z, int height, float mask, SurfaceContext ctx);
|
||||||
|
}
|
@ -23,10 +23,10 @@
|
|||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.terraforged.api.chunk.surface;
|
package com.terraforged.api.biome.surface;
|
||||||
|
|
||||||
|
|
||||||
import com.terraforged.api.chunk.surface.builder.Combiner;
|
import com.terraforged.api.biome.surface.builder.Combiner;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.world.chunk.IChunk;
|
import net.minecraft.world.chunk.IChunk;
|
||||||
|
|
@ -23,7 +23,7 @@
|
|||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.terraforged.api.chunk.surface;
|
package com.terraforged.api.biome.surface;
|
||||||
|
|
||||||
import com.terraforged.api.chunk.column.DecoratorContext;
|
import com.terraforged.api.chunk.column.DecoratorContext;
|
||||||
import com.terraforged.world.climate.Climate;
|
import com.terraforged.world.climate.Climate;
|
@ -23,9 +23,9 @@
|
|||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.terraforged.api.chunk.surface;
|
package com.terraforged.api.biome.surface;
|
||||||
|
|
||||||
import com.terraforged.api.chunk.surface.builder.Delegate;
|
import com.terraforged.api.biome.surface.builder.Delegate;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraft.world.biome.Biome;
|
import net.minecraft.world.biome.Biome;
|
||||||
|
|
@ -23,10 +23,10 @@
|
|||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.terraforged.api.chunk.surface.builder;
|
package com.terraforged.api.biome.surface.builder;
|
||||||
|
|
||||||
import com.terraforged.api.chunk.surface.Surface;
|
import com.terraforged.api.biome.surface.Surface;
|
||||||
import com.terraforged.api.chunk.surface.SurfaceContext;
|
import com.terraforged.api.biome.surface.SurfaceContext;
|
||||||
|
|
||||||
public class Combiner implements Surface {
|
public class Combiner implements Surface {
|
||||||
|
|
@ -23,10 +23,10 @@
|
|||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.terraforged.api.chunk.surface.builder;
|
package com.terraforged.api.biome.surface.builder;
|
||||||
|
|
||||||
import com.terraforged.api.chunk.surface.Surface;
|
import com.terraforged.api.biome.surface.Surface;
|
||||||
import com.terraforged.api.chunk.surface.SurfaceContext;
|
import com.terraforged.api.biome.surface.SurfaceContext;
|
||||||
import net.minecraft.world.biome.Biome;
|
import net.minecraft.world.biome.Biome;
|
||||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||||
|
|
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
package com.terraforged.api.chunk.column;
|
package com.terraforged.api.chunk.column;
|
||||||
|
|
||||||
import com.terraforged.api.chunk.surface.ChunkSurfaceBuffer;
|
import com.terraforged.api.biome.surface.ChunkSurfaceBuffer;
|
||||||
import com.terraforged.n2d.Source;
|
import com.terraforged.n2d.Source;
|
||||||
import com.terraforged.n2d.source.FastSource;
|
import com.terraforged.n2d.source.FastSource;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
|
@ -27,7 +27,7 @@ package com.terraforged.api.event;
|
|||||||
|
|
||||||
import com.terraforged.api.biome.modifier.ModifierManager;
|
import com.terraforged.api.biome.modifier.ModifierManager;
|
||||||
import com.terraforged.api.chunk.column.DecoratorManager;
|
import com.terraforged.api.chunk.column.DecoratorManager;
|
||||||
import com.terraforged.api.chunk.surface.SurfaceManager;
|
import com.terraforged.api.biome.surface.SurfaceManager;
|
||||||
import com.terraforged.api.material.geology.GeologyManager;
|
import com.terraforged.api.material.geology.GeologyManager;
|
||||||
import com.terraforged.api.material.layer.LayerManager;
|
import com.terraforged.api.material.layer.LayerManager;
|
||||||
import com.terraforged.fm.modifier.FeatureModifiers;
|
import com.terraforged.fm.modifier.FeatureModifiers;
|
||||||
|
@ -11,6 +11,7 @@ import net.minecraft.world.gen.feature.IFeatureConfig;
|
|||||||
import net.minecraft.world.gen.feature.structure.MineshaftConfig;
|
import net.minecraft.world.gen.feature.structure.MineshaftConfig;
|
||||||
import net.minecraft.world.gen.feature.structure.MineshaftStructure;
|
import net.minecraft.world.gen.feature.structure.MineshaftStructure;
|
||||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||||
|
import net.minecraftforge.common.BiomeManager;
|
||||||
|
|
||||||
public class Bryce extends BiomeVariant {
|
public class Bryce extends BiomeVariant {
|
||||||
|
|
||||||
@ -43,6 +44,11 @@ public class Bryce extends BiomeVariant {
|
|||||||
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.WITCH, 5, 1, 1));
|
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.WITCH, 5, 1, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerWeights() {
|
||||||
|
BiomeManager.addBiome(BiomeManager.BiomeType.WARM, new BiomeManager.BiomeEntry(this, 2));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Biome getBase() {
|
public Biome getBase() {
|
||||||
return Biomes.BADLANDS;
|
return Biomes.BADLANDS;
|
||||||
|
@ -57,7 +57,7 @@ public class StoneForest extends BiomeVariant {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void registerWeights() {
|
public void registerWeights() {
|
||||||
BiomeManager.addBiome(BiomeManager.BiomeType.WARM, new BiomeManager.BiomeEntry(this, 5));
|
BiomeManager.addBiome(BiomeManager.BiomeType.WARM, new BiomeManager.BiomeEntry(this, 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,19 +1,18 @@
|
|||||||
package com.terraforged.biome.surface;
|
package com.terraforged.biome.surface;
|
||||||
|
|
||||||
import com.terraforged.api.chunk.surface.Surface;
|
import com.terraforged.api.biome.surface.MaskedSurface;
|
||||||
import com.terraforged.api.chunk.surface.SurfaceContext;
|
import com.terraforged.api.biome.surface.SurfaceContext;
|
||||||
import com.terraforged.core.Seed;
|
import com.terraforged.core.Seed;
|
||||||
import com.terraforged.core.util.Variance;
|
import com.terraforged.core.util.Variance;
|
||||||
import com.terraforged.n2d.Module;
|
import com.terraforged.n2d.Module;
|
||||||
import com.terraforged.n2d.Source;
|
import com.terraforged.n2d.Source;
|
||||||
import com.terraforged.n2d.util.NoiseUtil;
|
|
||||||
import com.terraforged.world.geology.Strata;
|
import com.terraforged.world.geology.Strata;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.Blocks;
|
import net.minecraft.block.Blocks;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
public class BriceSurface implements Surface {
|
public class BriceSurface implements MaskedSurface {
|
||||||
|
|
||||||
private final Module module;
|
private final Module module;
|
||||||
private final Strata<BlockState> stackStrata;
|
private final Strata<BlockState> stackStrata;
|
||||||
@ -38,11 +37,14 @@ public class BriceSurface implements Surface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void buildSurface(int x, int z, int height, SurfaceContext ctx) {
|
public void buildSurface(int x, int z, int height, float mask, SurfaceContext ctx) {
|
||||||
float alpha = 1 - ctx.cell.steepness;
|
float strength = 1 - ctx.cell.steepness;
|
||||||
float mask = alpha * ctx.cell.biomeEdge * NoiseUtil.map(ctx.cell.riverMask,0, 0.0005F, 0.0005F);
|
float value = module.getValue(x, z) * mask * strength;
|
||||||
float value = module.getValue(x, z) * mask;
|
|
||||||
int top = (int) (value * 30);
|
int top = (int) (value * 30);
|
||||||
|
if (top == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
stackStrata.downwards(x, top, z, ctx.depthBuffer.get(), (y, material) -> {
|
stackStrata.downwards(x, top, z, ctx.depthBuffer.get(), (y, material) -> {
|
||||||
if (y <= 0) {
|
if (y <= 0) {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.terraforged.biome.surface;
|
package com.terraforged.biome.surface;
|
||||||
|
|
||||||
import com.terraforged.api.chunk.surface.Surface;
|
import com.terraforged.api.biome.surface.Surface;
|
||||||
import com.terraforged.api.chunk.surface.SurfaceContext;
|
import com.terraforged.api.biome.surface.SurfaceContext;
|
||||||
import com.terraforged.api.material.state.States;
|
import com.terraforged.api.material.state.States;
|
||||||
import com.terraforged.n2d.Module;
|
import com.terraforged.n2d.Module;
|
||||||
import com.terraforged.n2d.Source;
|
import com.terraforged.n2d.Source;
|
||||||
|
@ -25,8 +25,9 @@
|
|||||||
|
|
||||||
package com.terraforged.biome.surface;
|
package com.terraforged.biome.surface;
|
||||||
|
|
||||||
import com.terraforged.api.chunk.surface.Surface;
|
import com.terraforged.api.biome.surface.MaskedSurface;
|
||||||
import com.terraforged.api.chunk.surface.SurfaceContext;
|
import com.terraforged.api.biome.surface.Surface;
|
||||||
|
import com.terraforged.api.biome.surface.SurfaceContext;
|
||||||
import com.terraforged.api.material.layer.LayerMaterial;
|
import com.terraforged.api.material.layer.LayerMaterial;
|
||||||
import com.terraforged.biome.provider.DesertBiomes;
|
import com.terraforged.biome.provider.DesertBiomes;
|
||||||
import com.terraforged.biome.provider.TerraBiomeProvider;
|
import com.terraforged.biome.provider.TerraBiomeProvider;
|
||||||
@ -43,7 +44,7 @@ import net.minecraft.block.Blocks;
|
|||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.gen.Heightmap;
|
import net.minecraft.world.gen.Heightmap;
|
||||||
|
|
||||||
public class DunesSurface implements Surface {
|
public class DunesSurface implements MaskedSurface {
|
||||||
|
|
||||||
private final int maxHeight;
|
private final int maxHeight;
|
||||||
private final Levels levels;
|
private final Levels levels;
|
||||||
@ -63,8 +64,13 @@ public class DunesSurface implements Surface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void buildSurface(int x, int z, int surface, SurfaceContext ctx) {
|
public float getMask(Cell cell) {
|
||||||
float value = module.getValue(x, z) * getMask(ctx.cell);
|
return NoiseUtil.map(cell.biomeEdge, 0, 0.7F, 0.7F) * NoiseUtil.map(cell.riverMask, 0.5F, 0.95F, 0.45F);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildSurface(int x, int z, int surface, float mask, SurfaceContext ctx) {
|
||||||
|
float value = module.getValue(x, z) * mask;
|
||||||
float baseHeight = ctx.chunk.getTopBlockY(Heightmap.Type.WORLD_SURFACE_WG, x & 15, z & 15);
|
float baseHeight = ctx.chunk.getTopBlockY(Heightmap.Type.WORLD_SURFACE_WG, x & 15, z & 15);
|
||||||
float duneHeight = baseHeight + value * maxHeight;
|
float duneHeight = baseHeight + value * maxHeight;
|
||||||
int duneBase = (int) baseHeight;
|
int duneBase = (int) baseHeight;
|
||||||
@ -94,8 +100,4 @@ public class DunesSurface implements Surface {
|
|||||||
public static Surface create(TerraContext context, DesertBiomes desertBiomes) {
|
public static Surface create(TerraContext context, DesertBiomes desertBiomes) {
|
||||||
return new DunesSurface(context, 25, desertBiomes);
|
return new DunesSurface(context, 25, desertBiomes);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static float getMask(Cell cell) {
|
|
||||||
return cell.biomeMask(0F, 0.7F) * (NoiseUtil.map(cell.riverMask, 0.5F, 0.95F, 0.45F));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.terraforged.biome.surface;
|
package com.terraforged.biome.surface;
|
||||||
|
|
||||||
import com.terraforged.api.chunk.surface.Surface;
|
import com.terraforged.api.biome.surface.Surface;
|
||||||
import com.terraforged.api.chunk.surface.SurfaceContext;
|
import com.terraforged.api.biome.surface.SurfaceContext;
|
||||||
import com.terraforged.api.material.state.States;
|
import com.terraforged.api.material.state.States;
|
||||||
import com.terraforged.n2d.Module;
|
import com.terraforged.n2d.Module;
|
||||||
import com.terraforged.n2d.Source;
|
import com.terraforged.n2d.Source;
|
||||||
|
@ -25,8 +25,8 @@
|
|||||||
|
|
||||||
package com.terraforged.biome.surface;
|
package com.terraforged.biome.surface;
|
||||||
|
|
||||||
import com.terraforged.api.chunk.surface.Surface;
|
import com.terraforged.api.biome.surface.MaskedSurface;
|
||||||
import com.terraforged.api.chunk.surface.SurfaceContext;
|
import com.terraforged.api.biome.surface.SurfaceContext;
|
||||||
import com.terraforged.api.material.state.States;
|
import com.terraforged.api.material.state.States;
|
||||||
import com.terraforged.chunk.TerraContext;
|
import com.terraforged.chunk.TerraContext;
|
||||||
import com.terraforged.core.cell.Cell;
|
import com.terraforged.core.cell.Cell;
|
||||||
@ -38,7 +38,7 @@ import net.minecraft.block.BlockState;
|
|||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||||
|
|
||||||
public class IcebergsSurface implements Surface {
|
public class IcebergsSurface implements MaskedSurface {
|
||||||
|
|
||||||
private final Module up;
|
private final Module up;
|
||||||
private final Module down;
|
private final Module down;
|
||||||
@ -85,13 +85,28 @@ public class IcebergsSurface implements Surface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void buildSurface(int x, int z, int height, SurfaceContext ctx) {
|
public float getMask(Cell cell) {
|
||||||
float alpha = alpha(ctx.cell);
|
if (cell.value > minDepth) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
float alpha = 1F;
|
||||||
|
float delta = minDepth - cell.value;
|
||||||
|
if (delta < depthRange) {
|
||||||
|
alpha -= ((depthRange - delta) / depthRange);
|
||||||
|
}
|
||||||
|
|
||||||
|
alpha *= NoiseUtil.map(cell.riverMask, 0.3F, 1F, 0.7F);
|
||||||
|
|
||||||
|
return NoiseUtil.clamp(alpha, 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildSurface(int x, int z, int height, float mask, SurfaceContext ctx) {
|
||||||
int center = levels.waterLevel - 5;
|
int center = levels.waterLevel - 5;
|
||||||
int top = center + (int) (up.getValue(x, z) * levels.worldHeight * alpha);
|
int top = center + (int) (up.getValue(x, z) * levels.worldHeight * mask);
|
||||||
int topDepth = (int) (bergTop.getValue(x, z) * levels.worldHeight * alpha);
|
int topDepth = (int) (bergTop.getValue(x, z) * levels.worldHeight * mask);
|
||||||
int bottom = center - (int) (down.getValue(x, z) * levels.worldHeight * alpha);
|
int bottom = center - (int) (down.getValue(x, z) * levels.worldHeight * mask);
|
||||||
|
|
||||||
// set iceberg materials
|
// set iceberg materials
|
||||||
BlockPos.Mutable pos = new BlockPos.Mutable(x, height, z);
|
BlockPos.Mutable pos = new BlockPos.Mutable(x, height, z);
|
||||||
@ -116,20 +131,4 @@ public class IcebergsSurface implements Surface {
|
|||||||
}
|
}
|
||||||
return States.PACKED_ICE.get();
|
return States.PACKED_ICE.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
private float alpha(Cell cell) {
|
|
||||||
if (cell.value > minDepth) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
float alpha = 1F;
|
|
||||||
float delta = minDepth - cell.value;
|
|
||||||
if (delta < depthRange) {
|
|
||||||
alpha -= ((depthRange - delta) / depthRange);
|
|
||||||
}
|
|
||||||
|
|
||||||
alpha *= NoiseUtil.map(cell.riverMask, 0.3F, 1F, 0.7F);
|
|
||||||
|
|
||||||
return NoiseUtil.clamp(alpha, 0, 1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.terraforged.biome.surface;
|
package com.terraforged.biome.surface;
|
||||||
|
|
||||||
import com.terraforged.api.chunk.surface.Surface;
|
import com.terraforged.api.biome.surface.Surface;
|
||||||
import com.terraforged.api.chunk.surface.SurfaceContext;
|
import com.terraforged.api.biome.surface.SurfaceContext;
|
||||||
import com.terraforged.api.material.state.States;
|
import com.terraforged.api.material.state.States;
|
||||||
import com.terraforged.n2d.Module;
|
import com.terraforged.n2d.Module;
|
||||||
import com.terraforged.n2d.Source;
|
import com.terraforged.n2d.Source;
|
||||||
|
@ -1,15 +1,14 @@
|
|||||||
package com.terraforged.biome.surface;
|
package com.terraforged.biome.surface;
|
||||||
|
|
||||||
import com.terraforged.api.chunk.surface.Surface;
|
import com.terraforged.api.biome.surface.MaskedSurface;
|
||||||
import com.terraforged.api.chunk.surface.SurfaceContext;
|
import com.terraforged.api.biome.surface.SurfaceContext;
|
||||||
import com.terraforged.api.material.state.States;
|
import com.terraforged.api.material.state.States;
|
||||||
import com.terraforged.core.Seed;
|
import com.terraforged.core.Seed;
|
||||||
import com.terraforged.n2d.Module;
|
import com.terraforged.n2d.Module;
|
||||||
import com.terraforged.n2d.Source;
|
import com.terraforged.n2d.Source;
|
||||||
import com.terraforged.n2d.util.NoiseUtil;
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
|
|
||||||
public class StoneForestSurface implements Surface {
|
public class StoneForestSurface implements MaskedSurface {
|
||||||
|
|
||||||
private final Module module;
|
private final Module module;
|
||||||
private final BlockState dirt;
|
private final BlockState dirt;
|
||||||
@ -27,12 +26,12 @@ public class StoneForestSurface implements Surface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void buildSurface(int x, int z, int height, SurfaceContext ctx) {
|
public void buildSurface(int x, int z, int height, float mask, SurfaceContext ctx) {
|
||||||
float alpha = 1 - ctx.cell.steepness;
|
// reduce height on steeper terrain
|
||||||
float mask = alpha * ctx.cell.biomeEdge * NoiseUtil.map(ctx.cell.riverMask,0, 0.0005F, 0.0005F);
|
float strength = 1 - ctx.cell.steepness;
|
||||||
float value = module.getValue(x, z) * mask;
|
float value = module.getValue(x, z) * mask * strength;
|
||||||
int top = height + (int) (value * 50);
|
|
||||||
|
|
||||||
|
int top = height + (int) (value * 50);
|
||||||
if (top > height) {
|
if (top > height) {
|
||||||
for (int y = height; y < top - 1; y++) {
|
for (int y = height; y < top - 1; y++) {
|
||||||
ctx.buffer.setBlockState(ctx.pos.setPos(x, y, z), stone, false);
|
ctx.buffer.setBlockState(ctx.pos.setPos(x, y, z), stone, false);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.terraforged.biome.surface;
|
package com.terraforged.biome.surface;
|
||||||
|
|
||||||
import com.terraforged.api.chunk.surface.Surface;
|
import com.terraforged.api.biome.surface.Surface;
|
||||||
import com.terraforged.api.chunk.surface.SurfaceContext;
|
import com.terraforged.api.biome.surface.SurfaceContext;
|
||||||
import net.minecraft.world.biome.Biome;
|
import net.minecraft.world.biome.Biome;
|
||||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilderConfig;
|
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilderConfig;
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
package com.terraforged.chunk;
|
package com.terraforged.chunk;
|
||||||
|
|
||||||
import com.terraforged.api.chunk.column.ColumnDecorator;
|
import com.terraforged.api.chunk.column.ColumnDecorator;
|
||||||
import com.terraforged.api.chunk.surface.SurfaceManager;
|
import com.terraforged.api.biome.surface.SurfaceManager;
|
||||||
import com.terraforged.api.material.layer.LayerManager;
|
import com.terraforged.api.material.layer.LayerManager;
|
||||||
import com.terraforged.biome.provider.TerraBiomeProvider;
|
import com.terraforged.biome.provider.TerraBiomeProvider;
|
||||||
import com.terraforged.chunk.generator.BiomeGenerator;
|
import com.terraforged.chunk.generator.BiomeGenerator;
|
||||||
|
@ -27,8 +27,8 @@ package com.terraforged.chunk;
|
|||||||
|
|
||||||
import com.electronwill.nightconfig.core.CommentedConfig;
|
import com.electronwill.nightconfig.core.CommentedConfig;
|
||||||
import com.terraforged.api.chunk.column.DecoratorContext;
|
import com.terraforged.api.chunk.column.DecoratorContext;
|
||||||
import com.terraforged.api.chunk.surface.ChunkSurfaceBuffer;
|
import com.terraforged.api.biome.surface.ChunkSurfaceBuffer;
|
||||||
import com.terraforged.api.chunk.surface.SurfaceContext;
|
import com.terraforged.api.biome.surface.SurfaceContext;
|
||||||
import com.terraforged.chunk.settings.TerraSettings;
|
import com.terraforged.chunk.settings.TerraSettings;
|
||||||
import com.terraforged.config.PerfDefaults;
|
import com.terraforged.config.PerfDefaults;
|
||||||
import com.terraforged.core.concurrent.thread.ThreadPools;
|
import com.terraforged.core.concurrent.thread.ThreadPools;
|
||||||
|
@ -2,7 +2,7 @@ package com.terraforged.chunk;
|
|||||||
|
|
||||||
import com.terraforged.Log;
|
import com.terraforged.Log;
|
||||||
import com.terraforged.api.chunk.column.ColumnDecorator;
|
import com.terraforged.api.chunk.column.ColumnDecorator;
|
||||||
import com.terraforged.api.chunk.surface.SurfaceManager;
|
import com.terraforged.api.biome.surface.SurfaceManager;
|
||||||
import com.terraforged.biome.ModBiomes;
|
import com.terraforged.biome.ModBiomes;
|
||||||
import com.terraforged.biome.surface.BriceSurface;
|
import com.terraforged.biome.surface.BriceSurface;
|
||||||
import com.terraforged.biome.surface.DesertSurface;
|
import com.terraforged.biome.surface.DesertSurface;
|
||||||
|
@ -27,7 +27,7 @@ package com.terraforged.chunk.column;
|
|||||||
|
|
||||||
import com.terraforged.api.chunk.column.ColumnDecorator;
|
import com.terraforged.api.chunk.column.ColumnDecorator;
|
||||||
import com.terraforged.api.chunk.column.DecoratorContext;
|
import com.terraforged.api.chunk.column.DecoratorContext;
|
||||||
import com.terraforged.api.chunk.surface.ChunkSurfaceBuffer;
|
import com.terraforged.api.biome.surface.ChunkSurfaceBuffer;
|
||||||
import com.terraforged.material.geology.GeoManager;
|
import com.terraforged.material.geology.GeoManager;
|
||||||
import net.minecraft.world.chunk.IChunk;
|
import net.minecraft.world.chunk.IChunk;
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package com.terraforged.chunk.generator;
|
package com.terraforged.chunk.generator;
|
||||||
|
|
||||||
import com.terraforged.api.chunk.column.ColumnDecorator;
|
import com.terraforged.api.chunk.column.ColumnDecorator;
|
||||||
import com.terraforged.api.chunk.surface.ChunkSurfaceBuffer;
|
import com.terraforged.api.biome.surface.ChunkSurfaceBuffer;
|
||||||
import com.terraforged.api.chunk.surface.SurfaceContext;
|
import com.terraforged.api.biome.surface.SurfaceContext;
|
||||||
import com.terraforged.chunk.TerraChunkGenerator;
|
import com.terraforged.chunk.TerraChunkGenerator;
|
||||||
import com.terraforged.chunk.util.FastChunk;
|
import com.terraforged.chunk.util.FastChunk;
|
||||||
import com.terraforged.chunk.util.TerraContainer;
|
import com.terraforged.chunk.util.TerraContainer;
|
||||||
|
@ -61,7 +61,7 @@ public class SettingsScreen extends OverlayScreen {
|
|||||||
this.instance = new Instance(settings);
|
this.instance = new Instance(settings);
|
||||||
this.preview = new PreviewPage(instance.settings, getSeed(parent));
|
this.preview = new PreviewPage(instance.settings, getSeed(parent));
|
||||||
this.pages = new Page[]{
|
this.pages = new Page[]{
|
||||||
new PresetsPage(instance, preview),
|
new PresetsPage(instance, preview, preview.getPreviewWidget()),
|
||||||
new WorldPage(instance, preview),
|
new WorldPage(instance, preview),
|
||||||
new SimplePreviewPage("Climate Settings", "climate", preview, instance, s -> s.climate),
|
new SimplePreviewPage("Climate Settings", "climate", preview, instance, s -> s.climate),
|
||||||
new SimplePreviewPage("Terrain Settings", "terrain", preview, instance, s -> s.terrain),
|
new SimplePreviewPage("Terrain Settings", "terrain", preview, instance, s -> s.terrain),
|
||||||
|
@ -10,6 +10,7 @@ import com.terraforged.gui.element.TerraButton;
|
|||||||
import com.terraforged.gui.element.TerraLabel;
|
import com.terraforged.gui.element.TerraLabel;
|
||||||
import com.terraforged.gui.element.TerraTextInput;
|
import com.terraforged.gui.element.TerraTextInput;
|
||||||
import com.terraforged.util.nbt.NBTHelper;
|
import com.terraforged.util.nbt.NBTHelper;
|
||||||
|
import net.minecraft.client.gui.widget.Widget;
|
||||||
import net.minecraft.nbt.CompoundNBT;
|
import net.minecraft.nbt.CompoundNBT;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@ -22,13 +23,15 @@ public class PresetsPage extends BasePage {
|
|||||||
|
|
||||||
private final Instance instance;
|
private final Instance instance;
|
||||||
private final UpdatablePage preview;
|
private final UpdatablePage preview;
|
||||||
|
private final Widget previewWidget;
|
||||||
private final TerraTextInput nameInput;
|
private final TerraTextInput nameInput;
|
||||||
private final PresetManager manager = PresetManager.load();
|
private final PresetManager manager = PresetManager.load();
|
||||||
|
|
||||||
public PresetsPage(Instance instance, UpdatablePage preview) {
|
public PresetsPage(Instance instance, UpdatablePage preview, Widget widget) {
|
||||||
CompoundNBT value = new CompoundNBT();
|
CompoundNBT value = new CompoundNBT();
|
||||||
value.putString("name", "");
|
value.putString("name", "");
|
||||||
this.preview = preview;
|
this.preview = preview;
|
||||||
|
this.previewWidget = widget;
|
||||||
this.instance = instance;
|
this.instance = instance;
|
||||||
this.nameInput = new TerraTextInput("name", value);
|
this.nameInput = new TerraTextInput("name", value);
|
||||||
this.nameInput.setColorValidator(NAME_VALIDATOR);
|
this.nameInput.setColorValidator(NAME_VALIDATOR);
|
||||||
@ -79,6 +82,10 @@ public class PresetsPage extends BasePage {
|
|||||||
manager.add(preset);
|
manager.add(preset);
|
||||||
nameInput.setText("");
|
nameInput.setText("");
|
||||||
|
|
||||||
|
// select newly created preset & load
|
||||||
|
setSelected(preset);
|
||||||
|
load(preset);
|
||||||
|
|
||||||
// update the ui
|
// update the ui
|
||||||
rebuildPresetList();
|
rebuildPresetList();
|
||||||
}
|
}
|
||||||
@ -166,6 +173,14 @@ public class PresetsPage extends BasePage {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
right.scrollPane.addButton(previewWidget);
|
||||||
|
|
||||||
|
// used to pad the scroll-pane out so that the preview legend scrolls on larger gui scales
|
||||||
|
TerraButton spacer = createSpacer();
|
||||||
|
for (int i = 0; i < 7; i++) {
|
||||||
|
right.scrollPane.addButton(spacer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean hasSelectedPreset() {
|
private boolean hasSelectedPreset() {
|
||||||
@ -178,6 +193,16 @@ public class PresetsPage extends BasePage {
|
|||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setSelected(Preset preset) {
|
||||||
|
ScrollPane pane = getColumn(0).scrollPane;
|
||||||
|
for (ScrollPane.Entry entry : pane.children()) {
|
||||||
|
if (entry.option.getMessage().equalsIgnoreCase(preset.getName())) {
|
||||||
|
pane.setSelected(entry);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private Optional<Preset> getSelected() {
|
private Optional<Preset> getSelected() {
|
||||||
ScrollPane.Entry entry = getColumn(0).scrollPane.getSelected();
|
ScrollPane.Entry entry = getColumn(0).scrollPane.getSelected();
|
||||||
if (entry == null) {
|
if (entry == null) {
|
||||||
@ -195,4 +220,11 @@ public class PresetsPage extends BasePage {
|
|||||||
left.scrollPane.addButton(new TerraLabel(preset.getName()));
|
left.scrollPane.addButton(new TerraLabel(preset.getName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static TerraButton createSpacer() {
|
||||||
|
return new TerraButton("") {
|
||||||
|
@Override
|
||||||
|
public void render(int x, int y, float tick) { }
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -45,6 +45,10 @@ public class PreviewPage extends UpdatablePage {
|
|||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Preview getPreviewWidget() {
|
||||||
|
return preview;
|
||||||
|
}
|
||||||
|
|
||||||
public int getSeed() {
|
public int getSeed() {
|
||||||
return preview.getSeed();
|
return preview.getSeed();
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ package com.terraforged.util.setup;
|
|||||||
import com.terraforged.api.biome.modifier.ModifierManager;
|
import com.terraforged.api.biome.modifier.ModifierManager;
|
||||||
import com.terraforged.api.chunk.column.ColumnDecorator;
|
import com.terraforged.api.chunk.column.ColumnDecorator;
|
||||||
import com.terraforged.api.chunk.column.DecoratorManager;
|
import com.terraforged.api.chunk.column.DecoratorManager;
|
||||||
import com.terraforged.api.chunk.surface.SurfaceManager;
|
import com.terraforged.api.biome.surface.SurfaceManager;
|
||||||
import com.terraforged.api.event.SetupEvent;
|
import com.terraforged.api.event.SetupEvent;
|
||||||
import com.terraforged.api.material.geology.GeologyManager;
|
import com.terraforged.api.material.geology.GeologyManager;
|
||||||
import com.terraforged.api.material.layer.LayerManager;
|
import com.terraforged.api.material.layer.LayerManager;
|
||||||
|
Loading…
Reference in New Issue
Block a user