internal static void Update(IEnumerable <BoltEntity> trees) { CoopTreeGrid.Nodes = new CoopTreeGrid.Node[4096]; CoopTreeGrid.AttachQueue = new Queue <BoltEntity>(); foreach (BoltEntity current in trees) { int num = CoopTreeGrid.CalculateNode(current.transform.position); if (CoopTreeGrid.Nodes[num].Trees == null) { CoopTreeGrid.Nodes[num].Trees = new List <BoltEntity>(); } CoopTreeGrid.Nodes[num].Trees.Add(current); } CoopTreeGrid.Node[] nodes = CoopTreeGrid.Nodes; for (int i = 0; i < nodes.Length; i++) { CoopTreeGrid.Node node = nodes[i]; if (node.Trees != null) { foreach (BoltEntity current2 in node.Trees) { CoopTreeGrid.AttachQueue.Enqueue(current2); } } } }
public static void ShowObjectNode(CoopGridObject obj) { int num = CoopTreeGrid.CalculateNode(obj.transform.position); int num2 = -2048; Vector3 vector = new Vector3((float)(num2 + CoopTreeGrid.c_debug * 64 + 32), 0f, (float)(num2 + CoopTreeGrid.r_debug * 64 + 32)); Debug.DrawLine(vector, obj.transform.position, Color.green); Gizmos.color = Color.green; Gizmos.DrawWireCube(vector, new Vector3(64f, 64f, 64f)); Gizmos.DrawWireSphere(obj.transform.position, 32f); }
public static void UpdateObject(CoopGridObject obj) { int num = CoopTreeGrid.CalculateNode(obj.transform.position); if (num != obj.CurrentNode) { CoopTreeGrid.Nodes[obj.CurrentNode].Objects.Remove(obj); if (CoopTreeGrid.Nodes[num].Objects == null) { CoopTreeGrid.Nodes[num].Objects = new List <CoopGridObject>(); } CoopTreeGrid.Nodes[num].Objects.Add(obj); obj.CurrentNode = num; } }
public static void RegisterObject(CoopGridObject obj, bool is_update) { int num = CoopTreeGrid.CalculateNode(obj.transform.position); if (CoopTreeGrid.Nodes[num].Objects == null) { CoopTreeGrid.Nodes[num].Objects = new List <CoopGridObject>(); } CoopTreeGrid.Nodes[num].Objects.Add(obj); obj.CurrentNode = num; if (!is_update) { obj.entity.Freeze(false); } }
public static void Update(IEnumerable <BoltEntity> trees) { foreach (BoltEntity boltEntity in trees) { int num = CoopTreeGrid.CalculateNode(boltEntity.transform.position); if (CoopTreeGrid.Nodes[num].Trees == null) { CoopTreeGrid.Nodes[num].Trees = new List <BoltEntity>(); } CoopTreeGrid.Nodes[num].Trees.Add(boltEntity); } foreach (CoopTreeGrid.Node node in CoopTreeGrid.Nodes) { if (node.Trees != null) { foreach (BoltEntity item in node.Trees) { CoopTreeGrid.AttachQueue.Enqueue(item); } } } }