mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-12-27 02:59:06 +00:00
Temp fixes
This commit is contained in:
@@ -13,4 +13,9 @@ public class CaveResult
|
||||
this.floor = floor;
|
||||
this.ceiling = ceiling;
|
||||
}
|
||||
|
||||
public boolean isWithin(int v)
|
||||
{
|
||||
return v > floor || v < ceiling;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package com.volmit.iris.v2.generator;
|
||||
|
||||
import com.volmit.iris.object.*;
|
||||
import com.volmit.iris.util.*;
|
||||
import com.volmit.iris.v2.scaffold.data.DataProvider;
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.util.B;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
@@ -12,16 +13,6 @@ import com.volmit.iris.v2.scaffold.stream.ProceduralStream;
|
||||
import com.volmit.iris.v2.scaffold.stream.interpolation.Interpolated;
|
||||
import com.volmit.iris.manager.IrisDataManager;
|
||||
import com.volmit.iris.noise.CNG;
|
||||
import com.volmit.iris.object.DecorationPart;
|
||||
import com.volmit.iris.object.InferredType;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisDecorator;
|
||||
import com.volmit.iris.object.IrisBiomePaletteLayer;
|
||||
import com.volmit.iris.object.IrisGenerator;
|
||||
import com.volmit.iris.object.IrisRegion;
|
||||
import com.volmit.iris.util.KList;
|
||||
import com.volmit.iris.util.M;
|
||||
import com.volmit.iris.util.RNG;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@@ -56,6 +47,7 @@ public class IrisComplex implements DataProvider
|
||||
private ProceduralStream<BlockData> rockStream;
|
||||
private ProceduralStream<BlockData> fluidStream;
|
||||
private ProceduralStream<BlockData> glassStream;
|
||||
private ProceduralStream<KList<CaveResult>> caveStream;
|
||||
|
||||
public ProceduralStream<IrisBiome> getBiomeStream(InferredType type)
|
||||
{
|
||||
@@ -164,6 +156,7 @@ public class IrisComplex implements DataProvider
|
||||
.convertAware2D((b, xx,zz) -> decorateFor(b, xx, zz, DecorationPart.SHORE_LINE));
|
||||
seaSurfaceDecoration = trueBiomeStream
|
||||
.convertAware2D((b, xx,zz) -> decorateFor(b, xx, zz, DecorationPart.SEA_SURFACE));
|
||||
caveStream = ProceduralStream.of((x, z) -> engine.getFramework().getCaveModifier().genCaves(x, z, x.intValue() & 15, z.intValue() & 15, null), Interpolated.CAVE_RESULTS);
|
||||
//@done
|
||||
}
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@ public class IrisEngine implements Engine
|
||||
})
|
||||
);
|
||||
|
||||
// getFramework().getCaveModifier().modify(x, z, blocks, biomes);
|
||||
getFramework().getEngineParallax().insertParallax(x, z, blocks);
|
||||
getParallax().cleanup();
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.volmit.iris.util.RNG;
|
||||
import com.volmit.iris.v2.generator.actuator.IrisBiomeActuator;
|
||||
import com.volmit.iris.v2.generator.actuator.IrisDecorantActuator;
|
||||
import com.volmit.iris.v2.generator.actuator.IrisTerrainActuator;
|
||||
import com.volmit.iris.v2.generator.modifier.IrisCaveModifier;
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineActuator;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineFramework;
|
||||
@@ -23,6 +24,9 @@ public class IrisEngineFramework implements EngineFramework {
|
||||
@Getter
|
||||
private final Engine engine;
|
||||
|
||||
@Getter
|
||||
private final IrisCaveModifier caveModifier;
|
||||
|
||||
@Getter
|
||||
private final IrisComplex complex;
|
||||
|
||||
@@ -41,6 +45,7 @@ public class IrisEngineFramework implements EngineFramework {
|
||||
public IrisEngineFramework(Engine engine)
|
||||
{
|
||||
this.engine = engine;
|
||||
this.caveModifier = new IrisCaveModifier(engine);
|
||||
this.complex = new IrisComplex(getEngine());
|
||||
this.engineParallax = new IrisEngineParallax(getEngine());
|
||||
this.terrainActuator = new IrisTerrainActuator(getEngine());
|
||||
|
||||
@@ -3,7 +3,9 @@ package com.volmit.iris.v2.generator.actuator;
|
||||
import com.volmit.iris.noise.CNG;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisCarveLayer;
|
||||
import com.volmit.iris.object.IrisCaveLayer;
|
||||
import com.volmit.iris.object.IrisNoiseGenerator;
|
||||
import com.volmit.iris.util.CaveResult;
|
||||
import com.volmit.iris.util.KList;
|
||||
import com.volmit.iris.util.RNG;
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.volmit.iris.v2.generator.actuator;
|
||||
package com.volmit.iris.v2.generator.modifier;
|
||||
|
||||
import com.volmit.iris.gen.atomics.AtomicSliver;
|
||||
import com.volmit.iris.noise.FastNoiseDouble;
|
||||
import com.volmit.iris.object.IrisCaveLayer;
|
||||
import com.volmit.iris.util.B;
|
||||
@@ -8,14 +7,16 @@ import com.volmit.iris.util.CaveResult;
|
||||
import com.volmit.iris.util.KList;
|
||||
import com.volmit.iris.util.RNG;
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineAssignedBiModifier;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineAssignedModifier;
|
||||
import com.volmit.iris.v2.scaffold.hunk.Hunk;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
public class IrisCaveModifier extends EngineAssignedModifier<BlockData>
|
||||
public class IrisCaveModifier extends EngineAssignedBiModifier<BlockData, Biome>
|
||||
{
|
||||
public static final BlockData CAVE_AIR = B.getBlockData("CAVE_AIR");
|
||||
public static final BlockData AIR = B.getBlockData("AIR");
|
||||
@@ -30,8 +31,16 @@ public class IrisCaveModifier extends EngineAssignedModifier<BlockData>
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onModify(int x, int z, Hunk<BlockData> output) {
|
||||
public void onModify(int x, int z, Hunk<BlockData> a, Hunk<Biome> b) {
|
||||
Hunk.computeDual2D(getParallelism(), a, b, (xx,yy,zz, ha, hb) -> {
|
||||
for(int i = 0; i < ha.getWidth(); i++)
|
||||
{
|
||||
for(int j = 0; j < ha.getDepth(); i++)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public KList<CaveResult> genCaves(double wxx, double wzz, int x, int z, Hunk<BlockData> data)
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.volmit.iris.v2.scaffold.engine;
|
||||
|
||||
import com.volmit.iris.v2.scaffold.hunk.Hunk;
|
||||
|
||||
public abstract class EngineAssignedBiModifier<A, B> extends EngineAssignedComponent implements EngineBiModifier<A, B>
|
||||
{
|
||||
public EngineAssignedBiModifier(Engine engine, String name)
|
||||
{
|
||||
super(engine, name);
|
||||
}
|
||||
|
||||
public abstract void onModify(int x, int z, Hunk<A> a, Hunk<B> b);
|
||||
|
||||
@Override
|
||||
public void modify(int x, int z, Hunk<A> a, Hunk<B> b) {
|
||||
onModify(x, z, a, b);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.volmit.iris.v2.scaffold.engine;
|
||||
|
||||
import com.volmit.iris.v2.scaffold.hunk.Hunk;
|
||||
|
||||
public interface EngineBiModifier<A, B> extends EngineComponent {
|
||||
public void modify(int x, int z, Hunk<A> a, Hunk<B> b);
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.volmit.iris.v2.scaffold.engine;
|
||||
|
||||
import com.volmit.iris.v2.generator.IrisEngine;
|
||||
import com.volmit.iris.v2.generator.modifier.IrisCaveModifier;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
@@ -24,4 +26,6 @@ public interface EngineFramework extends DataProvider
|
||||
public EngineActuator<BlockData> getDecorantActuator();
|
||||
|
||||
public EngineActuator<Biome> getBiomeActuator();
|
||||
|
||||
public IrisCaveModifier getCaveModifier();
|
||||
}
|
||||
|
||||
@@ -605,7 +605,7 @@ public interface Hunk<T>
|
||||
return compute2D(getIdeal2DParallelism(), v);
|
||||
}
|
||||
|
||||
public static <A, B> void compute2D(int parallelism, Hunk<A> a, Hunk<B> b, Consumer5<Integer, Integer, Integer, Hunk<A>, Hunk<B>> v)
|
||||
public static <A, B> void computeDual2D(int parallelism, Hunk<A> a, Hunk<B> b, Consumer5<Integer, Integer, Integer, Hunk<A>, Hunk<B>> v)
|
||||
{
|
||||
if(a.getWidth() != b.getWidth() || a.getHeight() != b.getHeight() || a.getDepth() != b.getDepth())
|
||||
{
|
||||
|
||||
@@ -2,6 +2,9 @@ package com.volmit.iris.v2.scaffold.stream.interpolation;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
import com.volmit.iris.object.IrisCaveLayer;
|
||||
import com.volmit.iris.util.CaveResult;
|
||||
import com.volmit.iris.util.KList;
|
||||
import com.volmit.iris.v2.scaffold.stream.ProceduralStream;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
@@ -10,6 +13,7 @@ import com.volmit.iris.util.RNG;
|
||||
public interface Interpolated<T>
|
||||
{
|
||||
public static final Interpolated<BlockData> BLOCK_DATA = of((t) -> 0D, (t) -> null);
|
||||
public static final Interpolated<KList<CaveResult>> CAVE_RESULTS = of((t) -> 0D, (t) -> null);
|
||||
public static final Interpolated<RNG> RNG = of((t) -> 0D, (t) -> null);
|
||||
public static final Interpolated<Double> DOUBLE = of((t) -> t, (t) -> t);
|
||||
public static final Interpolated<Integer> INT = of((t) -> Double.valueOf(t), (t) -> t.intValue());
|
||||
|
||||
Reference in New Issue
Block a user