TazGraph Project v0.1.0
Loading...
Searching...
No Matches
PortSlotComponent.h
1#pragma once
2
3#include "../../../Components.h"
4
5// todo this can be generally in flexbox
7{
8public:
9 TransformComponent* transform = nullptr;
10
12 {
13
14 }
15
17
18 }
19
20 void init() override {
21 transform = &entity->GetComponent<TransformComponent>();
22 }
23
24 void update(float deltaTime) override {
25 Entity* parentEntity = entity->getParentEntity();
26 if (!parentEntity || !parentEntity->hasComponent<PortComponent>()) {
27 return;
28 }
29
30 PortComponent& parentPort = parentEntity->GetComponent<PortComponent>();
31
32 // Find our index in the parent's portSlots vector
33 int myIndex = parentPort.getSlotIndex(static_cast<EmptyEntity*>(entity));
34 if (myIndex == -1) {
35 return;
36 }
37
38 // Calculate and set our position
39 glm::vec3 newPosition = parentPort.getSlotPosition(myIndex);
40 transform->bodyCenter = newPosition;
41 }
42
43 void draw(size_t v_index, PlaneColorRenderer& batch, TazGraphEngine::Window& window) {
44
45 }
46
47 std::string GetComponentName() override {
48 return "PortSlotComponent";
49 }
50
51 void showGUI() override {
52 ImGui::Separator();
53 }
54
55};
Definition GECS.h:125
Definition GECSEntity.h:7
Definition GECS.h:152
Definition PlaneColorRenderer.h:19
Definition PortComponent.h:7
Definition PortSlotComponent.h:7
Definition Window.h:18
Definition TransformComponent.h:6