Beispiel #1
0
            protected override StructureState SaveStructure(Structure structure)
            {
                var tradingStation = (TradingStation)structure;
                State.TradingStation = new TradingStationState
                {
                };

                return State;
            }
Beispiel #2
0
            protected override StructureState SaveStructure(Structure structure)
            {
                var manufactory = (Manufactory) structure;
                State.Manufactory = new ManufactoryState
                {
                    Efficiency = manufactory.Efficiency,
                };

                return State;
            }
Beispiel #3
0
            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");
            }
Beispiel #4
0
        public ItemCollection GetProperty(Structure structure)
        {
            ItemCollection property;
            if (!structure.Hangar.TryGetValue(this, out property))
            {
                property = new ItemCollection();
                structure.Hangar[this] = property;
            }

            return property;
        }
Beispiel #5
0
        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();
        }
Beispiel #6
0
            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);
            }
Beispiel #7
0
            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);
                }
            }
Beispiel #8
0
 protected abstract StructureState SaveStructure(Structure structure);