示例#1
0
 private void ProjectContainerToSceneEventAction(int sceneUniqueID, SerializableContainer container)
 {
     if (SceneGlobal.Scene != null && SceneGlobal.Scene.UniqueID == sceneUniqueID)
     {
         Container targetContainer = new Container(container);
         SceneGlobal.Scene.ContainerDictionary.Add(container.UniqueID, targetContainer);
         targetContainer.GameObject = Instantiate(SceneGlobal.containerPrefab, new Vector3(targetContainer.Position.x, targetContainer.Position.y, targetContainer.Position.z), Quaternion.identity) as GameObject;
     }
 }
示例#2
0
 public Container(SerializableContainer container)
 {
     UniqueID         = container.UniqueID;
     Name             = container.Name;
     LocationUniqueID = container.LocationUniqueID;
     PositionX        = container.PositionX;
     PositionY        = container.PositionY;
     PositionZ        = container.PositionZ;
     EulerAngleY      = container.EulerAngleY;
 }
 private void ProjectContainerToSceneEventAction(int sceneUniqueID, SerializableContainer container)
 {
     if (AnswerGlobal.Scene != null && AnswerGlobal.Scene.UniqueID == sceneUniqueID)
     {
         Container targetContainer = new Container(container);
         AnswerGlobal.Scene.ContainerDictionary.Add(container.UniqueID, targetContainer);
         targetContainer.GameObject = Instantiate(AnswerGlobal.containerPrefab, new Vector3(targetContainer.PositionX, targetContainer.PositionY, targetContainer.PositionZ), Quaternion.identity) as GameObject;
         targetContainer.GameObject.GetComponent <CharacterName>().Name = targetContainer.Name;
     }
 }
示例#4
0
 public Container(SerializableContainer container)
 {
     UniqueID         = container.UniqueID;
     Name             = container.Name;
     SoulDictionary   = new Dictionary <int, Soul>();
     LocationUniqueID = container.LocationUniqueID;
     PositionX        = container.PositionX;
     PositionY        = container.PositionY;
     PositionZ        = container.PositionZ;
     EulerAngleY      = container.EulerAngleY;
 }
示例#5
0
 public Container(SerializableContainer container, Scene location)
 {
     uniqueID       = container.UniqueID;
     name           = container.Name;
     soulDictionary = new Dictionary <int, Soul>();
     this.location  = location;
     positionX      = container.PositionX;
     positionY      = container.PositionY;
     positionZ      = container.PositionZ;
     eulerAngleY    = container.EulerAngleY;
 }
示例#6
0
 //Event Task
 private void ProjectContainerToSceneEventTask(EventData eventData)
 {
     if (eventData.Parameters.Count == 2)
     {
         int sceneUniqueID = (int)eventData.Parameters[(byte)ProjectContainerBroadcastItem.SceneUniqueID];
         SerializableContainer container = JsonConvert.DeserializeObject <SerializableContainer>((string)eventData.Parameters[(byte)ProjectContainerBroadcastItem.ContainerDataString], new JsonSerializerSettings {
             TypeNameHandling = TypeNameHandling.Auto
         });
         if (sceneUniqueID == SceneGlobal.Scene.UniqueID)
         {
             ProjectContainerToSceneEvent(sceneUniqueID, container);
         }
     }
     else
     {
         DebugReturn(0, "ProjectContainerToSceneEventTask parameter error");
     }
 }
示例#7
0
        /// <summary>
        /// Converts the serializable container (WCF proxy classes) into EntityContainerData.
        /// </summary>
        /// <param name="modelSchema">The model schema.</param>
        /// <param name="serializableContainer">The serializable container.</param>
        /// <returns>
        /// Instance of <see cref="EntityContainerData"/>
        /// </returns>
        public EntityContainerData Convert(EntityModelSchema modelSchema, SerializableContainer serializableContainer)
        {
            ExceptionUtilities.CheckArgumentNotNull(modelSchema, "modelSchema");
            ExceptionUtilities.CheckArgumentNotNull(serializableContainer, "serializableContainer");

            var container = modelSchema.EntityContainers.Single(c => c.Name == serializableContainer.EntityContainerName);
            var data      = new EntityContainerData(container);
            var rowMap    = new Dictionary <SerializableEntity, EntitySetDataRow>();

            foreach (var entity in serializableContainer.Entities)
            {
                var setData = data.GetEntitySetData(entity.EntitySetName);
                EntitySetDataRow row;
                if (entity.Streams != null)
                {
                    var entityType     = modelSchema.EntityTypes.Single(t => t.FullName == entity.EntityType);
                    var rowWithStreams = new EntitySetDataRowWithStreams(setData, entityType);
                    row = rowWithStreams;
                    setData.Rows.Add(row);

                    foreach (var stream in entity.Streams)
                    {
                        rowWithStreams.Streams.Add(ConvertStreamData(stream));
                    }
                }
                else
                {
                    row = setData.AddNewRowOfType(entity.EntityType);
                }

                rowMap.Add(entity, row);
            }

            foreach (var entity in serializableContainer.Entities)
            {
                this.ConvertEntityProperty(entity, data, rowMap);
            }

            return(data);
        }
        /// <summary>
        /// Converts the serializable container (WCF proxy classes) into EntityContainerData.
        /// </summary>
        /// <param name="modelSchema">The model schema.</param>
        /// <param name="serializableContainer">The serializable container.</param>
        /// <returns>
        /// Instance of <see cref="EntityContainerData"/>
        /// </returns>
        public EntityContainerData Convert(EntityModelSchema modelSchema, SerializableContainer serializableContainer)
        {
            ExceptionUtilities.CheckArgumentNotNull(modelSchema, "modelSchema");
            ExceptionUtilities.CheckArgumentNotNull(serializableContainer, "serializableContainer");

            var container = modelSchema.EntityContainers.Single(c => c.Name == serializableContainer.EntityContainerName);
            var data = new EntityContainerData(container);
            var rowMap = new Dictionary<SerializableEntity, EntitySetDataRow>();

            foreach (var entity in serializableContainer.Entities)
            {
                var setData = data.GetEntitySetData(entity.EntitySetName);
                EntitySetDataRow row;
                if (entity.Streams != null)
                {
                    var entityType = modelSchema.EntityTypes.Single(t => t.FullName == entity.EntityType);
                    var rowWithStreams = new EntitySetDataRowWithStreams(setData, entityType);
                    row = rowWithStreams;
                    setData.Rows.Add(row);

                    foreach (var stream in entity.Streams)
                    {
                        rowWithStreams.Streams.Add(ConvertStreamData(stream));
                    }
                }
                else
                {
                    row = setData.AddNewRowOfType(entity.EntityType);
                }

                rowMap.Add(entity, row);
            }

            foreach (var entity in serializableContainer.Entities)
            {
                this.ConvertEntityProperty(entity, data, rowMap);
            }

            return data;
        }
示例#9
0
        private void SaveMenuItem_Click(object sender, EventArgs e)
        {
            //сериализация состояния программы и сохранение сериализованного объекта в файл
            if (!isAnimationFinished)
            {
                MessageBox.Show(Constants.Strings.ANIMATION_END);
                return;
            }
            SaveFileDialog        saveFileDialog = new SaveFileDialog();
            FileStream            fs;
            SerializableContainer container;
            StreamWriter          writer;
            BinaryFormatter       formatter;

            saveFileDialog.Filter = Constants.Strings.FILE_FORMAT;
            saveFileDialog.Title  = "Save a Bit Genetic Algorithm File";
            saveFileDialog.ShowDialog();
            formatter = new BinaryFormatter();
            container = new SerializableContainer
                        (
                this.bestIndsBackup,
                this.averageIndsBackup,
                this.worstIndsBackup,
                (int)PopulationNumeric.Value,
                (int)EpochNumeric.Value,
                MutationNumeric.Value,
                BestIndividualTextBox.Text,
                logType
                        );

            if (saveFileDialog.FileName != "")
            {
                // Saves the Image via a FileStream created by the OpenFile method.
                fs     = (FileStream)saveFileDialog.OpenFile();
                writer = new StreamWriter(fs);
                formatter.Serialize(fs, container);
                fs.Close();
            }
        }