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

Ocelot - продвинутый эмулятор OpenComputers

Рекомендуемые сообщения

18 часов назад, ArtHacker сказал:

а это как?

зажал на долго Ctrl C пока консоль не отзовётся, защиты от прерывания не было, просто while true print + авторан

Изменено пользователем serafim

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, serafim сказал:

зажал на долго Ctrl C пока консоль не отзовётся, защиты от прерывания не было, просто while true print + авторан

м, понятно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@LeshaInc ковырял последний ocelot-desktop, нашел противный визуальный глюк.

 

Когда окно в расфокусе:

Скрытый текст

SjZgWqP.png

Во время перехода в расфокус:

Скрытый текст

DQkghgq.png

 

Глюк стабильный, пока окно в расфокусе все время графика растянута чуток

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я добавил возможность загрузки пресетов в Ocelot Desktop

Файл конфигурации лежит в save/settings.conf

 

Сейчас это выглядит как-то вот так

 TRUNYeP.png

 

Правда.... Он умеет пока только загружать, а сохранять я его еще не научил.

Секция machines представляет собой список

Можно сделать такой секцию, и вероятно, оно даже заработает, по дефолту указывается 1 тир, у дисков же я не менял.

machines = [ 
{}, {}
]

Cкачать версию со всеми новшествами можно отсюда: https://gitlab.com/cc-ru/ocelot/ocelot-desktop/-/pipelines

Неожиданно выяснилось, чтобы эмуль заработал , в случае с *nix, надо сделать cd в папку где он находится, иначе не работает(

 

 

Изменено пользователем Alex
исправление форматирования

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сейчас эмулятор https://ocelot.fomalhaut.me/ почему-то не работает.
Бесконечно крутится картинка оцелота. Пытался потыкать по кнопкам, но не помогло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, kaka888 сказал:

Сейчас эмулятор https://ocelot.fomalhaut.me/ почему-то не работает.
Бесконечно крутится картинка оцелота. Пытался потыкать по кнопкам, но не помогло.

 

Только что проверил - всё нормально. Попробуй пообновлять страницу.
Проверь в инспекторе / консоли браузера на предмет ошибок соединения.

Во владке network должен быть успешный коннект на https://ocelot.fomalhaut.me/stream через websocket (статус 101).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

нашел глюк в веб версии: при изменении разрешения появляется это

Скрытый текст

ocelot.png

изменял разрешение самым простым способом -

resolution 50 25

через

gpu.setResolution(50, 25)

тот же самый эффект

однако с некоторыми значениями все же работает

40*y, 20*y всегда отрабатывает корректно (естественно при допустимых значениях y), значи коряво отрабатывает изменение ширины

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

нашел еще баг
когда происходит выбор монитора 3-го или 1-го уровня в desktop версии
стактрейс:

14:23:44.887 [main] ERROR ocelot.desktop.OcelotDesktop$ - java.lang.NullPointerException
	at ocelot.desktop.node.nodes.ScreenNode.ocelot$desktop$node$nodes$ScreenNode$$changeTier(ScreenNode.scala:72)
	at ocelot.desktop.node.nodes.ScreenNode$$anon$1.$anonfun$new$3(ScreenNode.scala:50)
	at ocelot.desktop.ui.widget.contextmenu.ContextMenuEntry.clicked(ContextMenuEntry.scala:57)
	at ocelot.desktop.ui.widget.contextmenu.ContextMenuEntry$$anonfun$1.applyOrElse(ContextMenuEntry.scala:49)
	at ocelot.desktop.ui.widget.contextmenu.ContextMenuEntry$$anonfun$1.applyOrElse(ContextMenuEntry.scala:48)
	at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:35)
	at ocelot.desktop.ui.widget.EventHandlers.$anonfun$apply$1(EventHandlers.scala:19)
	at ocelot.desktop.ui.widget.EventHandlers.$anonfun$apply$1$adapted(EventHandlers.scala:17)
	at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:553)
	at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:551)
	at scala.collection.AbstractIterable.foreach(Iterable.scala:920)
	at ocelot.desktop.ui.widget.EventHandlers.apply(EventHandlers.scala:17)
	at ocelot.desktop.ui.widget.Widget.handleEvent(Widget.scala:138)
	at ocelot.desktop.ui.event.handlers.ClickHandler$$anonfun$1.applyOrElse(ClickHandler.scala:22)
	at ocelot.desktop.ui.event.handlers.ClickHandler$$anonfun$1.applyOrElse(ClickHandler.scala:14)
	at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:35)
	at ocelot.desktop.ui.widget.EventHandlers.$anonfun$apply$1(EventHandlers.scala:19)
	at ocelot.desktop.ui.widget.EventHandlers.$anonfun$apply$1$adapted(EventHandlers.scala:17)
	at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:553)
	at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:551)
	at scala.collection.AbstractIterable.foreach(Iterable.scala:920)
	at ocelot.desktop.ui.widget.EventHandlers.apply(EventHandlers.scala:17)
	at ocelot.desktop.ui.widget.Widget.handleEvent(Widget.scala:138)
	at ocelot.desktop.ui.UiHandler$.$anonfun$update$12(UiHandler.scala:223)
	at ocelot.desktop.ui.UiHandler$.$anonfun$update$12$adapted(UiHandler.scala:223)
	at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:553)
	at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:551)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1279)
	at ocelot.desktop.ui.UiHandler$.$anonfun$update$10(UiHandler.scala:223)
	at ocelot.desktop.ui.UiHandler$.$anonfun$update$10$adapted(UiHandler.scala:219)
	at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:553)
	at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:551)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1279)
	at ocelot.desktop.ui.UiHandler$.update(UiHandler.scala:219)
	at ocelot.desktop.ui.UiHandler$.start(UiHandler.scala:177)
	at ocelot.desktop.OcelotDesktop$.mainInner(OcelotDesktop.scala:45)
	at ocelot.desktop.OcelotDesktop$.main(OcelotDesktop.scala:58)
	at ocelot.desktop.OcelotDesktop.main(OcelotDesktop.scala)

 

раскурил исходники, думаю что ошибка где-то в totoro.ocelot.brain.entity.Screen
ибо дальше вызов не пошел, значит вызываемая функция null, значит что-то от сюда newScreen.node.network.remap имеет значение null
 

увы, я понятия не имею где взять исходники totoro.ocelot.brain.entity.Screen, потому не могу ничего утверждать на 100%


P.S. хорошо знаю Java, писал пару простых игр на LWJGL 3, но со Scala не знаком

Изменено пользователем Vlados31
UDP

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо за фидбек =)

 

1 час назад, Vlados31 сказал:

нашел глюк в веб версии: при изменении разрешения появляется это

Да, это известный глюк. Он будет исправлен в следующей версии веб-приложения.

 

41 минуту назад, Vlados31 сказал:

ибо дальше вызов не пошел, значит вызываемая функция null, значит что-то от сюда newScreen.node.network.remap имеет значение null

Этот баг возможно уже исправлен, мы как раз вчера-сегодня рефакторили части кода отвечающие за network, экраны и GPU.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 15.08.2020 в 11:05, kaka888 сказал:

Сейчас эмулятор https://ocelot.fomalhaut.me/ почему-то не работает.
Бесконечно крутится картинка оцелота. Пытался потыкать по кнопкам, но не помогло.

Если у тебя стоит NoScript то включи эти два скрипта в список доверенных:

Цитата

image.png.cd188a9b985e8ea13e9e555885c3fac8.png

касперский не в счёт :->

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 16.08.2020 в 18:02, ArtHacker сказал:

Если у тебя стоит NoScript то включи эти два скрипта в список доверенных:

касперский не в счёт :->

Не стоит

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 15.08.2020 в 15:59, Totoro сказал:

 

Только что проверил - всё нормально. Попробуй пообновлять страницу.
Проверь в инспекторе / консоли браузера на предмет ошибок соединения.

Во владке network должен быть успешный коннект на https://ocelot.fomalhaut.me/stream через websocket (статус 101).

https://imgur.com/TJPunDY

 

Вот тут какие-то 2 ошибки с .js

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, @ArtHacker верно сказал.

Надо разрешить эти два скрипта. Это библиотечки для работы с бинарными данными в JS.

Они грузятся не с фомальгаута, а с сайта разрабов.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пожалуйста, добавьте, билды для версий (тэгов), чтобы не скачивать sbt и прочее.

 

UPD: имеется ввиду ocelot-brain

Изменено пользователем Mihis
уточнение инфромации

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
6 часов назад, Mihis сказал:

Пожалуйста, добавьте, билды для версий (тэгов), чтобы не скачивать sbt и прочее.

То что тебе нужно, вероятно, находится здесь

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 часов назад, RasonGame сказал:

То что тебе нужно, вероятно, находится здесь

Нет, это не оно. Тогда забыл упомянуть, что я имел ввиду ocelot-brain

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Mihis сказал:

Нет, это не оно. Тогда забыл упомянуть, что я имел ввиду ocelot-brain

А зачем нужен собранный ocelot-brain? Это же тупо либа. Её надо подключать в другую прогу, которую так и так придётся компилировать. Но смысла тогда готовый брейн собирать поразительно мало, особенно с учётом малого объёма кода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
15 часов назад, Mihis сказал:

ожалуйста, добавьте, билды для версий (тэгов), чтобы не скачивать sbt и прочее.

А как планируется использовать?
ocelot-brain как уже правильно заметили - это библиотека. Её предполагается использовать из кода.

 

Впрочем если запланирован проект с использованием, скажем, Gradle, или вообще без системы сборки, я могу собрать билд.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

Приглашаю всех заценить эмулятор, протестировать его возможности, отписаться Лёхе о багах,

ну и конечно поддержать проект лайком :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Отличный эмулятор, но у меня возникли проблемы при работе с событиями Brain'а из Java-кода.

 

При использовании EventBus.listenTo() и передаче (в качестве второго параметра) анонимного обработчика любого события кроме стандартного Event (например BeepEvent), линтер выдаёт ошибку о "несовместимости типов", вида

incompatible types: <anonymous Main.BeepEventFunction> cannot be converted to Function1<Event,BoxedUnit>

где BeepEventFunction - это абстрактный класс:

abstract class BeepEventFunction implements Function1<BeepEvent, BoxedUnit> {}

Пробовал передавать разные обработчики, но ошибка как была, так и осталась. Свой код и попытки решения расписал в соответствующем issue на GitLab.

 

Нашёл решение проблемы, надо просто в теле метода apply() привести Event к BeepEvent.

Изменено пользователем VladG24_YT
Нашёл решение проблемы, вопрос более не актуален

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


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