private void _move(double xxa, double yya, double zza) {
		if (removed) return;
		double xn = x + xxa;
		double yn = y + yya;
		double zn = z + zza;
		if (xn < 0 || yn < 0 || xn >= level.w * 16 || yn >= level.h * 16 || zn < 0 || zn > level.maxHeight) {
			if (zn < 0) z = 0;
			collide(null, xxa, yya, zza);
			return;
		}
		if (level.wallBlocks(xn - xr, yn - yr, zn, xn + xr, yn + yr, zn + zh)) {
			collide(null, xxa, yya, zza);
			return;
		}
		/*
		 * List<Entity> entities = level.getEntities(xn - xr, yn - yr, zn, xn +
		 * xr, yn + yr, zn + zh); for (int i = 0; i < entities.size(); i++) {
		 * Entity e = entities.get(i); if (e.blocksParticles()) { collide(e,
		 * xxa, yya, zza); return; } }
		 */
		x = xn;
		y = yn;
		z = zn;
		return;
	}