mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-18 10:12:53 +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());
|
||||
|
||||
for (int i = 0; i < zone.ceiling + 1; i++) {
|
||||
if (!blocks.hasIndex(i)) {
|
||||
break;
|
||||
if(zone.ceiling + 1 < mantle.getWorldHeight())
|
||||
{
|
||||
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) {
|
||||
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) {
|
||||
return null;
|
||||
}
|
||||
@ -274,6 +281,12 @@ public class Chunk {
|
||||
*/
|
||||
public void setBlockStateAt(int blockX, int blockY, int blockZ, CompoundTag state, boolean cleanup) {
|
||||
int sectionIndex = MCAUtil.blockToChunk(blockY);
|
||||
|
||||
if(sections.length() <= sectionIndex)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Section section = sections.get(sectionIndex);
|
||||
if (section == null) {
|
||||
section = Section.newSection();
|
||||
|
Loading…
x
Reference in New Issue
Block a user