[Issue 662] STORM-1265: Combine Terrain and Ground Textures tabs in Region/Estate floater
This commit is contained in:
@@ -199,10 +199,6 @@ BOOL LLFloaterRegionInfo::postBuild()
|
|||||||
LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_terrain.xml");
|
LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_terrain.xml");
|
||||||
mTab->addTabPanel(panel, panel->getLabel(), FALSE);
|
mTab->addTabPanel(panel, panel->getLabel(), FALSE);
|
||||||
|
|
||||||
panel = new LLPanelRegionTextureInfo;
|
|
||||||
mInfoPanels.push_back(panel);
|
|
||||||
LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_texture.xml");
|
|
||||||
mTab->addTabPanel(panel, panel->getLabel(), FALSE);
|
|
||||||
|
|
||||||
panel = new LLPanelRegionDebugInfo;
|
panel = new LLPanelRegionDebugInfo;
|
||||||
mInfoPanels.push_back(panel);
|
mInfoPanels.push_back(panel);
|
||||||
@@ -421,6 +417,23 @@ LLPanelEstateCovenant* LLFloaterRegionInfo::getPanelCovenant()
|
|||||||
return panel;
|
return panel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// static
|
||||||
|
LLPanelRegionTerrainInfo* LLFloaterRegionInfo::getPanelRegionTerrain()
|
||||||
|
{
|
||||||
|
LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance();
|
||||||
|
if (!floater)
|
||||||
|
{
|
||||||
|
llassert(floater);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
LLTabContainer* tab_container = floater->getChild<LLTabContainer>("region_panels");
|
||||||
|
LLPanelRegionTerrainInfo* panel =
|
||||||
|
dynamic_cast<LLPanelRegionTerrainInfo*>(tab_container->getChild<LLPanel>("Terrain"));
|
||||||
|
llassert(panel);
|
||||||
|
return panel;
|
||||||
|
}
|
||||||
|
|
||||||
void LLFloaterRegionInfo::refreshFromRegion(LLViewerRegion* region)
|
void LLFloaterRegionInfo::refreshFromRegion(LLViewerRegion* region)
|
||||||
{
|
{
|
||||||
if (!region)
|
if (!region)
|
||||||
@@ -1022,127 +1035,7 @@ void LLPanelRegionDebugInfo::onClickCancelRestart(void* data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
BOOL LLPanelRegionTerrainInfo::validateTextureSizes()
|
||||||
// LLPanelRegionTextureInfo
|
|
||||||
//
|
|
||||||
LLPanelRegionTextureInfo::LLPanelRegionTextureInfo() : LLPanelRegionInfo()
|
|
||||||
{
|
|
||||||
// nothing.
|
|
||||||
}
|
|
||||||
|
|
||||||
bool LLPanelRegionTextureInfo::refreshFromRegion(LLViewerRegion* region)
|
|
||||||
{
|
|
||||||
BOOL allow_modify = gAgent.isGodlike() || (region && region->canManageEstate());
|
|
||||||
setCtrlsEnabled(allow_modify);
|
|
||||||
childDisable("apply_btn");
|
|
||||||
|
|
||||||
if (region)
|
|
||||||
{
|
|
||||||
childSetValue("region_text", LLSD(region->getName()));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
childSetValue("region_text", LLSD(""));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!region) return LLPanelRegionInfo::refreshFromRegion(region);
|
|
||||||
|
|
||||||
LLVLComposition* compp = region->getComposition();
|
|
||||||
LLTextureCtrl* texture_ctrl;
|
|
||||||
std::string buffer;
|
|
||||||
for(S32 i = 0; i < TERRAIN_TEXTURE_COUNT; ++i)
|
|
||||||
{
|
|
||||||
buffer = llformat("texture_detail_%d", i);
|
|
||||||
texture_ctrl = getChild<LLTextureCtrl>(buffer);
|
|
||||||
if(texture_ctrl)
|
|
||||||
{
|
|
||||||
lldebugs << "Detail Texture " << i << ": "
|
|
||||||
<< compp->getDetailTextureID(i) << llendl;
|
|
||||||
LLUUID tmp_id(compp->getDetailTextureID(i));
|
|
||||||
texture_ctrl->setImageAssetID(tmp_id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for(S32 i = 0; i < CORNER_COUNT; ++i)
|
|
||||||
{
|
|
||||||
buffer = llformat("height_start_spin_%d", i);
|
|
||||||
childSetValue(buffer, LLSD(compp->getStartHeight(i)));
|
|
||||||
buffer = llformat("height_range_spin_%d", i);
|
|
||||||
childSetValue(buffer, LLSD(compp->getHeightRange(i)));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Call the parent for common book-keeping
|
|
||||||
return LLPanelRegionInfo::refreshFromRegion(region);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
BOOL LLPanelRegionTextureInfo::postBuild()
|
|
||||||
{
|
|
||||||
LLPanelRegionInfo::postBuild();
|
|
||||||
std::string buffer;
|
|
||||||
for(S32 i = 0; i < TERRAIN_TEXTURE_COUNT; ++i)
|
|
||||||
{
|
|
||||||
buffer = llformat("texture_detail_%d", i);
|
|
||||||
initCtrl(buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
for(S32 i = 0; i < CORNER_COUNT; ++i)
|
|
||||||
{
|
|
||||||
buffer = llformat("height_start_spin_%d", i);
|
|
||||||
initCtrl(buffer);
|
|
||||||
buffer = llformat("height_range_spin_%d", i);
|
|
||||||
initCtrl(buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
return LLPanelRegionInfo::postBuild();
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOL LLPanelRegionTextureInfo::sendUpdate()
|
|
||||||
{
|
|
||||||
llinfos << "LLPanelRegionTextureInfo::sendUpdate()" << llendl;
|
|
||||||
|
|
||||||
// Make sure user hasn't chosen wacky textures.
|
|
||||||
if (!validateTextureSizes())
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
LLTextureCtrl* texture_ctrl;
|
|
||||||
std::string buffer;
|
|
||||||
std::string id_str;
|
|
||||||
LLMessageSystem* msg = gMessageSystem;
|
|
||||||
strings_t strings;
|
|
||||||
|
|
||||||
LLUUID invoice(LLFloaterRegionInfo::getLastInvoice());
|
|
||||||
|
|
||||||
for(S32 i = 0; i < TERRAIN_TEXTURE_COUNT; ++i)
|
|
||||||
{
|
|
||||||
buffer = llformat("texture_detail_%d", i);
|
|
||||||
texture_ctrl = getChild<LLTextureCtrl>(buffer);
|
|
||||||
if(texture_ctrl)
|
|
||||||
{
|
|
||||||
LLUUID tmp_id(texture_ctrl->getImageAssetID());
|
|
||||||
tmp_id.toString(id_str);
|
|
||||||
buffer = llformat("%d %s", i, id_str.c_str());
|
|
||||||
strings.push_back(buffer);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
sendEstateOwnerMessage(msg, "texturedetail", invoice, strings);
|
|
||||||
strings.clear();
|
|
||||||
for(S32 i = 0; i < CORNER_COUNT; ++i)
|
|
||||||
{
|
|
||||||
buffer = llformat("height_start_spin_%d", i);
|
|
||||||
std::string buffer2 = llformat("height_range_spin_%d", i);
|
|
||||||
std::string buffer3 = llformat("%d %f %f", i, (F32)childGetValue(buffer).asReal(), (F32)childGetValue(buffer2).asReal());
|
|
||||||
strings.push_back(buffer3);
|
|
||||||
}
|
|
||||||
sendEstateOwnerMessage(msg, "textureheights", invoice, strings);
|
|
||||||
strings.clear();
|
|
||||||
sendEstateOwnerMessage(msg, "texturecommit", invoice, strings);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOL LLPanelRegionTextureInfo::validateTextureSizes()
|
|
||||||
{
|
{
|
||||||
for(S32 i = 0; i < TERRAIN_TEXTURE_COUNT; ++i)
|
for(S32 i = 0; i < TERRAIN_TEXTURE_COUNT; ++i)
|
||||||
{
|
{
|
||||||
@@ -1211,11 +1104,26 @@ BOOL LLPanelRegionTerrainInfo::postBuild()
|
|||||||
childSetCommitCallback("use_estate_sun_check", onChangeUseEstateTime, this);
|
childSetCommitCallback("use_estate_sun_check", onChangeUseEstateTime, this);
|
||||||
initCtrl("sun_hour_slider");
|
initCtrl("sun_hour_slider");
|
||||||
|
|
||||||
|
std::string buffer;
|
||||||
|
for(S32 i = 0; i < TERRAIN_TEXTURE_COUNT; ++i)
|
||||||
|
{
|
||||||
|
buffer = llformat("texture_detail_%d", i);
|
||||||
|
initCtrl(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(S32 i = 0; i < CORNER_COUNT; ++i)
|
||||||
|
{
|
||||||
|
buffer = llformat("height_start_spin_%d", i);
|
||||||
|
initCtrl(buffer);
|
||||||
|
buffer = llformat("height_range_spin_%d", i);
|
||||||
|
initCtrl(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
childSetAction("download_raw_btn", onClickDownloadRaw, this);
|
childSetAction("download_raw_btn", onClickDownloadRaw, this);
|
||||||
childSetAction("upload_raw_btn", onClickUploadRaw, this);
|
childSetAction("upload_raw_btn", onClickUploadRaw, this);
|
||||||
childSetAction("bake_terrain_btn", onClickBakeTerrain, this);
|
childSetAction("bake_terrain_btn", onClickBakeTerrain, this);
|
||||||
|
|
||||||
return TRUE;
|
return LLPanelRegionInfo::postBuild();
|
||||||
}
|
}
|
||||||
|
|
||||||
// virtual
|
// virtual
|
||||||
@@ -1229,6 +1137,39 @@ bool LLPanelRegionTerrainInfo::refreshFromRegion(LLViewerRegion* region)
|
|||||||
|
|
||||||
getChildView("apply_btn")->setEnabled(FALSE);
|
getChildView("apply_btn")->setEnabled(FALSE);
|
||||||
|
|
||||||
|
if (region)
|
||||||
|
{
|
||||||
|
getChild<LLUICtrl>("region_text")->setValue(LLSD(region->getName()));
|
||||||
|
|
||||||
|
LLVLComposition* compp = region->getComposition();
|
||||||
|
LLTextureCtrl* texture_ctrl;
|
||||||
|
std::string buffer;
|
||||||
|
for(S32 i = 0; i < TERRAIN_TEXTURE_COUNT; ++i)
|
||||||
|
{
|
||||||
|
buffer = llformat("texture_detail_%d", i);
|
||||||
|
texture_ctrl = getChild<LLTextureCtrl>(buffer);
|
||||||
|
if(texture_ctrl)
|
||||||
|
{
|
||||||
|
lldebugs << "Detail Texture " << i << ": "
|
||||||
|
<< compp->getDetailTextureID(i) << llendl;
|
||||||
|
LLUUID tmp_id(compp->getDetailTextureID(i));
|
||||||
|
texture_ctrl->setImageAssetID(tmp_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for(S32 i = 0; i < CORNER_COUNT; ++i)
|
||||||
|
{
|
||||||
|
buffer = llformat("height_start_spin_%d", i);
|
||||||
|
getChild<LLUICtrl>(buffer)->setValue(LLSD(compp->getStartHeight(i)));
|
||||||
|
buffer = llformat("height_range_spin_%d", i);
|
||||||
|
getChild<LLUICtrl>(buffer)->setValue(LLSD(compp->getHeightRange(i)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lldebugs << "no region set" << llendl;
|
||||||
|
getChild<LLUICtrl>("region_text")->setValue(LLSD(""));
|
||||||
|
}
|
||||||
|
|
||||||
getChildView("download_raw_btn")->setEnabled(owner_or_god);
|
getChildView("download_raw_btn")->setEnabled(owner_or_god);
|
||||||
getChildView("upload_raw_btn")->setEnabled(owner_or_god);
|
getChildView("upload_raw_btn")->setEnabled(owner_or_god);
|
||||||
@@ -1259,6 +1200,52 @@ BOOL LLPanelRegionTerrainInfo::sendUpdate()
|
|||||||
// and sync the region with it
|
// and sync the region with it
|
||||||
region_info.sendRegionTerrain(invoice);
|
region_info.sendRegionTerrain(invoice);
|
||||||
|
|
||||||
|
// =======================================
|
||||||
|
// Assemble and send texturedetail message
|
||||||
|
|
||||||
|
// Make sure user hasn't chosen wacky textures.
|
||||||
|
if (!validateTextureSizes())
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
LLTextureCtrl* texture_ctrl;
|
||||||
|
std::string id_str;
|
||||||
|
LLMessageSystem* msg = gMessageSystem;
|
||||||
|
|
||||||
|
for(S32 i = 0; i < TERRAIN_TEXTURE_COUNT; ++i)
|
||||||
|
{
|
||||||
|
buffer = llformat("texture_detail_%d", i);
|
||||||
|
texture_ctrl = getChild<LLTextureCtrl>(buffer);
|
||||||
|
if(texture_ctrl)
|
||||||
|
{
|
||||||
|
LLUUID tmp_id(texture_ctrl->getImageAssetID());
|
||||||
|
tmp_id.toString(id_str);
|
||||||
|
buffer = llformat("%d %s", i, id_str.c_str());
|
||||||
|
strings.push_back(buffer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sendEstateOwnerMessage(msg, "texturedetail", invoice, strings);
|
||||||
|
strings.clear();
|
||||||
|
|
||||||
|
// ========================================
|
||||||
|
// Assemble and send textureheights message
|
||||||
|
|
||||||
|
for(S32 i = 0; i < CORNER_COUNT; ++i)
|
||||||
|
{
|
||||||
|
buffer = llformat("height_start_spin_%d", i);
|
||||||
|
std::string buffer2 = llformat("height_range_spin_%d", i);
|
||||||
|
std::string buffer3 = llformat("%d %f %f", i, (F32)getChild<LLUICtrl>(buffer)->getValue().asReal(), (F32)getChild<LLUICtrl>(buffer2)->getValue().asReal());
|
||||||
|
strings.push_back(buffer3);
|
||||||
|
}
|
||||||
|
sendEstateOwnerMessage(msg, "textureheights", invoice, strings);
|
||||||
|
strings.clear();
|
||||||
|
|
||||||
|
// ========================================
|
||||||
|
// Send texturecommit message
|
||||||
|
|
||||||
|
sendEstateOwnerMessage(msg, "texturecommit", invoice, strings);
|
||||||
|
|
||||||
// Grab estate information in case the user decided to set the
|
// Grab estate information in case the user decided to set the
|
||||||
// region back to estate time. JC
|
// region back to estate time. JC
|
||||||
LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance();
|
LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance();
|
||||||
@@ -2476,7 +2463,7 @@ const std::string LLPanelEstateInfo::getOwnerName() const
|
|||||||
|
|
||||||
void LLPanelEstateInfo::setOwnerName(const std::string& name)
|
void LLPanelEstateInfo::setOwnerName(const std::string& name)
|
||||||
{
|
{
|
||||||
childSetValue("estate_owner", LLSD(name));
|
getChild<LLUICtrl>("estate_owner")->setValue(LLSD(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLPanelEstateInfo::setAccessAllowedEnabled(bool enable_agent,
|
void LLPanelEstateInfo::setAccessAllowedEnabled(bool enable_agent,
|
||||||
@@ -2556,6 +2543,7 @@ void LLPanelEstateInfo::clearAccessLists()
|
|||||||
{
|
{
|
||||||
name_list->deleteAllItems();
|
name_list->deleteAllItems();
|
||||||
}
|
}
|
||||||
|
updateControls(gAgent.getRegion());
|
||||||
}
|
}
|
||||||
|
|
||||||
// enables/disables the "remove" button for the various allow/ban lists
|
// enables/disables the "remove" button for the various allow/ban lists
|
||||||
|
|||||||
@@ -57,7 +57,6 @@ class AIFilePicker;
|
|||||||
|
|
||||||
class LLPanelRegionGeneralInfo;
|
class LLPanelRegionGeneralInfo;
|
||||||
class LLPanelRegionDebugInfo;
|
class LLPanelRegionDebugInfo;
|
||||||
class LLPanelRegionTextureInfo;
|
|
||||||
class LLPanelRegionTerrainInfo;
|
class LLPanelRegionTerrainInfo;
|
||||||
class LLPanelEstateInfo;
|
class LLPanelEstateInfo;
|
||||||
class LLPanelEstateCovenant;
|
class LLPanelEstateCovenant;
|
||||||
@@ -87,6 +86,7 @@ public:
|
|||||||
|
|
||||||
static LLPanelEstateInfo* getPanelEstate();
|
static LLPanelEstateInfo* getPanelEstate();
|
||||||
static LLPanelEstateCovenant* getPanelCovenant();
|
static LLPanelEstateCovenant* getPanelCovenant();
|
||||||
|
static LLPanelRegionTerrainInfo* getPanelRegionTerrain();
|
||||||
|
|
||||||
// from LLPanel
|
// from LLPanel
|
||||||
virtual void refresh();
|
virtual void refresh();
|
||||||
@@ -213,23 +213,6 @@ private:
|
|||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
class LLPanelRegionTextureInfo : public LLPanelRegionInfo
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
LLPanelRegionTextureInfo();
|
|
||||||
~LLPanelRegionTextureInfo() {}
|
|
||||||
|
|
||||||
virtual BOOL postBuild(); // LLPanel
|
|
||||||
|
|
||||||
virtual bool refreshFromRegion(LLViewerRegion* region); // refresh local settings from region update from simulator
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual BOOL sendUpdate();
|
|
||||||
BOOL validateTextureSizes();
|
|
||||||
};
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
class LLPanelRegionTerrainInfo : public LLPanelRegionInfo
|
class LLPanelRegionTerrainInfo : public LLPanelRegionInfo
|
||||||
{
|
{
|
||||||
LOG_CLASS(LLPanelRegionTerrainInfo);
|
LOG_CLASS(LLPanelRegionTerrainInfo);
|
||||||
@@ -242,10 +225,14 @@ public:
|
|||||||
|
|
||||||
virtual bool refreshFromRegion(LLViewerRegion* region); // refresh local settings from region update from simulator
|
virtual bool refreshFromRegion(LLViewerRegion* region); // refresh local settings from region update from simulator
|
||||||
|
|
||||||
|
BOOL validateTextureSizes();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual BOOL sendUpdate();
|
|
||||||
|
|
||||||
static void onChangeUseEstateTime(LLUICtrl* ctrl, void* user_data);
|
static void onChangeUseEstateTime(LLUICtrl* ctrl, void* user_data);
|
||||||
|
//static void onChangeAnything(LLUICtrl* ctrl, void* userData); // callback for any change, to enable commit button
|
||||||
|
|
||||||
|
virtual BOOL sendUpdate();
|
||||||
|
|
||||||
static void onClickDownloadRaw(void*);
|
static void onClickDownloadRaw(void*);
|
||||||
void onClickDownloadRaw_continued(AIFilePicker* filepicker);
|
void onClickDownloadRaw_continued(AIFilePicker* filepicker);
|
||||||
|
|||||||
@@ -1,60 +1,466 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||||
<panel border="true" bottom="0" follows="top|left" height="320" label="Terrain"
|
<panel
|
||||||
left="0" name="Terrain" width="480">
|
border="true"
|
||||||
<text bottom="-30" follows="left|top" font="SansSerif" height="20" left="10"
|
follows="top|left"
|
||||||
name="region_text_lbl" width="100">
|
help_topic="panel_region_terrain_tab"
|
||||||
Region:
|
label="Terrain"
|
||||||
</text>
|
layout="topleft"
|
||||||
<text bottom_delta="0" follows="left|top" font="SansSerif" height="20" left="60"
|
left="0"
|
||||||
name="region_text" width="400">
|
name="Terrain"
|
||||||
unknown
|
bottom="0"
|
||||||
</text>
|
height="320"
|
||||||
<spinner bottom_delta="-30" follows="left|top" height="20" increment=".1"
|
width="480">
|
||||||
label="Water Height" label_width="120" left="15" max_val="100" min_val="0"
|
<text
|
||||||
name="water_height_spin" width="180" />
|
follows="left|top"
|
||||||
<button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?"
|
font="SansSerif"
|
||||||
left="200" name="water_height_help" width="18" />
|
height="20"
|
||||||
<spinner bottom_delta="-20" follows="left|top" height="20" increment=".2"
|
layout="topleft"
|
||||||
label="Terrain Raise Limit" label_width="120" left="15" max_val="100"
|
left="10"
|
||||||
min_val="0" name="terrain_raise_spin" width="180" />
|
name="region_text_lbl"
|
||||||
<button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?"
|
bottom="-30"
|
||||||
left="200" name="terrain_raise_help" width="18" />
|
width="100">
|
||||||
<spinner bottom_delta="-20" follows="left|top" height="20" increment=".2"
|
Region:
|
||||||
label="Terrain Lower Limit" label_width="120" left="15" max_val="0"
|
</text>
|
||||||
min_val="-100" name="terrain_lower_spin" width="180" />
|
<text
|
||||||
<button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?"
|
follows="left|top"
|
||||||
left="200" name="terrain_lower_help" width="18" />
|
font="SansSerif"
|
||||||
<check_box bottom="-55" follows="left|top" height="20" label="Use Estate Sun" left="250"
|
height="20"
|
||||||
name="use_estate_sun_check" width="100" />
|
layout="topleft"
|
||||||
<button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?"
|
left="60"
|
||||||
left="420" name="use_estate_sun_help" width="18" />
|
name="region_text"
|
||||||
<check_box bottom_delta="-20" follows="left|top" height="20" label="Fixed Sun" left="250"
|
bottom_delta="0"
|
||||||
name="fixed_sun_check" width="100" />
|
width="400">
|
||||||
<button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?"
|
unknown
|
||||||
left="420" name="fixed_sun_help" width="18" />
|
</text>
|
||||||
<icon bottom_delta="-25" follows="left|top" height="20"
|
<spinner
|
||||||
image_name="icon_day_cycle.tga" left="285" name="daycycle" width="165" />
|
follows="left|top"
|
||||||
<slider bottom_delta="-25" follows="left|top" height="20" increment="0.001"
|
height="20"
|
||||||
label="Phase" left="250" max_val="30" min_val="6" name="sun_hour_slider"
|
increment=".1"
|
||||||
show_text="false" width="200" />
|
label="Water Height"
|
||||||
<button bottom_delta="-30" enabled="false" follows="left|top" height="20" label="Apply"
|
label_width="120"
|
||||||
left="350" name="apply_btn" width="90" />
|
layout="topleft"
|
||||||
<view_border bevel_style="none" border_thickness="1" bottom_delta="-5" follows="top|left"
|
left="15"
|
||||||
height="130" left="8" width="460" />
|
max_val="100"
|
||||||
<button bottom_delta="-80" follows="left|top" height="20"
|
min_val="0"
|
||||||
label="Download RAW terrain..." left="10" name="download_raw_btn"
|
name="water_height_spin"
|
||||||
tool_tip="Available only to estate owners, not managers" width="170" />
|
bottom="-60"
|
||||||
<button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?"
|
width="180" />
|
||||||
left="190" name="download_raw_help" width="18" />
|
<button
|
||||||
<button bottom_delta="-23" follows="left|top" height="20" label="Upload RAW terrain..."
|
bottom_delta="3"
|
||||||
left="10" name="upload_raw_btn"
|
follows="left|top"
|
||||||
tool_tip="Available only to estate owners, not managers" width="170" />
|
font="SansSerifSmall"
|
||||||
<button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?"
|
height="18"
|
||||||
left="190" name="upload_raw_help" width="18" />
|
label="?"
|
||||||
<button bottom_delta="-40" follows="left|top" height="20" label="Bake Terrain"
|
left_delta="182"
|
||||||
left="10" name="bake_terrain_btn"
|
name="water_height_help"
|
||||||
tool_tip="Set current terrain as mid-point for raise/lower limits"
|
width="18" />
|
||||||
width="100" />
|
<spinner
|
||||||
<button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?"
|
follows="left|top"
|
||||||
left="120" name="bake_terrain_help" width="18" />
|
height="20"
|
||||||
|
increment="0.2"
|
||||||
|
label="Terrain Raise Limit"
|
||||||
|
label_width="120"
|
||||||
|
layout="topleft"
|
||||||
|
left="240"
|
||||||
|
max_val="100"
|
||||||
|
min_val="0"
|
||||||
|
name="terrain_raise_spin"
|
||||||
|
bottom="-60"
|
||||||
|
width="180" />
|
||||||
|
<button
|
||||||
|
bottom_delta="3"
|
||||||
|
follows="left|top"
|
||||||
|
font="SansSerifSmall"
|
||||||
|
height="18"
|
||||||
|
label="?"
|
||||||
|
left_delta="182"
|
||||||
|
name="terrain_raise_help"
|
||||||
|
width="18" />
|
||||||
|
<spinner
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
increment="0.2"
|
||||||
|
label="Terrain Lower Limit"
|
||||||
|
label_width="120"
|
||||||
|
layout="topleft"
|
||||||
|
left="240"
|
||||||
|
max_val="0"
|
||||||
|
min_val="-100"
|
||||||
|
name="terrain_lower_spin"
|
||||||
|
bottom_delta="-25"
|
||||||
|
width="180" />
|
||||||
|
<button
|
||||||
|
bottom_delta="3"
|
||||||
|
follows="left|top"
|
||||||
|
font="SansSerifSmall"
|
||||||
|
height="18"
|
||||||
|
label="?"
|
||||||
|
left_delta="182"
|
||||||
|
name="terrain_lower_help"
|
||||||
|
width="18" />
|
||||||
|
<view_border
|
||||||
|
bevel_style="none"
|
||||||
|
follows="top|left"
|
||||||
|
height="60"
|
||||||
|
layout="topleft"
|
||||||
|
left="8"
|
||||||
|
bottom_delta="-10"
|
||||||
|
top="30"
|
||||||
|
width="460" />
|
||||||
|
<text
|
||||||
|
type="string"
|
||||||
|
length="1"
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
layout="topleft"
|
||||||
|
left="10"
|
||||||
|
name="detail_texture_text"
|
||||||
|
bottom_delta="-30"
|
||||||
|
width="300">
|
||||||
|
Terrain Textures
|
||||||
|
</text>
|
||||||
|
<texture_picker
|
||||||
|
follows="left|top"
|
||||||
|
height="100"
|
||||||
|
layout="topleft"
|
||||||
|
left_delta="0"
|
||||||
|
name="texture_detail_0"
|
||||||
|
bottom_delta="-100"
|
||||||
|
width="100" />
|
||||||
|
<texture_picker
|
||||||
|
follows="left|top"
|
||||||
|
height="100"
|
||||||
|
layout="topleft"
|
||||||
|
left_delta="110"
|
||||||
|
name="texture_detail_1"
|
||||||
|
bottom_delta="0"
|
||||||
|
width="100" />
|
||||||
|
<texture_picker
|
||||||
|
follows="left|top"
|
||||||
|
height="100"
|
||||||
|
layout="topleft"
|
||||||
|
left_delta="110"
|
||||||
|
name="texture_detail_2"
|
||||||
|
bottom_delta="0"
|
||||||
|
width="100" />
|
||||||
|
<texture_picker
|
||||||
|
follows="left|top"
|
||||||
|
height="100"
|
||||||
|
layout="topleft"
|
||||||
|
left_delta="110"
|
||||||
|
name="texture_detail_3"
|
||||||
|
bottom_delta="0"
|
||||||
|
width="100" />
|
||||||
|
<text
|
||||||
|
type="string"
|
||||||
|
length="1"
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
layout="topleft"
|
||||||
|
left="10"
|
||||||
|
name="height_text_lbl"
|
||||||
|
bottom_delta="-10"
|
||||||
|
width="65">
|
||||||
|
1 (Low)
|
||||||
|
</text>
|
||||||
|
<text
|
||||||
|
type="string"
|
||||||
|
length="1"
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
layout="topleft"
|
||||||
|
left_delta="110"
|
||||||
|
name="height_text_lbl2"
|
||||||
|
bottom_delta="0"
|
||||||
|
width="100">
|
||||||
|
2
|
||||||
|
</text>
|
||||||
|
<text
|
||||||
|
type="string"
|
||||||
|
length="1"
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
layout="topleft"
|
||||||
|
left_delta="110"
|
||||||
|
name="height_text_lbl3"
|
||||||
|
bottom_delta="0"
|
||||||
|
width="100">
|
||||||
|
3
|
||||||
|
</text>
|
||||||
|
<text
|
||||||
|
type="string"
|
||||||
|
length="1"
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
layout="topleft"
|
||||||
|
left_delta="110"
|
||||||
|
name="height_text_lbl4"
|
||||||
|
bottom_delta="0"
|
||||||
|
width="100">
|
||||||
|
4 (High)
|
||||||
|
</text>
|
||||||
|
<text
|
||||||
|
type="string"
|
||||||
|
length="1"
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
layout="topleft"
|
||||||
|
left="10"
|
||||||
|
name="height_text_lbl5"
|
||||||
|
bottom_delta="-30"
|
||||||
|
top_delta="30"
|
||||||
|
width="300">
|
||||||
|
Texture Elevation Ranges
|
||||||
|
</text>
|
||||||
|
<text
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
layout="topleft"
|
||||||
|
left="10"
|
||||||
|
name="height_text_lbl10"
|
||||||
|
top_delta="30"
|
||||||
|
width="200"
|
||||||
|
word_wrap="true">
|
||||||
|
These values represent the blend
|
||||||
|
range for the textures above.
|
||||||
|
</text>
|
||||||
|
<text
|
||||||
|
follows="left|top"
|
||||||
|
height="60"
|
||||||
|
layout="topleft"
|
||||||
|
left_delta="0"
|
||||||
|
name="height_text_lbl11"
|
||||||
|
bottom_delta="-80"
|
||||||
|
top_delta="32"
|
||||||
|
width="200"
|
||||||
|
word_wrap="true">
|
||||||
|
Measured in meters, the LOW value
|
||||||
|
is the MAXIMUM height of Texture #1,
|
||||||
|
and the HIGH value is the
|
||||||
|
MINIMUM height of Texture #4.
|
||||||
|
</text>
|
||||||
|
<text
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
layout="topleft"
|
||||||
|
left="270"
|
||||||
|
name="height_text_lbl6"
|
||||||
|
bottom="-260"
|
||||||
|
width="100">
|
||||||
|
Northwest
|
||||||
|
</text>
|
||||||
|
<text
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
layout="topleft"
|
||||||
|
left_delta="110"
|
||||||
|
name="height_text_lbl7"
|
||||||
|
bottom_delta="0"
|
||||||
|
width="100">
|
||||||
|
Northeast
|
||||||
|
</text>
|
||||||
|
<!-- northwest low-->
|
||||||
|
<spinner
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
increment="0.5"
|
||||||
|
label="Low"
|
||||||
|
label_width="37"
|
||||||
|
layout="topleft"
|
||||||
|
left="230"
|
||||||
|
max_val="500"
|
||||||
|
min_val="-500"
|
||||||
|
name="height_start_spin_1"
|
||||||
|
bottom_delta="-20"
|
||||||
|
width="100" />
|
||||||
|
<!-- northeast low-->
|
||||||
|
<spinner
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
increment="0.5"
|
||||||
|
label="Low"
|
||||||
|
label_width="37"
|
||||||
|
layout="topleft"
|
||||||
|
left_delta="110"
|
||||||
|
max_val="500"
|
||||||
|
min_val="-500"
|
||||||
|
name="height_start_spin_3"
|
||||||
|
bottom_delta="0"
|
||||||
|
width="100" />
|
||||||
|
<!-- northwest high-->
|
||||||
|
<spinner
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
increment="0.5"
|
||||||
|
label="High"
|
||||||
|
label_width="37"
|
||||||
|
layout="topleft"
|
||||||
|
left="230"
|
||||||
|
max_val="500"
|
||||||
|
min_val="-500"
|
||||||
|
name="height_range_spin_1"
|
||||||
|
bottom_delta="-20"
|
||||||
|
width="100" />
|
||||||
|
<!-- northeast high-->
|
||||||
|
<spinner
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
increment="0.5"
|
||||||
|
label="High"
|
||||||
|
label_width="37"
|
||||||
|
layout="topleft"
|
||||||
|
left_delta="110"
|
||||||
|
max_val="500"
|
||||||
|
min_val="-500"
|
||||||
|
name="height_range_spin_3"
|
||||||
|
bottom_delta="0"
|
||||||
|
width="100" />
|
||||||
|
<text
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
layout="topleft"
|
||||||
|
left="270"
|
||||||
|
name="height_text_lbl8"
|
||||||
|
bottom_delta="-20"
|
||||||
|
top_pad="10"
|
||||||
|
width="100">
|
||||||
|
Southwest
|
||||||
|
</text>
|
||||||
|
<text
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
layout="topleft"
|
||||||
|
left_delta="110"
|
||||||
|
name="height_text_lbl9"
|
||||||
|
bottom_delta="0"
|
||||||
|
width="100">
|
||||||
|
Southeast
|
||||||
|
</text>
|
||||||
|
<!-- southwest low-->
|
||||||
|
<spinner
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
increment="0.5"
|
||||||
|
label="Low"
|
||||||
|
label_width="37"
|
||||||
|
layout="topleft"
|
||||||
|
left="230"
|
||||||
|
max_val="500"
|
||||||
|
min_val="-500"
|
||||||
|
name="height_start_spin_0"
|
||||||
|
bottom_delta="-20"
|
||||||
|
width="100" />
|
||||||
|
<!-- southeast low-->
|
||||||
|
<spinner
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
increment="0.5"
|
||||||
|
label="Low"
|
||||||
|
label_width="37"
|
||||||
|
layout="topleft"
|
||||||
|
left_delta="110"
|
||||||
|
max_val="500"
|
||||||
|
min_val="-500"
|
||||||
|
name="height_start_spin_2"
|
||||||
|
bottom_delta="0"
|
||||||
|
width="100" />
|
||||||
|
<!--southwest high-->
|
||||||
|
<spinner
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
increment="0.5"
|
||||||
|
label="High"
|
||||||
|
label_width="37"
|
||||||
|
layout="topleft"
|
||||||
|
left="230"
|
||||||
|
max_val="500"
|
||||||
|
min_val="-500"
|
||||||
|
name="height_range_spin_0"
|
||||||
|
bottom_delta="-20"
|
||||||
|
width="100" />
|
||||||
|
<!-- southeast high-->
|
||||||
|
<spinner
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
increment="0.5"
|
||||||
|
label="High"
|
||||||
|
label_width="37"
|
||||||
|
layout="topleft"
|
||||||
|
left_delta="110"
|
||||||
|
max_val="500"
|
||||||
|
min_val="-500"
|
||||||
|
name="height_range_spin_2"
|
||||||
|
bottom_delta="0"
|
||||||
|
width="100" />
|
||||||
|
<!-- Terrain Download/Upload/Bake buttons -->
|
||||||
|
<button
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
label="Download RAW terrain..."
|
||||||
|
font="SansSerifSmall"
|
||||||
|
layout="topleft"
|
||||||
|
left="10"
|
||||||
|
name="download_raw_btn"
|
||||||
|
tool_tip="Available only to estate owners, not managers"
|
||||||
|
bottom_delta="-35"
|
||||||
|
width="140" />
|
||||||
|
<button
|
||||||
|
bottom_delta="0"
|
||||||
|
follows="left|top"
|
||||||
|
font="SansSerifSmall"
|
||||||
|
height="20"
|
||||||
|
label="?"
|
||||||
|
left_delta="140"
|
||||||
|
name="download_raw_help"
|
||||||
|
width="20" />
|
||||||
|
<button
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
label="Upload RAW terrain..."
|
||||||
|
font="SansSerifSmall"
|
||||||
|
layout="topleft"
|
||||||
|
left_delta="30"
|
||||||
|
bottom_delta="0"
|
||||||
|
name="upload_raw_btn"
|
||||||
|
tool_tip="Available only to estate owners, not managers"
|
||||||
|
width="130" />
|
||||||
|
<button
|
||||||
|
bottom_delta="0"
|
||||||
|
follows="left|top"
|
||||||
|
font="SansSerifSmall"
|
||||||
|
height="20"
|
||||||
|
label="?"
|
||||||
|
left_delta="130"
|
||||||
|
name="upload_raw_help"
|
||||||
|
width="20" />
|
||||||
|
<button
|
||||||
|
bottom_delta="0"
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
label="Bake Terrain"
|
||||||
|
font="SansSerifSmall"
|
||||||
|
layout="topleft"
|
||||||
|
left_delta="30"
|
||||||
|
name="bake_terrain_btn"
|
||||||
|
tool_tip="Set current terrain as mid-point for raise/lower limits"
|
||||||
|
width="80" />
|
||||||
|
<button
|
||||||
|
bottom_delta="0"
|
||||||
|
follows="left|top"
|
||||||
|
font="SansSerifSmall"
|
||||||
|
height="20"
|
||||||
|
label="?"
|
||||||
|
left_delta="80"
|
||||||
|
name="bake_terrain_help"
|
||||||
|
width="20" />
|
||||||
|
<button
|
||||||
|
enabled="true"
|
||||||
|
follows="left|top"
|
||||||
|
height="20"
|
||||||
|
label="Apply"
|
||||||
|
layout="topleft"
|
||||||
|
left_delta="-80"
|
||||||
|
name="apply_btn"
|
||||||
|
bottom_delta="-40"
|
||||||
|
width="100" />
|
||||||
</panel>
|
</panel>
|
||||||
|
|||||||
@@ -1,98 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
|
||||||
<panel border="true" bottom="0" follows="top|left" height="320"
|
|
||||||
label="Ground Textures" left="0" name="Textures" width="480">
|
|
||||||
<text bottom="-30" follows="left|top" font="SansSerif" height="20" left="10"
|
|
||||||
name="region_text_lbl" width="100">
|
|
||||||
Region:
|
|
||||||
</text>
|
|
||||||
<text bottom_delta="0" follows="left|top" font="SansSerif" height="20" left="60"
|
|
||||||
name="region_text" width="400">
|
|
||||||
unknown
|
|
||||||
</text>
|
|
||||||
<text bottom_delta="-26" follows="left|top" height="20" left="10"
|
|
||||||
name="detail_texture_text" width="300">
|
|
||||||
Terrain Textures
|
|
||||||
</text>
|
|
||||||
<texture_picker bottom_delta="-100" follows="left|top" height="100" left="10"
|
|
||||||
name="texture_detail_0" width="100" />
|
|
||||||
<texture_picker bottom_delta="0" follows="left|top" height="100" left="120"
|
|
||||||
name="texture_detail_1" width="100" />
|
|
||||||
<texture_picker bottom_delta="0" follows="left|top" height="100" left="230"
|
|
||||||
name="texture_detail_2" width="100" />
|
|
||||||
<texture_picker bottom_delta="0" follows="left|top" height="100" left="340"
|
|
||||||
name="texture_detail_3" width="100" />
|
|
||||||
<text bottom_delta="-10" follows="left|top" height="20" left="10"
|
|
||||||
name="height_text_lbl" width="65">
|
|
||||||
1 (Low)
|
|
||||||
</text>
|
|
||||||
<text bottom_delta="0" follows="left|top" height="20" left="120"
|
|
||||||
name="height_text_lbl2" width="100">
|
|
||||||
2
|
|
||||||
</text>
|
|
||||||
<text bottom_delta="0" follows="left|top" height="20" left="230"
|
|
||||||
name="height_text_lbl3" width="100">
|
|
||||||
3
|
|
||||||
</text>
|
|
||||||
<text bottom_delta="0" follows="left|top" height="20" left="340"
|
|
||||||
name="height_text_lbl4" width="100">
|
|
||||||
4 (High)
|
|
||||||
</text>
|
|
||||||
<text bottom_delta="-40" follows="left|top" height="20" left="10"
|
|
||||||
name="height_text_lbl5" width="300">
|
|
||||||
Texture Elevation Ranges
|
|
||||||
</text>
|
|
||||||
<text bottom_delta="-15" follows="left|top" height="20" left="51"
|
|
||||||
name="height_text_lbl6" width="100">
|
|
||||||
Southwest
|
|
||||||
</text>
|
|
||||||
<text bottom_delta="0" follows="left|top" height="20" left="161"
|
|
||||||
name="height_text_lbl7" width="100">
|
|
||||||
Northwest
|
|
||||||
</text>
|
|
||||||
<text bottom_delta="0" follows="left|top" height="20" left="271"
|
|
||||||
name="height_text_lbl8" width="100">
|
|
||||||
Southeast
|
|
||||||
</text>
|
|
||||||
<text bottom_delta="0" follows="left|top" height="20" left="381"
|
|
||||||
name="height_text_lbl9" width="100">
|
|
||||||
Northeast
|
|
||||||
</text>
|
|
||||||
<spinner bottom_delta="-20" follows="left|top" height="20" increment="0.5" label="Low"
|
|
||||||
label_width="37" left="10" max_val="500" min_val="-500"
|
|
||||||
name="height_start_spin_0" width="100" />
|
|
||||||
<spinner bottom_delta="0" follows="left|top" height="20" increment="0.5" label="Low"
|
|
||||||
label_width="37" left="120" max_val="500" min_val="-500"
|
|
||||||
name="height_start_spin_1" width="100" />
|
|
||||||
<spinner bottom_delta="0" follows="left|top" height="20" increment="0.5" label="Low"
|
|
||||||
label_width="37" left="230" max_val="500" min_val="-500"
|
|
||||||
name="height_start_spin_2" width="100" />
|
|
||||||
<spinner bottom_delta="0" follows="left|top" height="20" increment="0.5" label="Low"
|
|
||||||
label_width="37" left="340" max_val="500" min_val="-500"
|
|
||||||
name="height_start_spin_3" width="100" />
|
|
||||||
<spinner bottom_delta="-20" follows="left|top" height="20" increment="0.5" label="High"
|
|
||||||
label_width="37" left="10" max_val="500" min_val="-500"
|
|
||||||
name="height_range_spin_0" width="100" />
|
|
||||||
<spinner bottom_delta="0" follows="left|top" height="20" increment="0.5" label="High"
|
|
||||||
label_width="37" left="120" max_val="500" min_val="-500"
|
|
||||||
name="height_range_spin_1" width="100" />
|
|
||||||
<spinner bottom_delta="0" follows="left|top" height="20" increment="0.5" label="High"
|
|
||||||
label_width="37" left="230" max_val="500" min_val="-500"
|
|
||||||
name="height_range_spin_2" width="100" />
|
|
||||||
<spinner bottom_delta="0" follows="left|top" height="20" increment="0.5" label="High"
|
|
||||||
label_width="37" left="340" max_val="500" min_val="-500"
|
|
||||||
name="height_range_spin_3" width="100" />
|
|
||||||
<text bottom_delta="-40" follows="left|top" height="20" left="25"
|
|
||||||
name="height_text_lbl10" width="480">
|
|
||||||
These values represent the blend range for the textures above.
|
|
||||||
</text>
|
|
||||||
<text bottom_delta="-16" follows="left|top" height="20" left="25"
|
|
||||||
name="height_text_lbl11" width="450">
|
|
||||||
Measured in meters, the LOW value is the MAXIMUM height of Texture #1,
|
|
||||||
</text>
|
|
||||||
<text bottom_delta="-16" follows="left|top" height="20" left="25"
|
|
||||||
name="height_text_lbl12" width="480">
|
|
||||||
and the HIGH value is the MINIMUM height of Texture #4.
|
|
||||||
</text>
|
|
||||||
<button bottom="10" enabled="false" follows="left|bottom" height="20" label="Apply"
|
|
||||||
left="350" name="apply_btn" width="100" />
|
|
||||||
</panel>
|
|
||||||
Reference in New Issue
Block a user