public BunchOfCaps(Scene scene, Caps caps) { m_Scene = scene; m_HostCapsObj = caps; // create a model upload cost provider m_ModelCost = new ModelCost(); // tell it about scene object limits m_ModelCost.NonPhysicalPrimScaleMax = m_Scene.m_maxNonphys; m_ModelCost.PhysicalPrimScaleMax = m_Scene.m_maxPhys; m_ModelCost.ObjectLinkedPartsMax = m_Scene.m_linksetCapacity; // m_ModelCost.ObjectLinkedPartsMax = ?? // m_ModelCost.PrimScaleMin = ?? m_PrimScaleMin = m_ModelCost.PrimScaleMin; float modelTextureUploadFactor = m_ModelCost.ModelTextureCostFactor; float modelUploadFactor = m_ModelCost.ModelMeshCostFactor; float modelMinUploadCostFactor = m_ModelCost.ModelMinCostFactor; float modelPrimCreationCost = m_ModelCost.primCreationCost; float modelMeshByteCost = m_ModelCost.bytecost; IConfigSource config = m_Scene.Config; if (config != null) { IConfig sconfig = config.Configs["Startup"]; if (sconfig != null) { m_levelUpload = sconfig.GetInt("LevelUpload", 0); } IConfig appearanceConfig = config.Configs["Appearance"]; if (appearanceConfig != null) { m_persistBakedTextures = appearanceConfig.GetBoolean("PersistBakedTextures", m_persistBakedTextures); } // economy for model upload IConfig EconomyConfig = config.Configs["Economy"]; if (EconomyConfig != null) { modelUploadFactor = EconomyConfig.GetFloat("MeshModelUploadCostFactor", modelUploadFactor); modelTextureUploadFactor = EconomyConfig.GetFloat("MeshModelUploadTextureCostFactor", modelTextureUploadFactor); modelMinUploadCostFactor = EconomyConfig.GetFloat("MeshModelMinCostFactor", modelMinUploadCostFactor); // next 2 are normalized so final cost is afected by modelUploadFactor above and normal cost modelPrimCreationCost = EconomyConfig.GetFloat("ModelPrimCreationCost", modelPrimCreationCost); modelMeshByteCost = EconomyConfig.GetFloat("ModelMeshByteCost", modelMeshByteCost); m_enableModelUploadTextureToInventory = EconomyConfig.GetBoolean("MeshModelAllowTextureToInventory", m_enableModelUploadTextureToInventory); m_RestrictFreeTestUploadPerms = EconomyConfig.GetBoolean("m_RestrictFreeTestUploadPerms", m_RestrictFreeTestUploadPerms); m_enableFreeTestUpload = EconomyConfig.GetBoolean("AllowFreeTestUpload", m_enableFreeTestUpload); m_ForceFreeTestUpload = EconomyConfig.GetBoolean("ForceFreeTestUpload", m_ForceFreeTestUpload); string testcreator = EconomyConfig.GetString("TestAssetsCreatorID", ""); if (testcreator != "") { UUID id; UUID.TryParse(testcreator, out id); if (id != null) m_testAssetsCreatorID = id; } m_ModelCost.ModelMeshCostFactor = modelUploadFactor; m_ModelCost.ModelTextureCostFactor = modelTextureUploadFactor; m_ModelCost.ModelMinCostFactor = modelMinUploadCostFactor; m_ModelCost.primCreationCost = modelPrimCreationCost; m_ModelCost.bytecost = modelMeshByteCost; } } m_assetService = m_Scene.AssetService; m_regionName = m_Scene.RegionInfo.RegionName; RegisterHandlers(); AddNewInventoryItem = m_Scene.AddUploadedInventoryItem; ItemUpdatedCall = m_Scene.CapsUpdateInventoryItemAsset; TaskScriptUpdatedCall = m_Scene.CapsUpdateTaskInventoryScriptAsset; GetClient = m_Scene.SceneGraph.GetControllingClient; m_FileAgentInventoryState = FileAgentInventoryState.idle; }