| 19 | namespace Star { |
| 20 | |
| 21 | TeamBar::TeamBar(MainInterface* mainInterface, UniverseClientPtr client) { |
| 22 | m_mainInterface = mainInterface; |
| 23 | m_client = client; |
| 24 | |
| 25 | m_guiContext = GuiContext::singletonPtr(); |
| 26 | auto assets = Root::singleton().assets(); |
| 27 | |
| 28 | m_teamInvite = make_shared<TeamInvite>(this); |
| 29 | m_teamInvitation = make_shared<TeamInvitation>(this); |
| 30 | m_teamMemberMenu = make_shared<TeamMemberMenu>(this); |
| 31 | |
| 32 | m_nameStyle = assets->json("/interface.config:teamBarNameStyle"); |
| 33 | m_nameStyle.fontSize = assets->json("/interface.config:font.nameSize").toInt(); |
| 34 | m_nameOffset = jsonToVec2F(assets->json("/interface.config:nameOffset")); |
| 35 | |
| 36 | GuiReader reader; |
| 37 | |
| 38 | reader.registerCallback("inviteButton", [this](Widget*) { inviteButton(); }); |
| 39 | reader.registerCallback("showSelfMenu", [this](Widget*) { |
| 40 | if (!m_client->teamClient()->isMemberOfTeam()) |
| 41 | return; |
| 42 | auto position = jsonToVec2I(Root::singleton().assets()->json("/interface/windowconfig/teambar.config:selfMenuOffset")); |
| 43 | position[1] += windowHeight() / m_guiContext->interfaceScale(); |
| 44 | showMemberMenu(m_client->mainPlayer()->clientContext()->playerUuid(), position); |
| 45 | }); |
| 46 | |
| 47 | reader.construct(assets->json("/interface/windowconfig/teambar.config:paneLayout"), this); |
| 48 | |
| 49 | m_healthBar = fetchChild<ProgressWidget>("healthBar"); |
| 50 | m_energyBar = fetchChild<ProgressWidget>("energyBar"); |
| 51 | m_foodBar = fetchChild<ProgressWidget>("foodBar"); |
| 52 | m_nameLabel = fetchChild<LabelWidget>("name"); |
| 53 | |
| 54 | m_energyBarColor = jsonToColor(assets->json("/interface/windowconfig/teambar.config:energyBarColor")); |
| 55 | m_energyBarRegenMixColor = jsonToColor(assets->json("/interface/windowconfig/teambar.config:energyBarRegenMixColor")); |
| 56 | m_energyBarUnusableColor = jsonToColor(assets->json("/interface/windowconfig/teambar.config:energyBarUnusableColor")); |
| 57 | |
| 58 | m_energyBar->setColor(m_energyBarColor); |
| 59 | |
| 60 | auto playerPortrait = fetchChild<PortraitWidget>("portrait"); |
| 61 | playerPortrait->setEntity(as<PortraitEntity>(m_client->mainPlayer())); |
| 62 | |
| 63 | updatePlayerResources(); |
| 64 | disableScissoring(); |
| 65 | } |
| 66 | |
| 67 | bool TeamBar::sendEvent(InputEvent const& event) { |
| 68 | if (event.is<MouseButtonDownEvent>() |
nothing calls this directly
no test coverage detected