Наконец-то сделал то, что давно хотел сделать - использовать интерфейсы
Да, я знаю, использовать
Этим то и отличаются начинающие программисты от опытных. Опытные пишут немного сложно, но масштабируемо. И когда действительно надо расширить функционал - оно легко расширяется.
На 2-й фотке создаем новый интерфейс
На 3-й это результат того, как сильно упростился код. А куда подевалась вся логика? Она ушла на 4-ю фотку. Теперь каждый класс сам решает при каких условиях ему можно подсвечиваться
(От чего мне больше не надо лесть в Солвер Ган, чтобы что-то там добавить)
Да, я знаю, использовать
IsA(T::StaticClass())) это довольно таки плоховато... Хотя знаете, когда только пишешь код, думаешь "Ай ладно, 1 раз сделаю и ничего"Этим то и отличаются начинающие программисты от опытных. Опытные пишут немного сложно, но масштабируемо. И когда действительно надо расширить функционал - оно легко расширяется.
Про себя я могу сказать... Если только в UI - спустя +-7 месяцев на С++ я научился создавать реально масштабируемые структуры, от чего добавление нового UI не вызывает головной боли
На 2-й фотке создаем новый интерфейс
IHighlightableObjectInterfaceНа 3-й это результат того, как сильно упростился код. А куда подевалась вся логика? Она ушла на 4-ю фотку. Теперь каждый класс сам решает при каких условиях ему можно подсвечиваться
(От чего мне больше не надо лесть в Солвер Ган, чтобы что-то там добавить)
🔥2❤🔥1
Лаааадно, такого у меня еще не было со времен переписи UI...
Что могу сказать:
- Теперь все кубы являются самостоятельными акторами и не унаследуются от базового класса кубиков
- Добавлены новые интерфейсы:
- Также охрененно проделана работа в области раздатчика кубов - теперь раздатчик спавнит не блюпринт куба, а сам куб (вот о чем я вам говорил ранее)
- Ну а также под конец завез нам
Зачем? У меня как-то была идея сделать 2 куба в 1: Лазерный + Обычный и переключатель между типами. Но у них сильно отличается логика и их смешивание может полностью убить масштабируемость кода, читабельность и в первую очередь оптимизацию - зачем вам в обычном кубике логика для лазерного? Во-во..
А так я жесть устал, всем спокойной ночи! (Или доброе утро)
Что могу сказать:
- Теперь все кубы являются самостоятельными акторами и не унаследуются от базового класса кубиков
- Добавлены новые интерфейсы:
IIndicatorCubeInterface и IGrabbableInterface- Также охрененно проделана работа в области раздатчика кубов - теперь раздатчик спавнит не блюпринт куба, а сам куб (вот о чем я вам говорил ранее)
- Ну а также под конец завез нам
ABaseCubeElement, который хранит лишь параметр какого типа кубов он относится (обычный, лазерный и тд.). И перед стартом игры он заменяется на соответствующий куб с полной логикой (Сделано для редактора карт)Зачем? У меня как-то была идея сделать 2 куба в 1: Лазерный + Обычный и переключатель между типами. Но у них сильно отличается логика и их смешивание может полностью убить масштабируемость кода, читабельность и в первую очередь оптимизацию - зачем вам в обычном кубике логика для лазерного? Во-во..
А так я жесть устал, всем спокойной ночи! (Или доброе утро)
❤2🔥1🤩1
ха-ха.... да....
Теперь:
- Солвер можно добавить на любой обьект (через интерфейс)
- Модельки Солвера - это лишь 1 обьект на всю игру, а не на каждом кубике
- Лазерный кубик был сильно изменен, а если быть точнее - теперь это не 2 статик меша (куб + лого), а 1. А как вращать лого? Через материалы! (магия World Position Offset) Скажете что это может не оптимизированно? Следующий раз в комнате лифта поднимите голову - эти вентиляторы вращаются через материал, а не код :) (Разгружаем процессор так сказать)
А еще за 3 дня я успел сделать 10 коммитов, я уже не знаю где я и сейчас день или ночь....
А еще ну ой как спасибо за баг-репорты. Теперь легче сказать, в каких камерах нету софтлока! (хотя я думаю это вопрос времени...)
А если серьезно - то спасибо всем, кто писал в баг-репорты, та и просто давал хорошую критику
Ставьте свечку за мое ментальное здоровье, а мы начинаем делать 1.0.2 (27 поправок...)
Теперь:
- Солвер можно добавить на любой обьект (через интерфейс)
- Модельки Солвера - это лишь 1 обьект на всю игру, а не на каждом кубике
- Лазерный кубик был сильно изменен, а если быть точнее - теперь это не 2 статик меша (куб + лого), а 1. А как вращать лого? Через материалы! (магия World Position Offset) Скажете что это может не оптимизированно? Следующий раз в комнате лифта поднимите голову - эти вентиляторы вращаются через материал, а не код :) (Разгружаем процессор так сказать)
А еще за 3 дня я успел сделать 10 коммитов
А еще ну ой как спасибо за баг-репорты. Теперь легче сказать, в каких камерах нету софтлока! (хотя я думаю это вопрос времени...)
А если серьезно - то спасибо всем, кто писал в баг-репорты, та и просто давал хорошую критику
❤3💔1
Вы скажете, что я грохнулся с дубу - но это проблемы дуба, так что знакомьтесь с еще одним моим небольшим проектом:
Advanced System for Automotive Interface (ASAI)
Начнем по порядку - Относительно недавно отец взял Шкоду Фелицию 1.3
Не сказать что машина плохая, просто обслуживайте в нужное время и все ¯\_(ツ)_/¯
Небольшая вырезка из истории (кому лень - пропускайте):
В общем в машине +- настроили механику, просто заказываем новые детали начиная и обновляем. Но как-то подумали, что действительно было бы круто поставить хоть какие нибудь мозги для управления машиной (Ибо сейчас грубо говоря она работает на физических законах). Так что было принято решение начать этот небольшой проектик
Какие основные задачи/функции для ASAI могу выделить:
- Вывод на яркий 9 дюймовый дисплей с соотношением сторон 3 на 4 (С тачскрином естественно)
- Поддержка автономной записи с 4-х камер + 1 микрофон (у водителя) на SSD/HDD диск (С низким потреблением электроэнергии)
- GPS, навигатор, построение маршрута и тд.
- Аудио система - благодаря кастомизации мы можем сами установить любые динамики и сабвуферы
- Поддержка воспроизведения музыки с Блютуза (звонки тоже, поэтому нужен микрофон у водителя)
- Управление и вывод информации с внутренностей движка (Например открытие клапана по кол-ву оборотов)
- И когда будем добавлять подсветку в салон, то ее управление с ASAI было бы неплохим решением (Светомузыка дааа 🤩)
Считайте это самописный бортовой компьютер, полностью контролируемый и с открытым исходным кодом
Писать я буду очевидно на С++, но если придется писать драйвера на линуксе, то еще займусь С
Проблем с электроникой не будет, ведь все будет завязано вокруг сервоприводов (открытие на определенный угол) + Мосфеты (Включение/Выключение силовой электроники, замена старым релюшкам)
Конкретно про внутрянку ASAI:
- Дисплей возьму от планшетов, не стану брать готовые дисплеи для Rapberry Pi. Да, мы не ищем легких путей... А вообще они TFT'шные (Первые сенсорные телефоны использовали их кста), ультра темные и лагучие.
- Виновником торжества думал брать Raspberry Pi 3B+, но ее GPU аппаратно ограничен для дисплеев уровня планшетов и тд.
- От чего взял +- компромиссное решение - STM32H750. Этот микроконтроллер (?) имеет несколько ядер, способен запустить минимальный линукс, а самое главное - в него вшит модуль для общения с дисплеями любого уровня! (Дак еще оно полностью программируемое, кайф же. Кому интересно - я про
- Ну а раз STM32H750 имеет много всего, то думаю возьму ее вместо Rapberry Pi 3B+ (Тем более программатор у меня есть, а я всегда хотел поиграться с STM)
Основные задачи (Да, я любитель все делить на задачи):
- Выбрать дисплей, разобраться с его подключением и как бы выглядел его код (в теории)
- Купить дисплей, STM, подключить их и написать минимальный рабочий код для вывода на дисплей + обработка тачскрина
- После - взять самое легковесное ядро Линукса (чтобы не париться над многозадачностью, разделение процессов, файловой системой и тд. да еще и гит будет :3)
- И переписать рабочий код в драйвер под линукс (На С, даааа)
- И как только 7 кругов ада будет окончены, я смогу приступить к написанию программной базы ASAI, который будет состоять из центрального модуля + модуль рендера UI. А остальные просто будут дописываться и добавляться (Как раз изучу CMake)
Как-то так, всем доброе утро а я спать :)
Advanced System for Automotive Interface (ASAI)
Адаптивная Система Автомобильного Интерфейса (АСАИ/АСАЙ)Начнем по порядку - Относительно недавно отец взял Шкоду Фелицию 1.3
Не сказать что машина плохая, просто обслуживайте в нужное время и все ¯\_(ツ)_/¯
Небольшая вырезка из истории (кому лень - пропускайте):
Предыдущий хозяин поставил 100-ватные фары (какого болта? Сам не знаю). И итогом когда он их включал, то потребление было такое большое, что аккумулятор не заряжался, а разряжался. Но раз уж он разряжается, то это 100% проблема аккумулятора (нет). Они взяли в КАЖДУЮ ШТУКУ В САЛОНЕ (Кондиционер, Приборка, Радио, Задние камеры и тд.) поставили СУКА ВЫКЛЮЧАТЕЛЬ! (типа модульно включил что тебе надо и все). То что мы с оцтом приахерели, ничего не сказать :)
В общем в машине +- настроили механику, просто заказываем новые детали начиная и обновляем. Но как-то подумали, что действительно было бы круто поставить хоть какие нибудь мозги для управления машиной (Ибо сейчас грубо говоря она работает на физических законах). Так что было принято решение начать этот небольшой проектик
Какие основные задачи/функции для ASAI могу выделить:
- Вывод на яркий 9 дюймовый дисплей с соотношением сторон 3 на 4 (С тачскрином естественно)
- Поддержка автономной записи с 4-х камер + 1 микрофон (у водителя) на SSD/HDD диск (С низким потреблением электроэнергии)
- GPS, навигатор, построение маршрута и тд.
- Аудио система - благодаря кастомизации мы можем сами установить любые динамики и сабвуферы
- Поддержка воспроизведения музыки с Блютуза (звонки тоже, поэтому нужен микрофон у водителя)
- Управление и вывод информации с внутренностей движка (Например открытие клапана по кол-ву оборотов)
- И когда будем добавлять подсветку в салон, то ее управление с ASAI было бы неплохим решением (Светомузыка дааа 🤩)
Считайте это самописный бортовой компьютер, полностью контролируемый и с открытым исходным кодом
Писать я буду очевидно на С++, но если придется писать драйвера на линуксе, то еще займусь С
Проблем с электроникой не будет, ведь все будет завязано вокруг сервоприводов (открытие на определенный угол) + Мосфеты (Включение/Выключение силовой электроники, замена старым релюшкам)
Конкретно про внутрянку ASAI:
- Дисплей возьму от планшетов, не стану брать готовые дисплеи для Rapberry Pi. Да, мы не ищем легких путей... А вообще они TFT'шные (Первые сенсорные телефоны использовали их кста), ультра темные и лагучие.
- Виновником торжества думал брать Raspberry Pi 3B+, но ее GPU аппаратно ограничен для дисплеев уровня планшетов и тд.
- От чего взял +- компромиссное решение - STM32H750. Этот микроконтроллер (?) имеет несколько ядер, способен запустить минимальный линукс, а самое главное - в него вшит модуль для общения с дисплеями любого уровня! (Дак еще оно полностью программируемое, кайф же. Кому интересно - я про
DSI Host = Display Serial Interface Host)- Ну а раз STM32H750 имеет много всего, то думаю возьму ее вместо Rapberry Pi 3B+ (Тем более программатор у меня есть, а я всегда хотел поиграться с STM)
Основные задачи (Да, я любитель все делить на задачи):
- Выбрать дисплей, разобраться с его подключением и как бы выглядел его код (в теории)
- Купить дисплей, STM, подключить их и написать минимальный рабочий код для вывода на дисплей + обработка тачскрина
- После - взять самое легковесное ядро Линукса (чтобы не париться над многозадачностью, разделение процессов, файловой системой и тд. да еще и гит будет :3)
- И переписать рабочий код в драйвер под линукс (На С, даааа)
- И как только 7 кругов ада будет окончены, я смогу приступить к написанию программной базы ASAI, который будет состоять из центрального модуля + модуль рендера UI. А остальные просто будут дописываться и добавляться (Как раз изучу CMake)
Как-то так, всем доброе утро а я спать :)
P.S. Название ASAI 100% вышло чисто случайно :3❤🔥3❤1🔥1
От создателей легендарного шедевра "Новая папка (2)", покорившего сердца миллионов пользователей, представляем вам долгожданное продолжение - "Новая папка (3)"
Этот проект взял в себя все лучшее из предыдущих версий, сохранил фирменную простоту названия и привнес в мир бескомпромиссную инновацию - порядковый номер в скобках, увеличенный на единицу!
Особая гордость - это эксклюзивная коллекция бекапов из неработающего гита, собранных после множества конфликтов слияния коммитов, где каждая попытка объединенить коммит превращается в эпичную битву(и сломанный репозиторий)
"Новая папка (3)" - это не просто папка. Это символ новой эры в организации файлов, наследие, которое мы передадим будущим поколениям!
Этот проект взял в себя все лучшее из предыдущих версий, сохранил фирменную простоту названия и привнес в мир бескомпромиссную инновацию - порядковый номер в скобках, увеличенный на единицу!
Особая гордость - это эксклюзивная коллекция бекапов из неработающего гита, собранных после множества конфликтов слияния коммитов, где каждая попытка объединенить коммит превращается в эпичную битву
"Новая папка (3)" - это не просто папка. Это символ новой эры в организации файлов, наследие, которое мы передадим будущим поколениям!
❤6🎉1
𝐑𝐨𝐨𝐭𝐓𝐨𝐨𝐥 𝐁𝐥𝐨𝐠
Йееу, аппарат на оценочку ⚡А фото в реке ждите в RootTool Blog+
Помните эту зверь-машину? Вот ее состояние спустя одну... ТЫСЯЧУ... километров...
Именно столько я прокатался за 3 месяца. А как? Ну поехали:
- 3 раза катался к другу в Раменское: 3*80 = 240 км
- Ночной велофестиваль в Москве + Там же остался и катался до самого утра: 140 км
- 4 раза ехал в гребанные Мытищи за радиодеталями для ASAI: 3*20*2 = 120 км (3 раза по 20 км туда-обратно)
- В остальные дни по вечерам катался по городу в доль и поперег (от Воронка и до Гагаринской). В среднем это 10 км, а за 3 месяца (с учетом, что в редкие дни могу не кататься): 10*50 = 500 км
240+140+120+500=1000 км. Конечно от такого подшипник на заднем колесе развалился к чертям собачим :)
Именно столько я прокатался за 3 месяца. А как? Ну поехали:
- 3 раза катался к другу в Раменское: 3*80 = 240 км
- Ночной велофестиваль в Москве + Там же остался и катался до самого утра: 140 км
- 4 раза ехал в гребанные Мытищи за радиодеталями для ASAI: 3*20*2 = 120 км (3 раза по 20 км туда-обратно)
- В остальные дни по вечерам катался по городу в доль и поперег (от Воронка и до Гагаринской). В среднем это 10 км, а за 3 месяца (с учетом, что в редкие дни могу не кататься): 10*50 = 500 км
240+140+120+500=1000 км. Конечно от такого подшипник на заднем колесе развалился к чертям собачим :)
🤯3😱1😭1
Эта погнутая деталь (прошлый пост, фото 1) когда-то была пыльником подшипника (этот пост, фото 2). Она прижимается контр-гайкой (этот пост, фото 1, левая сторона) и на ней катаются шарики подшипника.
Со временем она стачивается и шарики начинают свободно ходить и люфтить. А за 1000 километров они успевают внутри выбить, сточить и разломать что только можно (и как видите сам шарик стал квадратным: прошлый пост, фото 2)
В принципе это нормальный износ, но я бы погрешил на дешевость металла...
В любом случае не стал рисковать и взял полностью новое проверенное заднее колесо Шимано. Среди велосипедистов говорят оно очень износостойкое, но посмотрим как говорится..
Со временем она стачивается и шарики начинают свободно ходить и люфтить. А за 1000 километров они успевают внутри выбить, сточить и разломать что только можно (и как видите сам шарик стал квадратным: прошлый пост, фото 2)
В принципе это нормальный износ, но я бы погрешил на дешевость металла...
В любом случае не стал рисковать и взял полностью новое проверенное заднее колесо Шимано. Среди велосипедистов говорят оно очень износостойкое, но посмотрим как говорится..
❤3🔥1
Yoo
Слегка не в тему, но все же - решил засветиться где-нибудь еще, та и попробовать себя в переводе песен, почему бы и нет?
Знакомьтесь: Dose Dose by manika
Сказать честно: Песня охренительно красивая. Хоть и название смущает, но в тексте упоминаний почти 0 (около 2-х строчек)
Зато песня сама очень приятная, всегда слушаю ее чтобы сосредоточиться.
Перевод делал своими лапками, он больше адаптирован под распевку, чем прям на 100% сохранение смысла (но все равно вышло неплохо как по мне-)
Клип на YT: тык
Оригинал на Genius: тык
Перевод на Genius: тык
(Да, изначально оригинала не было на Genius, пришлось запариться и добавлять самому ¯\_(ツ)_/¯)
Слегка не в тему, но все же - решил засветиться где-нибудь еще, та и попробовать себя в переводе песен, почему бы и нет?
Знакомьтесь: Dose Dose by manika
Сказать честно: Песня охренительно красивая. Хоть и название смущает, но в тексте упоминаний почти 0 (около 2-х строчек)
Зато песня сама очень приятная, всегда слушаю ее чтобы сосредоточиться.
Перевод делал своими лапками, он больше адаптирован под распевку, чем прям на 100% сохранение смысла (но все равно вышло неплохо как по мне-)
Клип на YT: тык
Оригинал на Genius: тык
Перевод на Genius: тык
(Да, изначально оригинала не было на Genius, пришлось запариться и добавлять самому ¯\_(ツ)_/¯)
🥰3❤1