public NodeBuildingCont(NodeController pNode)
    {
        parentNode = pNode;

        var types = Mathc.GetEnumValues <BUILDING_TYPE>();

        foreach (var t in types)
        {
            buildingTypeCount.Add(t, 0);
        }
    }
    void InitializeBuildings()
    {
        buildingList         = new ReadOnlyCollection <BuildingData>(m_buildingList);
        buildingDict         = new ReadOnlyDictionary <int, BuildingData>(m_buildingDict);
        maxBuildingTypesDict = new ReadOnlyDictionary <BUILDING_TYPE, int>(m_maxBuildingTypesDict);

        foreach (var t in Mathc.GetEnumValues <BUILDING_TYPE>())
        {
            m_BuildingsByType.Add(t, new List <BuildingData>());
        }

        foreach (var bData in m_buildingList)
        {
            bData.Init();
            m_buildingDict.Add(bData.key, bData);
            m_BuildingsByType[bData.buildingType].Add(bData);
        }
        foreach (var t2 in m_maxBuildingTypesList)
        {
            m_maxBuildingTypesDict.Add(t2.type, t2.max);
        }
    }