public BSPattern(SqliteDataReader reader) { ID = Convert.ToInt32(reader.GetString(reader.GetOrdinal("ID"))); size = Convert.ToInt32(reader.GetString(reader.GetOrdinal("Size"))); IconName = reader.GetString(reader.GetOrdinal("IconName")); MeshPath = reader.GetString(reader.GetOrdinal("MeshPath")); voxelList = new BSVoxel[size, size, size]; type = EBSVoxelType.Block; string blockString = reader.GetString(reader.GetOrdinal("Blocks")); string[] _blockList = blockString.Split(';'); int count = 0; for (int y = 0; y < size; y++) { for (int z = 0; z < size; z++) { for (int x = 0; x < size; x++) { string[] valueList = _blockList[count].Split(','); if (type == EBSVoxelType.Block) { voxelList[x, y, z] = new BSVoxel(BSVoxel.MakeBlockType(Convert.ToInt32(valueList[0]), Convert.ToInt32(valueList[1])), 0); } else if (type == EBSVoxelType.Voxel) { voxelList[x, y, z] = new BSVoxel(255, 2); } count++; } } } }
public void Init(EBSVoxelType voxel_type) { Destroy(); m_Voxels = new Dictionary <int, BSVoxel>(); // Init header m_HeadInfo = new BSIsoHeadData(); m_HeadInfo.Version = ISO_VERSION; m_HeadInfo.Mode = voxel_type; m_HeadInfo.Author = ""; m_HeadInfo.Name = ""; m_HeadInfo.Desc = ""; m_HeadInfo.Remarks = "<REMARKS />"; m_HeadInfo.xSize = 256; m_HeadInfo.ySize = 256; m_HeadInfo.zSize = 256; m_HeadInfo.IconTex = new byte [0]; m_HeadInfo.costs = new Dictionary <byte, UInt32>(); m_HeadInfo.EnsureIconTexValid(); }