mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-18 18:23:06 +00:00
Fix index OOB for caves / mca cap fixes #655
This commit is contained in:
parent
d2c373b27d
commit
adb2a32fda
@ -237,24 +237,27 @@ public class IrisCarveModifier extends EngineAssignedModifier<BlockData> {
|
|||||||
|
|
||||||
blocks = biome.generateCeilingLayers(getDimension(), xx, zz, rng, 3, zone.ceiling, getData(), getComplex());
|
blocks = biome.generateCeilingLayers(getDimension(), xx, zz, rng, 3, zone.ceiling, getData(), getComplex());
|
||||||
|
|
||||||
for (int i = 0; i < zone.ceiling + 1; i++) {
|
if(zone.ceiling + 1 < mantle.getWorldHeight())
|
||||||
if (!blocks.hasIndex(i)) {
|
{
|
||||||
break;
|
for (int i = 0; i < zone.ceiling + 1; i++) {
|
||||||
|
if (!blocks.hasIndex(i)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
BlockData b = blocks.get(i);
|
||||||
|
BlockData up = output.get(rx, zone.ceiling + i + 1, rz);
|
||||||
|
|
||||||
|
if (!B.isSolid(up)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (B.isOre(up)) {
|
||||||
|
output.set(rx, zone.ceiling + i + 1, rz, B.toDeepSlateOre(up, b));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
output.set(rx, zone.ceiling + i + 1, rz, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
BlockData b = blocks.get(i);
|
|
||||||
BlockData up = output.get(rx, zone.ceiling + i + 1, rz);
|
|
||||||
|
|
||||||
if (!B.isSolid(up)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (B.isOre(up)) {
|
|
||||||
output.set(rx, zone.ceiling + i + 1, rz, B.toDeepSlateOre(up, b));
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
output.set(rx, zone.ceiling + i + 1, rz, b);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -253,7 +253,14 @@ public class Chunk {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public CompoundTag getBlockStateAt(int blockX, int blockY, int blockZ) {
|
public CompoundTag getBlockStateAt(int blockX, int blockY, int blockZ) {
|
||||||
Section section = sections.get(MCAUtil.blockToChunk(blockY));
|
int s = MCAUtil.blockToChunk(blockY);
|
||||||
|
|
||||||
|
if(sections.length() <= s)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Section section = sections.get(s);
|
||||||
if (section == null) {
|
if (section == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -274,6 +281,12 @@ public class Chunk {
|
|||||||
*/
|
*/
|
||||||
public void setBlockStateAt(int blockX, int blockY, int blockZ, CompoundTag state, boolean cleanup) {
|
public void setBlockStateAt(int blockX, int blockY, int blockZ, CompoundTag state, boolean cleanup) {
|
||||||
int sectionIndex = MCAUtil.blockToChunk(blockY);
|
int sectionIndex = MCAUtil.blockToChunk(blockY);
|
||||||
|
|
||||||
|
if(sections.length() <= sectionIndex)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Section section = sections.get(sectionIndex);
|
Section section = sections.get(sectionIndex);
|
||||||
if (section == null) {
|
if (section == null) {
|
||||||
section = Section.newSection();
|
section = Section.newSection();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user