示例#1
0
 /// <summary>
 /// Invokes RequiresRedraw event.
 /// </summary>
 public void Redraw()
 {
     if (RequiresRedraw != null)
     {
         RequiresRedraw.Invoke(this);
     }
 }
示例#2
0
 public void Update(float dt)
 {
     if (ResourceRequestState == ResourceRequestState.Pending || ResourceRequestState == ResourceRequestState.Completed)
     {
         return;
     }
     if (CurrentNode == NextNode)
     {
         Progress = 1;
     }
     else
     {
         Progress += dt / GameplaySettings.DefaultResourceTimeBetweenNodes;
     }
     while (Progress >= 1)
     {
         CurrentNode = NextNode;
         if (NextNode == Path.Destination)
         {
             DestinationStructure.OnResourceArrived(this);
             ArrivedAtDestination?.Invoke(this);
             if (Path != null)
             {
                 Path.Invalidated -= PathsChanged;
             }
         }
         else
         {
             NextNode = Path.GetElementAfter(NextNode);
         }
         Progress--;
     }
     RequiresRedraw?.Invoke(this);
 }
示例#3
0
 public void SpecifyResourceType(ResourceType resourceType)
 {
     ResourceType = resourceType & ResourceType;
     RequiresRedraw?.Invoke(this);
 }
示例#4
0
 protected internal void OnRequiresRedraw()
 {
     RequiresRedraw?.Invoke(this);
 }