示例#1
0
        void HandleChange(ObjectMoveChangeData change)
        {
            var ob = m_world.FindObject <MovableObject>(change.ObjectID);

            if (ob == null)
            {
                /* There's a special case where we don't get objectinfo, but we do get
                 * ObjectMove: If the object moves from tile, that just came visible to us,
                 * to a tile that we cannot see. So let's not throw exception, but exit
                 * silently */
                // XXX is this still valid?
                return;
            }

            Debug.Assert(ob.IsInitialized);

            ContainerObject env = null;

            if (change.DestinationID != ObjectID.NullObjectID)
            {
                env = m_world.GetObject <ContainerObject>(change.DestinationID);
            }

            ob.MoveTo(env, change.DestinationLocation);
        }
示例#2
0
        void HandleMessage(ObjectDataMessage msg)
        {
            var data = msg.ObjectData;

            var ob = m_world.FindObject(data.ObjectID);

            if (ob == null)
            {
                ob = m_world.CreateObject(data.ObjectID);
            }

            ob.ReceiveObjectData(data);
        }
示例#3
0
 string GetPrintableItemName(ObjectID objectID)
 {
     if (objectID == ObjectID.NullObjectID)
     {
         return("nothing");
     }
     else
     {
         var ob = m_world.FindObject(objectID);
         if (ob == null)
         {
             return("something");
         }
         else
         {
             return(ob.ToString());
         }
     }
 }