diff --git a/BetterSecondbot/BetterAtHome/BetterAtHome.cs b/BetterSecondbot/BetterAtHome/BetterAtHome.cs new file mode 100644 index 0000000..0480e3d --- /dev/null +++ b/BetterSecondbot/BetterAtHome/BetterAtHome.cs @@ -0,0 +1,219 @@ +using BetterSecondBot; +using BetterSecondBotShared.Json; +using BetterSecondBotShared.Static; +using BSB.bottypes; +using OpenMetaverse; +using System.Collections.Generic; + +namespace BetterSecondbot.BetterAtHome +{ + public class BetterAtHome + { + protected CliExitOnLogout controler = null; + protected JsonConfig configfile; + + protected bool LoginFailed = false; + protected bool LoggingIn = false; + protected bool LoggedIn = false; + protected bool StartingLogin = false; + protected long LastLoginEvent = 0; + protected int homeregionIndexer = 0; + protected long LastTeleportEvent = 0; + protected List homeRegions = new List(); + + public BetterAtHome(CliExitOnLogout setcontroler, JsonConfig configfile) + { + controler = setcontroler; + this.configfile = configfile; + attach_events(); + controler.Bot.SetBetterAtHomeAction("Standby"); + foreach (string a in this.configfile.Basic_HomeRegions) + { + string[] bits = helpers.ParseSLurl(a); + homeRegions.Add(bits[0]); + } + } + + protected void attach_events() + { + controler.Bot.ChangeSimEvent += ChangedSim; + controler.Bot.AlertMessage += AlertMessage; + controler.Bot.StatusMessageEvent += StatusPing; + controler.Bot.LoginProgess += LoginProcess; + controler.Bot.NextHomeRegion += NextHomeRegionRequest; + } + + protected void resetSwitchs() + { + StartingLogin = false; + LoginFailed = false; + LoggingIn = false; + LoggedIn = false; + homeregionIndexer = -1; + LastTeleportEvent = 0; + LastLoginEvent = helpers.UnixTimeNow(); + controler.Bot.SetBetterAtHomeAction("Event cooldown"); + } + + protected void NextHomeRegionRequest(object o, NextHomeRegionArgs e) + { + gotoNextHomeRegion(true); + } + + protected void LoginProcess(object o, LoginProgressEventArgs e) + { + resetSwitchs(); + if(e.Status == LoginStatus.Failed) + { + LoginFailed = true; + } + else if(e.Status == LoginStatus.ConnectingToLogin) + { + LoggingIn = true; + controler.Bot.SetBetterAtHomeAction("Waiting for login to finish"); + } + else if(e.Status == LoginStatus.Success) + { + LoggedIn = true; + controler.Bot.AfterBotLoginHandler(); + } + } + + protected void StatusPing(object o, StatusMessageEvent e) + { + if(LoggedIn == true) + { + LoggedInAction(); + } + else if(LoggingIn == false) + { + if(LoginFailed == false) + { + controler.Bot.SetBetterAtHomeAction("Standby"); + } + else + { + LoggedOutActions(); + } + } + } + + protected string simname = ""; + protected void ChangedSim(object o, SimChangedEventArgs e) + { + simname = ""; + if (controler.Bot.GetClient.Network.CurrentSim != null) + { + simname = controler.Bot.GetClient.Network.CurrentSim.Name; + } + } + + protected void AlertMessage(object o, AlertMessageEventArgs e) + { + if(e.Message.Contains("Restart") == true) + { + gotoNextHomeRegion(true); + } + } + + protected void LoggedOutActions() + { + controler.Bot.SetBetterAtHomeAction("LoggedOutActions"); + if (controler.Bot.KillMe == true) + { + controler.Bot.SetBetterAtHomeAction("Marked for death"); + return; + } + controler.Bot.SetBetterAtHomeAction("Attempt to recover"); + if (StartingLogin == true) + { + controler.Bot.SetBetterAtHomeAction("Starting Login"); + return; + } + long dif = helpers.UnixTimeNow() - LastLoginEvent; + if (dif < 60) + { + controler.Bot.SetBetterAtHomeAction("Waiting for login lockout"); + return; + } + controler.Bot.SetBetterAtHomeAction("Attempting login"); + StartingLogin = true; + controler.Bot.Start(); + } + + protected void LoggedInAction() + { + controler.Bot.SetBetterAtHomeAction("LoggedInAction"); + if (controler.Bot.KillMe == true) + { + controler.Bot.SetBetterAtHomeAction("Marked for death"); + return; + } + long dif = helpers.UnixTimeNow() - LastLoginEvent; + if (dif < 60) + { + controler.Bot.SetBetterAtHomeAction("Waiting for Login cooldown"); + return; + } + + dif = helpers.UnixTimeNow() - LastTeleportEvent; + if (dif < 120) + { + controler.Bot.SetBetterAtHomeAction("Waiting for Teleport lockout"); + return; + } + if(homeRegions.Count == 0) + { + controler.Bot.SetBetterAtHomeAction("No home regions"); + return; + } + if (IsAtHome() == true) + { + controler.Bot.SetBetterAtHomeAction("AtHome"); + return; + } + gotoNextHomeRegion(false); + return; + + } + + protected void gotoNextHomeRegion(bool force) + { + if (homeRegions.Count == 0) + { + controler.Bot.SetBetterAtHomeAction("No home regions"); + return; + } + homeregionIndexer++; + if (homeregionIndexer >= homeRegions.Count) + { + controler.Bot.SetBetterAtHomeAction("Attempted all home regions restarting list"); + homeregionIndexer = -1; + LastTeleportEvent = helpers.UnixTimeNow(); + if(force == true) + { + gotoNextHomeRegion(false); + } + return; + } + controler.Bot.SetBetterAtHomeAction("Teleporting to home region: " + homeRegions[homeregionIndexer] + ""); + LastTeleportEvent = helpers.UnixTimeNow(); + controler.Bot.TeleportWithSLurl(configfile.Basic_HomeRegions[homeregionIndexer]); + } + + protected bool IsAtHome() + { + if(simname == "") + { + if (controler.Bot.GetClient.Network.CurrentSim == null) + { + return true; + } + simname = controler.Bot.GetClient.Network.CurrentSim.Name; + } + return homeRegions.Contains(simname); + } + + + } +} diff --git a/BetterSecondbot/BetterSecondbot.csproj b/BetterSecondbot/BetterSecondbot.csproj index 253547b..6ba3a08 100644 --- a/BetterSecondbot/BetterSecondbot.csproj +++ b/BetterSecondbot/BetterSecondbot.csproj @@ -24,4 +24,205 @@ + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + diff --git a/BetterSecondbot/DiscordSupervisor/Discord-super.cs b/BetterSecondbot/DiscordSupervisor/Discord-super.cs index e6fcff5..9c09bef 100644 --- a/BetterSecondbot/DiscordSupervisor/Discord-super.cs +++ b/BetterSecondbot/DiscordSupervisor/Discord-super.cs @@ -1,4 +1,5 @@ -using BetterSecondBot.BetterRelayService; +using BetterSecondbot.BetterAtHome; +using BetterSecondBot.BetterRelayService; using BetterSecondBotShared.Json; using BetterSecondBotShared.logs; using System; @@ -12,6 +13,7 @@ namespace BetterSecondBot.DiscordSupervisor { protected int warmup = 0; protected BetterRelay relayService; + protected BetterAtHome betterAtHomeService; protected override void keep_alive() { while (exit_super == false) @@ -83,6 +85,7 @@ namespace BetterSecondBot.DiscordSupervisor controler = new CliExitOnLogout(myconfig, running_as_docker, self_keep_alive); controler.Bot.setDiscordClient(DiscordClient); relayService = new BetterRelay(controler, this, running_as_docker); + betterAtHomeService = new BetterAtHome(controler, myconfig); attach_events(); } diff --git a/BetterSecondbot/libopenjpeg-dotnet-2-1.5.0-dotnet-1-i686.so b/BetterSecondbot/libopenjpeg-dotnet-2-1.5.0-dotnet-1-i686.so new file mode 100644 index 0000000..193eca4 Binary files /dev/null and b/BetterSecondbot/libopenjpeg-dotnet-2-1.5.0-dotnet-1-i686.so differ diff --git a/BetterSecondbot/libopenjpeg-dotnet-2-1.5.0-dotnet-1-x86_64.so b/BetterSecondbot/libopenjpeg-dotnet-2-1.5.0-dotnet-1-x86_64.so new file mode 100644 index 0000000..7a9bdfc Binary files /dev/null and b/BetterSecondbot/libopenjpeg-dotnet-2-1.5.0-dotnet-1-x86_64.so differ diff --git a/BetterSecondbot/libopenjpeg-dotnet-2-1.5.0-dotnet-1.dylib b/BetterSecondbot/libopenjpeg-dotnet-2-1.5.0-dotnet-1.dylib new file mode 100644 index 0000000..91f7264 Binary files /dev/null and b/BetterSecondbot/libopenjpeg-dotnet-2-1.5.0-dotnet-1.dylib differ diff --git a/BetterSecondbot/openjpeg-dotnet-x86_64.dll b/BetterSecondbot/openjpeg-dotnet-x86_64.dll new file mode 100644 index 0000000..9e8cd21 Binary files /dev/null and b/BetterSecondbot/openjpeg-dotnet-x86_64.dll differ diff --git a/BetterSecondbot/openjpeg-dotnet.dll b/BetterSecondbot/openjpeg-dotnet.dll new file mode 100644 index 0000000..6377b8d Binary files /dev/null and b/BetterSecondbot/openjpeg-dotnet.dll differ diff --git a/BetterSecondbot/openmetaverse_data/avatar_lad.xml b/BetterSecondbot/openmetaverse_data/avatar_lad.xml new file mode 100644 index 0000000..2cdd862 --- /dev/null +++ b/BetterSecondbot/openmetaverse_data/avatar_lad.xml @@ -0,0 +1,17504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BetterSecondbot/openmetaverse_data/avatar_skeleton.xml b/BetterSecondbot/openmetaverse_data/avatar_skeleton.xml new file mode 100644 index 0000000..2241a12 --- /dev/null +++ b/BetterSecondbot/openmetaverse_data/avatar_skeleton.xml @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BetterSecondbot/openmetaverse_data/blush_alpha.tga b/BetterSecondbot/openmetaverse_data/blush_alpha.tga new file mode 100644 index 0000000..05be7e7 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/blush_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/body_skingrain.tga b/BetterSecondbot/openmetaverse_data/body_skingrain.tga new file mode 100644 index 0000000..7264baa Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/body_skingrain.tga differ diff --git a/BetterSecondbot/openmetaverse_data/bodyfreckles_alpha.tga b/BetterSecondbot/openmetaverse_data/bodyfreckles_alpha.tga new file mode 100644 index 0000000..d30ab3d Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/bodyfreckles_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/bump_face_wrinkles.tga b/BetterSecondbot/openmetaverse_data/bump_face_wrinkles.tga new file mode 100644 index 0000000..54bf7a5 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/bump_face_wrinkles.tga differ diff --git a/BetterSecondbot/openmetaverse_data/bump_head_base.tga b/BetterSecondbot/openmetaverse_data/bump_head_base.tga new file mode 100644 index 0000000..fa35685 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/bump_head_base.tga differ diff --git a/BetterSecondbot/openmetaverse_data/bump_lowerbody_base.tga b/BetterSecondbot/openmetaverse_data/bump_lowerbody_base.tga new file mode 100644 index 0000000..498ea3c Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/bump_lowerbody_base.tga differ diff --git a/BetterSecondbot/openmetaverse_data/bump_pants_wrinkles.tga b/BetterSecondbot/openmetaverse_data/bump_pants_wrinkles.tga new file mode 100644 index 0000000..cca7241 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/bump_pants_wrinkles.tga differ diff --git a/BetterSecondbot/openmetaverse_data/bump_shirt_wrinkles.tga b/BetterSecondbot/openmetaverse_data/bump_shirt_wrinkles.tga new file mode 100644 index 0000000..9e0d757 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/bump_shirt_wrinkles.tga differ diff --git a/BetterSecondbot/openmetaverse_data/bump_upperbody_base.tga b/BetterSecondbot/openmetaverse_data/bump_upperbody_base.tga new file mode 100644 index 0000000..e57d635 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/bump_upperbody_base.tga differ diff --git a/BetterSecondbot/openmetaverse_data/eyebrows_alpha.tga b/BetterSecondbot/openmetaverse_data/eyebrows_alpha.tga new file mode 100644 index 0000000..c363e48 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/eyebrows_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/eyeliner_alpha.tga b/BetterSecondbot/openmetaverse_data/eyeliner_alpha.tga new file mode 100644 index 0000000..1611eb3 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/eyeliner_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/eyeshadow_inner_alpha.tga b/BetterSecondbot/openmetaverse_data/eyeshadow_inner_alpha.tga new file mode 100644 index 0000000..37d7919 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/eyeshadow_inner_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/eyeshadow_outer_alpha.tga b/BetterSecondbot/openmetaverse_data/eyeshadow_outer_alpha.tga new file mode 100644 index 0000000..00eef9d Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/eyeshadow_outer_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/eyewhite.tga b/BetterSecondbot/openmetaverse_data/eyewhite.tga new file mode 100644 index 0000000..a720496 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/eyewhite.tga differ diff --git a/BetterSecondbot/openmetaverse_data/facehair_chincurtains_alpha.tga b/BetterSecondbot/openmetaverse_data/facehair_chincurtains_alpha.tga new file mode 100644 index 0000000..b103970 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/facehair_chincurtains_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/facehair_moustache_alpha.tga b/BetterSecondbot/openmetaverse_data/facehair_moustache_alpha.tga new file mode 100644 index 0000000..4068c4f Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/facehair_moustache_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/facehair_sideburns_alpha.tga b/BetterSecondbot/openmetaverse_data/facehair_sideburns_alpha.tga new file mode 100644 index 0000000..acddc2d Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/facehair_sideburns_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/facehair_soulpatch_alpha.tga b/BetterSecondbot/openmetaverse_data/facehair_soulpatch_alpha.tga new file mode 100644 index 0000000..687091a Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/facehair_soulpatch_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/freckles_alpha.tga b/BetterSecondbot/openmetaverse_data/freckles_alpha.tga new file mode 100644 index 0000000..a9a4ec0 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/freckles_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/glove_length_alpha.tga b/BetterSecondbot/openmetaverse_data/glove_length_alpha.tga new file mode 100644 index 0000000..db89ad5 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/glove_length_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/gloves_fingers_alpha.tga b/BetterSecondbot/openmetaverse_data/gloves_fingers_alpha.tga new file mode 100644 index 0000000..dba2eec Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/gloves_fingers_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/head_alpha.tga b/BetterSecondbot/openmetaverse_data/head_alpha.tga new file mode 100644 index 0000000..8164525 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/head_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/head_color.tga b/BetterSecondbot/openmetaverse_data/head_color.tga new file mode 100644 index 0000000..74b1b30 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/head_color.tga differ diff --git a/BetterSecondbot/openmetaverse_data/head_hair.tga b/BetterSecondbot/openmetaverse_data/head_hair.tga new file mode 100644 index 0000000..5321f35 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/head_hair.tga differ diff --git a/BetterSecondbot/openmetaverse_data/head_highlights_alpha.tga b/BetterSecondbot/openmetaverse_data/head_highlights_alpha.tga new file mode 100644 index 0000000..8dc5239 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/head_highlights_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/head_shading_alpha.tga b/BetterSecondbot/openmetaverse_data/head_shading_alpha.tga new file mode 100644 index 0000000..e8ea490 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/head_shading_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/head_skingrain.tga b/BetterSecondbot/openmetaverse_data/head_skingrain.tga new file mode 100644 index 0000000..b42dee0 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/head_skingrain.tga differ diff --git a/BetterSecondbot/openmetaverse_data/jacket_length_lower_alpha.tga b/BetterSecondbot/openmetaverse_data/jacket_length_lower_alpha.tga new file mode 100644 index 0000000..722bc19 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/jacket_length_lower_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/jacket_length_upper_alpha.tga b/BetterSecondbot/openmetaverse_data/jacket_length_upper_alpha.tga new file mode 100644 index 0000000..e9db7e7 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/jacket_length_upper_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/jacket_open_lower_alpha.tga b/BetterSecondbot/openmetaverse_data/jacket_open_lower_alpha.tga new file mode 100644 index 0000000..db0c2fb Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/jacket_open_lower_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/jacket_open_upper_alpha.tga b/BetterSecondbot/openmetaverse_data/jacket_open_upper_alpha.tga new file mode 100644 index 0000000..71b8a0b Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/jacket_open_upper_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/lipgloss_alpha.tga b/BetterSecondbot/openmetaverse_data/lipgloss_alpha.tga new file mode 100644 index 0000000..78ceeca Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/lipgloss_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/lips_mask.tga b/BetterSecondbot/openmetaverse_data/lips_mask.tga new file mode 100644 index 0000000..ae1401c Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/lips_mask.tga differ diff --git a/BetterSecondbot/openmetaverse_data/lipstick_alpha.tga b/BetterSecondbot/openmetaverse_data/lipstick_alpha.tga new file mode 100644 index 0000000..2795f1b Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/lipstick_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/lowerbody_color.tga b/BetterSecondbot/openmetaverse_data/lowerbody_color.tga new file mode 100644 index 0000000..a63aa12 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/lowerbody_color.tga differ diff --git a/BetterSecondbot/openmetaverse_data/lowerbody_highlights_alpha.tga b/BetterSecondbot/openmetaverse_data/lowerbody_highlights_alpha.tga new file mode 100644 index 0000000..ae3413a Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/lowerbody_highlights_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/lowerbody_shading_alpha.tga b/BetterSecondbot/openmetaverse_data/lowerbody_shading_alpha.tga new file mode 100644 index 0000000..0242663 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/lowerbody_shading_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/nailpolish_alpha.tga b/BetterSecondbot/openmetaverse_data/nailpolish_alpha.tga new file mode 100644 index 0000000..91af762 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/nailpolish_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/pants_length_alpha.tga b/BetterSecondbot/openmetaverse_data/pants_length_alpha.tga new file mode 100644 index 0000000..3c4f21c Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/pants_length_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/pants_waist_alpha.tga b/BetterSecondbot/openmetaverse_data/pants_waist_alpha.tga new file mode 100644 index 0000000..35658c0 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/pants_waist_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/rosyface_alpha.tga b/BetterSecondbot/openmetaverse_data/rosyface_alpha.tga new file mode 100644 index 0000000..a0c8513 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/rosyface_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/rouge_alpha.tga b/BetterSecondbot/openmetaverse_data/rouge_alpha.tga new file mode 100644 index 0000000..a0c8513 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/rouge_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/shirt_bottom_alpha.tga b/BetterSecondbot/openmetaverse_data/shirt_bottom_alpha.tga new file mode 100644 index 0000000..7cce03d Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/shirt_bottom_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/shirt_collar_alpha.tga b/BetterSecondbot/openmetaverse_data/shirt_collar_alpha.tga new file mode 100644 index 0000000..f55f635 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/shirt_collar_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/shirt_collar_back_alpha.tga b/BetterSecondbot/openmetaverse_data/shirt_collar_back_alpha.tga new file mode 100644 index 0000000..43a6453 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/shirt_collar_back_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/shirt_sleeve_alpha.tga b/BetterSecondbot/openmetaverse_data/shirt_sleeve_alpha.tga new file mode 100644 index 0000000..e3b18f4 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/shirt_sleeve_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/shoe_height_alpha.tga b/BetterSecondbot/openmetaverse_data/shoe_height_alpha.tga new file mode 100644 index 0000000..d08dd75 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/shoe_height_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/skirt_length_alpha.tga b/BetterSecondbot/openmetaverse_data/skirt_length_alpha.tga new file mode 100644 index 0000000..c867994 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/skirt_length_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/skirt_slit_back_alpha.tga b/BetterSecondbot/openmetaverse_data/skirt_slit_back_alpha.tga new file mode 100644 index 0000000..0e49688 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/skirt_slit_back_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/skirt_slit_front_alpha.tga b/BetterSecondbot/openmetaverse_data/skirt_slit_front_alpha.tga new file mode 100644 index 0000000..888bbf7 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/skirt_slit_front_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/skirt_slit_left_alpha.tga b/BetterSecondbot/openmetaverse_data/skirt_slit_left_alpha.tga new file mode 100644 index 0000000..210feac Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/skirt_slit_left_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/skirt_slit_right_alpha.tga b/BetterSecondbot/openmetaverse_data/skirt_slit_right_alpha.tga new file mode 100644 index 0000000..ce11c64 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/skirt_slit_right_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/underpants_trial_female.tga b/BetterSecondbot/openmetaverse_data/underpants_trial_female.tga new file mode 100644 index 0000000..96bf732 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/underpants_trial_female.tga differ diff --git a/BetterSecondbot/openmetaverse_data/underpants_trial_male.tga b/BetterSecondbot/openmetaverse_data/underpants_trial_male.tga new file mode 100644 index 0000000..095695c Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/underpants_trial_male.tga differ diff --git a/BetterSecondbot/openmetaverse_data/undershirt_trial_female.tga b/BetterSecondbot/openmetaverse_data/undershirt_trial_female.tga new file mode 100644 index 0000000..e17a309 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/undershirt_trial_female.tga differ diff --git a/BetterSecondbot/openmetaverse_data/upperbody_color.tga b/BetterSecondbot/openmetaverse_data/upperbody_color.tga new file mode 100644 index 0000000..85fcc41 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/upperbody_color.tga differ diff --git a/BetterSecondbot/openmetaverse_data/upperbody_highlights_alpha.tga b/BetterSecondbot/openmetaverse_data/upperbody_highlights_alpha.tga new file mode 100644 index 0000000..2d8102b Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/upperbody_highlights_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/upperbody_shading_alpha.tga b/BetterSecondbot/openmetaverse_data/upperbody_shading_alpha.tga new file mode 100644 index 0000000..b420506 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/upperbody_shading_alpha.tga differ diff --git a/BetterSecondbot/openmetaverse_data/upperbodyfreckles_alpha.tga b/BetterSecondbot/openmetaverse_data/upperbodyfreckles_alpha.tga new file mode 100644 index 0000000..76c7ce8 Binary files /dev/null and b/BetterSecondbot/openmetaverse_data/upperbodyfreckles_alpha.tga differ diff --git a/Core/bottypes/AVstorageBot.cs b/Core/bottypes/AVstorageBot.cs index b72f03b..a19bb32 100644 --- a/Core/bottypes/AVstorageBot.cs +++ b/Core/bottypes/AVstorageBot.cs @@ -215,7 +215,7 @@ namespace BSB.bottypes } } - protected override void AfterBotLoginHandler() + public override void AfterBotLoginHandler() { if (reconnect == false) { diff --git a/Core/bottypes/AnimationsBot.cs b/Core/bottypes/AnimationsBot.cs index 3a35b63..53736ef 100644 --- a/Core/bottypes/AnimationsBot.cs +++ b/Core/bottypes/AnimationsBot.cs @@ -9,7 +9,7 @@ namespace BSB.bottypes { protected List active_animations = new List(); - protected override void AfterBotLoginHandler() + public override void AfterBotLoginHandler() { if (reconnect == false) { diff --git a/Core/bottypes/AwaitReplyEventBot.cs b/Core/bottypes/AwaitReplyEventBot.cs index 2fd6075..34281c2 100644 --- a/Core/bottypes/AwaitReplyEventBot.cs +++ b/Core/bottypes/AwaitReplyEventBot.cs @@ -11,7 +11,7 @@ namespace BSB.bottypes { public override List GetActiveGroupchatSessions { get { return active_group_chat_sessions; } } - protected override void AfterBotLoginHandler() + public override void AfterBotLoginHandler() { if (reconnect == false) { diff --git a/Core/bottypes/CommandsBot.cs b/Core/bottypes/CommandsBot.cs index 098d4d1..0051fda 100644 --- a/Core/bottypes/CommandsBot.cs +++ b/Core/bottypes/CommandsBot.cs @@ -190,7 +190,7 @@ namespace BSB.bottypes } } - protected override void AfterBotLoginHandler() + public override void AfterBotLoginHandler() { if (reconnect == false) { diff --git a/Core/bottypes/DialogsBot.cs b/Core/bottypes/DialogsBot.cs index d2f02c4..5162ded 100644 --- a/Core/bottypes/DialogsBot.cs +++ b/Core/bottypes/DialogsBot.cs @@ -75,7 +75,7 @@ namespace BSB.bottypes return base.GetStatus(); } - protected override void AfterBotLoginHandler() + public override void AfterBotLoginHandler() { base.AfterBotLoginHandler(); if (reconnect == false) diff --git a/Core/bottypes/EventsBot.cs b/Core/bottypes/EventsBot.cs index 5987c9c..b9a582a 100644 --- a/Core/bottypes/EventsBot.cs +++ b/Core/bottypes/EventsBot.cs @@ -43,7 +43,7 @@ namespace BSB.bottypes return base.GetStatus(); } - protected override void AfterBotLoginHandler() + public override void AfterBotLoginHandler() { if (reconnect == false) { @@ -292,48 +292,6 @@ namespace BSB.bottypes base.KillMePlease(); } - protected string login_status = "Waiting to login"; - protected override void LoginHandler(object o, LoginProgressEventArgs e) - { - attempted_first_login = true; - login_failed = false; - if (e.Status == LoginStatus.Success) - { - login_status = "Ok"; - } - else if(e.Status == LoginStatus.Failed) - { - login_failed = true; - login_status = "Login failed <"+e.Message+">"; - login_auto_logout = true; - if (e.FailReason == "presence") - { - login_status = "Login failed "; - } - } - else if(e.Status == LoginStatus.None) - { - login_status = "None :/"; - } - else if(e.Status == LoginStatus.ConnectingToLogin) - { - login_status = "Starting login"; - } - else if(e.Status == LoginStatus.ReadingResponse) - { - login_status = "Busy"; - } - else if(e.Status == LoginStatus.ConnectingToSim) - { - login_status = "Joining sim"; - } - else if(e.Status == LoginStatus.Redirecting) - { - login_status = "Redirecting"; - } - Info("Login status -> " + login_status); - - } public virtual void GroupsHandler(object sender, CurrentGroupsEventArgs e) { mygroups = e.Groups; @@ -345,7 +303,7 @@ namespace BSB.bottypes } - protected override void AfterBotLoginHandler() + public override void AfterBotLoginHandler() { if (reconnect == false) { diff --git a/Core/bottypes/MessageSwitcherBot.cs b/Core/bottypes/MessageSwitcherBot.cs index c97a3dd..34cec31 100644 --- a/Core/bottypes/MessageSwitcherBot.cs +++ b/Core/bottypes/MessageSwitcherBot.cs @@ -25,7 +25,7 @@ namespace BSB.bottypes return base.GetStatus(); } - protected override void AfterBotLoginHandler() + public override void AfterBotLoginHandler() { connected_to_groups = false; base.AfterBotLoginHandler(); diff --git a/Core/bottypes/SecondBot.cs b/Core/bottypes/SecondBot.cs index 22b4921..ca497f6 100644 --- a/Core/bottypes/SecondBot.cs +++ b/Core/bottypes/SecondBot.cs @@ -14,6 +14,7 @@ namespace BSB.bottypes protected bool friendslist_ready; protected bool masteruuid_ready; protected bool started_friendship_hug; + protected bool sentFriendHugIM; protected virtual void FriendsListReady(object sender,FriendsReadyEventArgs e) { @@ -25,16 +26,12 @@ namespace BSB.bottypes { if ((masteruuid_ready == true) && (friendslist_ready == true) && (started_friendship_hug == false)) { - started_friendship_hug = true; + started_friendship_hug = true; if (Client.Friends.FriendList.ContainsKey(master_uuid) == false) { CommandsInterface.Call("IM", String.Join("~#~", new string[] { myconfig.Security_MasterUsername, "Hello master, I am sending you a friend request now!" })); - CommandsInterface.Call("FriendRequest", myconfig.Security_MasterUsername, Client.Self.AgentID); - } - else - { - CommandsInterface.Call("FriendFullPerms", String.Join("~#~", new string[] { myconfig.Security_MasterUsername, "true" }), Client.Self.AgentID); } + CommandsInterface.Call("FriendFullPerms", String.Join("~#~", new string[] { master_uuid.ToString(), "true" }), Client.Self.AgentID); } } diff --git a/Core/bottypes/athome.cs b/Core/bottypes/athome.cs index f503cce..7ce2e35 100644 --- a/Core/bottypes/athome.cs +++ b/Core/bottypes/athome.cs @@ -7,384 +7,103 @@ using BetterSecondBotShared.logs; namespace BSB.bottypes { + public class NextHomeRegionArgs: EventArgs + { + } + public abstract class AtHome : MessageSwitcherBot { - protected long last_tp_attempt_unixtime; - protected string last_attempted_teleport_region = ""; - protected bool after_login_fired; - protected int last_tested_home_id = -1; - protected Dictionary avoid_sims = new Dictionary(); - protected bool teleport_lockout; - - protected override void AfterBotLoginHandler() - { - base.AfterBotLoginHandler(); - last_tested_home_id = -1; - last_tp_attempt_unixtime = helpers.UnixTimeNow() + 30; - if (after_login_fired == false) - { - Info("Home regions count: " + myconfig.Basic_HomeRegions.Length.ToString() + ""); - Client.Self.AlertMessage += AlertEvent; - Client.Network.SimChanged += ChangeSim; - after_login_fired = true; - reconnect = true; - } - } - - - protected void ChangeSim(object sender,SimChangedEventArgs e) - { - if (IsSimHome(Client.Network.CurrentSim.Name) == false) - { - if (teleport_lockout == false) - { - if (last_attempted_teleport_region != "") - { - if (last_attempted_teleport_region != Client.Network.CurrentSim.Name) - { + protected string BetterAtHomeAction = ""; + private EventHandler _ChangeSim; + private EventHandler _AlertMessage; + private EventHandler _LoginProgess; + private EventHandler _NextHomeRegion; - teleport_lockout = true; - Info("Teleport by script/master detected - @home lock out enabled"); - } - } - else - { - last_attempted_teleport_region = Client.Network.CurrentSim.Name; - Info("Connected to region"); - } - } - } - else - { - if (UUID.TryParse(myconfig.Setting_DefaultSit_UUID, out UUID sit_UUID) == true) - { - Client.Self.RequestSit(sit_UUID, Vector3.Zero); - } - } + private readonly object _ChangeSimLock = new object(); + private readonly object _AlertMessageLock = new object(); + private readonly object _LoginProgressLock = new object(); + private readonly object _NextHomeRegionLock = new object(); + + + public event EventHandler ChangeSimEvent + { + add { lock (_ChangeSimLock) { _ChangeSim += value; } } + remove { lock (_ChangeSimLock) { _ChangeSim -= value; } } } - protected void AlertEvent(object sender,AlertMessageEventArgs e) + public event EventHandler AlertMessage + { + add { lock (_AlertMessageLock) { _AlertMessage += value; } } + remove { lock (_AlertMessageLock) { _AlertMessage -= value; } } + } + public event EventHandler LoginProgess + { + add { lock (_LoginProgressLock) { _LoginProgess += value; } } + remove { lock (_LoginProgressLock) { _LoginProgess -= value; } } + } + public event EventHandler NextHomeRegion + { + add { lock (_NextHomeRegionLock) { _NextHomeRegion += value; } } + remove { lock (_NextHomeRegionLock) { _NextHomeRegion -= value; } } + } + + protected override void LoginHandler(object o, LoginProgressEventArgs e) { - if(e.Message.Contains("restart") == true) - { - // oh snap region is dead run away - Info("--- Sim Restarting ---"); - AvoidSim(Client.Network.CurrentSim.Name); - GotoNextHomeRegion(); - } + base.LoginHandler(o, e); + EventHandler handler = _LoginProgess; + handler?.Invoke(this, e); + } + + protected void ChangeSim(object sender,SimChangedEventArgs e) + { + EventHandler handler = _ChangeSim; + handler?.Invoke(this, e); + } + + protected void AlertEvent(object sender,AlertMessageEventArgs e) + { + EventHandler handler = _AlertMessage; + handler?.Invoke(this, e); + } + + public void GotoNextHomeRegion() + { + NextHomeRegionArgs e = new NextHomeRegionArgs(); + EventHandler handler = _NextHomeRegion; + handler?.Invoke(this, e); } public void ResetAtHome() { - Debug("@home / ResetAtHome"); - last_tested_home_id = -1; - teleport_lockout = false; - last_attempted_teleport_region = ""; - avoid_sims = new Dictionary(); - last_tp_attempt_unixtime = helpers.UnixTimeNow() + 30; + } - - - protected override void AvoidSim(string simname) - { - if (avoid_sims.ContainsKey(simname) == false) - { - Debug("@home / Avoiding sim: " + simname); - avoid_sims.Add(simname, helpers.UnixTimeNow() + 240); // @home will avoid that sim for the next 4 mins - } - } - - protected void ExpireOldAvoidSims() - { - if (avoid_sims.Count() > 0) - { - List remove_keys = new List(); - long now = helpers.UnixTimeNow(); - foreach (KeyValuePair avoids in avoid_sims) - { - if(avoids.Value < now) - { - remove_keys.Add(avoids.Key); - } - } - if(remove_keys.Count() > 0) - { - foreach (string a in remove_keys) - { - avoid_sims.Remove(a); - } - } - } - } - - - public bool IsSimHome(string simname) - { - simname = simname.ToLowerInvariant(); - if (helpers.notempty(myconfig.Basic_HomeRegions) == false) - { - return false; - } - else if (myconfig.Basic_HomeRegions.Length == 0) - { - return false; - } - else - { - bool reply = false; - foreach (string sl_url in myconfig.Basic_HomeRegions) - { - string[] bits = helpers.ParseSLurl(sl_url); - if (helpers.notempty(bits) == true) - { - if (bits.Length == 4) - { - if(bits[0].ToLowerInvariant() == simname) - { - return true; - } - } - } - } - return reply; - } - - } - - public string LoggedinAthome() - { - string addon = "Waiting for action"; - if (teleport_lockout == false) - { - if (IsSimHome(Client.Network.CurrentSim.Name) == true) - { - addon = "Home region"; - } - else - { - long dif = helpers.UnixTimeNow() - last_tp_attempt_unixtime; - if (dif > 0) - { - addon = "Waiting for TP cooldown"; - } - else - { - GotoNextHomeRegion(); - } - } - } - else - { - addon = "Lockout"; - } - return addon; - } - - - protected long login_failed_retry_at = 0; - protected long connection_lost_at = 0; - public string AtHomeReconnect() + public void SetBetterAtHomeAction(string BetterAtHomeAction) { - if (attempted_first_login == true) - { - if (login_failed == false) - { - return login_status; - } - else - { - if(login_failed_retry_at == 0) - { - login_failed_retry_at = helpers.UnixTimeNow() + 40; - return login_status + " Retrying in 40 secs"; - } - else - { - long dif = helpers.UnixTimeNow() - login_failed_retry_at; - if(dif > 0) - { - login_failed_retry_at = 0; - attempted_first_login = false; - login_failed = false; - Start(true); - return "Attempting reconnect"; - } - else - { - return "Waiting for reconnect - " + dif.ToString() + " secs"; - } - } - } - } - else - { - if(connection_lost_at == 0) - { - connection_lost_at = helpers.UnixTimeNow() + 30; - return "Connection lost reconnect in 30 secs"; - } - else - { - long dif = helpers.UnixTimeNow() - connection_lost_at; - if(dif > 0) - { - login_failed_retry_at = 0; - attempted_first_login = false; - login_failed = false; - Start(true); - return "Attempting reconnect"; - } - else - { - return "Connection lost reconnect in "+ dif.ToString()+" secs"; - } - } - } - - } - - protected override string[] getNextHomeArgs() - { - string UseSLurl = ""; - foreach (string Slurl in myconfig.Basic_HomeRegions) - { - string simname = helpers.RegionnameFromSLurl(Slurl); - if (avoid_sims.Keys.Contains(simname) == false) - { - UseSLurl = Slurl; - break; - } - } - string[] bits = helpers.ParseSLurl(UseSLurl); - if (helpers.notempty(bits) == true) - { - if (bits.Length == 4) - { - return bits; - } - } - return new string[] { }; + this.BetterAtHomeAction = BetterAtHomeAction; } - public string GotoNextHomeRegion() - { - if (myconfig.Basic_HomeRegions.Length > 0) - { - last_tp_attempt_unixtime = helpers.UnixTimeNow(); - List tested_sims = new List(); - string UseSLurl = ""; - string simname = ""; - while ((tested_sims.Count() != myconfig.Basic_HomeRegions.Length) && (UseSLurl == "")) - { - last_tested_home_id++; - if (last_tested_home_id >= myconfig.Basic_HomeRegions.Length) - { - last_tested_home_id = 0; - } - UseSLurl = myconfig.Basic_HomeRegions[last_tested_home_id]; - simname = helpers.RegionnameFromSLurl(UseSLurl); - if (simname != last_attempted_teleport_region) - { - if (avoid_sims.ContainsKey(simname) == true) - { - UseSLurl = ""; - } - } - tested_sims.Add(simname); - } - if (UseSLurl != "") - { - string whyrejected = TeleportWithSLurl(UseSLurl); - if (whyrejected == "ok") - { - AvoidSim(simname); - return "**** active teleport: " + last_attempted_teleport_region + "***"; - } - AvoidSim(simname); - return "TP to " + simname + " rejected - " + whyrejected; - } - return "No other sims found to teleport to"; - } - return "No home regions"; - } - - - protected string AtHomeStatus(string message) - { - return " [@Home: " + message+"]"; - } - - protected string AtHome_laststatus = ""; public override string GetStatus() { - ExpireOldAvoidSims(); - string reply = "Disconnected: No action"; - if (Client.Network.Connected == true) - { - connection_lost_at = 0; - if (Client.Network.CurrentSim != null) - { - if(after_login_fired == false) - { - AfterBotLoginHandler(); - } - reply = LoggedinAthome(); - } - else - { - reply = "Connected: No Sim"; - } - } - else + return base.GetStatus() + " <@BetterAtHome: " + BetterAtHomeAction + ">"; + } + + public string TeleportWithSLurl(string sl_url) + { + string[] bits = helpers.ParseSLurl(sl_url); + if (helpers.notempty(bits) == true) { - reply = AtHomeReconnect(); - } - reply = AtHomeStatus(reply); - if (reply != AtHome_laststatus) - { - AtHome_laststatus = reply; - return base.GetStatus() + reply; - } - return base.GetStatus(); - } - - public string TeleportWithSLurl(string sl_url) - { - string[] bits = helpers.ParseSLurl(sl_url); - if (helpers.notempty(bits) == true) - { - if (bits.Length == 4) - { - float.TryParse(bits[1], out float posX); - float.TryParse(bits[2], out float posY); - float.TryParse(bits[3], out float posZ); - string regionName = bits[0]; - if (avoid_sims.ContainsKey(regionName) == false) - { - last_tp_attempt_unixtime = helpers.UnixTimeNow(); - last_attempted_teleport_region = regionName; - Client.Self.Teleport(regionName, new Vector3(posX, posY, posZ)); - return "ok"; - } - return "Sim in avoid list"; - } - return "Invaild bits length for SLurl"; - } - return "No bits decoded"; - } - - public void SetHome(string sl_url) - { - if (sl_url != null) - { - if (myconfig.Basic_HomeRegions.Contains(sl_url) == false) - { - List old = myconfig.Basic_HomeRegions.ToList(); - old.Add(sl_url); - myconfig.Basic_HomeRegions = old.ToArray(); - } - } - last_tested_home_id = -1; + if (bits.Length == 4) + { + float.TryParse(bits[1], out float posX); + float.TryParse(bits[2], out float posY); + float.TryParse(bits[3], out float posZ); + string regionName = bits[0]; + Client.Self.Teleport(regionName, new Vector3(posX, posY, posZ)); + return "ok"; + } + return "Invaild bits length for SLurl"; + } + return "No bits decoded"; } } } diff --git a/LibreMetaverse/AppearanceManager.cs b/LibreMetaverse/AppearanceManager.cs index 54a30ee..0b51859 100644 --- a/LibreMetaverse/AppearanceManager.cs +++ b/LibreMetaverse/AppearanceManager.cs @@ -2255,7 +2255,10 @@ namespace OpenMetaverse MyVisualParameters = new byte[set.VisualParam.Length]; for (int i = 0; i < set.VisualParam.Length; i++) { - MyVisualParameters[i] = set.VisualParam[i].ParamValue; + if (set.VisualParam[i] != null) + { + MyVisualParameters[i] = set.VisualParam[i].ParamValue; + } } #endregion VisualParam diff --git a/LibreMetaverse/Imaging/BakeLayer.cs b/LibreMetaverse/Imaging/BakeLayer.cs index 24677f6..a845b37 100644 --- a/LibreMetaverse/Imaging/BakeLayer.cs +++ b/LibreMetaverse/Imaging/BakeLayer.cs @@ -40,7 +40,6 @@ namespace OpenMetaverse.Imaging /// public class Baker { - private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); #region Properties /// Final baked texture public AssetTexture BakedTexture => bakedTexture; @@ -330,10 +329,10 @@ namespace OpenMetaverse.Imaging DrawLayer(texture, false); } } - } - - // Apply any alpha wearable textures to make parts of the avatar disappear - m_log.DebugFormat("[XBakes]: Number of alpha wearable textures: {0}", alphaWearableTextures.Count); + } + + // Apply any alpha wearable textures to make parts of the avatar disappear + Logger.Log("[XBakes]: Number of alpha wearable textures: " + alphaWearableTextures.Count.ToString(), Helpers.LogLevel.Debug); foreach (ManagedImage img in alphaWearableTextures) AddAlpha(bakedTexture.Image, img); @@ -465,15 +464,24 @@ namespace OpenMetaverse.Imaging { if (sourceHasAlpha) { - alpha = sourceAlpha[i]; - alphaInv = (byte)(Byte.MaxValue - alpha); + if (sourceAlpha.Length > i) + { + alpha = sourceAlpha[i]; + alphaInv = (byte)(Byte.MaxValue - alpha); + } } if (sourceHasColor) { - bakedRed[i] = (byte)((bakedRed[i] * alphaInv + sourceRed[i] * alpha) >> 8); - bakedGreen[i] = (byte)((bakedGreen[i] * alphaInv + sourceGreen[i] * alpha) >> 8); - bakedBlue[i] = (byte)((bakedBlue[i] * alphaInv + sourceBlue[i] * alpha) >> 8); + if ((bakedRed.Length > i) && (bakedGreen.Length > i) && (bakedBlue.Length > i)) + { + if ((sourceRed.Length > i) && (sourceGreen.Length > i) && (sourceBlue.Length > i)) + { + bakedRed[i] = (byte)((bakedRed[i] * alphaInv + sourceRed[i] * alpha) >> 8); + bakedGreen[i] = (byte)((bakedGreen[i] * alphaInv + sourceGreen[i] * alpha) >> 8); + bakedBlue[i] = (byte)((bakedBlue[i] * alphaInv + sourceBlue[i] * alpha) >> 8); + } + } } if (addSourceAlpha) diff --git a/LibreMetaverse/InventoryAISClient.cs b/LibreMetaverse/InventoryAISClient.cs index 96dedc2..05bdada 100644 --- a/LibreMetaverse/InventoryAISClient.cs +++ b/LibreMetaverse/InventoryAISClient.cs @@ -12,19 +12,28 @@ using OpenMetaverse.StructuredData; namespace LibreMetaverse { + public class InventoryAISClient { public const string INVENTORY_CAP_NAME = "InventoryAPIv3"; public const string LIBRARY_CAP_NAME = "LibraryAPIv3"; + [NonSerialized] - private readonly GridClient Client; - - private static readonly HttpClient httpClient = new HttpClient(); - + private readonly GridClient Client; + + // Create an HttpClientHandler object and set to use default credentials + HttpClientHandler clientHandler = new HttpClientHandler(); + + // Create an HttpClient object + HttpClient httpClient; + + public InventoryAISClient(GridClient client) { - Client = client; + Client = client; + clientHandler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return true; }; + httpClient = new HttpClient(clientHandler); httpClient.DefaultRequestHeaders.Accept.Clear(); httpClient.DefaultRequestHeaders.Add("User-Agent", "LibreMetaverse AIS Client"); } diff --git a/LibreMetaverse/_Packets_.cs b/LibreMetaverse/_Packets_.cs index 6a82ae8..7f0ddf5 100644 --- a/LibreMetaverse/_Packets_.cs +++ b/LibreMetaverse/_Packets_.cs @@ -12798,9 +12798,20 @@ namespace OpenMetaverse.Packets length += AgentData.Length; length += ObjectData.Length; length++; - for (int j = 0; j < WearableData.Length; j++) { length += WearableData[j].Length; } + for (int j = 0; j < WearableData.Length; j++) { + if (WearableData[j] != null) + { + length += WearableData[j].Length; + } + } length++; - for (int j = 0; j < VisualParam.Length; j++) { length += VisualParam[j].Length; } + for (int j = 0; j < VisualParam.Length; j++) + { + if (VisualParam[j] != null) + { + length += VisualParam[j].Length; + } + } if (Header.AckList != null && Header.AckList.Length > 0) { length += Header.AckList.Length * 4 + 1; } byte[] bytes = new byte[length]; int i = 0; @@ -12810,7 +12821,12 @@ namespace OpenMetaverse.Packets for (int j = 0; j < WearableData.Length; j++) { WearableData[j].ToBytes(bytes, ref i); } ObjectData.ToBytes(bytes, ref i); bytes[i++] = (byte)VisualParam.Length; - for (int j = 0; j < VisualParam.Length; j++) { VisualParam[j].ToBytes(bytes, ref i); } + for (int j = 0; j < VisualParam.Length; j++) { + if (VisualParam[j] != null) + { + VisualParam[j].ToBytes(bytes, ref i); + } + } if (Header.AckList != null && Header.AckList.Length > 0) { Header.AcksToBytes(bytes, ref i); } return bytes; } diff --git a/Shared/BotTypes/BasicBot.cs b/Shared/BotTypes/BasicBot.cs index 59a54d9..9f20db8 100644 --- a/Shared/BotTypes/BasicBot.cs +++ b/Shared/BotTypes/BasicBot.cs @@ -17,8 +17,6 @@ namespace BetterSecondBotShared.bottypes LastStatusMessage = "No status"; } protected List SubMasters = new List(); - protected bool attempted_first_login = false; - protected bool login_failed = false; public bool Is_avatar_master(string name) { if (name == myconfig.Security_MasterUsername) @@ -339,7 +337,7 @@ namespace BetterSecondBotShared.bottypes Debug("LoginHandler proc not overridden"); } - protected virtual void AfterBotLoginHandler() + public virtual void AfterBotLoginHandler() { Debug("AfterBotLoginHandler proc not overridden"); } diff --git a/openmetaverse_data/avatar_lad.xml b/openmetaverse_data/avatar_lad.xml new file mode 100644 index 0000000..2cdd862 --- /dev/null +++ b/openmetaverse_data/avatar_lad.xml @@ -0,0 +1,17504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/openmetaverse_data/avatar_skeleton.xml b/openmetaverse_data/avatar_skeleton.xml new file mode 100644 index 0000000..2241a12 --- /dev/null +++ b/openmetaverse_data/avatar_skeleton.xml @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/openmetaverse_data/blush_alpha.tga b/openmetaverse_data/blush_alpha.tga new file mode 100644 index 0000000..05be7e7 Binary files /dev/null and b/openmetaverse_data/blush_alpha.tga differ diff --git a/openmetaverse_data/body_skingrain.tga b/openmetaverse_data/body_skingrain.tga new file mode 100644 index 0000000..7264baa Binary files /dev/null and b/openmetaverse_data/body_skingrain.tga differ diff --git a/openmetaverse_data/bodyfreckles_alpha.tga b/openmetaverse_data/bodyfreckles_alpha.tga new file mode 100644 index 0000000..d30ab3d Binary files /dev/null and b/openmetaverse_data/bodyfreckles_alpha.tga differ diff --git a/openmetaverse_data/bump_face_wrinkles.tga b/openmetaverse_data/bump_face_wrinkles.tga new file mode 100644 index 0000000..54bf7a5 Binary files /dev/null and b/openmetaverse_data/bump_face_wrinkles.tga differ diff --git a/openmetaverse_data/bump_head_base.tga b/openmetaverse_data/bump_head_base.tga new file mode 100644 index 0000000..fa35685 Binary files /dev/null and b/openmetaverse_data/bump_head_base.tga differ diff --git a/openmetaverse_data/bump_lowerbody_base.tga b/openmetaverse_data/bump_lowerbody_base.tga new file mode 100644 index 0000000..498ea3c Binary files /dev/null and b/openmetaverse_data/bump_lowerbody_base.tga differ diff --git a/openmetaverse_data/bump_pants_wrinkles.tga b/openmetaverse_data/bump_pants_wrinkles.tga new file mode 100644 index 0000000..cca7241 Binary files /dev/null and b/openmetaverse_data/bump_pants_wrinkles.tga differ diff --git a/openmetaverse_data/bump_shirt_wrinkles.tga b/openmetaverse_data/bump_shirt_wrinkles.tga new file mode 100644 index 0000000..9e0d757 Binary files /dev/null and b/openmetaverse_data/bump_shirt_wrinkles.tga differ diff --git a/openmetaverse_data/bump_upperbody_base.tga b/openmetaverse_data/bump_upperbody_base.tga new file mode 100644 index 0000000..e57d635 Binary files /dev/null and b/openmetaverse_data/bump_upperbody_base.tga differ diff --git a/openmetaverse_data/eyebrows_alpha.tga b/openmetaverse_data/eyebrows_alpha.tga new file mode 100644 index 0000000..c363e48 Binary files /dev/null and b/openmetaverse_data/eyebrows_alpha.tga differ diff --git a/openmetaverse_data/eyeliner_alpha.tga b/openmetaverse_data/eyeliner_alpha.tga new file mode 100644 index 0000000..1611eb3 Binary files /dev/null and b/openmetaverse_data/eyeliner_alpha.tga differ diff --git a/openmetaverse_data/eyeshadow_inner_alpha.tga b/openmetaverse_data/eyeshadow_inner_alpha.tga new file mode 100644 index 0000000..37d7919 Binary files /dev/null and b/openmetaverse_data/eyeshadow_inner_alpha.tga differ diff --git a/openmetaverse_data/eyeshadow_outer_alpha.tga b/openmetaverse_data/eyeshadow_outer_alpha.tga new file mode 100644 index 0000000..00eef9d Binary files /dev/null and b/openmetaverse_data/eyeshadow_outer_alpha.tga differ diff --git a/openmetaverse_data/eyewhite.tga b/openmetaverse_data/eyewhite.tga new file mode 100644 index 0000000..a720496 Binary files /dev/null and b/openmetaverse_data/eyewhite.tga differ diff --git a/openmetaverse_data/facehair_chincurtains_alpha.tga b/openmetaverse_data/facehair_chincurtains_alpha.tga new file mode 100644 index 0000000..b103970 Binary files /dev/null and b/openmetaverse_data/facehair_chincurtains_alpha.tga differ diff --git a/openmetaverse_data/facehair_moustache_alpha.tga b/openmetaverse_data/facehair_moustache_alpha.tga new file mode 100644 index 0000000..4068c4f Binary files /dev/null and b/openmetaverse_data/facehair_moustache_alpha.tga differ diff --git a/openmetaverse_data/facehair_sideburns_alpha.tga b/openmetaverse_data/facehair_sideburns_alpha.tga new file mode 100644 index 0000000..acddc2d Binary files /dev/null and b/openmetaverse_data/facehair_sideburns_alpha.tga differ diff --git a/openmetaverse_data/facehair_soulpatch_alpha.tga b/openmetaverse_data/facehair_soulpatch_alpha.tga new file mode 100644 index 0000000..687091a Binary files /dev/null and b/openmetaverse_data/facehair_soulpatch_alpha.tga differ diff --git a/openmetaverse_data/freckles_alpha.tga b/openmetaverse_data/freckles_alpha.tga new file mode 100644 index 0000000..a9a4ec0 Binary files /dev/null and b/openmetaverse_data/freckles_alpha.tga differ diff --git a/openmetaverse_data/glove_length_alpha.tga b/openmetaverse_data/glove_length_alpha.tga new file mode 100644 index 0000000..db89ad5 Binary files /dev/null and b/openmetaverse_data/glove_length_alpha.tga differ diff --git a/openmetaverse_data/gloves_fingers_alpha.tga b/openmetaverse_data/gloves_fingers_alpha.tga new file mode 100644 index 0000000..dba2eec Binary files /dev/null and b/openmetaverse_data/gloves_fingers_alpha.tga differ diff --git a/openmetaverse_data/head_alpha.tga b/openmetaverse_data/head_alpha.tga new file mode 100644 index 0000000..8164525 Binary files /dev/null and b/openmetaverse_data/head_alpha.tga differ diff --git a/openmetaverse_data/head_color.tga b/openmetaverse_data/head_color.tga new file mode 100644 index 0000000..74b1b30 Binary files /dev/null and b/openmetaverse_data/head_color.tga differ diff --git a/openmetaverse_data/head_hair.tga b/openmetaverse_data/head_hair.tga new file mode 100644 index 0000000..5321f35 Binary files /dev/null and b/openmetaverse_data/head_hair.tga differ diff --git a/openmetaverse_data/head_highlights_alpha.tga b/openmetaverse_data/head_highlights_alpha.tga new file mode 100644 index 0000000..8dc5239 Binary files /dev/null and b/openmetaverse_data/head_highlights_alpha.tga differ diff --git a/openmetaverse_data/head_shading_alpha.tga b/openmetaverse_data/head_shading_alpha.tga new file mode 100644 index 0000000..e8ea490 Binary files /dev/null and b/openmetaverse_data/head_shading_alpha.tga differ diff --git a/openmetaverse_data/head_skingrain.tga b/openmetaverse_data/head_skingrain.tga new file mode 100644 index 0000000..b42dee0 Binary files /dev/null and b/openmetaverse_data/head_skingrain.tga differ diff --git a/openmetaverse_data/jacket_length_lower_alpha.tga b/openmetaverse_data/jacket_length_lower_alpha.tga new file mode 100644 index 0000000..722bc19 Binary files /dev/null and b/openmetaverse_data/jacket_length_lower_alpha.tga differ diff --git a/openmetaverse_data/jacket_length_upper_alpha.tga b/openmetaverse_data/jacket_length_upper_alpha.tga new file mode 100644 index 0000000..e9db7e7 Binary files /dev/null and b/openmetaverse_data/jacket_length_upper_alpha.tga differ diff --git a/openmetaverse_data/jacket_open_lower_alpha.tga b/openmetaverse_data/jacket_open_lower_alpha.tga new file mode 100644 index 0000000..db0c2fb Binary files /dev/null and b/openmetaverse_data/jacket_open_lower_alpha.tga differ diff --git a/openmetaverse_data/jacket_open_upper_alpha.tga b/openmetaverse_data/jacket_open_upper_alpha.tga new file mode 100644 index 0000000..71b8a0b Binary files /dev/null and b/openmetaverse_data/jacket_open_upper_alpha.tga differ diff --git a/openmetaverse_data/lipgloss_alpha.tga b/openmetaverse_data/lipgloss_alpha.tga new file mode 100644 index 0000000..78ceeca Binary files /dev/null and b/openmetaverse_data/lipgloss_alpha.tga differ diff --git a/openmetaverse_data/lips_mask.tga b/openmetaverse_data/lips_mask.tga new file mode 100644 index 0000000..ae1401c Binary files /dev/null and b/openmetaverse_data/lips_mask.tga differ diff --git a/openmetaverse_data/lipstick_alpha.tga b/openmetaverse_data/lipstick_alpha.tga new file mode 100644 index 0000000..2795f1b Binary files /dev/null and b/openmetaverse_data/lipstick_alpha.tga differ diff --git a/openmetaverse_data/lowerbody_color.tga b/openmetaverse_data/lowerbody_color.tga new file mode 100644 index 0000000..a63aa12 Binary files /dev/null and b/openmetaverse_data/lowerbody_color.tga differ diff --git a/openmetaverse_data/lowerbody_highlights_alpha.tga b/openmetaverse_data/lowerbody_highlights_alpha.tga new file mode 100644 index 0000000..ae3413a Binary files /dev/null and b/openmetaverse_data/lowerbody_highlights_alpha.tga differ diff --git a/openmetaverse_data/lowerbody_shading_alpha.tga b/openmetaverse_data/lowerbody_shading_alpha.tga new file mode 100644 index 0000000..0242663 Binary files /dev/null and b/openmetaverse_data/lowerbody_shading_alpha.tga differ diff --git a/openmetaverse_data/nailpolish_alpha.tga b/openmetaverse_data/nailpolish_alpha.tga new file mode 100644 index 0000000..91af762 Binary files /dev/null and b/openmetaverse_data/nailpolish_alpha.tga differ diff --git a/openmetaverse_data/pants_length_alpha.tga b/openmetaverse_data/pants_length_alpha.tga new file mode 100644 index 0000000..3c4f21c Binary files /dev/null and b/openmetaverse_data/pants_length_alpha.tga differ diff --git a/openmetaverse_data/pants_waist_alpha.tga b/openmetaverse_data/pants_waist_alpha.tga new file mode 100644 index 0000000..35658c0 Binary files /dev/null and b/openmetaverse_data/pants_waist_alpha.tga differ diff --git a/openmetaverse_data/rosyface_alpha.tga b/openmetaverse_data/rosyface_alpha.tga new file mode 100644 index 0000000..a0c8513 Binary files /dev/null and b/openmetaverse_data/rosyface_alpha.tga differ diff --git a/openmetaverse_data/rouge_alpha.tga b/openmetaverse_data/rouge_alpha.tga new file mode 100644 index 0000000..a0c8513 Binary files /dev/null and b/openmetaverse_data/rouge_alpha.tga differ diff --git a/openmetaverse_data/shirt_bottom_alpha.tga b/openmetaverse_data/shirt_bottom_alpha.tga new file mode 100644 index 0000000..7cce03d Binary files /dev/null and b/openmetaverse_data/shirt_bottom_alpha.tga differ diff --git a/openmetaverse_data/shirt_collar_alpha.tga b/openmetaverse_data/shirt_collar_alpha.tga new file mode 100644 index 0000000..f55f635 Binary files /dev/null and b/openmetaverse_data/shirt_collar_alpha.tga differ diff --git a/openmetaverse_data/shirt_collar_back_alpha.tga b/openmetaverse_data/shirt_collar_back_alpha.tga new file mode 100644 index 0000000..43a6453 Binary files /dev/null and b/openmetaverse_data/shirt_collar_back_alpha.tga differ diff --git a/openmetaverse_data/shirt_sleeve_alpha.tga b/openmetaverse_data/shirt_sleeve_alpha.tga new file mode 100644 index 0000000..e3b18f4 Binary files /dev/null and b/openmetaverse_data/shirt_sleeve_alpha.tga differ diff --git a/openmetaverse_data/shoe_height_alpha.tga b/openmetaverse_data/shoe_height_alpha.tga new file mode 100644 index 0000000..d08dd75 Binary files /dev/null and b/openmetaverse_data/shoe_height_alpha.tga differ diff --git a/openmetaverse_data/skirt_length_alpha.tga b/openmetaverse_data/skirt_length_alpha.tga new file mode 100644 index 0000000..c867994 Binary files /dev/null and b/openmetaverse_data/skirt_length_alpha.tga differ diff --git a/openmetaverse_data/skirt_slit_back_alpha.tga b/openmetaverse_data/skirt_slit_back_alpha.tga new file mode 100644 index 0000000..0e49688 Binary files /dev/null and b/openmetaverse_data/skirt_slit_back_alpha.tga differ diff --git a/openmetaverse_data/skirt_slit_front_alpha.tga b/openmetaverse_data/skirt_slit_front_alpha.tga new file mode 100644 index 0000000..888bbf7 Binary files /dev/null and b/openmetaverse_data/skirt_slit_front_alpha.tga differ diff --git a/openmetaverse_data/skirt_slit_left_alpha.tga b/openmetaverse_data/skirt_slit_left_alpha.tga new file mode 100644 index 0000000..210feac Binary files /dev/null and b/openmetaverse_data/skirt_slit_left_alpha.tga differ diff --git a/openmetaverse_data/skirt_slit_right_alpha.tga b/openmetaverse_data/skirt_slit_right_alpha.tga new file mode 100644 index 0000000..ce11c64 Binary files /dev/null and b/openmetaverse_data/skirt_slit_right_alpha.tga differ diff --git a/openmetaverse_data/underpants_trial_female.tga b/openmetaverse_data/underpants_trial_female.tga new file mode 100644 index 0000000..96bf732 Binary files /dev/null and b/openmetaverse_data/underpants_trial_female.tga differ diff --git a/openmetaverse_data/underpants_trial_male.tga b/openmetaverse_data/underpants_trial_male.tga new file mode 100644 index 0000000..095695c Binary files /dev/null and b/openmetaverse_data/underpants_trial_male.tga differ diff --git a/openmetaverse_data/undershirt_trial_female.tga b/openmetaverse_data/undershirt_trial_female.tga new file mode 100644 index 0000000..e17a309 Binary files /dev/null and b/openmetaverse_data/undershirt_trial_female.tga differ diff --git a/openmetaverse_data/upperbody_color.tga b/openmetaverse_data/upperbody_color.tga new file mode 100644 index 0000000..85fcc41 Binary files /dev/null and b/openmetaverse_data/upperbody_color.tga differ diff --git a/openmetaverse_data/upperbody_highlights_alpha.tga b/openmetaverse_data/upperbody_highlights_alpha.tga new file mode 100644 index 0000000..2d8102b Binary files /dev/null and b/openmetaverse_data/upperbody_highlights_alpha.tga differ diff --git a/openmetaverse_data/upperbody_shading_alpha.tga b/openmetaverse_data/upperbody_shading_alpha.tga new file mode 100644 index 0000000..b420506 Binary files /dev/null and b/openmetaverse_data/upperbody_shading_alpha.tga differ diff --git a/openmetaverse_data/upperbodyfreckles_alpha.tga b/openmetaverse_data/upperbodyfreckles_alpha.tga new file mode 100644 index 0000000..76c7ce8 Binary files /dev/null and b/openmetaverse_data/upperbodyfreckles_alpha.tga differ