Ejemplo n.º 1
0
		public void CreateUI(GLEx g) {
			if (visible) {
				LFont oldFont = g.GetFont();
				uint oldColor = g.GetColorRGB();
				g.SetFont(font);
				g.SetColor(color);
				this.width = font.StringWidth(label);
				this.height = font.GetSize();
				if (alpha > 0 && alpha < 1) {
					g.SetAlpha(alpha);
					g.DrawString(label, X(), Y());
					g.SetAlpha(1.0F);
				} else {
					g.DrawString(label, X(), Y());
				}
				g.SetFont(oldFont);
				g.SetColor(oldColor);
			}
		}
Ejemplo n.º 2
0
 public void CreateUI(GLEx g)
 {
     if (visible)
     {
         if (showValue)
         {
             hpString = "" + value_ren;
             g.SetColor(LColor.white);
             int cur = g.GetFont().StringWidth(hpString);
             int h = g.GetFont().GetSize();
             g.DrawString("" + value_ren, (X() + width / 2 - cur / 2) + 2,
                     (Y() + height / 2 + h / 2));
         }
         DrawBar(g, goal, current, width, GetX(), GetY());
     }
 }
Ejemplo n.º 3
0
		public override void CreateUI(GLEx g, int x, int y, LComponent component,
				LTexture[] buttonImage) {
			LButton button = (LButton) component;
			if (buttonImage != null) {
				if (!button.IsEnabled()) {
					g.DrawTexture(buttonImage[3], x, y);
				} else if (button.IsTouchPressed()) {
					g.DrawTexture(buttonImage[2], x, y);
				} else if (button.IsTouchOver()) {
					g.DrawTexture(buttonImage[1], x, y);
				} else {
					if (type == 1) {
						g.DrawTexture(buttonImage[0], x, y, LColor.gray);
					} else {
						g.DrawTexture(buttonImage[0], x, y);
					}
				}
			}
			if (text != null) {
				LFont old = g.GetFont();
				g.SetFont(font);
				g.SetColor(fontColor);
				g.DrawString(
						text,
						x + button.GetOffsetLeft()
								+ (button.GetWidth() - font.StringWidth(text)) / 2,
						y + button.GetOffsetTop()
								+ (button.GetHeight() - font.GetLineHeight()) / 2
								+ font.GetLineHeight());
				g.SetFont(old);
				g.ResetColor();
			}
		}
Ejemplo n.º 4
0
        protected internal override void CreateCustomUI(GLEx g, int x, int y, int w,
				int h) {
			if (!visible) {
				return;
			}
			LFont oldFont = g.GetFont();
			g.SetFont(messageFont);
			print.Draw(g, fontColor);
			g.SetFont(oldFont);
			if (print.IsComplete() && animation != null) {
				if (animation.GetSpriteImage() != null) {
					g.SetAlpha(1.0F);
					UpdateIcon();
					g.DrawTexture(animation.GetSpriteImage(), dx, dy);
				}
			}
			g.ResetColor();
		}
Ejemplo n.º 5
0
        private void DrawMessage(GLEx gl, LColor old)
        {
            if (!visible)
            {
                return;
            }
            if (strings == null)
            {
                return;
            }
            lock (showMessages)
            {

                this.size = showMessages.Length;
                this.fontSize = (isEnglish) ? strings.GetSize() / 2 : gl.GetFont()
                        .GetSize();
                this.fontHeight = strings.GetHeight();
                this.tmp_left = isLeft ? 0 : (width - (fontSize * messageLength))
                    / 2 - (int)(fontSize * 1.5);
                this.left = tmp_left;
                this.index = offset = font = tmp_font = 0;
                this.fontSizeDouble = fontSize * 2;

                int hashCode = 1;
                hashCode = LSystem.Unite(hashCode, size);
                hashCode = LSystem.Unite(hashCode, left);
                hashCode = LSystem.Unite(hashCode, fontSize);
                hashCode = LSystem.Unite(hashCode, fontHeight);

                if (strings == null)
                {
                    return;
                }

                if (hashCode == lazyHashCade)
                {
                    strings.PostCharCache();
                    if (iconX != 0 && iconY != 0)
                    {
                        gl.DrawTexture(creeseIcon, iconX, iconY);
                    }
                    return;
                }

                strings.StartChar();
                fontColor = old;

                for (int i = 0; i < size; i++)
                {
                    text = showMessages[i];
                    if (text == '\0')
                    {
                        continue;
                    }
                    if (interceptCount < interceptMaxString)
                    {
                        interceptCount++;
                        continue;
                    }
                    else
                    {
                        interceptMaxString = 0;
                        interceptCount = 0;
                    }
                    if (showMessages[i] == 'n'
                            && showMessages[(i > 0) ? i - 1 : 0] == '\\')
                    {
                        index = 0;
                        left = tmp_left;
                        offset++;
                        continue;
                    }
                    else if (text == '\n')
                    {
                        index = 0;
                        left = tmp_left;
                        offset++;
                        continue;
                    }
                    else if (text == '<')
                    {
                        LColor color = GetColor(showMessages[(i < size - 1) ? i + 1
                                : i]);
                        if (color != null)
                        {
                            interceptMaxString = 1;
                            fontColor = color;
                        }
                        continue;
                    }
                    else if (showMessages[(i > 0) ? i - 1 : i] == '<'
                          && GetColor(text) != null)
                    {
                        continue;
                    }
                    else if (text == '/')
                    {
                        if (showMessages[(i < size - 1) ? i + 1 : i] == '>')
                        {
                            interceptMaxString = 1;
                            fontColor = old;
                        }
                        continue;
                    }
                    else if (index > messageLength)
                    {
                        index = 0;
                        left = tmp_left;
                        offset++;
                        newLine = false;
                    }
                    else if (text == '\\')
                    {
                        continue;
                    }
                    tmp_font = strings.CharWidth(text);
                    if (System.Char.IsLetter(text))
                    {
                        if (tmp_font < fontSize)
                        {
                            font = fontSize;
                        }
                        else
                        {
                            font = tmp_font;
                        }
                    }
                    else
                    {
                        font = fontSize;
                    }
                    left += font;
                   
                    if (i != size - 1)
                    {
                        strings.AddChar(text, vector.x + left + leftOffset,
                                (offset * fontHeight) + vector.y + fontSizeDouble
                                        + topOffset - font - 2, fontColor);
                    }
                    else if (!newLine && !onComplete)
                    {
                        iconX = vector.x + left + leftOffset + iconWidth ;
                        iconY = (offset * fontHeight) + vector.y + fontSize
                            + topOffset + strings.GetAscent();
                        if (iconX != 0 && iconY != 0)
                        {
                            gl.DrawTexture(creeseIcon, iconX, iconY);
                        }
                    }
                    index++;
                }

                strings.StopChar();
                strings.SaveCharCache();

                lazyHashCade = hashCode;

                if (messageCount == next)
                {
                    onComplete = true;
                }
            }
        }
Ejemplo n.º 6
0
        protected internal override void CreateCustomUI(GLEx g, int x, int y, int w, int h)
        {
            if (!visible)
            {
                return;
            }
            LColor oldColor = g.GetColor();
            LFont oldFont = g.GetFont();
            g.SetColor(fontColor);
            g.SetFont(messageFont);
            sizeFont = messageFont.GetSize();
            doubleSizeFont = sizeFont * 2;
            if (doubleSizeFont == 0)
            {
                doubleSizeFont = 20;
            }
            messageLeft = (x + doubleSizeFont + sizeFont / 2) + tmpOffset + left
                    + doubleSizeFont;
            // g.setAntiAlias(true);
            if (message != null)
            {
                messageTop = y + doubleSizeFont + top + 2;
                g.DrawString(message, messageLeft, messageTop);
            }
            else
            {
                messageTop = y + top + 2;
            }

            nTop = messageTop;
            if (selects != null)
            {
                nLeft = messageLeft - sizeFont / 4;
                for (int i = 0; i < selects.Length; i++)
                {
                    nTop += 30;
                    type = i + 1;
                    isSelect = (type == ((selectFlag > 0) ? selectFlag : 1));
                    if ((buoyage != null) && isSelect)
                    {
                        g.SetAlpha(autoAlpha);
                        g.DrawTexture(buoyage, nLeft,
                                nTop - (int)(buoyage.GetHeight() / 1.5f));
                        g.SetAlpha(1.0F);
                    }
                    g.DrawString(selects[i], messageLeft, nTop);
                    if ((cursor != null) && isSelect)
                    {
                        g.DrawTexture(cursor, nLeft, nTop - cursor.GetHeight() / 2, LColor.white);
                    }

                }
            }
            // g.setAntiAlias(false);
            g.SetColor(oldColor);
            g.SetFont(oldFont);

        }