a final checkpoint before I try to update LMV lib.

This commit is contained in:
alexiscatnip
2022-01-16 20:21:40 +08:00
parent b5dbc2e908
commit 3a745e31f9
6 changed files with 561 additions and 9233 deletions
-8
View File
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 95462efaa5b0f3a4cbdae982380e7a3b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+1 -4
View File
@@ -49,10 +49,7 @@ namespace Raindrop.Presenters
public TMP_Text credError;
#endregion
#region internal representations
private readonly string INIT_USERNAME = "username";
private readonly string INIT_PASSWORD = "password";
#region internal representations
private Settings s;
public string Username
+50 -33
View File
@@ -30,26 +30,34 @@ namespace Raindrop.Presenters
{
mainThread = System.Threading.Thread.CurrentThread;
//instance.Client.Objects.ObjectUpdate += ObjectsOnObjectUpdate; //prims, foilage, attachments (for those that are static and we-just-saw-it)
instance.Client.Objects.TerseObjectUpdate += ObjectsOnTerseObjectUpdate; //prims, avatars (for those that move often and hap-hazardly)
//instance.Client.Objects.TerseObjectUpdate += ObjectsOnTerseObjectUpdate; //prims, avatars (for those that move often and hap-hazardly)
}
private void ObjectsOnTerseObjectUpdate(object sender, TerseObjectUpdateEventArgs e)
{
GameObject obj;
lock (objectsLock)
{
objects.TryGetValue(e.Prim.ID, out obj);
if (obj != null)
// if (isOnMainThread())
// {
lock (objectsLock)
{
SetPrimTransformsOnMainThread(e.Prim, obj);
}
else
{
objects[e.Prim.ID] = RezNewObject(e.Prim);
}
}
GameObject obj;
objects.TryGetValue(e.Prim.ID, out obj);
if (obj != null)
{
SetPrimTransformsOnMainThread(e.Prim, obj);
}
else
{
RezNewObjectOnMainThread(e.Prim);
objects[e.Prim.ID] = obj;
}
}
// } else
// {
// UnityMainThreadDispatcher.Instance().Enqueue(() =>
// {
// ObjectsOnTerseObjectUpdate(sender, e);
// });
// }
}
private void ObjectsOnObjectUpdate(object sender, PrimEventArgs e)
@@ -92,7 +100,7 @@ namespace Raindrop.Presenters
if (primGO == null)
{
primGO = RezNewObject(e.Prim);
RezNewObjectOnMainThread(e.Prim);
}
else
{
@@ -103,10 +111,29 @@ namespace Raindrop.Presenters
}
}
private GameObject RezNewObject(Primitive e)
private void RezNewObjectOnMainThread(Primitive e)
{
Debug.LogError("fixme");
// GameObject go = new GameObject();
// if (isOnMainThread())
// {
// RezNewObject(e, out go);
//
// } else
// {
// UnityMainThreadDispatcher.Instance().Enqueue(() =>
// {
// RezNewObjectOnMainThread(e, out goo);
// });
// }
// goo = go;
}
//make sure to run this only on Main thread.
private void RezNewObject(Primitive e, out GameObject go)
{
GameObject primGO = new GameObject();
// Debug.Log("newly seen obj. rezzing " + e.Prim.ID);
if (e.Text != "" || e.Text != null)
{
// Debug.Log("prim has no props. " + e.Prim.ID); //this is for most prims.
@@ -116,20 +143,10 @@ namespace Raindrop.Presenters
Debug.Log("prim has property, but no name . " + e.ID); //i have never seen this before.
}
if (isOnMainThread())
{
primGO = CreatePrimGameObject(e);
objects[e.ID] = primGO;
return primGO;
} else
{
UnityMainThreadDispatcher.Instance().Enqueue(() =>
{
RezNewObject(e);
});
}
return primGO;
go = CreatePrimGameObject(e);
//objects[e.ID] = primGO;
//return primGO;
return;
}
File diff suppressed because it is too large Load Diff
-3
View File
@@ -31,9 +31,6 @@ namespace Raindrop.Tests
[TestFixture()]
public class RaindropIntegrationTests
{
private bool loggedin;
private bool testfail = false;
private RaindropNetcom netcom { get { return instance.Netcom; } }
private RaindropInstance instance { get { return ServiceLocator.ServiceLocator.Instance.Get<RaindropInstance>(); } }
+1 -1
View File
@@ -713,7 +713,7 @@ PlayerSettings:
additionalIl2CppArgs:
scriptingRuntimeVersion: 1
gcIncremental: 1
assemblyVersionValidation: 1
assemblyVersionValidation: 0
gcWBarrierValidation: 0
apiCompatibilityLevelPerPlatform:
Android: 6