19 const bool is_paused = data.is_paused();
22 ImGui::Text(
"Status: ");
26 ImGui::TextColored(ImVec4(0.8f, 0.4f, 0.4f, 1.0f),
"Stopped");
30 ImGui::TextColored(ImVec4(0.8f, 0.8f, 0.4f, 1.0f),
"Paused");
34 ImGui::TextColored(ImVec4(0.4f, 0.8f, 0.4f, 1.0f),
"Playing");
42 if(!is_playing || is_paused)
44 if(ImGui::Button(
"Play"))
50 ImGui::SetItemTooltip(
"Start particle emission and simulation");
54 ImGui::BeginDisabled();
55 ImGui::Button(
"Play");
62 if(is_playing && !is_paused)
64 if(ImGui::Button(
"Pause"))
69 ImGui::SetItemTooltip(
"Pause particle simulation (particles remain visible)");
71 else if(is_playing && is_paused)
73 if(ImGui::Button(
"Resume"))
78 ImGui::SetItemTooltip(
"Resume particle simulation from paused state");
82 ImGui::BeginDisabled();
83 ImGui::Button(
"Pause");
92 if(ImGui::Button(
"Stop"))
97 ImGui::SetItemTooltip(
"Stop emission and clear all particles");
100 if(ImGui::Button(
"Stop and Reset"))
102 data.stop_and_reset();
105 ImGui::SetItemTooltip(
"Stop emission and clear all particles");
109 ImGui::BeginDisabled();
110 ImGui::Button(
"Stop");
112 ImGui::Button(
"Stop and Reset");
113 ImGui::EndDisabled();
119 if(!is_playing || is_paused)
121 if(ImGui::Button(
"Play(S)"))
124 data.play_sub_emitters();
128 ImGui::SetItemTooltip(
"Start particle emission and simulation (with sub emitters)");
132 ImGui::BeginDisabled();
133 ImGui::Button(
"Play(S)");
134 ImGui::EndDisabled();
140 if(is_playing && !is_paused)
142 if(ImGui::Button(
"Pause(S)"))
145 data.pause_sub_emitters();
148 ImGui::SetItemTooltip(
"Pause particle simulation (particles remain visible) (with sub emitters)");
150 else if(is_playing && is_paused)
152 if(ImGui::Button(
"Resume(S)"))
155 data.resume_sub_emitters();
158 ImGui::SetItemTooltip(
"Resume particle simulation from paused state (with sub emitters)");
162 ImGui::BeginDisabled();
163 ImGui::Button(
"Pause(S)");
164 ImGui::EndDisabled();
172 if(ImGui::Button(
"Stop(S)"))
175 data.stop_sub_emitters();
178 ImGui::SetItemTooltip(
"Stop emission and clear all particles (with sub emitters)");
181 if(ImGui::Button(
"Stop and Reset(S)"))
183 data.stop_and_reset();
184 data.stop_and_reset_sub_emitters();
187 ImGui::SetItemTooltip(
"Stop emission and clear all particles (with sub emitters)");
191 ImGui::BeginDisabled();
192 ImGui::Button(
"Stop(S)");
194 ImGui::Button(
"Stop and Reset(S)");
195 ImGui::EndDisabled();
Component that wraps the soa particle system emitter.
auto is_playing() const -> bool
auto inspect_var_properties(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result
Inspects all properties of a complex object recursively.
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override