Exemplo n.º 1
0
        private void RejoinShipModels(IStructureViewBase viewModel1, IStructureViewBase viewModel2)
        {
            var ship1 = (StructureCubeGridViewModel)viewModel1;
            var ship2 = (StructureCubeGridViewModel)viewModel2;

            _dataModel.RejoinBrokenShip((StructureCubeGridModel)ship1.DataModel, (StructureCubeGridModel)ship2.DataModel);

            // Delete ship2.
            DeleteModel(viewModel2);

            // Deleting ship2 will also ensure the removal of any duplicate UniqueIds.
            // Any overlapping blocks between the two, will automatically be removed by Space Engineers when the world is loaded.
        }
Exemplo n.º 2
0
        private void MergeShipPartModels(IStructureViewBase viewModel1, IStructureViewBase viewModel2)
        {
            var ship1 = (StructureCubeGridViewModel)viewModel1;
            var ship2 = (StructureCubeGridViewModel)viewModel2;

            if (_dataModel.MergeShipParts((StructureCubeGridModel)ship1.DataModel, (StructureCubeGridModel)ship2.DataModel))
            {
                // Delete ship2.
                DeleteModel(viewModel2);

                // Deleting ship2 will also ensure the removal of any duplicate UniqueIds.
                // Any overlapping blocks between the two, will automatically be removed by Space Engineers when the world is loaded.

                viewModel1.DataModel.UpdateGeneralFromEntityBase();
            }
        }
Exemplo n.º 3
0
        private void AddViewModel(IStructureBase structureBase)
        {
            IStructureViewBase item;

            if (structureBase is StructureCharacterModel)
                item = new StructureCharacterViewModel(this, structureBase as StructureCharacterModel);
            else if (structureBase is StructureCubeGridModel)
                item = new StructureCubeGridViewModel(this, structureBase as StructureCubeGridModel);
            else if (structureBase is StructureVoxelModel)
                item = new StructureVoxelViewModel(this, structureBase as StructureVoxelModel);
            else if (structureBase is StructureFloatingObjectModel)
                item = new StructureFloatingObjectViewModel(this, structureBase as StructureFloatingObjectModel);
            else if (structureBase is StructureMeteorModel)
                item = new StructureMeteorViewModel(this, structureBase as StructureMeteorModel);
            else if (structureBase is StructureUnknownModel)
                item = new StructureUnknownViewModel(this, structureBase as StructureUnknownModel);
            else
            {
                throw new NotImplementedException("As yet undefined ViewModel has been called.");
            }

            _structures.Add(item);
            _preSelectedStructure = item;

            if (_selectNewStructure)
            {
                SelectedStructure = item;
            }
        }