Пример #1
0
        public static MapElement GetMapElement(IRes res, ElementsInMap elementT, Map theMap,
                                               bool clickedImage, ElementMovements movements,
                                               EventHandler @event, bool isBackground = false)
        {
            MapElement element = new MapElement(res, theMap, movements, @event, isBackground)
            {
                ElementInMapType    = elementT,
                DontUseClickedImage = !clickedImage,
            };

            element.SetPictureName(element.ElementInMapType.ToString());
            element.SetPicture();
            element.SetSrcRectangle();
            return(element);
        }
Пример #2
0
        private void OnResLoadFinish(bool result, IRes res)
        {
            --mLoadingCount;

            DoLoadAsync();
            if (mLoadingCount == 0)
            {
                RemoveAllCallbacks(false);

                if (mListener != null)
                {
                    mListener();
                }
            }
        }
Пример #3
0
        private void OnResLoadFinish(bool result, IRes res)
        {
            --mLoadingCount;

            res.AcceptLoaderStrategyAsync(this, mStrategy);
            DoLoadAsync();
            if (mLoadingCount == 0)
            {
                RemoveAllCallbacks(false);

                mListener.InvokeGracefully();

                mStrategy.OnAllTaskFinish(this);
            }
        }
Пример #4
0
        public UnityEngine.Object LoadSync(string name)
        {
            Add2Load(name);
            LoadSync();

            IRes res = ResMgr.Instance.GetRes(name, false);

            if (res == null)
            {
                Log.e("Failed to Load Res:" + name);
                return(null);
            }

            return(res.Asset);
        }
Пример #5
0
        public bool Add2Load(string name, Action <bool, IRes> listener = null, bool lastOrder = true)
        {
            if (string.IsNullOrEmpty(name))
            {
                Log.e("Res Name Is Null.");
                return(false);
            }

            IRes res = FindResInArray(m_ResArray, name);

            if (res != null)
            {
                if (listener != null)
                {
                    AddResListenerReward(res, listener);
                    res.RegisteResListener(listener);
                }
                return(true);
            }

            res = ResMgr.S.GetRes(name, true);

            if (res == null)
            {
                return(false);
            }

            if (listener != null)
            {
                AddResListenerReward(res, listener);
                res.RegisteResListener(listener);
            }

            //无论该资源是否加载完成,都需要添加对该资源依赖的引用
            string[] depends = res.GetDependResList();

            if (depends != null)
            {
                for (int i = 0; i < depends.Length; ++i)
                {
                    Add2Load(depends[i]);
                }
            }

            AddRes2Array(res, lastOrder);

            return(true);
        }
Пример #6
0
        public void Add2Load(string ownerBundle, string assetName, Action <bool, IRes> listener = null,
                             bool lastOrder = true)
        {
            if (string.IsNullOrEmpty(ownerBundle) || string.IsNullOrEmpty(assetName))
            {
                Log.E("Res Name Or Bundle Name Is Null.");
                return;
            }

            IRes res = FindResInArray(mResArray, ownerBundle, assetName);

            if (res != null)
            {
                if (listener != null)
                {
                    AddResListenerReward(res, listener);
                    res.RegisteResListener(listener);
                }

                return;
            }

            res = ResMgr.Instance.GetRes(ownerBundle, assetName, true);

            if (res == null)
            {
                return;
            }

            if (listener != null)
            {
                AddResListenerReward(res, listener);
                res.RegisteResListener(listener);
            }

            //无论该资源是否加载完成,都需要添加对该资源依赖的引用
            string[] depends = res.GetDependResList();

            if (depends != null)
            {
                for (int i = 0; i < depends.Length; ++i)
                {
                    Add2Load(depends[i]);
                }
            }

            AddRes2Array(res, lastOrder);
        }
Пример #7
0
        //加载loader持有的res对象内部的具体资源
        private void LoadWaitLoadListSync()
        {
            while (m_WaitLoadList.Count > 0)
            {
                IRes first = m_WaitLoadList.First.Value;
                --m_LoadingCount;
                m_WaitLoadList.RemoveFirst();

                if (first == null)
                {
                    return;
                }

                first.LoadSync();
            }
        }
Пример #8
0
            public MapSigner(IRes myRes, uint currentStatus,
                             LabelControlSpecies myDesigningMode = LabelControlSpecies.MapDisplayer) :
                base(myRes, myDesigningMode)
            {
                CurrentStatus = currentStatus;
                switch (DesigningMode)
                {
                case LabelControlSpecies.MapSigner:
                    Initialize_ForMapSigner_Component();
                    break;

                case LabelControlSpecies.MapDisplayer:
                    Initialize_ForMapDisplayer_Component();
                    break;
                }
            }
Пример #9
0
        private void OnDestroy()
        {
            if (m_Res != null)
            {
                m_Res.UnRegisteResListener(OnResLoadFinish);
                m_Res.SubRef();
                m_Res = null;
            }

            if (m_PreRes != null)
            {
                m_PreRes.UnRegisteResListener(OnResLoadFinish);
                m_PreRes.SubRef();
                m_PreRes = null;
            }
        }
Пример #10
0
        public static MapElement GetMapElement(IRes res, GameIcon elementIcon, Map theMap,
                                               bool clickedImage = false)
        {
            MapElement element = new MapElement(res, theMap, elementIcon)
            {
                DontUseClickedImage = !clickedImage,
            };

            element.SetPicture();
            if (clickedImage)
            {
                element.SetClickedPicture();
            }
            element.SetSrcRectangle();
            return(element);
        }
Пример #11
0
        private void OnShaderLoadFinish(bool result, IRes res)
        {
            if (!result)
            {
                return;
            }

            Shader shader = res.asset as Shader;

            if (shader == null)
            {
                return;
            }

            AddShader(shader);
        }
Пример #12
0
 //---------------------------------------------------------
 #region Constructor Region
 /// <summary>
 /// this is for: <see cref="LabelControlSpecies.RankingPlayerLabel"/>
 /// </summary>
 /// <param name="myRes"></param>
 /// <param name="backLabel"></param>
 /// <param name="isTitle"></param>
 public RankingPlayerLabel(IRes myRes, RankingBackGroundLabel backLabel,
                           bool isTitle = false) :
     base(myRes, LabelControlSpecies.RankingPlayerLabel)
 {
     IsTitleRanking  = isTitle;
     BackgroundLabel = backLabel;
     if (!isTitle)
     {
         Movements = ElementMovements.VerticalMovements;
     }
     else
     {
         Movements = ElementMovements.NoMovements;
     }
     Initialize_ForRankingPlayer_Component();
 }
Пример #13
0
        public PetSkill Create(int skillId, IRes resource, NebulaObject source)
        {
            var skillData = resource.petSkills.GetSkill(skillId);

            if (skillData == null)
            {
                s_Log.InfoFormat("pet skill = {0} not founded".Color(LogColor.orange), skillId);
                return(null);
            }

            switch (skillData.id)
            {
            case 1:
                return(new AccelerationPetSkill(skillData, source));

            case 2:
                return(new DecreaseInputDamageSkill(skillData, source));

            case 3:
                return(new DecreasOwnerSubscriberDamageSkill(skillData, source));

            case 4:
            case 5:
                return(new ReflectionDamageSkill(skillData, source));

            case 6:
                return(new RestoreHpPetSkill(skillData, source));

            case 7:
                return(new AdditionalDamagePetSkill(skillData, source));

            case 8:
                return(new AbsorbDamagePetSkill(skillData, source));

            case 9:
                return(new IncreaseEnergyCostPetSkill(skillData, source));

            case 10:
                return(new VampirismPetSkill(skillData, source));

            case 11:
                return(new ResurrectGroupMemberPetSkill(skillData, source));

            default:
                return(null);
            }
        }
Пример #14
0
            public ModuleDropParams(IRes resource, string inTemplateID, int level, Difficulty difficulty,
                                    Dictionary <string, int> incraftingMaterials, ObjectColor color,
                                    string set)
            {
                this.resource          = resource;
                this.level             = level;
                this.difficulty        = difficulty;
                this.craftingMaterials = incraftingMaterials;
                templateID             = inTemplateID;
                useTemplateID          = true;

                moduleInfo = resource.ModuleTemplates.Module(templateID);
                slotType   = moduleInfo.Type;
                workshop   = moduleInfo.Workshop;
                this.color = color;
                this.set   = set;
            }
Пример #15
0
        public static IRes Create()
        {
            IRes result = null;
            var  config = ConfigBase.Load <RuntimeConfig>();

            switch (config.LoadType)
            {
            case RuntimeConfig.ResType.Resources:
                result = new ResourcesRes();
                break;

            case RuntimeConfig.ResType.Addressable:
                result = new AddressableRes();
                break;
            }
            return(result);
        }
Пример #16
0
        public IRes GetRes(string name)
        {
            IRes res = null;

            if (m_ResMap.TryGetValue(name, out res))
            {
                return(res);
            }

            res = ResFactory.Create(name);
            if (res != null)
            {
                m_ResMap.Add(name, res);
                m_ResList.Add(res);
            }
            return(res);
        }
Пример #17
0
        protected void OnMeshLoadResult(bool result, IRes res)
        {
            if (result)
            {
                MeshHolder holder = res.asset as MeshHolder;
                if (holder != null)
                {
                    mesh = holder.Find(m_MeshName);
                }
            }

            if (m_PreLoader != null)
            {
                m_PreLoader.Recycle2Cache();
                m_PreLoader = null;
            }
        }
 private void OnFinish(bool result, IRes res)
 {
     if (result)
     {
         completedCount++;
         if (completedCount >= resList.Count)
         {
             onAllCompleted?.Invoke(Name);
         }
     }
     else
     {
         if (res.State != ResState.Cancel)
         {
             DownloadManager.Instance.AddToRetry(res);
         }
     }
 }
Пример #19
0
 private void ParseInfoJson(bool result, IRes res)
 {
     //UnityEngine.Debug.Log($"{InfoUrl} -> {result}");
     if (result)
     {
         string   str      = Encoding.UTF8.GetString(res.Datas);
         JsonData jsonData = JsonParser.GetData(str);
         currNode = new TreeNode <NodeData>(new NodeData(infoName));
         jsonTree = new GenericTree <NodeData>(currNode);
         TraverseCreate(jsonData, currNode);
         Check(currNode);
         view.ShowJsonTree(true);
         ShowNodeDirItems();
         sView.Show(false);
         mask.SetActive(false);
         WindowAnimation.Instance.ShowDownloadWindow(null);
     }
 }
Пример #20
0
        //-------------------------------------------------
        #region Constructors Region
        /// <summary>
        /// Create a new instance of <see cref="ChatElement"/>.
        /// </summary>
        /// <param name="myRes">
        /// the woto resources component manager object.
        /// it will be from game client of the game.
        /// </param>
        private ChatElement(IRes myRes,
                            GameControls.ChatBackgroundLabel chatBackgroundLabel,
                            ChatMessage message) :
            base(myRes)
        {
            ChatBackgroundLabel = chatBackgroundLabel;
            Message             = message;
            IsMe = Message.SenderName == ThereIsServer.GameObjects.MyProfile.PlayerName;

            /* WARNING:
             * about StartPoint of the element:
             * the start point should be default, then you should set it
             * in the background label, considering other elements'
             * start point.
             */
            StartPointF = default;
            InitializeComponent();
        }
Пример #21
0
        public T LoadAsset <T>(string ownerBundle, string assetName) where T : UnityEngine.Object
        {
            ownerBundle = ownerBundle.ToLower();
            if (!ownerBundle.EndsWith("_project_putaogame"))
            {
                ownerBundle += "_project_putaogame";
            }
            Add2Load(ownerBundle.ToLower(), assetName.ToLower());
            LoadSync();

            IRes res = ResMgr.Instance.GetRes(ownerBundle.ToLower(), assetName.ToLower(), false);

            if (res == null)
            {
                Log.E("Failed to Load Res:" + ownerBundle + assetName);
                return(null);
            }
            return(res.Asset as T);
        }
Пример #22
0
        public WorkhouseStation SourceObject(IRes resourcse)
        {
            WorkhouseStation station = new WorkhouseStation();

            //if(this.Hold != null ) {
            //    station.SetHold(this.Hold);
            //}

            if (this.StationInventoryItems == null)
            {
                this.StationInventoryItems = new List <InventoryItemDocumentElement>();
            }
            ServerInventory serverInventory = new ServerInventory(this.StationInventoryMaxSlots);

            serverInventory.SetItems(DatabaseUtils.TransformForInventory(this.StationInventoryItems));
            station.SetInventory(serverInventory);
            station.SetPetSchemeAdded(petSchemeAdded);
            return(station);
        }
Пример #23
0
        private void OnResUpdateFinish(bool result, IRes res)
        {
            ABUnit unit = null;

            if (m_UpdateUnitMap.TryGetValue(res.name, out unit))
            {
                if (!result)
                {
                    Log.e("Update Res Failed:" + res.name);
                    m_UpdateFailedList.Add(unit);
                    return;
                }

                m_AlreadyUpdateFileSize += unit.fileSize;
                ++m_AlreadyUpdateFileCount;

                m_Record.AddRecord(unit.abName, unit.md5, unit.fileSize, unit.buildTime);
            }
        }
Пример #24
0
        private void OnResLoadFinish(bool result, IRes res)
        {
            if (!result)
            {
                Release();
                return;
            }

            mAudioClip = res.Asset as AudioClip;

            if (mAudioClip == null)
            {
                Log.E("Asset Is Invalid AudioClip:" + mName);
                Release();
                return;
            }

            PlayAudioClip();
        }
Пример #25
0
 public ModuleDropParams(
     IRes resource,
     Workshop inWorkshop,
     ShipModelSlotType inSlotType,
     int level,
     Difficulty difficulty,
     Dictionary <string, int> incraftingMaterials,
     ObjectColor color,
     string set)
 {
     this.resource          = resource;
     this.level             = level;
     this.difficulty        = difficulty;
     this.craftingMaterials = incraftingMaterials;
     workshop   = inWorkshop;
     slotType   = inSlotType;
     this.color = color;
     this.set   = set;
 }
Пример #26
0
        public AsyncOperation LoadAsync(string sceneName, LoadSceneMode loadSceneMode = LoadSceneMode.Single, System.Action listener = null)
        {
            mListener = listener;

            var resSearchRule = ResSearchKeys.Allocate(sceneName);

            if (ResFactory.AssetBundleSceneResCreator.Match(resSearchRule))
            {
                //加载的为场景
                IRes res = ResFactory.AssetBundleSceneResCreator.Create(resSearchRule);
#if UNITY_EDITOR
                if (FromUnityToDll.Setting.SimulationMode)
                {
                    string path = UnityEditor.AssetDatabase.GetAssetPathsFromAssetBundle((res as AssetBundleSceneRes).AssetBundleName)[0];
                    if (!path.IsNullOrEmpty())
                    {
                        LoadSceneParameters sceneParameters = new LoadSceneParameters();
                        sceneParameters.loadSceneMode = loadSceneMode;
                        tempDepends.Clear();
                        return(UnityEditor.SceneManagement.EditorSceneManager.LoadSceneAsyncInPlayMode(path, sceneParameters));
                    }
                }
                else
                {
                    DoLoadAsync();
                    tempDepends.Clear();
                    return(SceneManager.LoadSceneAsync(sceneName, loadSceneMode));
                }
#else
                DoLoadAsync();
                tempDepends.Clear();
                return(SceneManager.LoadSceneAsync(sceneName, loadSceneMode));
#endif
            }
            else
            {
                Log.E("场景名称错误!请检查名称是否正确或资源是否被标记!AssetName:" + sceneName);
            }


            return(null);
        }
Пример #27
0
            //---------------------------------------------
            #region Constructor Region
            public InfoLabel(IRes myRes,
                             SandBoxBase father, InfoLabels iLMode) :
                base(myRes, LabelControlSpecies.InfoLabel, father, true)
            {
                InfoLabelMode = iLMode;
                switch (InfoLabelMode)
                {
                case InfoLabels.MDKSIL:
                    DesigningForInfoLabelMDKSIL();
                    break;

                case InfoLabels.KSKISBIL:
                    DesigningForInfoLabelKSKISBIL();
                    break;

                default:
                    // None :||
                    break;
                }
            }
Пример #28
0
 public Hashtable GetInfo(IRes res)
 {
     return(new Hashtable {
         { (int)SPC.Active, active },
         { (int)SPC.Skills, GetSkillsInfo() },
         { (int)SPC.Color, (int)color },
         { (int)SPC.Exp, exp },
         { (int)SPC.Id, id },
         { (int)SPC.PassiveSkill, passiveSkill },
         { (int)SPC.Type, type },
         { (int)SPC.Damage, Damage(res.petParameters.damage, res.Leveling) },
         { (int)SPC.MaxHealth, Hp(res.petParameters.hp, res.Leveling) },
         { (int)SPC.OptimalDistance, OptimalDistance(res.petParameters.od, res.Leveling) },
         { (int)SPC.Cooldown, Cooldown(res.petParameters.cooldown) },
         { (int)SPC.DamageType, (int)(byte)damageType },
         { (int)SPC.KilledTime, killedTime },
         { (int)SPC.Mastery, mastery },
         { (int)SPC.CurrentTime, CommonUtils.SecondsFrom1970() }
     });
 }
Пример #29
0
        public override ServerInventoryItem Roll(IRes resource, int level, Workshop workshop)
        {
            DropManager dropManager = DropManager.Get(resource);
            var         cl          = resource.colorLists.GetList(colorList);
            ObjectColor color       = cl.Roll();

            WeaponDropper.WeaponDropParams dropParams = new WeaponDropper.WeaponDropParams(
                resource,
                level,
                workshop,
                WeaponDamageType.damage,
                Difficulty.none
                );
            ColorInfo colorInfo = resource.ColorRes.Color(ColoredObjectType.Weapon, color);

            WeaponDropper weaponDropper = dropManager.GetWeaponDropper(dropParams);
            WeaponObject  weapon        = weaponDropper.DropWeapon(colorInfo);

            return(new ServerInventoryItem(weapon, 1));
        }
Пример #30
0
        private void OnResLoadFinish(bool result, IRes res)
        {
            --m_LoadingCount;

            res.AcceptLoaderStrategyAsync(this, m_Strategy);
            DoLoadAsync();
            if (m_LoadingCount == 0)
            {
                RemoveAllCallbacks(false);

                ResMgr.Instance.timeDebugger.End();
                ResMgr.Instance.timeDebugger.Dump(-1);
                if (m_Listener != null)
                {
                    m_Listener();
                }

                m_Strategy.OnAllTaskFinish(this);
            }
        }