Temp fixes

This commit is contained in:
Daniel Mills 2020-11-01 09:46:56 -05:00
parent b87153a445
commit 7a7fee1d8a
12 changed files with 74 additions and 26 deletions

20
.idea/workspace.xml generated
View File

@ -60,10 +60,10 @@
<recent name="com.volmit.iris.gen.v2.scaffold.stream.sources" /> <recent name="com.volmit.iris.gen.v2.scaffold.stream.sources" />
</key> </key>
<key name="CopyClassDialog.RECENTS_KEY"> <key name="CopyClassDialog.RECENTS_KEY">
<recent name="com.volmit.iris.v2.scaffold.engine" />
<recent name="com.volmit.iris.v2.generator.actuator" /> <recent name="com.volmit.iris.v2.generator.actuator" />
<recent name="com.volmit.iris.command" /> <recent name="com.volmit.iris.command" />
<recent name="com.volmit.iris.v2.scaffold.hunk.view" /> <recent name="com.volmit.iris.v2.scaffold.hunk.view" />
<recent name="com.volmit.iris.v2.scaffold.engine" />
<recent name="com.volmit.iris.v2.scaffold.stream.utility" /> <recent name="com.volmit.iris.v2.scaffold.stream.utility" />
</key> </key>
<key name="CopyFile.RECENT_KEYS"> <key name="CopyFile.RECENT_KEYS">
@ -74,7 +74,7 @@
<recent name="C:\Users\cyberpwn\Documents\development\workspace\Iris\src\main\java\com\volmit\iris\gen\v2\scaffold\hunk" /> <recent name="C:\Users\cyberpwn\Documents\development\workspace\Iris\src\main\java\com\volmit\iris\gen\v2\scaffold\hunk" />
</key> </key>
</component> </component>
<component name="RunManager" selected="Maven.Iris Release"> <component name="RunManager" selected="Maven.Iris Build">
<configuration default="true" type="MavenRunConfiguration" factoryName="Maven"> <configuration default="true" type="MavenRunConfiguration" factoryName="Maven">
<MavenSettings> <MavenSettings>
<option name="myGeneralSettings" /> <option name="myGeneralSettings" />
@ -147,22 +147,22 @@
<screen x="0" y="0" width="1920" height="1050" /> <screen x="0" y="0" width="1920" height="1050" />
</state> </state>
<state x="485" y="234" key="#com.intellij.structuralsearch.plugin.ui.StructuralSearchDialog/-1920.0.1920.1050/1920.0.1920.1050/0.0.1920.1050@0.0.1920.1050" timestamp="1603860057506" /> <state x="485" y="234" key="#com.intellij.structuralsearch.plugin.ui.StructuralSearchDialog/-1920.0.1920.1050/1920.0.1920.1050/0.0.1920.1050@0.0.1920.1050" timestamp="1603860057506" />
<state width="1921" height="983" key="GridCell.Tab.0.bottom" timestamp="1604235922783"> <state width="1921" height="983" key="GridCell.Tab.0.bottom" timestamp="1604241709027">
<screen x="0" y="0" width="1920" height="1050" /> <screen x="0" y="0" width="1920" height="1050" />
</state> </state>
<state width="1921" height="983" key="GridCell.Tab.0.bottom/-1920.0.1920.1050/1920.0.1920.1050/0.0.1920.1050@0.0.1920.1050" timestamp="1604235922783" /> <state width="1921" height="983" key="GridCell.Tab.0.bottom/-1920.0.1920.1050/1920.0.1920.1050/0.0.1920.1050@0.0.1920.1050" timestamp="1604241709027" />
<state width="1921" height="983" key="GridCell.Tab.0.center" timestamp="1604235922783"> <state width="1921" height="983" key="GridCell.Tab.0.center" timestamp="1604241709026">
<screen x="0" y="0" width="1920" height="1050" /> <screen x="0" y="0" width="1920" height="1050" />
</state> </state>
<state width="1921" height="983" key="GridCell.Tab.0.center/-1920.0.1920.1050/1920.0.1920.1050/0.0.1920.1050@0.0.1920.1050" timestamp="1604235922783" /> <state width="1921" height="983" key="GridCell.Tab.0.center/-1920.0.1920.1050/1920.0.1920.1050/0.0.1920.1050@0.0.1920.1050" timestamp="1604241709026" />
<state width="1921" height="983" key="GridCell.Tab.0.left" timestamp="1604235922783"> <state width="1921" height="983" key="GridCell.Tab.0.left" timestamp="1604241709026">
<screen x="0" y="0" width="1920" height="1050" /> <screen x="0" y="0" width="1920" height="1050" />
</state> </state>
<state width="1921" height="983" key="GridCell.Tab.0.left/-1920.0.1920.1050/1920.0.1920.1050/0.0.1920.1050@0.0.1920.1050" timestamp="1604235922783" /> <state width="1921" height="983" key="GridCell.Tab.0.left/-1920.0.1920.1050/1920.0.1920.1050/0.0.1920.1050@0.0.1920.1050" timestamp="1604241709026" />
<state width="1921" height="983" key="GridCell.Tab.0.right" timestamp="1604235922783"> <state width="1921" height="983" key="GridCell.Tab.0.right" timestamp="1604241709027">
<screen x="0" y="0" width="1920" height="1050" /> <screen x="0" y="0" width="1920" height="1050" />
</state> </state>
<state width="1921" height="983" key="GridCell.Tab.0.right/-1920.0.1920.1050/1920.0.1920.1050/0.0.1920.1050@0.0.1920.1050" timestamp="1604235922783" /> <state width="1921" height="983" key="GridCell.Tab.0.right/-1920.0.1920.1050/1920.0.1920.1050/0.0.1920.1050@0.0.1920.1050" timestamp="1604241709027" />
<state x="312" y="0" key="SettingsEditor" timestamp="1603947206451"> <state x="312" y="0" key="SettingsEditor" timestamp="1603947206451">
<screen x="0" y="0" width="1920" height="1050" /> <screen x="0" y="0" width="1920" height="1050" />
</state> </state>

View File

@ -13,4 +13,9 @@ public class CaveResult
this.floor = floor; this.floor = floor;
this.ceiling = ceiling; this.ceiling = ceiling;
} }
public boolean isWithin(int v)
{
return v > floor || v < ceiling;
}
} }

View File

@ -1,8 +1,9 @@
package com.volmit.iris.v2.generator; 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.data.DataProvider;
import com.volmit.iris.v2.scaffold.engine.Engine; import com.volmit.iris.v2.scaffold.engine.Engine;
import com.volmit.iris.util.B;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;
import org.bukkit.block.data.BlockData; 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.v2.scaffold.stream.interpolation.Interpolated;
import com.volmit.iris.manager.IrisDataManager; import com.volmit.iris.manager.IrisDataManager;
import com.volmit.iris.noise.CNG; 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; import lombok.Data;
@ -56,6 +47,7 @@ public class IrisComplex implements DataProvider
private ProceduralStream<BlockData> rockStream; private ProceduralStream<BlockData> rockStream;
private ProceduralStream<BlockData> fluidStream; private ProceduralStream<BlockData> fluidStream;
private ProceduralStream<BlockData> glassStream; private ProceduralStream<BlockData> glassStream;
private ProceduralStream<KList<CaveResult>> caveStream;
public ProceduralStream<IrisBiome> getBiomeStream(InferredType type) 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)); .convertAware2D((b, xx,zz) -> decorateFor(b, xx, zz, DecorationPart.SHORE_LINE));
seaSurfaceDecoration = trueBiomeStream seaSurfaceDecoration = trueBiomeStream
.convertAware2D((b, xx,zz) -> decorateFor(b, xx, zz, DecorationPart.SEA_SURFACE)); .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 //@done
} }

View File

@ -46,6 +46,7 @@ public class IrisEngine implements Engine
}) })
); );
// getFramework().getCaveModifier().modify(x, z, blocks, biomes);
getFramework().getEngineParallax().insertParallax(x, z, blocks); getFramework().getEngineParallax().insertParallax(x, z, blocks);
getParallax().cleanup(); getParallax().cleanup();
} }

View File

@ -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.IrisBiomeActuator;
import com.volmit.iris.v2.generator.actuator.IrisDecorantActuator; import com.volmit.iris.v2.generator.actuator.IrisDecorantActuator;
import com.volmit.iris.v2.generator.actuator.IrisTerrainActuator; 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.Engine;
import com.volmit.iris.v2.scaffold.engine.EngineActuator; import com.volmit.iris.v2.scaffold.engine.EngineActuator;
import com.volmit.iris.v2.scaffold.engine.EngineFramework; import com.volmit.iris.v2.scaffold.engine.EngineFramework;
@ -23,6 +24,9 @@ public class IrisEngineFramework implements EngineFramework {
@Getter @Getter
private final Engine engine; private final Engine engine;
@Getter
private final IrisCaveModifier caveModifier;
@Getter @Getter
private final IrisComplex complex; private final IrisComplex complex;
@ -41,6 +45,7 @@ public class IrisEngineFramework implements EngineFramework {
public IrisEngineFramework(Engine engine) public IrisEngineFramework(Engine engine)
{ {
this.engine = engine; this.engine = engine;
this.caveModifier = new IrisCaveModifier(engine);
this.complex = new IrisComplex(getEngine()); this.complex = new IrisComplex(getEngine());
this.engineParallax = new IrisEngineParallax(getEngine()); this.engineParallax = new IrisEngineParallax(getEngine());
this.terrainActuator = new IrisTerrainActuator(getEngine()); this.terrainActuator = new IrisTerrainActuator(getEngine());

View File

@ -3,7 +3,9 @@ package com.volmit.iris.v2.generator.actuator;
import com.volmit.iris.noise.CNG; import com.volmit.iris.noise.CNG;
import com.volmit.iris.object.IrisBiome; import com.volmit.iris.object.IrisBiome;
import com.volmit.iris.object.IrisCarveLayer; import com.volmit.iris.object.IrisCarveLayer;
import com.volmit.iris.object.IrisCaveLayer;
import com.volmit.iris.object.IrisNoiseGenerator; import com.volmit.iris.object.IrisNoiseGenerator;
import com.volmit.iris.util.CaveResult;
import com.volmit.iris.util.KList; import com.volmit.iris.util.KList;
import com.volmit.iris.util.RNG; import com.volmit.iris.util.RNG;
import com.volmit.iris.v2.scaffold.engine.Engine; import com.volmit.iris.v2.scaffold.engine.Engine;

View File

@ -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.noise.FastNoiseDouble;
import com.volmit.iris.object.IrisCaveLayer; import com.volmit.iris.object.IrisCaveLayer;
import com.volmit.iris.util.B; 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.KList;
import com.volmit.iris.util.RNG; import com.volmit.iris.util.RNG;
import com.volmit.iris.v2.scaffold.engine.Engine; 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.engine.EngineAssignedModifier;
import com.volmit.iris.v2.scaffold.hunk.Hunk; import com.volmit.iris.v2.scaffold.hunk.Hunk;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Biome;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
import java.util.function.Function; 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 CAVE_AIR = B.getBlockData("CAVE_AIR");
public static final BlockData AIR = B.getBlockData("AIR"); public static final BlockData AIR = B.getBlockData("AIR");
@ -30,8 +31,16 @@ public class IrisCaveModifier extends EngineAssignedModifier<BlockData>
} }
@Override @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) public KList<CaveResult> genCaves(double wxx, double wzz, int x, int z, Hunk<BlockData> data)

View File

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

View File

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

View File

@ -1,5 +1,7 @@
package com.volmit.iris.v2.scaffold.engine; 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.Biome;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
@ -24,4 +26,6 @@ public interface EngineFramework extends DataProvider
public EngineActuator<BlockData> getDecorantActuator(); public EngineActuator<BlockData> getDecorantActuator();
public EngineActuator<Biome> getBiomeActuator(); public EngineActuator<Biome> getBiomeActuator();
public IrisCaveModifier getCaveModifier();
} }

View File

@ -605,7 +605,7 @@ public interface Hunk<T>
return compute2D(getIdeal2DParallelism(), v); 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()) if(a.getWidth() != b.getWidth() || a.getHeight() != b.getHeight() || a.getDepth() != b.getDepth())
{ {

View File

@ -2,6 +2,9 @@ package com.volmit.iris.v2.scaffold.stream.interpolation;
import java.util.function.Function; 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 com.volmit.iris.v2.scaffold.stream.ProceduralStream;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
@ -10,6 +13,7 @@ import com.volmit.iris.util.RNG;
public interface Interpolated<T> public interface Interpolated<T>
{ {
public static final Interpolated<BlockData> BLOCK_DATA = of((t) -> 0D, (t) -> null); 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<RNG> RNG = of((t) -> 0D, (t) -> null);
public static final Interpolated<Double> DOUBLE = of((t) -> t, (t) -> t); 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()); public static final Interpolated<Integer> INT = of((t) -> Double.valueOf(t), (t) -> t.intValue());