Esempio n. 1
0
    // <CETC> Create Non-Managed Entity
    public override int CreateEntity(CSEntityAttr attr, out CSEntity outEnti)
    {
        outEnti = null;

        if (attr.m_Type == CSConst.etAssembly)
        {
            Debug.LogWarning("Non-Managed Creator cant create the Assembly Entity.");
            return(CSConst.rrtUnkown);
        }

        if (m_CommonEntities.ContainsKey(attr.m_InstanceId))
        {
            outEnti                  = m_CommonEntities[attr.m_InstanceId];
            outEnti.gameObject       = attr.m_Obj;
            outEnti.Position         = attr.m_Pos;
            outEnti.ItemID           = attr.m_protoId;
            outEnti.BaseData.m_Alive = true;
            return(CSConst.rrtSucceed);
        }

        CSCommon csc = null;

        switch (attr.m_Type)
        {
        case CSConst.etStorage:
            csc = new CSStorage();
            CSStorage css = csc as CSStorage;
            css.m_Info    = CSInfoMgr.m_StorageInfo;
            css.m_Creator = this;
            css.m_Power   = attr.m_Power;
            css.m_Package.ExtendPackage(CSInfoMgr.m_StorageInfo.m_MaxItem, CSInfoMgr.m_StorageInfo.m_MaxEquip, CSInfoMgr.m_StorageInfo.m_MaxRecource, CSInfoMgr.m_StorageInfo.m_MaxArmor);
            break;

        case CSConst.etEnhance:
            csc = new CSEnhance();
            CSEnhance csen = csc as CSEnhance;
            csen.m_Creator = this;
            csen.m_Power   = attr.m_Power;
            csen.m_Info    = CSInfoMgr.m_EnhanceInfo;
            break;

        case CSConst.etRepair:
            csc = new CSRepair();
            CSRepair csr = csc as CSRepair;
            csr.m_Creator = this;
            csr.m_Power   = attr.m_Power;
            csr.m_Info    = CSInfoMgr.m_RepairInfo;
            break;

        case CSConst.etRecyle:
            csc = new CSRecycle();
            CSRecycle csrc = csc as CSRecycle;
            csrc.m_Creator = this;
            csrc.m_Power   = attr.m_Power;
            csrc.m_Info    = CSInfoMgr.m_RecycleInfo;
            break;

        case CSConst.etDwelling:
            csc = new CSDwellings();
            CSDwellings csd = csc as CSDwellings;
            csd.m_Creator = this;
            csd.m_Power   = attr.m_Power;;
            csd.m_Info    = CSInfoMgr.m_DwellingsInfo;
            break;

        case CSConst.etppCoal:
            csc = new CSPPCoal();
            CSPPCoal cscppc = csc as CSPPCoal;
            cscppc.m_Creator   = this;
            cscppc.m_Power     = 10000;
            cscppc.m_RestPower = 10000;
            cscppc.m_Info      = CSInfoMgr.m_ppCoal;
            break;

        case CSConst.etppSolar:
            csc = new CSPPSolar();
            CSPPSolar cspps = csc as CSPPSolar;
            cspps.m_Creator   = this;
            cspps.m_Power     = 10000;
            cspps.m_RestPower = 10000;
            cspps.m_Info      = CSInfoMgr.m_ppCoal;
            break;

        case CSConst.etFactory:
            csc           = new CSFactory();
            csc.m_Creator = this;
            csc.m_Info    = CSInfoMgr.m_FactoryInfo;
            break;

        default:
            break;
        }

        csc.ID = attr.m_InstanceId;
        csc.CreateData();
        csc.gameObject = attr.m_Obj;
        csc.Position   = attr.m_Pos;
        csc.ItemID     = attr.m_protoId;

        outEnti = csc;
        m_CommonEntities.Add(attr.m_InstanceId, csc);
        return(CSConst.rrtSucceed);
    }