/// <summary> /// 分配厨师做饭 /// </summary> public bool SetChefForCook(OrderForCustomer orderForCustomer, NpcAIWorkerCpt chefCpt) { BuildStoveCpt stoveCpt = null; if (chefCpt == null) { return(false); } for (int i = 0; i < listStoveCpt.Count; i++) { BuildStoveCpt itemStove = listStoveCpt[i]; //检测是否能到达烹饪点 if (itemStove.stoveStatus == BuildStoveCpt.StoveStatusEnum.Idle && CheckUtil.CheckPath(chefCpt.transform.position, itemStove.GetCookPosition())) { stoveCpt = itemStove; break; } } if (chefCpt != null && stoveCpt != null) { orderForCustomer.stove = stoveCpt; orderForCustomer.stove.SetStoveStatus(BuildStoveCpt.StoveStatusEnum.Ready); orderForCustomer.chef = chefCpt; chefCpt.SetIntent(NpcAIWorkerCpt.WorkerIntentEnum.Cook, orderForCustomer); return(true); } else { return(false); } }
/// <summary> /// 清理所有灶台 /// </summary> public void CleanAllStove() { if (listStoveCpt == null) { return; } for (int i = 0; i < listStoveCpt.Count; i++) { BuildStoveCpt buildStoveCpt = listStoveCpt[i]; buildStoveCpt.ClearStove(); } ; }
/// <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); }