示例#1
0
    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++;
                }
            }
        }
    }
示例#2
0
    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();
    }