public Integer getValue(int x, int y, int z)
	{
		VariableResolver resolver = this.resolver.clone();
		for (Enumeration<String> e = modifiers.keys(); e.hasMoreElements();)
		{
			String key = e.nextElement();
			resolver.setVariable(key, modifiers.get(key).getValue(x, y, z));
		}
		resolver.setVariable("xPos", x);
		resolver.setVariable("yPos", y);
		resolver.setVariable("zPos", z);
		
		if (assignments != null)
		{
			for (Assignment assignment : assignments)
			{
				assignment.evaluate(rng, resolver);
			}
		}
		for (int i = 0; i < drawConstraints.size(); i++)
		{
			if (drawConstraints.get(i) == null || drawConstraints.get(i).evaluate(rng, resolver).intValue() != 0)
			{
				return typeIDs.get(i);
			}
		}
		return null;
	}