From e9905fd000968fa82eb7792d8a5da041b8b232b2 Mon Sep 17 00:00:00 2001 From: Igor Timofeev Date: Wed, 30 Sep 2015 22:20:53 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B8=D0=BB=20=D0=B7?= =?UTF-8?q?=D0=B0=20=D0=BD=D0=B5=D0=BD=D0=B0=D0=B4=D0=BE=D0=B1=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D1=8C=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Applications/3DEdit/3DEdit.lua | 303 --------------------------------- Applications/3DEdit/Icon.png | 4 - 2 files changed, 307 deletions(-) delete mode 100644 Applications/3DEdit/3DEdit.lua delete mode 100644 Applications/3DEdit/Icon.png diff --git a/Applications/3DEdit/3DEdit.lua b/Applications/3DEdit/3DEdit.lua deleted file mode 100644 index e0167550..00000000 --- a/Applications/3DEdit/3DEdit.lua +++ /dev/null @@ -1,303 +0,0 @@ -local c = require("component") -local gpu = c.gpu -local holo = c.hologram -local ecs = require("ECSAPI") -local event = require("event") - ---------------- - -local model = {} - -local xDraw, yDraw = 17, 2 - -local transparencyColors = {0xdddddd, 0xffffff} - ---Призрачные слои внизу -local showFullProjection = true - -local currentLayer = 1 -local currentScale = 50 - -local colors = {0xff0000, 0x00ff00, 0x0000ff} -local currentColorPalette = 1 - -local maxHeight = 32 -local maxWidth, maxLength = 48, 48 - -local oldResolution = {gpu.getResolution()} -gpu.setResolution(160, 50) -local xSize, ySize = gpu.getResolution() - ---------------------------------------- - ---СОЗДАНИЕ ОБЪЕКТОВ -local obj = {} -local function newObj(class, name, ...) - obj[class] = obj[class] or {} - obj[class][name] = {...} -end - ---Создать вообще пустой массив -local function createBlank() - for x = 1, 48 do - model[x] = {} - for z = 1, 48 do - model[x][z] = {} - for y = 1, 32 do - model[x][z][y] = nil - end - end - end -end - ---Прозрачная поебонька -local function drawTransparency() - local line = "" - for i = 1, (maxWidth / 2) do - line = line .. "██ " - end - - --Стартовый фон - gpu.setBackground(transparencyColors[2]) - gpu.fill(xDraw, yDraw, maxWidth * 2, maxWidth, " ") - - --Кубики - gpu.setForeground(transparencyColors[1]) - for i = 1, (maxWidth) do - gpu.set(xDraw + (i % 2) * 2, yDraw + i - 1, line) - end - - --Очистка хуйни справа - gpu.setBackground(0x262626) - gpu.fill(xDraw + maxWidth * 2, yDraw, 2, maxWidth, " ") - -end - ---░░ ---Нарисовать конкретный слой -local function drawLayer(layer, symbol) - if not symbol then symbol = "██" end - - if currentLayer > 1 and symbol ~= "░░" then - for y = 1, currentLayer do - drawLayer(y, "░░") - end - end - - for x = 1, 48 do - for z = 1, 48 do - if model[x][z][layer] then - local xCoord = xDraw + x * 2 - 2 - local zCoord = yDraw + z - 1 - local fore = model[x][z][layer] - - local back - - if x % 2 == 0 then - if z % 2 == 0 then - back = transparencyColors[2] - else - back = transparencyColors[1] - end - else - if z % 2 == 0 then - back = transparencyColors[1] - else - back = transparencyColors[2] - end - end - - gpu.setForeground(fore) - gpu.setBackground(back) - gpu.set(xCoord, zCoord, symbol) - end - end - end -end - ---Мяу -local function convertScreenCoordToHoloCoords(x, z) - x = math.floor((x - xDraw) / 2 + 1) - z = z - yDraw + 1 - - return x, z -end - ---Установить пиксель на экране -local function setPixelOnScreen(x, z, color) - --Рассчитываем смещение пикселя на экране - local move = 0 - if x%2 == 0 then move = -1 end - - --Рисуем пиксель на экране - ecs.square(x + move, z, 2, 1, color) - - --Запоминаем, че нарисовали - local a, b = convertScreenCoordToHoloCoords(x + move, z) - model[a][b][currentLayer] = color - - --И его же на голопроекторе - holo.set(a, currentLayer, b, currentColorPalette) -end - -local function redraw() - drawTransparency() - drawLayer(currentLayer) -end - -local function changeScale(scale) - scale = scale or 50 - - local min, max = 0.33, 3 - local new = min + (scale - 1) * 0.0269696968 - - new = tonumber(string.sub(tostring(new), 1, 4)) - holo.setScale(new) -end - -local function toolbar() - local widthOfToolbar = 30 - local xStartOfToolbar, yStartOfToolbar = xSize - widthOfToolbar + 1, 1 - - local toolbarColor = 0xeeeeee - local toolbarTextColor = 0x262626 - local toolbarLineColor = 0xaaaaaa - local toolbarLineTextColor = 0xffffff - local toolbarButtonColor = ecs.colors.blue - local toolbarButtonTextColor = 0xffffff - - local function toolbarLine(y, text) - ecs.square(xStartOfToolbar, y, widthOfToolbar, 1, toolbarLineColor) - ecs.colorText(xStartOfToolbar + 1, y, toolbarLineTextColor, text) - end - - --Фон тулбара самый главный - ecs.square(xStartOfToolbar, yStartOfToolbar, widthOfToolbar, ySize, toolbarColor) - - local xPos, yPos = xStartOfToolbar + 5, 1 - local counter = 1 - local name - - --Слои - toolbarLine(yPos, "Слои"); yPos = yPos + 2 - - name = "-"; newObj("Buttons", counter, ecs.drawAdaptiveButton(xPos, yPos, 3, 1, name, toolbarButtonColor, toolbarButtonTextColor)); counter = counter + 1 - ecs.colorTextWithBack(obj["Buttons"][counter - 1][3] + 2, yPos + 1, toolbarTextColor, toolbarColor, " "..currentLayer.." ") - name = "+"; newObj("Buttons", counter, ecs.drawAdaptiveButton(obj["Buttons"][counter - 1][3] + 7, yPos, 3, 1, name, toolbarButtonColor, toolbarButtonTextColor)); counter = counter + 1 - - yPos = yPos + 4 - name = "Очистить"; newObj("Buttons", counter, ecs.drawAdaptiveButton(xPos, yPos, 6, 1, name, toolbarButtonColor, toolbarButtonTextColor)); counter = counter + 1 - yPos = yPos + 4 - name = "Залить"; newObj("Buttons", counter, ecs.drawAdaptiveButton(xPos, yPos, 7, 1, name, toolbarButtonColor, toolbarButtonTextColor)); counter = counter + 1 - - yPos = yPos + 4 - - --Масштаб - toolbarLine(yPos, "Масштаб проектора"); yPos = yPos + 2 - - name = "-"; newObj("Buttons", counter, ecs.drawAdaptiveButton(xPos, yPos, 3, 1, name, toolbarButtonColor, toolbarButtonTextColor)); counter = counter + 1 - ecs.colorTextWithBack(obj["Buttons"][counter - 1][3] + 2, yPos + 1, toolbarTextColor, toolbarColor, " "..currentScale.." ") - name = "+"; newObj("Buttons", counter, ecs.drawAdaptiveButton(obj["Buttons"][counter - 1][3] + 7, yPos, 3, 1, name, toolbarButtonColor, toolbarButtonTextColor)); counter = counter + 1 - - yPos = yPos + 4 - - --Сохранение - toolbarLine(yPos, "Сохранение и загрузка"); yPos = yPos + 2 - - name = "Сохранить"; newObj("Buttons", counter, ecs.drawAdaptiveButton(xPos, yPos, 6, 1, name, toolbarButtonColor, toolbarButtonTextColor)); counter = counter + 1 - yPos = yPos + 4 - name = "Открыть"; newObj("Buttons", counter, ecs.drawAdaptiveButton(xPos, yPos, 7, 1, name, toolbarButtonColor, toolbarButtonTextColor)); counter = counter + 1 - yPos = yPos + 4 - name = "Выйти"; newObj("Buttons", counter, ecs.drawAdaptiveButton(xPos, yPos, 8, 1, name, toolbarButtonColor, toolbarButtonTextColor)); counter = counter + 1 - - - yPos = yPos + 4 - - --Палитра - toolbarLine(yPos, "Выбор цвета"); yPos = yPos + 2 - - local x, y = xPos + 10, yPos + 4 - for i = 1, #colors do - ecs.square(x, y, 6, 3, colors[#colors - i + 1]) - x = x - 3 - y = y - 2 - end - - yPos = yPos + 8 - - --Инфа - toolbarLine(yPos, " "); yPos = yPos + 1 - toolbarLine(yPos, " Прожку накодил"); yPos = yPos + 1 - toolbarLine(yPos, " vk.com/id7799889"); yPos = yPos + 1 - toolbarLine(yPos, " "); yPos = yPos + 1 - toolbarLine(yPos, " Хочешь спиздить - пизди."); yPos = yPos + 1 - toolbarLine(yPos, " "); yPos = yPos + 1 - - -end - -local function swapColors() - - -- local tempColor = colors[1] - -- colors[1] = colors[2] - -- colors[2] = colors[3] - -- colors[3] = tempColor - - for i = 1, 3 do - holo.setPaletteColor(i, colors[i]) - end - - currentColorPalette = currentColorPalette + 1 - if currentColorPalette > 3 then currentColorPalette = 1 end - - toolbar() - -end - - - --------------------------- - -holo.clear() -ecs.clearScreen(0x262626) -createBlank() -redraw() -toolbar() - -while true do - local e = {event.pull()} - if e[1] == "touch" or e[1] == "drag" then - setPixelOnScreen(e[3], e[4], colors[1]) - elseif e[1] == "scroll" then - if e[5] == 1 then - if currentLayer < maxHeight then currentLayer = currentLayer + 1 end - else - if currentLayer > 1 then currentLayer = currentLayer - 1 end - end - - toolbar() - elseif e[1] == "key_down" then - --пробельчик - if e[4] == 57 then - redraw() - --бекспайс - elseif e[4] == 14 then - break - --икс - elseif e[4] == 45 then - swapColors() - elseif e[4] == 28 then - currentScale = currentScale + 10 - if currentScale > 100 then currentScale = 10 end - changeScale(currentScale) - toolbar() - end - end -end - -------------- - ---event.pull("key_down") - -gpu.setResolution(table.unpack(oldResolution)) -ecs.prepareToExit() diff --git a/Applications/3DEdit/Icon.png b/Applications/3DEdit/Icon.png deleted file mode 100644 index d21c5166..00000000 --- a/Applications/3DEdit/Icon.png +++ /dev/null @@ -1,4 +0,0 @@ -ffffff cccccc # ffffff cccccc # 969696 2d2d2d 969696 2d2d2d 969696 2d2d2d 969696 2d2d2d 969696 2d2d2d 969696 ffffff -ffffff cccccc # c3c3c3 2d2d2d c3c3c3 2d2d2d c3c3c3 2d2d2d c3c3c3 2d2d2d c3c3c3 2d2d2d c3c3c3 ffffff 969696 ffffff -ffffff 2d2d2d ffffff 2d2d2d ffffff 2d2d2d ffffff 2d2d2d ffffff 2d2d2d ffffff 2d2d2d c3c3c3 ffffff ffffff cccccc # -ffffff 2d2d2d ffffff 2d2d2d ffffff 2d2d2d ffffff 2d2d2d ffffff 2d2d2d ffffff 2d2d2d ffffff cccccc # ffffff cccccc #