mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-19 10:43:14 +00:00
Support ModX and ModZ
This commit is contained in:
parent
adb7b13599
commit
24ae8d1679
@ -23,6 +23,10 @@ public interface Engine
|
|||||||
|
|
||||||
public int getMinHeight();
|
public int getMinHeight();
|
||||||
|
|
||||||
|
public double modifyX(double x);
|
||||||
|
|
||||||
|
public double modifyZ(double z);
|
||||||
|
|
||||||
default void save()
|
default void save()
|
||||||
{
|
{
|
||||||
getParallax().saveAll();
|
getParallax().saveAll();
|
||||||
|
@ -13,6 +13,16 @@ public interface EngineComponent {
|
|||||||
|
|
||||||
public String getName();
|
public String getName();
|
||||||
|
|
||||||
|
default double modX(double x)
|
||||||
|
{
|
||||||
|
return getEngine().modifyX(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
default double modZ(double z)
|
||||||
|
{
|
||||||
|
return getEngine().modifyZ(z);
|
||||||
|
}
|
||||||
|
|
||||||
public default IrisDataManager getData()
|
public default IrisDataManager getData()
|
||||||
{
|
{
|
||||||
return getEngine().getData();
|
return getEngine().getData();
|
||||||
|
@ -44,4 +44,6 @@ public interface EngineFramework extends DataProvider
|
|||||||
public EngineModifier<BlockData> getRavineModifier();
|
public EngineModifier<BlockData> getRavineModifier();
|
||||||
|
|
||||||
public EngineModifier<BlockData> getDepositModifier();
|
public EngineModifier<BlockData> getDepositModifier();
|
||||||
|
|
||||||
|
public EngineModifier<BlockData> getPostModifier();
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,8 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
|
|
||||||
import com.volmit.iris.object.*;
|
import com.volmit.iris.object.*;
|
||||||
import com.volmit.iris.util.*;
|
import com.volmit.iris.util.*;
|
||||||
|
import com.volmit.iris.v2.generator.actuator.IrisTerrainActuator;
|
||||||
|
import com.volmit.iris.v2.generator.modifier.IrisCaveModifier;
|
||||||
import com.volmit.iris.v2.scaffold.parallax.ParallaxChunkMeta;
|
import com.volmit.iris.v2.scaffold.parallax.ParallaxChunkMeta;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.util.BlockVector;
|
import org.bukkit.util.BlockVector;
|
||||||
@ -322,7 +324,49 @@ public interface EngineParallax extends DataProvider, IObjectPlacer
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
default int getHighest(int x, int z, boolean ignoreFluid) {
|
default int getHighest(int x, int z, boolean ignoreFluid) {
|
||||||
return (int) Math.round(ignoreFluid ? getComplex().getHeightStream().get(x, z) : getComplex().getHeightFluidStream().get(x, z));
|
return ignoreFluid ? trueHeight(x, z) : Math.max(trueHeight(x, z), getEngine().getDimension().getFluidHeight());
|
||||||
|
}
|
||||||
|
|
||||||
|
default int trueHeight(int x, int z)
|
||||||
|
{
|
||||||
|
int rx = (int) Math.round(getEngine().modifyX(x));
|
||||||
|
int rz = (int) Math.round(getEngine().modifyZ(z));
|
||||||
|
int height = (int) Math.round(getComplex().getHeightStream().get(rx, rz));
|
||||||
|
int m = height;
|
||||||
|
|
||||||
|
if(getEngine().getDimension().isCarving())
|
||||||
|
{
|
||||||
|
if(getEngine().getDimension().isCarved(rx, m, rz, ((IrisTerrainActuator)getFramework().getTerrainActuator()).getRng(), height))
|
||||||
|
{
|
||||||
|
m--;
|
||||||
|
|
||||||
|
while(getEngine().getDimension().isCarved(rx, m, rz, ((IrisTerrainActuator)getFramework().getTerrainActuator()).getRng(), height))
|
||||||
|
{
|
||||||
|
m--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(getEngine().getDimension().isCaves())
|
||||||
|
{
|
||||||
|
KList<CaveResult> caves = ((IrisCaveModifier)getFramework().getCaveModifier()).genCaves(rx, rz, 0, 0, null);
|
||||||
|
boolean again = true;
|
||||||
|
|
||||||
|
while(again)
|
||||||
|
{
|
||||||
|
again = false;
|
||||||
|
for(CaveResult i : caves)
|
||||||
|
{
|
||||||
|
if(i.getCeiling() > m && i.getFloor() < m)
|
||||||
|
{
|
||||||
|
m = i.getFloor();
|
||||||
|
again = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return m;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user