11 using namespace bl::gui;
17 const std::pair<std::string, core::map::Collision> source[] = {
18 {
"EditorResources/Collisions/all.png", C::Open},
19 {
"EditorResources/Collisions/none.png", C::Blocked},
20 {
"EditorResources/Collisions/noTop.png", C::TopClosed},
21 {
"EditorResources/Collisions/noRight.png", C::RightClosed},
22 {
"EditorResources/Collisions/noBottom.png", C::BottomClosed},
23 {
"EditorResources/Collisions/noLeft.png", C::LeftClosed},
24 {
"EditorResources/Collisions/topRight.png", C::TopRightOpen},
25 {
"EditorResources/Collisions/bottomRight.png", C::BottomRightOpen},
26 {
"EditorResources/Collisions/bottomLeft.png", C::BottomLeftOpen},
27 {
"EditorResources/Collisions/topLeft.png", C::TopLeftOpen},
28 {
"EditorResources/Collisions/topBottom.png", C::TopBottomOpen},
29 {
"EditorResources/Collisions/leftRight.png", C::LeftRightOpen},
30 {
"EditorResources/Collisions/top.png", C::TopOpen},
31 {
"EditorResources/Collisions/right.png", C::RightOpen},
32 {
"EditorResources/Collisions/bottom.png", C::BottomOpen},
33 {
"EditorResources/Collisions/left.png", C::LeftOpen},
34 {
"EditorResources/Collisions/water.png", C::SurfRequired},
35 {
"EditorResources/Collisions/fall.png", C::WaterfallRequired},
36 {
"EditorResources/Collisions/ledge.png", C::LedgeHop}};
37 constexpr std::size_t nColTypes = std::extent<decltype(source)>::value;
42 content = Box::create(LinePacker::create(LinePacker::Vertical, 6));
44 Box::Ptr row = Box::create(LinePacker::create(LinePacker::Horizontal, 4));
45 RadioButton::Group* group =
nullptr;
46 for (
unsigned int i = 0; i < nColTypes; ++i) {
47 const auto& pair = source[i];
49 auto txtr = ImageManager::load(pair.first);
50 Image::Ptr img = Image::create(txtr);
51 img->scaleToSize({64, 64});
54 if (group ==
nullptr) but->setValue(
true);
55 but->getSignal(Event::LeftClicked).willAlwaysCall([
this, &pair](
const Event&, Element*) {
58 group = but->getRadioGroup();
61 if ((i + 1) % 4 == 0) {
62 content->pack(row,
true,
false);
63 row = Box::create(LinePacker::create(LinePacker::Horizontal, 4));
Collision
The different types of collisions in maps.
All classes and functionality used for implementing the game editor.
static Ptr create(bl::gui::Element::Ptr child, bl::gui::RadioButton::Group *group=nullptr)
Creates a new HighlightRadioButton.
std::shared_ptr< HighlightRadioButton > Ptr
Pointer to a HighlightRadioButton.
bl::gui::Element::Ptr getContent()
Returns GUI content to pack.
Collisions()
Loads collision images and builds the gui content.
core::map::Collision selected() const
Returns the currently selected collision.