コード例 #1
0
        public override void OnBlockRemoved(int value, int newValue, int x, int y, int z)
        {
            ComponentBlockEntity blockEntity = m_subsystemBlockEntities.GetBlockEntity(x, y, z);

            if (blockEntity != null)
            {
                Vector3 position = new Vector3(x, y, z) + new Vector3(0.5f);
                foreach (IInventory item in blockEntity.Entity.FindComponents <IInventory>())
                {
                    item.DropAllItems(position);
                }
                base.Project.RemoveEntity(blockEntity.Entity, disposeEntity: true);
            }
        }
コード例 #2
0
 public override bool Simulate()
 {
     if (CalculateHighInputsCount() > 0)
     {
         if (m_isDispenseAllowed && (!m_lastDispenseTime.HasValue || base.SubsystemElectricity.SubsystemTime.GameTime - m_lastDispenseTime > 0.1))
         {
             m_isDispenseAllowed = false;
             m_lastDispenseTime  = base.SubsystemElectricity.SubsystemTime.GameTime;
             m_subsystemBlockEntities.GetBlockEntity(base.CellFaces[0].Point.X, base.CellFaces[0].Point.Y, base.CellFaces[0].Point.Z)?.Entity.FindComponent <ComponentDispenser>()?.Dispense();
         }
     }
     else
     {
         m_isDispenseAllowed = true;
     }
     return(false);
 }