コード例 #1
0
        ///<summary>
        /// We calculate the start property indices, based on the type and it's class hierarchy, for example, DateView (70,000)- > Spin (60,000) -> View (50,000).
        /// </summary>
        private void GetPropertyStartRange(System.Type viewType, ref PropertyRange range)
        {
            const int maxCountPerDerivation = 1000; // For child and animatable properties we use a gap of 1000 between each
                                                    // views property range in the hierarchy

            // custom views start there property index, at view_PROPERTY_END_INDEX
            // we add 1000, just incase View class (our C# custom view base) starts using scriptable properties
            int startEventPropertyIndex = (int)View.PropertyRange.CONTROL_PROPERTY_END_INDEX + maxCountPerDerivation;

            // for animatable properties current range starts at ANIMATABLE_PROPERTY_REGISTRATION_START_INDEX,
            // we add 1000, just incase View class starts using animatable properties
            int startAnimatablePropertyIndex = (int)Tizen.NUI.PropertyRanges.ANIMATABLE_PROPERTY_REGISTRATION_START_INDEX + maxCountPerDerivation;

            if (viewType != null)
            {
                while (viewType.GetTypeInfo().BaseType?.Name != "CustomView")   // custom view is our C# view base class. we don't go any deeper.
                {
                    // for every base class increase property start index
                    startEventPropertyIndex      += (int)Tizen.NUI.PropertyRanges.DEFAULT_PROPERTY_MAX_COUNT_PER_DERIVATION; // DALi uses 10,000
                    startAnimatablePropertyIndex += maxCountPerDerivation;
                    NUILog.Debug("getStartPropertyIndex =  " + viewType.Name + "current index " + startEventPropertyIndex);
                    viewType = viewType.GetTypeInfo().BaseType;
                }
            }

            range.startEventIndex    = startEventPropertyIndex;
            range.lastUsedEventIndex = startEventPropertyIndex;

            range.startAnimationIndex    = startAnimatablePropertyIndex;
            range.lastUsedAnimationIndex = startAnimatablePropertyIndex;
        }
コード例 #2
0
ファイル: PropertyAccessor.cs プロジェクト: zmtzawqlp/SharpDX
        protected unsafe void Set(IntPtr guid, InputRange value)
        {
            var prop = new PropertyRange();

            InitHeader <PropertyRange>(ref prop.Header);
            value.CopyTo(ref prop);
            Device.SetProperty(guid, new IntPtr(&prop));
        }
コード例 #3
0
ファイル: PropertyAccessor.cs プロジェクト: zmtzawqlp/SharpDX
        protected unsafe InputRange GetRange(IntPtr guid)
        {
            var prop = new PropertyRange();

            InitHeader <PropertyRange>(ref prop.Header);
            Device.GetProperty(guid, new IntPtr(&prop));
            return(new InputRange(prop));
        }
コード例 #4
0
 private static bool PropertyRangeCompare(GOP v, PropertyRange range, Func <float, PropertyRange, bool> comparer)
 {
     if (v.type != GOP.ValueType.Number)
     {
         return(false);
     }
     return(comparer(v.number, range));
 }
コード例 #5
0
 private bool PropertyRangeCompare(object v, PropertyRange range, Func <float, PropertyRange, bool> comparer)
 {
     if (v is float f)
     {
         return(comparer(f, range));
     }
     return(false);
 }
コード例 #6
0
ファイル: MenuGenerator.cs プロジェクト: simoneghiazzi/AUI
 private void setMinValues()
 {
     if (GameSetting.instance != null)
     {
         PropertyInfo[] props = GetProperties();
         foreach (PropertyInfo p in props)
         {
             string propertyname = p.Name;
             if (propertyname != ThemePropertyName)
             {
                 object[] attrs = p.GetCustomAttributes(true);
                 foreach (Attribute a in attrs)
                 {
                     if (a.GetType().ToString() == "PropertyRange")
                     {
                         PropertyRange range = a as PropertyRange;
                         p.SetValue(GameSetting.instance.configuration, range.min);
                     }
                     if (a.GetType().ToString() == "PropertyDefaultValue")
                     {
                         PropertyDefaultValue pdv = a as PropertyDefaultValue;
                         if (p.PropertyType == typeof(int))
                         {
                             p.SetValue(GameSetting.instance.configuration, pdv.intvalue);
                         }
                         if (p.PropertyType == typeof(float))
                         {
                             p.SetValue(GameSetting.instance.configuration, pdv.floatvalue);
                         }
                         if (p.PropertyType == typeof(string))
                         {
                             p.SetValue(GameSetting.instance.configuration, pdv.stringvalue);
                         }
                         if (p.PropertyType == typeof(Enum))
                         {
                             p.SetValue(GameSetting.instance.configuration, pdv.enumvalue);
                         }
                         if (p.PropertyType == typeof(bool))
                         {
                             p.SetValue(GameSetting.instance.configuration, pdv.boolvalue);
                         }
                     }
                 }
                 foreach (PropertyMenuBlockManager pm in GetComponentsInChildren <PropertyMenuBlockManager>())
                 {
                     if (pm.gameObject.name == p.Name)
                     {
                         pm.ResetToInitialValue(p.GetValue(configurationschema));
                     }
                 }
             }
         }
     }
 }
コード例 #7
0
        /// <summary>
        /// Only called if a view has scriptable properties.
        /// </summary>
        private PropertyRange RegisterView(string viewName, System.Type viewType)
        {
            PropertyRange range;

            if (propertyRange.TryGetValue(viewName, out range))
            {
                // already registered
                return(range);
            }

            // Find out the event and animatable start indexes for the type
            range = new PropertyRange();

            GetPropertyStartRange(viewType, ref range);

            // add it to our dictionary
            propertyRange.Add(viewName, range);

            return(range);
        }
コード例 #8
0
ファイル: Entity.cs プロジェクト: dlouwe/tinyfeelingrobots
    // Use this for initialization
    void Awake()
    {
        //Get a component reference to this object's BoxCollider2D
        boxCollider = GetComponent <BoxCollider2D> ();

        //Get a component reference to this object's Rigidbody2D
        rb2D = GetComponent <Rigidbody2D> ();

        //Get a component reference to this object's SpriteRenderer
        spriteRenderer = GetComponent <SpriteRenderer> ();

        float startEnergyReal = startEnergyBase * startEnergyFactor;

        startEnergy = new PropertyRange(startEnergyReal, startEnergyVariance);

        float energyFromWaterReal = energyFromWaterBase * energyFromWaterFactor;

        energyFromWater = new PropertyRange(energyFromWaterReal, energyFromWaterVariance);

        float growDistanceReal = growDistanceBase * growDistanceFactor;

        growDistance = new PropertyRange(growDistanceReal, growDistanceVariance);

        float hungerThresholdReal = hungerThresholdBase * hungerThresholdFactor;

        hungerThreshold = new PropertyRange(hungerThresholdReal, hungerThresholdVariance);

        float idealChildrenReal = idealChildrenBase * idealChildrenFactor;

        idealChildren = new PropertyRange(idealChildrenReal, idealChildrenVariance);

        // set starting energy
        energy = startEnergy.randVal;

        currentAge    = 1;
        totalChildren = 0;

        isAwake = true;
    }
コード例 #9
0
 internal void CopyTo(ref PropertyRange range)
 {
     range.Min = Minimum;
     range.Max = Maximum;
 }
コード例 #10
0
 internal InputRange(PropertyRange range)
     : this(range.Min, range.Max)
 {
 }
コード例 #11
0
ファイル: MenuGenerator.cs プロジェクト: simoneghiazzi/AUI
    public void generateMenu()
    {
        blocks = new List <PropertyMenuBlockManager>();
        int count = transform.childCount;

        for (int i = 0; i < count; i++)
        {
            GameObject.DestroyImmediate(transform.GetChild(0).gameObject);
        }

        grid = GameObject.Instantiate(Resources.Load("UI/PropertyPanel") as GameObject, transform);

        PropertyInfo[] props = GetProperties();

        GridLayoutGroup gridlayout   = grid.GetComponent <GridLayoutGroup>();
        float           screenwidth  = generateAtRuntime ? Screen.width : 1920;
        float           screenheight = generateAtRuntime ? Screen.height : 1080;
        float           blocky       = Mathf.Max(80, screenheight / (props.Length + 1));

        gridlayout.cellSize = new Vector2(screenwidth * 0.4f, blocky);
        gridlayout.spacing  = new Vector2(screenwidth * 0.1f, -(screenheight - blocky * (props.Length + 1)) / 2);
        gridlayout.padding  = new RectOffset((int)(screenwidth * 0.05f), 0, (int)blocky / 2, (int)blocky / 2);



        foreach (PropertyInfo p in props)
        {
            string propertyname = p.Name;
            string easyname     = "";
            if (propertyname != ThemePropertyName)
            {
                object[] attrs = p.GetCustomAttributes(true);
                foreach (Attribute a in attrs)
                {
                    if (a.GetType().ToString() == "PropertyRename")
                    {
                        PropertyRename rnm = a as PropertyRename;
                        easyname = rnm.easyname;
                    }
                }
                GameObject g = null;
                if (p.PropertyType == typeof(int))
                {
                    g = GameObject.Instantiate(Resources.Load("UI/PropertyMenuBlockNumber") as GameObject, transform.GetChild(0));
                    g.GetComponent <PropertyMenuBlockManager>().SetUp <int>(propertyname, (int)p.GetValue(configurationschema), generateAtRuntime, easyname);

                    foreach (Attribute a in attrs)
                    {
                        if (a.GetType().ToString() == "PropertyRange")
                        {
                            PropertyRange r = a as PropertyRange;
                            g.GetComponent <PropertyMenuBlockManager>().SetUpLimits(r.min, r.max);
                        }
                    }
                }
                if (p.PropertyType == typeof(float))
                {
                    g = GameObject.Instantiate(Resources.Load("UI/PropertyMenuBlockNumber") as GameObject, transform.GetChild(0));
                    g.GetComponent <PropertyMenuBlockManager>().SetUp <float>(propertyname, (float)p.GetValue(configurationschema), generateAtRuntime, easyname);

                    foreach (Attribute a in attrs)
                    {
                        if (a.GetType().ToString() == "PropertyRange")
                        {
                            PropertyRange r = a as PropertyRange;
                            g.GetComponent <PropertyMenuBlockManager>().SetUpLimits(r.min, r.max);
                        }
                    }
                }
                if (p.PropertyType == typeof(string))
                {
                    foreach (Attribute a in attrs)
                    {
                        if (a.GetType().ToString() == "PropertyLimitedSet")
                        {
                            PropertyLimitedSet s = a as PropertyLimitedSet;
                            g = GameObject.Instantiate(Resources.Load("UI/PropertyMenuBlockDropdown") as GameObject, transform.GetChild(0));
                            List <string> ls = new List <string>();
                            ls.AddRange(s.values);
                            g.GetComponent <PropertyMenuBlockManager>().SetUp <string>(propertyname, s.values[0], generateAtRuntime, easyname, ls);
                        }
                        else if (a.GetType().ToString() == "PropertyReferenceFolder")
                        {
                            PropertyReferenceFolder prf = a as PropertyReferenceFolder;
                            g = GameObject.Instantiate(Resources.Load("UI/PropertyMenuBlockDropdown") as GameObject, transform.GetChild(0));
                            List <string> ls = new List <string>();
                            foreach (string f in Directory.GetFiles(Application.streamingAssetsPath + "/" + prf.folder))
                            {
                                string file = f.Split('/').Last().Split('\\').Last();
                                if (file.EndsWith(prf.extension))
                                {
                                    ls.Add(file);
                                }
                            }

                            g.GetComponent <PropertyMenuBlockManager>().SetUp <string>(propertyname, ls.First(), generateAtRuntime, easyname, ls);
                        }
                        else
                        {
                            g = GameObject.Instantiate(Resources.Load("UI/PropertyMenuBlockText") as GameObject, transform.GetChild(0));
                            g.GetComponent <PropertyMenuBlockManager>().SetUp <string>(propertyname, "", generateAtRuntime, easyname);
                        }
                    }
                }
                if (p.PropertyType == typeof(bool))
                {
                    g = GameObject.Instantiate(Resources.Load("UI/PropertyMenuBlockBool") as GameObject, transform.GetChild(0));
                    g.GetComponent <PropertyMenuBlockManager>().SetUp <bool>(propertyname, (bool)p.GetValue(configurationschema), generateAtRuntime, easyname);
                }
                if (p.PropertyType.IsEnum)
                {
                    g = GameObject.Instantiate(Resources.Load("UI/PropertyMenuBlockDropdown") as GameObject, transform.GetChild(0));
                    g.GetComponent <PropertyMenuBlockManager>().SetUp <System.Enum>(propertyname, (System.Enum)p.GetValue(configurationschema), generateAtRuntime, easyname);
                }

                blocks.Add(g.GetComponent <PropertyMenuBlockManager>());
            }
        }

        if (ThemePropertyName == "")
        {
            GameObject title = Instantiate(Resources.Load("UI/MenuApplicationTitle") as GameObject, transform);
            title.GetComponentInChildren <Text>().text = Application.productName;
        }
        else
        {
            GameObject title = Instantiate(Resources.Load("UI/MenuApplicationTitleAndTheme") as GameObject, transform);
            ThemeManager.StartUp();
            title.GetComponent <PropertyMenuBlockManager>().SetupTheme(ThemePropertyName, generateAtRuntime);
            theme = title.GetComponent <PropertyMenuBlockManager>();
            blocks.Add(theme);
        }

        GameObject PlayButton = Instantiate(Resources.Load("UI/PlayButton") as GameObject, transform);

        playgame = PlayButton.GetComponentInChildren <Button>();
        if (generateAtRuntime)
        {
            PlayButton.GetComponentInChildren <Button>().onClick.AddListener(delegate { PlayGame(); });
        }
    }