[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");
|
||||
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;
|
||||
mInfoPanels.push_back(panel);
|
||||
@@ -421,6 +417,23 @@ LLPanelEstateCovenant* LLFloaterRegionInfo::getPanelCovenant()
|
||||
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)
|
||||
{
|
||||
if (!region)
|
||||
@@ -1022,127 +1035,7 @@ void LLPanelRegionDebugInfo::onClickCancelRestart(void* data)
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 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()
|
||||
BOOL LLPanelRegionTerrainInfo::validateTextureSizes()
|
||||
{
|
||||
for(S32 i = 0; i < TERRAIN_TEXTURE_COUNT; ++i)
|
||||
{
|
||||
@@ -1211,11 +1104,26 @@ BOOL LLPanelRegionTerrainInfo::postBuild()
|
||||
childSetCommitCallback("use_estate_sun_check", onChangeUseEstateTime, this);
|
||||
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("upload_raw_btn", onClickUploadRaw, this);
|
||||
childSetAction("bake_terrain_btn", onClickBakeTerrain, this);
|
||||
|
||||
return TRUE;
|
||||
return LLPanelRegionInfo::postBuild();
|
||||
}
|
||||
|
||||
// virtual
|
||||
@@ -1229,6 +1137,39 @@ bool LLPanelRegionTerrainInfo::refreshFromRegion(LLViewerRegion* region)
|
||||
|
||||
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("upload_raw_btn")->setEnabled(owner_or_god);
|
||||
@@ -1259,6 +1200,52 @@ BOOL LLPanelRegionTerrainInfo::sendUpdate()
|
||||
// and sync the region with it
|
||||
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
|
||||
// region back to estate time. JC
|
||||
LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance();
|
||||
@@ -2476,7 +2463,7 @@ const std::string LLPanelEstateInfo::getOwnerName() const
|
||||
|
||||
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,
|
||||
@@ -2556,6 +2543,7 @@ void LLPanelEstateInfo::clearAccessLists()
|
||||
{
|
||||
name_list->deleteAllItems();
|
||||
}
|
||||
updateControls(gAgent.getRegion());
|
||||
}
|
||||
|
||||
// enables/disables the "remove" button for the various allow/ban lists
|
||||
|
||||
@@ -57,7 +57,6 @@ class AIFilePicker;
|
||||
|
||||
class LLPanelRegionGeneralInfo;
|
||||
class LLPanelRegionDebugInfo;
|
||||
class LLPanelRegionTextureInfo;
|
||||
class LLPanelRegionTerrainInfo;
|
||||
class LLPanelEstateInfo;
|
||||
class LLPanelEstateCovenant;
|
||||
@@ -87,6 +86,7 @@ public:
|
||||
|
||||
static LLPanelEstateInfo* getPanelEstate();
|
||||
static LLPanelEstateCovenant* getPanelCovenant();
|
||||
static LLPanelRegionTerrainInfo* getPanelRegionTerrain();
|
||||
|
||||
// from LLPanel
|
||||
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
|
||||
{
|
||||
LOG_CLASS(LLPanelRegionTerrainInfo);
|
||||
@@ -242,10 +225,14 @@ public:
|
||||
|
||||
virtual bool refreshFromRegion(LLViewerRegion* region); // refresh local settings from region update from simulator
|
||||
|
||||
BOOL validateTextureSizes();
|
||||
|
||||
protected:
|
||||
virtual BOOL sendUpdate();
|
||||
|
||||
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*);
|
||||
void onClickDownloadRaw_continued(AIFilePicker* filepicker);
|
||||
|
||||
@@ -1,60 +1,466 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<panel border="true" bottom="0" follows="top|left" height="320" label="Terrain"
|
||||
left="0" name="Terrain" 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>
|
||||
<spinner bottom_delta="-30" follows="left|top" height="20" increment=".1"
|
||||
label="Water Height" label_width="120" left="15" max_val="100" min_val="0"
|
||||
name="water_height_spin" width="180" />
|
||||
<button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?"
|
||||
left="200" name="water_height_help" width="18" />
|
||||
<spinner bottom_delta="-20" follows="left|top" height="20" increment=".2"
|
||||
label="Terrain Raise Limit" label_width="120" left="15" max_val="100"
|
||||
min_val="0" name="terrain_raise_spin" width="180" />
|
||||
<button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?"
|
||||
left="200" name="terrain_raise_help" width="18" />
|
||||
<spinner bottom_delta="-20" follows="left|top" height="20" increment=".2"
|
||||
label="Terrain Lower Limit" label_width="120" left="15" max_val="0"
|
||||
min_val="-100" name="terrain_lower_spin" width="180" />
|
||||
<button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?"
|
||||
left="200" name="terrain_lower_help" width="18" />
|
||||
<check_box bottom="-55" follows="left|top" height="20" label="Use Estate Sun" left="250"
|
||||
name="use_estate_sun_check" width="100" />
|
||||
<button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?"
|
||||
left="420" name="use_estate_sun_help" width="18" />
|
||||
<check_box bottom_delta="-20" follows="left|top" height="20" label="Fixed Sun" left="250"
|
||||
name="fixed_sun_check" width="100" />
|
||||
<button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?"
|
||||
left="420" name="fixed_sun_help" width="18" />
|
||||
<icon bottom_delta="-25" follows="left|top" height="20"
|
||||
image_name="icon_day_cycle.tga" left="285" name="daycycle" width="165" />
|
||||
<slider bottom_delta="-25" follows="left|top" height="20" increment="0.001"
|
||||
label="Phase" left="250" max_val="30" min_val="6" name="sun_hour_slider"
|
||||
show_text="false" width="200" />
|
||||
<button bottom_delta="-30" enabled="false" follows="left|top" height="20" label="Apply"
|
||||
left="350" name="apply_btn" width="90" />
|
||||
<view_border bevel_style="none" border_thickness="1" bottom_delta="-5" follows="top|left"
|
||||
height="130" left="8" width="460" />
|
||||
<button bottom_delta="-80" follows="left|top" height="20"
|
||||
label="Download RAW terrain..." left="10" name="download_raw_btn"
|
||||
tool_tip="Available only to estate owners, not managers" width="170" />
|
||||
<button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?"
|
||||
left="190" name="download_raw_help" width="18" />
|
||||
<button bottom_delta="-23" follows="left|top" height="20" label="Upload RAW terrain..."
|
||||
left="10" name="upload_raw_btn"
|
||||
tool_tip="Available only to estate owners, not managers" width="170" />
|
||||
<button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?"
|
||||
left="190" name="upload_raw_help" width="18" />
|
||||
<button bottom_delta="-40" follows="left|top" height="20" label="Bake Terrain"
|
||||
left="10" name="bake_terrain_btn"
|
||||
tool_tip="Set current terrain as mid-point for raise/lower limits"
|
||||
width="100" />
|
||||
<button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?"
|
||||
left="120" name="bake_terrain_help" width="18" />
|
||||
<panel
|
||||
border="true"
|
||||
follows="top|left"
|
||||
help_topic="panel_region_terrain_tab"
|
||||
label="Terrain"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="Terrain"
|
||||
bottom="0"
|
||||
height="320"
|
||||
width="480">
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerif"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="region_text_lbl"
|
||||
bottom="-30"
|
||||
width="100">
|
||||
Region:
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerif"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left="60"
|
||||
name="region_text"
|
||||
bottom_delta="0"
|
||||
width="400">
|
||||
unknown
|
||||
</text>
|
||||
<spinner
|
||||
follows="left|top"
|
||||
height="20"
|
||||
increment=".1"
|
||||
label="Water Height"
|
||||
label_width="120"
|
||||
layout="topleft"
|
||||
left="15"
|
||||
max_val="100"
|
||||
min_val="0"
|
||||
name="water_height_spin"
|
||||
bottom="-60"
|
||||
width="180" />
|
||||
<button
|
||||
bottom_delta="3"
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
height="18"
|
||||
label="?"
|
||||
left_delta="182"
|
||||
name="water_height_help"
|
||||
width="18" />
|
||||
<spinner
|
||||
follows="left|top"
|
||||
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>
|
||||
|
||||
@@ -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