Block type fixes

This commit is contained in:
Daniel Mills 2020-08-01 07:20:54 -04:00
parent 3b76bb64a9
commit 71c90c6d31
5 changed files with 30 additions and 18 deletions

View File

@ -283,6 +283,11 @@ public abstract class TerrainChunkGenerator extends ParallelChunkGenerator
protected boolean canPlace(Material mat, Material onto) protected boolean canPlace(Material mat, Material onto)
{ {
if(onto.equals(Material.GRASS_BLOCK) && mat.equals(Material.DEAD_BUSH))
{
return false;
}
if(onto.equals(Material.GRASS_PATH)) if(onto.equals(Material.GRASS_PATH))
{ {
if(!mat.isSolid()) if(!mat.isSolid())
@ -291,7 +296,7 @@ public abstract class TerrainChunkGenerator extends ParallelChunkGenerator
} }
} }
if(onto.equals(Material.STONE) || onto.equals(Material.GRAVEL) || onto.equals(Material.ANDESITE) || onto.equals(Material.GRANITE) || onto.equals(Material.DIORITE) || onto.equals(Material.BLACKSTONE) || onto.equals(Material.BASALT)) if(onto.equals(Material.STONE) || onto.equals(Material.GRAVEL) || onto.equals(Material.GRAVEL) || onto.equals(Material.ANDESITE) || onto.equals(Material.GRANITE) || onto.equals(Material.DIORITE) || onto.equals(Material.BLACKSTONE) || onto.equals(Material.BASALT))
{ {
if(mat.equals(Material.POPPY) || mat.equals(Material.DANDELION) || mat.equals(Material.CORNFLOWER) || mat.equals(Material.ORANGE_TULIP) || mat.equals(Material.PINK_TULIP) || mat.equals(Material.RED_TULIP) || mat.equals(Material.WHITE_TULIP) || mat.equals(Material.FERN) || mat.equals(Material.LARGE_FERN) || mat.equals(Material.GRASS) || mat.equals(Material.TALL_GRASS)) if(mat.equals(Material.POPPY) || mat.equals(Material.DANDELION) || mat.equals(Material.CORNFLOWER) || mat.equals(Material.ORANGE_TULIP) || mat.equals(Material.PINK_TULIP) || mat.equals(Material.RED_TULIP) || mat.equals(Material.WHITE_TULIP) || mat.equals(Material.FERN) || mat.equals(Material.LARGE_FERN) || mat.equals(Material.GRASS) || mat.equals(Material.TALL_GRASS))
{ {

View File

@ -2,6 +2,7 @@ package com.volmit.iris.object;
import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantLock;
import org.bukkit.Material;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
import org.bukkit.generator.ChunkGenerator.ChunkData; import org.bukkit.generator.ChunkGenerator.ChunkData;
import org.bukkit.util.BlockVector; import org.bukkit.util.BlockVector;
@ -175,7 +176,7 @@ public class IrisDepositGenerator
int x = rng.i(af, bf); int x = rng.i(af, bf);
int z = rng.i(af, bf); int z = rng.i(af, bf);
int height = (int) (Math.round(g.getTerrainHeight(x, z))) - 5; int height = (int) (Math.round(g.getTerrainWaterHeight(x, z))) - 5;
if(height <= 0) if(height <= 0)
{ {
@ -210,7 +211,7 @@ public class IrisDepositGenerator
BlockData b = data.getBlockData(nx, ny, nz); BlockData b = data.getBlockData(nx, ny, nz);
if(!b.getMaterial().isSolid()) if(b.getMaterial().equals(Material.ICE) || b.getMaterial().equals(Material.SAND) || b.getMaterial().equals(Material.RED_SAND) || !b.getMaterial().isSolid())
{ {
continue; continue;
} }

View File

@ -71,7 +71,7 @@ public class AtomicSliver
lock.lock(); lock.lock();
block.put(h, d); block.put(h, d);
modified = true; modified = true;
if(d.getMaterial().equals(Material.AIR) || d.getMaterial().equals(Material.CAVE_AIR)) if(d.getMaterial().equals(Material.AIR) || d.getMaterial().equals(Material.CAVE_AIR))
{ {
lock.unlock(); lock.unlock();
@ -176,7 +176,15 @@ public class AtomicSliver
for(int i = 0; i <= h; i++) for(int i = 0; i <= h; i++)
{ {
block.put(i, BlockDataTools.getBlockData(din.readUTF())); BlockData v = BlockDataTools.getBlockData(din.readUTF());
if(v == null)
{
block.put(i, AIR);
continue;
}
block.put(i, v);
} }
modified = false; modified = false;
lock.unlock(); lock.unlock();

View File

@ -64,7 +64,15 @@ public class AtomicSliverMap
for(int i = 0; i < 256; i++) for(int i = 0; i < 256; i++)
{ {
slivers[i].read(din); try
{
slivers[i].read(din);
}
catch(Throwable e)
{
}
} }
} }
@ -93,7 +101,7 @@ public class AtomicSliverMap
i.inject(currentData); i.inject(currentData);
} }
} }
public boolean isModified() public boolean isModified()
{ {
for(AtomicSliver i : slivers) for(AtomicSliver i : slivers)
@ -103,7 +111,7 @@ public class AtomicSliverMap
return true; return true;
} }
} }
return false; return false;
} }
} }

View File

@ -25,15 +25,6 @@ public class BlockDataTools
if(bdx == null) if(bdx == null)
{ {
Iris.warn("Unknown Block Data '" + bd + "'"); Iris.warn("Unknown Block Data '" + bd + "'");
try
{
throw new RuntimeException("Unknown Block Data");
}
catch(Throwable e)
{
e.printStackTrace();
}
nulls.add(bd); nulls.add(bd);
return bdx; return bdx;
} }
@ -46,7 +37,6 @@ public class BlockDataTools
catch(Throwable e) catch(Throwable e)
{ {
Iris.warn("Unknown Block Data '" + bd + "'"); Iris.warn("Unknown Block Data '" + bd + "'");
e.printStackTrace();
} }
return null; return null;