コード例 #1
0
ファイル: ControlForBuildCpt.cs プロジェクト: wobushiren79/IL
    /// <summary>
    /// 初始化已经存在的建筑位置
    /// </summary>
    public void InitBuildingExist()
    {
        listBuildingExist.Clear();
        GameDataBean      gameData      = GameDataHandler.Instance.manager.GetGameData();
        List <InnResBean> listFurniture = gameData.GetInnBuildData().GetFurnitureList(buildLayer);

        if (listFurniture != null)
        {
            foreach (InnResBean itemBuilding in listFurniture)
            {
                foreach (Vector3Bean itemPosition in itemBuilding.listPosition)
                {
                    listBuildingExist.Add(TypeConversionUtil.Vector3BeanToVector3(itemPosition));
                }
            }
        }
        listBuildingExistForWall.Clear();
        List <InnResBean> listWall = gameData.GetInnBuildData().GetWallList(buildLayer);

        if (listWall != null)
        {
            foreach (InnResBean itemBuilding in listWall)
            {
                //因为保存的tile是从0,0坐标开始的。而实际判断是以1,0开始所以需要+1
                listBuildingExistForWall.Add(itemBuilding.GetStartPosition() + new Vector3(1, 0, 0));
            }
        }
    }
コード例 #2
0
ファイル: MemcachedCache.cs プロジェクト: weikety/ECode
        protected virtual object ResolveOutput(MemcachedCacheItem item, Type targetType)
        {
            if (item.Flags == FLAG_JSON)
            {
                if (targetType == TYPE_STRING)
                {
                    return(Encoding.UTF8.GetString(item.ValueBytes));
                }

                return(JsonUtil.Deserialize(Encoding.UTF8.GetString(item.ValueBytes), targetType));
            }
            else if (item.Flags == FLAG_STRING)
            {
                return(TypeConversionUtil.ConvertValueIfNecessary(targetType, Encoding.UTF8.GetString(item.ValueBytes)));
            }
            else
            {
                if (targetType == TYPE_STRING)
                {
                    return(item.ValueBytes.ToBase64());
                }

                return(TypeConversionUtil.ConvertValueIfNecessary(targetType, item.ValueBytes));
            }
        }
コード例 #3
0
ファイル: CharacterBodyCpt.cs プロジェクト: wobushiren79/IL
    /// <summary>
    ///  设置眼睛
    /// </summary>
    /// <param name="mouth"></param>
    /// <param name="mouthColor"></param>
    public void SetEye(string eye, Color eyeColor, bool isSave)
    {
        if (srBody == null)
        {
            return;
        }
        Texture texEye = CharacterBodyHandler.Instance.manager.GetEyeTexByName(eye);

        if (eye != null)
        {
            srBody.sharedMaterial.SetTexture("_Eye", texEye);
        }
        srBody.material.SetColor("_ColorEye", eyeColor);
        if (!isSave)
        {
            return;
        }
        //数据保存
        if (characterBodyData == null)
        {
            characterBodyData = new CharacterBodyBean();
        }
        if (eye != null)
        {
            characterBodyData.eye = eye;
        }
        characterBodyData.eyeColor = TypeConversionUtil.ColorToColorBean(eyeColor);
    }
コード例 #4
0
ファイル: MemoryCache.cs プロジェクト: weikety/ECode
        protected virtual object ResolveOutput(MemoryCacheItem item, Type targetType)
        {
            if (item.ValueType == CacheValueType.Json)
            {
                if (targetType == TYPE_STRING)
                {
                    return(item.StringValue);
                }

                return(JsonUtil.Deserialize(item.StringValue, targetType));
            }
            else if (item.ValueType == CacheValueType.Plain)
            {
                return(TypeConversionUtil.ConvertValueIfNecessary(targetType, item.StringValue));
            }
            else if (item.ValueType == CacheValueType.Binary)
            {
                if (targetType == TYPE_STRING)
                {
                    return(item.BinaryValue.ToBase64());
                }

                return(TypeConversionUtil.ConvertValueIfNecessary(targetType, item.BinaryValue));
            }
            else
            {
                throw new Exception();
            }
        }
コード例 #5
0
ファイル: UIBaseRank.cs プロジェクト: wobushiren79/IL
    /// <summary>
    /// 创建本地Item
    /// </summary>
    /// <param name="intScore"></param>
    public void CreateLocalItem(long score)
    {
        int intScore = 0;

        if (score > int.MaxValue)
        {
            intScore = int.MaxValue;
        }
        else
        {
            intScore = (int)score;
        }
        GameDataBean gameData   = GameDataHandler.Instance.manager.GetGameData();
        string       innName    = gameData.GetInnAttributesData().innName;
        string       playerName = gameData.userCharacter.baseInfo.name;
        SteamLeaderboardEntryBean steamLeaderboardEntry = new SteamLeaderboardEntryBean();

        steamLeaderboardEntry.rank  = 0;
        steamLeaderboardEntry.score = intScore;
        try
        {
            //如果steam没有初始化
            steamLeaderboardEntry.steamID = SteamUser.GetSteamID();
        }
        catch
        {
        }

        steamLeaderboardEntry.details = TypeConversionUtil.StringToInt32(innName + "-" + playerName);
        itemRankForLocal.SetData(rankType, steamLeaderboardEntry);
    }
コード例 #6
0
        protected virtual object ResolveOutput(RedisKvCacheItem item, Type targetType)
        {
            if (targetType.IsArray)
            {
                foreach (var t in targetType.GetInterfaces())
                {
                    if (t == typeof(ICollection <byte>))
                    {
                        return(TypeConversionUtil.ConvertValueIfNecessary(targetType, item.ValueBytes.FromBase64()));
                    }
                }

                return(JsonUtil.Deserialize(item.ValueBytes.ToUtf8String(), targetType));
            }

            if (targetType == TYPE_STRING || targetType.IsPrimitive)
            {
                return(TypeConversionUtil.ConvertValueIfNecessary(targetType, Encoding.UTF8.GetString(item.ValueBytes)));
            }

            if (targetType.IsGenericType && targetType.GetGenericTypeDefinition() == typeof(Nullable <>) && Nullable.GetUnderlyingType(targetType).IsPrimitive)
            {
                return(TypeConversionUtil.ConvertValueIfNecessary(targetType, Encoding.UTF8.GetString(item.ValueBytes)));
            }

            if (targetType == typeof(DateTime) || targetType == typeof(DateTime?))
            {
                return(TypeConversionUtil.ConvertValueIfNecessary(targetType, Encoding.UTF8.GetString(item.ValueBytes)));
            }

            return(JsonUtil.Deserialize(Encoding.UTF8.GetString(item.ValueBytes), targetType));
        }
コード例 #7
0
        private object[] GenerateArguments(ParameterInfo[] parameters, List <ArgumentDefinition> arguments)
        {
            var paramValues = new List <object>();

            for (int i = 0; i < parameters.Length; i++)
            {
                var arg = arguments.Find(t => t.Index.HasValue && t.Index.Value == i);
                if (arg == null)
                {
                    arg = arguments.Find(t => t.Name == parameters[i].Name);
                }

                if (arg != null)
                {
                    paramValues.Add(TypeConversionUtil.ConvertValueIfNecessary(parameters[i].ParameterType, arg.GetValue()));
                }
                else
                {
                    // use default value
                    paramValues.Add(parameters[i].DefaultValue);
                }
            }

            return(paramValues.ToArray());
        }
コード例 #8
0
ファイル: TextInfoService.cs プロジェクト: wobushiren79/IL
    public List <TextInfoBean> QueryDataByMarkId(TextEnum textEnum, long[] markIds)
    {
        InitTableByTextType(textEnum);
        string values = TypeConversionUtil.ArrayToStringBySplit(markIds, ",");

        return(BaseQueryData <TextInfoBean>("text_id", tableNameForMain + ".mark_id", "in", "(" + values + ")"));
    }
コード例 #9
0
    /// <summary>
    /// 找到所有门
    /// </summary>
    /// <returns></returns>
    public void InitEntranceList()
    {
        BuildDoorCpt[] doorArray = container.GetComponentsInChildren <BuildDoorCpt>();
        listDoorCpt = TypeConversionUtil.ArrayToList(doorArray);

        BuildStairsCpt[] stairsArray = container.GetComponentsInChildren <BuildStairsCpt>();
        listStairsCpt = TypeConversionUtil.ArrayToList(stairsArray);
    }
コード例 #10
0
ファイル: TimeUtil.cs プロジェクト: wobushiren79/BuildCity
    //比较时间------------------------------------------------------------------------------------------------------------
    public static TimeSpan SubtractTime(TimeBean timeOne, TimeBean timeTwo)
    {
        DateTime dateOne  = TypeConversionUtil.TimeBeanToDateTime(timeOne);
        DateTime dateTwo  = TypeConversionUtil.TimeBeanToDateTime(timeTwo);
        TimeSpan timeSpan = dateOne.Subtract(dateTwo);

        return(timeSpan);
    }
コード例 #11
0
 public static T ConvertTo <T>(string value, T defaultValue)
 {
     try
     {
         return((T)TypeConversionUtil.ConvertValueIfNecessary(typeof(T), value));
     }
     catch
     { return(defaultValue); }
 }
コード例 #12
0
ファイル: InnHotelHandler.cs プロジェクト: wobushiren79/IL
    /// <summary>
    /// 找到所有桌子
    /// </summary>
    /// <returns></returns>
    public List <BuildBedCpt> InitBedList(InnBuildBean innBuildData)
    {
        if (bedContainer == null)
        {
            return(listBedCpt);
        }
        BuildBedCpt[] tableArray = bedContainer.GetComponentsInChildren <BuildBedCpt>();
        listBedCpt = TypeConversionUtil.ArrayToList(tableArray);
        //设置每张床的美观值
        try
        {
            List <InnResBean> listFurnitureData = innBuildData.GetFurnitureList(2);
            List <InnResBean> listFloorData     = innBuildData.GetFloorList(2);
            List <InnResBean> listWallData      = innBuildData.GetWallList(2);

            Dictionary <Vector3, InnResBean> mapFurnitureData = new Dictionary <Vector3, InnResBean>();
            Dictionary <Vector3, InnResBean> mapFloorData     = new Dictionary <Vector3, InnResBean>();
            Dictionary <Vector3, InnResBean> mapWallData      = new Dictionary <Vector3, InnResBean>();

            foreach (InnResBean innResData in listFurnitureData)
            {
                mapFurnitureData.Add(TypeConversionUtil.Vector3BeanToVector3(innResData.startPosition), innResData);
            }
            foreach (InnResBean innResData in listFloorData)
            {
                mapFloorData.Add(TypeConversionUtil.Vector3BeanToVector3(innResData.startPosition), innResData);
            }
            foreach (InnResBean innResData in listWallData)
            {
                mapWallData.Add(TypeConversionUtil.Vector3BeanToVector3(innResData.startPosition), innResData);
            }

            if (listBedCpt != null)
            {
                for (int i = 0; i < listBedCpt.Count; i++)
                {
                    BuildBedCpt buildBedCpt        = listBedCpt[i];
                    float       totalAddAesthetics = 0;
                    float       totalSubAesthetics = 0;
                    GetAroundAesthetics(mapFurnitureData, buildBedCpt.transform.position, 3, out float addFurnitureAesthetics, out float subFurnitureAesthetics);
                    totalAddAesthetics += addFurnitureAesthetics;
                    totalSubAesthetics += subFurnitureAesthetics;
                    GetAroundAesthetics(mapFloorData, buildBedCpt.transform.position - new Vector3(0.5f, 0.5f), 3, out float addFloorAesthetics, out float subFloorAesthetics);
                    totalAddAesthetics += addFloorAesthetics;
                    totalSubAesthetics += subFloorAesthetics;
                    GetAroundAesthetics(mapWallData, buildBedCpt.transform.position - new Vector3(0.5f, 0.5f), 3, out float addWallAesthetics, out float subWallAesthetics);
                    totalAddAesthetics += addWallAesthetics;
                    totalSubAesthetics += subWallAesthetics;
                    buildBedCpt.SetAddAesthetics((float)decimal.Round(decimal.Parse(totalAddAesthetics + ""), 1), (float)decimal.Round(decimal.Parse(totalSubAesthetics + ""), 1));
                }
            }
        }
        catch
        {
        }
        return(listBedCpt);
    }
コード例 #13
0
ファイル: ArgumentDefinition.cs プロジェクト: weikety/ECode
        public override object GetValue()
        {
            if (this.ResolvedType != null && this.ResolvedType != this.ValueDefinition.ResolvedType)
            {
                return(TypeConversionUtil.ConvertValueIfNecessary(this.ResolvedType, this.ValueDefinition.GetValue()));
            }

            return(this.ValueDefinition.GetValue());
        }
コード例 #14
0
ファイル: ValueDefinition.cs プロジェクト: weikety/ECode
        public override object GetValue()
        {
            if (this.ResolvedType == null)
            {
                return(this.Value);
            }

            return(TypeConversionUtil.ConvertValueIfNecessary(this.ResolvedType, this.Value));
        }
コード例 #15
0
 /// <summary>
 /// string通过指定字符拆分成数组
 /// </summary>
 /// <param name="data"></param>
 /// <param name="substring"></param>
 /// <returns></returns>
 public static long[] SplitBySubstringForArrayLong(string data, char substring)
 {
     if (CheckUtil.StringIsNull(data))
     {
         return(new long[0]);
     }
     string[] splitData = data.Split(new char[] { substring }, StringSplitOptions.RemoveEmptyEntries);
     long[]   listData  = TypeConversionUtil.ArrayStrToArrayLong(splitData);
     return(listData);
 }
コード例 #16
0
 /// <summary>
 /// string通过指定字符拆分成数组
 /// </summary>
 /// <param name="data"></param>
 /// <param name="substring"></param>
 /// <returns></returns>
 public static float[] SplitBySubstringForArrayFloat(string data, char substring)
 {
     if (data == null)
     {
         return(new float[0]);
     }
     string[] splitData = data.Split(new char[] { substring }, StringSplitOptions.RemoveEmptyEntries);
     float[]  listData  = TypeConversionUtil.ArrayStrToArrayFloat(splitData);
     return(listData);
 }
コード例 #17
0
ファイル: InnTableHandler.cs プロジェクト: wobushiren79/IL
 /// <summary>
 /// 找到所有桌子
 /// </summary>
 /// <returns></returns>
 public List <BuildTableCpt> InitTableList()
 {
     if (tableContainer == null)
     {
         return(listTableCpt);
     }
     BuildTableCpt[] tableArray = tableContainer.GetComponentsInChildren <BuildTableCpt>();
     listTableCpt = TypeConversionUtil.ArrayToList(tableArray);
     return(listTableCpt);
 }
コード例 #18
0
 public InnResBean(long id, Vector3 startPosition, List <Vector3> listPosition, Direction2DEnum direction2D)
 {
     this.id            = id;
     this.startPosition = new Vector3Bean(startPosition);;
     if (listPosition != null)
     {
         this.listPosition = TypeConversionUtil.ListV3ToListV3Bean(listPosition);
     }
     this.direction = (int)direction2D;
 }
コード例 #19
0
ファイル: StoreInfoBean.cs プロジェクト: wobushiren79/IL
    /// <summary>
    /// 获取前置成就ID
    /// </summary>
    /// <returns></returns>
    public List <long> GetPreAchIds()
    {
        if (pre_ach_ids == null)
        {
            return(null);
        }
        List <string> listIdsStr = StringUtil.SplitBySubstringForListStr(pre_ach_ids, ',');
        List <long>   listData   = TypeConversionUtil.ListStrToListLong(listIdsStr);

        return(listData);
    }
コード例 #20
0
    /// <summary>
    /// string通过指定字符拆分成数组
    /// </summary>
    /// <param name="data"></param>
    /// <param name="substring"></param>
    /// <returns></returns>
    public static List <string> SplitBySubstringForListStr(string data, char substring)
    {
        if (data == null)
        {
            return(new List <string>());
        }
        string[]      splitData = data.Split(new char[] { substring }, StringSplitOptions.RemoveEmptyEntries);
        List <string> listData  = TypeConversionUtil.ArrayToList(splitData);

        return(listData);
    }
コード例 #21
0
    /// <summary>
    /// 根据ID查询数据
    /// </summary>
    /// <param name="ids"></param>
    /// <returns></returns>
    public List <ItemsInfoBean> QueryDataByIds(long[] ids)
    {
        string[] leftTable  = new string[] { tableNameForLeft, mLeftIntactTableName };
        string[] mainKey    = new string[] { "id", "intact_id" };
        string[] leftKey    = new string[] { "items_id", "intact_id" };
        string[] colName    = new string[] { tableNameForMain + ".id" };
        string[] operations = new string[] { "IN" };
        string   values     = TypeConversionUtil.ArrayToStringBySplit(ids, ",");

        string[] colValue = new string[] { "(" + values + ")" };
        return(SQLiteHandle.LoadTableData <ItemsInfoBean>(ProjectConfigInfo.DATA_BASE_INFO_NAME, tableNameForMain, leftTable, mainKey, leftKey, colName, operations, colValue));
    }
コード例 #22
0
        private object CreateInstance()
        {
            object instance = null;

            var watch = new Stopwatch();

            watch.Start();

            if (this.FactoryObject != null)
            {
                instance = this.factoryMethod.Invoke(this.FactoryObject.GetValue(), GenerateArguments(this.factoryMethod.GetParameters(), this.FactoryArgs));
            }
            else if (this.factoryMethod != null)
            {
                instance = this.factoryMethod.Invoke(null, GenerateArguments(this.factoryMethod.GetParameters(), this.FactoryArgs));
            }
            else if (this.ctorMethod != null)
            {
                instance = this.ctorMethod.Invoke(GenerateArguments(this.ctorMethod.GetParameters(), this.ConstructorArgs));
            }
            else
            {
                instance = Activator.CreateInstance(this.ResolvedType);
            }

            foreach (var property in this.propertyMaps)
            {
                property.Value.SetValue(instance, TypeConversionUtil.ConvertValueIfNecessary(property.Value.PropertyType, property.Key.GetValue()));
            }

            foreach (var listener in this.listenerMaps)
            {
                listener.Value.AddEventHandler(instance, listener.Key.CreateDelegate(listener.Value.EventHandlerType));
            }

            if (this.initMethod != null)
            {
                this.initMethod.Invoke(instance, GenerateArguments(this.initMethod.GetParameters(), this.InitializeArgs));
            }

            watch.Stop();

            if (!string.IsNullOrWhiteSpace(this.ID))
            {
                Log.Debug($"Object '{this.ID}' created, {watch.ElapsedMilliseconds}ms time took.");
            }
            else
            {
                Log.Debug($"Anonymous object created, {watch.ElapsedMilliseconds}ms time took.");
            }

            return(instance);
        }
コード例 #23
0
        public override object GetValue()
        {
            var list = Activator.CreateInstance(this.ResolvedType);

            foreach (var item in this.Items)
            {
                var val = TypeConversionUtil.ConvertValueIfNecessary(this.resolvedElementType, item.GetValue());

                this.addItemMethod.Invoke(list, new[] { val });
            }

            return(list);
        }
コード例 #24
0
    /// <summary>
    /// 修建建筑
    /// </summary>
    /// <param name="furnitureData"></param>
    /// <returns></returns>
    public GameObject BuildFurniture(InnResBean furnitureData, BuildBedBean buildBedData)
    {
        if (furnitureData == null)
        {
            return(null);
        }
        GameObject buildItemObj = InnBuildHandler.Instance.manager.GetFurnitureObjById(furnitureData, buildContainer.transform, buildBedData);

        buildItemObj.transform.position = TypeConversionUtil.Vector3BeanToVector3(furnitureData.startPosition);
        BaseBuildItemCpt buildItemCpt = buildItemObj.GetComponent <BaseBuildItemCpt>();

        buildItemCpt.SetDirection(furnitureData.direction);
        return(buildItemObj);
    }
コード例 #25
0
ファイル: ValueDefinition.cs プロジェクト: weikety/ECode
        public override bool CanConvertTo(Type destinationType)
        {
            if (destinationType == null)
            {
                throw new ArgumentNullException(nameof(destinationType));
            }

            if (this.ResolvedType != null)
            {
                return(destinationType.IsAssignableFrom(this.ResolvedType));
            }

            TypeConversionUtil.ConvertValueIfNecessary(destinationType, this.Value);
            return(true);
        }
コード例 #26
0
        public override T ToValue <T>()
        {
            if (this.ValueKind == JValueKind.Null)
            {
                if (typeof(T).IsValueType)
                {
                    throw new JsonException($"Null cannot be converted to type {typeof(T)}");
                }

                return(default(T));
            }
            else
            {
                return((T)TypeConversionUtil.ConvertValueIfNecessary(typeof(T), this.Value));
            }
        }
コード例 #27
0
ファイル: CharacterBodyCpt.cs プロジェクト: wobushiren79/IL
 /// <summary>
 /// 设置皮肤
 /// </summary>
 /// <param name="skinColor">皮肤颜色</param>
 public void SetSkin(Color skinColor)
 {
     if (srBody == null)
     {
         return;
     }
     srBody.material.SetColor("_ColorHead", skinColor);
     srBody.material.SetColor("_ColorTrunk", skinColor);
     srBody.material.SetColor("_ColorFootLeft", skinColor);
     srBody.material.SetColor("_ColorFootRight", skinColor);
     //数据保存
     if (characterBodyData == null)
     {
         characterBodyData = new CharacterBodyBean();
     }
     characterBodyData.skinColor = TypeConversionUtil.ColorToColorBean(skinColor);
 }
コード例 #28
0
    public void SetData(RankTypeEnum rankType, SteamLeaderboardEntryBean rankData)
    {
        this.rankType = rankType;
        this.rankData = rankData;

        SetScore(rankType, rankData.score);
        SetRank(rankData.rank);
        string name = TypeConversionUtil.Int32ToString(rankData.details);

        SetName(name);

        //开始获取头像和名字
        if (rankData.steamID.m_SteamID != 0)
        {
            StartCoroutine(SteamHandler.Instance.GetUserInfo(rankData.steamID.m_SteamID + "", this));
        }
    }
コード例 #29
0
 /// <summary>
 /// 设置排行榜数据
 /// </summary>
 /// <param name="leaderboardId"></param>
 /// <param name="score"></param>
 /// <param name="details"></param>
 /// <param name="callBack"></param>
 public void SetGetLeaderboardData(ulong leaderboardId, int score, string details, ISteamLeaderboardUpdateCallBack callBack)
 {
     if (!SteamManager.Initialized)
     {
         return;
     }
     if (steamLeaderboard == null)
     {
         steamLeaderboard = new SteamLeaderboardImpl();
     }
     if (details.Length > 64)
     {
         details = details.Substring(0, 64);
     }
     int[] intDetails     = TypeConversionUtil.StringToInt32(details);
     int[] intDetailsData = new int[64];
     intDetails.CopyTo(intDetailsData, 0);
     steamLeaderboard.UpdateLeaderboardScore(leaderboardId, score, intDetailsData, 64, callBack);
 }
コード例 #30
0
 /// <summary>
 /// 自动找到rb
 /// </summary>
 public void AutoFindRadioButton()
 {
     if (listButton == null)
     {
         listButton = new List <RadioButtonView>();
     }
     listButton.Clear();
     RadioButtonView[] rbList = GetComponentsInChildren <RadioButtonView>();
     if (rbList != null)
     {
         listButton = TypeConversionUtil.ArrayToList(rbList);
     }
     if (listButton != null)
     {
         foreach (RadioButtonView itemRB in listButton)
         {
             itemRB.SetCallBack(this);
         }
     }
 }