Пример #1
0
        public Tooltip(Texture2D tooltip_texture, Font font_style, int[] font_sizes, Rect base_dimens, IconType tooltip_type, TooltipDetails tooltip_details)
        {
            type    = tooltip_type;
            details = tooltip_details;

            tooltip_bubbleStyle.normal.background = tooltip_texture;

            // Base GUIStyle Font settings here
            name_style.normal.textColor = details.NameColor;
            name_style.font             = font_style;
            name_style.fontSize         = font_sizes[0];

            stat_style.font     = font_style;
            stat_style.fontSize = font_sizes[1];

            detail_style.font     = font_style;
            detail_style.fontSize = font_sizes[2];
            // End Base Settings

            details.Dimensions = new Rect(base_dimens.x + base_dimens.width, base_dimens.y, name_style.CalcSize(new GUIContent(details.Name)).x, name_style.CalcSize(new GUIContent(details.Name)).y);

            Rect determinedDimensions = determineDimensions(details);

            if (details.Dimensions.x + determinedDimensions.width > Screen.width)
            {
                details.Dimensions = new Rect(details.Dimensions.x - (determinedDimensions.width + base_dimens.width), details.Dimensions.y, details.Dimensions.width, details.Dimensions.height);
            }

            if (details.Dimensions.y + determinedDimensions.height > Screen.height)
            {
                details.Dimensions = new Rect(details.Dimensions.x, details.Dimensions.y - ((details.Dimensions.y + determinedDimensions.height) - Screen.height), details.Dimensions.width, details.Dimensions.height);
            }
        }
Пример #2
0
        private Rect determineDimensions(TooltipDetails details)
        {
            Rect determined_dimens = new Rect();

            if (determined_dimens.width < name_style.CalcSize(new GUIContent(details.Name)).x)
            {
                determined_dimens.width = name_style.CalcSize(new GUIContent(details.Name)).x;
            }

            determined_dimens.height += name_style.CalcSize(new GUIContent(details.Name)).y;

            for (int i = 0; i < details.StatisticalDetails.Length; i++)
            {
                if (determined_dimens.width < stat_style.CalcSize(new GUIContent(details.StatisticalDetails[i])).x)
                {
                    determined_dimens.width = stat_style.CalcSize(new GUIContent(details.StatisticalDetails[i])).x;
                }

                determined_dimens.height += stat_style.CalcSize(new GUIContent(details.StatisticalDetails[i])).y;
            }

            for (int i = 0; i < details.DescriptiveDetails.Length; i++)
            {
                if (determined_dimens.width < detail_style.CalcSize(new GUIContent(details.DescriptiveDetails[i])).x)
                {
                    determined_dimens.width = detail_style.CalcSize(new GUIContent(details.DescriptiveDetails[i])).x;
                }

                determined_dimens.height += detail_style.CalcSize(new GUIContent(details.DescriptiveDetails[i])).y;
            }

            determined_dimens.x = details.Dimensions.x;
            determined_dimens.y = details.Dimensions.y;

            return(determined_dimens);
        }
Пример #3
0
    // used to retrieve details from a specific file with the associated type and name
    TooltipDetails RetrieveDetails(IconType type, string name)
    {
        TooltipDetails details = new TooltipDetails();

        details.Name = name;

        Stream       stream;
        StreamReader reader;

        if (type.Equals(IconType.Item) && previousIconType != IconType.Item)
        {
            objectInfoFile   = (TextAsset)Resources.Load("ObjectDetails/item_info");
            previousIconType = IconType.Item;
        }
        else if (type.Equals(IconType.Skill) && previousIconType != IconType.Skill)
        {
            objectInfoFile   = (TextAsset)Resources.Load("ObjectDetails/skill_info");
            previousIconType = IconType.Skill;
        }
        else if (type.Equals(IconType.GameObject) && previousIconType != IconType.GameObject)
        {
            objectInfoFile   = (TextAsset)Resources.Load("ObjectDetails/object_info");
            previousIconType = IconType.GameObject;
        }

        try
        {
            stream = new MemoryStream(objectInfoFile.bytes);
            reader = new StreamReader(stream);

            string desired = "[" + determineIconToken(type) + "]" + name;
            string read_in = "";

            while (!read_in.Equals(desired))
            {
                string data = reader.ReadLine();

                if (data.Length >= desired.Length)
                {
                    read_in = data.Substring(0, desired.Length);
                }
                else
                {
                    read_in = "NULL";
                }

                if (read_in.Equals(desired))
                {
                    int extra_char_counter = 0;

                    for (int i = desired.Length; i < data.Length; i++)
                    {
                        if (data[i] != '[')
                        {
                            extra_char_counter++;
                        }
                        else
                        {
                            break;
                        }
                    }

                    details.NameColor = determineNameColor(data.Substring(desired.Length + extra_char_counter, data.Length - (desired.Length + extra_char_counter)));

                    data       = reader.ReadLine();
                    details.ID = int.Parse(data.Substring("[id]".Length, data.Length - "[id]".Length));

                    string[]     CombinedDetails = determineDetails(reader);
                    List <Color> colors          = new List <Color>();

                    details.StatisticalDetails = placeDetails(CombinedDetails, 's', colors);
                    details.StatisticalColors  = colors.ToArray();
                    colors.Clear();

                    details.DescriptiveDetails = placeDetails(CombinedDetails, 'd', colors);
                    details.DescriptiveColors  = colors.ToArray();
                    colors.Clear();

                    break;
                }
            }

            reader.Close();
            stream.Close();
        }
        catch (IOException ex) {
            Debug.Log(ex.Message);
        }

        return(details);
    }
Пример #4
0
 void Start()
 {
     tooltip = this;
     HideTooltip();
 }