///<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; }
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)); }
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)); }
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)); }
private bool PropertyRangeCompare(object v, PropertyRange range, Func <float, PropertyRange, bool> comparer) { if (v is float f) { return(comparer(f, range)); } return(false); }
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)); } } } } } }
/// <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); }
// 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; }
internal void CopyTo(ref PropertyRange range) { range.Min = Minimum; range.Max = Maximum; }
internal InputRange(PropertyRange range) : this(range.Min, range.Max) { }
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(); }); } }