public void TestFullInventory() { Container[] containers = new Container[] { new TestContainer(null), new TestContainer(new ResourceStack[] { new ResourceStack(new ResourceType("Ore", "Ice"), 40), new ResourceStack(new ResourceType("Ore", "Iron"), 77) }), new TestContainer(new ResourceStack[] { new ResourceStack(new ResourceType("Ingot", "Iron"), 15), new ResourceStack(new ResourceType("Ingot", "Gold"), 25) }), new TestContainer( new ResourceStack[] { new ResourceStack(new ResourceType("Ingot", "Iron"), 5), new ResourceStack(new ResourceType("Ore", "Ice"), 8), new ResourceStack(new ResourceType("Ingot", "Gold"), 2), new ResourceStack(new ResourceType("Ore", "Silver"), 14) } ) }; ResourceInventory inventory = ResourceInventory.Stocktake(containers); Assert.AreEqual( new ResourceInventory(new ResourceStack[] { new ResourceStack(new ResourceType("Ore", "Ice"), 48), new ResourceStack(new ResourceType("Ingot", "Iron"), 20), new ResourceStack(new ResourceType("Ingot", "Gold"), 27), new ResourceStack(new ResourceType("Ore", "Silver"), 14), new ResourceStack(new ResourceType("Ore", "Iron"), 77) }), inventory ); }
public void ShowSummary() { ResourceInventory inventory = ResourceInventory.Stocktake(_containers, Parsers.ParseTags(_tags), Parsers.ParseResourceFilter(_allow)); _ctx.MaxAmount = (MyFixedPoint)inventory.GetMaximum(); _panel.WriteText(_renderer.Render(inventory.GetResources().Select(resource => new ResourceItemRenderer(resource)))); }
public void TestInventoryFilteringByResourceType() { Container[] containers = new Container[] { new TestContainer(new ResourceStack[] { new ResourceStack(new ResourceType("MyObjectBuilder_Ore", "Ice"), 40), new ResourceStack(new ResourceType("MyObjectBuilder_Ore", "Iron"), 77), new ResourceStack(new ResourceType("MyObjectBuilder_Ingot", "Gold"), 5) }), new TestContainer(new ResourceStack[] { new ResourceStack(new ResourceType("MyObjectBuilder_Ingot", "Iron"), 15), new ResourceStack(new ResourceType("MyObjectBuilder_Ore", "Iron"), 25) }), new TestContainer(new ResourceStack[] { new ResourceStack(new ResourceType("MyObjectBuilder_Ingot", "Gold"), 35) }) }; ResourceInventory inventory = ResourceInventory.Stocktake(containers, null, Parsers.ParseResourceFilter("ingot")); Assert.AreEqual(new ResourceInventory(new ResourceStack[] { new ResourceStack(new ResourceType("MyObjectBuilder_Ingot", "Iron"), 15), new ResourceStack(new ResourceType("MyObjectBuilder_Ingot", "Gold"), 40) } ), inventory); }
public void TestInventoryFilteringByTags() { Container[] containers = new Container[] { new TestContainer(new ResourceStack[] { new ResourceStack(new ResourceType("Ore", "Ice"), 40), new ResourceStack(new ResourceType("Ore", "Iron"), 77) }, "tag2,tag3"), new TestContainer(new ResourceStack[] { new ResourceStack(new ResourceType("Ingot", "Iron"), 15), new ResourceStack(new ResourceType("Ore", "Iron"), 25) }, "tag1, tag2,tag3"), new TestContainer(new ResourceStack[] { new ResourceStack(new ResourceType("Ore", "Gold"), 35) }, "tag2, tag4") }; ResourceInventory inventory = ResourceInventory.Stocktake(containers, Parsers.ParseTags("tag1, tag3")); Assert.AreEqual(new ResourceInventory(new ResourceStack[] { new ResourceStack(new ResourceType("Ore", "Ice"), 40), new ResourceStack(new ResourceType("Ore", "Iron"), 77 + 25), new ResourceStack(new ResourceType("Ingot", "Iron"), 15) } ), inventory); }