protected override StructureState SaveStructure(Structure structure) { var tradingStation = (TradingStation)structure; State.TradingStation = new TradingStationState { }; return State; }
protected override StructureState SaveStructure(Structure structure) { var manufactory = (Manufactory) structure; State.Manufactory = new ManufactoryState { Efficiency = manufactory.Efficiency, }; return State; }
public static Builder For(Structure structure) { if (structure is Manufactory) return new Manufactory.Builder(); if (structure is TradingStation) return new TradingStation.Builder(); throw new InvalidOperationException("Cannot determine builder for Structure"); }
public ItemCollection GetProperty(Structure structure) { ItemCollection property; if (!structure.Hangar.TryGetValue(this, out property)) { property = new ItemCollection(); structure.Hangar[this] = property; } return property; }
public void CreateItemFactory() { _universe = new MockUniverse(); _itemFactory = new Moq.Mock<IItemFactory>(MockBehavior.Strict); SetupItem(_universe.BluePrint); SetupItem(_universe.ShipBluePrint); var builder = Echo.Structures.Manufactory.Builder.For(_universe.Manufactory).Build(null); builder.Add(Corporation.Builder.Build(_universe.MSCorp)); _manufactory = builder.Materialise(); }
public StructureState Save(Structure structure) { Ensure.That(structure, "structure").IsNotNull(); Ensure.That(structure.Position.Location, "structure.Position.Location").IsNotNull(); State = new StructureState { ObjectId = structure.Id, Name = structure.Name, LocalCoordinates = structure.Position.LocalCoordinates, Owner = structure.Owner.ToObjectReference(), Orbits = structure.Position.Location.ToObjectReference(), StructureType = structure.StructureType, Personnel = structure.Personnel.Select(p => p.ToObjectReference()), HangerItems = structure.Hangar.Where(x => !x.Value.IsEmpty).Select(SaveHangarItems), BuyOrders = structure.BuyOrders.Select(_ => _.Save()), SellOrders = structure.SellOrders.Select(_ => _.Save()), }; return SaveStructure(structure); }
private void LoadHangarItems(IIdResolver idresolver, Structure target, IEnumerable<HangarItemState> hangerItems) { if (target.Owner == null) throw new InvalidOperationException("Cannot load hangar items without owner"); foreach (var hangar in hangerItems) { var corporation = idresolver.Get<Corporation>(hangar.Owner); var items = hangar.Items.Select(i => Item.Builder.Build(i, location:target, owner: corporation).Build(idresolver)); var itemCollection = new ItemCollection(corporation.Property, items); target.Hangar.Add(corporation, itemCollection); } }
protected abstract StructureState SaveStructure(Structure structure);