Пример #1
0
 double TransferResource(BuildResource br, double deltat)
 {
     if (br.density > 0)
     {
         var amount      = recycler.RecycleRate * deltat / br.density;
         var base_amount = amount;
         if (amount > br.amount)
         {
             amount = br.amount;
         }
         recycler_resources.TransferResource(br.name, amount);
         br.amount -= amount;                    // any untransfered resource is lost
         br.mass    = br.amount * br.density;
         deltat     = deltat * (base_amount - amount) / base_amount;
     }
     else
     {
         // Massless resources are transferred in one tick (for now),
         // but consume the whole tick.
         recycler_resources.TransferResource(br.name, br.amount);
         br.amount = 0;
         deltat    = 0;
     }
     return(deltat);
 }
 internal void SetupCraftResources(Vessel vsl)
 {
     craftResources = new RMResourceSet(vsl);
     foreach (var br in buildCost.optional)
     {
         var amount = craftResources.ResourceAmount(br.name);
         craftResources.TransferResource(br.name, -amount);
     }
 }