Esempio n. 1
0
void	Ground::addRessource(e_object type, gdl::Model* model)
{
  float		x = this->_position.x;
  float		y = this->_position.y;
  float		z = this->_position.z;
  AObject*	res;

  switch (type)
    {
    case LINEMATE:
      _ressources.push_back(new Linemate(*model));
      res = _ressources.back();
      res->translate(glm::vec3(x + static_cast<ARessource*>(res)->getPaddingX(), y + 1,
			       z + static_cast<ARessource*>(res)->getPaddingY()));
      res->scale(glm::vec3(0.1f, 0.1f, 0.1f));
      res->rotate(glm::vec3(0,1,0), 180);
      break ;
    case DERAUMERE:
      _ressources.push_back(new Deraumere(*model));
      res = _ressources.back();
      res->translate(glm::vec3(x + static_cast<ARessource*>(res)->getPaddingX(), y + 1,
			       z + static_cast<ARessource*>(res)->getPaddingY()));
      res->scale(glm::vec3(0.02f, 0.02f, 0.02f));
      res->rotate(glm::vec3(0,1,0), 180);
      break ;
    case SIBUR:
      _ressources.push_back(new Sibur(*model));
      res = _ressources.back();
      res->translate(glm::vec3(x + static_cast<ARessource*>(res)->getPaddingX(), y + 1,
			       z + static_cast<ARessource*>(res)->getPaddingY()));
      res->scale(glm::vec3(0.1f, 0.1f, 0.1f));
      res->rotate(glm::vec3(0,1,0), 180);
      res->translate(glm::vec3(0,0.25f,0));
      break ;
    case MENDIANE:
      _ressources.push_back(new Mendiane(*model));
      res = _ressources.back();
      res->translate(glm::vec3(x + static_cast<ARessource*>(res)->getPaddingX(), y + 1,
			       z + static_cast<ARessource*>(res)->getPaddingY()));
      res->scale(glm::vec3(0.1f, 0.1f, 0.1f));
      break ;
    case PHIRAS:
      _ressources.push_back(new Phiras(*model));
      res = _ressources.back();
      res->translate(glm::vec3(x + static_cast<ARessource*>(res)->getPaddingX(), y + 1,
			       z + static_cast<ARessource*>(res)->getPaddingY()));
      res->scale(glm::vec3(0.02f, 0.02f, 0.02f));
      break ;
    case THYSTANE:
      _ressources.push_back(new Thystane(*model));
      res = _ressources.back();
      res->translate(glm::vec3(x + static_cast<ARessource*>(res)->getPaddingX(), y + 1,
			       z + static_cast<ARessource*>(res)->getPaddingY()));
      res->scale(glm::vec3(0.1f, 0.1f, 0.1f));
      break ;
    case FOODR:
      _ressources.push_back(new Food(*model));
      res = _ressources.back();
      res->translate(glm::vec3(x + static_cast<ARessource*>(res)->getPaddingX(), y + 1,
			       z + static_cast<ARessource*>(res)->getPaddingY()));
      res->scale(glm::vec3(0.1f, 0.1f, 0.1f));
      res->rotate(glm::vec3(1,0,0), 180);
      res->translate(glm::vec3(0,0.25f,0));
      break ;
    default:
      break ;
    };
}