52 lines
1.2 KiB
ActionScript
52 lines
1.2 KiB
ActionScript
|
|
void setShaderComponent(any@ shaderComponent_data, any@ shader_data) {
|
|
string shader;
|
|
shader_data.retrieve(shader);
|
|
|
|
ShaderComponent shaderComponent;
|
|
shaderComponent_data.retrieve(shaderComponent);
|
|
|
|
shaderComponent.setShader(shader);
|
|
}
|
|
|
|
void renderShaderComponent(any@ data) {
|
|
Entity entity;
|
|
data.retrieve(entity);
|
|
|
|
if (!entity.hasShaderComponent())
|
|
return;
|
|
|
|
ShaderComponent shaderComponent = entity.getShaderComponent();
|
|
|
|
if (shaderComponent.hasShader) {
|
|
UI::drawIcon("shader", 32);
|
|
} else {
|
|
UI::drawIcon("empty", 32);
|
|
}
|
|
UI::dragDropTarget("SHADER", any(shaderComponent), setShaderComponent);
|
|
|
|
if (shaderComponent.hasShader) {
|
|
UI::sameline();
|
|
UI::space();
|
|
UI::sameline();
|
|
|
|
UI::titleCenterY(shaderComponent.getShader(), 32);
|
|
UI::dragDropTarget("SHADER", any(shaderComponent), setShaderComponent);
|
|
}
|
|
|
|
UI::space(20, 20);
|
|
|
|
if (UI::button("Clear")) {
|
|
shaderComponent.clear();
|
|
}
|
|
}
|
|
|
|
void removeShaderComponent(any@ entity) {
|
|
Entity ent;
|
|
entity.retrieve(ent);
|
|
|
|
if (UI::menuItem("Remove")) {
|
|
ent.removeShaderComponent();
|
|
}
|
|
}
|