View Issue Details

IDProjectCategoryView StatusLast Update
0005907DarkRadiantGUIpublic24.04.2022 04:17
ReporterBrendonChung Assigned Toorbweaver  
PrioritynormalSeverityfeatureReproducibilityN/A
Status resolvedResolutionfixed 
Fixed in Version3.0.0 
Summary0005907: Allow way to hide some entities in Create Entity list
DescriptionI feel it could be useful to be able to 'tag' some entities to be hidden in the Create Entity list. For example: there are some entities, such as "damage_*", that are never placed in maps and can sometimes muddle search results.

I would suggest giving entity definitions a "editor_hidden" "1" keyvalue to exclude the entity from the Create Entity list -- but I'm sure any alternative implementation would be fine.
TagsNo tags attached.

Activities

Dragofer

Dragofer

08.03.2022 21:50

developer   ~0014758

Last edited: 08.03.2022 21:51

Not all entityDefs are designed to be created in the .map file, but it can still be useful to view them in order see their properties. Rather cumbersome to do in DR since it usually involves creating a temporary brush, converting it into that entity and checking the spawnarg list in the entity inspector - but I wouldn't permanently hide viable entities from the entity list. Maybe it should be possible to right-click > hide certain entities or folders from within the Create Entity menu so each mapper can decide what entities he wants to work with?

The feature - as proposed with the new property in the entityDef - would, however, be excellent for deprecating individual entities without having to deprecate the whole .def file.
orbweaver

orbweaver

19.04.2022 18:49

developer   ~0014804

Implemented in 10ebd7307ef0fc89ad835e017bfe738cb5ec5723

Related Changesets

DarkRadiant: master 9b4d329f

2022-03-09 20:46:43

orbweaver

Details Diff
0005907: remove redundant EntityClass constructor

For some reason there was a whole separate constructor just to default
the fixedSize parameter to false. This is now using a simple default
argument value.
Affected Issues
0005907
mod - radiantcore/eclass/EntityClass.cpp Diff File
mod - radiantcore/eclass/EntityClass.h Diff File

DarkRadiant: master 383f7322

2022-03-09 21:23:04

orbweaver

Details Diff
0005907: EntityClass::_fileInfo is now an std::optional

Use this C++17 template to avoid needing to create a dummy FileInfo when
constructing an entity which wasn't loaded from a file.
Affected Issues
0005907
mod - radiantcore/eclass/EClassManager.cpp Diff File
mod - radiantcore/eclass/EntityClass.cpp Diff File
mod - radiantcore/eclass/EntityClass.h Diff File

DarkRadiant: master f3efe946

2022-03-15 19:59:38

orbweaver

Details Diff
0005907: introduce a new IEntityClass::getAttributeValue() method

This is now used throughout the code in place of the more clumsy
getAttribute().getValue() boilerplate.
Affected Issues
0005907
mod - include/ieclass.h Diff File
mod - libs/wxutil/EntityClassChooser.cpp Diff File
mod - plugins/dm.conversation/ConversationCommandInfo.cpp Diff File
mod - plugins/dm.editing/AIHeadChooserDialog.cpp Diff File
mod - plugins/dm.editing/AIVocalSetChooserDialog.cpp Diff File
mod - plugins/dm.editing/SpawnargLinkedCheckbox.h Diff File
mod - plugins/dm.stimresponse/EffectEditor.cpp Diff File
mod - plugins/dm.stimresponse/ResponseEffect.cpp Diff File
mod - radiantcore/eclass/EntityClass.cpp Diff File
mod - radiantcore/eclass/EntityClass.h Diff File
mod - radiantcore/entity/EntityModule.cpp Diff File
mod - radiantcore/entity/SpawnArgs.cpp Diff File
mod - radiantcore/map/aas/AasFileManager.cpp Diff File
mod - test/Entity.cpp Diff File

DarkRadiant: master 2166c37a

2022-03-16 20:15:05

orbweaver

Details Diff
0005907: remove non-const getAttribute() from IEntity public interface

This method is still needed on EntityClass since it is used internally,
but is no longer used from elsewhere in the code.
Affected Issues
0005907
mod - include/ieclass.h Diff File
mod - radiantcore/eclass/EntityClass.h Diff File

DarkRadiant: master e0e18db4

2022-03-21 20:29:25

orbweaver

Details Diff
0005907: replace many calls to IEntityClass::getAttribute()

These were calls to getAttribute() whose return EntityClassAttribute&
was only used for subsequent getValue() or getDescription() calls,
allowing them to be replaced by the more straightforward
getAttributeValue() and getAttributeDescription().
Affected Issues
0005907
mod - plugins/dm.difficulty/DifficultySettings.cpp Diff File
mod - plugins/dm.difficulty/DifficultySettingsManager.cpp Diff File
mod - plugins/dm.editing/DeprecatedEclassCollector.h Diff File
mod - plugins/dm.editing/SpawnargLinkedCheckbox.h Diff File
mod - plugins/dm.editing/SpawnargLinkedSpinButton.h Diff File
mod - plugins/dm.stimresponse/ResponseEffect.cpp Diff File
mod - radiant/ui/eclasstree/EClassTreeBuilder.cpp Diff File

DarkRadiant: master d3732c9c

2022-03-21 20:53:43

orbweaver

Details Diff
0005907: remove getAttribute() from IEntityClass interface

The sole remaining usage of this object-based method was in the Python
interface, which has now been updated to use the getAttributeValue()
method instead.
Affected Issues
0005907
mod - include/ieclass.h Diff File
mod - plugins/script/interfaces/EClassInterface.cpp Diff File
mod - plugins/script/interfaces/EClassInterface.h Diff File
mod - radiantcore/eclass/EntityClass.h Diff File

DarkRadiant: master ff08489c

2022-03-22 20:38:18

orbweaver

Details Diff
0005907: remove the "empty attribute" from EntityClass

The getAttribute() methods are now private, and return a nullable
pointer to an EntityClassAttribute rather than a reference. This removes
the need for a placeholder empty attribute to return if the named
attribute is not found.
Affected Issues
0005907
mod - radiantcore/eclass/EntityClass.cpp Diff File
mod - radiantcore/eclass/EntityClass.h Diff File

DarkRadiant: master 744efce6

2022-03-22 21:26:11

orbweaver

Details Diff
0005907: fix reference-to-temporary bug introduced by previous commit Affected Issues
0005907
mod - include/ieclass.h Diff File
mod - radiantcore/eclass/EntityClass.cpp Diff File
mod - radiantcore/eclass/EntityClass.h Diff File

DarkRadiant: master 215ec294

2022-03-29 18:57:44

orbweaver

Details Diff
0005907: initial method to return a vfs::Visibility for an entity class

Currently the method returns a constant Visibility::NORMAL since there
is no code to actually parse a visibility from the .def file.
Affected Issues
0005907
mod - include/ieclass.h Diff File
mod - radiantcore/eclass/EntityClass.cpp Diff File
mod - radiantcore/eclass/EntityClass.h Diff File
mod - test/Entity.cpp Diff File

DarkRadiant: master 6bb4c837

2022-03-29 19:08:16

orbweaver

Details Diff
0005907: add failing test for a Visibility::HIDDEN entity class Affected Issues
0005907
mod - test/Entity.cpp Diff File
mod - test/resources/tdm/def/base.def Diff File

DarkRadiant: master 0722857c

2022-03-30 19:14:19

orbweaver

Details Diff
0005907: EntityClass::getVisibility() returns value from spawnargs

Instead of a constant value, getVisibility() now returns the correct
value based on the presence of an "editor_visibility" spawnarg. The
value is initialised lazily by way of a new Lazy class template which
provides a generic means of lazily initialising a value using a callback
function.
Affected Issues
0005907
add - libs/generic/Lazy.h Diff File
mod - radiantcore/eclass/EClassManager.cpp Diff File
mod - radiantcore/eclass/EntityClass.cpp Diff File
mod - radiantcore/eclass/EntityClass.h Diff File
mod - test/Entity.cpp Diff File

DarkRadiant: master 23f0e1b2

2022-03-30 19:33:45

orbweaver

Details Diff
0005907: fix unwanted inheritance of entity class visibility

Some entity classes needing to be hidden might be abstract base classes
for other entities, and those derived entities still need to appear in
the list even if the base entity is hidden.
Affected Issues
0005907
mod - radiantcore/eclass/EntityClass.cpp Diff File
mod - test/Entity.cpp Diff File

DarkRadiant: master 10ebd730

2022-04-19 18:47:54

orbweaver

Details Diff
0005907: EntityClassChooser now skips hidden entity classes

If the vfs::Visibility of a given entity class is HIDDEN, the entity
class will no longer appear in the chooser. This is a display-only
change; the entity class remains functional in the map.
Affected Issues
0005907
mod - libs/wxutil/EntityClassChooser.cpp Diff File

Issue History

Date Modified Username Field Change
25.02.2022 17:52 BrendonChung New Issue
08.03.2022 21:18 orbweaver Assigned To => orbweaver
08.03.2022 21:18 orbweaver Status new => confirmed
08.03.2022 21:50 Dragofer Note Added: 0014758
08.03.2022 21:51 Dragofer Note Edited: 0014758
08.03.2022 21:51 Dragofer Note Edited: 0014758
09.03.2022 20:23 orbweaver Status confirmed => new
09.03.2022 20:24 orbweaver Status new => assigned
17.04.2022 05:08 orbweaver Changeset attached => DarkRadiant master 9b4d329f
17.04.2022 05:08 orbweaver Changeset attached => DarkRadiant master 383f7322
17.04.2022 05:08 orbweaver Changeset attached => DarkRadiant master f3efe946
17.04.2022 05:08 orbweaver Changeset attached => DarkRadiant master 2166c37a
17.04.2022 05:08 orbweaver Changeset attached => DarkRadiant master e0e18db4
17.04.2022 05:08 orbweaver Changeset attached => DarkRadiant master d3732c9c
17.04.2022 05:08 orbweaver Changeset attached => DarkRadiant master ff08489c
17.04.2022 05:08 orbweaver Changeset attached => DarkRadiant master 744efce6
17.04.2022 05:08 orbweaver Changeset attached => DarkRadiant master 215ec294
17.04.2022 05:08 orbweaver Changeset attached => DarkRadiant master 6bb4c837
17.04.2022 05:08 orbweaver Changeset attached => DarkRadiant master 0722857c
17.04.2022 05:08 orbweaver Changeset attached => DarkRadiant master 23f0e1b2
19.04.2022 18:49 orbweaver Status assigned => resolved
19.04.2022 18:49 orbweaver Resolution open => fixed
19.04.2022 18:49 orbweaver Fixed in Version => 3.0.0
19.04.2022 18:49 orbweaver Note Added: 0014804
24.04.2022 04:17 orbweaver Changeset attached => DarkRadiant master 10ebd730