93 if (fileName.empty() ==
true)
throw ExceptionBase(
"Could not save file. No filename known");
95 Tools::getPathName(fileName),
96 Tools::getFileName(fileName)
105 class OnEnvMapSave:
public virtual Action
108 void performAction()
override {
110 envMapEditorTabController->view->saveFile(
111 envMapEditorTabController->popUps->getFileDialogScreenController()->getPathName(),
112 envMapEditorTabController->popUps->getFileDialogScreenController()->getFileName()
115 envMapEditorTabController->showInfoPopUp(
"Warning",
string(exception.what()));
117 envMapEditorTabController->popUps->getFileDialogScreenController()->close();
119 OnEnvMapSave(
EnvMapEditorTabController* envMapEditorTabController): envMapEditorTabController(envMapEditorTabController) {
126 vector<string> extensions = {
130 fileName.empty() ==
false?Tools::getPathName(fileName):
string(),
133 Tools::getFileName(fileName),
135 new OnEnvMapSave(
this)
140 showInfoPopUp(
"Warning",
"This command is not supported yet");
157 if (node->
getId() == applyNode) {
163 if (node->
getId() == applyNode) {
180 int tooltipLeft, tooltipTop;
196 xml+=
"<selectbox-option image=\"resources/engine/images/folder.png\" text=\"" + GUIParser::escape(
"Prototype") +
"\" value=\"" + GUIParser::escape(
"prototype") +
"\" />\n";
201 string(
"<dropdown-option text=\"Property\" value=\"property\" />\n")
207 string(
"<template id=\"details_environmentmapping\" src=\"resources/engine/gui/template_details_environmentmapping.xml\" />\n") +
208 string(
"<template id=\"details_location\" src=\"resources/engine/gui/template_details_location.xml\" />\n")
212 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"details_environmentmapping"))->getActiveConditions().add(
"open");
213 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"details_location"))->getActiveConditions().add(
"open");
217 case 60LL * 60LL * 24LL * 1000LL:
218 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_frequency_details"))->getActiveConditions().removeAll();
222 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_frequency_details"))->getActiveConditions().removeAll();
227 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_frequency_details"))->getActiveConditions().set(
"custom");
228 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_frequency_value"))->getController()->setValue(
MutableString(
static_cast<int32_t
>(frequency)));
232 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_standard"))->getController()->setValue(
MutableString((renderPassMask & Entity::RENDERPASS_STANDARD) == Entity::RENDERPASS_STANDARD?
"1":
""));
233 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_sky"))->getController()->setValue(
MutableString((renderPassMask & Entity::RENDERPASS_SKY) == Entity::RENDERPASS_SKY?
"1":
""));
234 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_terrain"))->getController()->setValue(
MutableString((renderPassMask & Entity::RENDERPASS_TERRAIN) == Entity::RENDERPASS_TERRAIN?
"1":
""));
235 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_water"))->getController()->setValue(
MutableString((renderPassMask & Entity::RENDERPASS_WATER) == Entity::RENDERPASS_WATER?
"1":
""));
236 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_postprocessing"))->getController()->setValue(
MutableString((renderPassMask & Entity::RENDERPASS_POST_POSTPROCESSING) == Entity::RENDERPASS_POST_POSTPROCESSING?
"1":
""));
239 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"location_translation_x"))->getController()->setValue(
MutableString(environmentMapTranslation.getX()));
240 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"location_translation_y"))->getController()->setValue(
MutableString(environmentMapTranslation.getY()));
241 required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"location_translation_z"))->getController()->setValue(
MutableString(environmentMapTranslation.getZ()));
243 Console::println(
"EnvMapEditorTabController::updateDetails(): An error occurred: " +
string(exception.what()));
250 if (prototype ==
nullptr)
return;
255 int64_t frequency = -1LL;
256 switch (Integer::parse(required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_frequency"))->getController()->getValue().getString())) {
258 frequency = 60LL * 60LL * 24LL * 1000LL;
264 frequency = Integer::parse(required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_frequency_value"))->getController()->getValue().getString());
268 prototype->setEnvironmentMapTimeRenderUpdateFrequency(frequency);
271 int32_t renderPassMask = 0;
272 renderPassMask+= required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_standard"))->getController()->getValue().equals(
"1") ==
true?Entity::RENDERPASS_STANDARD:0;
273 renderPassMask+= required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_sky"))->getController()->getValue().equals(
"1") ==
true?Entity::RENDERPASS_SKY:0;
274 renderPassMask+= required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_terrain"))->getController()->getValue().equals(
"1") ==
true?Entity::RENDERPASS_TERRAIN:0;
275 renderPassMask+= required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_water"))->getController()->getValue().equals(
"1") ==
true?Entity::RENDERPASS_WATER:0;
276 renderPassMask+= required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"rendersettings_renderpass_postprocessing"))->getController()->getValue().equals(
"1") ==
true?Entity::RENDERPASS_POST_POSTPROCESSING:0;
278 prototype->setEnvironmentMapRenderPassMask(renderPassMask);
280 Console::println(
"EnvMapEditorTabController::applyRenderPasses(): An error occurred: " +
string(exception.what()));
287 Vector3 environmentMapTranslation(
288 Float::parse(required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"location_translation_x"))->getController()->getValue().getString()),
289 Float::parse(required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"location_translation_y"))->getController()->getValue().getString()),
290 Float::parse(required_dynamic_cast<GUIElementNode*>(
screenNode->
getNodeById(
"location_translation_z"))->getController()->getValue().getString())
294 Console::println(
"EnvMapEditorTabController::applyLocation(): An error occurred: " +
string(exception.what()));
const string & getFileName()
GUI element node conditions.
GUI node controller base class.
const string & getToolTip()
GUI screen node that represents a screen that can be rendered via GUI system.
GUINode * getNodeById(const string &nodeId)
Get GUI node by id.
Vector3 class representing vector3 mathematical structure and operations with x, y,...
Mutable utf8 aware string class.
std::exception Exception
Exception base class.