WorldSim  inDev
2D tile-based sandbox RPG with procedurally generated fantasy world simulator 🌏
Menu_Biome_Details.hpp
Go to the documentation of this file.
1 #pragma once
2 #ifndef WORLDSIM_MENU_BIOME_DETAILS_HPP
3 #define WORLDSIM_MENU_BIOME_DETAILS_HPP
4 
5 /* WorldSim: Menu_Biome_Details.hpp
6  #include "Menu_Biome_Details.hpp"
7 
8  Menu showing details of a particular selected biome, stuff like Flora and Creatures which can be found here.
9 */
10 
11 #include <Graphics/GUI/GUI_Table.hpp>
12 #include <Container/Table/Table.hpp>
13 #include <Data/DataTools.hpp>
14 
15 class Menu_Biome_Details: public GUI_Interface
16 {
17  public:
18  GUI_Manager guiManager;
19 
20  /* Colours / theme. */
21  ColourRGB <unsigned char> cNormal;
22  ColourRGB <unsigned char> cSelected;
23  ColourRGB <unsigned char> cDropPanel;
24  ColourRGB <unsigned char> cHighlight;
25 
26  Wildcat::Font* font;
27 
28  /* Menu for investigating an individual biome */
29  GUI_Button buttonClose;
30 
32 
34  {
35  selectedBiome=0;
36  }
37 
38  void setFont(Wildcat::Font* _font)
39  {
40  font = _font;
41  guiManager.setFont(_font);
42  }
43 
44  void init()
45  {
46  /* Initialise theme. */
47  cNormal.set(220,220,220);
48  cSelected.set(180,180,180);
49  cDropPanel.set(170,170,170);
50  cHighlight.set(255,160,160);
51 
52  buttonClose.text="X";
53  buttonClose.setColours(cNormal,cHighlight,0);
54  buttonClose.active=true;
55 
56  active = false;
57 
58  guiManager.clear();
59  guiManager.add(&buttonClose);
60 
61  eventResize();
62  }
63 
64  void render()
65  {
66  if ( active )
67  {
68  if (selectedBiome==0) { return; }
69 
70  // if (selectedBiome->isGenerated == false)
71  // {
72  // std::cout<<"Not generated\n";
73  // selectedBiome->generate();
74  // }
75 
76  Renderer::placeColour4a(150,150,150,200,panelX1,panelY1,panelX2,panelY2);
77 
78  font8x8.drawText("Biome Details Menu",panelX1,panelY2-20,panelX2,panelY2-5, true, true);
79 
80  //std::cout<<"nflora: "<<selectedBiome->vFlora.size()<<"\n";
81  std::string strFlora = "Flora:\n";
82  // for (int i=0;i<selectedBiome->vFlora.size();++i)
83  // {
84  // strFlora+=selectedBiome->vFlora(i)->name;
85  // }
86 
87  Vector <Flora*> * vFlora2 = selectedBiome->getAllFloraTypes();
88  //std::cout<<"nflora2: "<<vFlora2->size()<<"\n";
89 
90  for (int i=0;i<vFlora2->size();++i)
91  {
92  strFlora+=(*vFlora2)(i)->name+"\n";
93  }
94  delete vFlora2;
95 
96  strFlora+="\n\nCreatures:\n";
97 
98  Vector <Creature_Species*> * vCreature = selectedBiome->getAllCreatureTypes();
99 
100  for (int i=0;i<vCreature->size();++i)
101  {
102  strFlora+=(*vCreature)(i)->name+"\n";
103  }
104  delete vCreature;
105 
106  font8x8.drawText("Menu text.\n"+strFlora,panelX1,panelY1,panelX2,panelY2-25, false, false, false, 0, 0, 0, 255, 2);
107 
108  guiManager.render();
109  }
110  }
111 
112  bool keyboardEvent (Keyboard* _keyboard)
113  {
114  return false;
115  }
116 
117  bool mouseEvent (Mouse* _mouse)
118  {
119  if ( active )
120  {
121  /* If the guiManager did something with the mouse event. */
122  if(guiManager.mouseEvent(_mouse)==true)
123  {
124  }
125  if (buttonClose.clicked==true)
126  {
127  active=false;
128  buttonClose.unclick();
129  }
130  }
131  return false;
132  }
133 
134  void eventResize()
135  {
136  buttonClose.setPanel(panelX2-40, panelY2-40, panelX2-20, panelY2-20);
137  }
138 
139 };
140 
141 
142 #endif
Definition: Menu_Biome_Details.hpp:15
ColourRGB< unsigned char > cHighlight
Definition: Menu_Biome_Details.hpp:24
ColourRGB< unsigned char > cNormal
Definition: Menu_Biome_Details.hpp:21
ColourRGB< unsigned char > cSelected
Definition: Menu_Biome_Details.hpp:22
Vector< Creature_Species * > * getAllCreatureTypes()
Definition: World_Biome.cpp:342
GUI_Button buttonClose
Definition: Menu_Biome_Details.hpp:29
void eventResize()
Definition: Menu_Biome_Details.hpp:134
GUI_Manager guiManager
Definition: Menu_Biome_Details.hpp:18
Definition: World_Biome.hpp:46
bool mouseEvent(Mouse *_mouse)
Definition: Menu_Biome_Details.hpp:117
Wildcat::Font font8x8
Definition: Driver_GlobalObjects.hpp:55
bool keyboardEvent(Keyboard *_keyboard)
Definition: Menu_Biome_Details.hpp:112
void init()
Definition: Menu_Biome_Details.hpp:44
World_Biome * selectedBiome
Definition: Menu_Biome_Details.hpp:31
void setFont(Wildcat::Font *_font)
Definition: Menu_Biome_Details.hpp:38
void render()
Definition: Menu_Biome_Details.hpp:64
Menu_Biome_Details()
Definition: Menu_Biome_Details.hpp:33
Wildcat::Font * font
Definition: Menu_Biome_Details.hpp:26
Vector< Flora * > * getAllFloraTypes()
Definition: World_Biome.cpp:337
ColourRGB< unsigned char > cDropPanel
Definition: Menu_Biome_Details.hpp:23