Перейти к содержимому

Xytabich

Пользователи
  • Публикации

    143
  • Зарегистрирован

  • Посещение

  • Победитель дней

    25

Сообщения, опубликованные пользователем Xytabich


  1. @Oleshe компонент "openperipheral_bridge" возвращает объект типа TerminalGlassesBridge, у него нет подобных методов. Для использования setDragParameters и подобных методов, необходим объект CaptureControl, который доступен только в режиме захвата (насколько я помню). Т.е. необходимо сначала удостовериться что пользователь надел очки, для этого можно использовать события glasses_capture и glasses_release. После этого можно получить CaptureControl при помощи openperipheral_bridge.getCaptureControl(uuid), используя uuid пользователя который находится в режиме захвата (т.е. ткнул пкм с клавиатурой в руках).
    Примерный код:

    local bridge = component.openperipheral_bridge
    
    event.listen("glasses_capture", function()
      local uuid = bridge.getUsers()[1].uuid -- можно использовать только если один пользователь использует терминал
      local capture = bridge.getCaptureControl(uuid)
      capture.setDragParameters(5, 10)
    end)

     

    В данной статье используются принципы объектно-ориентированного программирования, для сокращения объема кода и разделения функционала по своим разделам. По этому необходимо обращать внимание в каком объекте реализован необходимый функционал, а также возвращаемые функциями значения. Например:

    TerminalGlassesBridge:DrawableContainer, DrawableFactory
      -- при использовании объекта TerminalGlassesBridge можно так же использовать функционал из объектов DrawableContainer и DrawableFactory
      -- TerminalGlassesBridge также реализует собственный функционал:
      getCaptureControl(uuid:string):CaptureControl
        -- принимает на вход параметр с именем uuid, имеющий тип string
        -- возвращает объект типа CaptureControl


     

    • Нравится 4
    • Одобряю 1

  2. 12 часа назад, qwertyMAN сказал:

    OpenOS на жёстком диске. (теперь диск вынимаем, он нам не нужен больше)

    Верно, зачем нам хард, и без него консолька грузится :smile3:

    Извините за флуд, не удержался...

    • Нравится 1
    • Ха-ха 2

  3. @eu_tomat весь прикол в "интересности рецептов" (гринде, на самом деле) сборки серверной, к примеру 4 лярда юю на единицу материи + специфичный материал в качестве скрапа (пол незера, коротко говоря). И таких проектов не мало. К сожалению только парочку проектов знаю с реально хорошими рецептами.
    Смысл всего этого типичный для игровой индустрии: удержание клиентов, и покупка внутриигровых плюшек. По этому же поводу и ресетнуть не могут - ибо растеряют базу клиентов.


  4.  

    5 минут назад, NEO сказал:

    луавм - это динамически линкуемая бибиотека из нативного машинного кода.

    То же самое и с ассемблером можно сделать, как ни странно. Хотя учитывая синхронизацию машинного кода и мира майна задержки обращения к миру будут теми же. Но опять же тут приходят на помощь всякие буферы команд и прочее. Всё зависит от разработчика, в общем.

    • Спасибо 1

  5. 1 час назад, NEO сказал:

    только смысл с этого?

    Ну смотри, у тебя есть 2 машины с одинаковыми характеристиками: 1мгц проц, 64кб оперативки, 128кб хранилище. На одной машине крутятся машинные команды, а на другой - луавм. Какую из машин лучше выбрать в плане производительности и затрат ресурсов? Если хочется удобный код, например луа - ничего не мешает закинуть на первую машину луавм, но наоборот сделать нельзя. Это порой выводит из колеи - когда вроде есть возможность сделать лучше и быстрее, но архитектура не позволяет.

    • Спасибо 1

  6. @Doob да уже есть вроде компилятор, судя по тому что драйвера и программы на си написаны: https://github.com/Magneticraft-Team/Computer
    Там где-то в доках было написано что используют gcc mips, процессор R3000.

    • Спасибо 1

  7. @Doob о, магнетикрафт уже допилил компы свои? Это интересно, да ещё и на ассемблере, пойду гляну чего там есть.

    Ха-ха:

    • Что я могу сделать с компьютером сейчас?
    • Ничего.

     

    Пока ничего особо интересного из периферии там нет. Есть флоппик, сетевая карта, терминал (монитором язык не поворачивается называть), и робот. Всё ещё ожидание.

    • Спасибо 1

  8. 2 часа назад, Doob сказал:

    Потом был мод NedoComputers

    Есть ещё на 1.12 RetroComputers, который скопировал архитектуру 65el02. https://www.curseforge.com/minecraft/mc-mods/retrocomputers
    Правда на серверах я его особо не видел, разве что в сборках каких-то.

    • Спасибо 1

  9. 1 час назад, Doob сказал:

    Функционал, правда не богатый, можно было только мигать цветными кабелями.

    На самом деле там можно было запилить автокрафт с системой хранения, правда скорость оставляла желать лучшего. Вот если на ассемблере написать...

    Но переписывать не вижу особого смысла, ибо зачем ограничивать луа фортом... Разве что по фану кабелями помигать.

    • Спасибо 1

  10. @Asior в тесте есть подключение:

    В 19.05.2020 в 22:34, Xytabich сказал:

    local fs = require("filesystem")
    if not fs.exists(file) then print("File does not exist") end

    А сама либа уже использует файловый поток.

    Лёгких библиотек по рисованию цветом не знаю, и не делал примеров с экраном, потому вот псевдокод:

    local canvas, x, y = ... -- холст и позиция изображения
    local file = filesystem.open("/image.gif", "r")
    local gifFile = gif.read(file)
    canvas.fill(x, y, gifFile.width, gifFile.height, gifFile.colors[gifFile.bgIndex])
    for _,block in pairs(gifFile.blocks) do
      if block.type == "image" then
        block = block.block
        for py=1, block.height do
          for px=1, block.width do
            canvas.setPixel(x+block.x+px, y+block.y+py, gifFile.colors[block.pixels:byte((py-1)*block.width + px)])
          end
        end
      end
    end

    Пиксель - это индекс цвета в палитре. Записаны они в виде линий, сверху-вниз, друг за другом, надо думаю дописать об этом.

    • Нравится 1

  11. 6 часов назад, eu_tomat сказал:

    Да, адаптер работает через драйверы OpenPeripheral

    Я сначала не понял... А потом как понял, и полез глядеть код перифералки... Так вот откуда все эти клёвые методы и данные! А я ругался на 1.12.2 почему нет всего этого, а оказывается перифералка ещё более ах*крайнее восхищение* чем я думал. Надо штудировать код и писать статейку на это чудо техники.

    P.S. А вообще где-то есть описание подобных фишек?

×
×
  • Создать...