本文整理汇总了C#中OpenSim.Region.CoreModules.World.Land.LandObject类的典型用法代码示例。如果您正苦于以下问题:C# LandObject类的具体用法?C# LandObject怎么用?C# LandObject使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
LandObject类属于OpenSim.Region.CoreModules.World.Land命名空间,在下文中一共展示了LandObject类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetLandObject
public ILandObject GetLandObject(float x_float, float y_float)
{
if (m_landManagementModule != null)
{
return m_landManagementModule.GetLandObject(x_float, y_float);
}
ILandObject obj = new LandObject(UUID.Zero, false, m_scene);
obj.LandData.Name = "NO LAND";
return obj;
}
示例2: Clear
public void Clear(bool setupDefaultParcel)
{
m_parcels.Clear();
if (setupDefaultParcel)
{
ILandObject obj = new LandObject(UUID.Zero, false, m_scene);
obj.LandData.Name = "Your Parcel";
m_parcels.Add(obj);
}
}
示例3: ResetSimLandObjects
/// <summary>
/// Resets the sim to the default land object (full sim piece of land owned by the default user)
/// </summary>
public void ResetSimLandObjects()
{
//Remove all the land objects in the sim and add a blank, full sim land object set to public
lock (m_landList)
{
m_landList.Clear();
m_lastLandLocalID = ParcelManagementModule.START_LAND_LOCAL_ID;
m_landIDList.Initialize();
}
ILandObject fullSimParcel = new LandObject(UUID.Zero, false, m_scene);
fullSimParcel.SetLandBitmap(fullSimParcel.GetSquareLandBitmap(0, 0, m_scene.RegionInfo.RegionSizeX, m_scene.RegionInfo.RegionSizeY));
if (fullSimParcel.LandData.OwnerID == UUID.Zero)
fullSimParcel.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
UserAccount account = m_scene.UserAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, fullSimParcel.LandData.OwnerID);
while (fullSimParcel.LandData.OwnerID == UUID.Zero || account == null)
{
m_log.Warn("[ParcelManagement]: Could not find user for parcel, please give a valid user to make the owner");
string userName = MainConsole.Instance.CmdPrompt("User Name:", "");
if (userName == "")
{
m_log.Warn("Put in a valid username.");
continue;
}
account = m_scene.UserAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, userName);
if (account != null)
fullSimParcel.LandData.OwnerID = account.PrincipalID;
else
m_log.Warn("Could not find the user.");
}
m_log.Info("[ParcelManagement]: No land found for region " + m_scene.RegionInfo.RegionName +
", setting owner to " + fullSimParcel.LandData.OwnerID);
fullSimParcel.LandData.ClaimDate = Util.UnixTimeSinceEpoch();
fullSimParcel.SetInfoID();
AddLandObject(fullSimParcel);
}
示例4: GetLandObject
public ILandObject GetLandObject(int x, int y)
{
//m_log.DebugFormat("[BIGLANDTESTINT]: <{0},{1}>", x, y);
if (x > 0 && x <= (int)Constants.RegionSize && y > 0 && y <= (int)Constants.RegionSize)
{
return RootRegionLandChannel.GetLandObject(x, y);
}
else
{
int offsetX = (x / (int)Constants.RegionSize);
int offsetY = (y / (int)Constants.RegionSize);
offsetX *= (int)Constants.RegionSize;
offsetY *= (int)Constants.RegionSize;
foreach (RegionData regionData in RegionConnections)
{
if (regionData.Offset.X == offsetX && regionData.Offset.Y == offsetY)
{
return regionData.RegionScene.LandChannel.GetLandObject(x - offsetX, y - offsetY);
}
}
ILandObject obj = new LandObject(UUID.Zero, false, RegData.RegionScene);
obj.landData.Name = "NO LAND";
return obj;
}
}
示例5: Copy
public ILandObject Copy()
{
ILandObject newLand = new LandObject(LandData.OwnerID, LandData.IsGroupOwned, m_scene);
//Place all new variables here!
newLand.LandBitmap = (bool[,]) (LandBitmap.Clone());
newLand.LandData = LandData.Copy();
return newLand;
}
示例6: Copy
public ILandObject Copy()
{
ILandObject newLand = new LandObject(LandData, m_scene);
newLand.LandBitmap = (bool[,]) (LandBitmap.Clone());
return newLand;
}
示例7: IncomingLandObjectFromStorage
public void IncomingLandObjectFromStorage(LandData data)
{
ILandObject new_land = new LandObject(data.OwnerID, data.IsGroupOwned, m_scene);
new_land.LandData = data.Copy();
new_land.SetLandBitmapFromByteArray();
AddLandObject(new_land);
}
示例8: IncomingLandObjectFromStorage
private void IncomingLandObjectFromStorage(LandData data)
{
ILandObject new_land = new LandObject(data, m_scene);
new_land.SetLandBitmapFromByteArray();
AddLandObject(new_land);
}
示例9: ResetSimLandObjects
/// <summary>
/// Resets the sim to the default land object (full sim piece of land owned by the default user)
/// </summary>
public void ResetSimLandObjects()
{
//Remove all the land objects in the sim and add a blank, full sim land object set to public
lock (m_landList)
{
m_landList.Clear();
m_lastLandLocalID = ParcelManagementModule.START_LAND_LOCAL_ID;
m_landIDList.Initialize();
}
ILandObject fullSimParcel = new LandObject(UUID.Zero, false, m_scene);
fullSimParcel.SetLandBitmap(fullSimParcel.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize));
fullSimParcel.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
fullSimParcel.LandData.ClaimDate = Util.UnixTimeSinceEpoch();
fullSimParcel.SetInfoID();
AddLandObject(fullSimParcel);
}
示例10: ResetSimLandObjects
/// <summary>
/// Resets the sim to the default land object (full sim piece of land owned by the default user)
/// </summary>
public void ResetSimLandObjects()
{
//Remove all the land objects in the sim and add a blank, full sim land object set to public
lock (m_landList)
{
m_landList.Clear();
m_lastLandLocalID = LandChannel.START_LAND_LOCAL_ID - 1;
m_landIDList.Initialize();
}
ILandObject fullSimParcel = new LandObject(UUID.Zero, false, m_scene);
fullSimParcel.setLandBitmap(fullSimParcel.getSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize));
if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero)
fullSimParcel.landData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
else
fullSimParcel.landData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID;
fullSimParcel.landData.ClaimDate = Util.UnixTimeSinceEpoch();
AddLandObject(fullSimParcel);
}
示例11: IncomingLandObjectFromStorage
public void IncomingLandObjectFromStorage(LandData data)
{
ILandObject new_land = new LandObject(data.OwnerID, data.IsGroupOwned, m_scene);
new_land.landData = data.Copy();
new_land.setLandBitmapFromByteArray();
new_land.landData.UpdateForcedAutoReturn(m_scene.RegionInfo.MaxAutoReturn);
AddLandObject(new_land);
}
示例12: GetLandObject
// Given a region position, return the parcel land object for that location
private ILandObject GetLandObject(int x, int y, bool returnNullIfLandObjectNotFound)
{
ILandObject ret = null;
if (x >= m_scene.RegionInfo.RegionSizeX || y >= m_scene.RegionInfo.RegionSizeY || x < 0 || y < 0)
{
// These exceptions here will cause a lot of complaints from the users specifically because
// they happen every time at border crossings
if (returnNullIfLandObjectNotFound)
return null;
else
throw new Exception(
String.Format("{0} GetLandObject for non-existant position. Region={1}, pos=<{2},{3}",
LogHeader, m_scene.RegionInfo.RegionName, x, y)
);
}
lock (m_landIDList)
{
try
{
int landID = m_landIDList[x / landUnit, y / landUnit];
if (landID == 0)
{
// Zero is the uninitialized value saying there is no parcel for this location.
// This sometimes happens when terrain is resized.
if (m_landList.Count == 1)
{
int onlyParcelID = 0;
ILandObject onlyLandObject = null;
foreach (KeyValuePair<int, ILandObject> kvp in m_landList)
{
onlyParcelID = kvp.Key;
onlyLandObject = kvp.Value;
break;
}
// There is only one parcel. Grow it to fill all the unallocated spaces.
for (int xx = 0; xx < m_landIDList.GetLength(0); xx++)
for (int yy = 0; yy < m_landIDList.GetLength(1); yy++)
if (m_landIDList[xx, yy] == 0)
m_landIDList[xx, yy] = onlyParcelID;
onlyLandObject.LandBitmap = CreateBitmapForID(onlyParcelID);
landID = onlyParcelID;
}
else
{
// There are several other parcels so we must create a new one for the unassigned space
ILandObject newLand = new LandObject(UUID.Zero, false, m_scene);
// Claim all the unclaimed "0" ids
newLand.SetLandBitmap(CreateBitmapForID(0));
newLand.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
newLand.LandData.ClaimDate = Util.UnixTimeSinceEpoch();
AddLandObject(newLand);
landID = m_lastLandLocalID;
}
}
ret = m_landList[landID];
}
catch (IndexOutOfRangeException)
{
m_log.ErrorFormat(
"{0} GetLandObject: Tried to retrieve land object from out of bounds co-ordinate ({1},{2}) in {3}. landListSize=({4},{5})",
LogHeader, x, y, m_scene.RegionInfo.RegionName, m_landIDList.GetLength(0), m_landIDList.GetLength(1));
return null;
}
catch
{
m_log.ErrorFormat(
"{0} GetLandObject: LandID not in landlist. XY=<{1},{2}> in {3}. landID[x,y]={4}",
LogHeader, x, y, m_scene.RegionInfo.RegionName, m_landIDList[x/landUnit, y/landUnit]);
return null;
}
}
return ret;
}
示例13: EventManagerOnIncomingLandDataFromStorage
public void EventManagerOnIncomingLandDataFromStorage(List<LandData> data, Vector2 parcelOffset)
{
bool result = true;
#if (!ISWIN)
foreach (LandData t in data)
{
if (!PreprocessIncomingLandObjectFromStorage(t, parcelOffset))
{
result = false;
}
}
#else
foreach (LandData t in data.Where(t => !PreprocessIncomingLandObjectFromStorage(t, parcelOffset)))
{
result = false;
}
#endif
List<ILandObject> newSimDefault = new List<ILandObject>();
if (!result || data.Count == 0) //Force a new base first, then force a merge later
newSimDefault = AllParcels().Count > 0 ? AllParcels() : new List<ILandObject>(new ILandObject[1] {ResetSimLandObjects()});
foreach (LandData t in data)
{
ILandObject new_land = new LandObject(t.OwnerID, t.IsGroupOwned, m_scene);
new_land.LandData = t;
if (SetLandBitmapFromByteArray(new_land, !result, parcelOffset))
//Merge it into the large parcel if possible
{
new_land.ForceUpdateLandInfo();
new_land.SetInfoID();
AddLandObject(new_land, true);
}
}
if (AllParcels().Count == 0) //Serious fallback
ResetSimLandObjects();
}
示例14: Copy
public ILandObject Copy()
{
ILandObject newLand = new LandObject(LandData.OwnerID, LandData.IsGroupOwned, m_scene);
//Place all new variables here!
newLand.LandData = LandData.Copy();
return newLand;
}
示例15: IncomingLandObjectFromStorage
private void IncomingLandObjectFromStorage(LandData data)
{
ILandObject new_land = new LandObject(data.OwnerID, data.IsGroupOwned, m_scene);
new_land.LandData = data.Copy();
new_land.SetLandBitmapFromByteArray();
AddLandObject(new_land);
// new_land.SendLandUpdateToAvatarsOverMe();
}