Beispiel #1
0
void HouseRenderer::initialize() {
	houseRendererForm = Form::create("res/menu/houseRenderer.form");
	Control* mainMenuButton = houseRendererForm->getControl("mainMenuButton");
	mainMenuButton->addListener(this, Control::Listener::CLICK);
	Control* refreshButton = houseRendererForm->getControl("refreshButton");
	refreshButton->addListener(this, Control::Listener::CLICK);
	Control* clearButton = houseRendererForm->getControl("clearButton");
	clearButton->addListener(this, Control::Listener::CLICK);
	Control* floorUpButton = houseRendererForm->getControl("floorUpButton");
	floorUpButton->addListener(this, Control::Listener::CLICK);
	Control* floorDownButton = houseRendererForm->getControl("floorDownButton");
	floorDownButton->addListener(this, Control::Listener::CLICK);
	Control* roomTypesWheel = houseRendererForm->getControl("roomTypesWheel");
	roomTypesWheel->addListener(this, Control::Listener::CLICK);

    scene = Scene::create("HouseScene");
    zoomLevel = 1;
    curTranslate = new Vector3();
    
    Camera* camera = Camera::createOrthographic(0, 0, 0, 0.25, 600);
    
    Node* cameraNode = scene->addNode();
    cameraNode->setCamera(camera);
	scene->setActiveCamera(camera);
	cameraNode->translateForward(-100);
    
    SAFE_RELEASE(camera);
    
    cameraNode->rotateZ(MATH_PI / 4);
    cameraNode->rotateX(MATH_PI / 4);
    
    resize();
    
    createHouse(false, true);
}
Beispiel #2
0
void HouseRenderer::controlEvent(Control* control, Control::Listener::EventType evt) {
    if (!strcmp("mainMenuButton", control->getId())) {
        nextRenderer = MAIN_MENU;
    } else if (!strcmp("refreshButton", control->getId())) {
        removeHouse();
        createHouse(true, true);
    } else if (!strcmp("clearButton", control->getId())) {
        removeHouse();
        createHouse(true, false);
    } else if (!strcmp("floorUpButton", control->getId())) {
        house->floorUp();
    } else if (!strcmp("floorDownButton", control->getId())) {
        house->floorDown();
	} else if (!strcmpnocase("roomTypesWheel", control->getId())) {
		if (prevRoom != NULL) {
			MenuWheel* roomTypesWheel = (MenuWheel*) control;
			MenuWheelPart* clickedPart = roomTypesWheel->getActivePart();
			if (clickedPart != NULL) {
				prevRoom->setRoomType((Room::Type)clickedPart->getId());
			}
		}
	}
}
Beispiel #3
0
void FeatureGenerator::createSetPieces(int xIndex, int zIndex, World& world, LoadScreen* loadScreen) {
  // this is the RogueMap used to place set pieces on the world
  RogueMap worldRogueMap;
  worldRogueMap.resize(ROGUE_W, ROGUE_H);
  worldRogueMap.clear();

  v2di_t mapIndex = v2di_v(xIndex, zIndex);

  loadScreen->draw(0, 6);

  // okay, let's get that WorldMap
  WorldMap &worldMap = *world.getWorldMap();

  for (int i = 0; i < 6; i++) {
    v2di_t corner;

    corner = worldRogueMap.random_room(ID_START + i, 8, 8);

    if (corner.x != 0) {
      corner = v2di_add(corner, mapIndex);
      printf("dungeon at (%d, %d)\n", corner.x, corner.y);
      DungeonFeature::createDungeon(corner, 3, world);
      //      createPlain (corner, 8, 8, worldMap);

      worldMap.swapOutToInactive();
    }
  }

  loadScreen->draw(1, 6);

  for (int i = 0; i < 1; i++) {
    v2di_t corner;

    int side = 8;

    corner = worldRogueMap.random_room(ID_START + i, side, side);

    if (corner.x != 0) {
      corner = v2di_add(corner, mapIndex);
      printf("great pyramid at (%d, %d)\n", corner.x, corner.y);
      FeatureUtil::loadWorldRegion(corner, side, world, false);
      createPyramid(side, corner, world);

      worldMap.swapOutToInactive();
    }
  }

  loadScreen->draw(2, 6);

  for (int i = 0; i < 1; i++) {
    v2di_t corner;

    int side = 16;

    corner = worldRogueMap.random_room(ID_START + i, side, side);

    if (corner.x != 0) {
      corner = v2di_add(corner, mapIndex);
      printf("village at (%d, %d)\n", corner.x, corner.y);
      createVillage(side, corner, world);

      //      createPlain (corner, side, side, worldMap);

      worldMap.swapOutToInactive();
    }
  }

  loadScreen->draw(3, 6);

  // hmmm
  for (int i = 0; i < 6; i++) {
    v2di_t corner;

    int side = 6;

    corner = worldRogueMap.random_room(ID_START + i, side, side);

    if (corner.x != 0) {
      corner = v2di_add(corner, mapIndex);
      printf("spiral garden at (%d, %d)\n", corner.x, corner.y);
      //      createPyramid (side, corner, worldMap);
      //      createPlain (corner, side, side, worldMap);

      FeatureUtil::loadWorldRegion(corner, side, world, false);

      //      height_info_t hI = getHeightInfo (corner.x * WORLD_CHUNK_SIDE, corner.y * WORLD_CHUNK_SIDE,
      //        side * WORLD_CHUNK_SIDE, side * WORLD_CHUNK_SIDE, worldMap);

      growSpiralGarden(corner, side, side, world);


      worldMap.swapOutToInactive();
    }
  }


  // CAVERNS
  for (int i = 0; i < 4; i++) {
    v2di_t corner;

    int side = 6;

    corner = worldRogueMap.random_room(ID_START + i, side, side);

    if (corner.x != 0) {
      corner = v2di_add(corner, mapIndex);
      printf("cavern system at (%d, %d)\n", corner.x, corner.y);

      FeatureUtil::loadWorldRegion(corner, side, world, false);

      drillCavern(corner, side, side, world);

      worldMap.swapOutToInactive();
    }
  }

  loadScreen->draw(4, 6);

  // castle?
  for (int i = 0; i < 1; i++) {
    v2di_t corner;

    int side = 8;

    corner = worldRogueMap.random_room(ID_START + i, side, side);

    if (corner.x != 0) {
      corner = v2di_add(corner, mapIndex);
      printf("castle at (%d, %d)\n", corner.x, corner.y);
      createPlain(corner, side, side, world);

      height_info_t hI = FeatureUtil::getHeightInfo(corner.x * WORLD_CHUNK_SIDE, corner.y * WORLD_CHUNK_SIDE,
        side * WORLD_CHUNK_SIDE, side * WORLD_CHUNK_SIDE, world);

      createCastle8x8(corner, world);

      worldMap.swapOutToInactive();
    }
  }

  loadScreen->draw(5, 6);

  for (int i = 0; i < 50; i++) {
    int side = 1;

    v2di_t corner;

    corner = worldRogueMap.random_room(ID_START + i, side, side);

    if (corner.x != 0) {
      corner = v2di_add(corner, mapIndex);

      height_info_t heightInfo = FeatureUtil::getHeightInfo(
        corner.x * WORLD_CHUNK_SIDE, corner.y * WORLD_CHUNK_SIDE,
        side * WORLD_CHUNK_SIDE, side * WORLD_CHUNK_SIDE, world);

      if (heightInfo.low > 2) {
        printf("house at (%d, %d)\n", corner.x, corner.y);

        createPlain(corner, side, side, world);

        createHouse(corner, world);
        //        createPlain (corner, 1, 1, worldMap);
        //        create1by1Tower (corner, worldMap);

        worldMap.swapOutToInactive();
      }
    }
  }

  loadScreen->draw(6, 6);
}