@Override
	public HerbType type() {
		if (empty()) {
			return HerbType.HERB_PATCH;
		}

		if (dead()) {
			return HerbType.DEAD;
		}

		final int bits = bits();
		for (HerbType type : HerbType.values()) {
			if (type.valid(bits)) {
				return type;
			}
		}

		throw new IllegalArgumentException("Unknown herb type! bits:" + bits);
	}