mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-18 18:23:06 +00:00
Revert "Revert "Test carved objects""
This reverts commit b88a5653448bd163105e35fd0502203765ee12bc.
This commit is contained in:
parent
b88a565344
commit
6df6296cd1
@ -259,4 +259,16 @@ public class IrisCaveModifier extends EngineAssignedModifier<BlockData>
|
|||||||
{
|
{
|
||||||
return B.isSolid(m) && !m.equals(Material.BEDROCK);
|
return B.isSolid(m) && !m.equals(Material.BEDROCK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isCave(int x, int y, int z) {
|
||||||
|
for(CaveResult i : genCaves(x, z, x&15,z&15, null))
|
||||||
|
{
|
||||||
|
if(i.getFloor() < y && i.getCeiling() > y)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -474,6 +474,11 @@ public class IrisObject extends IrisRegistrant
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void set(int param1Int1, int param1Int2, int param1Int3, BlockData param1BlockData) {
|
public void set(int param1Int1, int param1Int2, int param1Int3, BlockData param1BlockData) {
|
||||||
|
if(config.isCarved() && oplacer.isCarved(param1Int1, param1Int2, param1Int3))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
oplacer.set(param1Int1, param1Int2, param1Int3, param1BlockData);
|
oplacer.set(param1Int1, param1Int2, param1Int3, param1BlockData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -504,6 +509,11 @@ public class IrisObject extends IrisRegistrant
|
|||||||
public void setTile(int param1Int1, int param1Int2, int param1Int3, TileData<? extends TileState> param1TileData) {
|
public void setTile(int param1Int1, int param1Int2, int param1Int3, TileData<? extends TileState> param1TileData) {
|
||||||
oplacer.setTile(param1Int1, param1Int2, param1Int3, param1TileData);
|
oplacer.setTile(param1Int1, param1Int2, param1Int3, param1TileData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCarved(int xx, int j, int zz) {
|
||||||
|
return oplacer.isCarved(xx,j,zz);
|
||||||
|
}
|
||||||
} : oplacer;
|
} : oplacer;
|
||||||
|
|
||||||
if(config.isSmartBore())
|
if(config.isSmartBore())
|
||||||
@ -769,6 +779,11 @@ public class IrisObject extends IrisRegistrant
|
|||||||
|
|
||||||
if(!data.getMaterial().equals(Material.AIR) && !data.getMaterial().equals(Material.CAVE_AIR))
|
if(!data.getMaterial().equals(Material.AIR) && !data.getMaterial().equals(Material.CAVE_AIR))
|
||||||
{
|
{
|
||||||
|
if(config.isCarved() && placer.isCarved(xx, yy, zz))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
placer.set(xx, yy, zz, data);
|
placer.set(xx, yy, zz, data);
|
||||||
|
|
||||||
if(tile != null)
|
if(tile != null)
|
||||||
@ -836,6 +851,11 @@ public class IrisObject extends IrisRegistrant
|
|||||||
|
|
||||||
for(int j = lowest + y; j > yg - config.getOverStilt() - 1; j--)
|
for(int j = lowest + y; j > yg - config.getOverStilt() - 1; j--)
|
||||||
{
|
{
|
||||||
|
if(config.isCarved() && placer.isCarved(xx, j, zz))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
placer.set(xx, j, zz, d);
|
placer.set(xx, j, zz, d);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -856,6 +876,12 @@ public class IrisObject extends IrisRegistrant
|
|||||||
if(config.getSnow() > 0)
|
if(config.getSnow() > 0)
|
||||||
{
|
{
|
||||||
int height = rngx.i(0, (int) (config.getSnow() * 7));
|
int height = rngx.i(0, (int) (config.getSnow() * 7));
|
||||||
|
|
||||||
|
if(config.isCarved() && placer.isCarved(vx, vy + 1, vz))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
placer.set(vx, vy + 1, vz, SNOW_LAYERS[Math.max(Math.min(height, 7), 0)]);
|
placer.set(vx, vy + 1, vz, SNOW_LAYERS[Math.max(Math.min(height, 7), 0)]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -72,6 +72,10 @@ public class IrisObjectPlacement
|
|||||||
@Desc("When bore is enabled, lower min-y of the cuboid it removes")
|
@Desc("When bore is enabled, lower min-y of the cuboid it removes")
|
||||||
private int boreExtendMinY = 0;
|
private int boreExtendMinY = 0;
|
||||||
|
|
||||||
|
@DontObfuscate
|
||||||
|
@Desc("Allow objects to be carved by caves and carvings. Use this sparingly, there is a performance impact.")
|
||||||
|
private boolean carved = false;
|
||||||
|
|
||||||
@DontObfuscate
|
@DontObfuscate
|
||||||
@Desc("If set to true, objects will place on the terrain height, ignoring the water surface.")
|
@Desc("If set to true, objects will place on the terrain height, ignoring the water surface.")
|
||||||
private boolean underwater = false;
|
private boolean underwater = false;
|
||||||
|
@ -2,6 +2,7 @@ package com.volmit.iris.scaffold.engine;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.generator.IrisComplex;
|
import com.volmit.iris.generator.IrisComplex;
|
||||||
|
import com.volmit.iris.generator.modifier.IrisCaveModifier;
|
||||||
import com.volmit.iris.manager.IrisDataManager;
|
import com.volmit.iris.manager.IrisDataManager;
|
||||||
import com.volmit.iris.object.*;
|
import com.volmit.iris.object.*;
|
||||||
import com.volmit.iris.object.tile.TileData;
|
import com.volmit.iris.object.tile.TileData;
|
||||||
@ -18,7 +19,6 @@ import org.bukkit.Chunk;
|
|||||||
import org.bukkit.ChunkSnapshot;
|
import org.bukkit.ChunkSnapshot;
|
||||||
import org.bukkit.block.TileState;
|
import org.bukkit.block.TileState;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.craftbukkit.v1_17_R1.util.CraftMagicNumbers;
|
|
||||||
import org.bukkit.util.BlockVector;
|
import org.bukkit.util.BlockVector;
|
||||||
import org.bukkit.util.Consumer;
|
import org.bukkit.util.Consumer;
|
||||||
|
|
||||||
@ -41,6 +41,12 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
|
|||||||
return getEngine().getParallax();
|
return getEngine().getParallax();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default boolean isCarved(int x, int y, int z)
|
||||||
|
{
|
||||||
|
return ((IrisCaveModifier)getEngine().getFramework().getCaveModifier()).isCave(x,y,z) ||
|
||||||
|
getEngine().getDimension().isCarved(x,y,z, getComplex().getRng(), getEngine().getHeight());
|
||||||
|
}
|
||||||
|
|
||||||
default IrisDataManager getData() {
|
default IrisDataManager getData() {
|
||||||
return getEngine().getData();
|
return getEngine().getData();
|
||||||
}
|
}
|
||||||
|
@ -6,23 +6,25 @@ import org.bukkit.block.data.BlockData;
|
|||||||
|
|
||||||
public interface IObjectPlacer
|
public interface IObjectPlacer
|
||||||
{
|
{
|
||||||
public int getHighest(int x, int z);
|
int getHighest(int x, int z);
|
||||||
|
|
||||||
public int getHighest(int x, int z, boolean ignoreFluid);
|
int getHighest(int x, int z, boolean ignoreFluid);
|
||||||
|
|
||||||
public void set(int x, int y, int z, BlockData d);
|
void set(int x, int y, int z, BlockData d);
|
||||||
|
|
||||||
public BlockData get(int x, int y, int z);
|
BlockData get(int x, int y, int z);
|
||||||
|
|
||||||
public boolean isPreventingDecay();
|
boolean isPreventingDecay();
|
||||||
|
|
||||||
public boolean isSolid(int x, int y, int z);
|
boolean isSolid(int x, int y, int z);
|
||||||
|
|
||||||
public boolean isUnderwater(int x, int z);
|
boolean isUnderwater(int x, int z);
|
||||||
|
|
||||||
public int getFluidHeight();
|
int getFluidHeight();
|
||||||
|
|
||||||
public boolean isDebugSmartBore();
|
boolean isDebugSmartBore();
|
||||||
|
|
||||||
void setTile(int xx, int yy, int zz, TileData<? extends TileState> tile);
|
void setTile(int xx, int yy, int zz, TileData<? extends TileState> tile);
|
||||||
|
|
||||||
|
boolean isCarved(int xx, int j, int zz);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user