当前位置: 首页>>代码示例>>C#>>正文


C# Thing.DeSpawn方法代码示例

本文整理汇总了C#中Thing.DeSpawn方法的典型用法代码示例。如果您正苦于以下问题:C# Thing.DeSpawn方法的具体用法?C# Thing.DeSpawn怎么用?C# Thing.DeSpawn使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Thing的用法示例。


在下文中一共展示了Thing.DeSpawn方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ReplacePowerCell

 public void ReplacePowerCell(Thing newCell)
 {
     if (newCell == null)
     {
         Log.Error("Tried to add a new power cell to " + parent.ThingID + " but it was null");
         return;
     }
     bool hasStat = false;
     StatDef sDef = StatDef.Named("MD2PowerCellMaxStorage");
     if (newCell.def.statBases != null)
     {
         for (int i = 0; i < parent.def.statBases.Count; i++)
         {
             if (newCell.def.statBases[i].stat == sDef)
             {
                 hasStat = true;
                 break;
             }
         }
     }
     if (!hasStat)
     {
         Log.Error(newCell.ThingID + " has no power cell stat");
         return;
     }
     if (PowerCell != null)
         GenSpawn.Spawn(PowerCell, parent.Position);
     PowerCell = newCell;
     parent.TotalCharge = newCell.GetStatValue(sDef) * 0.1f;
     if (newCell.SpawnedInWorld)
         newCell.DeSpawn();
 }
开发者ID:ProfoundDarkness,项目名称:MD2-Source,代码行数:32,代码来源:PartsManager.cs

示例2: ReceiveThing

 public bool ReceiveThing(Thing thingToReceive)
 {
     if (thingToReceive != null)
     {
         if (compWarehouse != null) compWarehouse.buffer.RemoveAll(x => x == thingToReceive);
         foreach (IntVec3 cellReceiving in parent.OccupiedRect().Cells)
         {
             if (cellReceiving.AllowedToAccept(parent.Map, thingToReceive)
                 && cellReceiving.Priority(parent.Map) >= thingToReceive.Position.Priority(parent.Map))
             {
                 IntVec3 thingToReceiveCell = thingToReceive.Position;
                 List<Thing> thingsReceiving = cellReceiving.GetItemList(parent.Map, true);
                 if (thingsReceiving.Count == 0)
                 {
                     if (thingToReceive.IsChunk())
                     {
                         Thing chunk = ThingMaker.MakeThing(thingToReceive.def);
                         if (GenPlace.TryPlaceThing(chunk, cellReceiving, parent.Map, ThingPlaceMode.Direct))
                         {
                             cellReceiving.DropSound(parent.Map, chunk.def);
                             thingToReceive.Position.ThrowDustPuff(parent.Map);
                             thingToReceive.DeSpawn();
                         }
                     }
                     else if (thingToReceive.stackCount > 0)
                     {
                         thingToReceiveCell.ThrowDustPuff(parent.Map);
                         Thing thing = GenSpawn.Spawn(thingToReceive.SplitOff(thingToReceive.stackCount), cellReceiving, parent.Map);
                         cellReceiving.DropSound(parent.Map, thing.def);
                         SlotGroup slotGroup = cellReceiving.GetSlotGroup(parent.Map);
                         if (slotGroup != null && slotGroup.parent != null)
                         {
                             slotGroup.parent.Notify_ReceivedThing(thing);
                         }
                     }
                     return true;
                 }
                 else
                 {
                     if (!thingToReceive.IsChunk())
                     {
                         foreach (Thing thingReceiving in thingsReceiving)
                         {
                             if (thingReceiving.CanAbsorb(thingToReceive))
                             {
                                 int thingReceivingStackCount = thingReceiving.stackCount;
                                 if (thingReceiving.TryAbsorbStack(thingToReceive, true))
                                 {
                                     thingToReceiveCell.ThrowDustPuff(parent.Map);
                                 }
                                 if (thingReceivingStackCount != thingReceiving.stackCount)
                                 {
                                     ForbidUtility.SetForbidden(thingReceiving, false, false);
                                     cellReceiving.DropSound(parent.Map, thingReceiving.def);
                                 }
                                 return true;
                             }
                         }
                     }
                 }
             }
         }
     }
     return false;
 }
开发者ID:Ratysz,项目名称:RT_QuantumStorage,代码行数:65,代码来源:CompRTQuantumRelay.cs

示例3: ReceiveThing

 public bool ReceiveThing(Thing thingToReceive)
 {
     IntVec3 cellReceiving = parent.OccupiedRect().CenterCell;
     if (thingToReceive != null
         && thingToReceive.Spawned
         && !thingToReceive.Destroyed
         && thingToReceive.IsChunk()
         && ChunkTotalFast() < maxChunks
         && cellReceiving.AllowedToAccept(parent.Map, thingToReceive)
         && cellReceiving.Priority(parent.Map) >= thingToReceive.Position.Priority(parent.Map))
     {
         if (compWarehouse != null) compWarehouse.buffer.RemoveAll(x => x == thingToReceive);
         ChunkRecord chunkRecord = chunkRecords.Find(x => x.chunkDef == thingToReceive.def);
         if (chunkRecord != null)
         {
             chunkRecord.amount++;
         }
         else
         {
             chunkRecord = new ChunkRecord();
             chunkRecord.amount = 1;
             chunkRecord.chunkDef = thingToReceive.def;
             chunkRecords.Add(chunkRecord);
         }
         thingToReceive.Position.ThrowDustPuff(parent.Map);
         thingToReceive.Position.DropSound(parent.Map, thingToReceive.def);
         thingToReceive.DeSpawn();
         return true;
     }
     return false;
 }
开发者ID:Ratysz,项目名称:RT_QuantumStorage,代码行数:31,代码来源:CompRTQuantumChunkSilo.cs


注:本文中的Thing.DeSpawn方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。