public void GenerateVoxelFieldExecuted()
{
var model = new GenerateVoxelFieldModel();
var position = ThePlayerCharacter != null ? ThePlayerCharacter.PositionAndOrientation.Value : new MyPositionAndOrientation(Vector3D.Zero, Vector3.Forward, Vector3.Up);
model.Load(position);
var loadVm = new GenerateVoxelFieldViewModel(this, model);
var result = _dialogService.ShowDialog<WindowGenerateVoxelField>(this, loadVm);
model.Unload();
if (result == true)
{
IsBusy = true;
string[] sourceVoxelFiles;
MyObjectBuilder_EntityBase[] newEntities;
loadVm.BuildEntities(out sourceVoxelFiles, out newEntities);
_selectNewStructure = true;
ResetProgress(0, newEntities.Length);
for (var i = 0; i < newEntities.Length; i++)
{
var structure = _dataModel.AddEntity(newEntities[i]);
((StructureVoxelModel)structure).SourceVoxelFilepath = sourceVoxelFiles[i]; // Set the temporary file location of the Source Voxel, as it hasn't been written yet.
Progress++;
}
_selectNewStructure = false;
IsBusy = false;
ClearProgress();
}
}