本文整理匯總了C#中libsecondlife.Simulator.IsParcelMapFull方法的典型用法代碼示例。如果您正苦於以下問題:C# Simulator.IsParcelMapFull方法的具體用法?C# Simulator.IsParcelMapFull怎麽用?C# Simulator.IsParcelMapFull使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類libsecondlife.Simulator
的用法示例。
在下文中一共展示了Simulator.IsParcelMapFull方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: ParcelPropertiesHandler
private void ParcelPropertiesHandler(Packet packet, Simulator simulator)
{
if (OnParcelProperties != null || Client.Settings.PARCEL_TRACKING == true)
{
ParcelPropertiesPacket properties = (ParcelPropertiesPacket)packet;
Parcel parcel = new Parcel(simulator, properties.ParcelData.LocalID);
parcel.AABBMax = properties.ParcelData.AABBMax;
parcel.AABBMin = properties.ParcelData.AABBMin;
parcel.Area = properties.ParcelData.Area;
parcel.AuctionID = properties.ParcelData.AuctionID;
parcel.AuthBuyerID = properties.ParcelData.AuthBuyerID;
parcel.Bitmap = properties.ParcelData.Bitmap;
parcel.Category = (Parcel.ParcelCategory)(sbyte)properties.ParcelData.Category;
parcel.ClaimDate = Helpers.UnixTimeToDateTime((uint)properties.ParcelData.ClaimDate);
// ClaimPrice seems to always be zero?
parcel.ClaimPrice = properties.ParcelData.ClaimPrice;
parcel.Desc = Helpers.FieldToUTF8String(properties.ParcelData.Desc);
parcel.GroupID = properties.ParcelData.GroupID;
parcel.GroupPrims = properties.ParcelData.GroupPrims;
parcel.IsGroupOwned = properties.ParcelData.IsGroupOwned;
parcel.LandingType = properties.ParcelData.LandingType;
parcel.MaxPrims = properties.ParcelData.MaxPrims;
parcel.MediaAutoScale = properties.ParcelData.MediaAutoScale;
parcel.MediaID = properties.ParcelData.MediaID;
parcel.MediaURL = Helpers.FieldToUTF8String(properties.ParcelData.MediaURL);
parcel.MusicURL = Helpers.FieldToUTF8String(properties.ParcelData.MusicURL);
parcel.Name = Helpers.FieldToUTF8String(properties.ParcelData.Name);
parcel.OtherCleanTime = properties.ParcelData.OtherCleanTime;
parcel.OtherCount = properties.ParcelData.OtherCount;
parcel.OtherPrims = properties.ParcelData.OtherPrims;
parcel.OwnerID = properties.ParcelData.OwnerID;
parcel.OwnerPrims = properties.ParcelData.OwnerPrims;
parcel.Flags = (Parcel.ParcelFlags)properties.ParcelData.ParcelFlags;
parcel.ParcelPrimBonus = properties.ParcelData.ParcelPrimBonus;
parcel.PassHours = properties.ParcelData.PassHours;
parcel.PassPrice = properties.ParcelData.PassPrice;
parcel.PublicCount = properties.ParcelData.PublicCount;
parcel.RegionDenyAnonymous = properties.ParcelData.RegionDenyAnonymous;
parcel.RegionDenyIdentified = properties.ParcelData.RegionDenyIdentified;
parcel.RegionDenyTransacted = properties.ParcelData.RegionDenyTransacted;
parcel.RegionPushOverride = properties.ParcelData.RegionPushOverride;
parcel.RentPrice = properties.ParcelData.RentPrice;
parcel.SalePrice = properties.ParcelData.SalePrice;
parcel.SelectedPrims = properties.ParcelData.SelectedPrims;
parcel.SelfCount = properties.ParcelData.SelfCount;
parcel.SimWideMaxPrims = properties.ParcelData.SimWideMaxPrims;
parcel.SimWideTotalPrims = properties.ParcelData.SimWideTotalPrims;
parcel.SnapshotID = properties.ParcelData.SnapshotID;
parcel.Status = (Parcel.ParcelStatus)(sbyte)properties.ParcelData.Status;
parcel.TotalPrims = properties.ParcelData.TotalPrims;
parcel.UserLocation = properties.ParcelData.UserLocation;
parcel.UserLookAt = properties.ParcelData.UserLookAt;
// store parcel in dictionary
if (Client.Settings.PARCEL_TRACKING)
{
lock (simulator.Parcels.Dictionary)
simulator.Parcels.Dictionary[parcel.LocalID] = parcel;
int y, x, index, bit;
for (y = 0; y < simulator.ParcelMap.GetLength(0); y++)
{
for (x = 0; x < simulator.ParcelMap.GetLength(1); x++)
{
if (simulator.ParcelMap[y, x] == 0)
{
index = (y * 64) + x;
bit = index % 8;
index >>= 3;
if ((parcel.Bitmap[index] & (1 << bit)) != 0)
simulator.ParcelMap[y, x] = parcel.LocalID;
}
}
}
}
// Fire the callback for parcel properties being received
if (OnParcelProperties != null)
{
try
{
OnParcelProperties(parcel, (ParcelResult)properties.ParcelData.RequestResult,
properties.ParcelData.SequenceID, properties.ParcelData.SnapSelection);
}
catch (Exception e) { Client.Log(e.ToString(), Helpers.LogLevel.Error); }
}
// Check if all of the simulator parcels have been retrieved, if so fire another callback
if (OnSimParcelsDownloaded != null && simulator.IsParcelMapFull())
{
try { OnSimParcelsDownloaded(simulator, simulator.Parcels, simulator.ParcelMap); }
catch (Exception e) { Client.Log(e.ToString(), Helpers.LogLevel.Error); }
}
}
}
示例2: ParcelPropertiesReplyHandler
//.........這裏部分代碼省略.........
Array.Reverse(bytes);
parcel.Flags = (Parcel.ParcelFlags)BitConverter.ToUInt32(bytes, 0);
parcel.GroupID = parcelDataBlock["GroupID"].AsUUID();
parcel.GroupPrims = parcelDataBlock["GroupPrims"].AsInteger();
parcel.IsGroupOwned = parcelDataBlock["IsGroupOwned"].AsBoolean();
parcel.LandingType = (byte)parcelDataBlock["LandingType"].AsInteger();
parcel.LocalID = parcelDataBlock["LocalID"].AsInteger();
parcel.MaxPrims = parcelDataBlock["MaxPrims"].AsInteger();
parcel.MediaAutoScale = (byte)parcelDataBlock["MediaAutoScale"].AsInteger();
parcel.MediaID = parcelDataBlock["MediaID"].AsUUID();
parcel.MediaURL = parcelDataBlock["MediaURL"].AsString();
parcel.MusicURL = parcelDataBlock["MusicURL"].AsString();
parcel.Name = parcelDataBlock["Name"].AsString();
parcel.OtherCleanTime = parcelDataBlock["OtherCleanTime"].AsInteger();
parcel.OtherCount = parcelDataBlock["OtherCount"].AsInteger();
parcel.OtherPrims = parcelDataBlock["OtherPrims"].AsInteger();
parcel.OwnerID = parcelDataBlock["OwnerID"].AsUUID();
parcel.OwnerPrims = parcelDataBlock["OwnerPrims"].AsInteger();
parcel.ParcelPrimBonus = (float)parcelDataBlock["ParcelPrimBonus"].AsReal();
parcel.PassHours = (float)parcelDataBlock["PassHours"].AsReal();
parcel.PassPrice = parcelDataBlock["PassPrice"].AsInteger();
parcel.PublicCount = parcelDataBlock["PublicCount"].AsInteger();
parcel.RegionDenyAgeUnverified = ageVerifyBlock["RegionDenyAgeUnverified"].AsBoolean();
parcel.RegionDenyAnonymous = parcelDataBlock["RegionDenyAnonymous"].AsBoolean();
parcel.RegionPushOverride = parcelDataBlock["RegionPushOverride"].AsBoolean();
parcel.RentPrice = parcelDataBlock["RentPrice"].AsInteger();
parcel.RequestResult = parcelDataBlock["RequestResult"].AsInteger();
parcel.SalePrice = parcelDataBlock["SalePrice"].AsInteger();
parcel.SelectedPrims = parcelDataBlock["SelectedPrims"].AsInteger();
parcel.SelfCount = parcelDataBlock["SelfCount"].AsInteger();
parcel.SequenceID = parcelDataBlock["SequenceID"].AsInteger();
parcel.Simulator = simulator;
parcel.SimWideMaxPrims = parcelDataBlock["SimWideMaxPrims"].AsInteger();
parcel.SimWideTotalPrims = parcelDataBlock["SimWideTotalPrims"].AsInteger();
parcel.SnapSelection = parcelDataBlock["SnapSelection"].AsBoolean();
parcel.SnapshotID = parcelDataBlock["SnapshotID"].AsUUID();
parcel.Status = (Parcel.ParcelStatus)parcelDataBlock["Status"].AsInteger();
parcel.TotalPrims = parcelDataBlock["TotalPrims"].AsInteger();
parcel.UserLocation.FromLLSD(parcelDataBlock["UserLocation"]);
parcel.UserLookAt.FromLLSD(parcelDataBlock["UserLookAt"]);
parcel.MediaDesc = mediaDataBlock["MediaDesc"].AsString();
parcel.MediaHeight = mediaDataBlock["MediaHeight"].AsInteger();
parcel.MediaWidth = mediaDataBlock["MediaWidth"].AsInteger();
parcel.MediaLoop = mediaDataBlock["MediaLoop"].AsBoolean();
parcel.MediaType = mediaDataBlock["MediaType"].AsString();
parcel.ObscureMedia = mediaDataBlock["ObscureMedia"].AsBoolean();
parcel.ObscureMusic = mediaDataBlock["ObscureMusic"].AsBoolean();
if (Client.Settings.PARCEL_TRACKING)
{
lock (simulator.Parcels.Dictionary)
simulator.Parcels.Dictionary[parcel.LocalID] = parcel;
int y, x, index, bit;
for (y = 0; y < simulator.ParcelMap.GetLength(0); y++)
{
for (x = 0; x < simulator.ParcelMap.GetLength(1); x++)
{
if (simulator.ParcelMap[y, x] == 0)
{
index = (y * 64) + x;
bit = index % 8;
index >>= 3;
if ((parcel.Bitmap[index] & (1 << bit)) != 0)
simulator.ParcelMap[y, x] = parcel.LocalID;
}
}
}
}
// auto request acl, will be stored in parcel tracking dictionary if enabled
if (Client.Settings.ALWAYS_REQUEST_PARCEL_ACL)
Client.Parcels.AccessListRequest(simulator, parcel.LocalID,
AccessList.Both, parcel.SequenceID);
// auto request dwell, will be stored in parcel tracking dictionary if enables
if (Client.Settings.ALWAYS_REQUEST_PARCEL_DWELL)
Client.Parcels.DwellRequest(simulator, parcel.LocalID);
// Fire the callback for parcel properties being received
if (OnParcelProperties != null)
{
try
{
OnParcelProperties(parcel, (ParcelResult)parcel.RequestResult,
parcel.SequenceID, parcel.SnapSelection);
}
catch (Exception e) { Logger.Log(e.Message, Helpers.LogLevel.Error, Client, e); }
}
// Check if all of the simulator parcels have been retrieved, if so fire another callback
if (OnSimParcelsDownloaded != null && simulator.IsParcelMapFull())
{
try { OnSimParcelsDownloaded(simulator, simulator.Parcels, simulator.ParcelMap); }
catch (Exception e) { Logger.Log(e.Message, Helpers.LogLevel.Error, Client, e); }
}
}
}