/// <summary> /// Creates a new SimulationObject instance. /// </summary> /// <param name="Obj">The OBJD for this object. Assumed to be the master OBJD if the object is multi-tile.</param> /// <param name="Container">The IFF archive where the OBJD resides.</param> public SimulationObject(OBJD Obj, Iff Container, string GUID) { m_GUID = GUID; if (!Obj.IsMultiTile) { m_MasterOBJD = Obj; m_ObjectContainer = Container; } else //Load the OBJDs for the other tiles... { foreach (OBJD O in m_ObjectContainer.OBJDs) { if (O.MasterID == Obj.MasterID) m_Slaves.Add(O); } } }
/// <summary> /// Casts a chunk to an OBJD instance. /// </summary> /// <param name="Chunk">The chunk to cast.</param> private void ToOBJD(IffChunk Chunk) { OBJD Obj = new OBJD(Chunk.Data, Chunk.ID); m_OBJDs.Add(Obj); }
/// <summary> /// Adds an object that will be run by this virtual machine. /// </summary> /// <param name="Obj">The object to run.</param> /// <param name="ObjectContainer">The object's container.</param> public void AddObject(OBJD Obj, Iff ObjectContainer, string GUID) { VirtualThread VThread = new VirtualThread(new SimulationObject(Obj, ObjectContainer, GUID)); m_Threads.Add(VThread); }