Make use of mesh cost functions
parent
f79de2232e
commit
5915dfc26f
|
@ -429,6 +429,7 @@ namespace OpenSim.Region.ClientStack.Linden
|
||||||
//m_log.Debug("asset upload request via CAPS" + llsdRequest.inventory_type + " , " + llsdRequest.asset_type);
|
//m_log.Debug("asset upload request via CAPS" + llsdRequest.inventory_type + " , " + llsdRequest.asset_type);
|
||||||
|
|
||||||
uint cost = 0;
|
uint cost = 0;
|
||||||
|
LLSDAssetUploadResponseData meshcostdata = new LLSDAssetUploadResponseData();
|
||||||
|
|
||||||
if (llsdRequest.asset_type == "texture" ||
|
if (llsdRequest.asset_type == "texture" ||
|
||||||
llsdRequest.asset_type == "animation" ||
|
llsdRequest.asset_type == "animation" ||
|
||||||
|
@ -467,11 +468,15 @@ namespace OpenSim.Region.ClientStack.Linden
|
||||||
|
|
||||||
if (llsdRequest.asset_type == "mesh")
|
if (llsdRequest.asset_type == "mesh")
|
||||||
{
|
{
|
||||||
cost += 20; // Constant for now to test showing a price
|
string error;
|
||||||
|
int modelcost;
|
||||||
|
ModelCost mc = new ModelCost();
|
||||||
|
|
||||||
if (llsdRequest.asset_resources == null)
|
if (!mc.MeshModelCost(llsdRequest.asset_resources, mm.UploadCharge, out modelcost,
|
||||||
|
meshcostdata, out error))
|
||||||
{
|
{
|
||||||
client.SendAgentAlertMessage("Unable to upload asset. missing information.", false);
|
|
||||||
|
client.SendAgentAlertMessage(error, false);
|
||||||
|
|
||||||
LLSDAssetUploadResponse errorResponse = new LLSDAssetUploadResponse();
|
LLSDAssetUploadResponse errorResponse = new LLSDAssetUploadResponse();
|
||||||
errorResponse.uploader = "";
|
errorResponse.uploader = "";
|
||||||
|
@ -479,10 +484,7 @@ namespace OpenSim.Region.ClientStack.Linden
|
||||||
return errorResponse;
|
return errorResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint textures_cost = (uint)llsdRequest.asset_resources.texture_list.Array.Count;
|
cost = (uint)modelcost;
|
||||||
textures_cost *= (uint)mm.UploadCharge;
|
|
||||||
|
|
||||||
cost += textures_cost;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -536,20 +538,9 @@ namespace OpenSim.Region.ClientStack.Linden
|
||||||
uploadResponse.state = "upload";
|
uploadResponse.state = "upload";
|
||||||
uploadResponse.upload_price = (int)cost;
|
uploadResponse.upload_price = (int)cost;
|
||||||
|
|
||||||
// use fake values for now
|
|
||||||
if (llsdRequest.asset_type == "mesh")
|
if (llsdRequest.asset_type == "mesh")
|
||||||
{
|
{
|
||||||
uploadResponse.data = new LLSDAssetUploadResponseData();
|
uploadResponse.data = meshcostdata;
|
||||||
uploadResponse.data.model_streaming_cost = 1.0;
|
|
||||||
uploadResponse.data.simulation_cost = 1.5;
|
|
||||||
|
|
||||||
uploadResponse.data.physics_cost = 2.0;
|
|
||||||
uploadResponse.data.resource_cost = 3.0;
|
|
||||||
uploadResponse.data.upload_price_breakdown.mesh_instance = 1;
|
|
||||||
uploadResponse.data.upload_price_breakdown.mesh_physics = 2;
|
|
||||||
uploadResponse.data.upload_price_breakdown.mesh_streaming = 3;
|
|
||||||
uploadResponse.data.upload_price_breakdown.texture = 5;
|
|
||||||
uploadResponse.data.upload_price_breakdown.model = 4;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uploader.OnUpLoad += UploadCompleteHandler;
|
uploader.OnUpLoad += UploadCompleteHandler;
|
||||||
|
|
|
@ -27,9 +27,6 @@ namespace OpenSim.Region.ClientStack.Linden
|
||||||
{
|
{
|
||||||
float ModelMinCost = 5.0f; // try to favor small meshs versus sculpts
|
float ModelMinCost = 5.0f; // try to favor small meshs versus sculpts
|
||||||
|
|
||||||
// scale prices relative to basic cost
|
|
||||||
const float ModelCostScale = 1.0f;
|
|
||||||
|
|
||||||
const float primCreationCost = 0.01f; // 256 prims cost extra 2.56
|
const float primCreationCost = 0.01f; // 256 prims cost extra 2.56
|
||||||
|
|
||||||
// weigthed size to money convertion
|
// weigthed size to money convertion
|
||||||
|
@ -70,7 +67,7 @@ namespace OpenSim.Region.ClientStack.Linden
|
||||||
{
|
{
|
||||||
totalcost = 0;
|
totalcost = 0;
|
||||||
error = string.Empty;
|
error = string.Empty;
|
||||||
|
|
||||||
if (resources == null ||
|
if (resources == null ||
|
||||||
resources.instance_list == null ||
|
resources.instance_list == null ||
|
||||||
resources.instance_list.Array.Count == 0)
|
resources.instance_list.Array.Count == 0)
|
||||||
|
@ -184,7 +181,8 @@ namespace OpenSim.Region.ClientStack.Linden
|
||||||
if (meshsfee < ModelMinCost)
|
if (meshsfee < ModelMinCost)
|
||||||
meshsfee = ModelMinCost;
|
meshsfee = ModelMinCost;
|
||||||
|
|
||||||
meshsfee *= ModelCostScale;
|
// scale cost with basic cost changes relative to 10
|
||||||
|
meshsfee *= (float)basicCost / 10.0f;
|
||||||
meshsfee += 0.5f; // rounding
|
meshsfee += 0.5f; // rounding
|
||||||
|
|
||||||
totalcost += (int)meshsfee;
|
totalcost += (int)meshsfee;
|
||||||
|
|
Loading…
Reference in New Issue