From 8e2eb983e38a46d7242e14797494bf749116f68a Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Mon, 31 Aug 2020 12:35:39 +0100 Subject: [PATCH] a few changes to last patch --- .../InventoryAccess/InventoryAccessModule.cs | 54 +++++++++---------- .../World/LightShare/EnvironmentModule.cs | 21 +++++++- .../Interfaces/IEnvironmentModule.cs | 1 + 3 files changed, 45 insertions(+), 31 deletions(-) diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index f7bef74acf..4fdaa76697 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs @@ -226,42 +226,36 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess groupmask = (uint)PermissionMask.AllAndExport; everyonemask = (uint)(PermissionMask.AllAndExport & ~PermissionMask.Modify); } - - if (assetType == (byte)AssetType.Clothing || assetType == (byte)AssetType.Bodypart) - flags = subType; - - AssetBase asset = null; - - if (assetType == (byte)AssetType.Settings) + if(assetType == (sbyte)AssetType.Settings) { - UUID default_asset_id = UUID.Zero; - - if (subType == 0) - default_asset_id = UUID.Parse("3ae23978-ac82-bcf3-a9cb-ba6e52dcb9ad"); // Sky - else if (subType == 1) - default_asset_id = UUID.Parse("59d1a851-47e7-0e5f-1ed7-6b715154f41a"); // Water - else if (subType == 2) - default_asset_id = UUID.Parse("5646d39e-d3d7-6aff-ed71-30fc87d64a91"); // Daycycle - - if (default_asset_id != UUID.Zero) + flags = subType; + if (data == null) { - asset = m_Scene.AssetService.Get(default_asset_id.ToString()); - } - - if (asset == null) - { - m_log.ErrorFormat("[INVENTORY ACCESS MODULE CreateNewInventoryItem]: failed to create default environment setting asset {0} for agent {1}", name, remoteClient.AgentId); + IEnvironmentModule envModule = m_Scene.RequestModuleInterface(); + if(envModule == null) + return; + UUID assetID = envModule.GetDefaultAsset(subType); + if(assetID == UUID.Zero) + { + m_log.ErrorFormat( + "[INVENTORY ACCESS MODULE CreateNewInventoryItem]: failed to create default environment setting asset {0} for agent {1}", name, remoteClient.AgentId); + return; + } + m_Scene.CreateNewInventoryItem( + remoteClient, remoteClient.AgentId.ToString(), string.Empty, folderID, + name, description, flags, callbackID, assetID, (sbyte)AssetType.Settings, invType, + (uint)PermissionMask.AllAndExport, (uint)PermissionMask.AllAndExport, + everyonemask, nextOwnerMask, groupmask, + creationDate, false); // Data from viewer return; } - + } + else if( assetType == (byte)AssetType.Clothing || + assetType == (byte)AssetType.Bodypart) flags = subType; - } - else - { - asset = m_Scene.CreateAsset(name, description, assetType, data, remoteClient.AgentId); - m_Scene.AssetService.Store(asset); - } + AssetBase asset = m_Scene.CreateAsset(name, description, assetType, data, remoteClient.AgentId); + m_Scene.AssetService.Store(asset); m_Scene.CreateNewInventoryItem( remoteClient, remoteClient.AgentId.ToString(), string.Empty, folderID, name, description, flags, callbackID, asset.FullID, asset.Type, invType, diff --git a/OpenSim/Region/CoreModules/World/LightShare/EnvironmentModule.cs b/OpenSim/Region/CoreModules/World/LightShare/EnvironmentModule.cs index 85e29dc056..ae272d7f8e 100644 --- a/OpenSim/Region/CoreModules/World/LightShare/EnvironmentModule.cs +++ b/OpenSim/Region/CoreModules/World/LightShare/EnvironmentModule.cs @@ -68,7 +68,12 @@ namespace OpenSim.Region.CoreModules.World.LightShare // 1/1 night day ratio //private static readonly string m_defaultDayAssetID = "5646d39e-d3d7-6aff-ed71-30fc87d64a91"; // 3/1 night day ratio - private static readonly string m_defaultDayAssetID = "5646d39e-d3d7-6aff-ed71-30fc87d64a92"; + private static string m_defaultDayAssetID = "5646d39e-d3d7-6aff-ed71-30fc87d64a92"; + private static UUID m_defaultDayAssetUUID = new UUID("5646d39e-d3d7-6aff-ed71-30fc87d64a92"); + //private static string m_defaultSkyAssetID = "3ae23978-ac82-bcf3-a9cb-ba6e52dcb9ad"; + private static UUID m_defaultSkyAssetUUID = new UUID("3ae23978-ac82-bcf3-a9cb-ba6e52dcb9ad"); + //private static string m_defaultWaterAssetID = "59d1a851-47e7-0e5f-1ed7-6b715154f41a"; + private static UUID m_defaultWaterAssetUUID = new UUID("59d1a851-47e7-0e5f-1ed7-6b715154f41a"); private int m_regionEnvVersion = -1; @@ -844,6 +849,20 @@ namespace OpenSim.Region.CoreModules.World.LightShare return OSDParser.SerializeLLSDNotationToBytes(osddata,true); } + public UUID GetDefaultAsset(int type) + { + switch (type) + { + case 0: + return m_defaultSkyAssetUUID; + case 1: + return m_defaultWaterAssetUUID; + case 2: + return m_defaultDayAssetUUID; + default: + return UUID.Zero; + } + } public List MakeLightShareData() { diff --git a/OpenSim/Region/Framework/Interfaces/IEnvironmentModule.cs b/OpenSim/Region/Framework/Interfaces/IEnvironmentModule.cs index 060f1b91db..2840d3c005 100644 --- a/OpenSim/Region/Framework/Interfaces/IEnvironmentModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IEnvironmentModule.cs @@ -37,6 +37,7 @@ namespace OpenSim.Region.Framework.Interfaces void FromLightShare(RegionLightShareData wl); RegionLightShareData ToLightShare(); byte[] GetDefaultAssetData(int type); + UUID GetDefaultAsset(int type); void WindlightRefresh(int interpolate, bool notforparcel = true); void WindlightRefreshForced(IScenePresence sp, int interpolate);