95 if (fileName.empty() ==
true)
throw ExceptionBase(
"Could not save file. No filename known");
97 Tools::getPathName(fileName),
98 Tools::getFileName(fileName)
107 class OnEnvMapSave:
public virtual Action
110 void performAction()
override {
112 envMapEditorTabController->view->saveFile(
113 envMapEditorTabController->popUps->getFileDialogScreenController()->getPathName(),
114 envMapEditorTabController->popUps->getFileDialogScreenController()->getFileName()
117 envMapEditorTabController->showErrorPopUp(
"Warning", (
string(exception.what())));
119 envMapEditorTabController->popUps->getFileDialogScreenController()->close();
121 OnEnvMapSave(
EnvMapEditorTabController* envMapEditorTabController): envMapEditorTabController(envMapEditorTabController) {
128 vector<string> extensions = {
132 fileName.empty() ==
false?Tools::getPathName(fileName):
string(),
135 Tools::getFileName(fileName),
137 new OnEnvMapSave(
this)
149 if (node->
getId() == applyNode) {
155 if (node->
getId() == applyNode) {
177 xml+=
"<selectbox-option image=\"resources/engine/images/folder.png\" text=\"" + GUIParser::escapeQuotes(
"Prototype") +
"\" value=\"" + GUIParser::escapeQuotes(
"prototype") +
"\" />\n";
182 string(
"<dropdown-option text=\"Property\" value=\"property\" />\n")
187 Console::println(
"EnvMapEditorTabController::updateDetails(): ");
190 string(
"<template id=\"details_environmentmapping\" src=\"resources/engine/gui/template_details_environmentmapping.xml\" />\n") +
191 string(
"<template id=\"details_location\" src=\"resources/engine/gui/template_details_location.xml\" />\n")
195 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"details_environmentmapping"))->getActiveConditions().add(
"open");
196 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"details_location"))->getActiveConditions().add(
"open");
200 case 60LL * 60LL * 24LL * 1000LL:
201 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_frequency_details"))->getActiveConditions().removeAll();
205 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_frequency_details"))->getActiveConditions().removeAll();
210 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_frequency_details"))->getActiveConditions().set(
"custom");
211 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_frequency_value"))->getController()->setValue(
MutableString(
static_cast<int32_t
>(frequency)));
215 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_standard"))->getController()->setValue(
MutableString((renderPassMask & Entity::RENDERPASS_STANDARD) == Entity::RENDERPASS_STANDARD?
"1":
""));
216 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_sky"))->getController()->setValue(
MutableString((renderPassMask & Entity::RENDERPASS_SKY) == Entity::RENDERPASS_SKY?
"1":
""));
217 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_terrain"))->getController()->setValue(
MutableString((renderPassMask & Entity::RENDERPASS_TERRAIN) == Entity::RENDERPASS_TERRAIN?
"1":
""));
218 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_water"))->getController()->setValue(
MutableString((renderPassMask & Entity::RENDERPASS_WATER) == Entity::RENDERPASS_WATER?
"1":
""));
219 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_postprocessing"))->getController()->setValue(
MutableString((renderPassMask & Entity::RENDERPASS_POST_POSTPROCESSING) == Entity::RENDERPASS_POST_POSTPROCESSING?
"1":
""));
222 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"location_translation_x"))->getController()->setValue(
MutableString(environmentMapTranslation.getX()));
223 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"location_translation_y"))->getController()->setValue(
MutableString(environmentMapTranslation.getY()));
224 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"location_translation_z"))->getController()->setValue(
MutableString(environmentMapTranslation.getZ()));
226 Console::println(
string(
"EnvMapEditorTabController::updateDetails(): An error occurred: ") + exception.what());;
233 if (prototype ==
nullptr)
return;
238 int64_t frequency = -1LL;
239 switch (Integer::parse(required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_frequency"))->getController()->getValue().getString())) {
241 frequency = 60LL * 60LL * 24LL * 1000LL;
247 frequency = Integer::parse(required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_frequency_value"))->getController()->getValue().getString());
251 prototype->setEnvironmentMapTimeRenderUpdateFrequency(frequency);
254 int32_t renderPassMask = 0;
255 renderPassMask+= required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_standard"))->getController()->getValue().equals(
"1") ==
true?Entity::RENDERPASS_STANDARD:0;
256 renderPassMask+= required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_sky"))->getController()->getValue().equals(
"1") ==
true?Entity::RENDERPASS_SKY:0;
257 renderPassMask+= required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_terrain"))->getController()->getValue().equals(
"1") ==
true?Entity::RENDERPASS_TERRAIN:0;
258 renderPassMask+= required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_water"))->getController()->getValue().equals(
"1") ==
true?Entity::RENDERPASS_WATER:0;
259 renderPassMask+= required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_postprocessing"))->getController()->getValue().equals(
"1") ==
true?Entity::RENDERPASS_POST_POSTPROCESSING:0;
261 prototype->setEnvironmentMapRenderPassMask(renderPassMask);
263 Console::println(
string(
"EnvMapEditorTabController::applyRenderPasses(): An error occurred: ") + exception.what());;
270 Vector3 environmentMapTranslation(
271 Float::parse(required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"location_translation_x"))->getController()->getValue().getString()),
272 Float::parse(required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"location_translation_y"))->getController()->getValue().getString()),
273 Float::parse(required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"location_translation_z"))->getController()->getValue().getString())
277 Console::println(
string(
"EnvMapEditorTabController::applyLocation(): An error occurred: ") + exception.what());;
const string & getFileName()
GUI element node conditions.
GUI node controller base class.
GUI screen node that represents a screen that can be rendered via GUI system.
GUINode * getNodeById(const string &nodeId)
Get GUI node by id.
std::exception Exception
Exception base class.