Пример #1
0
 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);
         }
     }
 }
Пример #2
0
    /// <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);
    }
Пример #3
0
    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);
        }
    }
Пример #4
0
    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);
    }
Пример #5
0
    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);
        }
    }
Пример #6
0
    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);
    }
Пример #7
0
    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();
                }
            }
        }
    }
Пример #8
0
    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);
                }
            }
        }
    }
Пример #9
0
    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);
    }
Пример #10
0
 void ShowPlantModel(HomePosInfo plant, LandData ld)
 {
     AddPlantAndAnimalModel(plant, ld.remain_time, ld.seed_id);
 }