-
Notifications
You must be signed in to change notification settings - Fork 1
/
C_Material.cpp
76 lines (68 loc) · 2.26 KB
/
C_Material.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include "C_Material.h"
C_Material::C_Material(GameObject* gameobject, Component_Type type) : Component(type, gameobject)
{
name = "Material";
ID = App->RandomNumberGenerator.GetIntRNInRange();
}
C_Material::~C_Material()
{
}
bool C_Material::Enable()
{
active = true;
return true;
}
void C_Material::Update()
{
ImGui::PushID("active_material"); ImGui::Checkbox("", &active); ImGui::PopID(); ImGui::SameLine();
if (ImGui::CollapsingHeader("Material", ImGuiTreeNodeFlags_AllowItemOverlap))
{
ImGui::Columns(2, NULL, false);
for (int i = 0; i < gameobject->textures.size(); ++i) {
ImGui::Text("%s", gameobject->getType(gameobject->textures[i]->type));
ImGui::Text("%s", gameobject->textures[i]->path.c_str());
if (ImGui::IsItemHovered())
{
ImGui::BeginTooltip();
ImGui::PushTextWrapPos(ImGui::GetFontSize() * 35.0f);
ImGui::Text("%s", gameobject->textures[i]->path.c_str());
ImGui::EndTooltip();
}
ImGui::Text("");
ImGui::SameLine(ImGui::GetContentRegionAvailWidth() - 80); ImGui::Text("%ix%i px ", (uint)gameobject->textures[i]->size.x, (uint)gameobject->textures[i]->size.y);
ImGui::NextColumn();
ImGui::Image((ImTextureID*)gameobject->textures[i]->id, ImVec2(60, 60), ImVec2(0, 1), ImVec2(1, 0), ImVec4(1.0f, 1.0f, 1.0f, 1.0f), ImVec4(1.0f, 1.0f, 1.0f, 0.5f));
if (i == 0) {
ImGui::SameLine();
ImGui::Checkbox("Debug", &gameobject->debug_tex);
}
ImGui::NextColumn();
}
if (gameobject->textures.size() == 0) {
ImGui::Columns(2, NULL, false);
ImGui::NewLine();
ImGui::NextColumn();
ImGui::SameLine(78); ImGui::Checkbox("Debug", &gameobject->debug_tex);
}
ImGui::Columns(1);
}
if (!unFold) {
ImGui::GetStateStorage()->SetInt(ImGui::GetID(name.c_str()), 1);
unFold = true;
}
}
bool C_Material::Disable()
{
active = false;
return true;
}
void C_Material::Save(const char * _name, json & file)
{
file["Game Objects"][_name]["Components"]["Material"]["Active"] = active;
file["Game Objects"][_name]["Components"]["Material"]["Debug"] = gameobject->debug_tex;
}
void C_Material::Load(const char * _name, const json & file)
{
active = file["Game Objects"][_name]["Components"]["Material"]["Active"].get<bool>();
gameobject->debug_tex = file["Game Objects"][_name]["Components"]["Material"]["Debug"].get<bool>();
}