Пример #1
0
        private void BindFiringPosition(AiFiringPosition fpos, Helix.Element3D model)
        {
            var binding = new Binding(nameof(AiFiringPosition.Position))
            {
                Converter = TranslationTransformConverter.Instance, Mode = BindingMode.TwoWay
            };

            model.DataContext = fpos;
            BindingOperations.SetBinding(model, Helix.Element3D.TransformProperty, binding);
        }
Пример #2
0
        private void ReadFiringPositions(EndianReader reader, AiZone owner, long rootAddress)
        {
            var blockNode = SquadHierarchy.AiNodes[AiSection.FiringPositions];
            var blockRef  = new BlockReference(blockNode, reader, rootAddress);

            var position = OffsetById(blockNode, FieldId.Position);

            for (int i = 0; i < blockRef.TagBlock.Count; i++)
            {
                var fpos        = new AiFiringPosition(this, owner, blockRef, i);
                var baseAddress = blockRef.TagBlock.Pointer.Address + blockRef.BlockSize * i;

                reader.Seek(baseAddress + position, SeekOrigin.Begin);
                fpos.Position = reader.ReadObject <RealVector3D>();

                owner.FiringPositions.Add(fpos);
            }
        }