public void ensure_that_storage_with_1_slot_behaves_as_expected() { ITransferManager transfer = new TransferManager(); IItemStore storage = new ItemStoreComposite(1); ICanStore grain = new Commodity("Grain1", "Grain", UnitOfMeasurement.Kilogram, 0.001, false); transfer.Item(5, grain).To(storage); Assert.AreEqual(1, storage.SlotsUsed); Assert.IsNotNull(storage["Grain"]); IItemContainer grainContainer; bool transfered = transfer.Item(5, grain).From(storage).ToContainer(out grainContainer); Assert.IsTrue(transfered); Assert.AreEqual(5, grainContainer.Used); Assert.IsNull(storage["Grain"]); }
public void should_transfer_all_from_crate_to_a_silo_2() { ITransferManager transfer = new TransferManager(); Commodity grain = new Commodity("Grain1", "Grain", UnitOfMeasurement.Kilogram, 0.01, false); IItemStore grainContainer = new ItemStoreComposite(2); bool transfered = transfer.Item(101, grain).To(grainContainer); Assert.IsTrue(transfered); Assert.AreEqual(101, grainContainer["Grain"].Used); IItemStore toContainer = new ItemStoreComposite(1); transfered = transfer.Item(5, grain).From(grainContainer).To(toContainer); Assert.IsTrue(transfered); Assert.AreEqual(1, grainContainer["Grain"].Slots); Assert.AreEqual(5, toContainer["Grain"].Used); }
//private void InitModuleStates(Dictionary<int, object> moduleStates) //{ // moduleStates.Add(1, new ProducerState(new ProductionSource(new Commodity("GRAIN1", "Grain", UnitOfWeightMeasurement.Kilogram, 0.001, false), 0.5, 1000))); // moduleStates.Add(2, new FarmingCollectiveState(new FarmingCollective())); //} public void StartCluster(int clusterId) { ITransferManager transferManager = new TransferManager(); _sectorCluster = new SectorCluster(clusterId); IList<ISector> sectors = GetSectors(clusterId, transferManager); foreach (ISector shard in sectors) { //shard.OnRefresh(market, transferManager); IList<IGameModule> modules = GetModules(shard.Id); foreach (IGameModule module in modules) { object state = GetModuleState(module.Id); module.Init(state); shard.Add(module); } //wire up events } _sectorCluster.Init(sectors); // execution DateTime now = DateTime.Now; DateTime wakeTimer = DateTime.Now; int i = 0; while (true) { Console.WriteLine(i++ % 2 == 0 ? "Tick" : "Tock"); foreach (ISector sector in _sectorCluster) { sector.Refresh(now); } now = now.AddMinutes(1); wakeTimer = wakeTimer.AddMilliseconds(500); SleepUntil(wakeTimer); } }