A menu that organizes its parents' children (in the node) either horizontally or vertically.
More...
|
| | Menu (float gapSize, int widthSize, int heightSize, menuType typeMenu) |
| | Menu () |
| | Menu (const Menu &)=default |
| auto | operator= (const Menu &) -> Menu &=default |
| | ~Menu () override=default |
| | Menu (Menu &&other) noexcept=default |
| auto | operator= (Menu &&other) noexcept -> Menu &=default |
| auto | clone () const -> std::unique_ptr< GameObject > override |
| | makes a copy a GameObject even if it's held polymorphically
|
| auto | componentShowMenu () -> void override |
| auto | onUpdate (float dt) -> void override |
| | called once every frame.
|
| auto | endWindow () -> void override |
| | currently unused, but intended to but was assumed to be necessary for a proper ImGui editor
|
| auto | onRender () -> void override |
| | called every frame after update has been called for every object.
|
| auto | onEnterEngine () -> void override |
| | hook that is called when a GameObject enters the Engine tree.
|
| auto | load (const Stream &stream) -> void override |
| | Implementations will load the state of a GameObject from a th::Json Object.
|
| auto | save (Stream &stream) const -> void override |
| | Implementations will load the state of a GameObject to a th::Json object.
|
| auto | width () const -> int |
| | Returns the maximum width of the menu.
|
| auto | sizeWidth () const -> int |
| | Returns the current width of the menu.
|
| auto | height () const -> int |
| | Returns the height of the menu.
|
| auto | setOrigin (Vector4D newOrigin) -> void |
| | Changes the origin point to a new value.
|
| auto | setOrigin (float x, float y) -> void |
| | Changes the origin point to a new value.
|
| auto | setOriginX (float x) -> void |
| | Sets just the X of the origin point.
|
| auto | setOriginY (float y) -> void |
| | Sets just the Y of the origin point.
|
| auto | moveOrigin (float x, float y) -> void |
| | Adjusts the current x and y of the origin point.
|
| auto | createEmptyButton () -> std::unique_ptr< Entity > |
| | Creates an empty button, intended for filling the board.
|
| auto | getTranslationOfIndex (int x, int y) -> Point2D |
| | Returns the translation of an item at given index.
|
| auto | pushEntityHorizontal (Entity *entity) -> void |
| | Pushes an item to the first row of a menu, intended for the cards.
|
| auto | pushEntity (Entity *entity) -> bool |
| | A universal push function that automatically fills in empty spaces The Entity should already be a child of the menu (or added as a child right after) may or may not succeed, depending on if the menu has space.
|
| auto | getType () const -> ComponentTypeEnum |
| auto | getKey () const -> Key override |
| | Generates a unique Key that corresponds to the GameObject.
|
| auto | showMenu () -> void override |
| | Called before update each frame, for calling ImGui editor code relevant to the gameObject.
|
| auto | getEntityParent () const -> Entity * |
| | gets the parent as an Entity.
|
| auto | pop () const -> std::unique_ptr< Component > |
| | Removes the Component from its Entity parent, and gives ownership to the caller.
|
| | GameObject (std::string typeName, gobj::Type parentType, gobj::Type type) |
| | constructor for gameobject.
|
| virtual | ~GameObject () |
| | destructor for GameObject.
|
| | GameObject (const GameObject &other) |
| | Copy Constructor.
|
| auto | operator= (const GameObject &other) -> GameObject & |
| | copy assignment operator
|
| | GameObject (GameObject &&other) noexcept |
| | Move constructor.
|
| auto | operator= (GameObject &&other) noexcept -> GameObject & |
| | Move assignment operator.
|
| virtual auto | update (float dt) -> void |
| | called once every frame.
|
| virtual auto | render () -> void |
| | called every frame after update has been called for every object.
|
| virtual auto | destroy () -> void |
| | Marks an GameObject to be destroyed.
|
| virtual auto | onSceneStart (const std::string &sceneName) -> void |
| | Hook that is called before the first frame a scene is run, but after the entire scene is loaded into the engine To receive the hook, simply override the function in your class.
|
| virtual auto | onSceneExit (const std::string &sceneName) -> void |
| | Hook that is called right before a scene is unloaded To receive the hook, simply override the function in your class.
|
| virtual auto | for_each (std::function< void(GameObject &)> func) -> void |
| | applies a function to every child.
|
| virtual auto | for_each (std::function< void(const GameObject &)> func) const -> void |
| | applies a const function to every child.
|
| virtual auto | getParent () const -> GameObject * |
| | Gets the parent of a GameObject.
|
| virtual auto | parentTo (GameObject *newParent) -> bool |
| | Sets the GameObject as a child of another GameObject.
|
| auto | getInternalParent () const -> GameObject * |
| | returns the actual owning parent of the GameObject
|
| virtual auto | addChild (std::unique_ptr< GameObject > newChild) -> bool |
| | Adds a child to a GameObject.
|
| auto | addChildLua (std::unique_ptr< GameObject > &newChild) -> bool |
| | for lua
|
| auto | destroyed () const -> bool |
| auto | getUUID () const -> gobj::UUID |
| auto | coolerGetUUID () const -> unsigned int |
| auto | isUUID (gobj::UUID compareUUID) const -> bool |
| auto | getName () const -> const std::string & |
| | Gets the type of the object as a string.
|
| auto | getNickname () const -> const std::string & |
| | Gets the nickname (custom, writable name) of a GameObject.
|
| auto | getFormattedName () const -> const std::string & |
| | combines a GameObjects Type, Nickname, and UUID into one string, for use with logging.
|
| auto | nameEquals (const std::string &compareString) const -> bool |
| | check whether a GameObjects typeName is equivilent to a given string.
|
| auto | isType (gobj::Type otherType) const -> bool |
| | check whether the GameObject is the same as a given type.
|
| auto | getObjectType () const -> gobj::Type |
| | gets the internal type of the GameObject, as an enum
|
| auto | setNickname (const std::string &newNickname) -> void |
| | sets the GameObjects nickname.
|
| auto | updates () const -> bool |
| auto | renders () const -> bool |
| auto | receivesMessages () const -> bool |
| auto | isActive () const -> bool |
| virtual auto | setShouldUpdate (bool _shouldUpdate) -> void |
| | set whether the GameObject should update every frame, and whether all of it's children should update every frame
|
| virtual auto | setShouldRender (bool _shouldRender) -> void |
| | set whether the GameObject should render every frame, and whether all of it's children should render every frame
|
| virtual auto | setShouldReceiveMessages (bool _shouldReceiveMessages) -> void |
| | set whether the GameObject should Receive Messags, and whether all of it's children should receive messages
|
| auto | setActive (bool shouldBeActive) -> void |
| | set the GameObject should update, render, and receive messages
|
| auto | getGameObjectJson () const -> json |
| | Used for serializing GameObjects.
|
| auto | setGameObjectJson (const json &stream) -> void |
| | used for deserializing GameObjects
|
|
makes a Node from Factory and adds it to the menu.
Handles adding the Node Tree as a child of the Menu's entity parent
|
| float | gapBetweenObjects = 0.01f |
| | How much visual space is put between objects in the menu.
|
| int | maxItemsWide = 3 |
| | How wide menu grid is (how many objects it can hold horizontally).
|
| int | maxItemsHeight = 3 |
| | How tall the menu grid is (how many objects it can hold vertically).
|
| Vector4D | originPoint {0.f, 0.f, 0, 1} |
| Vector4D | menuScale {1.f, 1.f, 0.f, 0.f} |
| menuType | type = menuType::mDefault |
| | How to tell if the menu wraps.
|
| PositioningInformation | posInfo |
| | Used to keep track of where items in the menu should be put in the game.
|
| std::vector< std::vector< Entity * > > | buttons |
| | The managed items/entities for the menu.
|
| auto | makeAndPush (const std::string &name) -> void |
| auto | removeEntity (int x, int y) -> void |
| | Removes a specific entity at given index.
|
| auto | removeEntity (Entity *entity) -> void |
| | Removes a specific entity from menu.
|
| auto | getAboveEntity (Entity *entity) -> Entity * |
| | When given an entity, it will return the one above in the menu.
|
| auto | getBelowEntity (Entity *entity) -> Entity * |
| | When given an entity, it will return the one below in the menu.
|
| auto | getLeftEntity (Entity *entity) -> Entity * |
| | When given an entity, it will return the one left in the menu.
|
| auto | getRightEntity (Entity *entity) -> Entity * |
| | When given an entity, it will return the one right in the menu.
|
| auto | getMenuElementPosition (Entity *entity) const -> std::pair< int, int > |
| | Returns the index of the entity in the menu.
|
| auto | updateMenuChildren () -> void |
| | Resizes menu in memory, allocates new items, and then calls compact menu.
|
| auto | compactMenu () -> void |
| | Visually shrinks the menu, intended for when an element gets removed.
|
| auto | horizontalCompactMenu () -> void |
| | Visually shrinks the menu, intended for when an element gets removed from a player hand.
|
| auto | at (int x, int y) -> Entity * |
| | takes in a position, and gets the entity in the position, blocking overflow by locking to edges, or wrapping, based on type of menu
|
| auto | getButtonRow (int x) const -> std::vector< Entity * > |
| | Returns every item in a given row.
|
| auto | getButtonColumn (int y) const -> std::vector< Entity * > |
| | Returns every item in a given column.
|
| auto | clear () const -> void |
| | Deletes all entities inside of the grid.
|
| auto | fillMenu () -> void |
| auto | getChildScale () const -> Vector4D |
| | Returns what the scale of a child inside the menu should be.
|
| auto | setGapBetweenObjects (float newGap) -> void |
| | Manually sets the gaps between objects.
|
| auto | drawDebugLines (AffineMatrix transform) -> void |
| auto | getChildTranslation (Entity *child) const -> Vector4D |
| | Returns where a child inside the menu should be positioned.
|
| auto | linkMessages () -> void |
| auto | returnWrappedMenuPosition (int x, int y) -> Point2D |
| | Returns the menu position while accounting for wrapped logic, intended as a helper function for returnMenuPosition.
|
| auto | returnDefaultMenuPosition (int x, int y) -> Point2D |
| | Returns the menu position while accounting for default logic, intended as a helper function for returnMenuPosition.
|
| auto | returnButtonIndexWrapped (int x, int y) -> Entity * |
| | Returns the menu position while accounting for wrapped logic, intended as a helper function for getButtonEntity.
|
| auto | returnButtonIndexDefault (int x, int y) -> Entity * |
| | Returns the menu position while accounting for default logic, intended as a helper function for getButtonEntity.
|
| auto | getButtonPosition (Entity *ent) -> std::pair< int, int > |
| | takes in the entity and returns the index (x and y) of where it is in the menu
|
| void | recalculatePositioning () |
| | Recalculates where children inside the menu should be positioned + scaled in the game.
|
| void | recalculateHorizontalPositioning () |
| | Recalculates where children inside the menu should be positioned + scaled in the game.
|
| auto | repositionItems (const std::vector< Entity * > &ent, int column) -> void |
| | Visually arranges the entities in a given column, intended as a helper function for compactMenu.
|
| auto | repositionHorizontalItems (const std::vector< Entity * > &ent, int column) -> void |
| | Visually arranges the entities in a given column, intended as a helper function for compactMenu.
|
A menu that organizes its parents' children (in the node) either horizontally or vertically.
Inherently supports 2D grids. Typically used with Button s and a Selector, but doesn't depend on them in any way
- Author
Bryley Elder (bryle.nosp@m.y.el.nosp@m.der@d.nosp@m.igip.nosp@m.en.ed.nosp@m.u) pair programmed initial set-up, filled out in-depth functionality Aidan Hartman (aidan.nosp@m..har.nosp@m.tman@.nosp@m.digi.nosp@m.pen.e.nosp@m.du) Assisted Bryley with functionality, bug clean-up Ori Balashov (ori.b.nosp@m.alas.nosp@m.hov@d.nosp@m.igip.nosp@m.en.ed.nosp@m.u) pair programmed initial set-up
- Date
- 2026 / 01 / 23
- Copyright
- (c) Digipen 2026