Beispiel #1
0
            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
                    );
            }
Beispiel #2
0
            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))));
            }
Beispiel #3
0
            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);
            }
Beispiel #4
0
            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);
            }