This commit is contained in:
Igor Timofeev 2015-12-25 15:41:14 +03:00
parent 03557e6ba0
commit 5b1f87e294
2 changed files with 58 additions and 3 deletions

View File

@ -3,6 +3,8 @@ local ecs = require("ECSAPI")
local hologram
local c = 23
-----------------------------------------------------------
if not component.isAvailable("hologram") then
ecs.error("Этой программе необходим голографический проектор 2 уровня.")
return
@ -10,6 +12,53 @@ else
hologram = component.hologram
end
-----------------------------------------------------------
local data = ecs.universalWindow("auto", "auto", 36, 0x262626, true,
{"EmptyLine"},
{"CenterText", ecs.colors.orange, "Настройки анимации"},
{"EmptyLine"},
{"Selector", 0xFFFFFF, ecs.colors.orange, "Снегопад", "Легкий снежок", "Что-то сыпется", "Без осадков"},
{"Selector", 0xFFFFFF, ecs.colors.orange, "Легкое вращение", "Быстрое вращение", "Турбина", "Дюраселл", "Без вращения"},
{"EmptyLine"},
{"CenterText", ecs.colors.orange, "Размер елочки"},
{"EmptyLine"},
{"Slider", ecs.colors.white, ecs.colors.orange, 1, 100, 50, "", ""},
{"EmptyLine"},
{"CenterText", ecs.colors.white, "Программа закрывается через"},
{"CenterText", ecs.colors.white, "CTRL + ALT + C"},
{"EmptyLine"},
{"Button", {ecs.colors.orange, 0xffffff, "OK"}, {0x999999, 0xffffff, "Отмена"}}
)
local snowMode, rotationMode, scale, buttonPress = data[1], data[2], data[3], data[4]
scale = scale * 4 / 100
if snowMode == "Снегопад" then
snowMode = 0
elseif snowMode == "Легкий снежок" then
snowMode = 0.2
elseif snowMode == "Что-то сыпется" then
snowMode = 0.5
end
if rotationMode == "Легкое вращение" then
rotationMode = 5
elseif rotationMode == "Быстрое вращение" then
rotationMode = 15
elseif rotationMode == "Турбина" then
rotationMode = 25
elseif rotationMode == "Дюраселл" then
rotationMode = 35
elseif rotationMode == "Без вращения" then
rotationMode = 0
end
if buttonPress == "Отмена" then return end
-----------------------------------------------------------
-- создаем модель елки
local tSpruce = {3, 2, 2, 2, 2, 8, 9, 10, 9, 8, 7, 6, 5, 4, 3, 4, 6, 8, 7, 6, 5, 4, 3, 6, 5, 4, 3, 2, 3, 2, 1}
@ -82,12 +131,16 @@ local function falling_snow() -- сдвигаем снежинки вниз
else
table.remove(tSnow,i)
end
os.sleep(0)
os.sleep(snowMode)
end
end
ecs.info("auto", "auto", "", "Счастливого нового года!")
hologram.clear()
hologram.setScale(20)
hologram.setRotationSpeed(rotationMode, 0, 23, 0)
spruce()
while 1 do
gen_snow()

View File

@ -1959,7 +1959,7 @@ function ECSAPI.universalWindow(x, y, width, background, closeWindowAfter, ...)
--Элементы рисуем
xPos = xPos + 2
for i = 1, countOfElements do
ECSAPI.colorText(xPos, yPos, 0x000000, ECSAPI.stringLimit("start", objects[number][i + 3], spisokWidth - 4))
ECSAPI.colorText(xPos, yPos, borderColor, ECSAPI.stringLimit("start", objects[number][i + 3], spisokWidth - 4))
coords[i] = {xPos - 1, yPos, xPos + spisokWidth - 4, yPos}
yPos = yPos + 1
end
@ -2200,7 +2200,7 @@ function ECSAPI.demoWindow()
--Очищаем экран перед юзанием окна и ставим курсор на 1, 1
ECSAPI.prepareToExit()
--Рисуем окно и получаем данные после взаимодействия с ним
local data = ECSAPI.universalWindow("auto", "auto", 36, 0xeeeeee, true, {"EmptyLine"}, {"CenterText", 0x880000, "Здорово, ебана!"}, {"EmptyLine"}, {"Input", 0x262626, 0x880000, "Сюда вводить можно"}, {"Selector", 0x262626, 0x880000, "Выбор формата", "PNG", "JPG", "GIF", "PSD"}, {"EmptyLine"}, {"WrappedText", 0x262626, "Тест автоматического переноса букв в зависимости от ширины данного окна. Пока что тупо режет на куски, не особо красиво."}, {"EmptyLine"}, {"Select", 0x262626, 0x880000, "Я пидор", "Я не пидор"}, {"Slider", 0x262626, 0x880000, 1, 100, 50, "Убито ", " младенцев"}, {"EmptyLine"}, {"Separator", 0xaaaaaa}, {"Switch", 0xF2B233, 0xffffff, 0x262626, "✈ Авиарежим", false}, {"EmptyLine"}, {"Switch", 0x3366CC, 0xffffff, 0x262626, "Не беспокоить", true}, {"Separator", 0xaaaaaa}, {"EmptyLine"}, {"TextField", 5, 0xffffff, 0x262626, 0xcccccc, 0x3366CC, "Тест текстового информационного поля. По сути это тот же самый WrappedText, разве что эта хрень ограничена по высоте, и ее можно скроллить. Ну же, поскролль меня! Скролль меня полностью! Моя жадная пизда жаждет твой хуй!"}, {"EmptyLine"}, {"Button", {0x57A64E, 0xffffff, "Да"}, {0xF2B233, 0xffffff, "Нет"}, {0xCC4C4C, 0xffffff, "Отмена"}})
local data = ECSAPI.universalWindow("auto", "auto", 36, 0xeeeeee, true, {"EmptyLine"}, {"CenterText", 0x880000, "Здорово, ебана!"}, {"EmptyLine"}, {"Input", 0x262626, 0x880000, "Сюда вводить можно"}, {"Selector", ECSAPI.colors.green, 0x880000, "Выбор формата", "PNG", "JPG", "GIF", "PSD"}, {"EmptyLine"}, {"WrappedText", 0x262626, "Тест автоматического переноса букв в зависимости от ширины данного окна. Пока что тупо режет на куски, не особо красиво."}, {"EmptyLine"}, {"Select", 0x262626, 0x880000, "Я пидор", "Я не пидор"}, {"Slider", 0x262626, 0x880000, 1, 100, 50, "Убито ", " младенцев"}, {"EmptyLine"}, {"Separator", 0xaaaaaa}, {"Switch", 0xF2B233, 0xffffff, 0x262626, "✈ Авиарежим", false}, {"EmptyLine"}, {"Switch", 0x3366CC, 0xffffff, 0x262626, "Не беспокоить", true}, {"Separator", 0xaaaaaa}, {"EmptyLine"}, {"TextField", 5, 0xffffff, 0x262626, 0xcccccc, 0x3366CC, "Тест текстового информационного поля. По сути это тот же самый WrappedText, разве что эта хрень ограничена по высоте, и ее можно скроллить. Ну же, поскролль меня! Скролль меня полностью! Моя жадная пизда жаждет твой хуй!"}, {"EmptyLine"}, {"Button", {0x57A64E, 0xffffff, "Да"}, {0xF2B233, 0xffffff, "Нет"}, {0xCC4C4C, 0xffffff, "Отмена"}})
--Еще разок
ECSAPI.prepareToExit()
--Выводим данные
@ -2210,6 +2210,8 @@ function ECSAPI.demoWindow()
print(" ")
end
-- ECSAPI.demoWindow()
--[[
Функция universalWindow(x, y, width, background, closeWindowAfter, ...)