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); }
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()); } } } }
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); }