Feature/lsd fix (#83)
Some checks failed
CodeQL / Analyze (csharp) (push) Has been cancelled
dotnet package / build (8.0.x) (push) Has been cancelled
dotnet package / build (9.0.x) (push) Has been cancelled

* Placeholders for AISv3.  EF Core Model code in OpenSim.Data.Models.  Both projects are in the Source directory and not yet included in the solution.  Tests are added back in Tests.  Still need to Add the LinkSet Data tests and activate them in the solution.

* Add PBR Terrain fields to ef core regionsettings table. Add OpenSIm.Data.Models to solution.

* Restructure the LinksetData Deserialize.  We'll also save the size value so it doesnt need to be calculated.  We make the size a required field so we can tell if its not present and fall back to handling the old format as well.  Make the serialized fields writable publically so they can be deserialized successfully. This is a change in dotnet 8.

* Address CodeQL comments. Ternary operator in LinksetData Deserialize and rename some generated code for the Search tables ef core support away from Object which is of course a reserved word.
This commit is contained in:
Mike Dickson 2024-08-06 11:14:16 -04:00 committed by GitHub
parent c96c26097d
commit d64ff145cd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
305 changed files with 44366 additions and 11632 deletions

5
.gitignore vendored
View file

@ -1,3 +1,5 @@
OpenSimConsoleHistory.txt
.project
.settings
.gitignore
@ -19,6 +21,9 @@ launchSettings.json
build/
*/bin/Debug/*
*/bin/Release/*
packages/
Prebuild/src/bin

View file

@ -1,20 +1,23 @@
<Project>
<PropertyGroup>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<ImplicitUsings>disable</ImplicitUsings>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>disable</Nullable>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<GenerateDependencyFile>false</GenerateDependencyFile>
<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
<MSBuildProjectExtensionsPath>$(SolutionDir)\obj\$(Configuration)\$(MSBuildProjectName)\</MSBuildProjectExtensionsPath>
<IntermediateOutputPath>$(SolutionDir)\obj\$(Configuration)\$(MSBuildProjectName)\</IntermediateOutputPath>
<OutputPath>$(SolutionDir)\build\$(Configuration)\$(AssemblyName)\</OutputPath>
</PropertyGroup>
<PropertyGroup>
<MSBuildProjectExtensionsPath>$(SolutionDir)/obj/$(Configuration)/$(MSBuildProjectName)/</MSBuildProjectExtensionsPath>
<IntermediateOutputPath>$(SolutionDir)/obj/$(Configuration)/$(MSBuildProjectName)/</IntermediateOutputPath>
<OutputPath>$(SolutionDir)/build/$(Configuration)/$(AssemblyName)/</OutputPath>
<OutDir>$(OutputPath)</OutDir>
</PropertyGroup>
<!-- <ItemGroup>
<PackageReference Include="Nerdbank.GitVersioning" Version="3.6.133">
<PackageReference Include="Nerdbank.GitVersioning" Condition="!Exists('packages.config')">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
<Version>3.6.133</Version>
</PackageReference>
</ItemGroup> -->

View file

@ -241,7 +241,6 @@ This software uses components from the following developers:
* log4net (http://logging.apache.org/log4net/)
* GlynnTucker.Cache (http://gtcache.sourceforge.net/)
* NDesk.Options 0.2.1 (http://www.ndesk.org/Options)
* Json.NET 3.5 Release 6. The binary used is actually Newtonsoft.Json.Net20.dll for Mono 2.4 compatability (http://james.newtonking.com/projects/json-net.aspx)
* zlib.net for C# 1.0.4 (http://www.componentace.com/zlib_.NET.htm)
Some plugins are based on Cable Beach

View file

@ -147,6 +147,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenSim.Region.OptionalModu
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenSim.Server.MoneyServer", "addon-modules\OpenSim.Server.MoneyServer\OpenSim.Server.MoneyServer\OpenSim.Server.MoneyServer.csproj", "{C3AEE6AC-BE40-4003-A7A3-E8AA039E4451}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{7F5EC7C6-FD99-4084-8530-5D3F28D6D7C0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSim.Tests.Common", "Tests\OpenSim.Tests.Common\OpenSim.Tests.Common.csproj", "{4B7616BC-6CCE-4B78-AE40-1F24C92442F5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Source", "Source", "{E886CEB5-B01D-411F-A7A0-72AA1B71761D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSim.Data.Model", "Source\OpenSim.Data.Model\OpenSim.Data.Model.csproj", "{B120B128-D6C6-40B6-9D83-4F1F7D921109}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -441,10 +449,22 @@ Global
{C3AEE6AC-BE40-4003-A7A3-E8AA039E4451}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C3AEE6AC-BE40-4003-A7A3-E8AA039E4451}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C3AEE6AC-BE40-4003-A7A3-E8AA039E4451}.Release|Any CPU.Build.0 = Release|Any CPU
{4B7616BC-6CCE-4B78-AE40-1F24C92442F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4B7616BC-6CCE-4B78-AE40-1F24C92442F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4B7616BC-6CCE-4B78-AE40-1F24C92442F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4B7616BC-6CCE-4B78-AE40-1F24C92442F5}.Release|Any CPU.Build.0 = Release|Any CPU
{B120B128-D6C6-40B6-9D83-4F1F7D921109}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B120B128-D6C6-40B6-9D83-4F1F7D921109}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B120B128-D6C6-40B6-9D83-4F1F7D921109}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B120B128-D6C6-40B6-9D83-4F1F7D921109}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{4B7616BC-6CCE-4B78-AE40-1F24C92442F5} = {7F5EC7C6-FD99-4084-8530-5D3F28D6D7C0}
{B120B128-D6C6-40B6-9D83-4F1F7D921109} = {E886CEB5-B01D-411F-A7A0-72AA1B71761D}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {A40AD54B-8BC7-41E4-B241-19B59EA65D2A}
EndGlobalSection

View file

@ -103,7 +103,7 @@ namespace OpenSim.Groups
#region Daily Cleanup
private Timer m_CleanupTimer;
private System.Timers.Timer m_CleanupTimer;
public GroupsService(IConfigSource config, string configName)
: base(config, configName)
@ -114,7 +114,7 @@ namespace OpenSim.Groups
: this(config, string.Empty)
{
// Once a day
m_CleanupTimer = new Timer(24 * 60 * 60 * 1000);
m_CleanupTimer = new System.Timers.Timer(24 * 60 * 60 * 1000);
m_CleanupTimer.AutoReset = true;
m_CleanupTimer.Elapsed += new ElapsedEventHandler(m_CleanupTimer_Elapsed);
m_CleanupTimer.Enabled = true;

View file

@ -1184,10 +1184,11 @@ namespace OpenSim.Data.MySQL
int pseudocrc = (int)row["pseudocrc"];
if(pseudocrc != 0)
prim.PseudoCRC = pseudocrc;
if (!(row["linksetdata"] is DBNull))
prim.LinksetData = null;
if (row["linksetdata"] is not DBNull)
{
prim.DeserializeLinksetData((string)row["linksetdata"]);
prim.LinksetData = LinksetData.DeserializeLinksetData((string)row["linksetdata"]);
}
return prim;
@ -1616,7 +1617,7 @@ namespace OpenSim.Data.MySQL
cmd.Parameters.AddWithValue("sitactrange", prim.SitActiveRange);
cmd.Parameters.AddWithValue("pseudocrc", prim.PseudoCRC);
if (prim.IsRoot && prim.LinksetData is not null)
if (prim.LinksetData is not null)
{
cmd.Parameters.AddWithValue("linksetdata", prim.SerializeLinksetData());
}

View file

@ -1408,9 +1408,13 @@ namespace OpenSim.Data.PGSQL
prim.Animations = null;
}
if ((primRow["LinksetData"] is DBNull) == false)
if (primRow["LinksetData"] is DBNull)
{
prim.DeserializeLinksetData(((string)primRow["linksetdata"]));
prim.LinksetData = null;
}
else
{
prim.LinksetData = LinksetData.DeserializeLinksetData(((string)primRow["linksetdata"]));
}
return prim;
@ -1886,7 +1890,7 @@ namespace OpenSim.Data.PGSQL
else
parameters.Add(_Database.CreateParameterNullBytea("sopanims"));
if (prim.IsRoot && prim.LinksetData is not null)
if (prim.LinksetData is not null)
parameters.Add(_Database.CreateParameter("linksetdata", prim.SerializeLinksetData()));
else
parameters.Add(_Database.CreateParameter("linksetdata", null));

View file

@ -1804,9 +1804,13 @@ namespace OpenSim.Data.SQLite
prim.Animations = null;
}
if (!(row["linksetdata"] is DBNull))
if (row["linksetdata"] is DBNull)
{
prim.DeserializeLinksetData((string)row["LinksetData"]);
prim.LinksetData = null;
}
else
{
prim.LinksetData = LinksetData.DeserializeLinksetData((string)row["LinksetData"]);
}
return prim;
@ -2207,7 +2211,7 @@ namespace OpenSim.Data.SQLite
row["pseudocrc"] = prim.PseudoCRC;
row["sopanims"] = prim.SerializeAnimations();
if (prim.IsRoot && prim.LinksetData is not null)
if (prim.LinksetData is not null)
row["linksetdata"] = prim.SerializeLinksetData();
else
row["linksetdata"] = null;

View file

@ -37,7 +37,7 @@ namespace OpenSim.Framework.Monitoring
/// </summary>
public class AssetStatsCollector : BaseStatsCollector
{
private Timer ageStatsTimer = new Timer(24 * 60 * 60 * 1000);
private System.Timers.Timer ageStatsTimer = new System.Timers.Timer(24 * 60 * 60 * 1000);
private DateTime startTime = DateTime.Now;
private long assetRequestsToday;

View file

@ -1,33 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("OpenSim.Framework.Monitoring")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("http://opensimulator.org")]
[assembly: AssemblyProduct("OpenSim")]
[assembly: AssemblyCopyright("OpenSimulator developers")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("74506fe3-2f9d-44c1-94c9-a30f79d9e0cb")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
[assembly: AssemblyVersion(OpenSim.VersionInfo.AssemblyVersionNumber)]

View file

@ -182,7 +182,7 @@ namespace OpenSim.Framework.Monitoring
// running
foreach (ProcessThread currentThread in p.Threads)
{
if (currentThread != null && currentThread.ThreadState == ThreadState.Running)
if (currentThread != null && currentThread.ThreadState == System.Diagnostics.ThreadState.Running)
numberThreadsRunning++;
}
}

View file

@ -42,7 +42,7 @@ namespace OpenSim.Framework.Monitoring
{
private static readonly ILog m_statsLog = LogManager.GetLogger("special.StatsLogger");
private static Timer m_loggingTimer;
private static System.Timers.Timer m_loggingTimer;
private static int m_statsLogIntervalMs = 5000;
public static void RegisterConsoleCommands(ICommandConsole console)
@ -114,7 +114,7 @@ namespace OpenSim.Framework.Monitoring
if (m_loggingTimer != null)
Stop();
m_loggingTimer = new Timer(m_statsLogIntervalMs);
m_loggingTimer = new System.Timers.Timer(m_statsLogIntervalMs);
m_loggingTimer.AutoReset = false;
m_loggingTimer.Elapsed += Log;
m_loggingTimer.Start();

View file

@ -36,7 +36,7 @@ namespace OpenSim.Framework.Monitoring
/// </summary>
public class UserStatsCollector : BaseStatsCollector
{
private Timer ageStatsTimer = new Timer(24 * 60 * 60 * 1000);
private System.Timers.Timer ageStatsTimer = new System.Timers.Timer(24 * 60 * 60 * 1000);
private int successfulLoginsToday;
public int SuccessfulLoginsToday { get { return successfulLoginsToday; } }

View file

@ -39,7 +39,7 @@ namespace OpenSim
{
public const string VersionNumber = "0.9.3.0";
public const string AssemblyVersionNumber = "0.9.3.0";
public const string Release = "8940";
public const string Release = "8984";
public static string Version
{

View file

@ -160,7 +160,7 @@ namespace OpenSim.Region.ClientStack.Linden
private UUID m_agentID = UUID.Zero;
private IPAddress m_remoteAddress;
private IAssetCache m_assetCache;
private Timer m_timeout;
private System.Timers.Timer m_timeout;
public BakedTextureUploader(string path, IHttpServer httpServer, UUID agentID, IAssetCache cache, IPAddress remoteAddress)
{
@ -169,7 +169,7 @@ namespace OpenSim.Region.ClientStack.Linden
m_agentID = agentID;
m_remoteAddress = remoteAddress;
m_assetCache = cache;
m_timeout = new Timer();
m_timeout = new System.Timers.Timer();
m_timeout.Elapsed += Timeout;
m_timeout.AutoReset = false;
m_timeout.Interval = 30000;

View file

@ -1,45 +1,45 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata;
using System.Reflection;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Text.RegularExpressions;
using ICSharpCode.SharpZipLib.Zip;
using log4net;
namespace OpenSim.Region.Framework.Scenes
{
public class LinksetData : ICloneable
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public const int LINKSETDATA_MAX = 131072;
private static readonly object linksetDataLock = new object();
public SortedList<string, LinksetDataEntry> Data { get; private set; } = new();
public SortedList<string, LinksetDataEntry> Data { get; set; }
public int LinksetDataBytesFree { get; private set; } = LINKSETDATA_MAX;
public int BytesFree { get; set; }
public int LinksetDataBytesUsed { get; private set; } = 0;
/* Make BytesUsed required so we can fail on an old format serialization.
* If we see that we fall back to deserializing the Collection and calculating
* size. This will require it be present in the data going forward
*/
[JsonRequired]
public int BytesUsed { get; set; }
public LinksetData()
{
Data.Clear();
LinksetDataBytesFree = LINKSETDATA_MAX;
LinksetDataBytesUsed = 0;
Data = new();
BytesFree = LINKSETDATA_MAX;
BytesUsed = 0;
}
public object Clone()
{
LinksetData copy = new LinksetData();
copy.LinksetDataBytesFree = this.LinksetDataBytesFree;
copy.LinksetDataBytesUsed = this.LinksetDataBytesUsed;
foreach (KeyValuePair<string, LinksetDataEntry> entry in Data)
{
copy.Data.Add(entry.Key, (LinksetDataEntry) entry.Value.Clone());
}
return copy;
return LinksetData.DeserializeLinksetData(this.SerializeLinksetData());
}
public void Clear()
@ -47,8 +47,8 @@ namespace OpenSim.Region.Framework.Scenes
lock(linksetDataLock)
{
Data.Clear();
LinksetDataBytesFree = LINKSETDATA_MAX;
LinksetDataBytesUsed = 0;
BytesFree = LINKSETDATA_MAX;
BytesUsed = 0;
}
}
@ -64,27 +64,57 @@ namespace OpenSim.Region.Framework.Scenes
{
lock (linksetDataLock)
{
return JsonSerializer.Serialize<SortedList<string, LinksetDataEntry>>(Data);
return ((Data is null) || (Data.Count <= 0)) ?
null : JsonSerializer.Serialize<LinksetData>(this);
}
}
public void DeserializeLinksetData(string data)
public static LinksetData DeserializeLinksetData(string data)
{
if (string.IsNullOrWhiteSpace(data))
return;
lock (linksetDataLock)
{
Clear();
Data = JsonSerializer.Deserialize<SortedList<string, LinksetDataEntry>>(data);
// Handle Cost accounting
foreach (var kvp in Data)
LinksetData lsd = null;
if (string.IsNullOrWhiteSpace(data) is false)
{
try
{
LinksetDataAccountingDelta(kvp.Value.GetCost(kvp.Key));
lsd = JsonSerializer.Deserialize<LinksetData>(data);
}
}
catch (JsonException jse)
{
try
{
m_log.Debug($"Exception deserializing LinkSetData, trying original format: {data}", jse);
var listData = JsonSerializer.Deserialize<SortedList<string, LinksetDataEntry>>(data);
lsd = new LinksetData { Data = listData };
}
catch (Exception e)
{
m_log.Error($"Exception deserializing LinkSetData new and original format: {data}", e);
}
finally
{
// if we got data but no costs calculate that
if (lsd?.BytesUsed <= 0)
{
var cost = 0;
foreach (var kvp in lsd?.Data)
{
cost += kvp.Value.GetCost(kvp.Key);
}
lsd.BytesUsed = cost;
lsd.BytesFree = LINKSETDATA_MAX - cost;
}
}
}
catch (Exception e)
{
m_log.Error($"General Exception deserializing LinkSetData", e);
}
}
return lsd;
}
/// <summary>
@ -120,11 +150,11 @@ namespace OpenSim.Region.Framework.Scenes
}
// Add New or Update handled here.
LinksetDataEntry newEntry = new LinksetDataEntry(value, pass);
int cost = newEntry.GetCost(key);
var newEntry = new LinksetDataEntry(value, pass);
Data.Add(key, newEntry);
int cost = newEntry.GetCost(key);
LinksetDataAccountingDelta(cost);
Data[key] = newEntry;
return 0;
}
@ -160,6 +190,7 @@ namespace OpenSim.Region.Framework.Scenes
return 1;
Data.Remove(key);
LinksetDataAccountingDelta(-entry.GetCost(key));
return 0;
@ -280,7 +311,7 @@ namespace OpenSim.Region.Framework.Scenes
{
lock (linksetDataLock)
{
return (LinksetDataBytesFree <= 0);
return (BytesFree <= 0);
}
}
@ -293,7 +324,7 @@ namespace OpenSim.Region.Framework.Scenes
public void MergeLinksetData(LinksetData otherLinksetData)
{
// Nothing to merge?
if (otherLinksetData == null)
if (otherLinksetData is null)
return;
lock (linksetDataLock)
@ -321,8 +352,8 @@ namespace OpenSim.Region.Framework.Scenes
// Clear the LinksetData entries from the "other" SOG
otherLinksetData.Data.Clear();
otherLinksetData.LinksetDataBytesFree = LINKSETDATA_MAX;
otherLinksetData.LinksetDataBytesUsed = 0;
otherLinksetData.BytesFree = LINKSETDATA_MAX;
otherLinksetData.BytesUsed = 0;
}
}
@ -355,11 +386,11 @@ namespace OpenSim.Region.Framework.Scenes
/// <param name="delta">An integer value, positive adds, negative subtracts delta bytes.</param>
private void LinksetDataAccountingDelta(int delta)
{
LinksetDataBytesUsed += delta;
LinksetDataBytesFree = LINKSETDATA_MAX - LinksetDataBytesUsed;
BytesUsed += delta;
BytesFree = LINKSETDATA_MAX - BytesUsed;
if (LinksetDataBytesFree < 0)
LinksetDataBytesFree = 0;
if (BytesFree < 0)
BytesFree = 0;
}
}
@ -374,19 +405,16 @@ namespace OpenSim.Region.Framework.Scenes
Value = value;
Password = password;
}
public object Clone()
{
return new LinksetDataEntry
{
Password = Password,
Value = Value
};
return JsonSerializer.Deserialize<LinksetDataEntry>(
JsonSerializer.Serialize<LinksetDataEntry>(this));
}
public string Password { get; private set; } = string.Empty;
public string Password { get; set; }
public string Value { get; private set; } = string.Empty;
public string Value { get; set; }
public bool CheckPassword(string pass)
{
@ -400,6 +428,11 @@ namespace OpenSim.Region.Framework.Scenes
return CheckPassword(pass) ? Value : string.Empty;
}
public bool IsProtected()
{
return !string.IsNullOrEmpty(Password);
}
/// <summary>
/// Calculate the cost in bytes for this entry. Adds in the passed in key and
/// if a password is supplied uses 32 bytes minimum unless the password is longer.
@ -410,30 +443,23 @@ namespace OpenSim.Region.Framework.Scenes
{
int cost = 0;
if (string.IsNullOrWhiteSpace(key))
if (string.IsNullOrWhiteSpace(key) is false)
{
return cost;
}
cost += Encoding.UTF8.GetBytes(key).Length;
cost += Encoding.UTF8.GetBytes(key).Length;
if (string.IsNullOrWhiteSpace(this.Value) is false)
{
cost += Encoding.UTF8.GetBytes(this.Value).Length;
}
if (string.IsNullOrWhiteSpace(this.Value) is false)
{
cost += Encoding.UTF8.GetBytes(this.Value).Length;
}
if (string.IsNullOrEmpty(this.Password) is false)
{
// For parity, the password adds 32 bytes regardless of the length. See LL caveats
cost += Math.Max(Encoding.UTF8.GetBytes(this.Password).Length, 32);
if (string.IsNullOrEmpty(this.Password) is false)
{
// For parity, the password adds 32 bytes regardless of the length. See LL caveats
cost += Math.Max(Encoding.UTF8.GetBytes(this.Password).Length, 32);
}
}
return cost;
}
public bool IsProtected()
{
return !string.IsNullOrEmpty(Password);
}
}
}

View file

@ -237,8 +237,6 @@ namespace OpenSim.Region.Framework.Scenes
///
public int m_linksetPhysCapacity = 0;
public int m_LinkSetDataLimit = 32 * 1024;
/// <summary>
/// When placed outside the region's border, do we transfer the objects or
/// do we keep simulating them here?
@ -1093,7 +1091,6 @@ namespace OpenSim.Region.Framework.Scenes
m_update_temp_cleaning = startupConfig.GetInt("UpdateTempCleaningEveryNSeconds", m_update_temp_cleaning);
string[] possibleScriptConfigSections = new string[] { "YEngine", "Xengine", "Scripts" };
m_LinkSetDataLimit = Util.GetConfigVarFromSections<int>(config, "LinksetDataLimit", possibleScriptConfigSections, m_LinkSetDataLimit);
}
#endregion Region Config

View file

@ -2579,15 +2579,6 @@ namespace OpenSim.Region.Framework.Scenes
public void CopyRootPart(SceneObjectPart part, UUID cAgentID, UUID cGroupID, bool userExposed)
{
SceneObjectPart newpart = part.Copy(m_scene.AllocateLocalId(), OwnerID, GroupID, 0, userExposed);
// SceneObjectPart newpart = part.Copy(part.LocalId, OwnerID, GroupID, 0, userExposed);
// newpart.LocalId = m_scene.AllocateLocalId();
// If the rootpart we're copying has LinksetData do a deep copy of that to the new rootpart.
if (part.LinksetData != null)
{
newpart.LinksetData = (LinksetData)part.LinksetData.Clone();
}
SetRootPart(newpart);
if (userExposed)
@ -3148,9 +3139,8 @@ namespace OpenSim.Region.Framework.Scenes
// If the configured linkset capacity is greater than zero,
// and the new linkset would have a prim count higher than this
// value, do not link it.
if (m_scene.m_linksetCapacity > 0 &&
(PrimCount + objectGroup.PrimCount) >
m_scene.m_linksetCapacity)
if ((m_scene.m_linksetCapacity > 0) &&
(PrimCount + objectGroup.PrimCount) > m_scene.m_linksetCapacity)
{
m_log.DebugFormat(
"[SCENE OBJECT GROUP]: Cannot link group with root" +
@ -3194,15 +3184,26 @@ namespace OpenSim.Region.Framework.Scenes
SceneObjectPart linkPart = objectGroup.m_rootPart;
// Merge linksetData if there is any
if (linkPart.LinksetData is not null)
if ((linkPart.LinksetData is not null) && (linkPart.LinksetData.Count() > 0))
{
m_rootPart.LinksetData ??= new();
m_rootPart.LinksetData.MergeLinksetData(linkPart.LinksetData);
if (m_rootPart.LinksetData is null)
{
// If we dont already have linkset data just copy it over
m_rootPart.LinksetData = (LinksetData)linkPart.LinksetData.Clone();
}
else
{
// Otherwise merge the two LinksetData stores.
m_rootPart.LinksetData.MergeLinksetData(linkPart.LinksetData);
}
// Clear the data in the old Linkset Part.
linkPart.LinksetData.Clear();
}
if (m_rootPart.PhysActor != null)
m_rootPart.PhysActor.Building = true;
if (linkPart.PhysActor is not null)
linkPart.PhysActor.Building = true;
@ -3223,8 +3224,10 @@ namespace OpenSim.Region.Framework.Scenes
// (radams1: Not sure if the multiple setting of OffsetPosition is required. If not,
// this code can be reordered to have a more logical flow.)
linkPart.setOffsetPosition(linkPart.GroupPosition - AbsolutePosition);
// Assign the new parent to the root of the old group
linkPart.ParentID = m_rootPart.LocalId;
// Now that it's a child, it's group position is our root position
linkPart.setGroupPosition(AbsolutePosition);
@ -3308,6 +3311,7 @@ namespace OpenSim.Region.Framework.Scenes
part.PhysActor.link(m_rootPart.PhysActor);
}
}
part.ClearUndoState();
}
}

File diff suppressed because it is too large Load diff

View file

@ -820,9 +820,6 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
try
{
string data = reader.ReadElementContentAsString();
if (string.IsNullOrEmpty(data))
return;
obj.DeserializeLinksetData(data);
}
catch
@ -1683,7 +1680,9 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
if(Math.Abs(sop.SitActiveRange) > 1e-5)
writer.WriteElementString("SitActRange", sop.SitActiveRange.ToString(Culture.FormatProvider));
writer.WriteElementString("LinksetData", sop.SerializeLinksetData());
var lsd = sop.SerializeLinksetData();
if (string.IsNullOrWhiteSpace(lsd) is false)
writer.WriteElementString("LinksetData", lsd);
writer.WriteEndElement();
}

View file

@ -76,6 +76,10 @@ namespace OpenSim.Region.UserStatistics
private string m_loglines = String.Empty;
private volatile int lastHit = 12000;
public WebStatsModule()
{
}
#region ISharedRegionModule
public virtual void Initialise(IConfigSource config)
@ -764,7 +768,7 @@ VALUES
)
";
#endregion
#endregion
}

View file

@ -105,7 +105,7 @@ namespace OpenSim.Region.OptionalModules.World.AutoBackup
private bool m_enabled;
private ICommandConsole m_console;
private List<Scene> m_Scenes = new List<Scene> ();
private Timer m_masterTimer;
private System.Timers.Timer m_masterTimer;
private bool m_busy;
private int m_KeepFilesForDays = -1;
private string m_backupDir;
@ -167,7 +167,7 @@ namespace OpenSim.Region.OptionalModules.World.AutoBackup
m_log.Debug(m_defaultState.ToString());
m_log.Info("[AUTO BACKUP]: AutoBackupModule enabled");
m_masterTimer = new Timer();
m_masterTimer = new System.Timers.Timer();
m_masterTimer.Interval = m_baseInterval;
m_masterTimer.Elapsed += HandleElapsed;
m_masterTimer.AutoReset = false;

View file

@ -266,8 +266,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
private string m_lsl_shard = "OpenSim";
private string m_lsl_user_agent = string.Empty;
private int m_linksetDataLimit = 32 * 1024;
private static readonly Dictionary<string, string> MovementAnimationsForLSL = new(StringComparer.InvariantCultureIgnoreCase)
{
{"CROUCH", "Crouching"},
@ -446,8 +444,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_AllowGodFunctions = seConfig.GetBoolean("AllowGodFunctions", false);
m_disable_underground_movement = seConfig.GetBoolean("DisableUndergroundMovement", true);
m_linksetDataLimit = seConfig.GetInt("LinksetDataLimit", m_linksetDataLimit);
}
if (m_notecardLineReadCharsMax > 65535)
@ -18605,7 +18601,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
rootPrim.LinksetData = new LinksetData();
}
return new LSL_Integer(rootPrim.LinksetData.LinksetDataBytesFree);
return new LSL_Integer(rootPrim.LinksetData.BytesFree);
}
public LSL_Integer llLinksetDataCountKeys()

View file

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class AgentPref
{
public string PrincipalId { get; set; }
public string AccessPrefs { get; set; }
public double HoverHeight { get; set; }
public string Language { get; set; }
public bool? LanguageIsPublic { get; set; }
public int PermEveryone { get; set; }
public int PermGroup { get; set; }
public int PermNextOwner { get; set; }
}

View file

@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class Asset
{
public string Name { get; set; }
public string Description { get; set; }
public sbyte AssetType { get; set; }
public bool Local { get; set; }
public bool Temporary { get; set; }
public byte[] Data { get; set; }
public string Id { get; set; }
public int? CreateTime { get; set; }
public int? AccessTime { get; set; }
public int AssetFlags { get; set; }
public string CreatorId { get; set; }
}

View file

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class Auth
{
public string Uuid { get; set; }
public string PasswordHash { get; set; }
public string PasswordSalt { get; set; }
public string WebLoginKey { get; set; }
public string AccountType { get; set; }
}

View file

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class Avatar
{
public string PrincipalId { get; set; }
public string Name { get; set; }
public string Value { get; set; }
}

View file

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class Classified
{
public string Classifieduuid { get; set; }
public string Creatoruuid { get; set; }
public int Creationdate { get; set; }
public int Expirationdate { get; set; }
public string Category { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Parceluuid { get; set; }
public int Parentestate { get; set; }
public string Snapshotuuid { get; set; }
public string Simname { get; set; }
public string Posglobal { get; set; }
public string Parcelname { get; set; }
public int Classifiedflags { get; set; }
public int Priceforlisting { get; set; }
}

View file

@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class EstateGroup
{
public uint EstateId { get; set; }
public string Uuid { get; set; }
}

View file

@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class EstateManager
{
public uint EstateId { get; set; }
public string Uuid { get; set; }
}

View file

@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class EstateMap
{
public string RegionId { get; set; }
public int EstateId { get; set; }
}

View file

@ -0,0 +1,63 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class EstateSetting
{
public uint EstateId { get; set; }
public string EstateName { get; set; }
public sbyte AbuseEmailToEstateOwner { get; set; }
public sbyte DenyAnonymous { get; set; }
public sbyte ResetHomeOnTeleport { get; set; }
public sbyte FixedSun { get; set; }
public sbyte DenyTransacted { get; set; }
public sbyte BlockDwell { get; set; }
public sbyte DenyIdentified { get; set; }
public sbyte AllowVoice { get; set; }
public sbyte UseGlobalTime { get; set; }
public int PricePerMeter { get; set; }
public sbyte TaxFree { get; set; }
public sbyte AllowDirectTeleport { get; set; }
public int RedirectGridX { get; set; }
public int RedirectGridY { get; set; }
public uint ParentEstateId { get; set; }
public double SunPosition { get; set; }
public sbyte EstateSkipScripts { get; set; }
public float BillableFactor { get; set; }
public sbyte PublicAccess { get; set; }
public string AbuseEmail { get; set; }
public string EstateOwner { get; set; }
public sbyte DenyMinors { get; set; }
public sbyte AllowLandmark { get; set; }
public sbyte AllowParcelChanges { get; set; }
public sbyte AllowSetHome { get; set; }
public sbyte AllowEnviromentOverride { get; set; }
}

View file

@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class EstateUser
{
public uint EstateId { get; set; }
public string Uuid { get; set; }
}

View file

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class Estateban
{
public uint EstateId { get; set; }
public string BannedUuid { get; set; }
public string BannedIp { get; set; }
public string BannedIpHostMask { get; set; }
public string BannedNameMask { get; set; }
public string BanningUuid { get; set; }
public int BanTime { get; set; }
}

View file

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class Friend
{
public string PrincipalId { get; set; }
public string Friend1 { get; set; }
public string Flags { get; set; }
public string Offered { get; set; }
}

View file

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class Fsasset
{
public string Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int Type { get; set; }
public string Hash { get; set; }
public int CreateTime { get; set; }
public int AccessTime { get; set; }
public int AssetFlags { get; set; }
}

View file

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class GloebitSubscription
{
public string SubscriptionId { get; set; }
public string ObjectId { get; set; }
public string AppKey { get; set; }
public string GlbApiUrl { get; set; }
public bool Enabled { get; set; }
public string ObjectName { get; set; }
public string Description { get; set; }
public DateTime CTime { get; set; }
}

View file

@ -0,0 +1,61 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class GloebitTransaction
{
public string TransactionId { get; set; }
public string PayerId { get; set; }
public string PayerName { get; set; }
public string PayeeId { get; set; }
public string PayeeName { get; set; }
public int Amount { get; set; }
public int TransactionType { get; set; }
public string TransactionTypeString { get; set; }
public bool IsSubscriptionDebit { get; set; }
public string SubscriptionId { get; set; }
public string PartId { get; set; }
public string PartName { get; set; }
public string PartDescription { get; set; }
public string CategoryId { get; set; }
public int? SaleType { get; set; }
public bool Submitted { get; set; }
public bool ResponseReceived { get; set; }
public bool ResponseSuccess { get; set; }
public string ResponseStatus { get; set; }
public string ResponseReason { get; set; }
public int PayerEndingBalance { get; set; }
public bool Enacted { get; set; }
public bool Consumed { get; set; }
public bool Canceled { get; set; }
public DateTime CTime { get; set; }
public DateTime? EnactedTime { get; set; }
public DateTime? FinishedTime { get; set; }
}

View file

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class GloebitUser
{
public string AppKey { get; set; }
public string PrincipalId { get; set; }
public string GloebitId { get; set; }
public string GloebitToken { get; set; }
public string LastSessionId { get; set; }
}

View file

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class GridUser
{
public string UserId { get; set; }
public string HomeRegionId { get; set; }
public string HomePosition { get; set; }
public string HomeLookAt { get; set; }
public string LastRegionId { get; set; }
public string LastPosition { get; set; }
public string LastLookAt { get; set; }
public string Online { get; set; }
public string Login { get; set; }
public string Logout { get; set; }
}

View file

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class HgTravelingDatum
{
public string SessionId { get; set; }
public string UserId { get; set; }
public string GridExternalName { get; set; }
public string ServiceToken { get; set; }
public string ClientIpaddress { get; set; }
public string MyIpaddress { get; set; }
public DateTime Tmstamp { get; set; }
}

View file

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class ImOffline
{
public int Id { get; set; }
public string PrincipalId { get; set; }
public string FromId { get; set; }
public string Message { get; set; }
public DateTime Tmstamp { get; set; }
}

View file

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class Inventoryfolder
{
public string FolderName { get; set; }
public short Type { get; set; }
public int Version { get; set; }
public string FolderId { get; set; }
public string AgentId { get; set; }
public string ParentFolderId { get; set; }
}

View file

@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class Inventoryitem
{
public string AssetId { get; set; }
public int? AssetType { get; set; }
public string InventoryName { get; set; }
public string InventoryDescription { get; set; }
public uint? InventoryNextPermissions { get; set; }
public uint? InventoryCurrentPermissions { get; set; }
public int? InvType { get; set; }
public string CreatorId { get; set; }
public uint InventoryBasePermissions { get; set; }
public uint InventoryEveryOnePermissions { get; set; }
public int SalePrice { get; set; }
public sbyte SaleType { get; set; }
public int CreationDate { get; set; }
public string GroupId { get; set; }
public sbyte GroupOwned { get; set; }
public uint Flags { get; set; }
public string InventoryId { get; set; }
public string AvatarId { get; set; }
public string ParentFolderId { get; set; }
public uint InventoryGroupPermissions { get; set; }
}

View file

@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class Migration
{
public string Name { get; set; }
public int? Version { get; set; }
}

View file

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class MuteList
{
public string AgentId { get; set; }
public string MuteId { get; set; }
public string MuteName { get; set; }
public int MuteType { get; set; }
public int MuteFlags { get; set; }
public int Stamp { get; set; }
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class OsGroupsGroup
{
public string GroupId { get; set; }
public string Location { get; set; }
public string Name { get; set; }
public string Charter { get; set; }
public string InsigniaId { get; set; }
public string FounderId { get; set; }
public int MembershipFee { get; set; }
public string OpenEnrollment { get; set; }
public int ShowInList { get; set; }
public int AllowPublish { get; set; }
public int MaturePublish { get; set; }
public string OwnerRoleId { get; set; }
}

View file

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class OsGroupsInvite
{
public string InviteId { get; set; }
public string GroupId { get; set; }
public string RoleId { get; set; }
public string PrincipalId { get; set; }
public DateTime Tmstamp { get; set; }
}

View file

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class OsGroupsMembership
{
public string GroupId { get; set; }
public string PrincipalId { get; set; }
public string SelectedRoleId { get; set; }
public int Contribution { get; set; }
public int ListInProfile { get; set; }
public int AcceptNotices { get; set; }
public string AccessToken { get; set; }
}

View file

@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class OsGroupsNotice
{
public string GroupId { get; set; }
public string NoticeId { get; set; }
public uint Tmstamp { get; set; }
public string FromName { get; set; }
public string Subject { get; set; }
public string Message { get; set; }
public int HasAttachment { get; set; }
public int AttachmentType { get; set; }
public string AttachmentName { get; set; }
public string AttachmentItemId { get; set; }
public string AttachmentOwnerId { get; set; }
}

View file

@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class OsGroupsPrincipal
{
public string PrincipalId { get; set; }
public string ActiveGroupId { get; set; }
}

View file

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class OsGroupsRole
{
public string GroupId { get; set; }
public string RoleId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Title { get; set; }
public ulong Powers { get; set; }
}

View file

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class OsGroupsRolemembership
{
public string GroupId { get; set; }
public string RoleId { get; set; }
public string PrincipalId { get; set; }
}

View file

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class Presence
{
public string UserId { get; set; }
public string RegionId { get; set; }
public string SessionId { get; set; }
public string SecureSessionId { get; set; }
public DateTime LastSeen { get; set; }
}

View file

@ -0,0 +1,81 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class Region
{
public string Uuid { get; set; }
public ulong RegionHandle { get; set; }
public string RegionName { get; set; }
public string RegionRecvKey { get; set; }
public string RegionSendKey { get; set; }
public string RegionSecret { get; set; }
public string RegionDataUri { get; set; }
public string ServerIp { get; set; }
public uint? ServerPort { get; set; }
public string ServerUri { get; set; }
public uint? LocX { get; set; }
public uint? LocY { get; set; }
public uint? LocZ { get; set; }
public ulong? EastOverrideHandle { get; set; }
public ulong? WestOverrideHandle { get; set; }
public ulong? SouthOverrideHandle { get; set; }
public ulong? NorthOverrideHandle { get; set; }
public string RegionAssetUri { get; set; }
public string RegionAssetRecvKey { get; set; }
public string RegionAssetSendKey { get; set; }
public string RegionUserUri { get; set; }
public string RegionUserRecvKey { get; set; }
public string RegionUserSendKey { get; set; }
public string RegionMapTexture { get; set; }
public int? ServerHttpPort { get; set; }
public int? ServerRemotingPort { get; set; }
public string OwnerUuid { get; set; }
public string OriginUuid { get; set; }
public uint? Access { get; set; }
public string ScopeId { get; set; }
public int SizeX { get; set; }
public int SizeY { get; set; }
public int Flags { get; set; }
public int LastSeen { get; set; }
public string PrincipalId { get; set; }
public string Token { get; set; }
public string ParcelMapTexture { get; set; }
}

View file

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class Token
{
public string Uuid { get; set; }
public string Token1 { get; set; }
public DateTime Validity { get; set; }
}

View file

@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class UserAccount
{
public string PrincipalId { get; set; }
public string ScopeId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string ServiceUrls { get; set; }
public int? Created { get; set; }
public int UserLevel { get; set; }
public int UserFlags { get; set; }
public string UserTitle { get; set; }
public int Active { get; set; }
}

View file

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class UserAlias
{
public int Id { get; set; }
public string AliasId { get; set; }
public string UserId { get; set; }
public string Description { get; set; }
}

View file

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class Userdatum
{
public string UserId { get; set; }
public string TagId { get; set; }
public string DataKey { get; set; }
public string DataVal { get; set; }
}

View file

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class Usernote
{
public string Useruuid { get; set; }
public string Targetuuid { get; set; }
public string Notes { get; set; }
}

View file

@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class Userpick
{
public string Pickuuid { get; set; }
public string Creatoruuid { get; set; }
public string Toppick { get; set; }
public string Parceluuid { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Snapshotuuid { get; set; }
public string User { get; set; }
public string Originalname { get; set; }
public string Simname { get; set; }
public string Posglobal { get; set; }
public int Sortorder { get; set; }
public string Enabled { get; set; }
public string Gatekeeper { get; set; }
}

View file

@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class Userprofile
{
public string Useruuid { get; set; }
public string ProfilePartner { get; set; }
public byte[] ProfileAllowPublish { get; set; }
public byte[] ProfileMaturePublish { get; set; }
public string ProfileUrl { get; set; }
public int ProfileWantToMask { get; set; }
public string ProfileWantToText { get; set; }
public int ProfileSkillsMask { get; set; }
public string ProfileSkillsText { get; set; }
public string ProfileLanguages { get; set; }
public string ProfileImage { get; set; }
public string ProfileAboutText { get; set; }
public string ProfileFirstImage { get; set; }
public string ProfileFirstText { get; set; }
}

View file

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Core;
public partial class Usersetting
{
public string Useruuid { get; set; }
public string Imviaemail { get; set; }
public string Visible { get; set; }
public string Email { get; set; }
}

View file

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Economy;
/// <summary>
/// Rev.4
/// </summary>
public partial class Balance
{
public string User { get; set; }
public int Balance1 { get; set; }
public sbyte? Status { get; set; }
public sbyte Type { get; set; }
}

View file

@ -0,0 +1,164 @@
using System;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
namespace OpenSim.Data.Model.Economy;
public partial class OpenSimEconomyContext : DbContext
{
public OpenSimEconomyContext(DbContextOptions<OpenSimEconomyContext> options)
: base(options)
{
}
public virtual DbSet<Balance> Balances { get; set; }
public virtual DbSet<Totalsale> Totalsales { get; set; }
public virtual DbSet<Transaction> Transactions { get; set; }
public virtual DbSet<Userinfo> Userinfos { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder
.UseCollation("utf8mb4_0900_ai_ci")
.HasCharSet("utf8mb4");
modelBuilder.Entity<Balance>(entity =>
{
entity.HasKey(e => e.User).HasName("PRIMARY");
entity
.ToTable("balances", tb => tb.HasComment("Rev.4"))
.HasCharSet("utf8mb3")
.UseCollation("utf8mb3_general_ci");
entity.Property(e => e.User)
.HasMaxLength(36)
.HasColumnName("user");
entity.Property(e => e.Balance1).HasColumnName("balance");
entity.Property(e => e.Status).HasColumnName("status");
entity.Property(e => e.Type).HasColumnName("type");
});
modelBuilder.Entity<Totalsale>(entity =>
{
entity.HasKey(e => e.Uuid).HasName("PRIMARY");
entity
.ToTable("totalsales", tb => tb.HasComment("Rev.3"))
.HasCharSet("utf8mb3")
.UseCollation("utf8mb3_general_ci");
entity.Property(e => e.Uuid)
.HasMaxLength(36)
.HasColumnName("UUID");
entity.Property(e => e.ObjectUuid)
.IsRequired()
.HasMaxLength(36)
.HasColumnName("objectUUID");
entity.Property(e => e.Time).HasColumnName("time");
entity.Property(e => e.Type).HasColumnName("type");
entity.Property(e => e.User)
.IsRequired()
.HasMaxLength(36)
.HasColumnName("user");
});
modelBuilder.Entity<Transaction>(entity =>
{
entity.HasKey(e => e.Uuid).HasName("PRIMARY");
entity
.ToTable("transactions", tb => tb.HasComment("Rev.12"))
.HasCharSet("utf8mb3")
.UseCollation("utf8mb3_general_ci");
entity.Property(e => e.Uuid)
.HasMaxLength(36)
.HasColumnName("UUID");
entity.Property(e => e.Amount).HasColumnName("amount");
entity.Property(e => e.CommonName)
.IsRequired()
.HasMaxLength(128)
.HasColumnName("commonName");
entity.Property(e => e.Description)
.HasMaxLength(255)
.HasColumnName("description");
entity.Property(e => e.ObjectName)
.HasMaxLength(255)
.HasColumnName("objectName");
entity.Property(e => e.ObjectUuid)
.HasMaxLength(36)
.HasColumnName("objectUUID");
entity.Property(e => e.Receiver)
.IsRequired()
.HasMaxLength(36)
.HasColumnName("receiver");
entity.Property(e => e.ReceiverBalance)
.HasDefaultValueSql("'-1'")
.HasColumnName("receiverBalance");
entity.Property(e => e.RegionHandle)
.IsRequired()
.HasMaxLength(36)
.HasColumnName("regionHandle");
entity.Property(e => e.RegionUuid)
.IsRequired()
.HasMaxLength(36)
.HasColumnName("regionUUID");
entity.Property(e => e.Secure)
.IsRequired()
.HasMaxLength(36)
.HasColumnName("secure");
entity.Property(e => e.Sender)
.IsRequired()
.HasMaxLength(36)
.HasColumnName("sender");
entity.Property(e => e.SenderBalance)
.HasDefaultValueSql("'-1'")
.HasColumnName("senderBalance");
entity.Property(e => e.Status).HasColumnName("status");
entity.Property(e => e.Time).HasColumnName("time");
entity.Property(e => e.Type).HasColumnName("type");
});
modelBuilder.Entity<Userinfo>(entity =>
{
entity.HasKey(e => e.User).HasName("PRIMARY");
entity
.ToTable("userinfo", tb => tb.HasComment("Rev.3"))
.HasCharSet("utf8mb3")
.UseCollation("utf8mb3_general_ci");
entity.Property(e => e.User)
.HasMaxLength(36)
.HasColumnName("user");
entity.Property(e => e.Avatar)
.IsRequired()
.HasMaxLength(50)
.HasColumnName("avatar");
entity.Property(e => e.Class).HasColumnName("class");
entity.Property(e => e.Pass)
.IsRequired()
.HasMaxLength(36)
.HasDefaultValueSql("''")
.HasColumnName("pass");
entity.Property(e => e.Serverurl)
.IsRequired()
.HasMaxLength(255)
.HasDefaultValueSql("''")
.HasColumnName("serverurl");
entity.Property(e => e.Simip)
.IsRequired()
.HasMaxLength(64)
.HasColumnName("simip");
entity.Property(e => e.Type).HasColumnName("type");
});
OnModelCreatingPartial(modelBuilder);
}
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
}

View file

@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Economy;
/// <summary>
/// Rev.3
/// </summary>
public partial class Totalsale
{
public string Uuid { get; set; }
public string User { get; set; }
public string ObjectUuid { get; set; }
public int Type { get; set; }
public int TotalCount { get; set; }
public int TotalAmount { get; set; }
public int Time { get; set; }
}

View file

@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Economy;
/// <summary>
/// Rev.12
/// </summary>
public partial class Transaction
{
public string Uuid { get; set; }
public string Sender { get; set; }
public string Receiver { get; set; }
public int Amount { get; set; }
public int SenderBalance { get; set; }
public int ReceiverBalance { get; set; }
public string ObjectUuid { get; set; }
public string ObjectName { get; set; }
public string RegionHandle { get; set; }
public string RegionUuid { get; set; }
public int Type { get; set; }
public int Time { get; set; }
public string Secure { get; set; }
public bool Status { get; set; }
public string CommonName { get; set; }
public string Description { get; set; }
}

View file

@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Economy;
/// <summary>
/// Rev.3
/// </summary>
public partial class Userinfo
{
public string User { get; set; }
public string Simip { get; set; }
public string Avatar { get; set; }
public string Pass { get; set; }
public sbyte Type { get; set; }
public sbyte Class { get; set; }
public string Serverurl { get; set; }
}

View file

@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Identity;
public partial class EfmigrationsHistory
{
public string MigrationId { get; set; }
public string ProductVersion { get; set; }
}

View file

@ -0,0 +1,165 @@
using System;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
namespace OpenSim.Data.Model.Identity;
public partial class IdentityContext : DbContext
{
public IdentityContext(DbContextOptions<IdentityContext> options)
: base(options)
{
}
public virtual DbSet<EfmigrationsHistory> EfmigrationsHistories { get; set; }
public virtual DbSet<IdentityRole> IdentityRoles { get; set; }
public virtual DbSet<IdentityRoleClaim> IdentityRoleClaims { get; set; }
public virtual DbSet<IdentityUser> IdentityUsers { get; set; }
public virtual DbSet<IdentityUserClaim> IdentityUserClaims { get; set; }
public virtual DbSet<IdentityUserLogin> IdentityUserLogins { get; set; }
public virtual DbSet<IdentityUserToken> IdentityUserTokens { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder
.UseCollation("utf8mb4_0900_ai_ci")
.HasCharSet("utf8mb4");
modelBuilder.Entity<EfmigrationsHistory>(entity =>
{
entity.HasKey(e => e.MigrationId).HasName("PRIMARY");
entity
.ToTable("__EFMigrationsHistory")
.UseCollation("utf8mb4_unicode_ci");
entity.Property(e => e.MigrationId).HasMaxLength(150);
entity.Property(e => e.ProductVersion)
.IsRequired()
.HasMaxLength(32);
});
modelBuilder.Entity<IdentityRole>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity
.ToTable("Identity_Role")
.UseCollation("utf8mb4_unicode_ci");
entity.HasIndex(e => e.NormalizedName, "RoleNameIndex")
.IsUnique()
.HasAnnotation("MySql:IndexPrefixLength", new[] { 255 });
entity.Property(e => e.Name).HasMaxLength(256);
entity.Property(e => e.NormalizedName).HasMaxLength(256);
});
modelBuilder.Entity<IdentityRoleClaim>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity
.ToTable("Identity_RoleClaims")
.UseCollation("utf8mb4_unicode_ci");
entity.HasIndex(e => e.RoleId, "IX_Identity_RoleClaims_RoleId");
entity.Property(e => e.RoleId).IsRequired();
entity.HasOne(d => d.Role).WithMany(p => p.IdentityRoleClaims).HasForeignKey(d => d.RoleId);
});
modelBuilder.Entity<IdentityUser>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity
.ToTable("Identity_User")
.UseCollation("utf8mb4_unicode_ci");
entity.HasIndex(e => e.NormalizedEmail, "EmailIndex").HasAnnotation("MySql:IndexPrefixLength", new[] { 255 });
entity.HasIndex(e => e.NormalizedUserName, "UserNameIndex")
.IsUnique()
.HasAnnotation("MySql:IndexPrefixLength", new[] { 255 });
entity.Property(e => e.Email).HasMaxLength(256);
entity.Property(e => e.LockoutEnd).HasMaxLength(6);
entity.Property(e => e.NormalizedEmail).HasMaxLength(256);
entity.Property(e => e.NormalizedUserName).HasMaxLength(256);
entity.Property(e => e.UserName).HasMaxLength(256);
entity.HasMany(d => d.Roles).WithMany(p => p.Users)
.UsingEntity<Dictionary<string, object>>(
"IdentityUserRole",
r => r.HasOne<IdentityRole>().WithMany().HasForeignKey("RoleId"),
l => l.HasOne<IdentityUser>().WithMany().HasForeignKey("UserId"),
j =>
{
j.HasKey("UserId", "RoleId")
.HasName("PRIMARY")
.HasAnnotation("MySql:IndexPrefixLength", new[] { 0, 0 });
j
.ToTable("Identity_UserRoles")
.UseCollation("utf8mb4_unicode_ci");
j.HasIndex(new[] { "RoleId" }, "IX_Identity_UserRoles_RoleId");
});
});
modelBuilder.Entity<IdentityUserClaim>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity
.ToTable("Identity_UserClaims")
.UseCollation("utf8mb4_unicode_ci");
entity.HasIndex(e => e.UserId, "IX_Identity_UserClaims_UserId");
entity.Property(e => e.UserId).IsRequired();
entity.HasOne(d => d.User).WithMany(p => p.IdentityUserClaims).HasForeignKey(d => d.UserId);
});
modelBuilder.Entity<IdentityUserLogin>(entity =>
{
entity.HasKey(e => new { e.LoginProvider, e.ProviderKey })
.HasName("PRIMARY")
.HasAnnotation("MySql:IndexPrefixLength", new[] { 0, 0 });
entity
.ToTable("Identity_UserLogins")
.UseCollation("utf8mb4_unicode_ci");
entity.HasIndex(e => e.UserId, "IX_Identity_UserLogins_UserId");
entity.Property(e => e.UserId).IsRequired();
entity.HasOne(d => d.User).WithMany(p => p.IdentityUserLogins).HasForeignKey(d => d.UserId);
});
modelBuilder.Entity<IdentityUserToken>(entity =>
{
entity.HasKey(e => new { e.UserId, e.LoginProvider, e.Name })
.HasName("PRIMARY")
.HasAnnotation("MySql:IndexPrefixLength", new[] { 0, 0, 0 });
entity
.ToTable("Identity_UserTokens")
.UseCollation("utf8mb4_unicode_ci");
entity.HasOne(d => d.User).WithMany(p => p.IdentityUserTokens).HasForeignKey(d => d.UserId);
});
OnModelCreatingPartial(modelBuilder);
}
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
}

View file

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Identity;
public partial class IdentityRole
{
public string Id { get; set; }
public string Name { get; set; }
public string NormalizedName { get; set; }
public string ConcurrencyStamp { get; set; }
public virtual ICollection<IdentityRoleClaim> IdentityRoleClaims { get; set; } = new List<IdentityRoleClaim>();
public virtual ICollection<IdentityUser> Users { get; set; } = new List<IdentityUser>();
}

View file

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Identity;
public partial class IdentityRoleClaim
{
public int Id { get; set; }
public string RoleId { get; set; }
public string ClaimType { get; set; }
public string ClaimValue { get; set; }
public virtual IdentityRole Role { get; set; }
}

View file

@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Identity;
public partial class IdentityUser
{
public string Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public byte[] ProfilePicture { get; set; }
public string UserName { get; set; }
public string NormalizedUserName { get; set; }
public string Email { get; set; }
public string NormalizedEmail { get; set; }
public bool EmailConfirmed { get; set; }
public string PasswordHash { get; set; }
public string SecurityStamp { get; set; }
public string ConcurrencyStamp { get; set; }
public string PhoneNumber { get; set; }
public bool PhoneNumberConfirmed { get; set; }
public bool TwoFactorEnabled { get; set; }
public DateTime? LockoutEnd { get; set; }
public bool LockoutEnabled { get; set; }
public int AccessFailedCount { get; set; }
public virtual ICollection<IdentityUserClaim> IdentityUserClaims { get; set; } = new List<IdentityUserClaim>();
public virtual ICollection<IdentityUserLogin> IdentityUserLogins { get; set; } = new List<IdentityUserLogin>();
public virtual ICollection<IdentityUserToken> IdentityUserTokens { get; set; } = new List<IdentityUserToken>();
public virtual ICollection<IdentityRole> Roles { get; set; } = new List<IdentityRole>();
}

View file

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Identity;
public partial class IdentityUserClaim
{
public int Id { get; set; }
public string UserId { get; set; }
public string ClaimType { get; set; }
public string ClaimValue { get; set; }
public virtual IdentityUser User { get; set; }
}

View file

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Identity;
public partial class IdentityUserLogin
{
public string LoginProvider { get; set; }
public string ProviderKey { get; set; }
public string ProviderDisplayName { get; set; }
public string UserId { get; set; }
public virtual IdentityUser User { get; set; }
}

View file

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Identity;
public partial class IdentityUserToken
{
public string UserId { get; set; }
public string LoginProvider { get; set; }
public string Name { get; set; }
public string Value { get; set; }
public virtual IdentityUser User { get; set; }
}

View file

@ -0,0 +1,30 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<UserSecretsId>5af6ba03-92b0-40d9-b129-45a5c6788134</UserSecretsId>
<AssemblyTitle>OpenSim.Data.Model</AssemblyTitle>
<Product>OpenSim.Data.Model</Product>
<Copyright>Copyright (c) Utopia Skye, LLC 2024</Copyright>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="FluentValidation.AspNetCore" Version="11.3.0" />
<PackageReference Include="MediatR" Version="12.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="8.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.3" PrivateAssets="All" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="8.0.2" />
</ItemGroup>
</Project>

View file

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Region;
public partial class Bakedterrain
{
public string RegionUuid { get; set; }
public int? Revision { get; set; }
public byte[] Heightfield { get; set; }
}

View file

@ -0,0 +1,95 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Region;
public partial class Land
{
public string Uuid { get; set; }
public string RegionUuid { get; set; }
public int? LocalLandId { get; set; }
public byte[] Bitmap { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string OwnerUuid { get; set; }
public int? IsGroupOwned { get; set; }
public int? Area { get; set; }
public int? AuctionId { get; set; }
public int? Category { get; set; }
public int? ClaimDate { get; set; }
public int? ClaimPrice { get; set; }
public string GroupUuid { get; set; }
public int? SalePrice { get; set; }
public int? LandStatus { get; set; }
public uint? LandFlags { get; set; }
public int? LandingType { get; set; }
public int? MediaAutoScale { get; set; }
public string MediaTextureUuid { get; set; }
public string MediaUrl { get; set; }
public string MusicUrl { get; set; }
public float? PassHours { get; set; }
public int? PassPrice { get; set; }
public string SnapshotUuid { get; set; }
public float? UserLocationX { get; set; }
public float? UserLocationY { get; set; }
public float? UserLocationZ { get; set; }
public float? UserLookAtX { get; set; }
public float? UserLookAtY { get; set; }
public float? UserLookAtZ { get; set; }
public string AuthbuyerId { get; set; }
public int OtherCleanTime { get; set; }
public int Dwell { get; set; }
public string MediaType { get; set; }
public string MediaDescription { get; set; }
public string MediaSize { get; set; }
public bool MediaLoop { get; set; }
public bool ObscureMusic { get; set; }
public bool ObscureMedia { get; set; }
public sbyte SeeAvs { get; set; }
public sbyte AnyAvsounds { get; set; }
public sbyte GroupAvsounds { get; set; }
public string Environment { get; set; }
}

View file

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Region;
public partial class Landaccesslist
{
public string LandUuid { get; set; }
public string AccessUuid { get; set; }
public int? Flags { get; set; }
public int Expires { get; set; }
}

View file

@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Region;
public partial class Migration
{
public string Name { get; set; }
public int? Version { get; set; }
}

View file

@ -0,0 +1,863 @@
using System;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
namespace OpenSim.Data.Model.Region;
public partial class OpenSimRegionContext : DbContext
{
public OpenSimRegionContext(DbContextOptions<OpenSimRegionContext> options)
: base(options)
{
}
public virtual DbSet<Bakedterrain> Bakedterrains { get; set; }
public virtual DbSet<Land> Lands { get; set; }
public virtual DbSet<Landaccesslist> Landaccesslists { get; set; }
public virtual DbSet<Migration> Migrations { get; set; }
public virtual DbSet<Prim> Prims { get; set; }
public virtual DbSet<Primitem> Primitems { get; set; }
public virtual DbSet<Primshape> Primshapes { get; set; }
public virtual DbSet<Regionban> Regionbans { get; set; }
public virtual DbSet<Regionenvironment> Regionenvironments { get; set; }
public virtual DbSet<Regionextra> Regionextras { get; set; }
public virtual DbSet<Regionsetting> Regionsettings { get; set; }
public virtual DbSet<Regionwindlight> Regionwindlights { get; set; }
public virtual DbSet<SpawnPoint> SpawnPoints { get; set; }
public virtual DbSet<Terrain> Terrains { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder
.UseCollation("utf8mb4_0900_ai_ci")
.HasCharSet("utf8mb4");
modelBuilder.Entity<Bakedterrain>(entity =>
{
entity
.HasNoKey()
.ToTable("bakedterrain")
.HasCharSet("utf8mb3")
.UseCollation("utf8mb3_general_ci");
entity.Property(e => e.RegionUuid)
.HasMaxLength(255)
.HasColumnName("RegionUUID");
});
modelBuilder.Entity<Land>(entity =>
{
entity.HasKey(e => e.Uuid).HasName("PRIMARY");
entity
.ToTable("land")
.HasCharSet("utf8mb3")
.UseCollation("utf8mb3_general_ci");
entity.Property(e => e.Uuid).HasColumnName("UUID");
entity.Property(e => e.AnyAvsounds)
.HasDefaultValueSql("'1'")
.HasColumnName("AnyAVSounds");
entity.Property(e => e.AuctionId).HasColumnName("AuctionID");
entity.Property(e => e.AuthbuyerId)
.IsRequired()
.HasMaxLength(36)
.HasDefaultValueSql("'00000000-0000-0000-0000-000000000000'")
.HasColumnName("AuthbuyerID");
entity.Property(e => e.Description).HasMaxLength(255);
entity.Property(e => e.Environment)
.HasColumnType("mediumtext")
.HasColumnName("environment");
entity.Property(e => e.GroupAvsounds)
.HasDefaultValueSql("'1'")
.HasColumnName("GroupAVSounds");
entity.Property(e => e.GroupUuid)
.HasMaxLength(255)
.HasColumnName("GroupUUID");
entity.Property(e => e.LocalLandId).HasColumnName("LocalLandID");
entity.Property(e => e.MediaDescription)
.IsRequired()
.HasMaxLength(255)
.HasDefaultValueSql("''");
entity.Property(e => e.MediaSize)
.IsRequired()
.HasMaxLength(16)
.HasDefaultValueSql("'0,0'");
entity.Property(e => e.MediaTextureUuid)
.HasMaxLength(255)
.HasColumnName("MediaTextureUUID");
entity.Property(e => e.MediaType)
.IsRequired()
.HasMaxLength(32)
.HasDefaultValueSql("'none/none'");
entity.Property(e => e.MediaUrl)
.HasMaxLength(255)
.HasColumnName("MediaURL");
entity.Property(e => e.MusicUrl)
.HasMaxLength(255)
.HasColumnName("MusicURL");
entity.Property(e => e.Name).HasMaxLength(255);
entity.Property(e => e.OwnerUuid)
.HasMaxLength(255)
.HasColumnName("OwnerUUID");
entity.Property(e => e.RegionUuid)
.HasMaxLength(255)
.HasColumnName("RegionUUID");
entity.Property(e => e.SeeAvs)
.HasDefaultValueSql("'1'")
.HasColumnName("SeeAVs");
entity.Property(e => e.SnapshotUuid)
.HasMaxLength(255)
.HasColumnName("SnapshotUUID");
});
modelBuilder.Entity<Landaccesslist>(entity =>
{
entity
.HasNoKey()
.ToTable("landaccesslist")
.HasCharSet("latin1")
.UseCollation("latin1_swedish_ci");
entity.Property(e => e.AccessUuid)
.HasMaxLength(255)
.HasColumnName("AccessUUID");
entity.Property(e => e.LandUuid)
.HasMaxLength(255)
.HasColumnName("LandUUID");
});
modelBuilder.Entity<Migration>(entity =>
{
entity
.HasNoKey()
.ToTable("migrations")
.HasCharSet("utf8mb3")
.UseCollation("utf8mb3_general_ci");
entity.Property(e => e.Name)
.HasMaxLength(100)
.HasColumnName("name");
entity.Property(e => e.Version).HasColumnName("version");
});
modelBuilder.Entity<Prim>(entity =>
{
entity.HasKey(e => e.Uuid).HasName("PRIMARY");
entity
.ToTable("prims")
.HasCharSet("latin1")
.UseCollation("latin1_swedish_ci");
entity.HasIndex(e => e.RegionUuid, "prims_regionuuid");
entity.HasIndex(e => e.SceneGroupId, "prims_scenegroupid");
entity.Property(e => e.Uuid)
.HasMaxLength(36)
.HasDefaultValueSql("''")
.IsFixedLength()
.HasColumnName("UUID");
entity.Property(e => e.AccelerationX).HasDefaultValueSql("'0'");
entity.Property(e => e.AccelerationY).HasDefaultValueSql("'0'");
entity.Property(e => e.AccelerationZ).HasDefaultValueSql("'0'");
entity.Property(e => e.AngularVelocityX).HasDefaultValueSql("'0'");
entity.Property(e => e.AngularVelocityY).HasDefaultValueSql("'0'");
entity.Property(e => e.AngularVelocityZ).HasDefaultValueSql("'0'");
entity.Property(e => e.AttachedPosX).HasDefaultValueSql("'0'");
entity.Property(e => e.AttachedPosY).HasDefaultValueSql("'0'");
entity.Property(e => e.AttachedPosZ).HasDefaultValueSql("'0'");
entity.Property(e => e.CameraAtOffsetX).HasDefaultValueSql("'0'");
entity.Property(e => e.CameraAtOffsetY).HasDefaultValueSql("'0'");
entity.Property(e => e.CameraAtOffsetZ).HasDefaultValueSql("'0'");
entity.Property(e => e.CameraEyeOffsetX).HasDefaultValueSql("'0'");
entity.Property(e => e.CameraEyeOffsetY).HasDefaultValueSql("'0'");
entity.Property(e => e.CameraEyeOffsetZ).HasDefaultValueSql("'0'");
entity.Property(e => e.CollisionSound)
.IsRequired()
.HasMaxLength(36)
.HasDefaultValueSql("'00000000-0000-0000-0000-000000000000'")
.IsFixedLength();
entity.Property(e => e.CreatorId)
.IsRequired()
.HasMaxLength(255)
.HasDefaultValueSql("''")
.HasColumnName("CreatorID");
entity.Property(e => e.Density).HasDefaultValueSql("'1000'");
entity.Property(e => e.Description)
.HasMaxLength(255)
.UseCollation("utf8mb3_general_ci")
.HasCharSet("utf8mb3");
entity.Property(e => e.DynAttrs).HasColumnType("text");
entity.Property(e => e.Friction).HasDefaultValueSql("'0.6'");
entity.Property(e => e.GravityModifier).HasDefaultValueSql("'1'");
entity.Property(e => e.GroupId)
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("GroupID");
entity.Property(e => e.GroupPositionX).HasDefaultValueSql("'0'");
entity.Property(e => e.GroupPositionY).HasDefaultValueSql("'0'");
entity.Property(e => e.GroupPositionZ).HasDefaultValueSql("'0'");
entity.Property(e => e.KeyframeMotion).HasColumnType("blob");
entity.Property(e => e.LastOwnerId)
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("LastOwnerID");
entity.Property(e => e.Linksetdata)
.HasColumnType("mediumtext")
.HasColumnName("linksetdata");
entity.Property(e => e.LoopedSound)
.IsRequired()
.HasMaxLength(36)
.HasDefaultValueSql("'00000000-0000-0000-0000-000000000000'")
.IsFixedLength();
entity.Property(e => e.LoopedSoundGain).HasDefaultValueSql("'0'");
entity.Property(e => e.Material).HasDefaultValueSql("'3'");
entity.Property(e => e.MediaUrl)
.HasMaxLength(255)
.HasColumnName("MediaURL");
entity.Property(e => e.Name)
.HasMaxLength(255)
.UseCollation("utf8mb3_general_ci")
.HasCharSet("utf8mb3");
entity.Property(e => e.OmegaX).HasDefaultValueSql("'0'");
entity.Property(e => e.OmegaY).HasDefaultValueSql("'0'");
entity.Property(e => e.OmegaZ).HasDefaultValueSql("'0'");
entity.Property(e => e.OwnerId)
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("OwnerID");
entity.Property(e => e.ParticleSystem).HasColumnType("blob");
entity.Property(e => e.PhysInertia).HasColumnType("text");
entity.Property(e => e.PositionX).HasDefaultValueSql("'0'");
entity.Property(e => e.PositionY).HasDefaultValueSql("'0'");
entity.Property(e => e.PositionZ).HasDefaultValueSql("'0'");
entity.Property(e => e.Pseudocrc)
.HasDefaultValueSql("'0'")
.HasColumnName("pseudocrc");
entity.Property(e => e.RegionUuid)
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("RegionUUID");
entity.Property(e => e.Restitution).HasDefaultValueSql("'0.5'");
entity.Property(e => e.RezzerId)
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("RezzerID");
entity.Property(e => e.RotationW).HasDefaultValueSql("'0'");
entity.Property(e => e.RotationX).HasDefaultValueSql("'0'");
entity.Property(e => e.RotationY).HasDefaultValueSql("'0'");
entity.Property(e => e.RotationZ).HasDefaultValueSql("'0'");
entity.Property(e => e.SalePrice).HasDefaultValueSql("'10'");
entity.Property(e => e.SceneGroupId)
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("SceneGroupID");
entity.Property(e => e.SitName)
.HasMaxLength(255)
.UseCollation("utf8mb3_general_ci")
.HasCharSet("utf8mb3");
entity.Property(e => e.SitTargetOffsetX).HasDefaultValueSql("'0'");
entity.Property(e => e.SitTargetOffsetY).HasDefaultValueSql("'0'");
entity.Property(e => e.SitTargetOffsetZ).HasDefaultValueSql("'0'");
entity.Property(e => e.SitTargetOrientW).HasDefaultValueSql("'0'");
entity.Property(e => e.SitTargetOrientX).HasDefaultValueSql("'0'");
entity.Property(e => e.SitTargetOrientY).HasDefaultValueSql("'0'");
entity.Property(e => e.SitTargetOrientZ).HasDefaultValueSql("'0'");
entity.Property(e => e.Sitactrange)
.HasDefaultValueSql("'0'")
.HasColumnName("sitactrange");
entity.Property(e => e.Sopanims)
.HasColumnType("blob")
.HasColumnName("sopanims");
entity.Property(e => e.Standtargetx)
.HasDefaultValueSql("'0'")
.HasColumnName("standtargetx");
entity.Property(e => e.Standtargety)
.HasDefaultValueSql("'0'")
.HasColumnName("standtargety");
entity.Property(e => e.Standtargetz)
.HasDefaultValueSql("'0'")
.HasColumnName("standtargetz");
entity.Property(e => e.Text)
.HasMaxLength(255)
.UseCollation("utf8mb3_general_ci")
.HasCharSet("utf8mb3");
entity.Property(e => e.TextureAnimation).HasColumnType("blob");
entity.Property(e => e.TouchName)
.HasMaxLength(255)
.UseCollation("utf8mb3_general_ci")
.HasCharSet("utf8mb3");
entity.Property(e => e.Vehicle).HasColumnType("text");
entity.Property(e => e.VelocityX).HasDefaultValueSql("'0'");
entity.Property(e => e.VelocityY).HasDefaultValueSql("'0'");
entity.Property(e => e.VelocityZ).HasDefaultValueSql("'0'");
});
modelBuilder.Entity<Primitem>(entity =>
{
entity.HasKey(e => e.ItemId).HasName("PRIMARY");
entity
.ToTable("primitems")
.HasCharSet("latin1")
.UseCollation("latin1_swedish_ci");
entity.HasIndex(e => e.PrimId, "primitems_primid");
entity.Property(e => e.ItemId)
.HasMaxLength(36)
.HasDefaultValueSql("''")
.IsFixedLength()
.HasColumnName("itemID");
entity.Property(e => e.AssetId)
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("assetID");
entity.Property(e => e.AssetType).HasColumnName("assetType");
entity.Property(e => e.BasePermissions).HasColumnName("basePermissions");
entity.Property(e => e.CreationDate).HasColumnName("creationDate");
entity.Property(e => e.CreatorId)
.IsRequired()
.HasMaxLength(255)
.HasDefaultValueSql("''")
.HasColumnName("CreatorID");
entity.Property(e => e.CurrentPermissions).HasColumnName("currentPermissions");
entity.Property(e => e.Description)
.HasMaxLength(255)
.HasColumnName("description");
entity.Property(e => e.EveryonePermissions).HasColumnName("everyonePermissions");
entity.Property(e => e.Flags).HasColumnName("flags");
entity.Property(e => e.GroupId)
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("groupID");
entity.Property(e => e.GroupPermissions).HasColumnName("groupPermissions");
entity.Property(e => e.InvType).HasColumnName("invType");
entity.Property(e => e.LastOwnerId)
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("lastOwnerID");
entity.Property(e => e.Name)
.HasMaxLength(255)
.HasColumnName("name");
entity.Property(e => e.NextPermissions).HasColumnName("nextPermissions");
entity.Property(e => e.OwnerId)
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("ownerID");
entity.Property(e => e.ParentFolderId)
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("parentFolderID");
entity.Property(e => e.PrimId)
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("primID");
});
modelBuilder.Entity<Primshape>(entity =>
{
entity.HasKey(e => e.Uuid).HasName("PRIMARY");
entity
.ToTable("primshapes")
.HasCharSet("latin1")
.UseCollation("latin1_swedish_ci");
entity.Property(e => e.Uuid)
.HasMaxLength(36)
.HasDefaultValueSql("''")
.IsFixedLength()
.HasColumnName("UUID");
entity.Property(e => e.MatOvrd).HasColumnType("blob");
entity.Property(e => e.Media).HasColumnType("text");
entity.Property(e => e.Pcode).HasColumnName("PCode");
});
modelBuilder.Entity<Regionban>(entity =>
{
entity
.HasNoKey()
.ToTable("regionban")
.HasCharSet("utf8mb3")
.UseCollation("utf8mb3_general_ci");
entity.Property(e => e.BannedIp)
.IsRequired()
.HasMaxLength(16)
.HasColumnName("bannedIp");
entity.Property(e => e.BannedIpHostMask)
.IsRequired()
.HasMaxLength(16)
.HasColumnName("bannedIpHostMask");
entity.Property(e => e.BannedUuid)
.IsRequired()
.HasMaxLength(36)
.HasColumnName("bannedUUID");
entity.Property(e => e.RegionUuid)
.IsRequired()
.HasMaxLength(36)
.HasColumnName("regionUUID");
});
modelBuilder.Entity<Regionenvironment>(entity =>
{
entity.HasKey(e => e.RegionId).HasName("PRIMARY");
entity
.ToTable("regionenvironment")
.HasCharSet("utf8mb3")
.UseCollation("utf8mb3_general_ci");
entity.Property(e => e.RegionId)
.HasMaxLength(36)
.HasColumnName("region_id");
entity.Property(e => e.LlsdSettings)
.HasColumnType("mediumtext")
.HasColumnName("llsd_settings");
});
modelBuilder.Entity<Regionextra>(entity =>
{
entity.HasKey(e => new { e.RegionId, e.Name })
.HasName("PRIMARY")
.HasAnnotation("MySql:IndexPrefixLength", new[] { 0, 0 });
entity
.ToTable("regionextra")
.HasCharSet("utf8mb3")
.UseCollation("utf8mb3_general_ci");
entity.Property(e => e.RegionId)
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("RegionID");
entity.Property(e => e.Name).HasMaxLength(32);
entity.Property(e => e.Value)
.HasColumnType("text")
.HasColumnName("value");
});
modelBuilder.Entity<Regionsetting>(entity =>
{
entity.HasKey(e => e.RegionUuid).HasName("PRIMARY");
entity
.ToTable("regionsettings")
.HasCharSet("utf8mb3")
.UseCollation("utf8mb3_general_ci");
entity.Property(e => e.RegionUuid)
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("regionUUID");
entity.Property(e => e.AgentLimit).HasColumnName("agent_limit");
entity.Property(e => e.AllowDamage).HasColumnName("allow_damage");
entity.Property(e => e.AllowLandJoinDivide).HasColumnName("allow_land_join_divide");
entity.Property(e => e.AllowLandResell).HasColumnName("allow_land_resell");
entity.Property(e => e.BlockFly).HasColumnName("block_fly");
entity.Property(e => e.BlockSearch).HasColumnName("block_search");
entity.Property(e => e.BlockShowInSearch).HasColumnName("block_show_in_search");
entity.Property(e => e.BlockTerraform).HasColumnName("block_terraform");
entity.Property(e => e.CacheId)
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("cacheID");
entity.Property(e => e.Casino).HasColumnName("casino");
entity.Property(e => e.Covenant)
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("covenant");
entity.Property(e => e.CovenantDatetime).HasColumnName("covenant_datetime");
entity.Property(e => e.DisableCollisions).HasColumnName("disable_collisions");
entity.Property(e => e.DisablePhysics).HasColumnName("disable_physics");
entity.Property(e => e.DisableScripts).HasColumnName("disable_scripts");
entity.Property(e => e.Elevation1Ne).HasColumnName("elevation_1_ne");
entity.Property(e => e.Elevation1Nw).HasColumnName("elevation_1_nw");
entity.Property(e => e.Elevation1Se).HasColumnName("elevation_1_se");
entity.Property(e => e.Elevation1Sw).HasColumnName("elevation_1_sw");
entity.Property(e => e.Elevation2Ne).HasColumnName("elevation_2_ne");
entity.Property(e => e.Elevation2Nw).HasColumnName("elevation_2_nw");
entity.Property(e => e.Elevation2Se).HasColumnName("elevation_2_se");
entity.Property(e => e.Elevation2Sw).HasColumnName("elevation_2_sw");
entity.Property(e => e.FixedSun).HasColumnName("fixed_sun");
entity.Property(e => e.LoadedCreationDatetime).HasColumnName("loaded_creation_datetime");
entity.Property(e => e.LoadedCreationId)
.HasMaxLength(64)
.HasColumnName("loaded_creation_id");
entity.Property(e => e.MapTileId)
.IsRequired()
.HasMaxLength(36)
.HasDefaultValueSql("'00000000-0000-0000-0000-000000000000'")
.IsFixedLength()
.HasColumnName("map_tile_ID");
entity.Property(e => e.Maturity).HasColumnName("maturity");
entity.Property(e => e.ObjectBonus).HasColumnName("object_bonus");
entity.Property(e => e.ParcelTileId)
.IsRequired()
.HasMaxLength(36)
.HasDefaultValueSql("'00000000-0000-0000-0000-000000000000'")
.IsFixedLength()
.HasColumnName("parcel_tile_ID");
entity.Property(e => e.RestrictPushing).HasColumnName("restrict_pushing");
entity.Property(e => e.SunPosition).HasColumnName("sun_position");
entity.Property(e => e.Sunvectorx).HasColumnName("sunvectorx");
entity.Property(e => e.Sunvectory).HasColumnName("sunvectory");
entity.Property(e => e.Sunvectorz).HasColumnName("sunvectorz");
entity.Property(e => e.TelehubObject)
.IsRequired()
.HasMaxLength(36)
.HasDefaultValueSql("'00000000-0000-0000-0000-000000000000'");
entity.Property(e => e.TerrainLowerLimit).HasColumnName("terrain_lower_limit");
entity.Property(e => e.TerrainRaiseLimit).HasColumnName("terrain_raise_limit");
entity.Property(e => e.TerrainTexture1)
.IsRequired()
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("terrain_texture_1");
entity.Property(e => e.TerrainTexture2)
.IsRequired()
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("terrain_texture_2");
entity.Property(e => e.TerrainTexture3)
.IsRequired()
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("terrain_texture_3");
entity.Property(e => e.TerrainTexture4)
.IsRequired()
.HasMaxLength(36)
.IsFixedLength()
.HasColumnName("terrain_texture_4");
entity.Property(e => e.UseEstateSun).HasColumnName("use_estate_sun");
entity.Property(e => e.WaterHeight).HasColumnName("water_height");
entity.Property(e => e.TerrainPBR1)
.HasColumnName("TerrainPBR1")
.IsRequired()
.HasMaxLength(36)
.IsFixedLength()
.HasDefaultValueSql("'00000000-0000-0000-0000-000000000000'");
entity.Property(e => e.TerrainPBR2)
.HasColumnName("TerrainPBR2")
.IsRequired()
.HasMaxLength(36)
.IsFixedLength()
.HasDefaultValueSql("'00000000-0000-0000-0000-000000000000'");
entity.Property(e => e.TerrainPBR3)
.HasColumnName("TerrainPBR3")
.IsRequired()
.HasMaxLength(36)
.IsFixedLength()
.HasDefaultValueSql("'00000000-0000-0000-0000-000000000000'");
entity.Property(e => e.TerrainPBR4)
.HasColumnName("TerrainPBR4")
.IsRequired()
.HasMaxLength(36)
.IsFixedLength()
.HasDefaultValueSql("'00000000-0000-0000-0000-000000000000'");
});
modelBuilder.Entity<Regionwindlight>(entity =>
{
entity.HasKey(e => e.RegionId).HasName("PRIMARY");
entity
.ToTable("regionwindlight")
.HasCharSet("utf8mb3")
.UseCollation("utf8mb3_general_ci");
entity.Property(e => e.RegionId)
.HasMaxLength(36)
.HasDefaultValueSql("'000000-0000-0000-0000-000000000000'")
.HasColumnName("region_id");
entity.Property(e => e.AmbientB)
.HasDefaultValueSql("'0.34999999'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("ambient_b");
entity.Property(e => e.AmbientG)
.HasDefaultValueSql("'0.34999999'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("ambient_g");
entity.Property(e => e.AmbientI)
.HasDefaultValueSql("'0.34999999'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("ambient_i");
entity.Property(e => e.AmbientR)
.HasDefaultValueSql("'0.34999999'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("ambient_r");
entity.Property(e => e.BigWaveDirectionX)
.HasDefaultValueSql("'1.04999995'")
.HasColumnType("float(9,8)")
.HasColumnName("big_wave_direction_x");
entity.Property(e => e.BigWaveDirectionY)
.HasDefaultValueSql("'-0.41999999'")
.HasColumnType("float(9,8)")
.HasColumnName("big_wave_direction_y");
entity.Property(e => e.BlueDensityB)
.HasDefaultValueSql("'0.38000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("blue_density_b");
entity.Property(e => e.BlueDensityG)
.HasDefaultValueSql("'0.22000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("blue_density_g");
entity.Property(e => e.BlueDensityI)
.HasDefaultValueSql("'0.38000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("blue_density_i");
entity.Property(e => e.BlueDensityR)
.HasDefaultValueSql("'0.12000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("blue_density_r");
entity.Property(e => e.BlurMultiplier)
.HasDefaultValueSql("'0.04000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("blur_multiplier");
entity.Property(e => e.CloudColorB)
.HasDefaultValueSql("'0.41000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("cloud_color_b");
entity.Property(e => e.CloudColorG)
.HasDefaultValueSql("'0.41000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("cloud_color_g");
entity.Property(e => e.CloudColorI)
.HasDefaultValueSql("'0.41000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("cloud_color_i");
entity.Property(e => e.CloudColorR)
.HasDefaultValueSql("'0.41000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("cloud_color_r");
entity.Property(e => e.CloudCoverage)
.HasDefaultValueSql("'0.27000001'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("cloud_coverage");
entity.Property(e => e.CloudDensity)
.HasDefaultValueSql("'1.00000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("cloud_density");
entity.Property(e => e.CloudDetailDensity)
.HasDefaultValueSql("'0.12000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("cloud_detail_density");
entity.Property(e => e.CloudDetailX)
.HasDefaultValueSql("'1.00000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("cloud_detail_x");
entity.Property(e => e.CloudDetailY)
.HasDefaultValueSql("'0.52999997'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("cloud_detail_y");
entity.Property(e => e.CloudScale)
.HasDefaultValueSql("'0.41999999'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("cloud_scale");
entity.Property(e => e.CloudScrollX)
.HasDefaultValueSql("'0.2000000'")
.HasColumnType("float(9,7)")
.HasColumnName("cloud_scroll_x");
entity.Property(e => e.CloudScrollXLock).HasColumnName("cloud_scroll_x_lock");
entity.Property(e => e.CloudScrollY)
.HasDefaultValueSql("'0.0100000'")
.HasColumnType("float(9,7)")
.HasColumnName("cloud_scroll_y");
entity.Property(e => e.CloudScrollYLock).HasColumnName("cloud_scroll_y_lock");
entity.Property(e => e.CloudX)
.HasDefaultValueSql("'1.00000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("cloud_x");
entity.Property(e => e.CloudY)
.HasDefaultValueSql("'0.52999997'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("cloud_y");
entity.Property(e => e.DensityMultiplier)
.HasDefaultValueSql("'0.18000001'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("density_multiplier");
entity.Property(e => e.DistanceMultiplier)
.HasDefaultValueSql("'0.800000'")
.HasColumnType("float(9,6) unsigned")
.HasColumnName("distance_multiplier");
entity.Property(e => e.DrawClassicClouds)
.HasDefaultValueSql("'1'")
.HasColumnName("draw_classic_clouds");
entity.Property(e => e.EastAngle)
.HasColumnType("float(9,8) unsigned")
.HasColumnName("east_angle");
entity.Property(e => e.FresnelOffset)
.HasDefaultValueSql("'0.50000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("fresnel_offset");
entity.Property(e => e.FresnelScale)
.HasDefaultValueSql("'0.40000001'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("fresnel_scale");
entity.Property(e => e.HazeDensity)
.HasDefaultValueSql("'0.69999999'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("haze_density");
entity.Property(e => e.HazeHorizon)
.HasDefaultValueSql("'0.19000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("haze_horizon");
entity.Property(e => e.HorizonB)
.HasDefaultValueSql("'0.31999999'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("horizon_b");
entity.Property(e => e.HorizonG)
.HasDefaultValueSql("'0.25000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("horizon_g");
entity.Property(e => e.HorizonI)
.HasDefaultValueSql("'0.31999999'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("horizon_i");
entity.Property(e => e.HorizonR)
.HasDefaultValueSql("'0.25000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("horizon_r");
entity.Property(e => e.LittleWaveDirectionX)
.HasDefaultValueSql("'1.11000001'")
.HasColumnType("float(9,8)")
.HasColumnName("little_wave_direction_x");
entity.Property(e => e.LittleWaveDirectionY)
.HasDefaultValueSql("'-1.15999997'")
.HasColumnType("float(9,8)")
.HasColumnName("little_wave_direction_y");
entity.Property(e => e.MaxAltitude)
.HasDefaultValueSql("'1605'")
.HasColumnName("max_altitude");
entity.Property(e => e.NormalMapTexture)
.IsRequired()
.HasMaxLength(36)
.HasDefaultValueSql("'822ded49-9a6c-f61c-cb89-6df54f42cdf4'")
.HasColumnName("normal_map_texture");
entity.Property(e => e.ReflectionWaveletScale1)
.HasDefaultValueSql("'2.0000000'")
.HasColumnType("float(9,7) unsigned")
.HasColumnName("reflection_wavelet_scale_1");
entity.Property(e => e.ReflectionWaveletScale2)
.HasDefaultValueSql("'2.0000000'")
.HasColumnType("float(9,7) unsigned")
.HasColumnName("reflection_wavelet_scale_2");
entity.Property(e => e.ReflectionWaveletScale3)
.HasDefaultValueSql("'2.0000000'")
.HasColumnType("float(9,7) unsigned")
.HasColumnName("reflection_wavelet_scale_3");
entity.Property(e => e.RefractScaleAbove)
.HasDefaultValueSql("'0.03000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("refract_scale_above");
entity.Property(e => e.RefractScaleBelow)
.HasDefaultValueSql("'0.20000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("refract_scale_below");
entity.Property(e => e.SceneGamma)
.HasDefaultValueSql("'1.0000000'")
.HasColumnType("float(9,7) unsigned")
.HasColumnName("scene_gamma");
entity.Property(e => e.StarBrightness)
.HasColumnType("float(9,8) unsigned")
.HasColumnName("star_brightness");
entity.Property(e => e.SunGlowFocus)
.HasDefaultValueSql("'0.10000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("sun_glow_focus");
entity.Property(e => e.SunGlowSize)
.HasDefaultValueSql("'1.75000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("sun_glow_size");
entity.Property(e => e.SunMoonColorB)
.HasDefaultValueSql("'0.30000001'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("sun_moon_color_b");
entity.Property(e => e.SunMoonColorG)
.HasDefaultValueSql("'0.25999999'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("sun_moon_color_g");
entity.Property(e => e.SunMoonColorI)
.HasDefaultValueSql("'0.30000001'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("sun_moon_color_i");
entity.Property(e => e.SunMoonColorR)
.HasDefaultValueSql("'0.23999999'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("sun_moon_color_r");
entity.Property(e => e.SunMoonPosition)
.HasDefaultValueSql("'0.31700000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("sun_moon_position");
entity.Property(e => e.UnderwaterFogModifier)
.HasDefaultValueSql("'0.25000000'")
.HasColumnType("float(9,8) unsigned")
.HasColumnName("underwater_fog_modifier");
entity.Property(e => e.WaterColorB)
.HasDefaultValueSql("'64.000000'")
.HasColumnType("float(9,6) unsigned")
.HasColumnName("water_color_b");
entity.Property(e => e.WaterColorG)
.HasDefaultValueSql("'38.000000'")
.HasColumnType("float(9,6) unsigned")
.HasColumnName("water_color_g");
entity.Property(e => e.WaterColorR)
.HasDefaultValueSql("'4.000000'")
.HasColumnType("float(9,6) unsigned")
.HasColumnName("water_color_r");
entity.Property(e => e.WaterFogDensityExponent)
.HasDefaultValueSql("'4.0000000'")
.HasColumnType("float(9,7) unsigned")
.HasColumnName("water_fog_density_exponent");
});
modelBuilder.Entity<SpawnPoint>(entity =>
{
entity
.HasNoKey()
.ToTable("spawn_points")
.HasCharSet("utf8mb3")
.UseCollation("utf8mb3_general_ci");
entity.HasIndex(e => e.RegionId, "RegionID");
entity.Property(e => e.RegionId)
.IsRequired()
.HasMaxLength(36)
.HasColumnName("RegionID");
});
modelBuilder.Entity<Terrain>(entity =>
{
entity
.HasNoKey()
.ToTable("terrain")
.HasCharSet("latin1")
.UseCollation("latin1_swedish_ci");
entity.Property(e => e.RegionUuid)
.HasMaxLength(255)
.HasColumnName("RegionUUID");
});
OnModelCreatingPartial(modelBuilder);
}
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
}

View file

@ -0,0 +1,211 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Region;
public partial class Prim
{
public int? CreationDate { get; set; }
public string Name { get; set; }
public string Text { get; set; }
public string Description { get; set; }
public string SitName { get; set; }
public string TouchName { get; set; }
public int? ObjectFlags { get; set; }
public int? OwnerMask { get; set; }
public int? NextOwnerMask { get; set; }
public int? GroupMask { get; set; }
public int? EveryoneMask { get; set; }
public int? BaseMask { get; set; }
public float? PositionX { get; set; }
public float? PositionY { get; set; }
public float? PositionZ { get; set; }
public float? GroupPositionX { get; set; }
public float? GroupPositionY { get; set; }
public float? GroupPositionZ { get; set; }
public float? VelocityX { get; set; }
public float? VelocityY { get; set; }
public float? VelocityZ { get; set; }
public float? AngularVelocityX { get; set; }
public float? AngularVelocityY { get; set; }
public float? AngularVelocityZ { get; set; }
public float? AccelerationX { get; set; }
public float? AccelerationY { get; set; }
public float? AccelerationZ { get; set; }
public float? RotationX { get; set; }
public float? RotationY { get; set; }
public float? RotationZ { get; set; }
public float? RotationW { get; set; }
public float? SitTargetOffsetX { get; set; }
public float? SitTargetOffsetY { get; set; }
public float? SitTargetOffsetZ { get; set; }
public float? SitTargetOrientW { get; set; }
public float? SitTargetOrientX { get; set; }
public float? SitTargetOrientY { get; set; }
public float? SitTargetOrientZ { get; set; }
public string Uuid { get; set; }
public string RegionUuid { get; set; }
public string CreatorId { get; set; }
public string OwnerId { get; set; }
public string GroupId { get; set; }
public string LastOwnerId { get; set; }
public string SceneGroupId { get; set; }
public int PayPrice { get; set; }
public int PayButton1 { get; set; }
public int PayButton2 { get; set; }
public int PayButton3 { get; set; }
public int PayButton4 { get; set; }
public string LoopedSound { get; set; }
public float? LoopedSoundGain { get; set; }
public byte[] TextureAnimation { get; set; }
public float? OmegaX { get; set; }
public float? OmegaY { get; set; }
public float? OmegaZ { get; set; }
public float? CameraEyeOffsetX { get; set; }
public float? CameraEyeOffsetY { get; set; }
public float? CameraEyeOffsetZ { get; set; }
public float? CameraAtOffsetX { get; set; }
public float? CameraAtOffsetY { get; set; }
public float? CameraAtOffsetZ { get; set; }
public sbyte ForceMouselook { get; set; }
public int ScriptAccessPin { get; set; }
public sbyte AllowedDrop { get; set; }
public sbyte DieAtEdge { get; set; }
public int SalePrice { get; set; }
public sbyte SaleType { get; set; }
public int ColorR { get; set; }
public int ColorG { get; set; }
public int ColorB { get; set; }
public int ColorA { get; set; }
public byte[] ParticleSystem { get; set; }
public sbyte ClickAction { get; set; }
public sbyte Material { get; set; }
public string CollisionSound { get; set; }
public double CollisionSoundVolume { get; set; }
public int LinkNumber { get; set; }
public sbyte PassTouches { get; set; }
public string MediaUrl { get; set; }
public string DynAttrs { get; set; }
public sbyte PhysicsShapeType { get; set; }
public float? Density { get; set; }
public float? GravityModifier { get; set; }
public float? Friction { get; set; }
public float? Restitution { get; set; }
public byte[] KeyframeMotion { get; set; }
public float? AttachedPosX { get; set; }
public float? AttachedPosY { get; set; }
public float? AttachedPosZ { get; set; }
public sbyte PassCollisions { get; set; }
public string Vehicle { get; set; }
public sbyte RotationAxisLocks { get; set; }
public string RezzerId { get; set; }
public string PhysInertia { get; set; }
public byte[] Sopanims { get; set; }
public float? Standtargetx { get; set; }
public float? Standtargety { get; set; }
public float? Standtargetz { get; set; }
public float? Sitactrange { get; set; }
public int? Pseudocrc { get; set; }
public string Linksetdata { get; set; }
}

View file

@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Region;
public partial class Primitem
{
public int? InvType { get; set; }
public int? AssetType { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public long? CreationDate { get; set; }
public int? NextPermissions { get; set; }
public int? CurrentPermissions { get; set; }
public int? BasePermissions { get; set; }
public int? EveryonePermissions { get; set; }
public int? GroupPermissions { get; set; }
public int Flags { get; set; }
public string ItemId { get; set; }
public string PrimId { get; set; }
public string AssetId { get; set; }
public string ParentFolderId { get; set; }
public string CreatorId { get; set; }
public string OwnerId { get; set; }
public string GroupId { get; set; }
public string LastOwnerId { get; set; }
}

View file

@ -0,0 +1,67 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Region;
public partial class Primshape
{
public int? Shape { get; set; }
public double ScaleX { get; set; }
public double ScaleY { get; set; }
public double ScaleZ { get; set; }
public int? Pcode { get; set; }
public int? PathBegin { get; set; }
public int? PathEnd { get; set; }
public int? PathScaleX { get; set; }
public int? PathScaleY { get; set; }
public int? PathShearX { get; set; }
public int? PathShearY { get; set; }
public int? PathSkew { get; set; }
public int? PathCurve { get; set; }
public int? PathRadiusOffset { get; set; }
public int? PathRevolutions { get; set; }
public int? PathTaperX { get; set; }
public int? PathTaperY { get; set; }
public int? PathTwist { get; set; }
public int? PathTwistBegin { get; set; }
public int? ProfileBegin { get; set; }
public int? ProfileEnd { get; set; }
public int? ProfileCurve { get; set; }
public int? ProfileHollow { get; set; }
public int? State { get; set; }
public byte[] Texture { get; set; }
public byte[] ExtraParams { get; set; }
public string Uuid { get; set; }
public string Media { get; set; }
public int LastAttachPoint { get; set; }
public byte[] MatOvrd { get; set; }
}

View file

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Region;
public partial class Regionban
{
public string RegionUuid { get; set; }
public string BannedUuid { get; set; }
public string BannedIp { get; set; }
public string BannedIpHostMask { get; set; }
}

View file

@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Region;
public partial class Regionenvironment
{
public string RegionId { get; set; }
public string LlsdSettings { get; set; }
}

View file

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Region;
public partial class Regionextra
{
public string RegionId { get; set; }
public string Name { get; set; }
public string Value { get; set; }
}

View file

@ -0,0 +1,107 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Region;
public partial class Regionsetting
{
public string RegionUuid { get; set; }
public int BlockTerraform { get; set; }
public int BlockFly { get; set; }
public int AllowDamage { get; set; }
public int RestrictPushing { get; set; }
public int AllowLandResell { get; set; }
public int AllowLandJoinDivide { get; set; }
public int BlockShowInSearch { get; set; }
public int AgentLimit { get; set; }
public double ObjectBonus { get; set; }
public int Maturity { get; set; }
public int DisableScripts { get; set; }
public int DisableCollisions { get; set; }
public int DisablePhysics { get; set; }
public string TerrainTexture1 { get; set; }
public string TerrainTexture2 { get; set; }
public string TerrainTexture3 { get; set; }
public string TerrainTexture4 { get; set; }
public double Elevation1Nw { get; set; }
public double Elevation2Nw { get; set; }
public double Elevation1Ne { get; set; }
public double Elevation2Ne { get; set; }
public double Elevation1Se { get; set; }
public double Elevation2Se { get; set; }
public double Elevation1Sw { get; set; }
public double Elevation2Sw { get; set; }
public double WaterHeight { get; set; }
public double TerrainRaiseLimit { get; set; }
public double TerrainLowerLimit { get; set; }
public int UseEstateSun { get; set; }
public int FixedSun { get; set; }
public double SunPosition { get; set; }
public string Covenant { get; set; }
public sbyte Sandbox { get; set; }
public double Sunvectorx { get; set; }
public double Sunvectory { get; set; }
public double Sunvectorz { get; set; }
public string LoadedCreationId { get; set; }
public uint LoadedCreationDatetime { get; set; }
public string MapTileId { get; set; }
public string TelehubObject { get; set; }
public string ParcelTileId { get; set; }
public uint CovenantDatetime { get; set; }
public sbyte BlockSearch { get; set; }
public sbyte Casino { get; set; }
public string CacheId { get; set; }
public string TerrainPBR1 { get; set; }
public string TerrainPBR2 { get; set; }
public string TerrainPBR3 { get; set; }
public string TerrainPBR4 { get; set; }
}

View file

@ -0,0 +1,133 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Region;
public partial class Regionwindlight
{
public string RegionId { get; set; }
public float WaterColorR { get; set; }
public float WaterColorG { get; set; }
public float WaterColorB { get; set; }
public float WaterFogDensityExponent { get; set; }
public float UnderwaterFogModifier { get; set; }
public float ReflectionWaveletScale1 { get; set; }
public float ReflectionWaveletScale2 { get; set; }
public float ReflectionWaveletScale3 { get; set; }
public float FresnelScale { get; set; }
public float FresnelOffset { get; set; }
public float RefractScaleAbove { get; set; }
public float RefractScaleBelow { get; set; }
public float BlurMultiplier { get; set; }
public float BigWaveDirectionX { get; set; }
public float BigWaveDirectionY { get; set; }
public float LittleWaveDirectionX { get; set; }
public float LittleWaveDirectionY { get; set; }
public string NormalMapTexture { get; set; }
public float HorizonR { get; set; }
public float HorizonG { get; set; }
public float HorizonB { get; set; }
public float HorizonI { get; set; }
public float HazeHorizon { get; set; }
public float BlueDensityR { get; set; }
public float BlueDensityG { get; set; }
public float BlueDensityB { get; set; }
public float BlueDensityI { get; set; }
public float HazeDensity { get; set; }
public float DensityMultiplier { get; set; }
public float DistanceMultiplier { get; set; }
public uint MaxAltitude { get; set; }
public float SunMoonColorR { get; set; }
public float SunMoonColorG { get; set; }
public float SunMoonColorB { get; set; }
public float SunMoonColorI { get; set; }
public float SunMoonPosition { get; set; }
public float AmbientR { get; set; }
public float AmbientG { get; set; }
public float AmbientB { get; set; }
public float AmbientI { get; set; }
public float EastAngle { get; set; }
public float SunGlowFocus { get; set; }
public float SunGlowSize { get; set; }
public float SceneGamma { get; set; }
public float StarBrightness { get; set; }
public float CloudColorR { get; set; }
public float CloudColorG { get; set; }
public float CloudColorB { get; set; }
public float CloudColorI { get; set; }
public float CloudX { get; set; }
public float CloudY { get; set; }
public float CloudDensity { get; set; }
public float CloudCoverage { get; set; }
public float CloudScale { get; set; }
public float CloudDetailX { get; set; }
public float CloudDetailY { get; set; }
public float CloudDetailDensity { get; set; }
public float CloudScrollX { get; set; }
public byte CloudScrollXLock { get; set; }
public float CloudScrollY { get; set; }
public byte CloudScrollYLock { get; set; }
public byte DrawClassicClouds { get; set; }
}

View file

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Region;
public partial class SpawnPoint
{
public string RegionId { get; set; }
public float Yaw { get; set; }
public float Pitch { get; set; }
public float Distance { get; set; }
}

View file

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Region;
public partial class Terrain
{
public string RegionUuid { get; set; }
public int? Revision { get; set; }
public byte[] Heightfield { get; set; }
}

View file

@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Search;
public partial class Allparcel
{
public string RegionUuid { get; set; }
public string Parcelname { get; set; }
public string OwnerUuid { get; set; }
public string GroupUuid { get; set; }
public string Landingpoint { get; set; }
public string ParcelUuid { get; set; }
public string InfoUuid { get; set; }
public int Parcelarea { get; set; }
public string GatekeeperUrl { get; set; }
}

View file

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Search;
public partial class Classified
{
public string Classifieduuid { get; set; }
public string Creatoruuid { get; set; }
public int Creationdate { get; set; }
public int Expirationdate { get; set; }
public string Category { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Parceluuid { get; set; }
public int Parentestate { get; set; }
public string Snapshotuuid { get; set; }
public string Simname { get; set; }
public string Posglobal { get; set; }
public string Parcelname { get; set; }
public int Classifiedflags { get; set; }
public int Priceforlisting { get; set; }
}

View file

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
namespace OpenSim.Data.Model.Search;
public partial class Event
{
public string Owneruuid { get; set; }
public string Name { get; set; }
public uint Eventid { get; set; }
public string Creatoruuid { get; set; }
public int Category { get; set; }
public string Description { get; set; }
public int DateUtc { get; set; }
public int Duration { get; set; }
public bool Covercharge { get; set; }
public int Coveramount { get; set; }
public string Simname { get; set; }
public string ParcelUuid { get; set; }
public string GlobalPos { get; set; }
public int Eventflags { get; set; }
public string GatekeeperUrl { get; set; }
}

Some files were not shown because too many files have changed in this diff Show more