Second part of invisible base avatar option
parent
785a2cc729
commit
64deb6ae6f
|
@ -72,6 +72,7 @@ namespace OpenSim.Framework
|
|||
protected float m_avatarAnimOffset = 0;
|
||||
protected WearableCacheItem[] m_cacheitems;
|
||||
protected bool m_cacheItemsDirty = true;
|
||||
public static Primitive.TextureEntry Invisible = null;
|
||||
|
||||
public virtual int Serial
|
||||
{
|
||||
|
@ -134,8 +135,30 @@ namespace OpenSim.Framework
|
|||
set { m_cacheItemsDirty = value; }
|
||||
}
|
||||
|
||||
private void CreateInvisibleTextureEntry()
|
||||
{
|
||||
if (Invisible != null)
|
||||
return;
|
||||
Invisible = new Primitive.TextureEntry(new UUID("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903"));
|
||||
|
||||
Invisible.FaceTextures[8] = new Primitive.TextureEntryFace(null);
|
||||
Invisible.FaceTextures[8].TextureID = new UUID("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903");
|
||||
Invisible.FaceTextures[9] = new Primitive.TextureEntryFace(null);
|
||||
Invisible.FaceTextures[9].TextureID = new UUID("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903");
|
||||
Invisible.FaceTextures[10] = new Primitive.TextureEntryFace(null);
|
||||
Invisible.FaceTextures[10].TextureID = new UUID("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903");
|
||||
Invisible.FaceTextures[11] = new Primitive.TextureEntryFace(null);
|
||||
Invisible.FaceTextures[11].TextureID = new UUID("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903");
|
||||
Invisible.FaceTextures[19] = new Primitive.TextureEntryFace(null);
|
||||
Invisible.FaceTextures[19].TextureID = new UUID("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903");
|
||||
Invisible.FaceTextures[20] = new Primitive.TextureEntryFace(null);
|
||||
Invisible.FaceTextures[20].TextureID = new UUID("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903");
|
||||
}
|
||||
|
||||
public AvatarAppearance()
|
||||
{
|
||||
CreateInvisibleTextureEntry();
|
||||
|
||||
// m_log.WarnFormat("[AVATAR APPEARANCE]: create empty appearance");
|
||||
|
||||
m_serial = 0;
|
||||
|
@ -149,6 +172,9 @@ namespace OpenSim.Framework
|
|||
|
||||
public AvatarAppearance(OSDMap map)
|
||||
{
|
||||
CreateInvisibleTextureEntry();
|
||||
|
||||
Invisible = new Primitive.TextureEntry(new UUID("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903"));
|
||||
// m_log.WarnFormat("[AVATAR APPEARANCE]: create appearance from OSDMap");
|
||||
|
||||
Unpack(map);
|
||||
|
@ -157,6 +183,7 @@ namespace OpenSim.Framework
|
|||
|
||||
public AvatarAppearance(AvatarWearable[] wearables, Primitive.TextureEntry textureEntry, byte[] visualParams)
|
||||
{
|
||||
CreateInvisibleTextureEntry();
|
||||
// m_log.WarnFormat("[AVATAR APPEARANCE] create initialized appearance");
|
||||
|
||||
m_serial = 0;
|
||||
|
@ -194,6 +221,7 @@ namespace OpenSim.Framework
|
|||
|
||||
public AvatarAppearance(AvatarAppearance appearance, bool copyWearables, bool copyBaked)
|
||||
{
|
||||
CreateInvisibleTextureEntry();
|
||||
// m_log.WarnFormat("[AVATAR APPEARANCE] create from an existing appearance");
|
||||
|
||||
if (appearance == null)
|
||||
|
|
|
@ -5142,7 +5142,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
acceleration = Vector3.Zero;
|
||||
|
||||
if (sendTexture)
|
||||
{
|
||||
if (presence.Invisible)
|
||||
textureEntry = AvatarAppearance.Invisible.GetBytes();
|
||||
else
|
||||
textureEntry = presence.Appearance.Texture.GetBytes();
|
||||
}
|
||||
else
|
||||
textureEntry = null;
|
||||
}
|
||||
|
|
|
@ -90,6 +90,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
public bool isNPC { get; private set; }
|
||||
|
||||
public bool Invisible { get; set; }
|
||||
private PresenceType m_presenceType;
|
||||
public PresenceType PresenceType {
|
||||
get {return m_presenceType;}
|
||||
|
@ -949,6 +950,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
public ScenePresence(
|
||||
IClientAPI client, Scene world, AvatarAppearance appearance, PresenceType type)
|
||||
{
|
||||
Invisible = false;
|
||||
AttachmentsSyncLock = new Object();
|
||||
AllowMovement = true;
|
||||
IsChildAgent = true;
|
||||
|
@ -3709,12 +3711,15 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
// "[SCENE PRESENCE]: Sending appearance data from {0} {1} to {2} {3}", Name, m_uuid, avatar.Name, avatar.UUID);
|
||||
if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID && avatar.GodLevel < 200)
|
||||
return;
|
||||
avatar.ControllingClient.SendAppearance(
|
||||
UUID, Appearance.VisualParams, Appearance.Texture.GetBytes());
|
||||
SendAppearanceToAgentNF(avatar);
|
||||
}
|
||||
|
||||
public void SendAppearanceToAgentNF(ScenePresence avatar)
|
||||
{
|
||||
if (Invisible)
|
||||
avatar.ControllingClient.SendAppearance(
|
||||
UUID, Appearance.VisualParams, AvatarAppearance.Invisible.GetBytes());
|
||||
else
|
||||
avatar.ControllingClient.SendAppearance(
|
||||
UUID, Appearance.VisualParams, Appearance.Texture.GetBytes());
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue