Esempio n. 1
0
    /// <summary>
    /// 获取坐标周围范围的美观加成
    /// </summary>
    /// <param name="mapBuildData"></param>
    /// <param name="position"></param>
    /// <param name="aroundRange"></param>
    /// <returns></returns>
    public void GetAroundAesthetics(Dictionary <Vector3, InnResBean> mapBuildData, Vector3 position, int aroundRange, out float addAesthetics, out float subAesthetics)
    {
        addAesthetics = 0;
        subAesthetics = 0;
        Vector3 selfPosition = new Vector3(position.x, position.y, position.z);

        position -= new Vector3(aroundRange, aroundRange);
        for (int i = 0; i <= aroundRange * 2; i++)
        {
            for (int f = 0; f <= aroundRange * 2; f++)
            {
                Vector3 currentPosition = position + new Vector3(i, f);
                mapBuildData.TryGetValue(currentPosition, out InnResBean buildData);
                if (buildData != null)
                {
                    BuildItemBean buildItem = InnBuildHandler.Instance.manager.GetBuildDataById(buildData.id);
                    addAesthetics += buildItem.aesthetics;
                    if (selfPosition != currentPosition && buildItem.GetBuildType() == BuildItemTypeEnum.Bed)
                    {
                        subAesthetics -= 10;
                    }
                }
            }
        }
    }
Esempio n. 2
0
    /// <summary>
    /// 获取
    /// </summary>
    /// <param name="innBuildManager"></param>
    /// <param name="type"></param>
    /// <returns></returns>
    public List <ItemBean> GetBuildDataByType(BuildItemTypeEnum type)
    {
        List <ItemBean> listData = new List <ItemBean>();

        foreach (ItemBean itemData in listBuild)
        {
            BuildItemBean buildItemData = InnBuildHandler.Instance.manager.GetBuildDataById(itemData.itemId);
            if (buildItemData.GetBuildType() == type)
            {
                listData.Add(itemData);
            }
        }
        return(listData);
    }
Esempio n. 3
0
    /// <summary>
    /// 根据类型获取数据
    /// </summary>
    /// <param name="buildItemType"></param>
    /// <returns></returns>
    public List <StoreInfoBean> GetListBedDataByType(BuildItemTypeEnum buildItemType)
    {
        List <StoreInfoBean> listData = new List <StoreInfoBean>();

        if (listBedData == null)
        {
            return(listData);
        }
        for (int i = 0; i < listBedData.Count; i++)
        {
            StoreInfoBean storeInfo = listBedData[i];
            BuildItemBean buildItem = InnBuildHandler.Instance.manager.GetBuildDataById(storeInfo.mark_id);
            if (buildItem.GetBuildType() == buildItemType)
            {
                listData.Add(storeInfo);
            }
        }
        return(listData);
    }
Esempio n. 4
0
    /// <summary>
    /// 创建建筑列表
    /// </summary>
    /// <param name="type"></param>
    public void CreateBuildList(BuildItemTypeEnum type)
    {
        if (itemBuildContainer == null)
        {
            return;
        }
        bool hasData = false;

        buildType = type;
        GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();

        if (type == BuildItemTypeEnum.Bed)
        {
            if (itemBuildForBedModel == null)
            {
                return;
            }
            if (gameData.listBed == null)
            {
                return;
            }
            CptUtil.RemoveChildsByActive(itemBuildContainer);
            listBuildItem.Clear();
            listBuildForBedItem.Clear();
            for (int i = 0; i < gameData.listBed.Count; i++)
            {
                BuildBedBean itemData = gameData.listBed[i];
                CreateBuildForBedItem(itemData);
                hasData = true;
            }
        }
        else
        {
            if (itemBuildModel == null)
            {
                return;
            }
            if (gameData.listBuild == null)
            {
                return;
            }
            CptUtil.RemoveChildsByActive(itemBuildContainer);
            listBuildItem.Clear();
            listBuildForBedItem.Clear();

            for (int i = 0; i < gameData.listBuild.Count; i++)
            {
                ItemBean      itemData  = gameData.listBuild[i];
                BuildItemBean buildData = InnBuildHandler.Instance.manager.GetBuildDataById(itemData.itemId);
                if (buildData == null)
                {
                    continue;
                }
                if (type == buildData.GetBuildType())
                {
                    CreateBuildItem(itemData, buildData);
                    hasData = true;
                }
            }
        }
        if (hasData)
        {
            tvNull.gameObject.SetActive(false);
        }
        else
        {
            tvNull.gameObject.SetActive(true);
        }
    }