Skip to content

Comments

TGUI для консоли генетика#14267

Draft
TEXH4Pb wants to merge 10 commits intoTauCetiStation:masterfrom
TEXH4Pb:genetics-tgui
Draft

TGUI для консоли генетика#14267
TEXH4Pb wants to merge 10 commits intoTauCetiStation:masterfrom
TEXH4Pb:genetics-tgui

Conversation

@TEXH4Pb
Copy link
Contributor

@TEXH4Pb TEXH4Pb commented Jul 22, 2025

Описание изменений

Расписывать нечего, скрины ниже. Может быть попутно случайно или специально пофиксил какие-то мелкие баги, но я не помню.

Скрины

1
1

2
2

3
3

4
4

5
5

6
6

7
7

8
8

Ещё нужно поправить некоторые мелочи, но закинул в виде драфта. Пусть будет, может кто-то накинет толкового фидбека по поводу внешнего вида интерфейса или кодстайла. По последнему вообще очень нужны дельные замечания, т.к. читаемость кода в js файле оставляет желать лучшего.

Почему и что этот ПР улучшит

Ещё одним nanoUI интерфейсом меньше.

Авторство

Я

Чеинжлог

🆑 TEXHAPb

  • tweak: консоль генетика получила новый GUI

@TauKitty
Copy link
Contributor

Changelog status: ✔️

@TauKitty TauKitty added Tweak UI User Interface labels Jul 22, 2025
@TEXH4Pb TEXH4Pb marked this pull request as draft July 22, 2025 20:39
@TEXH4Pb TEXH4Pb changed the title [DNM] TGUI для консоли генетика TGUI для консоли генетика Jul 22, 2025
@TEXH4Pb
Copy link
Contributor Author

TEXH4Pb commented Jul 22, 2025

Есть беда, что диммер не растягивается на всю высоту окна, когда оно "прокручено" вниз скроллбаром. Остаётся незакрытый огрызок. Как пофиксить- не знаю. Походу проблема самого диммера. Очень нужна помощь.
image

@RichardJones1
Copy link
Contributor

Есть беда, что диммер не растягивается на всю высоту окна, когда оно "прокручено" вниз скроллбаром. Остаётся незакрытый огрызок. Как пофиксить- не знаю. Походу проблема самого диммера. Очень нужна помощь.

Надо наверное глянуть, если подобное на других билдах. Мб уже в core tgui это пофиксили.

@TEXH4Pb
Copy link
Contributor Author

TEXH4Pb commented Aug 17, 2025

Есть беда, что диммер не растягивается на всю высоту окна, когда оно "прокручено" вниз скроллбаром. Остаётся незакрытый огрызок. Как пофиксить- не знаю. Походу проблема самого диммера. Очень нужна помощь.

Надо наверное глянуть, если подобное на других билдах. Мб уже в core tgui это пофиксили.

Свежий tgui работает на React'е, поэтому там диммер напрямую из него используется. Хз, где ещё стоит искать, кроме самого tgstation.

@DarthSidiousPalpatine
Copy link
Contributor

DarthSidiousPalpatine commented Aug 21, 2025

Очень нужна помощь.

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

Хз поможет ли.

@TEXH4Pb
Copy link
Contributor Author

TEXH4Pb commented Aug 25, 2025

Ура, я починил!
image

@TEXH4Pb
Copy link
Contributor Author

TEXH4Pb commented Aug 25, 2025

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

Хз поможет ли.

Хорошая идея, спасибо. Но не сработала. Секциям scrollable почему-то просто добавляет неактивный скролл-бар, который никогда и ни при каких обстоятельствах не активируется.

@TEXH4Pb
Copy link
Contributor Author

TEXH4Pb commented Aug 25, 2025

Я балда, короче, надо было диммер запихивать внутрь Window, а не в Window.Content.

@TEXH4Pb
Copy link
Contributor Author

TEXH4Pb commented Aug 25, 2025

Ну всё, пора

@TEXH4Pb TEXH4Pb marked this pull request as ready for review August 25, 2025 21:26
@TEXH4Pb
Copy link
Contributor Author

TEXH4Pb commented Aug 25, 2025

Я не понимаю, почему дифф такой огромный, я не так много менял в dna_modifier.dm 😕

Comment on lines +312 to +335
const {
selectedMenuKey,
hasOccupant,
isInjectorReady,
hasDisk,
disk,
buffers,
radiationIntensity,
radiationDuration,
irradiating,
dnaBlockSize,
selectedUIBlock,
selectedUISubBlock,
selectedSEBlock,
selectedSESubBlock,
selectedUITarget,
selectedUITargetHex,
occupant,
isBeakerLoaded,
beakerLabel,
beakerVolume,
beakerMaxVolume,
injectAmount,
} = data;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

слишком дофига данных, разделил бы хоть на подобъедки

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Приведи пример, пожалуйста, я не очень силён в работе с данными в tgui.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

со стороны бульонда

dmTguiList["selectedSE"] = new list(
"block" = selectedSEBlock,
"subBlock" = selectedSESubBlock,
)

со стороны тгуи

const { selectedSE } = data;
console.log(selectedSE.block);

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

глянь пример в CrewMonitor, я там на под объедки делил

@AirBlack
Copy link
Contributor

слишком большой файл и слишком здоровый switch, мог бы отдельные табы как отдельные компоненты сделать

ui.set_initial_data(data)
// open the new ui window

ui = SStgui.try_update_ui(user, src, ui)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

проверки перенести в tgui_state

Comment on lines +496 to +511
if (selected_ui_target < 16 && selected_ui_target >= 0)
switch(selected_ui_target)
if(10)
selected_ui_target_hex = "A"
if(11)
selected_ui_target_hex = "B"
if(12)
selected_ui_target_hex = "C"
if(13)
selected_ui_target_hex = "D"
if(14)
selected_ui_target_hex = "E"
if(15)
selected_ui_target_hex = "F"
else
selected_ui_target_hex = selected_ui_target
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

а нельзя со стороны клиента уже цифру в виде hex отправлять?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Перенастроить NumberInput, чтобы он сразу возвращал hex, нельзя (или я не знаю способа). Только писать новый UI, элемент, чего я делать не буду. А просто конвертировать через такой же страшный свитч можно, наверное, но я не понимаю, почему этим должен клиент заниматься.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Чтобы особенности реализации интерфейса остались в коде самого интерфейса, а код бульондовский об интерфейсе ничего не знал кроме как инпутов аутпутов, разделение бизнес логики от логики отображения, умные слова бла бла бла, имхо конвертация это ответственность клиента, ну лан пох

Comment on lines +586 to +603
{!!disk.data && !!hasDisk && (
<LabeledList.Item label="Label">
{disk.label}
</LabeledList.Item>
)}
{!!disk.data && !!hasDisk && (
<LabeledList.Item label="Subject">
{disk.owner ? disk.owner : 'Unknown'}
</LabeledList.Item>
)}
{!!disk.data && !!hasDisk && (
<LabeledList.Item label="Stored data">
{disk.type === 'ui'
? 'Unique identifier'
: 'Structural enzymes'}
{disk.ue ? ' + unique enzymes' : ''}
</LabeledList.Item>
)}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

три одинаковых проверки на disk.data и hasDisk

@KIBORG04
Copy link
Member

KIBORG04 commented Sep 5, 2025

доверяю аирблеку, делой

irradiating = radiation_duration
var/lock_state = connected.locked
connected.locked = TRUE//lock it
SStgui.try_update_ui(ui.user, src, ui) // update all UIs attached to src
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

По дефолту autoupdate у тгуи включено, я думаю это не нужно тут

SStgui.try_update_ui(ui.user, src, ui) // update all UIs attached to src

sleep(radiation_duration SECONDS)
sleep(radiation_duration SECONDS)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Было бы круче без слипа тут, но ок

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это старый код, который я особо не трогал, просто переносил в другие места. Спустя два месяца вникать заново и думать над его рефактором мне, мягко говоря, не охота.

@AirBlack
Copy link
Contributor

AirBlack commented Sep 6, 2025

доверяю аирблеку, делой

я так, краем глаза прошелся, не вчитывался не полноценно ревувал короч

@TEXH4Pb
Copy link
Contributor Author

TEXH4Pb commented Sep 16, 2025

Я когда-нибудь потом займусь, пока не закрывайте.

@github-actions
Copy link

Данный ПР автоматически отмечен как застоявшийся по причине длительного отсутствия обновлений и обсуждения. Он будет закрыт через 7 дней, если никакой активности не будет проявлено. Если вы считаете, что ПР еще актуален, или что я (злобный робот) пристаю к вам зря - просто напишите любой комментарий. Попробуйте связаться с мейнтейнерами, если они по какой-то причине игнорируют ПР, или у вас есть вопросы. Спасибо за ваш вклад.

1 similar comment
@github-actions
Copy link

Данный ПР автоматически отмечен как застоявшийся по причине длительного отсутствия обновлений и обсуждения. Он будет закрыт через 7 дней, если никакой активности не будет проявлено. Если вы считаете, что ПР еще актуален, или что я (злобный робот) пристаю к вам зря - просто напишите любой комментарий. Попробуйте связаться с мейнтейнерами, если они по какой-то причине игнорируют ПР, или у вас есть вопросы. Спасибо за ваш вклад.

@github-actions
Copy link

ПР закрыт из-за длительного отсуствия активности. Для переоткрытия ПРа, пожалуйста, обратитесь к кому-либо из мейнтейнеров. Вы можете призвать их в комментарии слапнув @TauCetiStation/maintainers.

@github-actions github-actions bot closed this Oct 17, 2025
@TEXH4Pb TEXH4Pb reopened this Oct 18, 2025
@github-actions
Copy link

Данный ПР автоматически отмечен как застоявшийся по причине длительного отсутствия обновлений и обсуждения. Он будет закрыт через 7 дней, если никакой активности не будет проявлено. Если вы считаете, что ПР еще актуален, или что я (злобный робот) пристаю к вам зря - просто напишите любой комментарий. Попробуйте связаться с мейнтейнерами, если они по какой-то причине игнорируют ПР, или у вас есть вопросы. Спасибо за ваш вклад.

@volas volas added the Pinned ПРы с этим лэйблом будут игнорироваться Stale-ботом label Nov 16, 2025
@volas volas marked this pull request as draft November 16, 2025 03:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Pinned ПРы с этим лэйблом будут игнорироваться Stale-ботом Stalled PR Tweak UI User Interface

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants