Exemple #1
0
    // Token: 0x06003D3A RID: 15674 RVA: 0x000DB1E0 File Offset: 0x000D93E0
    public float GetWorkDuration()
    {
        global::IToolItem tool = this.GetTool();

        if (tool != null)
        {
            return(tool.workDuration);
        }
        return(0f);
    }
Exemple #2
0
    // Token: 0x060036F6 RID: 14070 RVA: 0x000C5E28 File Offset: 0x000C4028
    public override bool CanWork(global::IToolItem tool, global::Inventory workbenchInv)
    {
        if (workbenchInv.occupiedSlotCount > 2)
        {
            Debug.Log("Too many items for recycle");
            return(false);
        }
        global::IInventoryItem firstItemNotTool = base.GetFirstItemNotTool(tool, workbenchInv);

        return(firstItemNotTool.datablock.isRecycleable && global::BlueprintDataBlock.FindBlueprintForItem(firstItemNotTool.datablock));
    }
Exemple #3
0
    // Token: 0x06003D30 RID: 15664 RVA: 0x000DAF64 File Offset: 0x000D9164
    public void CancelWork()
    {
        global::IToolItem tool = this.GetTool();

        if (tool != null)
        {
            tool.CancelWork();
        }
        this._inventory.locked  = false;
        this._startTime_network = 0.0;
        this._workDuration      = -1f;
        base.CancelInvoke("CompleteWork");
        this.SendWorkStatusUpdate();
    }
Exemple #4
0
    // Token: 0x0600371B RID: 14107 RVA: 0x000C6120 File Offset: 0x000C4320
    public override bool CompleteWork(global::IToolItem tool, global::Inventory workbenchInv)
    {
        if (!this.CanWork(tool, workbenchInv))
        {
            return(false);
        }
        global::IInventoryItem     firstItemNotTool = base.GetFirstItemNotTool(tool, workbenchInv);
        global::BlueprintDataBlock blueprintDataBlock;

        if (global::BlueprintDataBlock.FindBlueprintForItem <global::BlueprintDataBlock>(firstItemNotTool.datablock, out blueprintDataBlock))
        {
            workbenchInv.AddItem(blueprintDataBlock, global::Inventory.Slot.Preference.Define(global::Inventory.Slot.Kind.Default, blueprintDataBlock.IsSplittable(), global::Inventory.Slot.Kind.Belt), 1);
            return(true);
        }
        return(false);
    }
Exemple #5
0
    // Token: 0x0600371A RID: 14106 RVA: 0x000C60BC File Offset: 0x000C42BC
    public override bool CanWork(global::IToolItem tool, global::Inventory workbenchInv)
    {
        if (workbenchInv.occupiedSlotCount > 2)
        {
            Debug.Log("Too many items for research");
            return(false);
        }
        global::IInventoryItem firstItemNotTool = base.GetFirstItemNotTool(tool, workbenchInv);

        if (firstItemNotTool != null && firstItemNotTool.datablock.isResearchable && global::BlueprintDataBlock.FindBlueprintForItem(firstItemNotTool.datablock))
        {
            return(true);
        }
        Debug.Log("Can't work!?!!?");
        return(false);
    }
Exemple #6
0
 // Token: 0x0600373F RID: 14143 RVA: 0x000C62B0 File Offset: 0x000C44B0
 public global::IInventoryItem GetFirstItemNotTool(global::IToolItem tool, global::Inventory workbenchInv)
 {
     using (global::Inventory.OccupiedIterator occupiedIterator = workbenchInv.occupiedIterator)
     {
         global::IInventoryItem inventoryItem;
         while (occupiedIterator.Next(out inventoryItem))
         {
             if (!object.ReferenceEquals(inventoryItem, tool))
             {
                 return(inventoryItem);
             }
         }
     }
     Debug.LogWarning("Could not find target item");
     return(null);
 }
Exemple #7
0
    // Token: 0x060036F8 RID: 14072 RVA: 0x000C5E84 File Offset: 0x000C4084
    public override bool CompleteWork(global::IToolItem tool, global::Inventory workbenchInv)
    {
        if (!this.CanWork(tool, workbenchInv))
        {
            return(false);
        }
        global::IInventoryItem     firstItemNotTool = base.GetFirstItemNotTool(tool, workbenchInv);
        global::BlueprintDataBlock blueprintDataBlock;

        global::BlueprintDataBlock.FindBlueprintForItem <global::BlueprintDataBlock>(firstItemNotTool.datablock, out blueprintDataBlock);
        int num = 1;

        if (firstItemNotTool.datablock.IsSplittable())
        {
            num = firstItemNotTool.uses;
        }
        for (int i = 0; i < num; i++)
        {
            foreach (global::BlueprintDataBlock.IngredientEntry ingredientEntry in blueprintDataBlock.ingredients)
            {
                int num2 = Random.Range(0, 4);
                if (num2 != 0)
                {
                    if (num2 == 1 || num2 == 2 || num2 == 3)
                    {
                        workbenchInv.AddItemAmount(ingredientEntry.Ingredient, ingredientEntry.amount);
                    }
                }
            }
        }
        int num3;

        if (!firstItemNotTool.datablock.IsSplittable())
        {
            num3 = firstItemNotTool.uses;
        }
        else
        {
            num3 = num;
        }
        if (firstItemNotTool.Consume(ref num3))
        {
            firstItemNotTool.inventory.RemoveItem(firstItemNotTool.slot);
        }
        return(true);
    }
Exemple #8
0
    // Token: 0x06003D2C RID: 15660 RVA: 0x000DAE7C File Offset: 0x000D907C
    private void StartWork()
    {
        if (!this.EnsureWorkExists())
        {
            return;
        }
        global::IToolItem tool = this.GetTool();

        if (tool == null)
        {
            return;
        }
        this._startTime_network = global::NetCull.time;
        this._workDuration      = this.GetWorkDuration();
        base.Invoke("CompleteWork", this._workDuration);
        this._inventory.locked = true;
        tool.StartWork();
        this.SendWorkStatusUpdate();
    }
Exemple #9
0
 // Token: 0x06003719 RID: 14105 RVA: 0x000C60B4 File Offset: 0x000C42B4
 public override float GetWorkDuration(global::IToolItem tool)
 {
     return(30f);
 }
Exemple #10
0
    // Token: 0x06003D32 RID: 15666 RVA: 0x000DAFC0 File Offset: 0x000D91C0
    public bool EnsureWorkExists()
    {
        global::IToolItem tool = this.GetTool();

        return(tool != null && tool.canWork);
    }
 // Token: 0x0600328F RID: 12943 RVA: 0x000BFB54 File Offset: 0x000BDD54
 public override float GetWorkDuration(global::IToolItem tool)
 {
     return(this.craftingDuration);
 }
Exemple #12
0
 // Token: 0x0600373E RID: 14142 RVA: 0x000C62A8 File Offset: 0x000C44A8
 public virtual float GetWorkDuration(global::IToolItem tool)
 {
     return(1f);
 }
Exemple #13
0
 // Token: 0x0600373D RID: 14141 RVA: 0x000C62A4 File Offset: 0x000C44A4
 public virtual bool CompleteWork(global::IToolItem tool, global::Inventory workbenchInv)
 {
     return(false);
 }