/// <summary> /// 获取建筑数据详情 /// </summary> /// <param name="data"></param> /// <param name="iconDataManager"></param> /// <param name="innBuildManager"></param> /// <returns></returns> private static RewardTypeBean GetRewardDetailsForBuildItems(RewardTypeBean data) { string[] listBuildItemsData = StringUtil.SplitBySubstringForArrayStr(data.data, ','); long buildItemId = long.Parse(listBuildItemsData[0]); BuildItemBean buildItemInfo = InnBuildHandler.Instance.manager.GetBuildDataById(buildItemId); data.rewardDescribe = buildItemInfo.name; if (listBuildItemsData.Length == 2) { data.rewardNumber = int.Parse(listBuildItemsData[1]); } data.rewardId = buildItemId; data.rewardDescribe += (" x" + data.rewardNumber); data.spRewardIcon = BuildItemTypeEnumTools.GetBuildItemSprite(buildItemInfo); return(data); }
/// <summary> /// 设置图标 /// </summary> /// <param name="iconKey"></param> /// <param name="mark"></param> /// <param name="markId"></param> public void SetIcon(StoreForCarpenterTypeEnum type, BuildItemBean buildItem, StoreInfoBean storeInfo) { Sprite spIcon = null; if (type == StoreForCarpenterTypeEnum.Expansion) { spIcon = IconDataHandler.Instance.manager.GetIconSpriteByName(storeInfo.icon_key); } else { spIcon = BuildItemTypeEnumTools.GetBuildItemSprite(buildItem); } if (ivIcon != null && spIcon != null) { ivIcon.sprite = spIcon; } }
/// <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); }
public void SetBedStatus(BedStatusEnum bedStatus) { this.bedStatus = bedStatus; //设置床单的样式 BuildItemBean buildItemData = InnBuildHandler.Instance.manager.GetBuildDataById(buildBedData.bedSheets); if (bedStatus == BedStatusEnum.Idle) { string cleanStr = buildItemData.GetIconList()[0] + "_clean"; string iconKey = GetIconKey(cleanStr); srSheets.sprite = InnBuildHandler.Instance.manager.GetFurnitureSpriteByName(iconKey); } else if (bedStatus == BedStatusEnum.WaitClean) { string noCleanStr = buildItemData.GetIconList()[0] + "_noclean"; string iconKey = GetIconKey(noCleanStr); srSheets.sprite = InnBuildHandler.Instance.manager.GetFurnitureSpriteByName(iconKey); } }
public void SetData(StoreInfoBean itemData) { storeInfo = itemData; float aesthetics = 0; string iconKey = ""; string name = ""; string content = ""; StoreForCarpenterTypeEnum type = (StoreForCarpenterTypeEnum)storeInfo.store_goods_type; if (type == StoreForCarpenterTypeEnum.Expansion) { iconKey = storeInfo.icon_key; name = storeInfo.name; content = storeInfo.content; } else { buildItemData = InnBuildHandler.Instance.manager.GetBuildDataById(itemData.mark_id); if (buildItemData != null) { aesthetics = buildItemData.aesthetics; iconKey = buildItemData.icon_key; name = buildItemData.name; content = buildItemData.content; } } SetPrice(storeInfo.price_l, storeInfo.price_m, storeInfo.price_s, storeInfo.guild_coin, storeInfo.trophy_elementary, storeInfo.trophy_intermediate, storeInfo.trophy_advanced, storeInfo.trophy_legendary); SetName(name); SetIcon(type, buildItemData, itemData); SetAttribute(type, aesthetics); SetContent(content); SetOwn(type); SetGetNumber(storeInfo.get_number); SetPopup(content); }
/// <summary> /// 设置床的文本 /// </summary> /// <param name="customBedData"></param> public void SetBedText(BuildBedBean buildBedData) { BuildItemBean bedBaseData = InnBuildHandler.Instance.manager.GetBuildDataById(buildBedData.bedBase); BuildItemBean bedBarData = InnBuildHandler.Instance.manager.GetBuildDataById(buildBedData.bedBar); BuildItemBean bedSheetsData = InnBuildHandler.Instance.manager.GetBuildDataById(buildBedData.bedSheets); BuildItemBean bedPillowData = InnBuildHandler.Instance.manager.GetBuildDataById(buildBedData.bedPillow); if (tvBedBase != null && bedBaseData != null) { tvBedBase.text = bedBaseData.name; } if (tvBedBar != null && bedBarData != null) { tvBedBar.text = bedBarData.name; } if (tvBedSheets != null && bedSheetsData != null) { tvBedSheets.text = bedSheetsData.name; } if (tvBedPillow != null && bedPillowData != null) { tvBedPillow.text = bedPillowData.name; } }
public void SetData(BuildItemBean buildItemData, BuildBedBean buildBedData) { this.buildBedData = buildBedData; base.SetData(buildItemData); }
/// <summary> /// 拆除 /// </summary> /// <param name="buildPosition">家具的位置</param> /// <param name="sceneFurniturePosition">家具在场景中的位置</param> protected void BuildItemForDismantle(int dismantleLayer, Vector3 buildPosition, Vector3 sceneFurniturePosition) { GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); //获取拆除位置的家具数据 InnBuildBean buildData = gameData.GetInnBuildData(); InnResBean itemFurnitureData = buildData.GetFurnitureByPosition(dismantleLayer, buildPosition); //因为在保存tile时坐标减过1 所以查询是也要-1 InnResBean itemWallData = buildData.GetWallByPosition(dismantleLayer, buildPosition - new Vector3(1, 0, 0)); //如果拆除的是家具 if (itemFurnitureData != null) { BuildItemBean buildItemData = InnBuildHandler.Instance.manager.GetBuildDataById(itemFurnitureData.id); //如果是最后一扇门则不能删除 if (buildItemData.build_type == (int)BuildItemTypeEnum.Door && buildData.GetDoorList().Count <= 1) { //只有一次点击时才出提示 if (Input.GetButtonDown(InputInfo.Confirm)) { ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1004)); } } else { //移除数据 buildData.GetFurnitureList(dismantleLayer).Remove(itemFurnitureData); //移除场景中的建筑物 InnBuildHandler.Instance.builderForFurniture.DestroyFurnitureByPosition(sceneFurniturePosition); if (buildItemData.build_type == (int)BuildItemTypeEnum.Bed) { //如果是床 BuildBedBean buildBedData = gameData.GetBedByRemarkId(itemFurnitureData.remarkId); buildBedData.isSet = false; } else if (buildItemData.build_type == (int)BuildItemTypeEnum.Stairs) { //背包里添加一个 gameData.AddBuildNumber(itemFurnitureData.id, 1); InnResBean itemStarisData = null; if (dismantleLayer == 1) { itemStarisData = buildData.GetFurnitureByPosition(2, buildPosition + new Vector3(0, 100)); buildData.GetFurnitureList(2).Remove(itemStarisData); //移除场景中的建筑物 InnBuildHandler.Instance.builderForFurniture.DestroyFurnitureByPosition(sceneFurniturePosition + new Vector3(0, 100)); } else if (dismantleLayer == 2) { itemStarisData = buildData.GetFurnitureByPosition(1, buildPosition - new Vector3(0, 100)); buildData.GetFurnitureList(1).Remove(itemStarisData); //移除场景中的建筑物 InnBuildHandler.Instance.builderForFurniture.DestroyFurnitureByPosition(sceneFurniturePosition - new Vector3(0, 100)); } } else { //背包里添加一个 gameData.AddBuildNumber(itemFurnitureData.id, 1); } } } //如果拆除的是墙壁 if (itemWallData != null) { //判断是否是最外的墙壁 Vector3 startPosition = itemWallData.GetStartPosition(); gameData.GetInnBuildData().GetInnSize(buildLayer, out int innWidth, out int innHeight, out int offsetHeight); bool isOutWall = false; if (buildLayer == 1) { isOutWall = (startPosition.x == 0 || startPosition.x == (innWidth - 1)) || startPosition.y == (innHeight - 1) + offsetHeight; } else if (buildLayer == 2) { isOutWall = (startPosition.x == 0 || startPosition.x == (innWidth - 1)) || startPosition.y == 0 + offsetHeight || startPosition.y == (innHeight - 1) + offsetHeight; } if (isOutWall) { //只有一次点击时才出提示 if (Input.GetButtonDown(InputInfo.Confirm)) { ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1023)); } } else { //移除数据 buildData.GetWallList(buildLayer).Remove(itemWallData); //移除场景中的建筑物 InnBuildHandler.Instance.builderForWall.ClearWall(Vector3Int.RoundToInt(startPosition)); //背包里添加一个 gameData.AddBuildNumber(itemWallData.id, 1); } } //更新一下数据 InitBuildingExist(); }
/// <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); } }
public override void SetData(BuildItemBean buildItemData) { base.SetData(buildItemData); SetLayer(2); }
/// <summary> /// 通过ID获取家具Obj /// </summary> /// <param name="id"></param> /// <returns></returns> public GameObject GetFurnitureObjById(InnResBean furnitureData, Transform tfFather, BuildBedBean buildBedData) { BuildItemBean buildItemData = GetBuildDataById(furnitureData.id); GameObject furnitureObjModel = GetModel(dicFurnitureCpt, "model/furniture", buildItemData.model_name); GameObject furnitureObj = Instantiate(tfFather.gameObject, furnitureObjModel); BaseBuildItemCpt buildItemCpt = furnitureObj.GetComponent <BaseBuildItemCpt>(); List <string> listIcon = buildItemData.GetIconList(); switch ((BuildItemTypeEnum)buildItemData.build_type) { case BuildItemTypeEnum.Counter: BuildCounterCpt buildCounter = (BuildCounterCpt)buildItemCpt; Sprite spLeftCounter = GetFurnitureSpriteByName(listIcon[0] + "_0"); Sprite spRightCounter = GetFurnitureSpriteByName(listIcon[0] + "_1"); Sprite spDownCounter = GetFurnitureSpriteByName(listIcon[0] + "_2"); Sprite spUpCounter = GetFurnitureSpriteByName(listIcon[0] + "_3"); buildCounter.SetData(buildItemData, spLeftCounter, spRightCounter, spDownCounter, spUpCounter); break; case BuildItemTypeEnum.Stove: BuildStoveCpt buildStove = (BuildStoveCpt)buildItemCpt; Sprite spLeftStove = GetFurnitureSpriteByName(listIcon[0] + "_0"); Sprite spRightStove = GetFurnitureSpriteByName(listIcon[0] + "_1"); Sprite spDownStove = GetFurnitureSpriteByName(listIcon[0] + "_2"); Sprite spUpStove = GetFurnitureSpriteByName(listIcon[0] + "_3"); buildStove.SetData(buildItemData, spLeftStove, spRightStove, spDownStove, spUpStove); break; case BuildItemTypeEnum.Table: BuildTableCpt buildTable = (BuildTableCpt)buildItemCpt; Sprite spLeftChair = GetFurnitureSpriteByName(listIcon[1] + "_0"); Sprite spRightChair = GetFurnitureSpriteByName(listIcon[1] + "_1"); Sprite spDownChair = GetFurnitureSpriteByName(listIcon[1] + "_2"); Sprite spUpChair = GetFurnitureSpriteByName(listIcon[1] + "_3"); if (buildItemData.model_name.Equals("Table_1")) { Sprite spTable = GetFurnitureSpriteByName(listIcon[0]); buildTable.SetData(buildItemData, spTable, spLeftChair, spRightChair, spDownChair, spUpChair); } else if (buildItemData.model_name.Equals("Table_2")) { Sprite spLeftTable = GetFurnitureSpriteByName(listIcon[0] + "_0"); Sprite spRightTable = GetFurnitureSpriteByName(listIcon[0] + "_1"); Sprite spDownTable = GetFurnitureSpriteByName(listIcon[0] + "_2"); Sprite spUpTable = GetFurnitureSpriteByName(listIcon[0] + "_3"); buildTable.SetData(buildItemData, spLeftTable, spRightTable, spDownTable, spUpTable, spLeftChair, spRightChair, spDownChair, spUpChair); } break; case BuildItemTypeEnum.Decoration: BuildDecorationCpt buildDecoration = (BuildDecorationCpt)buildItemCpt; Sprite spDecoration = GetFurnitureSpriteByName(buildItemData.icon_key); buildDecoration.SetData(buildItemData, spDecoration); break; case BuildItemTypeEnum.Door: BuildDoorCpt buildDoor = (BuildDoorCpt)buildItemCpt; Sprite spDoor = GetFurnitureSpriteByName(listIcon[0]); buildDoor.SetData(buildItemData, spDoor); break; case BuildItemTypeEnum.Floor: BuildFloorCpt buildFloor = (BuildFloorCpt)buildItemCpt; Sprite spFloor = GetFloorSpriteByName(buildItemData.icon_key); buildFloor.SetData(buildItemData, spFloor); break; case BuildItemTypeEnum.Wall: BuildWallCpt buildWall = (BuildWallCpt)buildItemCpt; Sprite spWall = GetWallSpriteByName(buildItemData.icon_key); buildWall.SetData(buildItemData, spWall); break; case BuildItemTypeEnum.Bed: BuildBedCpt buildBed = (BuildBedCpt)buildItemCpt; buildBed.SetData(buildItemData, buildBedData); break; case BuildItemTypeEnum.Stairs: BuildStairsCpt buildStairs = (BuildStairsCpt)buildItemCpt; buildStairs.SetData(buildItemData); buildStairs.SetRemarkId(furnitureData.remarkId); if (furnitureData.remark != null && furnitureData.remark.Equals("1")) { buildStairs.SetLayer(1); } else { buildStairs.SetLayer(2); } break; default: buildItemCpt.SetData(buildItemData); break; } return(furnitureObj); }
/// <summary> /// 设置数据 /// </summary> /// <param name="buildItemData"></param> /// <param name="spLeft"></param> /// <param name="spRight"></param> /// <param name="spDown"></param> /// <param name="spUp"></param> public void SetData(BuildItemBean buildItemData, Sprite spLeft, Sprite spRight, Sprite spDown, Sprite spUp) { SetData(buildItemData); SetSprite(spLeft, spRight, spDown, spUp); }
/// <summary> /// 设置数据 /// </summary> /// <param name="buildItemData"></param> /// <param name="spIcon"></param> public virtual void SetData(BuildItemBean buildItemData, Sprite spIcon) { SetData(buildItemData); SetSprite(spIcon, spIcon, spIcon, spIcon); }
/// <summary> /// 设置建筑数据 /// </summary> /// <param name="buildItemData"></param> public virtual void SetData(BuildItemBean buildItemData) { this.buildItemData = buildItemData; }