Beispiel #1
0
//	void RPC_S2C_CLN_SetGuardPos(uLink.BitStream stream, uLink.NetworkMessageInfo info)
//	{
//        //--to do: wait
//        Vector3 guardPos = stream.Read<Vector3>();
//        //int playID = stream.Read<int>();
//        //if (playID == PlayerFactory.mMainPlayer.OwnerView.viewID.id)
//        //{
//            CSCreator creator = CSMain.GetCreator(CSConst.ciDefMgCamp);
//            if (creator != null)
//            {
//                CSPersonnel[] personnels = creator.GetNpcs();
//                foreach (CSPersonnel csp in personnels)
//                {
//                    if (csp != null && csp.m_Npc != null)
//                    {
//                        if (Id == csp.m_Npc.Id)
//                        {
//                            csp.SetGuardAttr(guardPos);
//                        }
//                    }
//                }
//            }
//        //}
//	}

    void RPC_S2C_CLN_PlantGetBack(uLink.BitStream stream, uLink.NetworkMessageInfo info)
    {
        int objId = stream.Read <int> ();

        if (objId != -1)
        {
            FarmManager.Instance.RemovePlant(objId);
            DragArticleAgent.Destory(objId);
            ItemMgr.Instance.DestroyItem(objId);
        }
        else
        {
            FarmPlantLogic plant = stream.Read <FarmPlantLogic>();

            CSMgCreator creator = MultiColonyManager.GetCreator(TeamId);
            if (creator == null || creator.Assembly == null)
            {
                return;
            }
            CSFarm farm = creator.Assembly.Farm;
            if (farm == null)
            {
                return;
            }
            farm.RestoreWateringPlant(plant);
        }
    }
    public void ClearFarmWorks()
    {
        if (WorkRoom == null)
        {
            return;
        }
        CSFarm farm = WorkRoom as CSFarm;

        if (farm == null)
        {
            m_FarmWorkMap.Clear();
            return;
        }

        foreach (KeyValuePair <EFarmWorkType, FarmWorkInfo> kvp in m_FarmWorkMap)
        {
            switch (kvp.Key)
            {
            case EFarmWorkType.Watering:
                farm.RestoreWateringPlant(kvp.Value.m_Plant);
                break;

            case EFarmWorkType.Cleaning:
                farm.RestoreCleaningPlant(kvp.Value.m_Plant);
                break;

            case EFarmWorkType.Harvesting:
                farm.RestoreRipePlant(kvp.Value.m_Plant);
                break;

            case EFarmWorkType.Planting:
#if NEW_CLOD_MGR
                CSMgCreator mgCreator = m_Creator as CSMgCreator;
                if (mgCreator == null)
                {
                    Debug.Log(" CSCreator is error");
                    break;
                }

                mgCreator.m_Clod.DirtyTheChunk(kvp.Value.m_ClodChunk.m_ChunkIndex, false);
#else
                CSClodMgr.DirtyTheChunk(kvp.Value.m_ClodChunk.m_ChunkIndex, false);
#endif
                break;
            }
        }

        m_FarmWorkMap.Clear();
    }
Beispiel #3
0
    void RPC_S2C_CLN_PlantWater(uLink.BitStream stream, uLink.NetworkMessageInfo info)
    {
        /*int farmId = */ stream.Read <int>();
        FarmPlantLogic plant = stream.Read <FarmPlantLogic>();

        CSMgCreator creator = MultiColonyManager.GetCreator(TeamId);

        if (creator == null || creator.Assembly == null)
        {
            return;
        }
        CSFarm farm = creator.Assembly.Farm;

        farm.RestoreWateringPlant(plant);
    }