void AddPlantAndAnimalModel(HomePosInfo plant, uint leftTime, uint seedID, EntityType type = EntityType.EntityType_Plant) { if (seedID != 0) { CreatureSmallState st = GetPlantStateByLandData(seedID, leftTime); SeedAndCubDataBase db = GameTableManager.Instance.GetTableItem <SeedAndCubDataBase>(seedID); if (db == null) { Log.Error("种子没找到"); return; } IEntity sen = HomeScene.Instance.AddEntity(plant.index.ToString(), type, db.indexID, (int)st); if (sen != null) { sen.SendMessage(EntityMessage.EntityCommand_SetPos, new Vector3(plant.posX, 2.97f, -plant.posZ)); HomeEntityInfo info = new HomeEntityInfo(); info.index = plant.index; info.state = (int)st; info.type = type; info.entityID = sen.GetUID(); AddHomeEntity(sen.GetUID(), info); AddPlantAndAnimalRemainTime(plant.index, leftTime); } } }
/// <summary> /// 获取各个模块的物件的在场景中的坐标信息 /// </summary> /// <param name="modleID">模块id</param> /// <returns></returns> public List <HomePosInfo> GetPosListByModuleID(uint modleID) { List <HomePosInfo> list = new List <HomePosInfo>(); HomeLandViewDatabase db = GameTableManager.Instance.GetTableItem <HomeLandViewDatabase>(modleID); if (db != null) { string[] posArray = db.posStr.Split(';'); foreach (var info in posArray) { string[] infoArray = info.Split('_'); if (infoArray.Length != 3) { Log.Error("data does not meet the requirements"); return(null); } HomePosInfo pi = new HomePosInfo(); if (!int.TryParse(infoArray[0], out pi.index)) { Log.Error("int parse error"); } if (!int.TryParse(infoArray[1], out pi.posX)) { Log.Error("int parse error"); } if (!int.TryParse(infoArray[2], out pi.posZ)) { Log.Error("int parse error"); } list.Add(pi); } } return(list); }
void CreateAnimals() { //List<HomePosInfo> posList = GetPosListByModuleID( 304 ); //if ( posList == null ) // return; List <HomePosInfo> posList = GetPosListByModuleID(animalID);//获取土地位置 HomeLandViewDatabase db = GameTableManager.Instance.GetTableItem <HomeLandViewDatabase>(animalID); if (db != null) { for (int i = 0; i < posList.Count; i++) { HomePosInfo plant = posList[i]; AddAnimalYardModel(plant, LandState.Idle); } } for (int i = 0; i < animalLandList.Count; i++) { LandData ld = animalLandList[i]; HomePosInfo info = GetAnimalPos(i + 1); AddPlantAndAnimalModel(info, ld.remain_time, ld.seed_id, EntityType.EntityType_Animal); } }
HomePosInfo GetAnimalPos(int index) { int x = 28, y = 65; int rd = UnityEngine.Random.Range(-5, 5); HomePosInfo info = new HomePosInfo(); info.index = index + (int)animalIndexStart;//index 从101开始 info.posX = x + rd; info.posZ = y + rd; return(info); }
void AddAnimalYardModel(HomePosInfo plant, LandState st) { IEntity en = HomeScene.Instance.AddEntity(plant.index.ToString(), EntityType.EntityType_Soil, animalID, (int)st); if (en != null) { en.SendMessage(EntityMessage.EntityCommand_SetPos, new Vector3(plant.posX, 2.966f, -plant.posZ)); HomeEntityInfo info = new HomeEntityInfo(); info.index = animalYardID; // plant.index; info.state = (int)st; info.type = EntityType.EntityType_Soil; info.entityID = en.GetUID(); AddHomeEntity(en.GetUID(), info); } }
public void OnSowLand(stSowHomeUserCmd_CS cmd) { AddSeedToDic(cmd.land_id, cmd.seed_id); HomePosInfo pos = GetPosInfoByIndex(landID, (int)cmd.land_id); if (pos != null) { SeedAndCubDataBase db = GameTableManager.Instance.GetTableItem <SeedAndCubDataBase>(cmd.seed_id); if (db != null) { ItemDataBase idb = GameTableManager.Instance.GetTableItem <ItemDataBase>(cmd.seed_id); if (idb != null) { TipsManager.Instance.ShowTipsById(114505, idb.itemName); AddPlantAndAnimalModel(pos, db.growTime, cmd.seed_id); SetLandEntityState((int)cmd.land_id, (int)LandState.Growing); RefreshLandUI(); } } } DataManager.Manager <UIPanelManager>().HidePanel(PanelID.PlantingPanel); }
public void OnFeedAnimal(stFeedHomeUserCmd_CS cmd) { uint animalIndex = (uint)(cmd.land_id + animalIndexStart); AddSeedToDic(animalIndex, cmd.seed_id); HomePosInfo pos = GetAnimalPos((int)cmd.land_id); if (pos != null) { SeedAndCubDataBase db = GameTableManager.Instance.GetTableItem <SeedAndCubDataBase>(cmd.seed_id); if (db != null) { ItemDataBase idb = GameTableManager.Instance.GetTableItem <ItemDataBase>(cmd.seed_id); if (idb != null) { TipsManager.Instance.ShowTipsById(114505, idb.itemName); AddPlantAndAnimalModel(pos, db.growTime, cmd.seed_id, EntityType.EntityType_Animal); RefreshLandUI(); } } } }
void CreatePlant() { List <HomePosInfo> posList = GetPosListByModuleID(landID); HomeLandViewDatabase db = GameTableManager.Instance.GetTableItem <HomeLandViewDatabase>(landID); if (db != null) { for (int i = 0; i < posList.Count; i++) { HomePosInfo plant = posList[i]; if (i < landList.Count) { LandData ld = landList[i]; ShowSoilModel(plant, ld); ShowPlantModel(plant, ld); } else { ShowSoilModel(plant, null); } } } }
void ShowSoilModel(HomePosInfo plant, LandData ld) { LandState st = LandState.LockCanBuy; if (ld != null) { if (ld.farm_id == plant.index) { st = LandState.Idle; if (ld.land_state == 0 && ld.plant_begin != 0) { if (ld.remain_time == 0) { st = LandState.CanGain; } if (ld.remain_time != 0) { st = LandState.Growing; } } } } AddSoilModel(plant, st); }
void ShowPlantModel(HomePosInfo plant, LandData ld) { AddPlantAndAnimalModel(plant, ld.remain_time, ld.seed_id); }