public static BasicResource GetResource(int index) { if ((index < 0) || (index >= Count)) { return(null); } if (resourcesDict.ContainsKey(index)) { return(resourcesDict[index]); } if (rawResources[index] == null) { return(null); } // Lazy-load the requested resource Performance.Push("Load resource " + index); BasicResource res = CreateResource(index); resourcesDict.Add(index, res); Performance.Pop(); Log.Write(LogType.Resources, LogSeverity.Debug, "Created resource of type '" + res.GetType().Name + "' for index " + index); return(res); }
internal bool TryUseResources(List <goods> needGoods) { foreach (var good in needGoods) { BasicResource resource = Resourcen.Find(x => x.ResourceName == good.ProductName); if (resource == null) { Debug.Log($"Resource {good.ProductName} nicht gefunden."); return(false); } else { if (resource.CurrentAmount < good.Amount) { Debug.Log($"Nicht genügend Resourcen von {good.ProductName} vorhanden."); return(false); } } } foreach (var good in needGoods) { AddResource(good.ProductName, -good.Amount); } return(true); }
public void Setup() { _basicResource = new BasicResource { Name = "Pat Smith" }; _formatter = new HalJsonMediaTypeFormatter(); }
private void ApplyRequirements(Buyable buyable) { foreach (BuyRequirement req in buyable.Requirements) { BasicResource res = Resources.Find(o => o.GetType() == req.RequiredResource); if (res == null) { throw new KeyNotFoundException("Resource not found"); } res.Amount -= req.AmountRequired; } }
public int GetResourceAmount(string resourceToGet) { BasicResource resource = Resourcen.Find(x => x.ResourceName == resourceToGet); if (resource == null) { return(-1); } else { return(resource.CurrentAmount); } }
public static void WriteWarFile(string outputFile, bool forceStrongTyped) { using (BinaryWriter writer = new BinaryWriter(File.Create(outputFile))) { writer.Write(fileID); writer.Write(rawResources.Count); uint offsetOfOffsetTable = (uint)writer.BaseStream.Position; // Write empty offset table for (int i = 0; i < rawResources.Count; i++) { writer.Write((int)0); } uint curOffset = (uint)writer.BaseStream.Position; // Write each resource and remember offset for (int i = 0; i < rawResources.Count; i++) { if (rawResources[i] == null) { offsets[i] = 0xFFFFFFFF; continue; } offsets[i] = curOffset; if (forceStrongTyped) { // Force loading of resource BasicResource res = GetResource(i); res.WriteToStream(writer); } else { WriteResource(writer, rawResources[i]); } curOffset = (uint)writer.BaseStream.Position; } // Write full offset table writer.BaseStream.Seek(offsetOfOffsetTable, SeekOrigin.Begin); for (int i = 0; i < rawResources.Count; i++) { writer.Write(offsets[i]); } } }
public void roundTrip_basic_typeAndDataCorrect() { // arrange var test = new BasicResource { Name = "Pat Smith" }; // act var result = TestHelpers.Format.PerformRoundTrip <BasicResource>(test, _formatter); // assert result.Name.Should().Be("Pat Smith"); result.Should().BeOfType(typeof(BasicResource)); }
public bool CanBuyUnit(Buyable buyable) { foreach (BuyRequirement req in buyable.Requirements) { BasicResource res = Resources.Find(o => o.GetType() == req.RequiredResource); if (res == null) { throw new KeyNotFoundException("Resource not found"); } if (!(res.Amount >= req.AmountRequired)) { return(false); } } return(true); }
public bool AddResource(string resourceToAdd, int resourceAmount) { BasicResource resource = Resourcen.Find(x => x.ResourceName == resourceToAdd); if (resource == null) { Debug.Log($"Resource {resourceToAdd} nicht gefunden."); return(false); } else { if (resource.addAmount(resourceAmount)) { return(true); } else { return(false); } } }
public bool TryUseResources(string resourceToUse, int resourceAmount) { BasicResource resource = Resourcen.Find(x => x.ResourceName == resourceToUse); if (resource == null) { Debug.Log($"Resource {resourceToUse} nicht gefunden."); return(false); } else { if (resource.CurrentAmount > resourceAmount) { resource.CurrentAmount -= resourceAmount; return(true); } { Debug.Log($"Nicht genügend Resourcen von {resourceToUse} vorhanden."); return(false); } } }
/// <summary> /// Create a resource. /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.Azure.Management.Resources.IResourceOperations. /// </param> /// <param name='resourceGroupName'> /// Required. The name of the resource group. The name is case /// insensitive. /// </param> /// <param name='identity'> /// Required. Resource identity. /// </param> /// <param name='parameters'> /// Required. Create or update resource parameters. /// </param> /// <returns> /// Resource information. /// </returns> public static Task <ResourceCreateOrUpdateResult> CreateOrUpdateAsync(this IResourceOperations operations, string resourceGroupName, ResourceIdentity identity, BasicResource parameters) { return(operations.CreateOrUpdateAsync(resourceGroupName, identity, parameters, CancellationToken.None)); }
/// <summary> /// Create a resource. /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.Azure.Management.Resources.IResourceOperations. /// </param> /// <param name='resourceGroupName'> /// Required. The name of the resource group. The name is case /// insensitive. /// </param> /// <param name='identity'> /// Required. Resource identity. /// </param> /// <param name='parameters'> /// Required. Create or update resource parameters. /// </param> /// <returns> /// Resource information. /// </returns> public static ResourceCreateOrUpdateResult CreateOrUpdate(this IResourceOperations operations, string resourceGroupName, ResourceIdentity identity, BasicResource parameters) { return(Task.Factory.StartNew((object s) => { return ((IResourceOperations)s).CreateOrUpdateAsync(resourceGroupName, identity, parameters); } , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult()); }