mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-19 10:43:14 +00:00
Fix a bug causing issues with decorations
This commit is contained in:
parent
0755e8f618
commit
4a82def974
@ -1,6 +1,5 @@
|
|||||||
package com.volmit.iris.generator.noise;
|
package com.volmit.iris.generator.noise;
|
||||||
|
|
||||||
import com.volmit.iris.Iris;
|
|
||||||
import com.volmit.iris.scaffold.stream.ProceduralStream;
|
import com.volmit.iris.scaffold.stream.ProceduralStream;
|
||||||
import com.volmit.iris.scaffold.stream.arithmetic.FittedStream;
|
import com.volmit.iris.scaffold.stream.arithmetic.FittedStream;
|
||||||
import com.volmit.iris.scaffold.stream.sources.CNGStream;
|
import com.volmit.iris.scaffold.stream.sources.CNGStream;
|
||||||
@ -289,8 +288,6 @@ public class CNG
|
|||||||
|
|
||||||
catch(Throwable e)
|
catch(Throwable e)
|
||||||
{
|
{
|
||||||
Iris.error("Failed to sample noise into array " + v.size() + " nodes");
|
|
||||||
Iris.error("Noise Source: " + generator.getClass().getSimpleName());
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -406,4 +403,8 @@ public class CNG
|
|||||||
{
|
{
|
||||||
return scale;
|
return scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isStatic() {
|
||||||
|
return generator != null && generator.isStatic();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,4 +7,9 @@ public interface NoiseGenerator
|
|||||||
public double noise(double x, double z);
|
public double noise(double x, double z);
|
||||||
|
|
||||||
public double noise(double x, double y, double z);
|
public double noise(double x, double y, double z);
|
||||||
|
|
||||||
|
public default boolean isStatic()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,11 @@ public class WhiteNoise implements NoiseGenerator
|
|||||||
n = new FastNoise(new RNG(seed).imax());
|
n = new FastNoise(new RNG(seed).imax());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isStatic()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
private double f(double m)
|
private double f(double m)
|
||||||
{
|
{
|
||||||
return (m % 8192) * 1024;
|
return (m % 8192) * 1024;
|
||||||
|
@ -4,15 +4,7 @@ import com.volmit.iris.Iris;
|
|||||||
import com.volmit.iris.scaffold.cache.AtomicCache;
|
import com.volmit.iris.scaffold.cache.AtomicCache;
|
||||||
import com.volmit.iris.manager.IrisDataManager;
|
import com.volmit.iris.manager.IrisDataManager;
|
||||||
import com.volmit.iris.generator.noise.CNG;
|
import com.volmit.iris.generator.noise.CNG;
|
||||||
import com.volmit.iris.util.ArrayType;
|
import com.volmit.iris.util.*;
|
||||||
import com.volmit.iris.util.DependsOn;
|
|
||||||
import com.volmit.iris.util.Desc;
|
|
||||||
import com.volmit.iris.util.DontObfuscate;
|
|
||||||
import com.volmit.iris.util.KList;
|
|
||||||
import com.volmit.iris.util.MaxNumber;
|
|
||||||
import com.volmit.iris.util.MinNumber;
|
|
||||||
import com.volmit.iris.util.RNG;
|
|
||||||
import com.volmit.iris.util.Required;
|
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -127,7 +119,11 @@ public class IrisDecorator
|
|||||||
|
|
||||||
public CNG getVarianceGenerator(RNG rng, IrisDataManager data)
|
public CNG getVarianceGenerator(RNG rng, IrisDataManager data)
|
||||||
{
|
{
|
||||||
return varianceGenerator.aquire(() -> variance.create(rng.nextParallelRNG((int) (getBlockData(data).size()))).scale(1D / varianceZoom));
|
return varianceGenerator.aquire(() ->
|
||||||
|
variance.create(
|
||||||
|
rng.nextParallelRNG((int) (getBlockData(data).size())))
|
||||||
|
|
||||||
|
.scale(1D / varianceZoom));
|
||||||
}
|
}
|
||||||
|
|
||||||
public KList<IrisBlockData> add(String b)
|
public KList<IrisBlockData> add(String b)
|
||||||
@ -168,15 +164,21 @@ public class IrisDecorator
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
double xx = x / getZoom();
|
double xx = x;
|
||||||
double zz = z / getZoom();
|
double zz = z;
|
||||||
|
|
||||||
|
if(!getVarianceGenerator(rng, data).isStatic())
|
||||||
|
{
|
||||||
|
xx = x / getZoom();
|
||||||
|
zz = z / getZoom();
|
||||||
|
}
|
||||||
|
|
||||||
if(getBlockData(data).size() == 1)
|
if(getBlockData(data).size() == 1)
|
||||||
{
|
{
|
||||||
return getBlockData(data).get(0);
|
return getBlockData(data).get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
return getVarianceGenerator(rng, data).fit(getBlockData(data), xx, zz);
|
return getVarianceGenerator(rng, data).fit(getBlockData(data), xx, zz).clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public BlockData getBlockDataForTop(IrisBiome b, RNG rng, double x, double z, IrisDataManager data)
|
public BlockData getBlockDataForTop(IrisBiome b, RNG rng, double x, double z, IrisDataManager data)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user