scripts
This commit is contained in:
@@ -0,0 +1,286 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace UnityEngine.Networking
|
||||
{
|
||||
// Token: 0x0200006C RID: 108
|
||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public abstract class SyncList<T> : IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable
|
||||
{
|
||||
// Token: 0x170000DD RID: 221
|
||||
// (get) Token: 0x06000547 RID: 1351 RVA: 0x0001DE34 File Offset: 0x0001C034
|
||||
public int Count
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Objects.Count;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000DE RID: 222
|
||||
// (get) Token: 0x06000548 RID: 1352 RVA: 0x0001DE54 File Offset: 0x0001C054
|
||||
public bool IsReadOnly
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000DF RID: 223
|
||||
// (get) Token: 0x06000549 RID: 1353 RVA: 0x0001DE6C File Offset: 0x0001C06C
|
||||
// (set) Token: 0x0600054A RID: 1354 RVA: 0x0001DE87 File Offset: 0x0001C087
|
||||
public SyncList<T>.SyncListChanged Callback
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Callback;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Callback = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600054B RID: 1355
|
||||
protected abstract void SerializeItem(NetworkWriter writer, T item);
|
||||
|
||||
// Token: 0x0600054C RID: 1356
|
||||
protected abstract T DeserializeItem(NetworkReader reader);
|
||||
|
||||
// Token: 0x0600054D RID: 1357 RVA: 0x0001DE91 File Offset: 0x0001C091
|
||||
public void InitializeBehaviour(NetworkBehaviour beh, int cmdHash)
|
||||
{
|
||||
this.m_Behaviour = beh;
|
||||
this.m_CmdHash = cmdHash;
|
||||
}
|
||||
|
||||
// Token: 0x0600054E RID: 1358 RVA: 0x0001DEA4 File Offset: 0x0001C0A4
|
||||
private void SendMsg(SyncList<T>.Operation op, int itemIndex, T item)
|
||||
{
|
||||
if (this.m_Behaviour == null)
|
||||
{
|
||||
if (LogFilter.logError)
|
||||
{
|
||||
Debug.LogError("SyncList not initialized");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
NetworkIdentity component = this.m_Behaviour.GetComponent<NetworkIdentity>();
|
||||
if (component == null)
|
||||
{
|
||||
if (LogFilter.logError)
|
||||
{
|
||||
Debug.LogError("SyncList no NetworkIdentity");
|
||||
}
|
||||
}
|
||||
else if (component.isServer)
|
||||
{
|
||||
NetworkWriter networkWriter = new NetworkWriter();
|
||||
networkWriter.StartMessage(9);
|
||||
networkWriter.Write(component.netId);
|
||||
networkWriter.WritePackedUInt32((uint)this.m_CmdHash);
|
||||
networkWriter.Write((byte)op);
|
||||
networkWriter.WritePackedUInt32((uint)itemIndex);
|
||||
this.SerializeItem(networkWriter, item);
|
||||
networkWriter.FinishMessage();
|
||||
NetworkServer.SendWriterToReady(component.gameObject, networkWriter, this.m_Behaviour.GetNetworkChannel());
|
||||
if (this.m_Behaviour.isServer && this.m_Behaviour.isClient && this.m_Callback != null)
|
||||
{
|
||||
this.m_Callback(op, itemIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600054F RID: 1359 RVA: 0x0001DFB8 File Offset: 0x0001C1B8
|
||||
private void SendMsg(SyncList<T>.Operation op, int itemIndex)
|
||||
{
|
||||
this.SendMsg(op, itemIndex, default(T));
|
||||
}
|
||||
|
||||
// Token: 0x06000550 RID: 1360 RVA: 0x0001DFD8 File Offset: 0x0001C1D8
|
||||
public void HandleMsg(NetworkReader reader)
|
||||
{
|
||||
byte b = reader.ReadByte();
|
||||
int num = (int)reader.ReadPackedUInt32();
|
||||
T t = this.DeserializeItem(reader);
|
||||
switch (b)
|
||||
{
|
||||
case 0:
|
||||
this.m_Objects.Add(t);
|
||||
break;
|
||||
case 1:
|
||||
this.m_Objects.Clear();
|
||||
break;
|
||||
case 2:
|
||||
this.m_Objects.Insert(num, t);
|
||||
break;
|
||||
case 3:
|
||||
this.m_Objects.Remove(t);
|
||||
break;
|
||||
case 4:
|
||||
this.m_Objects.RemoveAt(num);
|
||||
break;
|
||||
case 5:
|
||||
case 6:
|
||||
this.m_Objects[num] = t;
|
||||
break;
|
||||
}
|
||||
if (this.m_Callback != null)
|
||||
{
|
||||
this.m_Callback((SyncList<T>.Operation)b, num);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000551 RID: 1361 RVA: 0x0001E0A7 File Offset: 0x0001C2A7
|
||||
internal void AddInternal(T item)
|
||||
{
|
||||
this.m_Objects.Add(item);
|
||||
}
|
||||
|
||||
// Token: 0x06000552 RID: 1362 RVA: 0x0001E0B6 File Offset: 0x0001C2B6
|
||||
public void Add(T item)
|
||||
{
|
||||
this.m_Objects.Add(item);
|
||||
this.SendMsg(SyncList<T>.Operation.OP_ADD, this.m_Objects.Count - 1, item);
|
||||
}
|
||||
|
||||
// Token: 0x06000553 RID: 1363 RVA: 0x0001E0DA File Offset: 0x0001C2DA
|
||||
public void Clear()
|
||||
{
|
||||
this.m_Objects.Clear();
|
||||
this.SendMsg(SyncList<T>.Operation.OP_CLEAR, 0);
|
||||
}
|
||||
|
||||
// Token: 0x06000554 RID: 1364 RVA: 0x0001E0F0 File Offset: 0x0001C2F0
|
||||
public bool Contains(T item)
|
||||
{
|
||||
return this.m_Objects.Contains(item);
|
||||
}
|
||||
|
||||
// Token: 0x06000555 RID: 1365 RVA: 0x0001E111 File Offset: 0x0001C311
|
||||
public void CopyTo(T[] array, int index)
|
||||
{
|
||||
this.m_Objects.CopyTo(array, index);
|
||||
}
|
||||
|
||||
// Token: 0x06000556 RID: 1366 RVA: 0x0001E124 File Offset: 0x0001C324
|
||||
public int IndexOf(T item)
|
||||
{
|
||||
return this.m_Objects.IndexOf(item);
|
||||
}
|
||||
|
||||
// Token: 0x06000557 RID: 1367 RVA: 0x0001E145 File Offset: 0x0001C345
|
||||
public void Insert(int index, T item)
|
||||
{
|
||||
this.m_Objects.Insert(index, item);
|
||||
this.SendMsg(SyncList<T>.Operation.OP_INSERT, index, item);
|
||||
}
|
||||
|
||||
// Token: 0x06000558 RID: 1368 RVA: 0x0001E160 File Offset: 0x0001C360
|
||||
public bool Remove(T item)
|
||||
{
|
||||
bool flag = this.m_Objects.Remove(item);
|
||||
if (flag)
|
||||
{
|
||||
this.SendMsg(SyncList<T>.Operation.OP_REMOVE, 0, item);
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x06000559 RID: 1369 RVA: 0x0001E194 File Offset: 0x0001C394
|
||||
public void RemoveAt(int index)
|
||||
{
|
||||
this.m_Objects.RemoveAt(index);
|
||||
this.SendMsg(SyncList<T>.Operation.OP_REMOVEAT, index);
|
||||
}
|
||||
|
||||
// Token: 0x0600055A RID: 1370 RVA: 0x0001E1AB File Offset: 0x0001C3AB
|
||||
public void Dirty(int index)
|
||||
{
|
||||
this.SendMsg(SyncList<T>.Operation.OP_DIRTY, index, this.m_Objects[index]);
|
||||
}
|
||||
|
||||
// Token: 0x170000E0 RID: 224
|
||||
public T this[int i]
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Objects[i];
|
||||
}
|
||||
set
|
||||
{
|
||||
bool flag;
|
||||
if (this.m_Objects[i] == null)
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
flag = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
T t = this.m_Objects[i];
|
||||
flag = !t.Equals(value);
|
||||
}
|
||||
this.m_Objects[i] = value;
|
||||
if (flag)
|
||||
{
|
||||
this.SendMsg(SyncList<T>.Operation.OP_SET, i, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600055D RID: 1373 RVA: 0x0001E26C File Offset: 0x0001C46C
|
||||
public IEnumerator<T> GetEnumerator()
|
||||
{
|
||||
return this.m_Objects.GetEnumerator();
|
||||
}
|
||||
|
||||
// Token: 0x0600055E RID: 1374 RVA: 0x0001E294 File Offset: 0x0001C494
|
||||
IEnumerator IEnumerable.GetEnumerator()
|
||||
{
|
||||
return this.GetEnumerator();
|
||||
}
|
||||
|
||||
// Token: 0x04000234 RID: 564
|
||||
private List<T> m_Objects = new List<T>();
|
||||
|
||||
// Token: 0x04000235 RID: 565
|
||||
private NetworkBehaviour m_Behaviour;
|
||||
|
||||
// Token: 0x04000236 RID: 566
|
||||
private int m_CmdHash;
|
||||
|
||||
// Token: 0x04000237 RID: 567
|
||||
private SyncList<T>.SyncListChanged m_Callback;
|
||||
|
||||
// Token: 0x0200006D RID: 109
|
||||
// (Invoke) Token: 0x06000560 RID: 1376
|
||||
public delegate void SyncListChanged(SyncList<T>.Operation op, int itemIndex);
|
||||
|
||||
// Token: 0x0200006E RID: 110
|
||||
public enum Operation
|
||||
{
|
||||
// Token: 0x04000239 RID: 569
|
||||
OP_ADD,
|
||||
// Token: 0x0400023A RID: 570
|
||||
OP_CLEAR,
|
||||
// Token: 0x0400023B RID: 571
|
||||
OP_INSERT,
|
||||
// Token: 0x0400023C RID: 572
|
||||
OP_REMOVE,
|
||||
// Token: 0x0400023D RID: 573
|
||||
OP_REMOVEAT,
|
||||
// Token: 0x0400023E RID: 574
|
||||
OP_SET,
|
||||
// Token: 0x0400023F RID: 575
|
||||
OP_DIRTY
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user