Example #1
0
    void _writeCSObjectData(BinaryWriter w, CSObjectData csod)
    {
        w.Write(csod.ID);
        w.Write(csod.m_Name);
        w.Write(csod.m_Position.x);
        w.Write(csod.m_Position.y);
        w.Write(csod.m_Position.z);
        w.Write(csod.m_Durability);
        w.Write(csod.m_CurRepairTime);
        w.Write(csod.m_RepairTime);
        w.Write(csod.m_RepairValue);
        w.Write(csod.m_CurDeleteTime);
        w.Write(csod.m_DeleteTime);
        w.Write(csod.m_Bounds.center.x);
        w.Write(csod.m_Bounds.center.y);
        w.Write(csod.m_Bounds.center.z);
        w.Write(csod.m_Bounds.size.x);
        w.Write(csod.m_Bounds.size.y);
        w.Write(csod.m_Bounds.size.z);

        w.Write(csod.m_DeleteGetsItem.Count);
        foreach (KeyValuePair <int, int> kvp in csod.m_DeleteGetsItem)
        {
            w.Write(kvp.Key);
            w.Write(kvp.Value);
        }
    }
Example #2
0
    void Start()
    {
        // Create colony object if has
        Dictionary <int, CSDefaultData> objRecords = m_DataInst.GetObjectRecords();

        foreach (CSDefaultData defData in objRecords.Values)
        {
            CSObjectData objData = defData as CSObjectData;

            if (objData != null)
            {
                if (!objData.m_Alive)
                {
                    continue;
                }
                CSEntityAttr attr = new CSEntityAttr();
                attr.m_InstanceId = objData.ID;
                attr.m_Type       = objData.dType;
                attr.m_Pos        = objData.m_Position;
                attr.m_protoId    = objData.ItemID;
                CSEntity cse = null;
                CreateEntity(attr, out cse);
            }
        }
    }
Example #3
0
    void _readCSObjectData(BinaryReader r, CSObjectData csod, int version)
    {
        switch (version)
        {
        case 0x0103:
        {
            csod.ID              = r.ReadInt32();
            csod.m_Name          = r.ReadString();
            csod.m_Position      = new Vector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle());
            csod.m_Durability    = r.ReadSingle();
            csod.m_CurRepairTime = r.ReadSingle();
            csod.m_RepairTime    = r.ReadSingle();
            csod.m_RepairValue   = r.ReadSingle();
            csod.m_CurDeleteTime = r.ReadSingle();
            csod.m_DeleteTime    = r.ReadSingle();
            csod.m_Bounds        = new Bounds(new Vector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle()),
                                              new Vector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle()));

            int cnt = r.ReadInt32();
            for (int i = 0; i < cnt; i++)
            {
                csod.m_DeleteGetsItem.Add(r.ReadInt32(), r.ReadInt32());
            }
        } break;

        default:
        {
            csod.ID              = r.ReadInt32();
            csod.m_Name          = r.ReadString();
            csod.m_Position      = new Vector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle());
            csod.m_Durability    = r.ReadSingle();
            csod.m_CurRepairTime = r.ReadSingle();
            csod.m_RepairTime    = r.ReadSingle();
            csod.m_RepairValue   = r.ReadSingle();
            csod.m_CurDeleteTime = r.ReadSingle();
            csod.m_DeleteTime    = r.ReadSingle();

            int cnt = r.ReadInt32();
            for (int i = 0; i < cnt; i++)
            {
                csod.m_DeleteGetsItem.Add(r.ReadInt32(), r.ReadInt32());
            }
        } break;
        }
    }
Example #4
0
    public void AddDataToCreator(ColonyNetwork colonyNetwork, int teamNum)
    {
        CSMgCreator creator;

        if (teamNum == BaseNetwork.MainPlayer.TeamId)
        {
            creator = CSMain.s_MgCreator;
        }
        else
        {
            creator = CSMain.Instance.MultiGetOtherCreator(teamNum) as CSMgCreator;
        }
        creator.teamNum = teamNum;
        CSObjectData objData = colonyNetwork._ColonyObj._RecordData as CSObjectData;

        if (objData != null
            //&& objData.ID != CSConst.etID_Farm//--to do:?
            )
        {
            //if (!objData.m_Alive)
            //    return;

            CSEntityAttr attr = new CSEntityAttr();
            attr.m_InstanceId = objData.ID;
            attr.m_Type       = objData.dType;
            attr.m_Pos        = objData.m_Position;
            attr.m_protoId    = objData.ItemID;
            attr.m_Bound      = objData.m_Bounds;
            attr.m_ColonyBase = colonyNetwork._ColonyObj;
            CSEntity cse = creator._createEntity(attr);
            colonyNetwork.m_Entity = cse;

            if (objData.dType == CSConst.dtAssembly)
            {
                CSAssembly csa = cse as CSAssembly;
                csa.ChangeState();
            }
            else
            {
                CSCommon csc = cse as CSCommon;
                if (creator.Assembly != null)
                {
                    creator.Assembly.AttachCommonEntity(csc);
                }


                if (cse as CSDwellings != null)
                {
                    cse._Net.RPCServer(EPacketType.PT_CL_DWL_SyncNpc);
                }

                foreach (CSPersonnel csp in creator.GetNpcs())
                {
                    if (csp.Data.m_WorkRoomID == attr.m_InstanceId && csp.WorkRoom != csc)
                    {
                        csp.WorkRoom = csc;
                    }
                }
            }
            //init worker



            creator.ExecuteEvent(CSConst.cetAddEntity, cse);
        }
    }
Example #5
0
    //  <CETC> Assign Record Data
    public bool AssignData(int id, int type, ref CSDefaultData refData)
    {
        // Personnel
        if (type == CSConst.dtPersonnel)
        {
            if (m_PersonnelDatas.ContainsKey(id))
            {
                Debug.Log("The Personnel Data ID [" + id.ToString() + "] is exist.");
                refData = m_PersonnelDatas[id];
                return(false);
            }
            else
            {
                refData    = new CSPersonnelData();
                refData.ID = id;
                m_PersonnelDatas.Add(id, refData as CSPersonnelData);
                return(true);
            }
        }
        // Object
        else
        {
            if (m_ObjectDatas.ContainsKey(id))
            {
                Debug.Log("The Object data ID [" + id.ToString() + "] is exist.");
                refData = m_ObjectDatas[id];
                return(false);
            }
            else
            {
                switch (type)
                {
                case CSConst.dtAssembly:
                    refData = new CSAssemblyData();
                    break;

                case CSConst.dtStorage:
                    refData = new CSStorageData();
                    break;

                case CSConst.dtEngineer:
                    refData = new CSEngineerData();
                    break;

                case CSConst.dtEnhance:
                    refData = new CSEnhanceData();
                    break;

                case CSConst.dtRepair:
                    refData = new CSRepairData();
                    break;

                case CSConst.dtRecyle:
                    refData = new CSRecycleData();
                    break;

                case CSConst.dtppCoal:
                    refData = new CSPPCoalData();
                    break;

                case CSConst.dtDwelling:
                    refData = new CSDwellingsData();
                    break;

                case CSConst.dtFactory:
                    refData = new CSFactoryData();
                    break;

                case CSConst.dtProcessing:
                    refData = new CSProcessingData();
                    break;

                default:
                    //refData = new CSDefaultData();
                    refData = new CSObjectData();
                    break;
                }

                refData.ID = id;
                m_ObjectDatas.Add(id, refData as CSObjectData);
                return(true);
            }
        }
    }
Example #6
0
    // <CETC> Import type Data
    public void Import(byte[] buffer)
    {
        if (buffer == null)
        {
            return;
        }
        if (buffer.Length < 8)
        {
            return;
        }

        MemoryStream ms      = new MemoryStream(buffer);
        BinaryReader r       = new BinaryReader(ms);
        int          version = r.ReadInt32();

        if (VERSION != version)
        {
            Debug.LogWarning("The version of ColonyrecordMgr is newer than the record.");
        }

        switch (version)
        {
            #region Version_0x0101
        case 0x0101:
        {
            int rcnt = r.ReadInt32();

            for (int i = 0; i < rcnt; i++)
            {
                CSObjectData csdd = null;
                int          type = r.ReadInt32();
                switch (type)
                {
                case CSConst.dtAssembly:
                {
                    csdd = new CSAssemblyData();
                    CSAssemblyData cssa = csdd as CSAssemblyData;
                    _readCSObjectData(r, cssa, version);

                    cssa.m_Level          = r.ReadInt32();
                    cssa.m_UpgradeTime    = r.ReadSingle();
                    cssa.m_CurUpgradeTime = r.ReadSingle();
                } break;

                case CSConst.dtppCoal:
                {
                    csdd = new CSPPCoalData();
                    CSPPCoalData csppc = csdd as CSPPCoalData;
                    _readCSObjectData(r, csppc, version);

                    csppc.m_CurWorkedTime = r.ReadSingle();
                    csppc.m_WorkedTime    = r.ReadSingle();
                } break;

                case CSConst.dtStorage:
                {
                    csdd = new CSStorageData();
                    CSStorageData cssd = csdd as CSStorageData;
                    _readCSObjectData(r, cssd, version);

                    int itemCnt = r.ReadInt32();
                    for (int j = 0; j < itemCnt; j++)
                    {
                        cssd.m_Items.Add(r.ReadInt32(), r.ReadInt32());
                    }
                } break;

                case CSConst.dtEngineer:
                {
                    csdd = new CSEngineerData();
                    CSEngineerData csed = csdd as CSEngineerData;
                    _readCSObjectData(r, csed, version);

                    csed.m_EnhanceItemID  = r.ReadInt32();
                    csed.m_CurEnhanceTime = r.ReadSingle();
                    csed.m_EnhanceTime    = r.ReadSingle();
                    csed.m_PatchItemID    = r.ReadInt32();
                    csed.m_CurPatchTime   = r.ReadSingle();
                    csed.m_PatchTime      = r.ReadSingle();
                    csed.m_RecycleItemID  = r.ReadInt32();
                    csed.m_CurRecycleTime = r.ReadSingle();
                    csed.m_RecycleTime    = r.ReadSingle();
                } break;

                case CSConst.dtEnhance:
                {
                    csdd = new CSEnhanceData();
                    CSEnhanceData cseh = csdd as CSEnhanceData;
                    _readCSObjectData(r, cseh, version);

                    cseh.m_ObjID   = r.ReadInt32();
                    cseh.m_CurTime = r.ReadSingle();
                    cseh.m_Time    = r.ReadSingle();
                } break;

                case CSConst.dtRepair:
                {
                    csdd = new CSRepairData();
                    CSRepairData csrd = csdd as CSRepairData;
                    _readCSObjectData(r, csrd, version);

                    csrd.m_ObjID   = r.ReadInt32();
                    csrd.m_CurTime = r.ReadSingle();
                    csrd.m_Time    = r.ReadSingle();
                } break;

                case CSConst.dtRecyle:
                {
                    csdd = new CSRecycleData();
                    CSRecycleData csrd = csdd as CSRecycleData;
                    _readCSObjectData(r, csrd, version);

                    csrd.m_ObjID   = r.ReadInt32();
                    csrd.m_CurTime = r.ReadSingle();
                    csrd.m_Time    = r.ReadSingle();
                } break;

                case CSConst.dtDwelling:
                {
                    csdd = new CSDwellingsData();
                    CSDwellingsData csdw = csdd as CSDwellingsData;
                    _readCSObjectData(r, csdw, version);
                } break;

                default:
                    csdd = new CSObjectData();
                    break;
                }

                m_ObjectDatas.Add(csdd.ID, csdd);
            }

            rcnt = r.ReadInt32();
            for (int i = 0; i < rcnt; i++)
            {
                CSPersonnelData cspd = new CSPersonnelData();
                cspd.ID            = r.ReadInt32();
                cspd.dType         = r.ReadInt32();
                cspd.m_State       = r.ReadInt32();
                cspd.m_DwellingsID = r.ReadInt32();
                cspd.m_WorkRoomID  = r.ReadInt32();

                m_PersonnelDatas.Add(cspd.ID, cspd);
            }
        } break;
            #endregion

        case 0x0102:
        case 0x0103:
        {
            int rcnt = r.ReadInt32();

            for (int i = 0; i < rcnt; i++)
            {
                CSObjectData csdd = null;
                int          type = r.ReadInt32();
                switch (type)
                {
                case CSConst.dtAssembly:
                {
                    csdd = new CSAssemblyData();
                    CSAssemblyData cssa = csdd as CSAssemblyData;
                    _readCSObjectData(r, cssa, version);

                    cssa.m_Level          = r.ReadInt32();
                    cssa.m_UpgradeTime    = r.ReadSingle();
                    cssa.m_CurUpgradeTime = r.ReadSingle();
                } break;

                case CSConst.dtppCoal:
                {
                    csdd = new CSPPCoalData();
                    CSPPCoalData csppc = csdd as CSPPCoalData;
                    _readCSObjectData(r, csppc, version);

                    int cnt = r.ReadInt32();
                    for (int j = 0; j < cnt; j++)
                    {
                        csppc.m_ChargingItems.Add(r.ReadInt32(), r.ReadInt32());
                    }
                    csppc.m_CurWorkedTime = r.ReadSingle();
                    csppc.m_WorkedTime    = r.ReadSingle();
                } break;

                case CSConst.dtStorage:
                {
                    csdd = new CSStorageData();
                    CSStorageData cssd = csdd as CSStorageData;
                    _readCSObjectData(r, cssd, version);

                    int itemCnt = r.ReadInt32();
                    for (int j = 0; j < itemCnt; j++)
                    {
                        cssd.m_Items.Add(r.ReadInt32(), r.ReadInt32());
                    }
                } break;

                case CSConst.dtEngineer:
                {
                    csdd = new CSEngineerData();
                    CSEngineerData csed = csdd as CSEngineerData;
                    _readCSObjectData(r, csed, version);

                    csed.m_EnhanceItemID  = r.ReadInt32();
                    csed.m_CurEnhanceTime = r.ReadSingle();
                    csed.m_EnhanceTime    = r.ReadSingle();
                    csed.m_PatchItemID    = r.ReadInt32();
                    csed.m_CurPatchTime   = r.ReadSingle();
                    csed.m_PatchTime      = r.ReadSingle();
                    csed.m_RecycleItemID  = r.ReadInt32();
                    csed.m_CurRecycleTime = r.ReadSingle();
                    csed.m_RecycleTime    = r.ReadSingle();
                } break;

                case CSConst.dtEnhance:
                {
                    csdd = new CSEnhanceData();
                    CSEnhanceData cseh = csdd as CSEnhanceData;
                    _readCSObjectData(r, cseh, version);

                    cseh.m_ObjID   = r.ReadInt32();
                    cseh.m_CurTime = r.ReadSingle();
                    cseh.m_Time    = r.ReadSingle();
                } break;

                case CSConst.dtRepair:
                {
                    csdd = new CSRepairData();
                    CSRepairData csrd = csdd as CSRepairData;
                    _readCSObjectData(r, csrd, version);

                    csrd.m_ObjID   = r.ReadInt32();
                    csrd.m_CurTime = r.ReadSingle();
                    csrd.m_Time    = r.ReadSingle();
                } break;

                case CSConst.dtRecyle:
                {
                    csdd = new CSRecycleData();
                    CSRecycleData csrd = csdd as CSRecycleData;
                    _readCSObjectData(r, csrd, version);

                    csrd.m_ObjID   = r.ReadInt32();
                    csrd.m_CurTime = r.ReadSingle();
                    csrd.m_Time    = r.ReadSingle();
                } break;

                case CSConst.dtDwelling:
                {
                    csdd = new CSDwellingsData();
                    CSDwellingsData csdw = csdd as CSDwellingsData;
                    _readCSObjectData(r, csdw, version);
                } break;

                default:
                    csdd = new CSObjectData();
                    break;
                }

                m_ObjectDatas.Add(csdd.ID, csdd);
            }

            rcnt = r.ReadInt32();
            for (int i = 0; i < rcnt; i++)
            {
                CSPersonnelData cspd = new CSPersonnelData();
                cspd.ID            = r.ReadInt32();
                cspd.dType         = r.ReadInt32();
                cspd.m_State       = r.ReadInt32();
                cspd.m_DwellingsID = r.ReadInt32();
                cspd.m_WorkRoomID  = r.ReadInt32();

                m_PersonnelDatas.Add(cspd.ID, cspd);
            }
        } break;

        default:
            break;
        }
    }
Example #7
0
    // Use this for initialization
    void Start()
    {
        if (!GameConfig.IsMultiMode)
        {
            // Create Simulator object
//			GameObject go = new GameObject("Simulator Mgr");
//			m_SimulatorMgr = go.gameObject.AddComponent<CSSimulatorMgr>();
//			m_SimulatorMgr.transform.parent = transform;
//			m_SimulatorMgr.Init(ID);


            // Create colony object if has
            Dictionary <int, CSDefaultData> objRecords = m_DataInst.GetObjectRecords();
            foreach (CSDefaultData defData in objRecords.Values)
            {
                CSObjectData objData = defData as CSObjectData;

                if (objData != null && objData.ID != CSConst.etID_Farm)
                {
                    if (!objData.m_Alive)
                    {
                        continue;
                    }

                    CSEntityAttr attr = new CSEntityAttr();
                    attr.m_InstanceId = objData.ID;
                    attr.m_Type       = objData.dType;
                    attr.m_Pos        = objData.m_Position;
                    attr.m_protoId    = objData.ItemID;
                    attr.m_Bound      = objData.m_Bounds;
                    CSEntity cse = _createEntity(attr);

                    if (objData.dType == CSConst.dtAssembly)
                    {
                        CSAssembly csa = cse as CSAssembly;
                        csa.ChangeState();
                    }
                    else
                    {
                        CSCommon csc = cse as CSCommon;
                        if (m_Assembly != null)
                        {
                            m_Assembly.AttachCommonEntity(csc);
                        }
                    }

                    // Create Simulator First
//					CSSimulator sim = null;
//					bool isNew = m_SimulatorMgr.CreateSimulator(objData.ID, out sim);
//					if (isNew)
//					{
//						CSSimulatorAttr cssAttr = new CSSimulatorAttr();
//						cssAttr.m_Hp = cse.m_Info.m_Durability / 0.6f;
//
//						sim.Init(cssAttr);
//					}
//
//					sim.Hp = sim.MaxHp * cse.DuraPercent;
//					sim.Position = cse.Position;
//					sim.noticeHpChanged = cse.OnLifeChanged;
                }
            }

            //delay load colony npc
            StartCoroutine(InitColonyNpc());
        }
        else
        {
            Debug.Log("<color=red>Creator start! Desc:" + gameObject.name + "</color>");
        }
    }