public override bool ShouldRenderFace(BlockFace face, Block neighbor) { if (neighbor.BlockMaterial == Material.Water) { var neighborLevel = neighbor.BlockState.GetTypedValue(LEVEL); if (neighborLevel < BlockState.GetTypedValue(LEVEL)) { return(true); } return(false); } if (neighbor.IsWater) { return(false); } if (neighbor.Solid && (!neighbor.Transparent || neighbor.BlockMaterial.IsOpaque)) { return(false); } if (neighbor.Solid && neighbor.Transparent && !neighbor.IsFullCube) { return(true); } //else if (neighbor.Transparent) return(base.ShouldRenderFace(face, neighbor)); }
public override bool CanCollide() { return(!BlockState.GetTypedValue(OPEN)); }
private int GetLevel(BlockState state) { return(7 - (state.GetTypedValue(LEVEL) & 0x7)); }