textbox/example/example.gui_script
2026-10-24 17:18:55 +00:00

136 lines
14 KiB
Lua
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local typewriter = require "typewriter.typewriter"
local ZWSP = "\226\128\139"
local example0 = "Lorem ipsum dolor sit."
local example1 = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example2 = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum."
local example3 = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."
local example_mix = [[Text <ul>Underline</ul> <color=#FF0000>Color</color>
<gradient left=#FF00FF right=#FFFFFF>Horizontal</gradient> <gradient bottom=#00FF00 top=#0000FF>Vertical</gradient> <gradient fit=glyph tl=#FF0000 tr=#00FF00 bl=#0000FF br=#FFFFFF>Corners</gradient>
<gradient hz=1.0 fit=glyph bottom=#FFFFFF top=#008080>Animated</gradient>
<shake hz=12 amplitude=2.0 fit=glyph>Shake</shake> <wave amplitude=4 hz=3 wavelength=8 fit=glyph>Wave</wave>]]
local example_color = "Lorem ipsum dolor sit amet, <color=#FF8800>consetetur sadipscing elitr,</color> sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_color_2 = "Lorem ipsum dolor sit amet, <color=#FF8800>consetetur <color=#88FF00>sadipscing</color> elitr,</color> sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_size = "Lorem ipsum dolor sit amet, <size='150%'>consetetur sadipscing elitr,</size> sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_shake = "Lorem ipsum dolor sit amet, <shake hz=12 amplitude=2.0 fit=glyph>consetetur sadipscing elitr,</shake> sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_shake_span = "Lorem ipsum dolor sit amet, <shake hz=12 amplitude=2.0 fit=span>consetetur sadipscing elitr,</shake> sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_wave = "Lorem ipsum dolor sit amet, <wave amplitude=4 hz=3 wavelength=8 fit=glyph>consetetur sadipscing elitr,</wave> sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_wave_chunk = "Lorem ipsum dolor sit amet, <chunk><wave amplitude=4 hz=3 wavelength=8 fit=glyph>consetetur sadipscing elitr,</wave></chunk> sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_wave_block = "Lorem ipsum dolor sit amet, <block><wave amplitude=4 hz=3 wavelength=8 fit=glyph>consetetur sadipscing elitr,</wave></block> sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_gradient_h = "Lorem ipsum dolor sit amet, <gradient left=#FF00FF right=#FFFFFF>consetetur sadipscing elitr,</gradient> sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_gradient_h_full = "<gradient left=#FF00FF right=#FFFFFF>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</gradient>"
local example_gradient_v_anim = "Lorem ipsum dolor sit amet, <gradient hz=0.25 fit=glyph bottom=#182848 top=#4B6CB7>consetetur sadipscing elitr,</gradient> sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_gradient_corners = "Lorem ipsum dolor sit amet, <gradient fit=glyph tl=#FF0000 tr=#00FF00 bl=#0000FF br=#FFFFFF>consetetur sadipscing elitr,</gradient> sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_gradient_corners_span = "Lorem ipsum dolor sit amet, <gradient fit=span tl=#FF0000 tr=#00FF00 bl=#0000FF br=#FFFFFF>consetetur sadipscing elitr,</gradient> sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_ul = "Lorem ipsum dolor sit amet, <ul>consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt</ul> ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_ul_dashed = "Lorem ipsum dolor sit amet, <ul pattern=dashed>consetetur sadipscing elitr,</ul> sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_strike = "Lorem ipsum dolor sit amet, <strike>consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt</strike> ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_word = "Lorem ipsum dolor <word>sit amet</word>, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_chunk = "Lorem ipsum dolor <chunk>sit amet</chunk>, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_block = "Lorem ipsum dolor <block>sit amet</block>, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_sync = "Lorem ipsum dolor <sync>sit amet</sync>, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_letter = "Lorem ipsum dolor <letter>sit amet</letter>, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_chunk_shake = "Lorem ipsum dolor <chunk><shake hz=12 amplitude=2.0 fit=glyph>sit amet</shake></chunk>, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_gradient_h_anim_chunk = "Lorem ipsum dolor <chunk><gradient hz=0.25 fit=glyph left=#182848 right=#4B6CB7>sit amet</gradient></chunk> consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_sprite_atlas = "Lorem ipsum dolor sit <sprite src=example animation=logo_256 width=1em/> amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_sprite_resource = "Lorem ipsum dolor sit <sprite src=/assets/logo_256.png width=1em height=1em/> amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_wait = "Lorem ipsum dolor sit amet,<wait=1.5> consetetur sadipscing elitr,<wait> sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,<wait> sed diam voluptua."
local example_shadow = "Lorem ipsum dolor sit amet, <shadow x=6 y=-6 blur=16 color=#000000A0>consetetur sadipscing elitr,</shadow> sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
local example_entities = "<letter>&amp;</letter> <letter>&apos;</letter> <letter>&gt;</letter> <letter>&lt;</letter> <letter>&quot;</letter>"
local example_zwsp = "L"..ZWSP.."orem ipsum dolor sit a"..ZWSP.."met."
local example_english = "All human beings are born free and equal in dignity and rights. They are endowed with reason and conscience and should act towards one another in a spirit of brotherhood."
local example_arabic = "يولد جميع الناس أحرارًا متساوين في الكرامة والحقوق. وقد وهبوا عقلاً وضميرًا وعليهم أن يعامل بعضهم بعضًا بروح الإخاء."
local example_japanese = "すべての人間は、生まれながらにして自由であり、かつ、尊厳と権利と について平等である。人間は、理性と良心とを授けられており、互いに同 胞の精神をもって行動しなければならない。"
local example_chinese = "人人生而自由,在尊严和权利上一律平等。他们赋有理性和良心,并应以兄弟关系的精神相对待。"
local example_chinese_t = "人人生而自由,在尊嚴及權利上一律平等。他們賦有理性和良心,並應以兄弟關係的精神相對待。"
local example_korean = "모든 인간은 태어날 때부터 자유로우며 그 존엄과 권리에 있어 동등하다. 인간은 천부적으로 이성과 양심을 부여받았으며 서로 형제애의 정신으로 행동하여야 한다."
local example_greek = "'Ολοι οι άνθρωποι γεννιούνται ελεύθεροι και ίσοι στην αξιοπρέπεια και τα δικαιώματα. Είναι προικισμένοι με λογική και συνείδηση, και οφείλουν να συμπεριφέρονται μεταξύ τους με πνεύμα αδελφοσύνης."
local example_russian = "Все люди рождаются свободными и равными в своем достоинстве и правах. Они наделены разумом и совестью и должны поступать в отношении друг друга в духе братства."
local example_persian = "تمام افراد بشر آزاد به دنیا می‌آیند و از لحاظ حیثیت و حقوق با هم برابرند. همه دارای عقل و وجدان می‌باشند و باید نسبت به یکدیگر با روح برادری رفتار کنند."
local example_vietnamese = "Tất cả mọi người sinh ra đều được tự do và bình đẳng về nhân phẩm và quyền. Mọi con người đều được tạo hoá ban cho lý trí và lương tâm và cần phải đối xử với nhau trong tình bằng hữu."
local example_german = "Alle Menschen sind frei und gleich an Würde und Rechten geboren. Sie sind mit Vernunft und Gewissen begabt und sollen einander im Geist der Brüderlichkeit begegnen."
local example_emoji = "🥰💀✌️🌴🐢🐐🍄⚽🍻👑📸😬👀🚨🏡🕊️🏆😻🌟🧿🍀🎨🍜"
local example_ = ""
local example_multiple_lanugages = example_arabic.." "..example_english
-- Does not work yet
local example_thai = "มนุษย์ทั้งหลายเกิดมามีอิสระและเสมอภาคกันในเกียรติศักดิ์และสิทธิ ต่างมีเหตุผลและมโนธรรม และควรปฏิบัติต่อกันด้วยเจตนารมณ์แห่งภราดรภาพ"
local example_hindi = "सभी मनुष्यों को गौरव और अधिकारों के मामले में जन्मजात स्वतन्त्रता और समानता प्राप्त है । उन्हें बुद्धि और अन्तरात्मा की देन प्राप्त है और परस्पर उन्हें भाईचारे के भाव से बर्ताव करना चाहिए ।"
local example_arabic_short = "يولد جميع الناس أحراراً ومتساوين في الكرامة والحقوق."
local example_arabic_tashkeel = "يُولَدُ جَمِيعُ النَّاسِ أَحْرَارًا وَمُتَسَاوِينَ فِي الْكَرَامَةِ وَالْحُقُوقِ."
local example_ar_number = "ٱللُّغَةُ ٱلْعَرَبِيَّة هي أكثر اللغات السامية تحدثًا، وإحدى أكثر اللغات انتشاراً في العالم، يتحدثها أكثر من 467 مليون نسمة."
local example_ar_shake = "<shake hz=12 amplitude=2.0 fit=glyph>ٱللُّغَةُ ٱلْعَرَبِيَّة هي أكثر اللغات السامية تحدثًا، وإحدى أكثر اللغات انتشاراً في العالم، يتحدثها أكثر من 467 مليون نسمة.</shake>"
local text1 = example_japanese
local text2 = example_arabic
function init(self)
msg.post(".", "acquire_input_focus")
local options = {
--speed = 5,
fadein_duration = 0.2,
fadeout_y = 16,
fadein_x = -8,
fadein_y = 12,
fadeout_duration = 0.1,
--scale = 1.5,
--scale = vmath.vector3(0.5, 1.0, 1.0),
--alignment = "right",
--balanced = true,
--alignment = "center",
--alignment = "justified",
--width = 100,
--width = 1,
--leading = 1.5,
--tracking = 0.2,
--disable_auto_blocking = true,
fonts = {
arabic = "arabic",
chinese = "chinese",
chinese_traditional = "chinese_traditional",
devanagari = "devanagari",
japanese = "japanese",
korean = "korean",
thai = "thai",
},
}
self.textbox = typewriter.new(gui.get_node("text1"), options, function() end)
self.textbox:type(text1)
--gui.set_texture(gui.get_node("box"), "example")
--gui.play_flipbook(gui.get_node("box"), "logo_256")
end
function update(self, dt)
end
function on_message(self, message_id, message, sender)
end
local test = false
function on_input(self, action_id, action)
if action.pressed then
--if self.textbox:continue() then
--self.textbox:type(text1)
--end
if test then
--self.textbox:type(text1)
self.textbox:animate({scale = 1.0, alignment = "left"}, 0.2, gui.EASING_OUTSINE)
--self.textbox2:type(text2)
test = false
else
--self.textbox:finish()
self.textbox:animate({scale = 1.5, alignment = "right"}, 0.2, gui.EASING_OUTSINE)
--self.textbox2:finish()
test = true
end
end
end