Пример #1
0
 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);
             }
         }
     }
 }
Пример #2
0
    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);
    }
Пример #3
0
    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;
        }
    }
Пример #4
0
    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);
        }
    }
Пример #5
0
 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);
             }
         }
     }
 }