/// <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); } }
// 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; } }