public ChunkFilter()
{
_options = new OptionSet () {
{ "cxr|ChunkXRange=", "Include chunks with X-chunk coord between {0:V1} and {1:V2}, inclusive. V1 or V2 may be left blank.",
(v1, v2) => {
try { _xAboveEq = Convert.ToInt32(v1); } catch (FormatException) { }
try { _xBelowEq = Convert.ToInt32(v2); } catch (FormatException) { }
} },
{ "czr|ChunkZRange=", "Include chunks with Z-chunk coord between {0:V1} and {1:V2}, inclusive. V1 or V2 may be left blank.",
(v1, v2) => {
try { _zAboveEq = Convert.ToInt32(v1); } catch (FormatException) { }
try { _zBelowEq = Convert.ToInt32(v2); } catch (FormatException) { }
} },
{ "crv|ChunkInvertXZ", "Inverts the chunk selection created by --cxr and --czr when both options are used.",
v => _invertXZ = true },
{ "ci|ChunkInclude=", "Include chunks that contain blocks of type {ID}. This option is repeatable.",
v => _includedBlocks.Add(Convert.ToInt32(v)) },
{ "cx|ChunkExclude=", "Exclude chunks that contain blocks of type {ID}. This option is repeatable.",
v => _excludedBlocks.Add(Convert.ToInt32(v)) },
{ "cia|ChunkIncludeAll", "If multiple --ci options, chunk must match all of them to be included.",
v => _includeAny = false },
{ "ciy|ChunkIncludeAny", "If multiple --ci options, chunk can match any of them to be included. (default)",
v => _includeAny = true },
{ "cxa|ChunkExcludeAll", "If multiple --cx options, chunk must match all of them to be excluded.",
v => _includeAny = false },
{ "cxy|ChunkExcludeAny", "If multiple --cx options, chunk can match any of them to be excluded. (default)",
v => _includeAny = true },
{ "cp|ChunkProbability=", "Selects a matching chunk with probability {VAL} (0.0-1.0)",
v => _prob = Convert.ToDouble(v) },
};
}