예제 #1
0
    /// <summary>
    /// Adds an item given an extractor/inserter. Calculates and places in the right slot.
    /// </summary>
    /// <param name="item"></param>
    /// <param name="inserter"></param>
    /// <returns></returns>
    public GenericItem AddItem(GenericItem item, Extractor inserter)
    {
        //Side the inserter is using
        InsertSide insert_side = inserter.OUTPUT_SIDE;
        InsertDir  insert_dir  = GetInsertDir(inserter.GetComponent <GridController>());
        BeltSide   side        = GetBeltSide(insert_dir, insert_side);
        BeltPos    pos         = GetBeltPos(insert_dir, insert_side);

        //If it isn't valid, return immediately.
        if (!isValidInsert(insert_dir, insert_side))
        {
            return(null);
        }
        else
        {
            //Get the relevant list.
            List <ItemController> LIST = GetSideList(side);

            //Get the relevant index.
            int index = GetIndex(side, pos);

            //Update the right index.
            LIST[(int)pos] = item.SpawnObject(ITEM_POSITIONS[index].position, ITEM_POSITIONS[index].rotation, ITEM_POSITIONS[index]);
            return(LIST[(int)pos].INFO);
        }
    }
예제 #2
0
 // Update is called once per frame
 void Update()
 {
     if (timer < interval)
     {
         timer += Time.deltaTime;
     }
     else
     {
         //If this isn't an inventory style debugger, spawn the actual object at the given location.
         if (!inventory)
         {
             //Spawn item at our given position
             spawn_item.SpawnObject(transform.position, transform.rotation, null);
         }
         else //Since it is an inventory style debugger, add a copy of it to our inventory
         {
             inv.AddSingleItem(spawn_item);
         }
         timer = 0;
     }
 }