From 0e3acc1e957fbf78bd1994864a41099d0805579c Mon Sep 17 00:00:00 2001 From: Igor Timofeev Date: Fri, 15 Feb 2019 10:27:08 +0300 Subject: [PATCH] Reduced memory usage of BigLetter library --- Applications/3D Print.app/Sample.3dm | 59 +- Libraries/BigLetters.lua | 1160 +++++++++++++------------- 2 files changed, 612 insertions(+), 607 deletions(-) diff --git a/Applications/3D Print.app/Sample.3dm b/Applications/3D Print.app/Sample.3dm index 489d71de..cbe9dfd4 100644 --- a/Applications/3D Print.app/Sample.3dm +++ b/Applications/3D Print.app/Sample.3dm @@ -1,27 +1,36 @@ -{ - label = "Beer", - tooltip = "Cold wheat beer... mmmmm", +{ + label = "Companion Cube", shapes = { - { 0, 0, 2, 7, 1, 5, texture = "minecraft:blocks/log_spruce" }, - { 1, 0, 1, 6, 1, 6, texture = "minecraft:blocks/log_spruce" }, - { 2, 0, 0, 5, 1, 7, texture = "minecraft:blocks/log_spruce" }, - { 0, 1, 2, 1, 7, 5, texture = "minecraft:blocks/log_spruce" }, - { 1, 1, 1, 2, 7, 2, texture = "minecraft:blocks/log_spruce" }, - { 1, 1, 5, 2, 7, 6, texture = "minecraft:blocks/log_spruce" }, - { 2, 1, 0, 5, 7, 1, texture = "minecraft:blocks/log_spruce" }, - { 2, 1, 6, 5, 7, 7, texture = "minecraft:blocks/log_spruce" }, - { 5, 1, 1, 6, 7, 2, texture = "minecraft:blocks/log_spruce" }, - { 5, 1, 5, 6, 7, 6, texture = "minecraft:blocks/log_spruce" }, - { 6, 1, 2, 7, 7, 5, texture = "minecraft:blocks/log_spruce" }, - { 7, 1, 3, 9, 2, 4, texture = "minecraft:blocks/stone" }, - { 5, 2, 0, 6, 8, 1, texture = "minecraft:blocks/snow", tint = 16771749 }, - { 6, 2, 1, 7, 8, 2, texture = "minecraft:blocks/snow", tint = 16771749 }, - { 8, 2, 3, 9, 6, 4, texture = "minecraft:blocks/stone" }, - { 7, 5, 3, 9, 6, 4, texture = "minecraft:blocks/stone" }, - { 1, 6, 2, 6, 7, 5, texture = "minecraft:blocks/snow", tint = 16771749 }, - { 2, 6, 1, 5, 8, 5, texture = "minecraft:blocks/snow", tint = 16771749 }, - { 2, 6, 5, 5, 7, 6, texture = "minecraft:blocks/snow", tint = 16771749 }, - { 3, 7, 0, 6, 8, 5, texture = "minecraft:blocks/snow", tint = 16771749 }, - { 3, 8, 1, 6, 9, 4, texture = "minecraft:blocks/snow", tint = 16771749 } + -- Center + {2, 2,2, 14, 14, 14, texture = "wool_colored_gray"}, + + -- Corners + { 0, 0, 0, 5, 5, 5, texture = "wool_colored_silver"}, + { 0, 0, 11, 5, 5, 16, texture = "wool_colored_silver"}, + { 0, 11, 0, 5, 16, 5, texture = "wool_colored_silver"}, + { 0, 11, 11, 5, 16, 16, texture = "wool_colored_silver"}, + { 11, 0, 0, 16, 5, 5, texture = "wool_colored_silver"}, + { 11, 0, 11, 16, 5, 16, texture = "wool_colored_silver"}, + { 11, 11, 0, 16, 16, 5, texture = "wool_colored_silver"}, + { 11, 11, 11, 16, 16, 16, texture = "wool_colored_silver"}, + + -- Edges + { 1, 6, 1, 3, 10, 3, texture = "wool_colored_silver"}, + { 1, 6, 13, 3, 10, 15, texture = "wool_colored_silver"}, + { 13, 6, 1, 15, 10, 3, texture = "wool_colored_silver"}, + { 13, 6, 13, 15, 10, 15, texture = "wool_colored_silver"}, + { 6, 1, 1, 10, 3, 3, texture = "wool_colored_silver"}, + { 6, 1, 13, 10, 3, 15, texture = "wool_colored_silver"}, + { 6, 13, 1, 10, 15, 3, texture = "wool_colored_silver"}, + { 6, 13, 13, 10, 15, 15, texture = "wool_colored_silver"}, + { 1, 1, 6, 3, 3, 10, texture = "wool_colored_silver"}, + { 13, 1, 6, 15, 3, 10, texture = "wool_colored_silver"}, + { 1, 13, 6, 3, 15, 10, texture = "wool_colored_silver"}, + { 13, 13, 6, 15, 15, 10, texture = "wool_colored_silver"}, + + -- Centers + { 1, 6, 6, 15, 10, 10, texture = "wool_colored_magenta"}, + { 6, 6, 1, 10, 10, 15, texture = "wool_colored_magenta"}, + { 6, 1, 6, 10, 15, 10, texture = "wool_colored_magenta"} } -} \ No newline at end of file +} diff --git a/Libraries/BigLetters.lua b/Libraries/BigLetters.lua index acc59e1a..eb8a2b17 100755 --- a/Libraries/BigLetters.lua +++ b/Libraries/BigLetters.lua @@ -7,607 +7,603 @@ local lettersInterval = 2 local unknownSymbol = "*" local spaceWidth = 2 -local letters = { - ["0"] = { - { 1, 1, 1 }, - { 1, 0, 1 }, - { 1, 0, 1 }, - { 1, 0, 1 }, - { 1, 1, 1 }, - }, - ["1"] = { - { 0, 1, 0 }, - { 1, 1, 0 }, - { 0, 1, 0 }, - { 0, 1, 0 }, - { 1, 1, 1 }, - }, - ["2"] = { - { 1, 1, 1 }, - { 0, 0, 1 }, - { 1, 1, 1 }, - { 1, 0, 0 }, - { 1, 1, 1 }, - }, - ["3"] = { - { 1, 1, 1 }, - { 0, 0, 1 }, - { 1, 1, 1 }, - { 0, 0, 1 }, - { 1, 1, 1 }, - }, - ["4"] = { - { 1, 0, 1 }, - { 1, 0, 1 }, - { 1, 1, 1 }, - { 0, 0, 1 }, - { 0, 0, 1 }, - }, - ["5"] = { - { 1, 1, 1 }, - { 1, 0, 0 }, - { 1, 1, 1 }, - { 0, 0, 1 }, - { 1, 1, 1 }, - }, - ["6"] = { - { 1, 1, 1 }, - { 1, 0, 0 }, - { 1, 1, 1 }, - { 1, 0, 1 }, - { 1, 1, 1 }, - }, - ["7"] = { - { 1, 1, 1 }, - { 0, 0, 1 }, - { 0, 0, 1 }, - { 0, 0, 1 }, - { 0, 0, 1 }, - }, - ["8"] = { - { 1, 1, 1 }, - { 1, 0, 1 }, - { 1, 1, 1 }, - { 1, 0, 1 }, - { 1, 1, 1 }, - }, - ["9"] = { - { 1, 1, 1 }, - { 1, 0, 1 }, - { 1, 1, 1 }, - { 0, 0, 1 }, - { 1, 1, 1 }, - }, +local function getCharTable(c) + return ({ + ["0"] = { + { 1, 1, 1 }, + { 1, 0, 1 }, + { 1, 0, 1 }, + { 1, 0, 1 }, + { 1, 1, 1 }, + }, + ["1"] = { + { 0, 1, 0 }, + { 1, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 1, 1, 1 }, + }, + ["2"] = { + { 1, 1, 1 }, + { 0, 0, 1 }, + { 1, 1, 1 }, + { 1, 0, 0 }, + { 1, 1, 1 }, + }, + ["3"] = { + { 1, 1, 1 }, + { 0, 0, 1 }, + { 1, 1, 1 }, + { 0, 0, 1 }, + { 1, 1, 1 }, + }, + ["4"] = { + { 1, 0, 1 }, + { 1, 0, 1 }, + { 1, 1, 1 }, + { 0, 0, 1 }, + { 0, 0, 1 }, + }, + ["5"] = { + { 1, 1, 1 }, + { 1, 0, 0 }, + { 1, 1, 1 }, + { 0, 0, 1 }, + { 1, 1, 1 }, + }, + ["6"] = { + { 1, 1, 1 }, + { 1, 0, 0 }, + { 1, 1, 1 }, + { 1, 0, 1 }, + { 1, 1, 1 }, + }, + ["7"] = { + { 1, 1, 1 }, + { 0, 0, 1 }, + { 0, 0, 1 }, + { 0, 0, 1 }, + { 0, 0, 1 }, + }, + ["8"] = { + { 1, 1, 1 }, + { 1, 0, 1 }, + { 1, 1, 1 }, + { 1, 0, 1 }, + { 1, 1, 1 }, + }, + ["9"] = { + { 1, 1, 1 }, + { 1, 0, 1 }, + { 1, 1, 1 }, + { 0, 0, 1 }, + { 1, 1, 1 }, + }, - ["a"] = { - { 0, 1, 1, 0 }, - { 1, 0, 0, 1 }, - { 1, 1, 1, 1 }, - { 1, 0, 0, 1 }, - { 1, 0, 0, 1 }, - }, - ["b"] = { - { 1, 1, 1, 0}, - { 1, 0, 0, 1}, - { 1, 1, 1, 0}, - { 1, 0, 0, 1}, - { 1, 1, 1, 1}, - }, - ["c"] = { - { 0, 1, 1, 1 }, - { 1, 0, 0, 0 }, - { 1, 0, 0, 0 }, - { 1, 0, 0, 0 }, - { 0, 1, 1, 1 }, - }, - ["d"] = { - { 1, 1, 1, 1, 0 }, - { 0, 1, 0, 0, 1 }, - { 0, 1, 0, 0, 1 }, - { 0, 1, 0, 0, 1 }, - { 1, 1, 1, 1, 0 }, - }, - ["e"] = { - { 1, 1, 1, 1 }, - { 1, 0, 0, 0 }, - { 1, 1, 1, 0 }, - { 1, 0, 0, 0 }, - { 1, 1, 1, 1 }, - }, - ["f"] = { - { 1, 1, 1, 1 }, - { 1, 0, 0, 0 }, - { 1, 1, 1, 0 }, - { 1, 0, 0, 0 }, - { 1, 0, 0, 0 }, - }, - ["g"] = { - { 0, 1, 1, 1}, - { 1, 0, 0, 0}, - { 1, 0, 1, 1}, - { 1, 0, 0, 1}, - { 0, 1, 1, 1}, - }, - ["h"] = { - { 1, 0, 0, 1}, - { 1, 0, 0, 1}, - { 1, 1, 1, 1}, - { 1, 0, 0, 1}, - { 1, 0, 0, 1}, - }, - ["i"] = { - { 1, 1, 1}, - { 0, 1, 0}, - { 0, 1, 0}, - { 0, 1, 0}, - { 1, 1, 1}, - }, - ["j"] = { - { 0, 0, 1}, - { 0, 0, 1}, - { 0, 0, 1}, - { 1, 0, 1}, - { 0, 1, 0}, - }, - ["k"] = { - { 1, 0, 0, 1}, - { 1, 0, 1, 0}, - { 1, 1, 0, 0}, - { 1, 0, 1, 0}, - { 1, 0, 0, 1}, - }, - ["l"] = { - { 1, 0, 0}, - { 1, 0, 0}, - { 1, 0, 0}, - { 1, 0, 0}, - { 1, 1, 1}, - }, - ["m"] = { - { 1, 0, 0, 0, 1 }, - { 1, 1, 0, 1, 1 }, - { 1, 0, 1, 0, 1 }, - { 1, 0, 0, 0, 1 }, - { 1, 0, 0, 0, 1 }, - }, - ["n"] = { - { 1, 0, 0, 0, 1 }, - { 1, 1, 0, 0, 1 }, - { 1, 0, 1, 0, 1 }, - { 1, 0, 0, 1, 1 }, - { 1, 0, 0, 0, 1 }, - }, - ["o"] = { - { 0, 1, 1, 0}, - { 1, 0, 0, 1}, - { 1, 0, 0, 1}, - { 1, 0, 0, 1}, - { 0, 1, 1, 0}, - }, - ["p"] = { - { 1, 1, 1, 0 }, - { 1, 0, 0, 1 }, - { 1, 1, 1, 0 }, - { 1, 0, 0, 0 }, - { 1, 0, 0, 0 }, - }, - ["q"] = { - { 0, 1, 1, 0}, - { 1, 0, 0, 1}, - { 1, 0, 0, 1}, - { 1, 0, 1, 1}, - { 0, 1, 1, 0}, - }, - ["r"] = { - { 1, 1, 1, 0}, - { 1, 0, 0, 1}, - { 1, 1, 1, 0}, - { 1, 0, 0, 1}, - { 1, 0, 0, 1}, - }, - ["s"] = { - { 0, 1, 1, 1}, - { 1, 0, 0, 0}, - { 0, 1, 1, 0}, - { 0, 0, 0, 1}, - { 1, 1, 1, 0}, - }, - ["t"] = { - { 1, 1, 1, 1, 1 }, - { 0, 0, 1, 0, 0 }, - { 0, 0, 1, 0, 0 }, - { 0, 0, 1, 0, 0 }, - { 0, 0, 1, 0, 0 }, - }, - ["u"] = { - { 1, 0, 0, 1}, - { 1, 0, 0, 1}, - { 1, 0, 0, 1}, - { 1, 0, 0, 1}, - { 0, 1, 1, 0}, - }, - ["v"] = { - { 1, 0, 0, 0, 1 }, - { 1, 0, 0, 0, 1 }, - { 1, 0, 0, 0, 1 }, - { 0, 1, 0, 1, 0 }, - { 0, 0, 1, 0, 0 }, - }, - ["w"] = { - { 1, 0, 0, 0, 1 }, - { 1, 0, 0, 0, 1 }, - { 1, 0, 1, 0, 1 }, - { 1, 0, 1, 0, 1 }, - { 0, 1, 0, 1, 0 }, - }, - ["x"] = { - { 1, 0, 0, 0, 1 }, - { 0, 1, 0, 1, 0 }, - { 0, 0, 1, 0, 0 }, - { 0, 1, 0, 1, 0 }, - { 1, 0, 0, 0, 1 }, - }, - ["y"] = { - { 1, 0, 0, 1 }, - { 1, 0, 0, 1 }, - { 0, 1, 1, 1 }, - { 0, 0, 0, 1 }, - { 1, 1, 1, 0 }, - }, - ["z"] = { - { 1, 1, 1, 1, 1 }, - { 0, 0, 0, 1, 0 }, - { 0, 0, 1, 0, 0 }, - { 0, 1, 0, 0, 0 }, - { 1, 1, 1, 1, 1 }, - }, - ["а"] = { - { 0, 1, 1, 0 }, - { 1, 0, 0, 1 }, - { 1, 1, 1, 1 }, - { 1, 0, 0, 1 }, - { 1, 0, 0, 1 }, - }, - ["б"] = { - { 1, 1, 1, 1 }, - { 1, 0, 0, 0 }, - { 1, 1, 1, 0 }, - { 1, 0, 0, 1 }, - { 1, 1, 1, 0 }, - }, - ["в"] = { - { 1, 1, 1, 0 }, - { 1, 0, 0, 1 }, - { 1, 1, 1, 0 }, - { 1, 0, 0, 1 }, - { 1, 1, 1, 0 }, - }, - ["г"] = { - { 1, 1, 1 }, - { 1, 0, 0 }, - { 1, 0, 0 }, - { 1, 0, 0 }, - { 1, 0, 0 }, - }, - ["д"] = { - { 0, 0, 1, 1, 0 }, - { 0, 1, 0, 1, 0 }, - { 0, 1, 0, 1, 0 }, - { 0, 1, 0, 1, 0 }, - { 1, 1, 1, 1, 1 }, - }, - ["е"] = { - { 1, 1, 1, 1 }, - { 1, 0, 0, 0 }, - { 1, 1, 1, 0 }, - { 1, 0, 0, 0 }, - { 1, 1, 1, 1 }, - }, - ["ё"] = { - { 1, 0, 1, 0 }, - { 0, 0, 0, 0 }, - { 1, 1, 1, 1 }, - { 1, 0, 0, 0 }, - { 1, 1, 1, 0 }, - { 1, 0, 0, 0 }, - { 1, 1, 1, 1 }, - }, - ["ж"] = { - { 1, 0, 1, 0, 1 }, - { 0, 1, 1, 1, 0 }, - { 0, 0, 1, 0, 0 }, - { 0, 1, 1, 1, 0 }, - { 1, 0, 1, 0, 1 }, - }, - ["з"] = { - { 0, 1, 1, 1, 0 }, - { 0, 0, 0, 0, 1 }, - { 0, 0, 1, 1, 0 }, - { 0, 0, 0, 0, 1 }, - { 0, 1, 1, 1, 0 }, - }, - ["и"] = { - { 1, 0, 0, 0, 1 }, - { 1, 0, 0, 1, 1 }, - { 1, 0, 1, 0, 1 }, - { 1, 1, 0, 0, 1 }, - { 1, 0, 0, 0, 1 }, - }, - ["й"] = { - { 0, 1, 1, 1, 0 }, - { 0, 0, 0, 0, 0 }, - { 1, 0, 0, 0, 1 }, - { 1, 0, 0, 1, 1 }, - { 1, 0, 1, 0, 1 }, - { 1, 1, 0, 0, 1 }, - { 1, 0, 0, 0, 1 }, - }, - ["к"] = { - { 1, 0, 0, 1, 0 }, - { 1, 0, 1, 0, 0 }, - { 1, 1, 0, 0, 0 }, - { 1, 0, 1, 0, 0 }, - { 1, 0, 0, 1, 0 }, - }, - ["л"] = { - { 0, 0, 1, 1 }, - { 0, 1, 0, 1 }, - { 0, 1, 0, 1 }, - { 1, 0, 0, 1 }, - { 1, 0, 0, 1 }, - }, - ["м"] = { - { 1, 0, 0, 0, 1 }, - { 1, 1, 0, 1, 1 }, - { 1, 0, 1, 0, 1 }, - { 1, 0, 0, 0, 1 }, - { 1, 0, 0, 0, 1 }, - }, - ["н"] = { - { 1, 0, 0, 1 }, - { 1, 0, 0, 1 }, - { 1, 1, 1, 1 }, - { 1, 0, 0, 1 }, - { 1, 0, 0, 1 }, - }, - ["о"] = { - { 0, 1, 1, 0 }, - { 1, 0, 0, 1 }, - { 1, 0, 0, 1 }, - { 1, 0, 0, 1 }, - { 0, 1, 1, 0 }, - }, - ["п"] = { - { 1, 1, 1, 1 }, - { 1, 0, 0, 1 }, - { 1, 0, 0, 1 }, - { 1, 0, 0, 1 }, - { 1, 0, 0, 1 }, - }, - ["р"] = { - { 1, 1, 1, 0}, - { 1, 0, 0, 1}, - { 1, 1, 1, 0}, - { 1, 0, 0, 0}, - { 1, 0, 0, 0}, - }, - ["с"] = { - { 0, 1, 1, 1 }, - { 1, 0, 0, 0 }, - { 1, 0, 0, 0 }, - { 1, 0, 0, 0 }, - { 0, 1, 1, 1 }, - }, - ["т"] = { - { 1, 1, 1, 1, 1 }, - { 0, 0, 1, 0, 0 }, - { 0, 0, 1, 0, 0 }, - { 0, 0, 1, 0, 0 }, - { 0, 0, 1, 0, 0 }, - }, - ["у"] = { - { 1, 0, 0, 1 }, - { 1, 0, 0, 1 }, - { 0, 1, 1, 1 }, - { 0, 0, 0, 1 }, - { 1, 1, 1, 0 }, - }, - ["ф"] = { - { 0, 1, 1, 1, 0 }, - { 1, 0, 1, 0, 1 }, - { 0, 1, 1, 1, 0 }, - { 0, 0, 1, 0, 0 }, - { 0, 0, 1, 0, 0 }, - }, - ["х"] = { - { 1, 0, 0, 0, 1 }, - { 0, 1, 0, 1, 0 }, - { 0, 0, 1, 0, 0 }, - { 0, 1, 0, 1, 0 }, - { 1, 0, 0, 0, 1 }, - }, - ["ц"] = { - { 1, 0, 0, 1, 0 }, - { 1, 0, 0, 1, 0 }, - { 1, 0, 0, 1, 0 }, - { 1, 0, 0, 1, 0 }, - { 0, 1, 1, 1, 1 }, - }, - ["ч"] = { - { 1, 0, 0, 1 }, - { 1, 0, 0, 1 }, - { 0, 1, 1, 1 }, - { 0, 0, 0, 1 }, - { 0, 0, 0, 1 }, - }, - ["ш"] = { - { 1, 0, 0, 0, 1 }, - { 1, 0, 0, 0, 1 }, - { 1, 0, 1, 0, 1 }, - { 1, 0, 1, 0, 1 }, - { 1, 1, 1, 1, 1 }, - }, - ["щ"] = { - { 1, 0, 0, 0, 1, 0 }, - { 1, 0, 0, 0, 1, 0 }, - { 1, 0, 1, 0, 1, 0 }, - { 1, 0, 1, 0, 1, 0 }, - { 1, 1, 1, 1, 1, 1 }, - }, - ["ъ"] = { - { 1, 1, 0, 0, 0 }, - { 0, 1, 0, 0, 0 }, - { 0, 1, 1, 1, 0 }, - { 0, 1, 0, 0, 1 }, - { 0, 1, 1, 1, 0 }, - }, - ["ы"] = { - { 1, 0, 0, 0, 0, 1 }, - { 1, 0, 0, 0, 0, 1 }, - { 1, 1, 1, 0, 0, 1 }, - { 1, 0, 0, 1, 0, 1 }, - { 1, 1, 1, 0, 0, 1 }, - }, - ["ь"] = { - { 1, 0, 0, 0 }, - { 1, 0, 0, 0 }, - { 1, 1, 1, 0 }, - { 1, 0, 0, 1 }, - { 1, 1, 1, 0 }, - }, - ["э"] = { - { 1, 1, 1, 0 }, - { 0, 0, 0, 1 }, - { 0, 1, 1, 1 }, - { 0, 0, 0, 1 }, - { 1, 1, 1, 0 }, - }, - ["ю"] = { - { 1, 0, 0, 1, 1, 0 }, - { 1, 0, 1, 0, 0, 1 }, - { 1, 1, 1, 0, 0, 1 }, - { 1, 0, 1, 0, 0, 1 }, - { 1, 0, 0, 1, 1, 0 }, - }, - ["я"] = { - { 0, 1, 1, 1 }, - { 1, 0, 0, 1 }, - { 0, 1, 1, 1 }, - { 1, 0, 0, 1 }, - { 1, 0, 0, 1 }, - }, + ["a"] = { + { 0, 1, 1, 0 }, + { 1, 0, 0, 1 }, + { 1, 1, 1, 1 }, + { 1, 0, 0, 1 }, + { 1, 0, 0, 1 }, + }, + ["b"] = { + { 1, 1, 1, 0}, + { 1, 0, 0, 1}, + { 1, 1, 1, 0}, + { 1, 0, 0, 1}, + { 1, 1, 1, 1}, + }, + ["c"] = { + { 0, 1, 1, 1 }, + { 1, 0, 0, 0 }, + { 1, 0, 0, 0 }, + { 1, 0, 0, 0 }, + { 0, 1, 1, 1 }, + }, + ["d"] = { + { 1, 1, 1, 1, 0 }, + { 0, 1, 0, 0, 1 }, + { 0, 1, 0, 0, 1 }, + { 0, 1, 0, 0, 1 }, + { 1, 1, 1, 1, 0 }, + }, + ["e"] = { + { 1, 1, 1, 1 }, + { 1, 0, 0, 0 }, + { 1, 1, 1, 0 }, + { 1, 0, 0, 0 }, + { 1, 1, 1, 1 }, + }, + ["f"] = { + { 1, 1, 1, 1 }, + { 1, 0, 0, 0 }, + { 1, 1, 1, 0 }, + { 1, 0, 0, 0 }, + { 1, 0, 0, 0 }, + }, + ["g"] = { + { 0, 1, 1, 1}, + { 1, 0, 0, 0}, + { 1, 0, 1, 1}, + { 1, 0, 0, 1}, + { 0, 1, 1, 1}, + }, + ["h"] = { + { 1, 0, 0, 1}, + { 1, 0, 0, 1}, + { 1, 1, 1, 1}, + { 1, 0, 0, 1}, + { 1, 0, 0, 1}, + }, + ["i"] = { + { 1, 1, 1}, + { 0, 1, 0}, + { 0, 1, 0}, + { 0, 1, 0}, + { 1, 1, 1}, + }, + ["j"] = { + { 0, 0, 1}, + { 0, 0, 1}, + { 0, 0, 1}, + { 1, 0, 1}, + { 0, 1, 0}, + }, + ["k"] = { + { 1, 0, 0, 1}, + { 1, 0, 1, 0}, + { 1, 1, 0, 0}, + { 1, 0, 1, 0}, + { 1, 0, 0, 1}, + }, + ["l"] = { + { 1, 0, 0}, + { 1, 0, 0}, + { 1, 0, 0}, + { 1, 0, 0}, + { 1, 1, 1}, + }, + ["m"] = { + { 1, 0, 0, 0, 1 }, + { 1, 1, 0, 1, 1 }, + { 1, 0, 1, 0, 1 }, + { 1, 0, 0, 0, 1 }, + { 1, 0, 0, 0, 1 }, + }, + ["n"] = { + { 1, 0, 0, 0, 1 }, + { 1, 1, 0, 0, 1 }, + { 1, 0, 1, 0, 1 }, + { 1, 0, 0, 1, 1 }, + { 1, 0, 0, 0, 1 }, + }, + ["o"] = { + { 0, 1, 1, 0}, + { 1, 0, 0, 1}, + { 1, 0, 0, 1}, + { 1, 0, 0, 1}, + { 0, 1, 1, 0}, + }, + ["p"] = { + { 1, 1, 1, 0 }, + { 1, 0, 0, 1 }, + { 1, 1, 1, 0 }, + { 1, 0, 0, 0 }, + { 1, 0, 0, 0 }, + }, + ["q"] = { + { 0, 1, 1, 0}, + { 1, 0, 0, 1}, + { 1, 0, 0, 1}, + { 1, 0, 1, 1}, + { 0, 1, 1, 0}, + }, + ["r"] = { + { 1, 1, 1, 0}, + { 1, 0, 0, 1}, + { 1, 1, 1, 0}, + { 1, 0, 0, 1}, + { 1, 0, 0, 1}, + }, + ["s"] = { + { 0, 1, 1, 1}, + { 1, 0, 0, 0}, + { 0, 1, 1, 0}, + { 0, 0, 0, 1}, + { 1, 1, 1, 0}, + }, + ["t"] = { + { 1, 1, 1, 1, 1 }, + { 0, 0, 1, 0, 0 }, + { 0, 0, 1, 0, 0 }, + { 0, 0, 1, 0, 0 }, + { 0, 0, 1, 0, 0 }, + }, + ["u"] = { + { 1, 0, 0, 1}, + { 1, 0, 0, 1}, + { 1, 0, 0, 1}, + { 1, 0, 0, 1}, + { 0, 1, 1, 0}, + }, + ["v"] = { + { 1, 0, 0, 0, 1 }, + { 1, 0, 0, 0, 1 }, + { 1, 0, 0, 0, 1 }, + { 0, 1, 0, 1, 0 }, + { 0, 0, 1, 0, 0 }, + }, + ["w"] = { + { 1, 0, 0, 0, 1 }, + { 1, 0, 0, 0, 1 }, + { 1, 0, 1, 0, 1 }, + { 1, 0, 1, 0, 1 }, + { 0, 1, 0, 1, 0 }, + }, + ["x"] = { + { 1, 0, 0, 0, 1 }, + { 0, 1, 0, 1, 0 }, + { 0, 0, 1, 0, 0 }, + { 0, 1, 0, 1, 0 }, + { 1, 0, 0, 0, 1 }, + }, + ["y"] = { + { 1, 0, 0, 1 }, + { 1, 0, 0, 1 }, + { 0, 1, 1, 1 }, + { 0, 0, 0, 1 }, + { 1, 1, 1, 0 }, + }, + ["z"] = { + { 1, 1, 1, 1, 1 }, + { 0, 0, 0, 1, 0 }, + { 0, 0, 1, 0, 0 }, + { 0, 1, 0, 0, 0 }, + { 1, 1, 1, 1, 1 }, + }, + ["а"] = { + { 0, 1, 1, 0 }, + { 1, 0, 0, 1 }, + { 1, 1, 1, 1 }, + { 1, 0, 0, 1 }, + { 1, 0, 0, 1 }, + }, + ["б"] = { + { 1, 1, 1, 1 }, + { 1, 0, 0, 0 }, + { 1, 1, 1, 0 }, + { 1, 0, 0, 1 }, + { 1, 1, 1, 0 }, + }, + ["в"] = { + { 1, 1, 1, 0 }, + { 1, 0, 0, 1 }, + { 1, 1, 1, 0 }, + { 1, 0, 0, 1 }, + { 1, 1, 1, 0 }, + }, + ["г"] = { + { 1, 1, 1 }, + { 1, 0, 0 }, + { 1, 0, 0 }, + { 1, 0, 0 }, + { 1, 0, 0 }, + }, + ["д"] = { + { 0, 0, 1, 1, 0 }, + { 0, 1, 0, 1, 0 }, + { 0, 1, 0, 1, 0 }, + { 0, 1, 0, 1, 0 }, + { 1, 1, 1, 1, 1 }, + }, + ["е"] = { + { 1, 1, 1, 1 }, + { 1, 0, 0, 0 }, + { 1, 1, 1, 0 }, + { 1, 0, 0, 0 }, + { 1, 1, 1, 1 }, + }, + ["ё"] = { + { 1, 0, 1, 0 }, + { 0, 0, 0, 0 }, + { 1, 1, 1, 1 }, + { 1, 0, 0, 0 }, + { 1, 1, 1, 0 }, + { 1, 0, 0, 0 }, + { 1, 1, 1, 1 }, + }, + ["ж"] = { + { 1, 0, 1, 0, 1 }, + { 0, 1, 1, 1, 0 }, + { 0, 0, 1, 0, 0 }, + { 0, 1, 1, 1, 0 }, + { 1, 0, 1, 0, 1 }, + }, + ["з"] = { + { 0, 1, 1, 1, 0 }, + { 0, 0, 0, 0, 1 }, + { 0, 0, 1, 1, 0 }, + { 0, 0, 0, 0, 1 }, + { 0, 1, 1, 1, 0 }, + }, + ["и"] = { + { 1, 0, 0, 0, 1 }, + { 1, 0, 0, 1, 1 }, + { 1, 0, 1, 0, 1 }, + { 1, 1, 0, 0, 1 }, + { 1, 0, 0, 0, 1 }, + }, + ["й"] = { + { 0, 1, 1, 1, 0 }, + { 0, 0, 0, 0, 0 }, + { 1, 0, 0, 0, 1 }, + { 1, 0, 0, 1, 1 }, + { 1, 0, 1, 0, 1 }, + { 1, 1, 0, 0, 1 }, + { 1, 0, 0, 0, 1 }, + }, + ["к"] = { + { 1, 0, 0, 1, 0 }, + { 1, 0, 1, 0, 0 }, + { 1, 1, 0, 0, 0 }, + { 1, 0, 1, 0, 0 }, + { 1, 0, 0, 1, 0 }, + }, + ["л"] = { + { 0, 0, 1, 1 }, + { 0, 1, 0, 1 }, + { 0, 1, 0, 1 }, + { 1, 0, 0, 1 }, + { 1, 0, 0, 1 }, + }, + ["м"] = { + { 1, 0, 0, 0, 1 }, + { 1, 1, 0, 1, 1 }, + { 1, 0, 1, 0, 1 }, + { 1, 0, 0, 0, 1 }, + { 1, 0, 0, 0, 1 }, + }, + ["н"] = { + { 1, 0, 0, 1 }, + { 1, 0, 0, 1 }, + { 1, 1, 1, 1 }, + { 1, 0, 0, 1 }, + { 1, 0, 0, 1 }, + }, + ["о"] = { + { 0, 1, 1, 0 }, + { 1, 0, 0, 1 }, + { 1, 0, 0, 1 }, + { 1, 0, 0, 1 }, + { 0, 1, 1, 0 }, + }, + ["п"] = { + { 1, 1, 1, 1 }, + { 1, 0, 0, 1 }, + { 1, 0, 0, 1 }, + { 1, 0, 0, 1 }, + { 1, 0, 0, 1 }, + }, + ["р"] = { + { 1, 1, 1, 0}, + { 1, 0, 0, 1}, + { 1, 1, 1, 0}, + { 1, 0, 0, 0}, + { 1, 0, 0, 0}, + }, + ["с"] = { + { 0, 1, 1, 1 }, + { 1, 0, 0, 0 }, + { 1, 0, 0, 0 }, + { 1, 0, 0, 0 }, + { 0, 1, 1, 1 }, + }, + ["т"] = { + { 1, 1, 1, 1, 1 }, + { 0, 0, 1, 0, 0 }, + { 0, 0, 1, 0, 0 }, + { 0, 0, 1, 0, 0 }, + { 0, 0, 1, 0, 0 }, + }, + ["у"] = { + { 1, 0, 0, 1 }, + { 1, 0, 0, 1 }, + { 0, 1, 1, 1 }, + { 0, 0, 0, 1 }, + { 1, 1, 1, 0 }, + }, + ["ф"] = { + { 0, 1, 1, 1, 0 }, + { 1, 0, 1, 0, 1 }, + { 0, 1, 1, 1, 0 }, + { 0, 0, 1, 0, 0 }, + { 0, 0, 1, 0, 0 }, + }, + ["х"] = { + { 1, 0, 0, 0, 1 }, + { 0, 1, 0, 1, 0 }, + { 0, 0, 1, 0, 0 }, + { 0, 1, 0, 1, 0 }, + { 1, 0, 0, 0, 1 }, + }, + ["ц"] = { + { 1, 0, 0, 1, 0 }, + { 1, 0, 0, 1, 0 }, + { 1, 0, 0, 1, 0 }, + { 1, 0, 0, 1, 0 }, + { 0, 1, 1, 1, 1 }, + }, + ["ч"] = { + { 1, 0, 0, 1 }, + { 1, 0, 0, 1 }, + { 0, 1, 1, 1 }, + { 0, 0, 0, 1 }, + { 0, 0, 0, 1 }, + }, + ["ш"] = { + { 1, 0, 0, 0, 1 }, + { 1, 0, 0, 0, 1 }, + { 1, 0, 1, 0, 1 }, + { 1, 0, 1, 0, 1 }, + { 1, 1, 1, 1, 1 }, + }, + ["щ"] = { + { 1, 0, 0, 0, 1, 0 }, + { 1, 0, 0, 0, 1, 0 }, + { 1, 0, 1, 0, 1, 0 }, + { 1, 0, 1, 0, 1, 0 }, + { 1, 1, 1, 1, 1, 1 }, + }, + ["ъ"] = { + { 1, 1, 0, 0, 0 }, + { 0, 1, 0, 0, 0 }, + { 0, 1, 1, 1, 0 }, + { 0, 1, 0, 0, 1 }, + { 0, 1, 1, 1, 0 }, + }, + ["ы"] = { + { 1, 0, 0, 0, 0, 1 }, + { 1, 0, 0, 0, 0, 1 }, + { 1, 1, 1, 0, 0, 1 }, + { 1, 0, 0, 1, 0, 1 }, + { 1, 1, 1, 0, 0, 1 }, + }, + ["ь"] = { + { 1, 0, 0, 0 }, + { 1, 0, 0, 0 }, + { 1, 1, 1, 0 }, + { 1, 0, 0, 1 }, + { 1, 1, 1, 0 }, + }, + ["э"] = { + { 1, 1, 1, 0 }, + { 0, 0, 0, 1 }, + { 0, 1, 1, 1 }, + { 0, 0, 0, 1 }, + { 1, 1, 1, 0 }, + }, + ["ю"] = { + { 1, 0, 0, 1, 1, 0 }, + { 1, 0, 1, 0, 0, 1 }, + { 1, 1, 1, 0, 0, 1 }, + { 1, 0, 1, 0, 0, 1 }, + { 1, 0, 0, 1, 1, 0 }, + }, + ["я"] = { + { 0, 1, 1, 1 }, + { 1, 0, 0, 1 }, + { 0, 1, 1, 1 }, + { 1, 0, 0, 1 }, + { 1, 0, 0, 1 }, + }, - ["-"] = { - { 0, 0, 0 }, - { 0, 0, 0 }, - { 1, 1, 1 }, - { 0, 0, 0 }, - { 0, 0, 0 }, - }, - ["_"] = { - { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, - { 1, 1, 1 }, - }, - ["+"] = { - { 0, 0, 0 }, - { 0, 1, 0 }, - { 1, 1, 1 }, - { 0, 1, 0 }, - { 0, 0, 0 }, - }, + ["-"] = { + { 0, 0, 0 }, + { 0, 0, 0 }, + { 1, 1, 1 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + }, + ["_"] = { + { 0, 0, 0 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 1, 1, 1 }, + }, + ["+"] = { + { 0, 0, 0 }, + { 0, 1, 0 }, + { 1, 1, 1 }, + { 0, 1, 0 }, + { 0, 0, 0 }, + }, - ["*"] = { - { 0, 0, 0 }, - { 1, 0, 1 }, - { 0, 1, 0 }, - { 1, 0, 1 }, - { 0, 0, 0 }, - }, - ["°"] = { - { 1 }, - { 0 }, - { 0 }, - { 0 }, - { 0 }, - }, - ["…"] = { - { 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0 }, - { 1, 0, 1, 0, 1 }, - }, -} + ["*"] = { + { 0, 0, 0 }, + { 1, 0, 1 }, + { 0, 1, 0 }, + { 1, 0, 1 }, + { 0, 0, 0 }, + }, + ["°"] = { + { 1 }, + { 0 }, + { 0 }, + { 0 }, + { 0 }, + }, + ["…"] = { + { 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0 }, + { 1, 0, 1, 0, 1 }, + }, + })[c] +end function bigLetters.draw(x, y, color, symbol, drawWithSymbol) - if symbol == " " then - return spaceWidth - elseif not letters[symbol] then - symbol = unknownSymbol - end + local char - for j = 1, #letters[symbol] do - for i = 1, #letters[symbol][j] do - if letters[symbol][j][i] == 1 then - if not drawWithSymbol then - screen.drawRectangle(x + i * 2 - 2, y + (pixelHeight - #letters[symbol]) + j - 1, 2, 1, color, 0xFFFFFF, " ") - else - screen.drawText(x + i * 2 - 2, y + (pixelHeight - #letters[symbol]) + j - 1, color, "*") - end - end - end - end + if symbol == " " then + return spaceWidth + else + char = getCharTable(symbol) or getCharTable(unknownSymbol) + end - return #letters[symbol][1] + for j = 1, #char do + for i = 1, #char[j] do + if char[j][i] == 1 then + if not drawWithSymbol then + screen.drawRectangle(x + i * 2 - 2, y + (pixelHeight - #char) + j - 1, 2, 1, color, 0xFFFFFF, " ") + else + screen.drawText(x + i * 2 - 2, y + (pixelHeight - #char) + j - 1, color, "*") + end + end + end + end + + return #char[1] end function bigLetters.drawText(x, y, color, stroka, drawWithSymbol) - checkArg(4, stroka, "string") - for i = 1, unicode.len(stroka) do - x = x + bigLetters.draw(x, y, color, unicode.sub(stroka, i, i), drawWithSymbol) * 2 + lettersInterval - end - return x + checkArg(4, stroka, "string") + + for i = 1, unicode.len(stroka) do + x = x + bigLetters.draw(x, y, color, unicode.sub(stroka, i, i), drawWithSymbol) * 2 + lettersInterval + end + + return x end function bigLetters.getTextSize(text) - local width, height = 0, 0 - local symbol, symbolWidth, symbolHeight - for i = 1, unicode.len(text) do - symbol = unicode.sub(text, i, i) - if symbol == " " then - symbolWidth = spaceWidth - symbolHeight = 5 - elseif not letters[symbol] then - symbolHeight = #letters[unknownSymbol] - symbolWidth = #letters[unknownSymbol][1] - else - symbolHeight = #letters[symbol] - symbolWidth = #letters[symbol][1] - end + local width, height = 0, 0 + local symbol, symbolWidth, symbolHeight, char + + for i = 1, unicode.len(text) do + symbol = unicode.sub(text, i, i) - width = width + symbolWidth * 2 + lettersInterval - height = math.max(height, symbolHeight) - end + if symbol == " " then + symbolWidth = spaceWidth + symbolHeight = 5 + else + char = getCharTable(symbol) or getCharTable(unknownSymbol) - return (width - lettersInterval), height + symbolHeight = #char + symbolWidth = #char[1] + end + + width = width + symbolWidth * 2 + lettersInterval + height = math.max(height, symbolHeight) + end + + return (width - lettersInterval), height end return bigLetters - - - - - - - - - - -