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