示例#1
0
    /// <summary>
    /// 检测指定点是否有建筑
    /// </summary>
    /// <param name="position"></param>
    /// <returns></returns>
    protected bool CheckHasBuild(Vector3 position)
    {
        BuildItemTypeEnum buildType = (BuildItemTypeEnum)buildItemCpt.buildItemData.build_type;

        if (buildType == BuildItemTypeEnum.Floor)
        {
            return(false);
        }
        else if (buildType == BuildItemTypeEnum.Wall)
        {
            bool hasFurniture = listBuildingExist.Contains(position);
            if (hasFurniture)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        else
        {
            bool hasFurniture = listBuildingExist.Contains(position);
            bool hasWall      = listBuildingExistForWall.Contains(position);
            if (hasFurniture || hasWall)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
    }
示例#2
0
    /// <summary>
    /// 创建结构
    /// </summary>
    /// <param name="buildItemType"></param>
    /// <param name="buildId"></param>
    protected void CreateStructure(BuildItemTypeEnum buildItemType, long buildId)
    {
        string        name           = BuildItemTypeEnumTools.GetBuildItemName(buildItemType);
        BuildItemBean buildItemdData = InnBuildHandler.Instance.manager.GetBuildDataById(buildId);

        CreateItem(objItemBaseContainer, null, Color.white, name, buildItemdData.name);
    }
示例#3
0
    public static string GetBuildItemName(BuildItemTypeEnum buildItemType)
    {
        string name = "???";

        switch (buildItemType)
        {
        case BuildItemTypeEnum.BedBase:
            name = TextHandler.Instance.manager.GetTextById(801);
            break;

        case BuildItemTypeEnum.BedBar:
            name = TextHandler.Instance.manager.GetTextById(802);
            break;

        case BuildItemTypeEnum.BedSheets:
            name = TextHandler.Instance.manager.GetTextById(803);
            break;

        case BuildItemTypeEnum.BedPillow:
            name = TextHandler.Instance.manager.GetTextById(804);
            break;

        default:
            break;
        }
        return(name);
    }
示例#4
0
 private void OnAddItemRequested(BuildItemTypeEnum itemType)
 {
     if (AddItemRequested != null)
     {
         AddItemRequested(this, itemType);
     }
 }
示例#5
0
    public void RadioButtonSelected(RadioGroupView rgView, int position, RadioButtonView rbview)
    {
        BuildItemTypeEnum    buildItemType = EnumUtil.GetEnum <BuildItemTypeEnum>(rbview.name);
        List <StoreInfoBean> listData      = GetListBedDataByType(buildItemType);

        CreateBedDataList(listData);
    }
示例#6
0
 public void GetBuildItemsByTypeSuccess(BuildItemTypeEnum type, List <BuildItemBean> listData)
 {
     listBuildData = new Dictionary <long, BuildItemBean>();
     foreach (BuildItemBean itemData in listData)
     {
         listBuildData.Add(itemData.id, itemData);
     }
 }
        void ViewAddItemRequested(object sender, BuildItemTypeEnum e)
        {
            mAddItemPresenter.ShowBuildItems(
                mConfig.BuildItemsDictionary
                .Clone()
                .Values
                .Where(p => p.ItemType == e && p.Name != Consts.DefaultStateItemName), mBuildManager.CurrentStatistics);

            mAddItemView.ShowModalView();
        }
示例#8
0
    public void GetBuildItemsDataByType(BuildItemTypeEnum type)
    {
        List <BuildItemBean> listData = GetModel().GetBuildItemsByType((int)type);

        if (CheckUtil.ListIsNull(listData))
        {
            GetView().GetBuildItemsByTypeFail();
        }
        else
        {
            GetView().GetBuildItemsByTypeSuccess(type, listData);
        }
    }
示例#9
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);
    }
示例#10
0
        private static Color GetRowColorFromItemType(BuildItemTypeEnum itemType)
        {
            switch (itemType)
            {
            case BuildItemTypeEnum.Unit: return(Color.LightGreen);

            case BuildItemTypeEnum.Building: return(Color.DarkOrange);

            case BuildItemTypeEnum.Special: return(Color.Bisque);

            case BuildItemTypeEnum.Upgrade: return(Color.LightBlue);

            default: return(Color.White);
            }
        }
示例#11
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);
    }
示例#12
0
    /// <summary>
    /// 通过类型设置床数据
    /// </summary>
    /// <param name="buildItemType"></param>
    /// <param name="buildId"></param>
    public void SetBedDataByType(BuildItemTypeEnum buildItemType, long buildId)
    {
        switch (buildItemType)
        {
        case BuildItemTypeEnum.BedBase:
            customBedData.bedBase = buildId;
            break;

        case BuildItemTypeEnum.BedBar:
            customBedData.bedBar = buildId;
            break;

        case BuildItemTypeEnum.BedSheets:
            customBedData.bedSheets = buildId;
            break;

        case BuildItemTypeEnum.BedPillow:
            customBedData.bedPillow = buildId;
            break;
        }
        RefreshUI();
    }
示例#13
0
    /// <summary>
    /// 检测是否超出建筑范围
    /// </summary>
    /// <param name="position"></param>
    /// <returns></returns>
    protected bool CheckOutOfRange(Vector3 position)
    {
        GameDataBean      gameData  = GameDataHandler.Instance.manager.GetGameData();
        BuildItemTypeEnum buildType = (BuildItemTypeEnum)buildItemCpt.buildItemData.build_type;

        gameData.GetInnBuildData().GetInnSize(buildLayer, out int innWidth, out int innHeight, out int offsetHeight);

        if (buildType == BuildItemTypeEnum.Door)
        {
            //门的范围为y=0 x :2- width-1
            if (position.y == 0 && position.x > 2 && position.x < innWidth - 1)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
        else if (buildType == BuildItemTypeEnum.Floor)
        {
            //地板
            if (position.x >= 1 && position.x <= innWidth && position.y >= 0 + offsetHeight && position.y <= innHeight - 1 + offsetHeight)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
        else if (buildType == BuildItemTypeEnum.Wall)
        {
            //墙体
            if (position.x >= 1 && position.x <= innWidth && position.y >= 0 + offsetHeight && position.y <= innHeight - 1 + offsetHeight)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
        else if (buildType == BuildItemTypeEnum.Other && buildItemCpt.buildItemData.id == -1)
        {
            //拆除模式
            return(false);
        }
        else
        {
            //其他则在客栈范围内 判断是否超出可修建范围
            if (position.x > 1 && position.x < innWidth && position.y > 0 + offsetHeight && position.y < innHeight - 1 + offsetHeight)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
    }
示例#14
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);
        }
    }