-
-
Save Fingercomp/41d8701ad522915f40cf5971eccf9d09 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local holo = require("holo") | |
local sides = require("sides") | |
local corners = holo.corners | |
-- считываем модельку | |
local f = io.open("/home/test.3dx", "rb") | |
local model = holo.read(f) | |
f.close() | |
-- таблица с цветами | |
local colors = model.palette | |
-- 3 аргумент: 1 — первый цвет, 2 — второй, 3 — третий; 0 (или nil) — стиралка | |
-- ставим воксель (индексация от единицы, ибо Луа) | |
-- z, x, y (z — номер слоя) | |
model:set(1, 1, 1, 3) | |
-- ставит цвет | |
colors[1] = 0x20AFF | |
-- запись в файл | |
local f = io.open("/home/test.3dx", "wb") | |
model:write(f, holo.format.3dx) | |
f:close() | |
-- создаём модельку | |
local model = holo.new() | |
local colors = model.palette | |
colors[1] = 0x20AFFF | |
colors[2] = 0xFF20AF | |
colors[3] = 0x20FF58 | |
-- получаем виды сверху, слева, снизу и т. д. | |
-- они автоматом все изменения конвертируют в команды для основного вида | |
-- (сверху, нижний левый угол), то есть являются видами на модель | |
-- вторым аргументом можно указать, где будет находиться левый нижний угол | |
-- на слоях в данном виде по сравнению с дефолтным | |
local views = { | |
model:getView(sides.top), | |
model:getView(sides.left), | |
model:getView(sides.bottom, corners.topLeft), -- такой же, как в дефолтном виде сверху | |
model:getView(sides.right), | |
model:getView(sides.back), | |
model:getView(sides.front), | |
} | |
-- 2 слой слева, x — длина, y — высота | |
views[2]:set(4, 10, 4, 1) | |
-- можно филлить | |
-- слой₁, x₁, y₁, слой₂, x₂, y₂ | |
views[6]:fill(1, 5, 5, 5, 10, 10, 2) | |
-- указать режим заполнения: | |
-- - hollow (только грани) | |
-- - outline (только контур) | |
-- - fill (дефолт) | |
-- | |
-- - keep (заменять только пустоты) | |
-- - replace (дефолт, заменять всё) | |
-- - custom (билдер режима, можно указать, какие цвета заменять) | |
views[4]:fill(1, 17, 13, 7, 22, 24, 3, holo.fill.hollow, holo.replace.custom(1, 3)) | |
-- линия | |
model:line(1, 1, 1, 32, 48, 48, 3) | |
-- режим заполнения | |
model:line(1, 48, 48, 32, 1, 1, 1, holo.replace.keep) | |
f = io.open("/home/test-2.3dx", "wb") | |
model:write(f, holo.format.3dx) | |
f:close() | |
-- рендер | |
local com = require("component") | |
local hologram = com.hologram | |
model:render(hologram, holo.renderers.default) | |
model:render(hologram.address, holo.renderers.default) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment