UnrealKaraulov / newbspguy

Goldsrc map viewer/editor without decompiling. Also can view .MDL models.
The Unlicense
59 stars 11 forks source link

[Enhancement] Flags filter: если выбран класс энтити, то показывать только те флаги что в действительности может иметь энтити #92

Open SmileyAG opened 6 months ago

SmileyAG commented 6 months ago

Текущее поведение:

https://github.com/UnrealKaraulov/newbspguy/assets/58108407/8b9f767a-b71e-4045-aa61-1da54fae666e

Было бы действительно удобно если бы при выборе какого-то класса, отображались бы только те спавнфлаги которые ему принадлежат (включая и те от которого он наследует, как например func_door_rotating, который имеет как и собственные флаги, так он ещё и наследует и остальные от Door класса как это можно заметить в .fgd)

UnrealKaraulov commented 6 months ago

@SmileyAG Я не понимаю, если выбрал класс, то можно посмотреть флаги перейдя к сущности любой

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

UnrealKaraulov commented 6 months ago

Не знаю похоже какие-то глупости))

Все и так работает как должно, это не просмотр флагов, а фильтрация по выбранному флагу тебе выдаст все сущности которые имеют данный флаг.

SmileyAG commented 6 months ago

@UnrealKaraulov Разве я не доходчиво объяснил? При выборе класса нужно сделать так чтобы показывало только флаги которые действительно могут к нему относится

Пример:

@SolidClass base(Door) = func_door_rotating : "Rotating door" 
[
    spawnflags(flags) =
    [
        2 : "Reverse Dir" : 0
        16: "One-way" : 0
        64: "X Axis" : 0
        128: "Y Axis" : 0
    ]
    distance(integer) : "Distance (deg)" : 90
    angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0"
]

func_door_rotating имеет как свои собственные спавнфлаги, так он ещё и наследует спавнфлаги от Door класса:

@BaseClass base(Appearflags, Targetname, RenderFields, Global) = Door
[
    // Пропускаю строки до spawnflags

    spawnflags(flags) =
    [
        1 : "Starts Open" : 0
        4 : "Don't link" : 0
        8: "Passable" : 0
        32: "Toggle" : 0
        256:"Use Only" : 0
        512: "Monsters Can't" : 0
    ]

    // Пропускаю строки после spawnflags
]

Следовательно, при выборе скажем func_door_rotating должны вывалиться только лишь следующие флаги:

Starts Open
Reverse Dir
Don't link
Passable
Toggle
X Axis
Y Axis
Use Only
Monsters Can't

Я не понимаю, если выбрал класс, то можно посмотреть флаги перейдя к сущности любой

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

Просто в таком же случае можно сказать и про Keyvalue filter, типа зачем вбивать нужный тебе keyvalue когда ты можешь сам вручную каждый энтити чекнуть для этого, это попахивает немного двойными стандартами

Я не пишу в каком-то негативном ключе, мне наоборот нравится что этот форк сильно развился от оригинала в функционале и я благодарен вам и остальным участникам в его поддержке

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

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

Так что надо бы открыть этот issue обратно, в нём действительно есть польза

UnrealKaraulov commented 6 months ago

ДА мы не так поняли друг друга, нужна фильтрация по включенным/отключенным/наличию флагов, а сейчас фильтрация просто по наличию флагов. Я сделаю.