Ejemplo n.º 1
0
 private void ObjListAllContained(List <VMEntity> ents, VMEntity ent, int depth)
 {
     if (depth > 50)
     {
         throw new Exception("slot depth too high!");
     }
     for (int i = 0; i < ent.TotalSlots(); i++)
     {
         var slotE = ent.GetSlot(i);
         if (slotE != null)
         {
             ents.Add(slotE);
             ObjListAllContained(ents, slotE, depth++); //recursive
         }
     }
 }
Ejemplo n.º 2
0
        private void RecursiveUnhide(VMEntity fake, VMEntity real)
        {
            var rgrp = real.MultitileGroup;

            for (int i = 0; i < rgrp.Objects.Count; i++)
            {
                rgrp.Objects[i].SetValue(VMStackObjectVariable.Hidden, fake.MultitileGroup.Objects[i].GetValue(VMStackObjectVariable.Hidden));
                var slots = rgrp.Objects[i].TotalSlots();
                for (int j = 0; j < slots; j++)
                {
                    var slot  = rgrp.Objects[i].GetSlot(j);
                    var slot2 = fake.GetSlot(j);
                    if (slot != null && slot2 != null && slot.GetValue(VMStackObjectVariable.Hidden) != slot2.GetValue(VMStackObjectVariable.Hidden))
                    {
                        RecursiveUnhide(slot2, slot);
                    }
                }
            }
        }