TriggerVolumeInspectorPage class
Пакет: com.hypixel.hytale.builtin.triggervolumes.ui
Файл: com/hypixel/hytale/builtin/triggervolumes/ui/TriggerVolumeInspectorPage.java
extends: InteractiveCustomUIPage<TriggerVolumeInspectorPage.PageData>
Поля (748)
| Модификаторы | Тип | Имя |
|---|---|---|
|
public static final BuilderCodec<TriggerVolumeInspectorPage.PageData> |
CODEC |
final |
HytaleLogger |
LOGGER |
|
Select,
ChangeWorld,
FilterChanged,
ChangeTab,
UpdateVolumeField,
CommitName,
UpdateTag,
RemoveTag,
DeleteSelection,
Save,
Discard,
Teleport,
ToggleRenameSelected,
ConfirmRenameSelected,
CancelRenameSelected,
SelectEffect,
AddEffect,
RemoveEffect,
DuplicateEffect,
MoveEffectUp,
MoveEffectDown,
UpdateAddTarget,
UpdateAddEffectType,
UpdateAddEventType,
UpdateAddEntry,
ToggleEventCategory,
ToggleRulesCategory,
ToggleRejectionSignal,
UpdateParameter,
CommitEntry,
TogglePrefabPreview,
OpenPresetSave,
PresetNameChanged,
ConfirmSavePreset,
CancelPresetSave,
OpenPresetLoad,
LoadPreset,
CancelPresetLoad,
OpenAssetPicker,
AssetPickerSearch,
AssetPickerSelect,
ConfirmAssetPicker,
PreviewSound,
CancelAssetPicker,
OpenPackBrowser,
ConfirmPackBrowser,
CancelPackBrowser,
OpenCreatePack,
CreatePack,
CancelCreatePack,
PackSearch, |
PackSelect |
|
CONDITION,
EFFECT,
REJECTION_EFFECT, |
RULE |
|
GROUP, |
VOLUME |
|
public TriggerVolumeInspectorPage.Action |
action |
|
public String |
addEntry |
|
public String |
addEventType |
|
public String |
addTargetKind |
|
public String |
assetPickerQuery |
|
public String |
assetPickerSelection |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
public String |
effectIndex |
|
public String |
effectListKind |
|
public String |
effectType |
|
public String |
eventCategoryScope |
|
public String |
eventEntry |
|
public String |
eventType |
|
public String |
filterText |
|
public String |
id |
|
public Boolean |
includeVolumeSettings |
|
public String |
isGroup |
|
private final String |
labelKey |
|
public final AssetPackSaveBrowserEventData |
packBrowserData |
|
public Boolean |
paramBool |
|
public String |
paramKey |
|
public Double |
paramNumericValue |
|
public String |
paramValue |
|
public String |
presetId |
|
public String |
presetName |
|
public String |
removeTagKey |
|
|
return |
|
|
return |
|
|
return |
|
|
return |
|
|
return |
|
|
return |
|
|
return |
|
|
return |
|
|
return |
|
|
return |
|
|
return |
|
|
return |
|
|
return |
|
|
return |
|
|
return |
|
public String |
tab |
|
public String |
tagKey |
|
public String |
tagValues |
|
private final String |
tooltipKey |
|
ArrayList |
var0 |
|
ArrayList |
var0 |
|
ArrayList |
var0 |
|
TriggerVolumeInspectorDrafts.VolumeDraft |
var1 |
|
TriggerVolumeInspectorDrafts.GroupDraft |
var1 |
|
TriggerVolumeManager |
var1 |
|
I18nModule |
var1 |
|
String |
var1 |
|
|
var1 |
|
StringBuilder |
var1 |
|
TriggerEventType |
var1 |
|
|
var1 |
|
|
var1 |
|
List |
var1 |
|
Object |
var1 |
|
TriggerVolumeInspectorDrafts.VolumeDraft |
var1 |
|
TriggerVolumesPlugin.PastePrefabPreviewState |
var1 |
|
TriggerVolumesPlugin.PastePrefabPreviewState |
var1 |
|
TriggerVolumesPlugin.PastePrefabPreviewState |
var1 |
|
UICommandBuilder |
var1 |
|
UICommandBuilder |
var1 |
|
UICommandBuilder |
var1 |
|
UICommandBuilder |
var1 |
|
UICommandBuilder |
var1 |
|
Object |
var1 |
|
UICommandBuilder |
var1 |
|
TriggerVolumeManager |
var1 |
|
TriggerVolumeManager |
var1 |
|
TriggerVolumeToolSelection |
var1 |
|
UICommandBuilder |
var1 |
|
UICommandBuilder |
var1 |
|
TriggerVolumeManager |
var1 |
|
TriggerVolumeManager |
var1 |
|
TriggerVolumeManager |
var1 |
|
TriggerVolumeInspectorDrafts.GroupDraft |
var1 |
|
int |
var1 |
|
int |
var1 |
|
int |
var1 |
|
int |
var1 |
|
StringBuilder |
var1 |
|
String |
var1 |
|
String |
var1 |
|
String |
var1 |
|
BsonArray |
var1 |
|
BsonDocument |
var1 |
|
List |
var10 |
|
int |
var10 |
|
int |
var10 |
|
|
var10 |
|
GroupEntry |
var10 |
|
String |
var10 |
|
int[] |
var10 |
|
Message |
var10 |
|
|
var10 |
|
String |
var10 |
|
IntList |
var10 |
|
int |
var10 |
|
RemoveEntitiesEffect.Mode |
var10 |
|
TriggerRule |
var10 |
|
boolean |
var10 |
|
String |
var10 |
|
Enum |
var10 |
|
String |
var10 |
|
TriggerCondition |
var10 |
|
TriggerEventType |
var10 |
|
VolumeEntry |
var10 |
|
BsonDocument |
var10 |
|
String |
var10 |
|
Anchor |
var11 |
|
int |
var11 |
|
String |
var11 |
|
ObjectArrayList |
var11 |
|
TriggerEventType |
var11 |
|
String |
var11 |
|
String |
var11 |
|
ObjectArrayList |
var11 |
|
WorldChunk |
var11 |
|
int |
var11 |
|
Object |
var11 |
|
|
var11 |
|
|
var11 |
|
|
var11 |
|
|
var11 |
|
|
var11 |
|
String |
var11 |
|
Entry |
var11 |
|
Entry |
var12 |
|
String |
var12 |
|
int |
var12 |
|
int[] |
var12 |
|
BuilderCodec |
var12 |
|
String |
var12 |
|
BlockChunk |
var12 |
|
TriggerVolumeInspectorDrafts.VolumeDraft |
var12 |
|
BsonDocument |
var12 |
|
List |
var12 |
|
|
var12 |
|
|
var12 |
|
String |
var12 |
|
TriggerVolumeInspectorDrafts.VolumeDraft |
var13 |
|
String |
var13 |
|
int |
var13 |
|
Message |
var13 |
|
String |
var13 |
|
String |
var13 |
|
String |
var13 |
|
List |
var13 |
|
double |
var13 |
|
|
var13 |
|
String |
var13 |
|
int |
var13 |
|
TriggerEffect |
var13 |
|
ArrayList |
var13 |
|
int |
var13 |
|
ArrayList |
var14 |
|
String |
var14 |
|
boolean |
var14 |
|
String |
var14 |
|
BuilderField |
var14 |
|
List |
var14 |
|
BuilderField |
var14 |
|
String |
var14 |
|
TriggerEventType |
var14 |
|
Environment |
var14 |
|
double |
var14 |
|
boolean |
var14 |
|
int |
var15 |
|
Message |
var15 |
|
String |
var15 |
|
BuilderField |
var15 |
|
int |
var15 |
|
Color |
var15 |
|
BsonDocument |
var15 |
|
int |
var16 |
|
|
var16 |
|
|
var16 |
|
|
var16 |
|
boolean |
var16 |
|
BuilderField |
var16 |
|
BsonDocument |
var16 |
|
BuilderCodec |
var16 |
|
BsonDocument |
var16 |
|
Codec |
var17 |
|
String |
var17 |
|
BsonDocument |
var17 |
|
List |
var18 |
|
String |
var18 |
|
String |
var19 |
|
String |
var19 |
|
ObjectArrayList |
var2 |
|
String |
var2 |
|
Map |
var2 |
|
|
var2 |
|
|
var2 |
|
TriggerVolumeInspectorDrafts.GroupDraft |
var2 |
|
TriggerVolumeInspectorDrafts.VolumeDraft |
var2 |
|
TriggerVolumeManager |
var2 |
|
boolean |
var2 |
|
TriggerVolumeInspectorDrafts.GroupDraft |
var2 |
|
TriggerVolumeManager |
var2 |
|
TriggerVolumeManager |
var2 |
|
String |
var2 |
|
boolean |
var2 |
|
ObjectArrayList |
var2 |
|
IntOpenHashSet |
var2 |
|
ObjectArrayList |
var2 |
|
String |
var2 |
|
String |
var2 |
|
TriggerVolumeInspectorPage.EventCategoryScope |
var2 |
|
String[] |
var2 |
|
char |
var2 |
|
|
var2 |
|
TriggerVolumeInspectorPage.EffectListKind |
var2 |
|
int |
var2 |
|
|
var2 |
|
|
var2 |
|
TriggerVolumeInspectorPage.EffectListKind |
var2 |
|
int |
var2 |
|
|
var2 |
|
List |
var2 |
|
int |
var2 |
|
TriggerVolumeInspectorPage.EffectListKind |
var2 |
|
TriggerEventType |
var2 |
|
Object |
var2 |
|
int |
var2 |
|
Ref |
var2 |
|
String |
var2 |
|
Vector3d |
var2 |
|
TriggerVolumeInspectorDrafts.GroupDraft |
var2 |
|
String |
var2 |
|
String |
var2 |
|
PastePrefabEffect |
var2 |
|
UICommandBuilder |
var2 |
|
String |
var2 |
|
UIEventBuilder |
var2 |
|
AssetStore |
var2 |
|
Object |
var2 |
|
UICommandBuilder |
var2 |
|
Object |
var2 |
|
Object |
var2 |
|
TriggerVolumeManager |
var2 |
|
TriggerVolumesPlugin.PastePrefabPreviewState |
var2 |
|
TriggerVolumesPlugin.PastePrefabPreviewState |
var2 |
|
TriggerVolumeManager |
var2 |
|
BsonArray |
var2 |
|
UIEventBuilder |
var2 |
|
UIEventBuilder |
var2 |
|
VolumeEntry |
var2 |
|
GroupEntry |
var2 |
|
TriggerVolumeInspectorDrafts.VolumeDraft |
var2 |
|
TriggerVolumeInspectorDrafts.VolumeDraft |
var2 |
|
TriggerVolumeInspectorDrafts.GroupDraft |
var2 |
|
TriggerVolumeInspectorDrafts.VolumeDraft |
var2 |
|
ArrayList |
var2 |
|
int |
var2 |
|
int |
var2 |
|
String |
var2 |
|
|
var2 |
|
|
var2 |
|
String |
var2 |
|
String |
var2 |
|
BsonDocument |
var2 |
|
BsonDocument |
var2 |
|
BsonDocument |
var2 |
|
double |
var20 |
|
|
var20 |
|
TriggerVolumeInspectorDrafts.GroupDraft |
var21 |
|
TriggerRule |
var21 |
|
String |
var21 |
|
String |
var22 |
|
TriggerVolumeInspectorDrafts.VolumeDraft |
var23 |
|
String |
var23 |
|
String |
var24 |
|
BsonDocument |
var24 |
|
String |
var24 |
|
String |
var25 |
|
boolean |
var25 |
|
String |
var26 |
|
BuilderCodec |
var27 |
|
String |
var27 |
|
BuilderCodec |
var28 |
|
BsonDocument |
var29 |
|
TriggerVolumeManager |
var3 |
|
int |
var3 |
|
TriggerVolumeManager |
var3 |
|
Message |
var3 |
|
TriggerVolumeInspectorDrafts.GroupDraft |
var3 |
|
int |
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
Map |
var3 |
|
TriggerVolumeInspectorDrafts.GroupDraft |
var3 |
|
TriggerVolumeInspectorDrafts.VolumeDraft |
var3 |
|
VolumeEntry |
var3 |
|
GroupEntry |
var3 |
|
boolean |
var3 |
|
|
var3 |
|
boolean |
var3 |
|
|
var3 |
|
UICommandBuilder |
var3 |
|
TriggerVolumeManager |
var3 |
|
List |
var3 |
|
Object |
var3 |
|
String |
var3 |
|
String |
var3 |
|
String |
var3 |
|
|
var3 |
|
Message |
var3 |
|
|
var3 |
|
Object |
var3 |
|
|
var3 |
|
String |
var3 |
|
StringBuilder |
var3 |
|
int |
var3 |
|
TriggerCondition |
var3 |
|
TriggerEventType |
var3 |
|
List |
var3 |
|
TriggerVolumeInspectorPage.EventCategoryScope |
var3 |
|
String |
var3 |
|
TriggerRule |
var3 |
|
Vector3d |
var3 |
|
Vector3d |
var3 |
|
EditorBlocksChange |
var3 |
|
Store |
var3 |
|
String |
var3 |
|
Vector3d |
var3 |
|
TriggerVolumeManager |
var3 |
|
TriggerVolumeInspectorPage.EffectListKind |
var3 |
|
|
var3 |
|
Vector3d |
var3 |
|
AssetPack |
var3 |
|
AssetStore |
var3 |
|
TriggerEffectAsset |
var3 |
|
Object |
var3 |
|
UIEventBuilder |
var3 |
|
Object |
var3 |
|
BuilderCodec |
var3 |
|
int |
var3 |
|
TriggerVolumeManager |
var3 |
|
TriggerVolumeInspectorDrafts.GroupDraft |
var3 |
|
GroupEntry |
var3 |
|
BuilderCodec |
var3 |
|
BuilderCodec |
var3 |
|
Collection |
var3 |
|
GroupEntry |
var3 |
|
TriggerVolumeInspectorDrafts.GroupDraft |
var3 |
|
TriggerVolumeInspectorDrafts.VolumeDraft |
var3 |
|
String |
var3 |
|
boolean |
var3 |
|
int |
var3 |
|
int |
var3 |
|
String |
var3 |
|
String |
var3 |
|
char |
var3 |
|
ExtraInfo |
var3 |
|
ExtraInfo |
var3 |
|
ExtraInfo |
var3 |
|
BsonValue |
var3 |
|
String |
var3 |
|
BsonDocument |
var30 |
|
boolean |
var31 |
|
Map |
var32 |
|
double |
var33 |
|
|
var33 |
|
boolean |
var36 |
|
TriggerVolumeInspectorDrafts.VolumeDraft |
var38 |
|
TagCondition.Source |
var38 |
|
String |
var39 |
|
AssetPackSaveBrowser.ActionResult |
var4 |
|
LinkedHashMap |
var4 |
|
int |
var4 |
|
TriggerVolumeInspectorDrafts.GroupDraft |
var4 |
|
String |
var4 |
|
int |
var4 |
|
TriggerVolumeInspectorDrafts.VolumeDraft |
var4 |
|
String |
var4 |
|
String |
var4 |
|
UIEventBuilder |
var4 |
|
VolumeEntry |
var4 |
|
VolumeEntry |
var4 |
|
GroupEntry |
var4 |
|
VolumeEntry |
var4 |
|
ObjectArrayList |
var4 |
|
int |
var4 |
|
|
var4 |
|
|
var4 |
|
|
var4 |
|
String |
var4 |
|
Message |
var4 |
|
|
var4 |
|
|
var4 |
|
|
var4 |
|
|
var4 |
|
|
var4 |
|
|
var4 |
|
|
var4 |
|
IntOpenHashSet |
var4 |
|
TriggerVolumeInspectorPage.EventCategoryKey |
var4 |
|
TriggerVolumeInspectorPage.EventCategoryKey |
var4 |
|
TriggerVolumeInspectorPage.EventCategoryKey |
var4 |
|
int |
var4 |
|
|
var4 |
|
|
var4 |
|
|
var4 |
|
|
var4 |
|
|
var4 |
|
|
var4 |
|
|
var4 |
|
|
var4 |
|
String |
var4 |
|
String |
var4 |
|
String |
var4 |
|
char |
var4 |
|
boolean |
var4 |
|
String |
var4 |
|
TriggerEffect |
var4 |
|
int |
var4 |
|
int |
var4 |
|
TriggerEffect |
var4 |
|
BuilderCodec |
var4 |
|
BuilderCodec |
var4 |
|
ShowTriggerVolumePastePrefabPreview |
var4 |
|
World |
var4 |
|
PrefabListAsset |
var4 |
|
Vector3d |
var4 |
|
VolumeEntry |
var4 |
|
TriggerVolumeManager |
var4 |
|
Vector3d |
var4 |
|
AssetStore |
var4 |
|
int |
var4 |
|
TriggerEffectAsset.VolumeSettings |
var4 |
|
String |
var4 |
|
BuilderCodec |
var4 |
|
Ref |
var4 |
|
GroupEntry |
var4 |
|
String[] |
var4 |
|
BuilderCodec |
var4 |
|
List |
var4 |
|
BsonDocument |
var4 |
|
|
var4 |
|
String |
var4 |
|
String |
var4 |
|
boolean |
var4 |
|
String |
var4 |
|
String |
var4 |
|
BuilderField |
var42 |
|
String |
var5 |
|
TriggerVolumeInspectorDrafts.VolumeDraft |
var5 |
|
Message |
var5 |
|
String |
var5 |
|
String |
var5 |
|
String |
var5 |
|
String |
var5 |
|
TransformComponent |
var5 |
|
GroupEntry |
var5 |
|
String |
var5 |
|
TriggerVolumeInspectorDrafts.GroupDraft |
var5 |
|
Message |
var5 |
|
int |
var5 |
|
TriggerEffect |
var5 |
|
String |
var5 |
|
String |
var5 |
|
String |
var5 |
|
Message |
var5 |
|
BuilderCodec |
var5 |
|
BuilderCodec |
var5 |
|
TriggerRule |
var5 |
|
TriggerRule |
var5 |
|
Path |
var5 |
|
Vector3d |
var5 |
|
Vector3d |
var5 |
|
yield |
var5 |
|
GroupEntry |
var5 |
|
List |
var5 |
|
|
var5 |
|
|
var5 |
|
Vector3d |
var5 |
|
List |
var5 |
|
TriggerEffectAsset.VolumeSettings |
var5 |
|
TriggerVolumeInspectorDrafts.VolumeDraft |
var5 |
|
String |
var5 |
|
UICommandBuilder |
var5 |
|
TransformComponent |
var5 |
|
TriggerVolumeInspectorDrafts.GroupDraft |
var5 |
|
List |
var5 |
|
List |
var5 |
|
BuilderField |
var5 |
|
LinkedHashSet |
var5 |
|
List |
var5 |
|
|
var5 |
|
|
var5 |
|
|
var5 |
|
List |
var5 |
|
I18nModule |
var5 |
|
ArrayList |
var6 |
|
String |
var6 |
|
String |
var6 |
|
String |
var6 |
|
Vector3d |
var6 |
|
Vector3d |
var6 |
|
String |
var6 |
|
IntArrayList |
var6 |
|
String |
var6 |
|
int |
var6 |
|
|
var6 |
|
|
var6 |
|
|
var6 |
|
|
var6 |
|
|
var6 |
|
|
var6 |
|
|
var6 |
|
|
var6 |
|
String |
var6 |
|
ArrayList |
var6 |
|
String |
var6 |
|
String |
var6 |
|
TriggerEffect |
var6 |
|
BuilderCodec |
var6 |
|
BuilderCodec |
var6 |
|
BlockSelection |
var6 |
|
|
var6 |
|
int |
var6 |
|
GroupEntry |
var6 |
|
BuilderField |
var6 |
|
TriggerEffectAsset |
var6 |
|
UICommandBuilder |
var6 |
|
UICommandBuilder |
var6 |
|
UICommandBuilder |
var6 |
|
Vector3d |
var6 |
|
TriggerVolumeInspectorDrafts.VolumeDraft |
var6 |
|
BuilderField |
var6 |
|
BuilderField |
var6 |
|
BsonValue |
var6 |
|
Object2IntMap |
var6 |
|
int |
var6 |
|
String |
var6 |
|
String |
var6 |
|
String |
var6 |
|
String |
var6 |
|
String |
var7 |
|
String |
var7 |
|
String |
var7 |
|
String |
var7 |
|
String |
var7 |
|
Vector3d |
var7 |
|
VolumeEntry |
var7 |
|
GroupEntry |
var7 |
|
List |
var7 |
|
List |
var7 |
|
int |
var7 |
|
String |
var7 |
|
BuilderCodec |
var7 |
|
ObjectArrayList |
var7 |
|
String |
var7 |
|
double |
var7 |
|
|
var7 |
|
|
var7 |
|
String |
var7 |
|
String |
var7 |
|
String |
var7 |
|
BuilderCodec |
var7 |
|
BuilderCodec |
var7 |
|
int |
var7 |
|
TriggerVolumeInspectorDrafts.GroupDraft |
var7 |
|
Codec |
var7 |
|
Path |
var7 |
|
String |
var7 |
|
UIEventBuilder |
var7 |
|
UIEventBuilder |
var7 |
|
BsonDocument |
var7 |
|
BsonDocument |
var7 |
|
int |
var7 |
|
BuilderField |
var7 |
|
BuilderField |
var7 |
|
BuilderField |
var7 |
|
String |
var8 |
|
TriggerVolumeInspectorDrafts.VolumeDraft |
var8 |
|
int |
var8 |
|
int |
var8 |
|
Vector3d |
var8 |
|
GroupEntry |
var8 |
|
ObjectArrayList |
var8 |
|
boolean |
var8 |
|
BuilderCodec |
var8 |
|
BsonDocument |
var8 |
|
String |
var8 |
|
List |
var8 |
|
ObjectArrayList |
var8 |
|
String |
var8 |
|
String |
var8 |
|
String |
var8 |
|
TriggerRule |
var8 |
|
int |
var8 |
|
ExtraInfo |
var8 |
|
UICommandBuilder |
var8 |
|
Codec |
var8 |
|
int |
var8 |
|
BsonValue |
var8 |
|
BsonValue |
var8 |
|
BsonValue |
var8 |
|
String |
var9 |
|
String |
var9 |
|
int |
var9 |
|
ObjectArrayList |
var9 |
|
String |
var9 |
|
String |
var9 |
|
int |
var9 |
|
TriggerEventType |
var9 |
|
BsonDocument |
var9 |
|
ModifyRulesEffect.Operation |
var9 |
|
String |
var9 |
|
BuilderField |
var9 |
|
String |
var9 |
|
String |
var9 |
|
|
var9 |
|
|
var9 |
|
ObjectArrayList |
var9 |
|
ObjectArrayList |
var9 |
|
BuilderCodec |
var9 |
|
int |
var9 |
|
TriggerVolumesPlugin.PastePrefabPreviewState |
var9 |
|
long |
var9 |
|
BsonValue |
var9 |
|
int |
var9 |
|
|
var9 |
|
BsonDocument |
var9 |
|
BsonDocument |
var9 |
|
BsonDocument |
var9 |
|
public Double |
vecX |
|
public Double |
vecY |
|
public Double |
vecZ |
|
public String |
worldName |
Методы (517)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
Action Action() |
abstract |
return new |
BsonArrayreturn new BsonArray() |
abstract |
return new |
BsonBooleanreturn new BsonBoolean(false) |
abstract |
return new |
BsonDocumentreturn new BsonDocument() |
abstract |
return new |
BsonDoublereturn new BsonDouble(0.0) |
abstract |
return new |
BsonInt32return new BsonInt32(0) |
abstract |
return new |
BsonInt64return new BsonInt64(0L) |
abstract |
return new |
BsonStringreturn new BsonString(var1) |
abstract |
return new |
BsonStringreturn new BsonString("") |
|
|
EffectListKind EffectListKind() |
private |
record |
EventCategoryKeyrecord EventCategoryKey(@Nonnull TriggerEventType eventType, int entry) |
|
|
EventCategoryScope EventCategoryScope() |
|
|
InspectorTab InspectorTab(@Nonnull String nullxx, @Nonnull String nullxxx) |
|
public |
PageDatapublic PageData() |
private |
record |
RowEntryrecord RowEntry(@Nonnull String id, boolean isGroup, int listIndex) |
abstract |
|
TAGS TAGS("server.customUI.triggerVolumeInspector.tab.tags", "server.customUI.triggerVolumeInspector.tab.tags.tooltip") |
private |
int |
addAssetPickerRowint addAssetPickerRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull String var5, @Nonnull String var6) |
private |
int |
addBoxDimensionsRowint addBoxDimensionsRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull Vector3d var4) |
private |
int |
addCylinderDimensionsRowint addCylinderDimensionsRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull Vector3d var4) |
private |
int |
addEffectCheckboxRowint addEffectCheckboxRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull String var5, boolean var6) |
private |
int |
addEffectDropdownRowint addEffectDropdownRow(@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
@Nonnull String var4,
@Nonnull String var5,
@Nonnull List<String> var6,
@Nonnull String var7) |
private |
int |
addEffectFieldByKeyint addEffectFieldByKey(@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
@Nonnull String var4,
@Nullable BuilderCodec<TriggerEffect> var5,
@Nonnull BsonDocument var6,
@Nonnull String var7) |
private |
int |
addEffectFieldRowint addEffectFieldRow(@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
@Nonnull String var4,
@Nonnull String var5,
@Nonnull Codec<?> var6,
@Nullable BsonValue var7) |
private |
int |
addEffectNumberRowint addEffectNumberRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull String var5, @Nonnull String var6, int var7) |
private |
int |
addEffectNumberRowint addEffectNumberRow(@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
@Nonnull String var4,
@Nonnull String var5,
@Nonnull Object var6,
@Nullable Message var7,
@Nonnull String var8,
int var9) |
private |
int |
addEffectTextRowint addEffectTextRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull String var5, @Nonnull String var6) |
private |
int |
addEffectVec3Rowint addEffectVec3Row(@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
@Nonnull String var4,
@Nonnull String var5,
double var6,
double var8,
double var10) |
private |
int |
addPastePrefabPreviewButtonRowint addPastePrefabPreviewButtonRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3) |
private |
int |
addReadonlyTextRowint addReadonlyTextRow(@Nonnull UICommandBuilder var1, int var2, @Nonnull String var3, @Nonnull String var4) |
private |
int |
addRotationXyzRowint addRotationXyzRow(@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
@Nonnull String var4,
@Nonnull String var5,
@Nonnull String var6,
@Nonnull String var7) |
private |
int |
addRuleFieldDropdownRowint addRuleFieldDropdownRow(@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
@Nonnull String var4,
@Nullable BuilderCodec<TriggerRule> var5,
@Nullable String var6) |
private |
int |
addRuleTypeDropdownRowint addRuleTypeDropdownRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, boolean var5) |
private |
int |
addSphereDimensionsRowint addSphereDimensionsRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull Vector3d var4) |
private |
int |
addVolumeCheckboxRowint addVolumeCheckboxRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, boolean var5) |
private |
int |
addVolumeColorRowint addVolumeColorRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull String var5) |
private |
int |
addVolumeDimensionsRowint addVolumeDimensionsRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull TriggerVolumeShapeType var4, @Nonnull Vector3d var5) |
private |
int |
addVolumeDropdownRowint addVolumeDropdownRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull List<DropdownEntryInfo> var5, @Nonnull String var6) |
private |
int |
addVolumeNumberRowint addVolumeNumberRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull String var5, int var6) |
private |
int |
addVolumeSectionLabelint addVolumeSectionLabel(@Nonnull UICommandBuilder var1, int var2, @Nonnull String var3) |
private |
int |
addVolumeTextRowint addVolumeTextRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull String var5) |
private |
int |
addVolumeVec3Rowint addVolumeVec3Row(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull Vector3d var5) |
private |
int |
addVolumeVec3Rowint addVolumeVec3Row(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull Vector3d var5, boolean var6) |
private |
int |
appendBaseFieldHeaderint appendBaseFieldHeader(@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
boolean var4,
@Nonnull String var5,
@Nonnull String var6,
@Nonnull String var7,
@Nonnull String var8) |
private |
void |
appendChipvoid appendChip(@Nonnull UICommandBuilder var1, @Nonnull String var2, int var3, @Nonnull String var4, int var5) |
private |
void |
appendEffectListvoid appendEffectList(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, @Nonnull String var3) |
private |
int |
appendEventCategoryGroupsint appendEventCategoryGroups(@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
@Nonnull String var3,
int var4,
@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var5,
@Nullable TriggerVolumeInspectorDrafts.GroupDraft var6) |
private |
int |
appendEventCategoryHeaderint appendEventCategoryHeader(@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
@Nonnull String var3,
int var4,
@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var5,
@Nonnull TriggerEventType var6,
int var7,
int var8) |
private |
int |
appendEventCategorySpacerint appendEventCategorySpacer(@Nonnull UICommandBuilder var1, @Nonnull String var2, int var3) |
private |
int |
appendEventSectionint appendEventSection(@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
@Nonnull String var3,
int var4,
@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var5,
@Nullable TriggerVolumeInspectorDrafts.GroupDraft var6,
@Nonnull TriggerEventType var7,
int var8,
@Nonnull TriggerVolumeInspectorPage.EffectListKind var9) |
private |
int |
appendGroupRowint appendGroupRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull String var5, int var6) |
private |
int |
appendInheritedGroupSectionsint appendInheritedGroupSections(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, @Nonnull String var3, int var4) |
private |
void |
appendListMessagevoid appendListMessage(@Nonnull UICommandBuilder var1, @Nonnull Message var2) |
static |
void |
appendOptionLangKeysvoid appendOptionLangKeys(@Nonnull List<String> var0, @Nonnull String var1, @Nonnull String var2, @Nonnull String var3, @Nonnull String var4, @Nonnull String var5) |
abstract |
|
appendOptionLangKeys appendOptionLangKeys(var6, "server.customUI.triggerVolumeEffectEditor.field." + var0 + "." + var1 + ".option.", var2, var4, var5, var3) |
abstract |
|
appendOptionLangKeys appendOptionLangKeys(var6, "server.customUI.triggerVolumeEffectEditor.field.common." + var1 + ".option.", var2, var4, var5, var3) |
private |
int |
appendRejectionSignalSectionint appendRejectionSignalSection(@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
@Nonnull String var4,
@Nonnull BuilderCodec<TriggerRule> var5,
@Nonnull BsonDocument var6,
@Nonnull AbstractDenyRule var7) |
private |
void |
appendRotationAxisvoid appendRotationAxis(@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
@Nonnull String var3,
@Nonnull String var4,
@Nonnull String var5,
@Nonnull String var6,
@Nonnull String var7) |
private |
int |
appendRowTagChipsint appendRowTagChips(@Nonnull UICommandBuilder var1, @Nonnull String var2, @Nonnull Map<String, String> var3, boolean var4) |
private |
int |
appendRulesCategoryint appendRulesCategory(@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
@Nonnull String var3,
int var4,
@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var5,
@Nullable TriggerVolumeInspectorDrafts.GroupDraft var6) |
private |
int |
appendVolumeEffectsSectionint appendVolumeEffectsSection(@Nonnull UICommandBuilder var1, @Nonnull String var2, int var3, boolean var4) |
private |
int |
appendVolumeRowint appendVolumeRow(@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
@Nonnull String var4,
@Nonnull String var5,
boolean var6,
int var7,
@Nonnull Map<String, String> var8) |
private |
<T> void |
applyCodecField<T> void applyCodecField(@Nonnull BuilderCodec<T> var1, @Nonnull T var2, @Nonnull String var3, @Nonnull TriggerVolumeInspectorPage.PageData var4) |
private |
void |
applyDeletesvoid applyDeletes(@Nonnull TriggerVolumeManager var1) |
private |
void |
applyGroupDraftsvoid applyGroupDrafts(@Nonnull TriggerVolumeManager var1) |
private |
void |
applyGroupNameImmediatelyvoid applyGroupNameImmediately(@Nonnull TriggerVolumeInspectorDrafts.GroupDraft var1) |
private |
void |
applyModifyRulesParametervoid applyModifyRulesParameter(@Nonnull ModifyRulesEffect var1, @Nonnull String var2, @Nonnull TriggerVolumeInspectorPage.PageData var3) |
private |
void |
applyPickerValuevoid applyPickerValue(@Nonnull BuilderCodec<?> var1, @Nonnull Object var2, @Nonnull String var3, @Nullable String var4) |
private |
void |
applyPickerValuesvoid applyPickerValues(@Nonnull BuilderCodec<?> var1, @Nonnull Object var2, @Nonnull String var3, @Nonnull Collection<String> var4) |
private |
void |
applyPreSelectionvoid applyPreSelection(@Nonnull UICommandBuilder var1) |
private |
void |
applyRuleTypeChangevoid applyRuleTypeChange(@Nonnull ModifyRulesEffect var1, @Nullable String var2) |
private |
void |
applyTintFromPlayerPositionvoid applyTintFromPlayerPosition(@Nonnull ShowTriggerVolumePastePrefabPreview var1) |
private |
void |
applyVolumeDraftsvoid applyVolumeDrafts(@Nonnull TriggerVolumeManager var1) |
private |
void |
applyVolumeNameImmediatelyvoid applyVolumeNameImmediately(@Nonnull TriggerVolumeInspectorDrafts.VolumeDraft var1) |
private |
void |
bindStaticEventsvoid bindStaticEvents(@Nonnull UIEventBuilder var1) |
private |
void |
buildAddEffectDropdownvoid buildAddEffectDropdown(@Nonnull UICommandBuilder var1) |
private |
void |
buildAddEntryDropdownvoid buildAddEntryDropdown(@Nonnull UICommandBuilder var1) |
private |
void |
buildAddEventTypeDropdownvoid buildAddEventTypeDropdown(@Nonnull UICommandBuilder var1) |
private |
void |
buildAddTargetDropdownvoid buildAddTargetDropdown(@Nonnull UICommandBuilder var1) |
private |
void |
buildAssetPickerListvoid buildAssetPickerList(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) |
private |
void |
buildEffectDetailPanelvoid buildEffectDetailPanel(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) |
private |
void |
buildEffectListvoid buildEffectList(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) |
private |
void |
buildEffectsTabvoid buildEffectsTab(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) |
private |
void |
buildListvoid buildList(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) |
private |
void |
buildModifyRulesEffectDetailPanelvoid buildModifyRulesEffectDetailPanel(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, @Nonnull ModifyRulesEffect var3) |
private |
void |
buildSelectedNameHeadervoid buildSelectedNameHeader(@Nonnull UICommandBuilder var1) |
private |
void |
buildSelectedPanevoid buildSelectedPane(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) |
private |
void |
buildTabsvoid buildTabs(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) |
private |
void |
buildTagsTabvoid buildTagsTab(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) |
private |
void |
buildTitleTagChipsvoid buildTitleTagChips(@Nonnull UICommandBuilder var1) |
private |
void |
buildVolumeTabvoid buildVolumeTab(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) |
private |
void |
buildWorldDropdownvoid buildWorldDropdown(@Nonnull UICommandBuilder var1) |
static |
int |
chipWidthint chipWidth(@Nonnull String var0) |
static |
double |
clampDimensiondouble clampDimension(double var0, double var2) |
private |
void |
clearDraftStatevoid clearDraftState() |
private |
void |
clearPastePrefabPreviewIfFromDifferentWorldvoid clearPastePrefabPreviewIfFromDifferentWorld() |
private |
void |
closeAssetPickervoid closeAssetPicker() |
private |
void |
enterRuleAddModevoid enterRuleAddMode() |
private |
int |
entryOfint entryOf(@Nullable Object var1) |
private |
void |
fillPreviewPacketvoid fillPreviewPacket(@Nonnull ShowTriggerVolumePastePrefabPreview var1, @Nonnull BlockSelection var2) |
private |
int |
fillTitleChipRowsint fillTitleChipRows(@Nonnull UICommandBuilder var1, @Nonnull String var2, @Nonnull List<Entry<String, String>> var3, int var4, int var5, int var6, boolean var7) |
|
|
for for(VolumeEntry var12 : var10) |
|
|
for for(VolumeEntry var22 : var18) |
|
|
for for(TriggerVolumeInspectorPage.RowEntry var3 : this.currentRows) |
|
|
for for(TriggerVolumeInspectorPage.RowEntry var3 : this.currentRows) |
|
|
for for(String var3 : this.deletedVolumes) |
|
|
for for(String var9 : this.deletedGroups) |
|
|
for for(String var12 : var7) |
|
|
for for(String var6 : var3) |
|
|
for for(int var8 : var10) |
|
|
for for(int var10 = 0; var10 < var9; var10++) |
|
|
for for(int var8 = 0; var8 < var7; var8++) |
|
|
for for(String var12 : DENY_SIGNAL_FIELD_KEYS) |
|
|
for for(String var11 : var6) |
|
|
for for(String var7 : var2) |
|
|
for for(String var4 : var1) |
|
|
for for(String var8 : var3) |
|
|
for for(String var9 : var5) |
|
|
for for(String var18 : var5) |
|
|
for for(VolumeEntry var5 : var3) |
abstract |
|
for for(var11 = var4; var11 < var3.size() |
abstract |
|
for for(int var11 = 0; var11 < var7.size() |
abstract |
|
for for(int var11 = 0; var11 < var10.size() |
abstract |
|
for for(int var3 = 0; var3 < var0.length() |
abstract |
|
for for(int var17 = 0; var17 < var12.size() |
abstract |
|
for for(int var10 = 0; var10 < var5.size() |
abstract |
|
for for(int var2 = 1; var2 < var0.length() |
abstract |
return |
getAssetIdsForSourcereturn getAssetIdsForSource(this.pendingPickerSource) |
abstract |
return |
getConditionTypeIdreturn getConditionTypeId(var2) |
private |
int |
getEventCategoryItemCountint getEventCategoryItemCount(@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var1,
@Nullable TriggerVolumeInspectorDrafts.GroupDraft var2,
@Nonnull TriggerEventType var3,
int var4) |
static |
int |
getGroupItemCountint getGroupItemCount(@Nonnull TriggerVolumeInspectorPage.EffectListKind var0, @Nonnull TriggerVolumeInspectorDrafts.GroupDraft var1) |
static |
int |
getGroupItemEntryint getGroupItemEntry(@Nonnull TriggerVolumeInspectorPage.EffectListKind var0, int var1, @Nonnull TriggerVolumeInspectorDrafts.GroupDraft var2) |
private |
int |
getItemCountint getItemCount(@Nonnull TriggerVolumeInspectorPage.EffectListKind var1) |
private |
int |
getItemEntryint getItemEntry(@Nonnull TriggerVolumeInspectorPage.EffectListKind var1, int var2) |
abstract |
return |
getManagerForWorldreturn getManagerForWorld(this.selectedWorld) |
public |
void |
handleDataEventvoid handleDataEvent(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull TriggerVolumeInspectorPage.PageData var3) |
private |
void |
hidePastePrefabPreviewvoid hidePastePrefabPreview() |
|
|
if if(this.preSelectedVolumeId != null) |
|
|
if if(var3 != null) |
|
|
if if(!this.skipSaveOnDismiss) |
|
|
if if(var4 != null) |
|
|
if if(var16 == 0) |
|
|
if if(var10 > 0) |
|
|
if if(var6) |
|
|
if if(this.pendingScrollToSelection && this.selectedId != null) |
|
|
if if(this.selectedId != null) |
|
|
if if(var2 == null) |
|
|
if if(var3 != null) |
|
|
if if(this.selectedIsGroup) |
|
|
if if(var3 != null) |
|
|
if if(var5 != null) |
|
|
if if(this.selectedId != null && var2 != null) |
|
|
if if(var10 > 0 && var10 + var15 > var5) |
|
|
if if(var9 == var6) |
|
|
if if(var7) |
|
|
if if(this.selectedId == null) |
|
|
if if(this.selectedIsGroup) |
|
|
if if(var4 == null) |
|
|
if if(var38 == null) |
|
|
if if(var5 == null) |
|
|
if if(var6) |
|
|
if if(var1.id != null) |
|
|
if if(this.selectedId != null) |
|
|
if if(this.renamingSelected) |
|
|
if if(this.renamingSelected) |
|
|
if if(this.renameOriginalId != null) |
|
|
if if(this.selectedIsGroup) |
|
|
if if(var1 != null) |
|
|
if if(var2 != null) |
|
|
if if(var2 != null) |
|
|
if if(var1.tab != null) |
|
|
if if(var1.paramKey != null && this.selectedId != null) |
|
|
if if(this.selectedIsGroup) |
|
|
if if(var3 == null) |
|
|
if if(var4 == null) |
|
|
if if(var2) |
|
|
if if(this.selectedId != null) |
|
|
if if(this.selectedIsGroup) |
|
|
if if(var2 == null) |
|
|
if if(var1.paramValue != null) |
|
|
if if(var3 == null) |
|
|
if if(var1.paramValue != null) |
|
|
if if(var2 != null) |
|
|
if if(var3 != null) |
|
|
if if(var2 != null) |
|
|
if if(var3 != null) |
|
|
if if(var3) |
|
|
if if(var3) |
|
|
if if(this.selectedId != null && var1.tagKey != null) |
|
|
if if(var1.removeTagKey != null) |
|
|
if if(this.selectedId != null) |
|
|
if if(this.selectedIsGroup) |
|
|
if if(this.selectedId != null && !this.selectedIsGroup) |
|
|
if if(var3 != null) |
|
|
if if(var5 != null) |
|
|
if if(var2) |
|
|
if if(var4 != null) |
|
|
if if(var5 != null) |
|
|
if if(var10 != null) |
|
|
if if(var7 != null) |
|
|
if if(var4 != null) |
|
|
if if(var4 != null) |
|
|
if if(var7 != null) |
|
|
if if(var3.groupId != null) |
|
|
if if(var8 != null) |
|
|
if if(this.addTargetKind != TriggerVolumeInspectorPage.EffectListKind.RULE) |
|
|
if if(this.addTargetKind == TriggerVolumeInspectorPage.EffectListKind.RULE) |
|
|
if if(!var3) |
|
|
if if(!var4) |
|
|
if if(var3 > 0 && !this.selectedIsGroup) |
|
|
if if(var13 != 0) |
|
|
if if(var5 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP && var6 == null) |
|
|
if if(var5 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP) |
|
|
if if(var8) |
|
|
if if(var5 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP) |
|
|
if if(var1.eventCategoryScope != null) |
|
|
if if(var2 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP) |
|
|
if if(var5 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP) |
|
|
if if(var2 > 0) |
|
|
if if(var1 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP && var2 == null) |
|
|
if if(var8 != TriggerVolumeInspectorPage.EffectListKind.RULE) |
|
|
if if(var9 != TriggerVolumeInspectorPage.EffectListKind.RULE) |
|
|
if if(var1 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP && var2 == null) |
|
|
if if(var10 == var4) |
|
|
if if(var1 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP) |
|
|
if if(var1 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP) |
|
|
if if(var3 == null) |
|
|
if if(var3 instanceof TriggerRule var23) |
|
|
if if(var27 != null) |
|
|
if if(var23 instanceof AbstractDenyRule var34) |
|
|
if if(var28 != null) |
|
|
if if(var8 != null) |
|
|
if if(var5 instanceof PastePrefabEffect) |
|
|
if if(var9 == ModifyRulesEffect.Operation.SET_RULES_ACTIVE) |
|
|
if if(var9 == ModifyRulesEffect.Operation.SET_FIELD) |
|
|
if if(!this.rejectionSignalExpanded) |
|
|
if if(var5 == null) |
|
|
if if(var5) |
|
|
if if(var5 != null) |
|
|
if if(var4) |
|
|
if if(var6 == Codec.BOOLEAN) |
|
|
if if(var6 == Codec.FLOAT) |
|
|
if if(var6 == Codec.DOUBLE) |
|
|
if if(var6 == Codec.INTEGER) |
|
|
if if(var6 == Codec.LONG) |
|
|
if if(var6 == Vector3dUtil.CODEC) |
|
|
if if(var7 instanceof BsonDocument var15) |
|
|
if if(var6 == Codec.STRING) |
|
|
if if(var7 != null) |
|
|
if if(var6 instanceof Message var11) |
|
|
if if(var7 != null) |
|
|
if if(var4 == '_') |
|
|
if if(var4) |
|
|
if if(this.selectedKind == TriggerVolumeInspectorPage.EffectListKind.RULE) |
|
|
if if(this.selectedKind == TriggerVolumeInspectorPage.EffectListKind.CONDITION) |
|
|
if if(var2 == TriggerVolumeInspectorPage.EffectListKind.RULE) |
|
|
if if(var7 == null) |
|
|
if if(var2 == TriggerVolumeInspectorPage.EffectListKind.CONDITION) |
|
|
if if(var9 == null) |
|
|
if if(var5 == null) |
|
|
if if(this.selectedKind == TriggerVolumeInspectorPage.EffectListKind.CONDITION) |
|
|
if if(var1.addTargetKind != null) |
|
|
if if(var2 == TriggerVolumeInspectorPage.EffectListKind.RULE) |
|
|
if if(var1.addEventType != null) |
|
|
if if(var1.eventType != null && var1.eventCategoryScope != null) |
|
|
if if(var2 != null && var1.paramKey != null) |
|
|
if if(var2 instanceof TriggerRule var11) |
|
|
if if(var1.paramBool != null) |
|
|
if if(var16 != null) |
|
|
if if(var2 instanceof TriggerCondition var20) |
|
|
if if(var1.paramNumericValue != null) |
|
|
if if(var2 instanceof TriggerCondition var18) |
|
|
if if(var6 != null) |
|
|
if if(var1.paramNumericValue != null) |
|
|
if if(var1.paramNumericValue != null) |
|
|
if if(var5 != null) |
|
|
if if(var7 != null) |
|
|
if if(var5 != null) |
|
|
if if(var6 != null) |
|
|
if if(var4 != null) |
|
|
if if(var1 != null) |
|
|
if if(var2 >= 0 && var2 != this.lastCommittedEntry) |
|
|
if if(var1 instanceof TriggerCondition var3) |
|
|
if if(var3 == null) |
|
|
if if(var3) |
|
|
if if(var5 == null) |
|
|
if if(var6 == null) |
|
|
if if(var9 != null) |
|
|
if if(var2 == null) |
|
|
if if(var4 == null) |
|
|
if if(var14 != null) |
|
|
if if(var15 != null) |
|
|
if if(var3 != null) |
|
|
if if(this.selectedIsGroup) |
|
|
if if(var2 == null) |
|
|
if if(var3 == null) |
|
|
if if(var2 == null) |
|
|
if if(var3 != TriggerVolumeInspectorPage.EffectListKind.CONDITION && var3 != TriggerVolumeInspectorPage.EffectListKind.RULE) |
|
|
if if(var4 == null) |
|
|
if if(var6 == null) |
|
|
if if(var10 == null) |
|
|
if if(var2 == null) |
|
|
if if(var3 == null) |
|
|
if if(var4 == null) |
|
|
if if(var4.vecX != null && var4.vecY != null && var4.vecZ != null) |
|
|
if if(var7 == Codec.FLOAT || var7 == Codec.DOUBLE) |
|
|
if if(var9 != null) |
|
|
if if(var3 == null) |
|
|
if if(var4 != null) |
|
|
if if(var3 != null) |
|
|
if if(var2 != null) |
|
|
if if(var3 == null) |
|
|
if if(var4 != null && !this.selectedIsGroup) |
|
|
if if(var1.paramKey != null) |
|
|
if if(var2 != null) |
|
|
if if(var5 != null) |
|
|
if if(this.pendingPickerMultiSelect) |
|
|
if if(var1.assetPickerQuery != null) |
|
|
if if(var1.assetPickerSelection != null && this.pendingPickerFieldKey != null) |
|
|
if if(this.pendingPickerMultiSelect) |
|
|
if if(var2 != null) |
|
|
if if(var4 != null) |
|
|
if if(this.pendingPickerMultiSelect && this.pendingPickerFieldKey != null) |
|
|
if if(var1 != null) |
|
|
if if(var3 != null) |
|
|
if if(var3 != Integer.MIN_VALUE && var3 != 0) |
|
|
if if(var5 != null) |
|
|
if if(var1 != null) |
|
|
if if(var1 != null) |
|
|
if if(!this.suppressSelectionObserver) |
|
|
if if(var2 != null) |
|
|
if if(var5 != null) |
|
|
if if(var6 != null) |
|
|
if if(this.selectedId != null && var2 != null) |
|
|
if if(this.selectedIsGroup) |
|
|
if if(var3 == null) |
|
|
if if(var2 != null) |
|
|
if if(var8 == Codec.STRING_ARRAY) |
|
|
if if(var0 instanceof TriggerCondition var2) |
|
|
if if(var3 == null) |
|
|
if if(var3 == null) |
|
|
if if(var6 instanceof BsonArray) |
|
|
if if(var9 instanceof BsonString var10) |
|
|
if if(var14) |
|
|
if if(var1 != null && this.selectedId != null) |
|
|
if if(var1 != null && this.selectedId != null) |
|
|
if if(this.selectedIsGroup) |
|
|
if if(var1 != null && var2 != null && var2.groupId != null) |
|
|
if if(this.selectedIsGroup) |
|
|
if if(this.selectedIsGroup) |
|
|
if if(this.selectedIsGroup) |
|
|
if if(var1 != null) |
|
|
if if(var2 != null) |
|
|
if if(var9 > 0 && var9 + var13 > var6) |
|
|
if if(var8 == 2) |
|
|
if if(var0 == null) |
|
|
if if(var1.vecX != null && var1.vecY != null && var1.vecZ != null) |
|
|
if if(var1.vecX != null && var1.vecY != null && var1.vecZ != null) |
|
|
if if(var1.paramNumericValue != null) |
|
|
if if(var1.vecX != null && var1.vecY != null) |
|
|
if if(var1 == null) |
|
|
if if(var0 instanceof TriggerCondition var2) |
|
|
if if(var1 == null) |
|
|
if if(var0 instanceof BsonString var5) |
|
|
if if(var8 != null) |
|
|
if if(var8 != null) |
|
|
if if(var8 != null) |
|
|
if if(var0 == Codec.BOOLEAN) |
private |
boolean |
isAddingRuleboolean isAddingRule() |
static |
boolean |
isAppendableFieldCodecboolean isAppendableFieldCodec(@Nonnull Codec<?> var0) |
static |
boolean |
isApplyOnFieldboolean isApplyOnField(@Nonnull String var0, @Nonnull String var1) |
static |
boolean |
isApplyOnPseudoboolean isApplyOnPseudo(@Nonnull String var0) |
private |
boolean |
isEventCategoryCollapsedboolean isEventCategoryCollapsed(@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var1, @Nonnull TriggerEventType var2, int var3) |
private |
boolean |
isLoopingAnimationboolean isLoopingAnimation(@Nonnull String var1, @Nonnull String var2, @Nonnull String var3) |
static |
boolean |
isNonNegativeNumericFieldboolean isNonNegativeNumericField(@Nonnull String var0, @Nonnull String var1) |
static |
boolean |
isPastePrefabPreviewAssetFieldboolean isPastePrefabPreviewAssetField(@Nullable String var0) |
private |
boolean |
isPickerFieldMultiSelectboolean isPickerFieldMultiSelect(@Nonnull Object var1, @Nonnull String var2) |
private |
boolean |
isPreviewingSelectedEffectboolean isPreviewingSelectedEffect() |
static |
boolean |
isTagConditionFieldHiddenboolean isTagConditionFieldHidden(@Nonnull String var0, @Nonnull TagCondition.Source var1) |
private |
boolean |
isUnsupportedAnimationboolean isUnsupportedAnimation(@Nonnull String var1, @Nonnull String var2, @Nonnull String var3) |
private |
boolean |
isUnsupportedApplyOnboolean isUnsupportedApplyOn(@Nonnull String var1, @Nonnull String var2, @Nonnull String var3) |
|
Message |
labelMessage label() |
private |
void |
leaveRuleAddModevoid leaveRuleAddMode() |
private |
void |
logMissingOptionKeyvoid logMissingOptionKey(@Nonnull String var1) |
private |
void |
markSelectedDraftDirtyvoid markSelectedDraftDirty() |
private |
boolean |
matchesFilterboolean matchesFilter(@Nonnull String var1) |
private |
boolean |
matchesGroupFilterboolean matchesGroupFilter(@Nonnull String var1, @Nonnull GroupEntry var2, @Nonnull List<VolumeEntry> var3) |
private |
boolean |
matchesVolumeFilterboolean matchesVolumeFilter(@Nonnull VolumeEntry var1) |
static |
void |
materializeConditionDefaultsvoid materializeConditionDefaults(@Nonnull BuilderCodec<TriggerCondition> var0, @Nonnull TriggerCondition var1) |
abstract |
|
materializeConditionDefaults materializeConditionDefaults(var9, var10) |
static |
void |
materializeDefaultsvoid materializeDefaults(@Nonnull BuilderCodec<TriggerEffect> var0, @Nonnull TriggerEffect var1) |
abstract |
|
materializeDefaults materializeDefaults(var5, var6) |
static |
void |
materializeRuleDefaultsvoid materializeRuleDefaults(@Nonnull BuilderCodec<TriggerRule> var0, @Nonnull TriggerRule var1) |
abstract |
|
materializeRuleDefaults materializeRuleDefaults(var7, var8) |
abstract |
|
materializeRuleDefaults materializeRuleDefaults(var4, var5) |
private |
int |
maxEntryForEventint maxEntryForEvent(@Nonnull TriggerEventType var1) |
static |
boolean |
messageExistsboolean messageExists(@Nonnull String var0) |
private |
void |
onAddEffectvoid onAddEffect(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onAssetPickerSearchvoid onAssetPickerSearch(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onAssetPickerSelectvoid onAssetPickerSelect(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onCancelAssetPickervoid onCancelAssetPicker() |
private |
void |
onCancelPresetLoadvoid onCancelPresetLoad() |
private |
void |
onCancelPresetSavevoid onCancelPresetSave() |
private |
void |
onCancelRenameSelectedvoid onCancelRenameSelected() |
private |
void |
onChangeTabvoid onChangeTab(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onChangeWorldvoid onChangeWorld(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onCommitEntryvoid onCommitEntry() |
private |
void |
onCommitNamevoid onCommitName(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onConfirmAssetPickervoid onConfirmAssetPicker() |
private |
void |
onConfirmRenameSelectedvoid onConfirmRenameSelected() |
private |
void |
onConfirmSavePresetvoid onConfirmSavePreset(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onDeleteSelectionvoid onDeleteSelection() |
private |
void |
onDiscardvoid onDiscard() |
private |
void |
onDuplicateEffectvoid onDuplicateEffect() |
private |
void |
onExternalSelectionChangedvoid onExternalSelectionChanged(@Nullable String var1) |
private |
void |
onExternalVolumeRemovedvoid onExternalVolumeRemoved(@Nonnull String var1) |
private |
void |
onExternalVolumeUpdatedvoid onExternalVolumeUpdated(@Nonnull VolumeEntry var1) |
private |
void |
onFilterChangedvoid onFilterChanged(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onLoadPresetvoid onLoadPreset(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onMoveEffectvoid onMoveEffect(int var1) |
private |
void |
onOpenAssetPickervoid onOpenAssetPicker(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onOpenPresetLoadvoid onOpenPresetLoad() |
private |
void |
onOpenPresetSavevoid onOpenPresetSave() |
private |
void |
onPresetNameChangedvoid onPresetNameChanged(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onPreviewSoundvoid onPreviewSound(@Nonnull TriggerVolumeInspectorPage.PageData var1, @Nonnull Store<EntityStore> var2) |
private |
void |
onRemoveEffectvoid onRemoveEffect() |
private |
void |
onRemoveTagvoid onRemoveTag(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onSavevoid onSave() |
private |
void |
onSelectvoid onSelect(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onSelectEffectvoid onSelectEffect(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onTeleportvoid onTeleport(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2) |
private |
void |
onToggleEventCategoryvoid onToggleEventCategory(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onTogglePrefabPreviewvoid onTogglePrefabPreview() |
private |
void |
onToggleRejectionSignalvoid onToggleRejectionSignal() |
private |
void |
onToggleRenameSelectedvoid onToggleRenameSelected() |
private |
void |
onToggleRulesCategoryvoid onToggleRulesCategory(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onUpdateAddEffectTypevoid onUpdateAddEffectType(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onUpdateAddEntryvoid onUpdateAddEntry(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onUpdateAddEventTypevoid onUpdateAddEventType(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onUpdateAddTargetvoid onUpdateAddTarget(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onUpdateParametervoid onUpdateParameter(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onUpdateTagvoid onUpdateTag(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
private |
void |
onUpdateVolumeFieldvoid onUpdateVolumeField(@Nonnull TriggerVolumeInspectorPage.PageData var1) |
|
public void |
onVolumeRemovedpublic void onVolumeRemoved(@Nonnull String var1) |
|
public void |
onVolumeUpdatedpublic void onVolumeUpdated(@Nonnull VolumeEntry var1) |
static |
int |
parseEntryint parseEntry(@Nullable String var0) |
static |
int |
parsePackedColorint parsePackedColor(@Nullable String var0, int var1) |
private |
void |
rebuildAllvoid rebuildAll() |
private |
void |
rebuildEffectListOnlyvoid rebuildEffectListOnly() |
private |
void |
refreshActivePastePrefabPreviewvoid refreshActivePastePrefabPreview() |
private |
void |
refreshActivePastePrefabPreviewPositionvoid refreshActivePastePrefabPreviewPosition() |
private |
void |
registerSelectionObservervoid registerSelectionObserver() |
private |
void |
registerVolumeUpdateObservervoid registerVolumeUpdateObserver() |
private |
int |
resolveAddEntryint resolveAddEntry(@Nullable String var1, @Nonnull TriggerEventType var2) |
private |
Collection<String> |
resolvePickerIdsCollection<String> resolvePickerIds() |
private |
void |
restorePresetSavePagevoid restorePresetSavePage() |
private |
void |
revertRejectedDraftIdsvoid revertRejectedDraftIds() |
private |
boolean |
saveDraftsboolean saveDrafts(@Nonnull TriggerVolumeManager var1, boolean var2) |
private |
void |
scrollSelectedRowToViewvoid scrollSelectedRowToView(@Nonnull UICommandBuilder var1) |
private |
boolean |
sendPastePrefabPreviewboolean sendPastePrefabPreview(@Nonnull PastePrefabEffect var1, boolean var2) |
private |
boolean |
sendPastePrefabPreviewboolean sendPastePrefabPreview(@Nonnull PastePrefabEffect var1, @Nonnull Vector3d var2, boolean var3) |
private |
void |
setApplyOnLabelvoid setApplyOnLabel(@Nonnull UICommandBuilder var1, @Nonnull String var2, @Nonnull String var3) |
private |
void |
setBaseNumberCellvoid setBaseNumberCell(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, @Nonnull String var3, @Nonnull String var4, @Nonnull String var5, @Nonnull String var6) |
static |
void |
setBoxDimensionsvoid setBoxDimensions(@Nonnull Vector3d var0, @Nonnull TriggerVolumeInspectorPage.PageData var1) |
abstract |
|
setBoxDimensions setBoxDimensions(var1.dimensions, var2) |
private |
void |
setCurrentConditionTimingvoid setCurrentConditionTiming(@Nonnull ConditionTiming var1) |
static |
void |
setCylinderDimensionsvoid setCylinderDimensions(@Nonnull Vector3d var0, @Nonnull TriggerVolumeInspectorPage.PageData var1) |
abstract |
|
setCylinderDimensions setCylinderDimensions(var1.dimensions, var2) |
static |
void |
setDimensionsHeadervoid setDimensionsHeader(@Nonnull UICommandBuilder var0, @Nonnull String var1) |
abstract |
|
setDimensionsHeader setDimensionsHeader(var1, var5) |
static |
void |
setEffectFieldPlaceholdervoid setEffectFieldPlaceholder(@Nonnull UICommandBuilder var0, @Nonnull String var1, @Nonnull String var2, @Nonnull String var3) |
abstract |
|
setEffectFieldPlaceholder setEffectFieldPlaceholder(var1, var7, var4, var5) |
static |
void |
setEffectFieldTooltipvoid setEffectFieldTooltip(@Nonnull UICommandBuilder var0, @Nonnull String var1, @Nonnull String var2, @Nonnull String var3) |
abstract |
|
setEffectFieldTooltip setEffectFieldTooltip(var1, var6, "ModifyRules", "RuleType") |
abstract |
|
setEffectFieldTooltip setEffectFieldTooltip(var1, var7, "ModifyRules", "RuleField") |
abstract |
|
setEffectFieldTooltip setEffectFieldTooltip(var1, var7, var4, var5) |
abstract |
|
setEffectFieldTooltip setEffectFieldTooltip(var1, var10, var4, var5) |
abstract |
|
setEffectFieldTooltip setEffectFieldTooltip(var1, var8, var4, var5) |
abstract |
|
setEffectFieldTooltip setEffectFieldTooltip(var1, var12, var4, var5) |
abstract |
|
setEffectFieldTooltip setEffectFieldTooltip(var1, var8, var4, "Rotation") |
private |
void |
setEventCategoryExpandedvoid setEventCategoryExpanded(@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var1, @Nonnull TriggerEventType var2, int var3) |
private |
void |
setIdValidationvoid setIdValidation(@Nonnull UICommandBuilder var1, @Nonnull String var2, @Nonnull String var3, @Nonnull String var4) |
private |
void |
setSavePresetButtonStatevoid setSavePresetButtonState(@Nonnull UICommandBuilder var1) |
static |
void |
setSphereDimensionsvoid setSphereDimensions(@Nonnull Vector3d var0, @Nonnull TriggerVolumeInspectorPage.PageData var1) |
abstract |
|
setSphereDimensions setSphereDimensions(var1.dimensions, var2) |
static |
void |
setVecvoid setVec(@Nonnull Vector3d var0, @Nonnull TriggerVolumeInspectorPage.PageData var1) |
abstract |
|
setVec setVec(var1.position, var2) |
abstract |
|
setVec setVec(var1.origin, var2) |
abstract |
return |
stringsToBsonArrayreturn stringsToBsonArray(var1) |
abstract |
|
super super(var1, CustomPageLifetime.CanDismiss, TriggerVolumeInspectorPage.PageData.CODEC) |
|
|
switch switch(var3.action) |
|
|
switch switch(this.selectedTab) |
|
return |
switchreturn switch(var4) |
|
|
switch switch(var2.paramKey) |
|
|
switch switch(var2.paramKey) |
|
|
switch switch(this.selectedKind) |
|
|
switch switch(this.selectedKind) |
|
return |
switchreturn switch(this.selectedKind) |
|
return |
switchreturn switch(var1) |
|
return |
switchreturn switch(var0) |
|
return |
switchreturn switch(var0) |
|
return |
switchreturn switch(var0) |
|
return |
switchreturn switch(var1) |
|
return |
switchreturn switch(var0) |
|
return |
switchreturn switch(var0 != null ? var0 : "PLAYER") |
private |
void |
syncAddControlsToSelectedEffectvoid syncAddControlsToSelectedEffect() |
private |
void |
syncSelectionToToolvoid syncSelectionToTool() |
static |
int |
tagChipColorint tagChipColor(@Nonnull String var0) |
private |
boolean |
tagMatchesFilterboolean tagMatchesFilter(@Nonnull String var1, @Nullable String var2) |
private |
boolean |
tagsMatchFilterboolean tagsMatchFilter(@Nonnull Map<String, String> var1) |
abstract |
|
this this(var1, var2, var3, false, var4) |
private |
void |
toggleEventCategoryvoid toggleEventCategory(@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var1, @Nonnull TriggerEventType var2, int var3) |
|
Message |
tooltipMessage tooltip() |
private |
void |
updateDraftIdvoid updateDraftId(@Nonnull TriggerVolumeInspectorDrafts.VolumeDraft var1, @Nullable String var2) |
private |
void |
updateDraftIdvoid updateDraftId(@Nonnull TriggerVolumeInspectorDrafts.GroupDraft var1, @Nullable String var2) |
private |
void |
updateGroupFieldvoid updateGroupField(@Nonnull TriggerVolumeInspectorDrafts.GroupDraft var1, @Nonnull TriggerVolumeInspectorPage.PageData var2) |
private |
void |
updateVolumeFieldvoid updateVolumeField(@Nonnull TriggerVolumeInspectorDrafts.VolumeDraft var1, @Nonnull TriggerVolumeInspectorPage.PageData var2) |
private |
boolean |
validateDraftIdsboolean validateDraftIds(@Nonnull TriggerVolumeManager var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.triggervolumes.ui;
class="kw">import com.hypixel.hytale.assetstore.AssetPack;
class="kw">import com.hypixel.hytale.assetstore.AssetRegistry;
class="kw">import com.hypixel.hytale.assetstore.AssetStore;
class="kw">import com.hypixel.hytale.assetstore.map.DefaultAssetMap;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.EntityTargetType;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.TriggerVolumesPlugin;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.asset.TriggerEffectAsset;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerCondition;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerEffect;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerEventType;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerRule;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.ModifyRulesEffect;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.PastePrefabEffect;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.PlayAnimationEffect;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.RemoveEntitiesEffect;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.TaggedVolumeEffectUtil;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.conditions.BlockTypeCondition;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.conditions.TagCondition;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.rules.AbstractDenyRule;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.manager.ConditionTiming;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.manager.CooldownMode;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.manager.GroupEntry;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.manager.ProjectileSource;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.manager.RejectionDelayMode;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.manager.TriggerVolumeManager;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.manager.VolumeEntry;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.EmptyExtraInfo;
class="kw">import com.hypixel.hytale.codec.ExtraInfo;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderField;
class="kw">import com.hypixel.hytale.codec.codecs.EnumCodec;
class="kw">import com.hypixel.hytale.common.util.StringCompareUtil;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.math.vector.Vector3dUtil;
class="kw">import com.hypixel.hytale.protocol.Color;
class="kw">import com.hypixel.hytale.protocol.SoundCategory;
class="kw">import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime;
class="kw">import com.hypixel.hytale.protocol.packets.interface_.CustomUIEventBindingType;
class="kw">import com.hypixel.hytale.protocol.packets.interface_.EditorBlocksChange;
class="kw">import com.hypixel.hytale.protocol.packets.player.HideTriggerVolumePastePrefabPreview;
class="kw">import com.hypixel.hytale.protocol.packets.player.ShowTriggerVolumePastePrefabPreview;
class="kw">import com.hypixel.hytale.protocol.packets.player.TriggerVolumeShapeType;
class="kw">import com.hypixel.hytale.protocol.packets.player.TriggerVolumeToolSelection;
class="kw">import com.hypixel.hytale.server.core.HytaleServer;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.asset.type.buildertool.config.PrefabListAsset;
class="kw">import com.hypixel.hytale.server.core.asset.type.environment.config.Environment;
class="kw">import com.hypixel.hytale.server.core.asset.type.soundevent.config.SoundEvent;
class="kw">import com.hypixel.hytale.server.core.asset.util.ColorParseUtil;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.pages.InteractiveCustomUIPage;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.teleport.Teleport;
class="kw">import com.hypixel.hytale.server.core.modules.i18n.I18nModule;
class="kw">import com.hypixel.hytale.server.core.modules.singleplayer.SingleplayerModule;
class="kw">import com.hypixel.hytale.server.core.prefab.PrefabStore;
class="kw">import com.hypixel.hytale.server.core.prefab.selection.standard.BlockSelection;
class="kw">import com.hypixel.hytale.server.core.ui.Anchor;
class="kw">import com.hypixel.hytale.server.core.ui.DropdownEntryInfo;
class="kw">import com.hypixel.hytale.server.core.ui.LocalizableString;
class="kw">import com.hypixel.hytale.server.core.ui.PatchStyle;
class="kw">import com.hypixel.hytale.server.core.ui.Value;
class="kw">import com.hypixel.hytale.server.core.ui.browser.AssetPackSaveBrowser;
class="kw">import com.hypixel.hytale.server.core.ui.browser.AssetPackSaveBrowserConfig;
class="kw">import com.hypixel.hytale.server.core.ui.browser.AssetPackSaveBrowserEventData;
class="kw">import com.hypixel.hytale.server.core.ui.builder.EventData;
class="kw">import com.hypixel.hytale.server.core.ui.builder.UICommandBuilder;
class="kw">import com.hypixel.hytale.server.core.ui.builder.UIEventBuilder;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.Universe;
class="kw">import com.hypixel.hytale.server.core.universe.world.SoundUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.BlockChunk;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.WorldChunk;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import it.unimi.dsi.fastutil.ints.IntArrayList;
class="kw">import it.unimi.dsi.fastutil.ints.IntList;
class="kw">import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
class="kw">import it.unimi.dsi.fastutil.objects.Object2IntMap;
class="kw">import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.nio.file.Files;
class="kw">import java.nio.file.Path;
class="kw">import java.util.ArrayList;
class="kw">import java.util.Arrays;
class="kw">import java.util.Collection;
class="kw">import java.util.Collections;
class="kw">import java.util.Comparator;
class="kw">import java.util.EnumSet;
class="kw">import java.util.HashSet;
class="kw">import java.util.LinkedHashMap;
class="kw">import java.util.LinkedHashSet;
class="kw">import java.util.List;
class="kw">import java.util.Locale;
class="kw">import java.util.Map;
class="kw">import java.util.Objects;
class="kw">import java.util.Set;
class="kw">import java.util.Map.Entry;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.bson.BsonArray;
class="kw">import org.bson.BsonBoolean;
class="kw">import org.bson.BsonDocument;
class="kw">import org.bson.BsonDouble;
class="kw">import org.bson.BsonInt32;
class="kw">import org.bson.BsonInt64;
class="kw">import org.bson.BsonString;
class="kw">import org.bson.BsonValue;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3f;
class="kw">public class TriggerVolumeInspectorPage class="kw">extends InteractiveCustomUIPage<TriggerVolumeInspectorPage.PageData> {
class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
class="kw">private class="kw">static class="kw">final int ASSET_PICKER_MAX_RESULTS = 50;
class="kw">private class="kw">static class="kw">final Value<String> NORMAL_ROW_STYLE = Value.ref("Pages/TriggerVolume/TriggerVolumeBrowseGroupRow.ui", "NormalRowStyle");
class="kw">private class="kw">static class="kw">final Value<String> SELECTED_ROW_STYLE = Value.ref("Pages/TriggerVolume/TriggerVolumeBrowseGroupRow.ui", "SelectedRowStyle");
class="kw">private class="kw">static class="kw">final Value<String> NORMAL_EFFECT_ROW_STYLE = Value.ref("Pages/TriggerVolume/TriggerVolumeInspectorEffectRow.ui", "NormalRowStyle");
class="kw">private class="kw">static class="kw">final Value<String> SELECTED_EFFECT_ROW_STYLE = Value.ref("Pages/TriggerVolume/TriggerVolumeInspectorEffectRow.ui", "SelectedRowStyle");
class="kw">private class="kw">static class="kw">final Value<String> INHERITED_EFFECT_ROW_STYLE = Value.ref("Pages/TriggerVolume/TriggerVolumeInspectorEffectRow.ui", "InheritedRowStyle");
class="kw">private class="kw">static class="kw">final Value<String> NORMAL_EFFECT_LABEL_STYLE = Value.ref("Pages/TriggerVolume/TriggerVolumeInspectorEffectRow.ui", "NormalLabelStyle");
class="kw">private class="kw">static class="kw">final Value<String> SELECTED_EFFECT_LABEL_STYLE = Value.ref("Pages/TriggerVolume/TriggerVolumeInspectorEffectRow.ui", "SelectedLabelStyle");
class="kw">private class="kw">static class="kw">final Value<String> INHERITED_EFFECT_LABEL_STYLE = Value.ref("Pages/TriggerVolume/TriggerVolumeInspectorEffectRow.ui", "InheritedLabelStyle");
class="kw">private class="kw">static class="kw">final String PAGE = "Pages/TriggerVolume/TriggerVolumeInspectorPage.ui";
class="kw">private class="kw">static class="kw">final String GROUP_ROW = "Pages/TriggerVolume/TriggerVolumeBrowseGroupRow.ui";
class="kw">private class="kw">static class="kw">final String VOLUME_ROW = "Pages/TriggerVolume/TriggerVolumeBrowseVolumeRow.ui";
class="kw">private class="kw">static class="kw">final String TAG_ROW = "Pages/TriggerVolume/TriggerVolumeBrowseTagRow.ui";
class="kw">private class="kw">static class="kw">final String TAG_CHIP = "Pages/TriggerVolume/TriggerVolumeTagChip.ui";
class="kw">private class="kw">static class="kw">final int[] TAG_CHIP_COLORS = new int[]{
5223543,
4176047,
5214176,
7237344,
10181046,
13393320,
14707612,
14715452,
14070332,
14247259,
6013118,
8365648,
11566278,
15241563,
13194606,
4878288,
4894348,
12546880,
7317724,
13332382
};
class="kw">private class="kw">static class="kw">final int OVERFLOW_CHIP_COLOR = 5596014;
class="kw">private class="kw">static class="kw">final int INSPECTOR_PANE_WIDTH = 895;
class="kw">private class="kw">static class="kw">final int TAB_BUTTONS_WIDTH = 300;
class="kw">private class="kw">static class="kw">final int TITLE_CHIP_ROW_BUDGET = 579;
class="kw">private class="kw">static class="kw">final int[] EMPTY_ENTRIES = new int[0];
class="kw">private class="kw">static class="kw">final String ADD_ENTRY_NEW = "NEW";
class="kw">private class="kw">static class="kw">final String ALWAYS_ACTIVE_EVENT_VALUE = "ALWAYS_ACTIVE";
class="kw">private class="kw">static class="kw">final String PROPERTY_ROW = "Pages/TriggerVolume/TriggerVolumeBrowsePropertyRow.ui";
class="kw">private class="kw">static class="kw">final String TAB_BUTTON = "Pages/TriggerVolume/TriggerVolumeInspectorTabButton.ui";
class="kw">private class="kw">static class="kw">final String EFFECT_ROW = "Pages/TriggerVolume/TriggerVolumeInspectorEffectRow.ui";
class="kw">private class="kw">static class="kw">final String EVENT_CATEGORY_HEADER = "Pages/TriggerVolume/TriggerVolumeInspectorEventCategoryHeader.ui";
class="kw">private class="kw">static class="kw">final List<String> DENY_SIGNAL_FIELD_KEYS = List.of("Target", "MatchKey", "MatchValue", "Radius", "SignalKeys", "SignalValues");
class="kw">private class="kw">static class="kw">final Set<String> DENY_SIGNAL_FIELD_KEY_SET = Set.copyOf(DENY_SIGNAL_FIELD_KEYS);
class="kw">private class="kw">static class="kw">final Set<String> DENY_SIGNAL_OTHER_ONLY_KEYS = Set.of("MatchKey", "MatchValue", "Radius");
class="kw">private class="kw">static class="kw">final Set<String> TAG_CONDITION_RADIUS_ONLY_KEYS = Set.of("MatchKey", "MatchValue", "Radius", "Center");
class="kw">private class="kw">static class="kw">final String EVENT_SECTION_LABEL = "Pages/TriggerVolume/TriggerVolumeInspectorEventSectionLabel.ui";
class="kw">private class="kw">static class="kw">final String EVENT_CATEGORY_SPACER = "Pages/TriggerVolume/TriggerVolumeInspectorEventCategorySpacer.ui";
class="kw">private class="kw">static class="kw">final String SECTION_LABEL = "Pages/TriggerVolume/TriggerVolumeInspectorSectionLabel.ui";
class="kw">private class="kw">static class="kw">final String VOLUME_SECTION_LABEL = "Pages/TriggerVolume/TriggerVolumeInspectorVolumeSectionLabel.ui";
class="kw">private class="kw">static class="kw">final String EFFECT_OWNER_SECTION_LABEL = "Pages/TriggerVolume/TriggerVolumeInspectorEffectOwnerSectionLabel.ui";
class="kw">private class="kw">static class="kw">final String COMMON_TEXT_BUTTON_DOCUMENT = "Common/TextButton.ui";
class="kw">private class="kw">static class="kw">final String BASE_HEADER_GRID = "Pages/TriggerVolume/TriggerVolumeInspectorBaseHeaderGrid.ui";
class="kw">private class="kw">static class="kw">final String FIELD_TEXT = "Pages/TriggerVolume/TriggerVolumeInspectorTextRow.ui";
class="kw">private class="kw">static class="kw">final String FIELD_COLOR = "Pages/TriggerVolume/TriggerVolumeInspectorColorRow.ui";
class="kw">private class="kw">static class="kw">final String FIELD_NUMBER = "Pages/TriggerVolume/TriggerVolumeInspectorNumberRow.ui";
class="kw">private class="kw">static class="kw">final String FIELD_INT = "Pages/TriggerVolume/TriggerVolumeInspectorIntRow.ui";
class="kw">private class="kw">static class="kw">final String FIELD_CHECKBOX = "Pages/TriggerVolume/TriggerVolumeInspectorCheckboxRow.ui";
class="kw">private class="kw">static class="kw">final String FIELD_DROPDOWN = "Pages/TriggerVolume/TriggerVolumeInspectorDropdownRow.ui";
class="kw">private class="kw">static class="kw">final String FIELD_VEC3 = "Pages/TriggerVolume/TriggerVolumeInspectorVec3Row.ui";
class="kw">private class="kw">static class="kw">final String FIELD_ROTATION3 = "Pages/TriggerVolume/TriggerVolumeInspectorRotation3Row.ui";
class="kw">private class="kw">static class="kw">final EnumCodec<BlockTypeCondition.AxisRotation> AXIS_ROTATION_CODEC = new EnumCodec<>(BlockTypeCondition.AxisRotation.class);
class="kw">private class="kw">static class="kw">final String FIELD_DIMENSIONS_BOX = "Pages/TriggerVolume/TriggerVolumeInspectorDimensionsBoxRow.ui";
class="kw">private class="kw">static class="kw">final String FIELD_DIMENSIONS_SPHERE = "Pages/TriggerVolume/TriggerVolumeInspectorDimensionsSphereRow.ui";
class="kw">private class="kw">static class="kw">final String FIELD_DIMENSIONS_CYLINDER = "Pages/TriggerVolume/TriggerVolumeInspectorDimensionsCylinderRow.ui";
class="kw">private class="kw">static class="kw">final String FIELD_ASSET_PICKER = "Pages/TriggerVolume/TriggerVolumeInspectorAssetPickerRow.ui";
class="kw">private class="kw">static class="kw">final String SOUND_ASSET_PICKER_ROW = "Pages/TriggerVolume/TriggerVolumeInspectorSoundAssetRow.ui";
class="kw">private class="kw">static class="kw">final String RULE_TYPE_PARAM = "RuleType";
class="kw">private class="kw">static class="kw">final String RULE_FIELD_PARAM = "RuleField";
class="kw">private class="kw">static class="kw">final Set<String> NON_NEGATIVE_NUMERIC_FIELDS = Set.of(
"CooldownCondition.Cooldown",
"ItemCondition.Quantity",
"PlayerCountCondition.Count",
"GiveItem.Quantity",
"DamageMultiplier.Multiplier",
"TriggerNpcMarkers.Range",
"TriggerNpcMarkers.Radius",
"ModifyTags.Radius",
"EnableVolume.Radius",
"DisableVolume.Radius",
"DeleteVolume.Radius",
"ModifyRules.Radius",
"TagCondition.Radius",
"TagCondition.MinimumCount"
);
class="kw">private class="kw">static class="kw">final Map<String, BsonValue> DEFAULT_FIELD_VALUES = Map.of(
"ModifyTags.TagValue",
new BsonString("Empty"),
"ModifyTags.Radius",
new BsonDouble(50.0),
"EnableVolume.Radius",
new BsonDouble(50.0),
"DisableVolume.Radius",
new BsonDouble(50.0),
"DeleteVolume.Radius",
new BsonDouble(50.0),
"ModifyRules.Radius",
new BsonDouble(50.0),
"TagCondition.Radius",
new BsonDouble(50.0)
);
class="kw">private class="kw">static class="kw">final Color DEFAULT_PREFAB_BIOME_TINT = new Color((byte)91, (byte)-98, (byte)40);
class="kw">private class="kw">static class="kw">final int DEFAULT_BIOME_TINT = ColorParseUtil.colorToARGBInt(DEFAULT_PREFAB_BIOME_TINT) & 16777215;
class="kw">private class="kw">static class="kw">final int DEFAULT_WATER_TINT = ColorParseUtil.colorToARGBInt(Environment.getUnknownFor("").getWaterTint()) & 16777215;
@Nonnull
class="kw">private String selectedWorld;
@Nullable
class="kw">private String selectedId;
class="kw">private boolean selectedIsGroup;
@Nonnull
class="kw">private TriggerVolumeInspectorPage.InspectorTab selectedTab;
@Nonnull
class="kw">private String filterText = "";
class="kw">private class="kw">final Map<String, TriggerVolumeInspectorDrafts.VolumeDraft> volumeDrafts = new LinkedHashMap<>();
class="kw">private class="kw">final Map<String, TriggerVolumeInspectorDrafts.GroupDraft> groupDrafts = new LinkedHashMap<>();
class="kw">private class="kw">final Set<String> deletedVolumes = new LinkedHashSet<>();
class="kw">private class="kw">final Set<String> deletedGroups = new LinkedHashSet<>();
class="kw">private class="kw">final List<TriggerVolumeInspectorPage.RowEntry> currentRows = new ArrayList<>();
class="kw">private class="kw">final TriggerVolumeManager.SelectionObserver selectionObserver = this::onExternalSelectionChanged;
class="kw">private class="kw">final TriggerVolumeManager.VolumeUpdateObserver volumeUpdateObserver = new TriggerVolumeManager.VolumeUpdateObserver() {
@Override
class="kw">public void onVolumeUpdated(@Nonnull VolumeEntry var1) {
TriggerVolumeInspectorPage.this.onExternalVolumeUpdated(var1);
}
@Override
class="kw">public void onVolumeRemoved(@Nonnull String var1) {
TriggerVolumeInspectorPage.this.onExternalVolumeRemoved(var1);
}
};
@Nullable
class="kw">private class="kw">final String preSelectedVolumeId;
class="kw">private class="kw">final boolean preSelectedIsGroup;
@Nonnull
class="kw">private TriggerVolumeInspectorPage.EffectListKind selectedKind = TriggerVolumeInspectorPage.EffectListKind.EFFECT;
@Nonnull
class="kw">private TriggerVolumeInspectorPage.EffectListKind addTargetKind = TriggerVolumeInspectorPage.EffectListKind.EFFECT;
@Nonnull
class="kw">private TriggerVolumeInspectorPage.EffectListKind lastRegularTargetKind = TriggerVolumeInspectorPage.EffectListKind.EFFECT;
@Nonnull
class="kw">private TriggerEventType addEventType = TriggerEventType.ENTER;
@Nonnull
class="kw">private String addEffectType = "";
class="kw">private int addEntry = 0;
class="kw">private boolean volumeRulesCollapsed;
class="kw">private boolean groupRulesExpanded;
class="kw">private boolean rejectionSignalExpanded;
class="kw">private boolean renamingSelected = false;
@Nullable
class="kw">private String renameOriginalId = null;
class="kw">private int selectedEffectIndex = -1;
class="kw">private int lastCommittedEntry = -1;
@Nonnull
class="kw">private class="kw">final Set<TriggerVolumeInspectorPage.EventCategoryKey> collapsedVolumeEventCategories = new HashSet<>();
@Nonnull
class="kw">private class="kw">final Set<TriggerVolumeInspectorPage.EventCategoryKey> expandedGroupEventCategories = new HashSet<>();
class="kw">private boolean suppressSelectionObserver;
class="kw">private boolean skipSaveOnDismiss;
class="kw">private boolean pendingScrollToSelection = true;
@Nullable
class="kw">private String pendingPickerFieldKey;
@Nullable
class="kw">private String pendingPickerSource;
class="kw">private boolean pendingPickerMultiSelect;
@Nonnull
class="kw">private class="kw">final Set<String> pendingPickerSelections = new LinkedHashSet<>();
@Nonnull
class="kw">private String assetPickerSearchQuery = "";
@Nonnull
class="kw">private class="kw">final Set<String> missingOptionLangKeys = new HashSet<>();
@Nonnull
class="kw">private class="kw">final AssetPackSaveBrowser presetPackBrowser = new AssetPackSaveBrowser(AssetPackSaveBrowserConfig.defaults());
@Nonnull
class="kw">private String presetSaveName = "";
class="kw">public TriggerVolumeInspectorPage(
@Nonnull PlayerRef var1, @Nonnull String var2, @Nullable String var3, @Nonnull TriggerVolumeInspectorPage.InspectorTab var4
) {
this(var1, var2, var3, false, var4);
}
class="kw">public TriggerVolumeInspectorPage(
@Nonnull PlayerRef var1, @Nonnull String var2, @Nullable String var3, boolean var4, @Nonnull TriggerVolumeInspectorPage.InspectorTab var5
) {
super(var1, CustomPageLifetime.CanDismiss, TriggerVolumeInspectorPage.PageData.CODEC);
this.selectedWorld = var2;
this.preSelectedVolumeId = var3;
this.preSelectedIsGroup = var4;
this.selectedTab = var5;
}
@Override
class="kw">public void build(@Nonnull Ref<EntityStore> var1, @Nonnull UICommandBuilder var2, @Nonnull UIEventBuilder var3, @Nonnull Store<EntityStore> var4) {
var2.append("Pages/TriggerVolume/TriggerVolumeInspectorPage.ui");
this.registerSelectionObserver();
this.registerVolumeUpdateObserver();
this.clearPastePrefabPreviewIfFromDifferentWorld();
this.buildWorldDropdown(var2);
this.buildTabs(var2, var3);
this.buildList(var2, var3);
if (this.preSelectedVolumeId != null) {
this.applyPreSelection(var2);
}
this.buildSelectedPane(var2, var3);
this.bindStaticEvents(var3);
this.presetPackBrowser.buildUI(var2, var3);
}
@Override
class="kw">public void onDismiss(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2) {
TriggerVolumeManager var3 = getManagerForWorld(this.selectedWorld);
if (var3 != null) {
if (!this.skipSaveOnDismiss) {
this.saveDrafts(var3, false);
}
var3.clearSelectionObserver(this.playerRef.getUuid(), this.selectionObserver);
var3.clearVolumeUpdateObserver(this.playerRef.getUuid(), this.volumeUpdateObserver);
}
this.skipSaveOnDismiss = false;
}
class="kw">public void handleDataEvent(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull TriggerVolumeInspectorPage.PageData var3) {
AssetPackSaveBrowser.ActionResult var4 = this.presetPackBrowser
.handleAction(var3.action != null ? var3.action.name() : null, var3.packBrowserData, "#PresetSavePage #SelectedPackLabel");
if (var4 != null) {
if (var4.errorKey() != null) {
this.playerRef.sendMessage(Message.translation(var4.errorKey()));
}
this.setSavePresetButtonState(var4.commandBuilder());
this.sendUpdate(var4.commandBuilder(), var4.eventBuilder(), false);
} else if (var3.action != null) {
class="kw">switch (var3.action) {
case Select:
this.onSelect(var3);
break;
case ChangeWorld:
this.onChangeWorld(var3);
break;
case FilterChanged:
this.onFilterChanged(var3);
break;
case ChangeTab:
this.onChangeTab(var3);
break;
case UpdateVolumeField:
this.onUpdateVolumeField(var3);
break;
case CommitName:
this.onCommitName(var3);
break;
case UpdateTag:
this.onUpdateTag(var3);
break;
case RemoveTag:
this.onRemoveTag(var3);
break;
case DeleteSelection:
this.onDeleteSelection();
break;
case Save:
this.onSave();
break;
case Discard:
this.onDiscard();
break;
case Teleport:
this.onTeleport(var1, var2);
break;
case ToggleRenameSelected:
this.onToggleRenameSelected();
break;
case ConfirmRenameSelected:
this.onConfirmRenameSelected();
break;
case CancelRenameSelected:
this.onCancelRenameSelected();
break;
case SelectEffect:
this.onSelectEffect(var3);
break;
case AddEffect:
this.onAddEffect(var3);
break;
case RemoveEffect:
this.onRemoveEffect();
break;
case DuplicateEffect:
this.onDuplicateEffect();
break;
case MoveEffectUp:
this.onMoveEffect(-1);
break;
case MoveEffectDown:
this.onMoveEffect(1);
break;
case UpdateAddTarget:
this.onUpdateAddTarget(var3);
break;
case UpdateAddEffectType:
this.onUpdateAddEffectType(var3);
break;
case UpdateAddEventType:
this.onUpdateAddEventType(var3);
break;
case UpdateAddEntry:
this.onUpdateAddEntry(var3);
break;
case ToggleEventCategory:
this.onToggleEventCategory(var3);
break;
case ToggleRulesCategory:
this.onToggleRulesCategory(var3);
break;
case ToggleRejectionSignal:
this.onToggleRejectionSignal();
break;
case UpdateParameter:
this.onUpdateParameter(var3);
break;
case CommitEntry:
this.onCommitEntry();
break;
case TogglePrefabPreview:
this.onTogglePrefabPreview();
break;
case OpenPresetSave:
this.onOpenPresetSave();
break;
case PresetNameChanged:
this.onPresetNameChanged(var3);
break;
case ConfirmSavePreset:
this.onConfirmSavePreset(var3);
break;
case CancelPresetSave:
this.onCancelPresetSave();
break;
case OpenPresetLoad:
this.onOpenPresetLoad();
break;
case LoadPreset:
this.onLoadPreset(var3);
break;
case CancelPresetLoad:
this.onCancelPresetLoad();
break;
case OpenAssetPicker:
this.onOpenAssetPicker(var3);
break;
case AssetPickerSearch:
this.onAssetPickerSearch(var3);
break;
case AssetPickerSelect:
this.onAssetPickerSelect(var3);
break;
case ConfirmAssetPicker:
this.onConfirmAssetPicker();
break;
case PreviewSound:
this.onPreviewSound(var3, var2);
break;
case CancelAssetPicker:
this.onCancelAssetPicker();
}
}
}
class="kw">private void buildWorldDropdown(@Nonnull UICommandBuilder var1) {
ObjectArrayList var2 = new ObjectArrayList();
for (World var4 : Universe.get().getWorlds().values()) {
String var5 = var4.getName().toLowerCase(Locale.ROOT);
var2.add(new DropdownEntryInfo(LocalizableString.fromString(var5), var5));
}
var1.set("#WorldDropdown.Entries", var2);
var1.set("#WorldDropdown.Value", this.selectedWorld);
var1.set("#FilterField.Value", this.filterText);
}
class="kw">private void buildTabs(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) {
var1.clear("#TabButtons");
int var3 = 0;
for (TriggerVolumeInspectorPage.InspectorTab var7 : TriggerVolumeInspectorPage.InspectorTab.values()) {
String var8 = "#TabButtons[" + var3 + "]";
var1.append("#TabButtons", "Pages/TriggerVolume/TriggerVolumeInspectorTabButton.ui");
var1.set(var8 + ".Text", var7.label());
var1.set(var8 + ".TooltipText", var7.tooltip());
var1.set(var8 + ".Disabled", this.selectedTab == var7);
var2.addEventBinding(
CustomUIEventBindingType.Activating,
var8,
new EventData().append("Action", TriggerVolumeInspectorPage.Action.ChangeTab.name()).append("Tab", var7.name())
);
var3++;
}
}
class="kw">private void buildList(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) {
var1.clear("#ListContainer");
this.currentRows.clear();
TriggerVolumeManager var3 = getManagerForWorld(this.selectedWorld);
if (var3 != null && (!var3.getVolumesMap().isEmpty() || !var3.getGroupsMap().isEmpty())) {
LinkedHashMap var4 = new LinkedHashMap<>();
for (GroupEntry var6 : var3.getGroupsMap().values()) {
if (!this.deletedGroups.contains(var6.getId())) {
var4.put(var6.getId(), new ArrayList<>());
}
}
ArrayList var14 = new ArrayList<>();
for (VolumeEntry var7 : var3.getVolumesMap().values()) {
if (!this.deletedVolumes.contains(var7.getId())) {
TriggerVolumeInspectorDrafts.VolumeDraft var8 = this.volumeDrafts.get(var7.getId());
String var9 = var8 != null ? var8.groupId : var7.getGroupId();
if (var9 != null && var4.containsKey(var9)) {
var4.get(var9).add(var7);
} else {
var14.add(var7);
}
}
}
int var16 = 0;
for (GroupEntry var19 : var3.getGroupsMap().values()) {
if (!this.deletedGroups.contains(var19.getId())) {
TriggerVolumeInspectorDrafts.GroupDraft var21 = this.draftForGroup(var19);
List var10 = var4.getOrDefault(var19.getId(), List.of());
if (this.matchesGroupFilter(var21.id, var19, var10)) {
var16 = this.appendGroupRow(var1, var2, var16, var19.getId(), var21.id, var21.color);
for (VolumeEntry var12 : var10) {
if (this.matchesVolumeFilter(var12)) {
TriggerVolumeInspectorDrafts.VolumeDraft var13 = this.draftForVolume(var12);
var16 = this.appendVolumeRow(var1, var2, var16, var12.getId(), var13.id, true, var21.color, var13.tags);
}
}
}
}
}
List var18 = var14.stream().filter(this::matchesVolumeFilter).toList();
if (!var18.isEmpty()) {
var1.append("#ListContainer", "Pages/TriggerVolume/TriggerVolumeInspectorSectionLabel.ui");
var1.set("#ListContainer[" + var16 + "].Text", Message.translation("server.customUI.triggerVolumeBrowse.ungrouped"));
var16++;
for (VolumeEntry var22 : var18) {
TriggerVolumeInspectorDrafts.VolumeDraft var23 = this.draftForVolume(var22);
var16 = this.appendVolumeRow(var1, var2, var16, var22.getId(), var23.id, false, 0, var23.tags);
}
}
if (var16 == 0) {
this.appendListMessage(var1, Message.translation("server.customUI.triggerVolumeBrowse.emptyState"));
} else {
this.scrollSelectedRowToView(var1);
}
} else {
this.appendListMessage(var1, Message.translation("server.customUI.triggerVolumeBrowse.emptyState"));
}
}
class="kw">private int appendGroupRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull String var5, int var6) {
String var7 = "#ListContainer[" + var3 + "]";
var1.append("#ListContainer", "Pages/TriggerVolume/TriggerVolumeBrowseGroupRow.ui");
var1.set(var7 + " #Label.Text", var5);
var1.setObject(var7 + " #ColorSwatch.Background", colorPatch(var6));
var1.set(var7 + ".Style", this.selectedIsGroup && var4.equals(this.selectedId) ? SELECTED_ROW_STYLE : NORMAL_ROW_STYLE);
var2.addEventBinding(
CustomUIEventBindingType.Activating,
var7,
new EventData().append("Action", TriggerVolumeInspectorPage.Action.Select.name()).append("Id", var4).append("IsGroup", "true"),
false
);
this.currentRows.add(new TriggerVolumeInspectorPage.RowEntry(var4, true, var3));
class="kw">return var3 + 1;
}
class="kw">private int appendVolumeRow(
@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
@Nonnull String var4,
@Nonnull String var5,
boolean var6,
int var7,
@Nonnull Map<String, String> var8
) {
String var9 = "#ListContainer[" + var3 + "]";
var1.append("#ListContainer", "Pages/TriggerVolume/TriggerVolumeBrowseVolumeRow.ui");
var1.set(var9 + " #Label.Text", var5);
int var10 = this.appendRowTagChips(var1, var9 + " #TagChips", var8, var6);
var1.set(var9 + " #TagChips.Visible", var10 > 0);
if (var10 > 0) {
Anchor var11 = new Anchor();
var11.setHeight(Value.of(var10 == 1 ? 44 : 64));
var1.setObject(var9 + ".Anchor", var11);
}
var1.set(var9 + " #Indent.Visible", var6);
var1.set(var9 + " #ColorBar.Visible", var6);
if (var6) {
var1.setObject(var9 + " #ColorBar.Background", colorPatch(var7));
}
var1.set(var9 + ".Style", !this.selectedIsGroup && var4.equals(this.selectedId) ? SELECTED_ROW_STYLE : NORMAL_ROW_STYLE);
var2.addEventBinding(
CustomUIEventBindingType.Activating,
var9,
new EventData().append("Action", TriggerVolumeInspectorPage.Action.Select.name()).append("Id", var4).append("IsGroup", "false"),
false
);
this.currentRows.add(new TriggerVolumeInspectorPage.RowEntry(var4, false, var3));
class="kw">return var3 + 1;
}
class="kw">private void appendListMessage(@Nonnull UICommandBuilder var1, @Nonnull Message var2) {
var1.append("#ListContainer", "Pages/TriggerVolume/TriggerVolumeInspectorSectionLabel.ui");
var1.set("#ListContainer[0].Text", var2);
}
class="kw">private void applyPreSelection(@Nonnull UICommandBuilder var1) {
for (TriggerVolumeInspectorPage.RowEntry var3 : this.currentRows) {
if (var3.isGroup == this.preSelectedIsGroup && var3.id.equals(this.preSelectedVolumeId)) {
this.selectedId = var3.id;
this.selectedIsGroup = var3.isGroup;
var1.set("#ListContainer[" + var3.listIndex + "].Style", SELECTED_ROW_STYLE);
var1.set("#ListContainer.ScrollChildIndexIntoView", var3.listIndex);
class="kw">return;
}
}
}
class="kw">private void scrollSelectedRowToView(@Nonnull UICommandBuilder var1) {
if (this.pendingScrollToSelection && this.selectedId != null) {
for (TriggerVolumeInspectorPage.RowEntry var3 : this.currentRows) {
if (var3.isGroup == this.selectedIsGroup && var3.id.equals(this.selectedId)) {
var1.set("#ListContainer.ScrollChildIndexIntoView", var3.listIndex);
this.pendingScrollToSelection = false;
class="kw">return;
}
}
}
}
class="kw">private void buildSelectedPane(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) {
var1.clear("#VolumeTab");
var1.clear("#TagsList");
var1.clear("#EffectListContainer");
var1.clear("#EffectDetailPanel");
var1.set("#NoSelectionLabel.Visible", this.selectedId == null);
this.buildSelectedNameHeader(var1);
this.buildTitleTagChips(var1);
var1.set("#VolumeTab.Visible", this.selectedId != null && this.selectedTab == TriggerVolumeInspectorPage.InspectorTab.VOLUME);
var1.set("#TagsTab.Visible", this.selectedId != null && this.selectedTab == TriggerVolumeInspectorPage.InspectorTab.TAGS);
var1.set("#EffectsTab.Visible", this.selectedId != null && this.selectedTab == TriggerVolumeInspectorPage.InspectorTab.EFFECTS);
var1.set("#DeleteButton.Disabled", this.selectedId == null);
var1.set("#SavePresetButton.Disabled", this.selectedId == null);
var1.set("#LoadPresetButton.Disabled", this.selectedId == null);
if (this.selectedId != null) {
class="kw">switch (this.selectedTab) {
case VOLUME:
this.buildVolumeTab(var1, var2);
break;
case EFFECTS:
this.buildEffectsTab(var1, var2);
break;
case TAGS:
this.buildTagsTab(var1, var2);
}
}
}
class="kw">private void buildSelectedNameHeader(@Nonnull UICommandBuilder var1) {
String var2 = this.selectedDraftId();
var1.set("#SelectedNameHeader.Visible", var2 != null);
if (var2 == null) {
this.renamingSelected = false;
var1.set("#SelectedNameValidation.Visible", false);
} else {
var1.set("#SelectedNameTitle.Text", var2);
var1.set("#SelectedNameTitle.Visible", !this.renamingSelected);
var1.set("#SelectedNameSpacer.Visible", !this.renamingSelected);
var1.set("#SelectedNameEditButton.Visible", !this.renamingSelected);
var1.set("#SelectedNameFieldContainer.Visible", this.renamingSelected);
var1.set("#SelectedNameField.Value", var2);
var1.set("#SelectedNameEditButton.TooltipText", Message.translation("server.customUI.triggerVolumeInspector.renameToggle.tooltip"));
var1.set("#SelectedNameConfirmButton.TooltipText", Message.translation("server.customUI.triggerVolumeInspector.renameConfirm.tooltip"));
var1.set("#SelectedNameCancelButton.TooltipText", Message.translation("server.customUI.triggerVolumeInspector.renameCancel.tooltip"));
Message var3 = this.idValidationMessage(var2);
var1.set("#SelectedNameValidation.Visible", this.renamingSelected && var3 != null);
if (var3 != null) {
var1.set("#SelectedNameValidation.Text", var3);
}
}
}
class="kw">private void buildTitleTagChips(@Nonnull UICommandBuilder var1) {
var1.clear("#TitleTagChips");
var1.clear("#TitleTagChipsOverflow");
Map var2 = null;
if (this.selectedIsGroup) {
TriggerVolumeInspectorDrafts.GroupDraft var3 = this.selectedGroupDraft();
if (var3 != null) {
var2 = var3.tags;
}
} else {
TriggerVolumeInspectorDrafts.VolumeDraft var5 = this.selectedVolumeDraft();
if (var5 != null) {
var2 = var5.tags;
}
}
if (this.selectedId != null && var2 != null) {
ArrayList var6 = new ArrayList<>(var2.entrySet());
int var4 = this.fillTitleChipRows(var1, "#TitleTagChips", var6, 0, 579, 1, false);
if (var4 < var6.size()) {
this.fillTitleChipRows(var1, "#TitleTagChipsOverflow", var6, var4, 579, 2, true);
}
}
}
class="kw">private int fillTitleChipRows(
@Nonnull UICommandBuilder var1, @Nonnull String var2, @Nonnull List<Entry<String, String>> var3, int var4, int var5, int var6, boolean var7
) {
int var8 = 0;
int var9 = 1;
int var10 = 0;
int var11;
for (var11 = var4; var11 < var3.size(); var11++) {
Entry var12 = var3.get(var11);
String var13 = var12.getValue();
String var14 = var13 != null && !var13.isEmpty() ? var12.getKey() + ": " + var13 : var12.getKey();
int var15 = chipWidth(var14);
if (var10 > 0 && var10 + var15 > var5) {
if (var9 == var6) {
if (var7) {
this.appendChip(var1, var2, var8, "+" + (var3.size() - var11), 5596014);
}
break;
}
var9++;
var10 = 0;
}
this.appendChip(var1, var2, var8++, var14, tagChipColor(var12.getKey()));
var10 += var15;
}
class="kw">return var11;
}
@Nullable
class="kw">private String selectedDraftId() {
if (this.selectedId == null) {
class="kw">return null;
} else if (this.selectedIsGroup) {
TriggerVolumeInspectorDrafts.GroupDraft var2 = this.selectedGroupDraft();
class="kw">return var2 != null ? var2.id : null;
} else {
TriggerVolumeInspectorDrafts.VolumeDraft var1 = this.selectedVolumeDraft();
class="kw">return var1 != null ? var1.id : null;
}
}
class="kw">private void buildVolumeTab(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) {
int var3 = 0;
if (this.selectedIsGroup) {
TriggerVolumeInspectorDrafts.GroupDraft var4 = this.selectedGroupDraft();
if (var4 == null) {
class="kw">return;
}
var3 = this.addVolumeSectionLabel(var1, var3, "identity");
var3 = this.addVolumeTextRow(var1, var2, var3, "id", var4.id);
var3 = this.addVolumeColorRow(var1, var2, var3, "color", colorToHex(var4.color));
var3 = this.addVolumeSectionLabel(var1, var3, "transform");
var3 = this.addVolumeVec3Row(var1, var2, var3, "position", var4.origin);
var3 = this.addVolumeSectionLabel(var1, var3, "behavior");
var3 = this.addVolumeDropdownRow(var1, var2, var3, "targetTypes", targetTypeEntries(), targetTypesValue(var4.targetTypes));
var3 = this.addVolumeCheckboxRow(var1, var2, var3, "enabled", var4.enabled);
var3 = this.addVolumeCheckboxRow(var1, var2, var3, "rotateEffectsOnPaste", var4.rotateEffectsOnPaste);
var3 = this.addVolumeSectionLabel(var1, var3, "timing");
var3 = this.addVolumeDropdownRow(var1, var2, var3, "conditionTiming", conditionTimingEntries(), var4.conditionTiming.name());
var3 = this.addVolumeDropdownRow(var1, var2, var3, "rejectionDelayMode", rejectionDelayModeEntries(), var4.rejectionDelayMode.name());
var3 = this.addReadonlyTextRow(var1, var3, "members", String.join(", ", var4.memberVolumeIds));
} else {
TriggerVolumeInspectorDrafts.VolumeDraft var38 = this.selectedVolumeDraft();
if (var38 == null) {
class="kw">return;
}
var3 = this.addVolumeSectionLabel(var1, var3, "identity");
var3 = this.addVolumeTextRow(var1, var2, var3, "id", var38.id);
var3 = this.addVolumeColorRow(var1, var2, var3, "color", var38.color != null ? colorToHex(var38.color) : "#00CCCC");
var3 = this.addVolumeSectionLabel(var1, var3, "transform");
var3 = this.addVolumeDropdownRow(var1, var2, var3, "shape", shapeEntries(), var38.shapeType.name());
var3 = this.addVolumeVec3Row(var1, var2, var3, "position", var38.position, true);
var3 = this.addVolumeDimensionsRow(var1, var2, var3, var38.shapeType, var38.dimensions);
var3 = this.addVolumeSectionLabel(var1, var3, "behavior");
var3 = this.addVolumeDropdownRow(var1, var2, var3, "targetTypes", targetTypeEntries(), targetTypesValue(var38.targetTypes));
var3 = this.addVolumeDropdownRow(var1, var2, var3, "projectileSource", projectileSourceEntries(), var38.projectileSource.name());
var3 = this.addVolumeCheckboxRow(var1, var2, var3, "enabled", var38.enabled);
var3 = this.addVolumeCheckboxRow(var1, var2, var3, "keepLoaded", var38.keepLoaded);
var3 = this.addVolumeCheckboxRow(var1, var2, var3, "rotateEffectsOnPaste", var38.rotateEffectsOnPaste);
var3 = this.addVolumeCheckboxRow(var1, var2, var3, "cancelDelayedOnExit", var38.cancelDelayedOnExit);
var3 = this.addVolumeSectionLabel(var1, var3, "timing");
var3 = this.addVolumeNumberRow(var1, var2, var3, "activationDelay", String.valueOf(var38.activationDelay), 2);
var3 = this.addVolumeNumberRow(var1, var2, var3, "cooldown", String.valueOf(var38.cooldown), 2);
var3 = this.addVolumeDropdownRow(var1, var2, var3, "cooldownMode", cooldownModeEntries(), var38.cooldownMode.name());
var3 = this.addVolumeDropdownRow(var1, var2, var3, "conditionTiming", conditionTimingEntries(), var38.conditionTiming.name());
var3 = this.addVolumeDropdownRow(var1, var2, var3, "rejectionDelayMode", rejectionDelayModeEntries(), var38.rejectionDelayMode.name());
}
}
class="kw">private int addVolumeSectionLabel(@Nonnull UICommandBuilder var1, int var2, @Nonnull String var3) {
String var4 = "#VolumeTab[" + var2 + "]";
var1.append("#VolumeTab", "Pages/TriggerVolume/TriggerVolumeInspectorVolumeSectionLabel.ui");
var1.set(var4 + " #Title.Text", Message.translation("server.customUI.triggerVolumeInspector.section." + var3));
class="kw">return var2 + 1;
}
class="kw">private int addVolumeTextRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull String var5) {
String var6 = "#VolumeTab[" + var3 + "]";
var1.append("#VolumeTab", "Pages/TriggerVolume/TriggerVolumeInspectorTextRow.ui");
var1.set(var6 + " #Label.Text", fieldLabel(var4));
var1.set(var6 + " #Label.TooltipText", volumeFieldTooltip(var4));
var1.set(var6 + " #Input.Value", var5);
this.setIdValidation(var1, var6, var4, var5);
var2.addEventBinding(CustomUIEventBindingType.ValueChanged, var6 + " #Input", volumeFieldEvent(var4).append("@ParamValue", var6 + " #Input.Value"), false);
var2.addEventBinding(
CustomUIEventBindingType.FocusLost,
var6 + " #Input",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.CommitName.name()).append("@ParamValue", var6 + " #Input.Value"),
false
);
class="kw">return var3 + 1;
}
class="kw">private void setIdValidation(@Nonnull UICommandBuilder var1, @Nonnull String var2, @Nonnull String var3, @Nonnull String var4) {
Message var5 = "id".equals(var3) ? this.idValidationMessage(var4) : null;
if (var5 == null) {
var1.set(var2 + " #ValidationLabel.Visible", false);
} else {
var1.set(var2 + " #ValidationLabel.Visible", true);
var1.set(var2 + " #ValidationLabel.Text", var5);
}
}
class="kw">private int addVolumeColorRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull String var5) {
String var6 = "#VolumeTab[" + var3 + "]";
var1.append("#VolumeTab", "Pages/TriggerVolume/TriggerVolumeInspectorColorRow.ui");
var1.set(var6 + " #Label.Text", fieldLabel(var4));
var1.set(var6 + " #Label.TooltipText", volumeFieldTooltip(var4));
var1.set(var6 + " #Input.Color", var5);
var2.addEventBinding(CustomUIEventBindingType.ValueChanged, var6 + " #Input", volumeFieldEvent(var4).append("@ParamValue", var6 + " #Input.Color"), false);
class="kw">return var3 + 1;
}
class="kw">private int addReadonlyTextRow(@Nonnull UICommandBuilder var1, int var2, @Nonnull String var3, @Nonnull String var4) {
String var5 = "#VolumeTab[" + var2 + "]";
var1.append("#VolumeTab", "Pages/TriggerVolume/TriggerVolumeBrowsePropertyRow.ui");
var1.set(var5 + " #Key.Text", fieldLabel(var3));
var1.set(var5 + " #Key.TooltipText", volumeFieldTooltip(var3));
var1.set(var5 + " #Value.Text", var4);
class="kw">return var2 + 1;
}
class="kw">private int addVolumeNumberRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull String var5, int var6) {
String var7 = "#VolumeTab[" + var3 + "]";
var1.append("#VolumeTab", var6 > 0 ? "Pages/TriggerVolume/TriggerVolumeInspectorNumberRow.ui" : "Pages/TriggerVolume/TriggerVolumeInspectorIntRow.ui");
var1.set(var7 + " #Label.Text", fieldLabel(var4));
var1.set(var7 + " #Label.TooltipText", volumeFieldTooltip(var4));
try {
var1.set(var7 + " #Input.Value", Double.parseDouble(var5));
} catch (NumberFormatException var9) {
var1.set(var7 + " #Input.Value", 0.0);
}
var2.addEventBinding(
CustomUIEventBindingType.ValueChanged, var7 + " #Input", volumeFieldEvent(var4).append("@ParamNumericValue", var7 + " #Input.Value"), false
);
class="kw">return var3 + 1;
}
class="kw">private int addVolumeCheckboxRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, boolean var5) {
String var6 = "#VolumeTab[" + var3 + "]";
var1.append("#VolumeTab", "Pages/TriggerVolume/TriggerVolumeInspectorCheckboxRow.ui");
var1.set(var6 + " #Label.Text", fieldLabel(var4));
var1.set(var6 + " #Label.TooltipText", volumeFieldTooltip(var4));
var1.set(var6 + " #Input.Value", var5);
var2.addEventBinding(CustomUIEventBindingType.ValueChanged, var6 + " #Input", volumeFieldEvent(var4).append("@ParamBool", var6 + " #Input.Value"), false);
class="kw">return var3 + 1;
}
class="kw">private int addVolumeDropdownRow(
@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull List<DropdownEntryInfo> var5, @Nonnull String var6
) {
String var7 = "#VolumeTab[" + var3 + "]";
var1.append("#VolumeTab", "Pages/TriggerVolume/TriggerVolumeInspectorDropdownRow.ui");
var1.set(var7 + " #Label.Text", fieldLabel(var4));
var1.set(var7 + " #Label.TooltipText", volumeFieldTooltip(var4));
var1.set(var7 + " #Input.Entries", new ObjectArrayList(var5));
var1.set(var7 + " #Input.Value", var6);
var2.addEventBinding(CustomUIEventBindingType.ValueChanged, var7 + " #Input", volumeFieldEvent(var4).append("@ParamValue", var7 + " #Input.Value"), false);
class="kw">return var3 + 1;
}
class="kw">private int addVolumeVec3Row(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull Vector3d var5) {
class="kw">return this.addVolumeVec3Row(var1, var2, var3, var4, var5, false);
}
class="kw">private int addVolumeVec3Row(
@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull Vector3d var5, boolean var6
) {
String var7 = "#VolumeTab[" + var3 + "]";
var1.append("#VolumeTab", "Pages/TriggerVolume/TriggerVolumeInspectorVec3Row.ui");
var1.set(var7 + " #Label.Text", fieldLabel(var4));
var1.set(var7 + " #Label.TooltipText", volumeFieldTooltip(var4));
var1.set(var7 + " #X.Value", var5.x());
var1.set(var7 + " #Y.Value", var5.y());
var1.set(var7 + " #Z.Value", var5.z());
for (String var9 : List.of("X", "Y", "Z")) {
var2.addEventBinding(
CustomUIEventBindingType.ValueChanged,
var7 + " #" + var9,
volumeFieldEvent(var4).append("@VecX", var7 + " #X.Value").append("@VecY", var7 + " #Y.Value").append("@VecZ", var7 + " #Z.Value"),
false
);
}
if (var6) {
var1.set(var7 + " #TeleportButton.Visible", true);
var2.addEventBinding(
CustomUIEventBindingType.Activating, var7 + " #TeleportButton", new EventData().append("Action", TriggerVolumeInspectorPage.Action.Teleport.name())
);
}
class="kw">return var3 + 1;
}
class="kw">private int addVolumeDimensionsRow(
@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull TriggerVolumeShapeType var4, @Nonnull Vector3d var5
) {
class="kw">return class="kw">switch (var4) {
case Box -> this.addBoxDimensionsRow(var1, var2, var3, var5);
case Sphere -> this.addSphereDimensionsRow(var1, var2, var3, var5);
case Cylinder -> this.addCylinderDimensionsRow(var1, var2, var3, var5);
};
}
class="kw">private int addBoxDimensionsRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull Vector3d var4) {
String var5 = "#VolumeTab[" + var3 + "]";
var1.append("#VolumeTab", "Pages/TriggerVolume/TriggerVolumeInspectorDimensionsBoxRow.ui");
setDimensionsHeader(var1, var5);
var1.set(var5 + " #XLabel.Text", Message.translation("server.customUI.triggerVolumeInspector.field.dimensions.x"));
var1.set(var5 + " #YLabel.Text", Message.translation("server.customUI.triggerVolumeInspector.field.dimensions.y"));
var1.set(var5 + " #ZLabel.Text", Message.translation("server.customUI.triggerVolumeInspector.field.dimensions.z"));
var1.set(var5 + " #X.Value", var4.x());
var1.set(var5 + " #Y.Value", var4.y());
var1.set(var5 + " #Z.Value", var4.z());
for (String var7 : List.of("X", "Y", "Z")) {
var2.addEventBinding(
CustomUIEventBindingType.ValueChanged,
var5 + " #" + var7,
volumeFieldEvent("dimensions").append("@VecX", var5 + " #X.Value").append("@VecY", var5 + " #Y.Value").append("@VecZ", var5 + " #Z.Value"),
false
);
}
class="kw">return var3 + 1;
}
class="kw">private int addSphereDimensionsRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull Vector3d var4) {
String var5 = "#VolumeTab[" + var3 + "]";
var1.append("#VolumeTab", "Pages/TriggerVolume/TriggerVolumeInspectorDimensionsSphereRow.ui");
setDimensionsHeader(var1, var5);
var1.set(var5 + " #RadiusLabel.Text", Message.translation("server.customUI.triggerVolumeInspector.field.dimensions.radius"));
var1.set(var5 + " #Radius.Value", var4.x());
var2.addEventBinding(
CustomUIEventBindingType.ValueChanged,
var5 + " #Radius",
volumeFieldEvent("dimensionsRadius").append("@ParamNumericValue", var5 + " #Radius.Value"),
false
);
class="kw">return var3 + 1;
}
class="kw">private int addCylinderDimensionsRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull Vector3d var4) {
String var5 = "#VolumeTab[" + var3 + "]";
var1.append("#VolumeTab", "Pages/TriggerVolume/TriggerVolumeInspectorDimensionsCylinderRow.ui");
setDimensionsHeader(var1, var5);
var1.set(var5 + " #RadiusLabel.Text", Message.translation("server.customUI.triggerVolumeInspector.field.dimensions.radius"));
var1.set(var5 + " #HeightLabel.Text", Message.translation("server.customUI.triggerVolumeInspector.field.dimensions.height"));
var1.set(var5 + " #Radius.Value", var4.x());
var1.set(var5 + " #Height.Value", var4.y());
for (String var7 : List.of("Radius", "Height")) {
var2.addEventBinding(
CustomUIEventBindingType.ValueChanged,
var5 + " #" + var7,
volumeFieldEvent("dimensionsCylinder").append("@VecX", var5 + " #Radius.Value").append("@VecY", var5 + " #Height.Value"),
false
);
}
class="kw">return var3 + 1;
}
class="kw">private class="kw">static void setDimensionsHeader(@Nonnull UICommandBuilder var0, @Nonnull String var1) {
var0.set(var1 + " #Label.Text", fieldLabel("dimensions"));
var0.set(var1 + " #Label.TooltipText", volumeFieldTooltip("dimensions"));
}
@Nonnull
class="kw">private class="kw">static EventData volumeFieldEvent(@Nonnull String var0) {
class="kw">return new EventData().append("Action", TriggerVolumeInspectorPage.Action.UpdateVolumeField.name()).append("ParamKey", var0);
}
class="kw">private void buildTagsTab(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) {
Map var3 = this.selectedIsGroup ? this.selectedGroupDraft().tags : this.selectedVolumeDraft().tags;
int var4 = 0;
for (Entry var6 : var3.entrySet()) {
String var7 = "#TagsList[" + var4 + "]";
var1.append("#TagsList", "Pages/TriggerVolume/TriggerVolumeBrowseTagRow.ui");
int var8 = tagChipColor(var6.getKey());
var1.set(var7 + " #TagLabel.Text", var6.getKey() + ": " + var6.getValue());
var1.setObject(var7 + " #TagLabel.Background", tagColorPatch(var8));
var2.addEventBinding(
CustomUIEventBindingType.Activating,
var7 + " #RemoveButton",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.RemoveTag.name()).append("RemoveTagKey", var6.getKey())
);
var4++;
}
}
class="kw">private void buildEffectsTab(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) {
this.buildAddEventTypeDropdown(var1);
this.buildAddEntryDropdown(var1);
this.buildAddTargetDropdown(var1);
this.buildAddEffectDropdown(var1);
this.buildEffectList(var1, var2);
this.buildEffectDetailPanel(var1, var2);
}
class="kw">private void bindStaticEvents(@Nonnull UIEventBuilder var1) {
this.presetPackBrowser.buildEventBindings(var1, "#BrowsePackButton");
var1.addEventBinding(
CustomUIEventBindingType.ValueChanged,
"#WorldDropdown",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.ChangeWorld.name()).append("@WorldName", "#WorldDropdown.Value"),
false
);
var1.addEventBinding(
CustomUIEventBindingType.ValueChanged,
"#FilterField",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.FilterChanged.name()).append("@FilterText", "#FilterField.Value"),
false
);
var1.addEventBinding(
CustomUIEventBindingType.Activating,
"#AddTagButton",
new EventData()
.append("Action", TriggerVolumeInspectorPage.Action.UpdateTag.name())
.append("@TagKey", "#TagKeyField.Value")
.append("@TagValues", "#TagValuesField.Value")
);
var1.addEventBinding(
CustomUIEventBindingType.Activating, "#DeleteButton", new EventData().append("Action", TriggerVolumeInspectorPage.Action.DeleteSelection.name())
);
var1.addEventBinding(CustomUIEventBindingType.Activating, "#SaveButton", new EventData().append("Action", TriggerVolumeInspectorPage.Action.Save.name()));
var1.addEventBinding(
CustomUIEventBindingType.Activating, "#DiscardButton", new EventData().append("Action", TriggerVolumeInspectorPage.Action.Discard.name())
);
var1.addEventBinding(
CustomUIEventBindingType.Activating,
"#AddEffectButton",
new EventData()
.append("Action", TriggerVolumeInspectorPage.Action.AddEffect.name())
.append("@EffectType", "#AddEffectDropdown.Value")
.append("@AddTargetKind", "#AddTargetDropdown.Value")
.append("@AddEventType", "#AddEventTypeDropdown.Value")
.append("@AddEntry", "#AddEntryDropdown.Value")
);
var1.addEventBinding(
CustomUIEventBindingType.ValueChanged, "#SelectedNameField", volumeFieldEvent("id").append("@ParamValue", "#SelectedNameField.Value"), false
);
var1.addEventBinding(
CustomUIEventBindingType.FocusLost,
"#SelectedNameField",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.CommitName.name()).append("@ParamValue", "#SelectedNameField.Value"),
false
);
var1.addEventBinding(
CustomUIEventBindingType.Activating,
"#SelectedNameEditButton",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.ToggleRenameSelected.name())
);
var1.addEventBinding(
CustomUIEventBindingType.Activating,
"#SelectedNameConfirmButton",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.ConfirmRenameSelected.name())
);
var1.addEventBinding(
CustomUIEventBindingType.Activating,
"#SelectedNameCancelButton",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.CancelRenameSelected.name())
);
var1.addEventBinding(
CustomUIEventBindingType.ValueChanged,
"#AddEffectDropdown",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.UpdateAddEffectType.name()).append("@EffectType", "#AddEffectDropdown.Value"),
false
);
var1.addEventBinding(
CustomUIEventBindingType.ValueChanged,
"#AddTargetDropdown",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.UpdateAddTarget.name()).append("@AddTargetKind", "#AddTargetDropdown.Value"),
false
);
var1.addEventBinding(
CustomUIEventBindingType.ValueChanged,
"#AddEventTypeDropdown",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.UpdateAddEventType.name()).append("@AddEventType", "#AddEventTypeDropdown.Value"),
false
);
var1.addEventBinding(
CustomUIEventBindingType.ValueChanged,
"#AddEntryDropdown",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.UpdateAddEntry.name()).append("@AddEntry", "#AddEntryDropdown.Value"),
false
);
var1.addEventBinding(
CustomUIEventBindingType.Activating, "#RemoveEffectButton", new EventData().append("Action", TriggerVolumeInspectorPage.Action.RemoveEffect.name())
);
var1.addEventBinding(
CustomUIEventBindingType.Activating,
"#DuplicateEffectButton",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.DuplicateEffect.name())
);
var1.addEventBinding(
CustomUIEventBindingType.Activating, "#MoveEffectUpButton", new EventData().append("Action", TriggerVolumeInspectorPage.Action.MoveEffectUp.name())
);
var1.addEventBinding(
CustomUIEventBindingType.Activating,
"#MoveEffectDownButton",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.MoveEffectDown.name())
);
var1.addEventBinding(
CustomUIEventBindingType.Activating, "#SavePresetButton", new EventData().append("Action", TriggerVolumeInspectorPage.Action.OpenPresetSave.name())
);
var1.addEventBinding(
CustomUIEventBindingType.Activating, "#LoadPresetButton", new EventData().append("Action", TriggerVolumeInspectorPage.Action.OpenPresetLoad.name())
);
var1.addEventBinding(
CustomUIEventBindingType.ValueChanged,
"#PresetName #Input",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.PresetNameChanged.name()).append("@PresetName", "#PresetName #Input.Value"),
false
);
var1.addEventBinding(
CustomUIEventBindingType.Activating,
"#ConfirmSavePresetButton",
new EventData()
.append("Action", TriggerVolumeInspectorPage.Action.ConfirmSavePreset.name())
.append("@PresetName", "#PresetName #Input.Value")
.append("@IncludeVolumeSettings", "#IncludeVolumeSettings #Input.Value")
);
var1.addEventBinding(
CustomUIEventBindingType.Activating,
"#CancelSavePresetButton",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.CancelPresetSave.name())
);
var1.addEventBinding(
CustomUIEventBindingType.Activating,
"#CancelLoadPresetButton",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.CancelPresetLoad.name())
);
var1.addEventBinding(
CustomUIEventBindingType.ValueChanged,
"#AssetPickerPage #SearchInput",
new EventData()
.append("Action", TriggerVolumeInspectorPage.Action.AssetPickerSearch.name())
.append("@AssetPickerQuery", "#AssetPickerPage #SearchInput.Value"),
false
);
var1.addEventBinding(
CustomUIEventBindingType.Activating,
"#ConfirmAssetPickerButton",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.ConfirmAssetPicker.name())
);
var1.addEventBinding(
CustomUIEventBindingType.Activating,
"#CancelAssetPickerButton",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.CancelAssetPicker.name())
);
}
class="kw">private void onSelect(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.id != null) {
this.selectedId = var1.id;
this.selectedIsGroup = "true".equals(var1.isGroup);
this.selectedEffectIndex = -1;
this.lastCommittedEntry = -1;
this.renamingSelected = false;
this.pendingScrollToSelection = false;
this.syncSelectionToTool();
this.rebuildAll();
}
}
class="kw">private void onToggleRenameSelected() {
if (this.selectedId != null) {
this.renamingSelected = !this.renamingSelected;
this.renameOriginalId = this.renamingSelected ? this.selectedDraftId() : null;
this.rebuildAll();
}
}
class="kw">private void onConfirmRenameSelected() {
if (this.renamingSelected) {
this.renamingSelected = false;
this.renameOriginalId = null;
this.rebuildAll();
}
}
class="kw">private void onCancelRenameSelected() {
if (this.renamingSelected) {
if (this.renameOriginalId != null) {
if (this.selectedIsGroup) {
TriggerVolumeInspectorDrafts.GroupDraft var1 = this.selectedGroupDraft();
if (var1 != null) {
var1.id = this.renameOriginalId;
}
} else {
TriggerVolumeInspectorDrafts.VolumeDraft var2 = this.selectedVolumeDraft();
if (var2 != null) {
var2.id = this.renameOriginalId;
}
}
}
this.renamingSelected = false;
this.renameOriginalId = null;
this.rebuildAll();
}
}
class="kw">private void onChangeWorld(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.worldName != null && !var1.worldName.equals(this.selectedWorld)) {
TriggerVolumeManager var2 = getManagerForWorld(this.selectedWorld);
if (var2 != null && !this.saveDrafts(var2, false)) {
this.revertRejectedDraftIds();
this.rebuildAll();
} else {
this.hidePastePrefabPreview();
if (var2 != null) {
var2.clearSelectionObserver(this.playerRef.getUuid(), this.selectionObserver);
var2.clearVolumeUpdateObserver(this.playerRef.getUuid(), this.volumeUpdateObserver);
}
this.clearDraftState();
this.selectedWorld = var1.worldName;
this.selectedId = null;
this.selectedIsGroup = false;
this.selectedEffectIndex = -1;
this.lastCommittedEntry = -1;
this.registerSelectionObserver();
this.registerVolumeUpdateObserver();
this.rebuildAll();
}
}
}
class="kw">private void onFilterChanged(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
this.filterText = var1.filterText != null ? var1.filterText.trim().toLowerCase(Locale.ROOT) : "";
this.rebuildAll();
}
class="kw">private void onChangeTab(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.tab != null) {
try {
this.selectedTab = TriggerVolumeInspectorPage.InspectorTab.valueOf(var1.tab);
this.rebuildAll();
} catch (IllegalArgumentException var3) {
}
}
}
class="kw">private void onUpdateVolumeField(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.paramKey != null && this.selectedId != null) {
boolean var2 = !this.selectedIsGroup && "shape".equals(var1.paramKey);
if (this.selectedIsGroup) {
TriggerVolumeInspectorDrafts.GroupDraft var3 = this.selectedGroupDraft();
if (var3 == null) {
class="kw">return;
}
this.updateGroupField(var3, var1);
if ("id".equals(var1.paramKey)) {
class="kw">return;
}
} else {
TriggerVolumeInspectorDrafts.VolumeDraft var4 = this.selectedVolumeDraft();
if (var4 == null) {
class="kw">return;
}
this.updateVolumeField(var4, var1);
if ("id".equals(var1.paramKey)) {
class="kw">return;
}
}
if (var2) {
this.rebuildAll();
}
if ("position".equals(var1.paramKey)) {
this.refreshActivePastePrefabPreviewPosition();
}
}
}
class="kw">private void onCommitName(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (this.selectedId != null) {
if (this.selectedIsGroup) {
TriggerVolumeInspectorDrafts.GroupDraft var2 = this.selectedGroupDraft();
if (var2 == null) {
class="kw">return;
}
if (var1.paramValue != null) {
var2.id = var1.paramValue.trim();
}
this.applyGroupNameImmediately(var2);
} else {
TriggerVolumeInspectorDrafts.VolumeDraft var3 = this.selectedVolumeDraft();
if (var3 == null) {
class="kw">return;
}
if (var1.paramValue != null) {
var3.id = var1.paramValue.trim();
}
this.applyVolumeNameImmediately(var3);
}
}
}
class="kw">private void applyVolumeNameImmediately(@Nonnull TriggerVolumeInspectorDrafts.VolumeDraft var1) {
TriggerVolumeManager var2 = this.getSelectedManager();
if (var2 != null) {
VolumeEntry var3 = var2.getVolume(var1.originalId);
if (var3 != null) {
String var4 = var2.makeUniqueVolumeName(var1.id, var1.originalId);
var1.id = var4;
if (!var4.equals(var3.getName())) {
var1.markDirty();
var3.setName(var4);
var2.notifyViewersAdd(var3);
this.rebuildAll();
}
}
}
}
class="kw">private void applyGroupNameImmediately(@Nonnull TriggerVolumeInspectorDrafts.GroupDraft var1) {
TriggerVolumeManager var2 = this.getSelectedManager();
if (var2 != null) {
GroupEntry var3 = var2.getGroup(var1.originalId);
if (var3 != null) {
String var4 = var2.makeUniqueGroupName(var1.id, var1.originalId);
var1.id = var4;
if (!var4.equals(var3.getName())) {
var1.markDirty();
var3.setName(var4);
var2.notifyViewers();
this.rebuildAll();
}
}
}
}
class="kw">private void updateVolumeField(@Nonnull TriggerVolumeInspectorDrafts.VolumeDraft var1, @Nonnull TriggerVolumeInspectorPage.PageData var2) {
boolean var3 = true;
class="kw">switch (var2.paramKey) {
case "id":
this.updateDraftId(var1, var2.paramValue);
break;
case "shape":
var1.shapeType = parseEnum(TriggerVolumeShapeType.class, var2.paramValue, var1.shapeType);
break;
case "position":
setVec(var1.position, var2);
break;
case "dimensions": {
Vector3d var8 = new Vector3d(var1.dimensions);
setBoxDimensions(var1.dimensions, var2);
var1.rescaleAnchorOffset(var8);
break;
}
case "dimensionsRadius": {
Vector3d var7 = new Vector3d(var1.dimensions);
setSphereDimensions(var1.dimensions, var2);
var1.rescaleAnchorOffset(var7);
break;
}
case "dimensionsCylinder": {
Vector3d var6 = new Vector3d(var1.dimensions);
setCylinderDimensions(var1.dimensions, var2);
var1.rescaleAnchorOffset(var6);
break;
}
case "color":
var1.color = parseColor(var2.paramValue);
break;
case "targetTypes":
var1.targetTypes = parseTargetTypes(var2.paramValue);
break;
case "projectileSource":
var1.projectileSource = parseEnum(ProjectileSource.class, var2.paramValue, var1.projectileSource);
break;
case "enabled":
var1.enabled = Boolean.TRUE.equals(var2.paramBool);
break;
case "keepLoaded":
var1.keepLoaded = Boolean.TRUE.equals(var2.paramBool);
break;
case "rotateEffectsOnPaste":
var1.rotateEffectsOnPaste = Boolean.TRUE.equals(var2.paramBool);
break;
case "cancelDelayedOnExit":
var1.cancelDelayedOnExit = Boolean.TRUE.equals(var2.paramBool);
break;
case "activationDelay":
var1.activationDelay = var2.paramNumericValue != null ? Math.max(0.0F, var2.paramNumericValue.floatValue()) : var1.activationDelay;
break;
case "cooldown":
var1.cooldown = var2.paramNumericValue != null ? Math.max(0.0F, var2.paramNumericValue.floatValue()) : var1.cooldown;
break;
case "cooldownMode":
var1.cooldownMode = parseEnum(CooldownMode.class, var2.paramValue, var1.cooldownMode);
break;
case "conditionTiming":
var1.conditionTiming = parseEnum(ConditionTiming.class, var2.paramValue, var1.conditionTiming);
break;
case "rejectionDelayMode":
var1.rejectionDelayMode = parseEnum(RejectionDelayMode.class, var2.paramValue, var1.rejectionDelayMode);
break;
class="kw">default:
var3 = false;
}
if (var3) {
var1.markDirty();
}
}
class="kw">private void updateDraftId(@Nonnull TriggerVolumeInspectorDrafts.VolumeDraft var1, @Nullable String var2) {
var1.id = var2 != null ? var2.trim() : var1.id;
}
class="kw">private void updateGroupField(@Nonnull TriggerVolumeInspectorDrafts.GroupDraft var1, @Nonnull TriggerVolumeInspectorPage.PageData var2) {
boolean var3 = true;
class="kw">switch (var2.paramKey) {
case "id":
this.updateDraftId(var1, var2.paramValue);
break;
case "position":
setVec(var1.origin, var2);
break;
case "color":
var1.color = parsePackedColor(var2.paramValue, var1.color);
break;
case "targetTypes":
var1.targetTypes = parseTargetTypes(var2.paramValue);
break;
case "enabled":
var1.enabled = Boolean.TRUE.equals(var2.paramBool);
break;
case "rotateEffectsOnPaste":
var1.rotateEffectsOnPaste = Boolean.TRUE.equals(var2.paramBool);
break;
case "conditionTiming":
var1.conditionTiming = parseEnum(ConditionTiming.class, var2.paramValue, var1.conditionTiming);
break;
case "rejectionDelayMode":
var1.rejectionDelayMode = parseEnum(RejectionDelayMode.class, var2.paramValue, var1.rejectionDelayMode);
break;
class="kw">default:
var3 = false;
}
if (var3) {
var1.markDirty();
}
}
class="kw">private void updateDraftId(@Nonnull TriggerVolumeInspectorDrafts.GroupDraft var1, @Nullable String var2) {
var1.id = var2 != null ? var2.trim() : var1.id;
}
class="kw">private void onUpdateTag(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (this.selectedId != null && var1.tagKey != null) {
String var2 = var1.tagKey.trim();
if (!var2.isEmpty()) {
this.currentTags().put(var2, TaggedVolumeEffectUtil.normalizeTagValue(var1.tagValues));
this.markSelectedDraftDirty();
UICommandBuilder var3 = new UICommandBuilder();
UIEventBuilder var4 = new UIEventBuilder();
var3.clear("#TagsList");
this.buildTagsTab(var3, var4);
var3.set("#TagKeyField.Value", "");
var3.set("#TagValuesField.Value", "");
this.sendUpdate(var3, var4, false);
}
}
}
class="kw">private void onRemoveTag(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.removeTagKey != null) {
if (this.currentTags().remove(var1.removeTagKey) != null) {
this.markSelectedDraftDirty();
this.rebuildAll();
}
}
}
class="kw">private void onDeleteSelection() {
if (this.selectedId != null) {
this.hidePastePrefabPreview();
if (this.selectedIsGroup) {
this.deletedGroups.add(this.selectedId);
} else {
this.deletedVolumes.add(this.selectedId);
}
this.selectedId = null;
this.rebuildAll();
}
}
class="kw">private void onTeleport(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2) {
if (this.selectedId != null && !this.selectedIsGroup) {
TriggerVolumeManager var3 = getManagerForWorld(this.selectedWorld);
if (var3 != null) {
VolumeEntry var4 = var3.getVolume(this.selectedId);
if (var4 != null && var1.isValid()) {
TransformComponent var5 = var2.getComponent(var1, TransformComponent.getComponentType());
if (var5 != null) {
Vector3d var6 = new Vector3d(var4.getPosition());
var2.addComponent(var1, Teleport.getComponentType(), Teleport.createForPlayer(var6, var5.getRotation()));
this.playerRef.sendMessage(Message.translation("server.customUI.triggerVolumeInspector.teleported").param("name", this.selectedId));
this.close();
}
}
}
}
}
class="kw">private void onSave() {
TriggerVolumeManager var1 = getManagerForWorld(this.selectedWorld);
if (var1 != null && this.saveDrafts(var1, true)) {
this.skipSaveOnDismiss = true;
this.close();
} else {
this.revertRejectedDraftIds();
this.rebuildAll();
}
}
class="kw">private void clearDraftState() {
this.volumeDrafts.clear();
this.groupDrafts.clear();
this.deletedVolumes.clear();
this.deletedGroups.clear();
}
class="kw">private void onDiscard() {
this.skipSaveOnDismiss = true;
this.close();
}
class="kw">private boolean saveDrafts(@Nonnull TriggerVolumeManager var1, boolean var2) {
if (!this.validateDraftIds(var1)) {
class="kw">return false;
}
this.applyDeletes(var1);
this.applyGroupDrafts(var1);
this.applyVolumeDrafts(var1);
var1.markSpatialDirty();
var1.notifyViewers();
if (var2) {
this.playerRef.sendMessage(Message.translation("server.customUI.triggerVolumeInspector.saved"));
}
class="kw">return true;
}
class="kw">private void revertRejectedDraftIds() {
}
class="kw">private boolean validateDraftIds(@Nonnull TriggerVolumeManager var1) {
class="kw">return true;
}
@Nullable
class="kw">private Message idValidationMessage(@Nonnull String var1) {
class="kw">return null;
}
class="kw">private void applyDeletes(@Nonnull TriggerVolumeManager var1) {
for (String var3 : this.deletedVolumes) {
VolumeEntry var4 = var1.getVolume(var3);
if (var4 != null) {
if (var4.getGroupId() != null) {
GroupEntry var5 = var1.getGroup(var4.getGroupId());
if (var5 != null) {
var5.removeMember(var3);
}
}
var1.unregister(var3);
var1.notifyViewersRemove(var3);
}
}
for (String var9 : this.deletedGroups) {
GroupEntry var10 = var1.getGroup(var9);
if (var10 != null) {
for (String var6 : new ArrayList<>(var10.getMemberVolumeIds())) {
VolumeEntry var7 = var1.getVolume(var6);
if (var7 != null) {
var7.setGroupId(null);
var1.notifyViewersAdd(var7);
}
}
var1.unregisterGroup(var9);
}
}
}
class="kw">private void applyGroupDrafts(@Nonnull TriggerVolumeManager var1) {
for (TriggerVolumeInspectorDrafts.GroupDraft var3 : this.groupDrafts.values()) {
if (!this.deletedGroups.contains(var3.originalId) && var3.dirty) {
GroupEntry var4 = var1.getGroup(var3.originalId);
if (var4 != null) {
var3.applyTo(var4);
var4.setName(var1.makeUniqueGroupName(var3.id, var3.originalId));
}
}
}
}
class="kw">private void applyVolumeDrafts(@Nonnull TriggerVolumeManager var1) {
for (TriggerVolumeInspectorDrafts.VolumeDraft var3 : this.volumeDrafts.values()) {
if (!this.deletedVolumes.contains(var3.originalId) && var3.dirty) {
VolumeEntry var4 = var1.getVolume(var3.originalId);
if (var4 != null) {
String var5 = var3.originalId;
String var6 = var4.getGroupId();
var3.applyTo(var4);
var4.setName(var1.makeUniqueVolumeName(var3.id, var5));
if (var6 != null && !var6.equals(var3.groupId)) {
GroupEntry var7 = var1.getGroup(var6);
if (var7 != null) {
var7.removeMember(var5);
}
}
if (var3.groupId != null) {
GroupEntry var8 = var1.getGroup(var3.groupId);
if (var8 != null) {
var8.addMember(var5);
}
}
var1.notifyViewersAdd(var4);
}
}
}
}
class="kw">private void buildAddEffectDropdown(@Nonnull UICommandBuilder var1) {
if (this.isAddingRule()) {
List var7 = getSortedRuleTypeIds();
ObjectArrayList var8 = new ObjectArrayList();
for (String var12 : var7) {
var8.add(new DropdownEntryInfo(this.ruleDropdownLabel(var12), var12));
}
var1.set("#AddEffectDropdown.Entries", var8);
String var10 = !this.addEffectType.isEmpty() && var7.contains(this.addEffectType) ? this.addEffectType : (var7.isEmpty() ? "" : var7.get(0));
if (!var10.isEmpty()) {
var1.set("#AddEffectDropdown.Value", var10);
}
} else {
boolean var2 = this.addTargetKind == TriggerVolumeInspectorPage.EffectListKind.CONDITION;
List var3 = var2 ? getSortedConditionTypeIds() : getSortedTypeIds();
ObjectArrayList var4 = new ObjectArrayList();
for (String var6 : var3) {
var4.add(new DropdownEntryInfo(this.typeDropdownLabel(var6, var2), var6));
}
var1.set("#AddEffectDropdown.Entries", var4);
String var11 = !this.addEffectType.isEmpty() && var3.contains(this.addEffectType) ? this.addEffectType : (var3.isEmpty() ? "" : var3.get(0));
if (!var11.isEmpty()) {
var1.set("#AddEffectDropdown.Value", var11);
}
}
}
class="kw">private void buildAddEventTypeDropdown(@Nonnull UICommandBuilder var1) {
ObjectArrayList var2 = new ObjectArrayList();
for (TriggerEventType var4 : TriggerEventType.values()) {
var2.add(new DropdownEntryInfo(LocalizableString.fromMessageId("server.customUI.triggerVolumeEffectEditor.addEventType." + var4.name()), var4.name()));
}
var2.add(new DropdownEntryInfo(LocalizableString.fromMessageId("server.customUI.triggerVolumeEffectEditor.addEventType.ALWAYS_ACTIVE"), "ALWAYS_ACTIVE"));
var1.set("#AddEventTypeDropdown.Entries", var2);
var1.set("#AddEventTypeDropdown.Value", this.isAddingRule() ? "ALWAYS_ACTIVE" : this.addEventType.name());
}
class="kw">private void buildAddEntryDropdown(@Nonnull UICommandBuilder var1) {
if (this.isAddingRule()) {
ObjectArrayList var9 = new ObjectArrayList();
var9.add(new DropdownEntryInfo(LocalizableString.fromMessageId("server.customUI.triggerVolumeEffectEditor.addEntry.notApplicable"), "0"));
var1.set("#AddEntryDropdown.Entries", var9);
var1.set("#AddEntryDropdown.Value", "0");
} else {
IntOpenHashSet var2 = new IntOpenHashSet();
var2.add(0);
var2.add(this.addEntry);
for (int var6 : this.getEventEntries(TriggerVolumeInspectorPage.EventCategoryScope.VOLUME, null, this.addEventType)) {
var2.add(var6);
}
int[] var10 = var2.toIntArray();
Arrays.sort(var10);
ObjectArrayList var11 = new ObjectArrayList();
for (int var8 : var10) {
var11.add(
new DropdownEntryInfo(
LocalizableString.fromMessageId("server.customUI.triggerVolumeEffectEditor.addEntry.option", Map.of("entry", String.valueOf(var8 + 1))),
String.valueOf(var8)
)
);
}
var11.add(new DropdownEntryInfo(LocalizableString.fromMessageId("server.customUI.triggerVolumeEffectEditor.addEntry.new"), "NEW"));
var1.set("#AddEntryDropdown.Entries", var11);
var1.set("#AddEntryDropdown.Value", String.valueOf(this.addEntry));
}
}
class="kw">private void buildAddTargetDropdown(@Nonnull UICommandBuilder var1) {
ObjectArrayList var2 = new ObjectArrayList();
var2.add(
new DropdownEntryInfo(
LocalizableString.fromMessageId("server.customUI.triggerVolumeEffectEditor.addTarget.conditions"),
TriggerVolumeInspectorPage.EffectListKind.CONDITION.name()
)
);
var2.add(
new DropdownEntryInfo(
LocalizableString.fromMessageId("server.customUI.triggerVolumeEffectEditor.addTarget.successEffects"),
TriggerVolumeInspectorPage.EffectListKind.EFFECT.name()
)
);
var2.add(
new DropdownEntryInfo(
LocalizableString.fromMessageId("server.customUI.triggerVolumeEffectEditor.addTarget.rejectionEffects"),
TriggerVolumeInspectorPage.EffectListKind.REJECTION_EFFECT.name()
)
);
var2.add(
new DropdownEntryInfo(
LocalizableString.fromMessageId("server.customUI.triggerVolumeEffectEditor.addTarget.alwaysActive"),
TriggerVolumeInspectorPage.EffectListKind.RULE.name()
)
);
var1.set("#AddTargetDropdown.Entries", var2);
var1.set("#AddTargetDropdown.Value", this.addTargetKind.name());
}
class="kw">private boolean isAddingRule() {
class="kw">return this.addTargetKind == TriggerVolumeInspectorPage.EffectListKind.RULE;
}
class="kw">private void enterRuleAddMode() {
if (this.addTargetKind != TriggerVolumeInspectorPage.EffectListKind.RULE) {
this.lastRegularTargetKind = this.addTargetKind;
this.addTargetKind = TriggerVolumeInspectorPage.EffectListKind.RULE;
}
}
class="kw">private void leaveRuleAddMode() {
if (this.addTargetKind == TriggerVolumeInspectorPage.EffectListKind.RULE) {
this.addTargetKind = this.lastRegularTargetKind;
}
}
class="kw">private void buildEffectList(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) {
this.appendEffectList(var1, var2, "#EffectListContainer");
Object var3 = this.getSelectedItem();
var1.set("#DuplicateEffectButton.Disabled", var3 == null);
var1.set("#RemoveEffectButton.Disabled", var3 == null);
var1.set("#MoveEffectUpButton.Disabled", var3 == null || this.selectedEffectIndex <= 0);
var1.set("#MoveEffectDownButton.Disabled", var3 == null || this.selectedEffectIndex >= this.getItemCount(this.selectedKind) - 1);
}
class="kw">private void appendEffectList(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, @Nonnull String var3) {
var1.clear(var3);
int var4 = 0;
var4 = this.appendInheritedGroupSections(var1, var2, var3, var4);
var4 = this.appendVolumeEffectsSection(var1, var3, var4, var4 > 0 || this.selectedIsGroup);
var4 = this.appendRulesCategory(var1, var2, var3, var4, TriggerVolumeInspectorPage.EventCategoryScope.VOLUME, null);
this.appendEventCategoryGroups(var1, var2, var3, var4, TriggerVolumeInspectorPage.EventCategoryScope.VOLUME, null);
}
@Nonnull
class="kw">private Message effectSectionLabel(@Nonnull TriggerVolumeInspectorPage.EffectListKind var1, boolean var2) {
String var3 = class="kw">switch (var1) {
case CONDITION -> "conditions";
case EFFECT -> "successEffects";
case REJECTION_EFFECT -> "rejectionEffects";
case RULE -> "alwaysActiveRules";
};
String var4 = var2 ? "group" : "volume";
class="kw">return Message.translation("server.customUI.triggerVolumeEffectEditor." + var4 + "." + var3);
}
@Nonnull
class="kw">private Message effectRowLabel(int var1, @Nonnull String var2, boolean var3) {
class="kw">return Message.raw(var1 + ". ").insert(this.typeMessage(var2, var3));
}
@Nonnull
class="kw">private Message typeMessage(@Nonnull String var1, boolean var2) {
String var3 = typeLangKey(var1, var2);
class="kw">return messageExists(var3) ? Message.translation(var3) : Message.raw(humanizeTypeId(var1));
}
@Nonnull
class="kw">private LocalizableString typeDropdownLabel(@Nonnull String var1, boolean var2) {
String var3 = typeLangKey(var1, var2);
class="kw">return messageExists(var3) ? LocalizableString.fromMessageId(var3) : LocalizableString.fromString(humanizeTypeId(var1));
}
@Nonnull
class="kw">private class="kw">static String typeLangKey(@Nonnull String var0, boolean var1) {
class="kw">return "server.customUI.triggerVolumeEffectEditor." + (var1 ? "conditionType." : "effectType.") + var0;
}
@Nonnull
class="kw">private Message ruleRowLabel(int var1, @Nonnull String var2, boolean var3) {
Message var4 = Message.raw(var1 + ". ").insert(this.ruleTypeMessage(var2));
if (!var3) {
var4 = var4.insert(Message.raw(" ")).insert(Message.translation("server.customUI.triggerVolumeEffectEditor.ruleDisabledSuffix"));
}
class="kw">return var4;
}
@Nonnull
class="kw">private Message ruleTypeMessage(@Nonnull String var1) {
String var2 = ruleTypeLangKey(var1);
class="kw">return messageExists(var2) ? Message.translation(var2) : Message.raw(humanizeTypeId(var1));
}
@Nonnull
class="kw">private LocalizableString ruleDropdownLabel(@Nonnull String var1) {
String var2 = ruleTypeLangKey(var1);
class="kw">return messageExists(var2) ? LocalizableString.fromMessageId(var2) : LocalizableString.fromString(humanizeTypeId(var1));
}
@Nonnull
class="kw">private class="kw">static String ruleTypeLangKey(@Nonnull String var0) {
class="kw">return "server.customUI.triggerVolumeEffectEditor.ruleType." + var0;
}
class="kw">private int appendInheritedGroupSections(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, @Nonnull String var3, int var4) {
TriggerVolumeInspectorDrafts.GroupDraft var5 = this.selectedInheritedGroupDraft();
if (var5 != null && (!var5.conditions.isEmpty() || !var5.rejectionEffects.isEmpty() || !var5.effects.isEmpty() || !var5.rules.isEmpty())) {
var1.append(var3, "Pages/TriggerVolume/TriggerVolumeInspectorEffectOwnerSectionLabel.ui");
var1.set(var3 + "[" + var4 + "].Text", Message.translation("server.customUI.triggerVolumeEffectEditor.inheritedFromGroup").param("group", var5.id));
var4 = this.appendRulesCategory(var1, var2, var3, ++var4, TriggerVolumeInspectorPage.EventCategoryScope.GROUP, var5);
class="kw">return this.appendEventCategoryGroups(var1, var2, var3, var4, TriggerVolumeInspectorPage.EventCategoryScope.GROUP, var5);
} else {
class="kw">return var4;
}
}
class="kw">private int appendVolumeEffectsSection(@Nonnull UICommandBuilder var1, @Nonnull String var2, int var3, boolean var4) {
if (this.currentConditions().isEmpty()
&& this.currentEffects(TriggerVolumeInspectorPage.EffectListKind.REJECTION_EFFECT).isEmpty()
&& this.currentEffects(TriggerVolumeInspectorPage.EffectListKind.EFFECT).isEmpty()
&& this.currentRules().isEmpty()) {
class="kw">return var3;
}
if (!var4) {
class="kw">return var3;
}
if (var3 > 0 && !this.selectedIsGroup) {
var3 = this.appendEventCategorySpacer(var1, var2, var3);
}
var1.append(var2, "Pages/TriggerVolume/TriggerVolumeInspectorEffectOwnerSectionLabel.ui");
Message var5 = this.selectedIsGroup
? Message.translation("server.customUI.triggerVolumeEffectEditor.groupEffects")
: Message.translation("server.customUI.triggerVolumeEffectEditor.volumeEffects");
var1.set(var2 + "[" + var3 + "].Text", var5);
class="kw">return var3 + 1;
}
class="kw">private int appendEventCategoryGroups(
@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
@Nonnull String var3,
int var4,
@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var5,
@Nullable TriggerVolumeInspectorDrafts.GroupDraft var6
) {
for (TriggerEventType var8 : TriggerEventType.values()) {
for (int var12 : this.getEventEntries(var5, var6, var8)) {
int var13 = this.getEventCategoryItemCount(var5, var6, var8, var12);
if (var13 != 0) {
var4 = this.appendEventCategoryHeader(var1, var2, var3, var4, var5, var8, var12, var13);
if (!this.isEventCategoryCollapsed(var5, var8, var12)) {
var4 = this.appendEventSection(var1, var2, var3, var4, var5, var6, var8, var12, TriggerVolumeInspectorPage.EffectListKind.CONDITION);
var4 = this.appendEventSection(var1, var2, var3, var4, var5, var6, var8, var12, TriggerVolumeInspectorPage.EffectListKind.REJECTION_EFFECT);
var4 = this.appendEventSection(var1, var2, var3, var4, var5, var6, var8, var12, TriggerVolumeInspectorPage.EffectListKind.EFFECT);
var4 = this.appendEventCategorySpacer(var1, var3, var4);
}
}
}
}
class="kw">return var4;
}
class="kw">private int appendRulesCategory(
@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
@Nonnull String var3,
int var4,
@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var5,
@Nullable TriggerVolumeInspectorDrafts.GroupDraft var6
) {
if (var5 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP && var6 == null) {
class="kw">return var4;
}
List var7 = var5 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP ? var6.rules : this.currentRules();
if (var7.isEmpty()) {
class="kw">return var4;
}
boolean var8 = var5 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP ? !this.groupRulesExpanded : this.volumeRulesCollapsed;
String var9 = var3 + "[" + var4 + "]";
Message var10 = Message.translation("server.customUI.triggerVolumeEffectEditor.eventCategory.ALWAYS_ACTIVE");
if (var5 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP) {
var10 = var10.insert(Message.translation("server.customUI.triggerVolumeEffectEditor.eventCategoryInheritedSuffix"));
}
var1.append(var3, "Pages/TriggerVolume/TriggerVolumeInspectorEventCategoryHeader.ui");
var1.set(var9 + ".TextSpans", var10.param("state", var8 ? ">" : "v").param("count", var7.size()));
var2.addEventBinding(
CustomUIEventBindingType.Activating,
var9,
new EventData().append("Action", TriggerVolumeInspectorPage.Action.ToggleRulesCategory.name()).append("EventCategoryScope", var5.name())
);
var4++;
if (var8) {
class="kw">return var4;
}
var1.append(var3, "Pages/TriggerVolume/TriggerVolumeInspectorEventSectionLabel.ui");
var1.set(
var3 + "[" + var4 + "] #Label.Text",
this.effectSectionLabel(TriggerVolumeInspectorPage.EffectListKind.RULE, var5 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP)
);
var4++;
for (int var11 = 0; var11 < var7.size(); var11++) {
String var12 = var3 + "[" + var4 + "]";
Message var13 = this.ruleRowLabel(var11 + 1, getRuleTypeId(var7.get(var11)), var7.get(var11).isEnabled());
var1.append(var3, "Pages/TriggerVolume/TriggerVolumeInspectorEffectRow.ui");
var1.set(var12 + " #Label.TextSpans", var13);
if (var5 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP) {
var1.set(var12 + ".Style", INHERITED_EFFECT_ROW_STYLE);
var1.set(var12 + " #Label.Style", INHERITED_EFFECT_LABEL_STYLE);
} else {
boolean var14 = this.selectedKind == TriggerVolumeInspectorPage.EffectListKind.RULE && var11 == this.selectedEffectIndex;
var1.set(var12 + ".Style", var14 ? SELECTED_EFFECT_ROW_STYLE : NORMAL_EFFECT_ROW_STYLE);
var1.set(var12 + " #Label.Style", var14 ? SELECTED_EFFECT_LABEL_STYLE : NORMAL_EFFECT_LABEL_STYLE);
var2.addEventBinding(
CustomUIEventBindingType.Activating,
var12,
new EventData()
.append("Action", TriggerVolumeInspectorPage.Action.SelectEffect.name())
.append("EffectListKind", TriggerVolumeInspectorPage.EffectListKind.RULE.name())
.append("EffectIndex", String.valueOf(var11))
);
}
var4++;
}
class="kw">return this.appendEventCategorySpacer(var1, var3, var4);
}
class="kw">private void onToggleRulesCategory(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.eventCategoryScope != null) {
try {
TriggerVolumeInspectorPage.EventCategoryScope var2 = TriggerVolumeInspectorPage.EventCategoryScope.valueOf(var1.eventCategoryScope);
if (var2 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP) {
this.groupRulesExpanded = !this.groupRulesExpanded;
} else {
this.volumeRulesCollapsed = !this.volumeRulesCollapsed;
}
this.rebuildAll();
} catch (IllegalArgumentException var3) {
}
}
}
class="kw">private void onToggleRejectionSignal() {
this.rejectionSignalExpanded = !this.rejectionSignalExpanded;
this.rebuildAll();
}
class="kw">private int appendEventCategoryHeader(
@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
@Nonnull String var3,
int var4,
@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var5,
@Nonnull TriggerEventType var6,
int var7,
int var8
) {
String var9 = var3 + "[" + var4 + "]";
String var10 = this.isEventCategoryCollapsed(var5, var6, var7) ? ">" : "v";
var1.append(var3, "Pages/TriggerVolume/TriggerVolumeInspectorEventCategoryHeader.ui");
var1.set(var9 + ".TextSpans", eventCategoryLabel(var5, var6, var7).param("state", var10).param("count", var8));
var2.addEventBinding(
CustomUIEventBindingType.Activating,
var9,
new EventData()
.append("Action", TriggerVolumeInspectorPage.Action.ToggleEventCategory.name())
.append("EventType", var6.name())
.append("EventEntry", String.valueOf(var7))
.append("EventCategoryScope", var5.name())
);
class="kw">return var4 + 1;
}
class="kw">private int appendEventSection(
@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
@Nonnull String var3,
int var4,
@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var5,
@Nullable TriggerVolumeInspectorDrafts.GroupDraft var6,
@Nonnull TriggerEventType var7,
int var8,
@Nonnull TriggerVolumeInspectorPage.EffectListKind var9
) {
IntList var10 = this.getEventItemIndices(var5, var6, var7, var8, var9);
if (var10.isEmpty()) {
class="kw">return var4;
}
var1.append(var3, "Pages/TriggerVolume/TriggerVolumeInspectorEventSectionLabel.ui");
var1.set(var3 + "[" + var4 + "] #Label.Text", this.effectSectionLabel(var9, var5 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP));
var4++;
for (int var11 = 0; var11 < var10.size(); var11++) {
int var12 = var10.getInt(var11);
String var13 = var3 + "[" + var4 + "]";
String var14 = var5 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP ? getGroupItemTypeId(var9, var12, var6) : this.getItemTypeId(var9, var12);
Message var15 = this.effectRowLabel(var11 + 1, var14, var9 == TriggerVolumeInspectorPage.EffectListKind.CONDITION);
var1.append(var3, "Pages/TriggerVolume/TriggerVolumeInspectorEffectRow.ui");
var1.set(var13 + " #Label.TextSpans", var15);
if (var5 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP) {
var1.set(var13 + ".Style", INHERITED_EFFECT_ROW_STYLE);
var1.set(var13 + " #Label.Style", INHERITED_EFFECT_LABEL_STYLE);
} else {
boolean var16 = var9 == this.selectedKind && var12 == this.selectedEffectIndex;
var1.set(var13 + ".Style", var16 ? SELECTED_EFFECT_ROW_STYLE : NORMAL_EFFECT_ROW_STYLE);
var1.set(var13 + " #Label.Style", var16 ? SELECTED_EFFECT_LABEL_STYLE : NORMAL_EFFECT_LABEL_STYLE);
var2.addEventBinding(
CustomUIEventBindingType.Activating,
var13,
new EventData()
.append("Action", TriggerVolumeInspectorPage.Action.SelectEffect.name())
.append("EffectListKind", var9.name())
.append("EffectIndex", String.valueOf(var12))
);
}
var4++;
}
class="kw">return var4;
}
class="kw">private int appendEventCategorySpacer(@Nonnull UICommandBuilder var1, @Nonnull String var2, int var3) {
var1.append(var2, "Pages/TriggerVolume/TriggerVolumeInspectorEventCategorySpacer.ui");
class="kw">return var3 + 1;
}
@Nonnull
class="kw">private class="kw">static Message eventCategoryLabel(@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var0, @Nonnull TriggerEventType var1, int var2) {
Message var3 = Message.translation("server.customUI.triggerVolumeEffectEditor.eventCategory." + var1.name());
if (var2 > 0) {
var3 = var3.insert(Message.translation("server.customUI.triggerVolumeEffectEditor.eventCategoryEntrySuffix").param("entry", String.valueOf(var2 + 1)));
}
class="kw">return var0 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP
? var3.insert(Message.translation("server.customUI.triggerVolumeEffectEditor.eventCategoryInheritedSuffix"))
: var3;
}
@Nonnull
class="kw">private int[] getEventEntries(
@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var1, @Nullable TriggerVolumeInspectorDrafts.GroupDraft var2, @Nonnull TriggerEventType var3
) {
if (var1 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP && var2 == null) {
class="kw">return EMPTY_ENTRIES;
}
IntOpenHashSet var4 = new IntOpenHashSet();
for (TriggerVolumeInspectorPage.EffectListKind var8 : TriggerVolumeInspectorPage.EffectListKind.values()) {
if (var8 != TriggerVolumeInspectorPage.EffectListKind.RULE) {
int var9 = var1 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP ? getGroupItemCount(var8, var2) : this.getItemCount(var8);
for (int var10 = 0; var10 < var9; var10++) {
TriggerEventType var11 = var1 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP
? getGroupItemEventType(var8, var10, var2)
: this.getItemEventType(var8, var10);
if (normalizeEventType(var11) == var3) {
var4.add(var1 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP ? getGroupItemEntry(var8, var10, var2) : this.getItemEntry(var8, var10));
}
}
}
}
int[] var12 = var4.toIntArray();
Arrays.sort(var12);
class="kw">return var12;
}
class="kw">private int getEventCategoryItemCount(
@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var1,
@Nullable TriggerVolumeInspectorDrafts.GroupDraft var2,
@Nonnull TriggerEventType var3,
int var4
) {
int var5 = 0;
for (TriggerVolumeInspectorPage.EffectListKind var9 : TriggerVolumeInspectorPage.EffectListKind.values()) {
if (var9 != TriggerVolumeInspectorPage.EffectListKind.RULE) {
var5 += this.getEventItemIndices(var1, var2, var3, var4, var9).size();
}
}
class="kw">return var5;
}
@Nonnull
class="kw">private IntList getEventItemIndices(
@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var1,
@Nullable TriggerVolumeInspectorDrafts.GroupDraft var2,
@Nonnull TriggerEventType var3,
int var4,
@Nonnull TriggerVolumeInspectorPage.EffectListKind var5
) {
IntArrayList var6 = new IntArrayList();
if (var1 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP && var2 == null) {
class="kw">return var6;
}
int var7 = var1 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP ? getGroupItemCount(var5, var2) : this.getItemCount(var5);
for (int var8 = 0; var8 < var7; var8++) {
TriggerEventType var9 = var1 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP
? getGroupItemEventType(var5, var8, var2)
: this.getItemEventType(var5, var8);
if (normalizeEventType(var9) == var3) {
int var10 = var1 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP ? getGroupItemEntry(var5, var8, var2) : this.getItemEntry(var5, var8);
if (var10 == var4) {
var6.add(var8);
}
}
}
class="kw">return var6;
}
class="kw">private boolean isEventCategoryCollapsed(@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var1, @Nonnull TriggerEventType var2, int var3) {
TriggerVolumeInspectorPage.EventCategoryKey var4 = new TriggerVolumeInspectorPage.EventCategoryKey(var2, var3);
class="kw">return var1 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP
? !this.expandedGroupEventCategories.contains(var4)
: this.collapsedVolumeEventCategories.contains(var4);
}
class="kw">private void setEventCategoryExpanded(@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var1, @Nonnull TriggerEventType var2, int var3) {
TriggerVolumeInspectorPage.EventCategoryKey var4 = new TriggerVolumeInspectorPage.EventCategoryKey(var2, var3);
if (var1 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP) {
this.expandedGroupEventCategories.add(var4);
} else {
this.collapsedVolumeEventCategories.remove(var4);
}
}
class="kw">private void toggleEventCategory(@Nonnull TriggerVolumeInspectorPage.EventCategoryScope var1, @Nonnull TriggerEventType var2, int var3) {
TriggerVolumeInspectorPage.EventCategoryKey var4 = new TriggerVolumeInspectorPage.EventCategoryKey(var2, var3);
if (var1 == TriggerVolumeInspectorPage.EventCategoryScope.GROUP) {
if (!this.expandedGroupEventCategories.remove(var4)) {
this.expandedGroupEventCategories.add(var4);
}
} else if (!this.collapsedVolumeEventCategories.remove(var4)) {
this.collapsedVolumeEventCategories.add(var4);
}
}
@Nonnull
class="kw">private class="kw">static TriggerEventType normalizeEventType(@Nullable TriggerEventType var0) {
class="kw">return var0 != null ? var0 : TriggerEventType.ENTER;
}
class="kw">private void buildEffectDetailPanel(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) {
var1.clear("#EffectDetailPanel");
Object var3 = this.getSelectedItem();
if (var3 == null) {
var1.set("#NoEffectSelectionLabel.Visible", true);
var1.set("#EffectDetailPanel.Visible", false);
} else {
var1.set("#NoEffectSelectionLabel.Visible", false);
var1.set("#EffectDetailPanel.Visible", true);
int var4 = 0;
if (var3 class="kw">instanceof TriggerRule var23) {
String var25 = getRuleTypeId(var23);
var4 = this.addEffectFieldRow(var1, var2, var4, var25, "Enabled", Codec.BOOLEAN, new BsonBoolean(var23.isEnabled()));
BuilderCodec var27 = getRuleBuilderCodecFor(var25);
if (var27 != null) {
BsonDocument var29 = encodeRule(var27, var23);
boolean var31 = var23 class="kw">instanceof AbstractDenyRule;
for (Entry var37 : var27.getEntries().entrySet()) {
String var39 = var37.getKey();
if (!"Enabled".equals(var39) && !var37.getValue().isEmpty() && (!var31 || !DENY_SIGNAL_FIELD_KEY_SET.contains(var39))) {
BuilderField var42 = var37.getValue().getLast();
var4 = this.addEffectFieldRow(var1, var2, var4, var25, var39, var42.getCodec().getChildCodec(), var29.get(var39));
}
}
if (var23 class="kw">instanceof AbstractDenyRule var34) {
var4 = this.appendRejectionSignalSection(var1, var2, var4, var25, var27, var29, var34);
}
}
} else if (var3 class="kw">instanceof ModifyRulesEffect var22) {
this.buildModifyRulesEffectDetailPanel(var1, var2, var22);
} else if (var3 class="kw">instanceof TriggerCondition var21) {
String var24 = getConditionTypeId(var21);
String var26 = var21.getEventType() != null ? var21.getEventType().name() : TriggerEventType.ENTER.name();
var4 = this.appendBaseFieldHeader(var1, var2, var4, true, var26, String.valueOf(var21.getEntry() + 1), "0", "0");
BuilderCodec var28 = getConditionBuilderCodecFor(var24);
if (var28 != null) {
BsonDocument var30 = encodeCondition(var28, var21);
Map var32 = var28.getEntries();
boolean var36 = var32.containsKey("RotationX") && var32.containsKey("RotationY") && var32.containsKey("RotationZ");
TagCondition.Source var38 = var21 class="kw">instanceof TagCondition var40 ? var40.getSource() : null;
for (Entry var43 : var32.entrySet()) {
String var15 = var43.getKey();
if (!"Event".equals(var15)
&& !"Entry".equals(var15)
&& !var43.getValue().isEmpty()
&& (var38 == null || !isTagConditionFieldHidden(var15, var38))) {
if (var36 && ("RotationX".equals(var15) || "RotationY".equals(var15) || "RotationZ".equals(var15))) {
if ("RotationX".equals(var15)) {
var4 = this.addRotationXyzRow(
var1,
var2,
var4,
var24,
enumValueOrDefault(var30, "RotationX"),
enumValueOrDefault(var30, "RotationY"),
enumValueOrDefault(var30, "RotationZ")
);
}
} else {
BuilderField var16 = var43.getValue().getLast();
var4 = this.addEffectFieldRow(var1, var2, var4, var24, var15, var16.getCodec().getChildCodec(), var30.get(var15));
}
}
}
}
} else {
TriggerEffect var5 = (TriggerEffect)var3;
String var6 = getTypeId(var5);
String var7 = var5.getEventType() != null ? var5.getEventType().name() : TriggerEventType.ENTER.name();
var4 = this.appendBaseFieldHeader(
var1, var2, var4, false, var7, String.valueOf(var5.getEntry() + 1), String.valueOf(var5.getDelay()), String.valueOf(var5.getInterval())
);
BuilderCodec var8 = getBuilderCodecFor(var6);
if (var8 != null) {
BsonDocument var9 = encodeEffect(var8, var5);
RemoveEntitiesEffect.Mode var10 = var5 class="kw">instanceof RemoveEntitiesEffect var11 ? var11.getMode() : null;
for (Entry var12 : var8.getEntries().entrySet()) {
String var13 = var12.getKey();
if (!"Event".equals(var13)
&& !"Interval".equals(var13)
&& !"Delay".equals(var13)
&& !"Entry".equals(var13)
&& !var12.getValue().isEmpty()
&& (var10 != RemoveEntitiesEffect.Mode.REMOVE || !"IncludePlayers".equals(var13) && !"IgnoreInvulnerability".equals(var13))) {
BuilderField var14 = var12.getValue().getLast();
var4 = this.addEffectFieldRow(var1, var2, var4, var6, var13, var14.getCodec().getChildCodec(), var9.get(var13));
}
}
}
if (var5 class="kw">instanceof PastePrefabEffect) {
this.addPastePrefabPreviewButtonRow(var1, var2, var4);
}
}
}
}
class="kw">private void buildModifyRulesEffectDetailPanel(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, @Nonnull ModifyRulesEffect var3) {
String var4 = getTypeId(var3);
String var5 = var3.getEventType() != null ? var3.getEventType().name() : TriggerEventType.ENTER.name();
int var6 = this.appendBaseFieldHeader(
var1, var2, 0, false, var5, String.valueOf(var3.getEntry() + 1), String.valueOf(var3.getDelay()), String.valueOf(var3.getInterval())
);
BuilderCodec var7 = getBuilderCodecFor(var4);
BsonDocument var8 = var7 != null ? encodeEffect(var7, var3) : new BsonDocument();
ModifyRulesEffect.Operation var9 = var3.getOperation();
var6 = this.addEffectFieldByKey(var1, var2, var6, var4, var7, var8, "Operation");
if (var9 == ModifyRulesEffect.Operation.SET_RULES_ACTIVE) {
var6 = this.addEffectFieldByKey(var1, var2, var6, var4, var7, var8, "Active");
TriggerRule var10 = var3.getRule();
var6 = this.addRuleTypeDropdownRow(var1, var2, var6, var10 != null ? getRuleTypeId(var10) : "", true);
} else {
TriggerRule var21 = var3.getRule();
String var11 = var21 != null ? getRuleTypeId(var21) : "";
var6 = this.addRuleTypeDropdownRow(var1, var2, var6, var11, false);
BuilderCodec var12 = var21 != null ? getRuleBuilderCodecFor(var11) : null;
if (var9 == ModifyRulesEffect.Operation.SET_FIELD) {
String var13 = var3.getFieldKey();
var6 = this.addRuleFieldDropdownRow(var1, var2, var6, var11, var12, var13);
if (var12 != null && var13 != null && !var13.isBlank()) {
List var14 = var12.getEntries().get(var13);
if (var14 != null && !var14.isEmpty()) {
BuilderField var15 = var14.getLast();
BsonDocument var16 = encodeRule(var12, var21);
var6 = this.addEffectFieldRow(var1, var2, var6, var11, var13, var15.getCodec().getChildCodec(), var16.get(var13));
}
}
} else if ((var9 == ModifyRulesEffect.Operation.SET || var9 == ModifyRulesEffect.Operation.APPEND) && var12 != null) {
BsonDocument var24 = encodeRule(var12, var21);
for (Entry var26 : var12.getEntries().entrySet()) {
String var27 = var26.getKey();
if (!var26.getValue().isEmpty()) {
Codec var17 = var26.getValue().getLast().getCodec().getChildCodec();
if (var9 != ModifyRulesEffect.Operation.APPEND || isAppendableFieldCodec(var17)) {
var6 = this.addEffectFieldRow(var1, var2, var6, var11, var27, var17, var24.get(var27));
}
}
}
}
}
for (String var23 : List.of("MatchKey", "MatchValue", "Radius", "Center")) {
var6 = this.addEffectFieldByKey(var1, var2, var6, var4, var7, var8, var23);
}
}
class="kw">private class="kw">static boolean isTagConditionFieldHidden(@Nonnull String var0, @Nonnull TagCondition.Source var1) {
if (TAG_CONDITION_RADIUS_ONLY_KEYS.contains(var0)) {
class="kw">return var1 != TagCondition.Source.RADIUS;
} else {
class="kw">return !"MinimumCount".equals(var0) ? false : var1 != TagCondition.Source.GROUP && var1 != TagCondition.Source.RADIUS;
}
}
class="kw">private int appendRejectionSignalSection(
@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
@Nonnull String var4,
@Nonnull BuilderCodec<TriggerRule> var5,
@Nonnull BsonDocument var6,
@Nonnull AbstractDenyRule var7
) {
String var8 = "#EffectDetailPanel[" + var3 + "]";
String var9 = this.rejectionSignalExpanded ? "v" : ">";
var1.append("#EffectDetailPanel", "Pages/TriggerVolume/TriggerVolumeInspectorEventCategoryHeader.ui");
var1.set(var8 + ".TextSpans", Message.translation("server.customUI.triggerVolumeEffectEditor.rejectionSignalSection").param("state", var9));
var2.addEventBinding(
CustomUIEventBindingType.Activating, var8, new EventData().append("Action", TriggerVolumeInspectorPage.Action.ToggleRejectionSignal.name())
);
var3++;
if (!this.rejectionSignalExpanded) {
class="kw">return var3;
}
boolean var10 = var7.getTarget() == AbstractDenyRule.DenySignalTarget.SELF;
for (String var12 : DENY_SIGNAL_FIELD_KEYS) {
if (!var10 || !DENY_SIGNAL_OTHER_ONLY_KEYS.contains(var12)) {
List var13 = var5.getEntries().get(var12);
if (var13 != null && !var13.isEmpty()) {
BuilderField var14 = var13.getLast();
var3 = this.addEffectFieldRow(var1, var2, var3, var4, var12, var14.getCodec().getChildCodec(), var6.get(var12));
}
}
}
class="kw">return var3;
}
class="kw">private int addEffectFieldByKey(
@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
@Nonnull String var4,
@Nullable BuilderCodec<TriggerEffect> var5,
@Nonnull BsonDocument var6,
@Nonnull String var7
) {
if (var5 == null) {
class="kw">return var3;
} else {
List var8 = var5.getEntries().get(var7);
if (var8 != null && !var8.isEmpty()) {
BuilderField var9 = var8.getLast();
class="kw">return this.addEffectFieldRow(var1, var2, var3, var4, var7, var9.getCodec().getChildCodec(), var6.get(var7));
} else {
class="kw">return var3;
}
}
}
class="kw">private int addRuleTypeDropdownRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, boolean var5) {
String var6 = "#EffectDetailPanel[" + var3 + "]";
var1.append("#EffectDetailPanel", "Pages/TriggerVolume/TriggerVolumeInspectorDropdownRow.ui");
var1.set(var6 + " #Label.Text", fieldLabel("ModifyRules", "RuleType"));
setEffectFieldTooltip(var1, var6, "ModifyRules", "RuleType");
ObjectArrayList var7 = new ObjectArrayList();
if (var5) {
var7.add(new DropdownEntryInfo(LocalizableString.fromMessageId("server.customUI.triggerVolumeEffectEditor.field.ModifyRules.RuleType.all"), "", null));
}
for (String var9 : getSortedRuleTypeIds()) {
var7.add(new DropdownEntryInfo(this.ruleDropdownLabel(var9), var9, null));
}
var1.set(var6 + " #Input.Entries", var7);
var1.set(var6 + " #Input.Value", var4);
var2.addEventBinding(CustomUIEventBindingType.ValueChanged, var6 + " #Input", paramEvent("RuleType", var6 + " #Input.Value"), false);
class="kw">return var3 + 1;
}
class="kw">private int addRuleFieldDropdownRow(
@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
@Nonnull String var4,
@Nullable BuilderCodec<TriggerRule> var5,
@Nullable String var6
) {
String var7 = "#EffectDetailPanel[" + var3 + "]";
var1.append("#EffectDetailPanel", "Pages/TriggerVolume/TriggerVolumeInspectorDropdownRow.ui");
var1.set(var7 + " #Label.Text", fieldLabel("ModifyRules", "RuleField"));
setEffectFieldTooltip(var1, var7, "ModifyRules", "RuleField");
ObjectArrayList var8 = new ObjectArrayList();
if (var5 != null) {
for (Entry var10 : var5.getEntries().entrySet()) {
String var11 = var10.getKey();
if (!var10.getValue().isEmpty() && !"Enabled".equals(var11)) {
var8.add(new DropdownEntryInfo(this.fieldDropdownLabel(var4, var11), var11, null));
}
}
}
var1.set(var7 + " #Input.Entries", var8);
var1.set(var7 + " #Input.Value", var6 != null ? var6 : "");
var2.addEventBinding(CustomUIEventBindingType.ValueChanged, var7 + " #Input", paramEvent("RuleField", var7 + " #Input.Value"), false);
class="kw">return var3 + 1;
}
@Nonnull
class="kw">private LocalizableString fieldDropdownLabel(@Nonnull String var1, @Nonnull String var2) {
String var3 = "server.customUI.triggerVolumeEffectEditor.field." + var1 + "." + var2;
if (messageExists(var3)) {
class="kw">return LocalizableString.fromMessageId(var3);
}
String var4 = "server.customUI.triggerVolumeEffectEditor.field.common." + var2;
class="kw">return messageExists(var4) ? LocalizableString.fromMessageId(var4) : LocalizableString.fromString(var2);
}
class="kw">private int appendBaseFieldHeader(
@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
boolean var4,
@Nonnull String var5,
@Nonnull String var6,
@Nonnull String var7,
@Nonnull String var8
) {
String var9 = "#EffectDetailPanel[" + var3 + "]";
var1.append("#EffectDetailPanel", "Pages/TriggerVolume/TriggerVolumeInspectorBaseHeaderGrid.ui");
String var10 = var9 + " #EventCell";
var1.set(var10 + " #Label.Text", Message.translation("server.customUI.triggerVolumeEffectEditor.baseField.event"));
var1.set(var10 + " #Label.TooltipText", Message.translation("server.customUI.triggerVolumeEffectEditor.baseField.event.tooltip"));
ObjectArrayList var11 = new ObjectArrayList();
for (TriggerEventType var13 : TriggerEventType.values()) {
String var14 = var13.name();
var11.add(new DropdownEntryInfo(this.optionLabel("baseField", "Event", var14), var14, this.optionTooltip("baseField", "Event", var14)));
}
var1.set(var10 + " #Input.Entries", var11);
var1.set(var10 + " #Input.Value", var5);
var2.addEventBinding(CustomUIEventBindingType.ValueChanged, var10 + " #Input", paramEvent("Event", var10 + " #Input.Value"), false);
this.setBaseNumberCell(var1, var2, var9 + " #EntryCell", "Entry", "baseField.entry", var6);
var2.addEventBinding(
CustomUIEventBindingType.FocusLost,
var9 + " #EntryCell #Input",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.CommitEntry.name()),
false
);
var2.addEventBinding(
CustomUIEventBindingType.Validating,
var9 + " #EntryCell #Input",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.CommitEntry.name()),
false
);
if (var4) {
var1.set(var9 + " #SecondRow.Visible", false);
} else {
this.setBaseNumberCell(var1, var2, var9 + " #DelayCell", "Delay", "effectDelay", var7);
this.setBaseNumberCell(var1, var2, var9 + " #IntervalCell", "Interval", "baseField.interval", var8);
}
class="kw">return var3 + 1;
}
class="kw">private void setBaseNumberCell(
@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, @Nonnull String var3, @Nonnull String var4, @Nonnull String var5, @Nonnull String var6
) {
var1.set(var3 + " #Label.Text", Message.translation("server.customUI.triggerVolumeEffectEditor." + var5));
var1.set(var3 + " #Label.TooltipText", Message.translation("server.customUI.triggerVolumeEffectEditor." + var5 + ".tooltip"));
double var7;
try {
var7 = Double.parseDouble(var6);
} catch (NumberFormatException var10) {
var7 = 0.0;
}
var1.set(var3 + " #Input.Value", var7);
var2.addEventBinding(CustomUIEventBindingType.ValueChanged, var3 + " #Input", numericParamEvent(var4, var3 + " #Input.Value"), false);
}
class="kw">private class="kw">static boolean isAppendableFieldCodec(@Nonnull Codec<?> var0) {
class="kw">return var0 == Codec.STRING_ARRAY || var0 == Codec.FLOAT || var0 == Codec.DOUBLE || var0 == Codec.INTEGER || var0 == Codec.LONG;
}
class="kw">private int addEffectFieldRow(
@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
@Nonnull String var4,
@Nonnull String var5,
@Nonnull Codec<?> var6,
@Nullable BsonValue var7
) {
if (var6 == Codec.BOOLEAN) {
boolean var25 = var7 class="kw">instanceof BsonBoolean var32 && var32.getValue();
class="kw">return this.addEffectCheckboxRow(var1, var2, var3, var4, var5, var25);
}
if (var6 == Codec.FLOAT) {
String var24 = var7 class="kw">instanceof BsonDouble var31 ? String.valueOf((float)var31.getValue()) : "0.0";
class="kw">return this.addEffectNumberRow(var1, var2, var3, var4, var5, var24, 2);
}
if (var6 == Codec.DOUBLE) {
String var23 = var7 class="kw">instanceof BsonDouble var30 ? String.valueOf(var30.getValue()) : "0.0";
class="kw">return this.addEffectNumberRow(var1, var2, var3, var4, var5, var23, 2);
}
if (var6 == Codec.INTEGER) {
String var22 = var7 class="kw">instanceof BsonInt32 var29 ? String.valueOf(var29.getValue()) : "0";
class="kw">return this.addEffectNumberRow(var1, var2, var3, var4, var5, var22, 0);
}
if (var6 == Codec.LONG) {
String var21 = var7 class="kw">instanceof BsonInt64 var28 ? String.valueOf(var28.getValue()) : "0";
class="kw">return this.addEffectNumberRow(var1, var2, var3, var4, var5, var21, 0);
}
if (var6 == Vector3dUtil.CODEC) {
double var20 = 0.0;
double var33 = 0.0;
double var13 = 0.0;
if (var7 class="kw">instanceof BsonDocument var15) {
var20 = var15.get("X", new BsonDouble(0.0)).asDouble().getValue();
var33 = var15.get("Y", new BsonDouble(0.0)).asDouble().getValue();
var13 = var15.get("Z", new BsonDouble(0.0)).asDouble().getValue();
}
class="kw">return this.addEffectVec3Row(var1, var2, var3, var4, var5, var20, var33, var13);
} else if (!(var6 class="kw">instanceof EnumCodec var8)) {
if (var6 == Codec.STRING) {
String var19 = var7 class="kw">instanceof BsonString var27 ? var27.getValue() : "";
class="kw">return getAssetSourceForField(var4, var5) != null
? this.addAssetPickerRow(var1, var2, var3, var4, var5, var19)
: this.addEffectTextRow(var1, var2, var3, var4, var5, var19);
} else if (var6 == Codec.STRING_ARRAY) {
String var18 = var7 class="kw">instanceof BsonArray var26
? String.join(", ", var26.stream().filter(BsonString.class::isInstance).map(BsonString.class::cast).map(BsonString::getValue).toList())
: "";
class="kw">return getAssetSourceForField(var4, var5) != null
? this.addAssetPickerRow(var1, var2, var3, var4, var5, var18)
: this.addEffectTextRow(var1, var2, var3, var4, var5, var18);
} else {
String var17 = var7 != null ? bsonValueToString(var7) : "";
class="kw">return this.addEffectTextRow(var1, var2, var3, var4, var5, var17);
}
} else {
String var9 = "";
if (var7 != null) {
try {
Enum var10 = var8.decode(var7, ExtraInfo.THREAD_LOCAL.get());
var9 = var8.getEnumKeys()[var10.ordinal()];
} catch (Exception var16) {
var9 = var7 class="kw">instanceof BsonString var11 ? var11.getValue() : "";
}
}
class="kw">return this.addEffectDropdownRow(var1, var2, var3, var4, var5, List.of(var8.getEnumKeys()), var9);
}
}
class="kw">private int addEffectTextRow(
@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull String var5, @Nonnull String var6
) {
String var7 = "#EffectDetailPanel[" + var3 + "]";
var1.append("#EffectDetailPanel", "Pages/TriggerVolume/TriggerVolumeInspectorTextRow.ui");
var1.set(var7 + " #Label.Text", fieldLabel(var4, var5));
setEffectFieldTooltip(var1, var7, var4, var5);
setEffectFieldPlaceholder(var1, var7, var4, var5);
var1.set(var7 + " #Input.Value", var6);
var2.addEventBinding(CustomUIEventBindingType.ValueChanged, var7 + " #Input", paramEvent(var5, var7 + " #Input.Value"), false);
class="kw">return var3 + 1;
}
class="kw">private int addEffectNumberRow(
@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull String var5, @Nonnull String var6, int var7
) {
class="kw">return this.addEffectNumberRow(var1, var2, var3, var4, var5, fieldLabel(var4, var5), null, var6, var7);
}
class="kw">private int addEffectNumberRow(
@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
@Nonnull String var4,
@Nonnull String var5,
@Nonnull Object var6,
@Nullable Message var7,
@Nonnull String var8,
int var9
) {
String var10 = "#EffectDetailPanel[" + var3 + "]";
var1.append(
"#EffectDetailPanel", var9 > 0 ? "Pages/TriggerVolume/TriggerVolumeInspectorNumberRow.ui" : "Pages/TriggerVolume/TriggerVolumeInspectorIntRow.ui"
);
if (var6 class="kw">instanceof Message var11) {
var1.set(var10 + " #Label.Text", var11);
} else {
var1.set(var10 + " #Label.Text", var6.toString());
}
if (var7 != null) {
var1.set(var10 + " #Label.TooltipText", var7);
} else {
setEffectFieldTooltip(var1, var10, var4, var5);
}
if (isNonNegativeNumericField(var4, var5)) {
var1.set(var10 + " #Input.Format.MinValue", 0.0);
}
try {
var1.set(var10 + " #Input.Value", Double.parseDouble(var8));
} catch (NumberFormatException var12) {
var1.set(var10 + " #Input.Value", 0.0);
}
var2.addEventBinding(CustomUIEventBindingType.ValueChanged, var10 + " #Input", numericParamEvent(var5, var10 + " #Input.Value"), false);
class="kw">return var3 + 1;
}
class="kw">private int addEffectCheckboxRow(
@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull String var5, boolean var6
) {
String var7 = "#EffectDetailPanel[" + var3 + "]";
var1.append("#EffectDetailPanel", "Pages/TriggerVolume/TriggerVolumeInspectorCheckboxRow.ui");
var1.set(var7 + " #Label.Text", fieldLabel(var4, var5));
setEffectFieldTooltip(var1, var7, var4, var5);
var1.set(var7 + " #Input.Value", var6);
var2.addEventBinding(CustomUIEventBindingType.ValueChanged, var7 + " #Input", boolParamEvent(var5, var7 + " #Input.Value"), false);
class="kw">return var3 + 1;
}
class="kw">private int addEffectDropdownRow(
@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
@Nonnull String var4,
@Nonnull String var5,
@Nonnull List<String> var6,
@Nonnull String var7
) {
String var8 = "#EffectDetailPanel[" + var3 + "]";
var1.append("#EffectDetailPanel", "Pages/TriggerVolume/TriggerVolumeInspectorDropdownRow.ui");
var1.set(var8 + " #Label.Text", fieldLabel(var4, var5));
setEffectFieldTooltip(var1, var8, var4, var5);
ObjectArrayList var9 = new ObjectArrayList();
for (String var11 : var6) {
var9.add(new DropdownEntryInfo(this.optionLabel(var4, var5, var11), var11, this.optionTooltip(var4, var5, var11)));
}
var1.set(var8 + " #Input.Entries", var9);
var1.set(var8 + " #Input.Value", var7);
var2.addEventBinding(CustomUIEventBindingType.ValueChanged, var8 + " #Input", paramEvent(var5, var8 + " #Input.Value"), false);
class="kw">return var3 + 1;
}
@Nonnull
class="kw">private LocalizableString optionLabel(@Nonnull String var1, @Nonnull String var2, @Nonnull String var3) {
for (String var5 : optionLangKeys(var1, var2, var3, "")) {
if (messageExists(var5)) {
class="kw">return LocalizableString.fromMessageId(var5);
}
}
this.logMissingOptionKey(optionLangKeys(var1, var2, var3, "").getFirst());
class="kw">return LocalizableString.fromString(humanizeEnumValue(var3));
}
@Nullable
class="kw">private LocalizableString optionTooltip(@Nonnull String var1, @Nonnull String var2, @Nonnull String var3) {
for (String var5 : optionLangKeys(var1, var2, var3, ".tooltip")) {
if (messageExists(var5)) {
class="kw">return LocalizableString.fromMessageId(var5);
}
}
class="kw">return null;
}
@Nonnull
class="kw">private class="kw">static List<String> optionLangKeys(@Nonnull String var0, @Nonnull String var1, @Nonnull String var2, @Nonnull String var3) {
String var4 = toUpperSnake(var2);
String var5 = var2.toUpperCase(Locale.ROOT);
ArrayList var6 = new ArrayList<>();
appendOptionLangKeys(var6, "server.customUI.triggerVolumeEffectEditor.field." + var0 + "." + var1 + ".option.", var2, var4, var5, var3);
appendOptionLangKeys(var6, "server.customUI.triggerVolumeEffectEditor.field.common." + var1 + ".option.", var2, var4, var5, var3);
class="kw">return var6;
}
class="kw">private class="kw">static void appendOptionLangKeys(
@Nonnull List<String> var0, @Nonnull String var1, @Nonnull String var2, @Nonnull String var3, @Nonnull String var4, @Nonnull String var5
) {
var0.add(var1 + var2 + var5);
if (!var3.equals(var2)) {
var0.add(var1 + var3 + var5);
}
if (!var4.equals(var2) && !var4.equals(var3)) {
var0.add(var1 + var4 + var5);
}
}
class="kw">private class="kw">static boolean messageExists(@Nonnull String var0) {
I18nModule var1 = I18nModule.get();
class="kw">return var1 != null && var1.getMessage("en-US", var0) != null;
}
class="kw">private void logMissingOptionKey(@Nonnull String var1) {
if (this.missingOptionLangKeys.add(var1)) {
LOGGER.at(Level.FINE).log("Missing trigger volume dropdown option label '%s'", var1);
}
}
@Nonnull
class="kw">private class="kw">static String humanizeEnumValue(@Nonnull String var0) {
String var1 = toUpperSnake(var0);
if (var1.startsWith("PERCENT") && var1.length() > "PERCENT".length()) {
var1 = "PERCENT_" + var1.substring("PERCENT".length());
}
String[] var2 = var1.toLowerCase(Locale.ROOT).split("_+", 0);
StringBuilder var3 = new StringBuilder();
for (String var7 : var2) {
if (!var7.isEmpty()) {
if (!var3.isEmpty()) {
var3.append(' ');
}
var3.append(Character.toUpperCase(var7.charAt(0))).append(var7.substring(1));
}
}
class="kw">return var3.isEmpty() ? var0 : var3.toString();
}
@Nonnull
class="kw">private class="kw">static String toUpperSnake(@Nonnull String var0) {
StringBuilder var1 = new StringBuilder();
char var2 = 0;
for (int var3 = 0; var3 < var0.length(); var3++) {
char var4 = var0.charAt(var3);
if (var4 == '_') {
if (!var1.isEmpty() && var1.charAt(var1.length() - 1) != '_') {
var1.append('_');
}
} else {
if (var3 > 0 && Character.isUpperCase(var4) && (Character.isLowerCase(var2) || Character.isDigit(var2))) {
var1.append('_');
}
var1.append(Character.toUpperCase(var4));
}
var2 = var4;
}
class="kw">return var1.toString();
}
class="kw">private int addEffectVec3Row(
@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
@Nonnull String var4,
@Nonnull String var5,
double var6,
double var8,
double var10
) {
String var12 = "#EffectDetailPanel[" + var3 + "]";
var1.append("#EffectDetailPanel", "Pages/TriggerVolume/TriggerVolumeInspectorVec3Row.ui");
var1.set(var12 + " #Label.Text", fieldLabel(var4, var5));
setEffectFieldTooltip(var1, var12, var4, var5);
var1.set(var12 + " #X.Value", var6);
var1.set(var12 + " #Y.Value", var8);
var1.set(var12 + " #Z.Value", var10);
for (String var14 : List.of("X", "Y", "Z")) {
var2.addEventBinding(
CustomUIEventBindingType.ValueChanged,
var12 + " #" + var14,
new EventData()
.append("Action", TriggerVolumeInspectorPage.Action.UpdateParameter.name())
.append("ParamKey", var5)
.append("@VecX", var12 + " #X.Value")
.append("@VecY", var12 + " #Y.Value")
.append("@VecZ", var12 + " #Z.Value"),
false
);
}
class="kw">return var3 + 1;
}
class="kw">private int addRotationXyzRow(
@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
int var3,
@Nonnull String var4,
@Nonnull String var5,
@Nonnull String var6,
@Nonnull String var7
) {
String var8 = "#EffectDetailPanel[" + var3 + "]";
var1.append("#EffectDetailPanel", "Pages/TriggerVolume/TriggerVolumeInspectorRotation3Row.ui");
var1.set(var8 + " #Label.Text", fieldLabel(var4, "Rotation"));
setEffectFieldTooltip(var1, var8, var4, "Rotation");
this.appendRotationAxis(var1, var2, var8, "X", var4, "RotationX", var5);
this.appendRotationAxis(var1, var2, var8, "Y", var4, "RotationY", var6);
this.appendRotationAxis(var1, var2, var8, "Z", var4, "RotationZ", var7);
class="kw">return var3 + 1;
}
class="kw">private void appendRotationAxis(
@Nonnull UICommandBuilder var1,
@Nonnull UIEventBuilder var2,
@Nonnull String var3,
@Nonnull String var4,
@Nonnull String var5,
@Nonnull String var6,
@Nonnull String var7
) {
var1.set(var3 + " #" + var4 + "Label.Text", Message.translation("server.customUI.triggerVolumeEffectEditor.field.common.rotationAxis." + var4));
String var8 = var3 + " #" + var4;
ObjectArrayList var9 = new ObjectArrayList();
for (String var13 : AXIS_ROTATION_CODEC.getEnumKeys()) {
var9.add(new DropdownEntryInfo(this.optionLabel(var5, "Rotation", var13), var13, this.optionTooltip(var5, "Rotation", var13)));
}
var1.set(var8 + ".Entries", var9);
var1.set(var8 + ".Value", var7);
var2.addEventBinding(CustomUIEventBindingType.ValueChanged, var8, paramEvent(var6, var8 + ".Value"), false);
}
@Nonnull
class="kw">private class="kw">static String enumValueOrDefault(@Nonnull BsonDocument var0, @Nonnull String var1) {
class="kw">return var0.get(var1) class="kw">instanceof BsonString var3 ? var3.getValue() : AXIS_ROTATION_CODEC.getEnumKeys()[BlockTypeCondition.AxisRotation.ANY.ordinal()];
}
class="kw">private int addAssetPickerRow(
@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull String var4, @Nonnull String var5, @Nonnull String var6
) {
String var7 = "#EffectDetailPanel[" + var3 + "]";
var1.append("#EffectDetailPanel", "Pages/TriggerVolume/TriggerVolumeInspectorAssetPickerRow.ui");
var1.set(var7 + " #Label.Text", fieldLabel(var4, var5));
setEffectFieldTooltip(var1, var7, var4, var5);
if (var6.isEmpty()) {
var1.set(var7 + " #PickerLabel.Text", Message.translation("server.customUI.triggerVolumeEffectEditor.assetPicker.none"));
} else if (this.isUnsupportedAnimation(var4, var5, var6)) {
var1.set(
var7 + " #PickerLabel.Text",
Message.translation("server.customUI.triggerVolumeEffectEditor.assetPicker.animationUnsupported").param("animation", var6)
);
} else if (this.isLoopingAnimation(var4, var5, var6)) {
var1.set(
var7 + " #PickerLabel.Text", Message.translation("server.customUI.triggerVolumeEffectEditor.assetPicker.animationLooping").param("animation", var6)
);
} else if (isApplyOnField(var4, var5)) {
this.setApplyOnLabel(var1, var7 + " #PickerLabel.Text", var6);
} else {
var1.set(var7 + " #PickerLabel.Text", var6);
}
var2.addEventBinding(
CustomUIEventBindingType.Activating,
var7 + " #PickerButton",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.OpenAssetPicker.name()).append("ParamKey", var5)
);
class="kw">return var3 + 1;
}
class="kw">private boolean isUnsupportedAnimation(@Nonnull String var1, @Nonnull String var2, @Nonnull String var3) {
if ("PlayAnimation".equals(var1) && "Animation".equals(var2)) {
if (this.getSelectedItem() class="kw">instanceof PlayAnimationEffect var4) {
String var6 = var4.getNpcType();
class="kw">return var6.isBlank() ? false : !TriggerVolumesPlugin.get().collectAnimationIdsForApplyOn(var6).contains(var3);
} else {
class="kw">return false;
}
} else {
class="kw">return false;
}
}
class="kw">private boolean isUnsupportedApplyOn(@Nonnull String var1, @Nonnull String var2, @Nonnull String var3) {
if ("PlayAnimation".equals(var1) && "NpcType".equals(var2) && !var3.isBlank()) {
if (this.getSelectedItem() class="kw">instanceof PlayAnimationEffect var4) {
String var6 = var4.getAnimation();
class="kw">return var6 != null && !var6.isBlank() ? !TriggerVolumesPlugin.get().collectApplyOnIdsForAnimation(var6).contains(var3) : false;
} else {
class="kw">return false;
}
} else {
class="kw">return false;
}
}
class="kw">private boolean isLoopingAnimation(@Nonnull String var1, @Nonnull String var2, @Nonnull String var3) {
if ("PlayAnimation".equals(var1) && "Animation".equals(var2)) {
class="kw">return this.getSelectedItem() class="kw">instanceof PlayAnimationEffect var4 ? TriggerVolumesPlugin.get().isLoopingAnimation(var4.getNpcType(), var3) : false;
} else {
class="kw">return false;
}
}
class="kw">private class="kw">static boolean isApplyOnField(@Nonnull String var0, @Nonnull String var1) {
class="kw">return "PlayAnimation".equals(var0) && "NpcType".equals(var1);
}
class="kw">private class="kw">static boolean isApplyOnPseudo(@Nonnull String var0) {
class="kw">return "Player".equals(var0) || "Everyone".equals(var0);
}
class="kw">private void setApplyOnLabel(@Nonnull UICommandBuilder var1, @Nonnull String var2, @Nonnull String var3) {
boolean var4 = isApplyOnPseudo(var3);
String var5 = "server.customUI.triggerVolumeEffectEditor.applyOn." + var3;
if (this.isUnsupportedApplyOn("PlayAnimation", "NpcType", var3)) {
if (var4) {
var1.set(var2, Message.translation(var5 + "Unsupported"));
} else {
var1.set(var2, Message.translation("server.customUI.triggerVolumeEffectEditor.assetPicker.targetUnsupported").param("target", var3));
}
} else if (var4) {
var1.set(var2, Message.translation(var5));
} else {
var1.set(var2, var3);
}
}
class="kw">private int addPastePrefabPreviewButtonRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3) {
String var4 = "#EffectDetailPanel[" + var3 + "]";
var1.append("#EffectDetailPanel", "Common/TextButton.ui");
Message var5 = this.isPreviewingSelectedEffect()
? Message.translation("server.customUI.triggerVolumeEffectEditor.pastePrefab.preview.hide")
: Message.translation("server.customUI.triggerVolumeEffectEditor.pastePrefab.preview.show");
var1.set(var4 + " #Button.Text", var5);
var1.set(var4 + " #Button.TooltipText", Message.translation("server.customUI.triggerVolumeEffectEditor.pastePrefab.preview.tooltip"));
var2.addEventBinding(
CustomUIEventBindingType.Activating, var4 + " #Button", new EventData().append("Action", TriggerVolumeInspectorPage.Action.TogglePrefabPreview.name())
);
class="kw">return var3 + 1;
}
class="kw">private void onSelectEffect(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
try {
TriggerVolumeInspectorPage.EffectListKind var2 = var1.effectListKind != null
? TriggerVolumeInspectorPage.EffectListKind.valueOf(var1.effectListKind)
: TriggerVolumeInspectorPage.EffectListKind.EFFECT;
int var3 = Integer.parseInt(var1.effectIndex);
this.selectedKind = var2;
this.selectedEffectIndex = var3;
this.lastCommittedEntry = this.entryOf(this.getSelectedItem());
this.syncAddControlsToSelectedEffect();
this.rebuildAll();
} catch (IllegalArgumentException var4) {
}
}
class="kw">private void syncAddControlsToSelectedEffect() {
if (this.selectedEffectIndex >= 0 && this.selectedEffectIndex < this.getItemCount(this.selectedKind)) {
if (this.selectedKind == TriggerVolumeInspectorPage.EffectListKind.RULE) {
this.enterRuleAddMode();
} else {
TriggerEventType var1;
int var2;
if (this.selectedKind == TriggerVolumeInspectorPage.EffectListKind.CONDITION) {
TriggerCondition var3 = this.currentConditions().get(this.selectedEffectIndex);
var1 = var3.getEventType();
var2 = var3.getEntry();
} else {
TriggerEffect var4 = this.currentEffects(this.selectedKind).get(this.selectedEffectIndex);
var1 = var4.getEventType();
var2 = var4.getEntry();
}
this.addTargetKind = this.selectedKind;
this.addEventType = var1;
this.addEntry = var2;
}
}
}
class="kw">private void onAddEffect(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.effectType != null && !var1.effectType.isBlank()) {
TriggerVolumeInspectorPage.EffectListKind var2 = var1.addTargetKind != null
? parseEffectListKind(var1.addTargetKind, TriggerVolumeInspectorPage.EffectListKind.EFFECT)
: this.addTargetKind;
if (var2 == TriggerVolumeInspectorPage.EffectListKind.RULE) {
this.enterRuleAddMode();
BuilderCodec var7 = getRuleBuilderCodecFor(var1.effectType);
if (var7 == null) {
this.playerRef.sendMessage(Message.translation("server.customUI.triggerVolumeEffectEditor.unknownType"));
} else {
TriggerRule var8 = var7.getSupplier().get();
materializeRuleDefaults(var7, var8);
this.currentRules().add(var8);
this.markSelectedDraftDirty();
this.selectedKind = TriggerVolumeInspectorPage.EffectListKind.RULE;
this.selectedEffectIndex = this.currentRules().size() - 1;
this.volumeRulesCollapsed = false;
this.rebuildAll();
}
} else {
this.addTargetKind = var2;
TriggerEventType var3 = var1.addEventType != null ? parseTriggerEventType(var1.addEventType, this.addEventType) : this.addEventType;
this.addEventType = var3;
int var4 = this.resolveAddEntry(var1.addEntry, var3);
this.addEntry = var4;
if (var2 == TriggerVolumeInspectorPage.EffectListKind.CONDITION) {
BuilderCodec var9 = getConditionBuilderCodecFor(var1.effectType);
if (var9 == null) {
this.playerRef.sendMessage(Message.translation("server.customUI.triggerVolumeEffectEditor.unknownType"));
} else {
TriggerCondition var10 = var9.getSupplier().get();
var10.setEventType(var3);
var10.setEntry(var4);
materializeConditionDefaults(var9, var10);
this.currentConditions().add(var10);
this.markSelectedDraftDirty();
this.selectedKind = TriggerVolumeInspectorPage.EffectListKind.CONDITION;
this.selectedEffectIndex = this.currentConditions().size() - 1;
this.setEventCategoryExpanded(TriggerVolumeInspectorPage.EventCategoryScope.VOLUME, var3, var4);
this.rebuildAll();
}
} else {
BuilderCodec var5 = getBuilderCodecFor(var1.effectType);
if (var5 == null) {
this.playerRef.sendMessage(Message.translation("server.customUI.triggerVolumeEffectEditor.unknownType"));
} else {
TriggerEffect var6 = var5.getSupplier().get();
var6.setEventType(var3);
var6.setEntry(var4);
materializeDefaults(var5, var6);
this.currentEffects(var2).add(var6);
this.markSelectedDraftDirty();
this.selectedKind = var2;
this.selectedEffectIndex = this.currentEffects(var2).size() - 1;
this.setEventCategoryExpanded(TriggerVolumeInspectorPage.EventCategoryScope.VOLUME, var3, var4);
this.rebuildAll();
}
}
}
}
}
class="kw">private int resolveAddEntry(@Nullable String var1, @Nonnull TriggerEventType var2) {
if ("NEW".equals(var1)) {
class="kw">return this.maxEntryForEvent(var2) + 1;
} else {
class="kw">return var1 != null && !var1.isBlank() ? parseEntry(var1) : this.addEntry;
}
}
class="kw">private int maxEntryForEvent(@Nonnull TriggerEventType var1) {
int var2 = 0;
for (int var6 : this.getEventEntries(TriggerVolumeInspectorPage.EventCategoryScope.VOLUME, null, var1)) {
var2 = Math.max(var2, var6);
}
class="kw">return var2;
}
class="kw">private void onRemoveEffect() {
if (this.selectedEffectIndex >= 0 && this.selectedEffectIndex < this.getItemCount(this.selectedKind)) {
if (this.isPreviewingSelectedEffect()) {
this.hidePastePrefabPreview();
}
class="kw">switch (this.selectedKind) {
case CONDITION:
this.currentConditions().remove(this.selectedEffectIndex);
break;
case EFFECT:
case REJECTION_EFFECT:
this.currentEffects(this.selectedKind).remove(this.selectedEffectIndex);
break;
case RULE:
this.currentRules().remove(this.selectedEffectIndex);
}
this.markSelectedDraftDirty();
if (this.selectedEffectIndex >= this.getItemCount(this.selectedKind)) {
this.selectedEffectIndex = this.getItemCount(this.selectedKind) - 1;
}
this.rebuildAll();
}
}
class="kw">private void onDuplicateEffect() {
if (this.selectedEffectIndex >= 0 && this.selectedEffectIndex < this.getItemCount(this.selectedKind)) {
this.hidePastePrefabPreview();
if (this.selectedKind == TriggerVolumeInspectorPage.EffectListKind.CONDITION) {
List var1 = this.currentConditions();
var1.add(this.selectedEffectIndex + 1, TriggerCondition.deepCopy(var1.get(this.selectedEffectIndex)));
} else if (this.selectedKind == TriggerVolumeInspectorPage.EffectListKind.RULE) {
List var2 = this.currentRules();
var2.add(this.selectedEffectIndex + 1, TriggerRule.deepCopy(var2.get(this.selectedEffectIndex)));
} else {
List var3 = this.currentEffects(this.selectedKind);
var3.add(this.selectedEffectIndex + 1, TriggerEffect.deepCopy(var3.get(this.selectedEffectIndex)));
}
this.markSelectedDraftDirty();
this.selectedEffectIndex++;
this.rebuildAll();
}
}
class="kw">private void onMoveEffect(int var1) {
if (this.selectedEffectIndex >= 0 && this.selectedEffectIndex < this.getItemCount(this.selectedKind)) {
this.hidePastePrefabPreview();
int var2 = this.selectedEffectIndex + var1;
if (var2 >= 0 && var2 < this.getItemCount(this.selectedKind)) {
class="kw">switch (this.selectedKind) {
case CONDITION:
Collections.swap(this.currentConditions(), this.selectedEffectIndex, var2);
break;
case EFFECT:
case REJECTION_EFFECT:
Collections.swap(this.currentEffects(this.selectedKind), this.selectedEffectIndex, var2);
break;
case RULE:
Collections.swap(this.currentRules(), this.selectedEffectIndex, var2);
}
this.markSelectedDraftDirty();
this.selectedEffectIndex = var2;
this.rebuildAll();
}
}
}
class="kw">private void onUpdateAddTarget(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.addTargetKind != null) {
TriggerVolumeInspectorPage.EffectListKind var2 = parseEffectListKind(var1.addTargetKind, TriggerVolumeInspectorPage.EffectListKind.EFFECT);
if (var2 == TriggerVolumeInspectorPage.EffectListKind.RULE) {
this.enterRuleAddMode();
} else {
this.addTargetKind = var2;
}
this.rebuildAll();
}
}
class="kw">private void onUpdateAddEffectType(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.effectType != null && !var1.effectType.isBlank()) {
this.addEffectType = var1.effectType;
}
}
class="kw">private void onUpdateAddEventType(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.addEventType != null) {
if ("ALWAYS_ACTIVE".equals(var1.addEventType)) {
this.enterRuleAddMode();
this.rebuildAll();
} else {
this.leaveRuleAddMode();
this.addEventType = parseTriggerEventType(var1.addEventType, this.addEventType);
this.addEntry = 0;
this.rebuildAll();
}
}
}
class="kw">private void onUpdateAddEntry(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
this.addEntry = this.resolveAddEntry(var1.addEntry, this.addEventType);
this.rebuildAll();
}
class="kw">private void onToggleEventCategory(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.eventType != null && var1.eventCategoryScope != null) {
try {
TriggerEventType var2 = TriggerEventType.valueOf(var1.eventType);
TriggerVolumeInspectorPage.EventCategoryScope var3 = TriggerVolumeInspectorPage.EventCategoryScope.valueOf(var1.eventCategoryScope);
int var4 = parseEntry(var1.eventEntry);
this.toggleEventCategory(var3, var2, var4);
this.rebuildAll();
} catch (IllegalArgumentException var5) {
}
}
}
class="kw">private class="kw">static int parseEntry(@Nullable String var0) {
if (var0 != null && !var0.isBlank()) {
try {
class="kw">return Math.max(0, Integer.parseInt(var0.trim()));
} catch (NumberFormatException var2) {
class="kw">return 0;
}
} else {
class="kw">return 0;
}
}
class="kw">private void onUpdateParameter(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
Object var2 = this.getSelectedItem();
if (var2 != null && var1.paramKey != null) {
String var3 = var1.paramKey;
if (var2 class="kw">instanceof TriggerRule var11) {
if ("Enabled".equals(var3)) {
if (var1.paramBool != null) {
var11.setEnabled(var1.paramBool);
this.markSelectedDraftDirty();
this.rebuildAll();
}
} else {
BuilderCodec var16 = getRuleBuilderCodecFor(getRuleTypeId(var11));
if (var16 != null) {
this.applyCodecField(var16, var11, var3, var1);
this.markSelectedDraftDirty();
if (var11 class="kw">instanceof AbstractDenyRule && "Target".equals(var3)) {
this.rebuildAll();
}
}
}
} else if ("Event".equals(var3)) {
try {
TriggerEventType var10 = TriggerEventType.valueOf(var1.paramValue);
int var15 = var2 class="kw">instanceof TriggerCondition var19 ? var19.getEntry() : ((TriggerEffect)var2).getEntry();
if (var2 class="kw">instanceof TriggerCondition var20) {
var20.setEventType(var10);
} else {
((TriggerEffect)var2).setEventType(var10);
}
this.markSelectedDraftDirty();
this.setEventCategoryExpanded(TriggerVolumeInspectorPage.EventCategoryScope.VOLUME, var10, var15);
} catch (IllegalArgumentException var7) {
}
this.rebuildAll();
} else if ("Entry".equals(var3)) {
if (var1.paramNumericValue != null) {
int var9 = Math.max(0, var1.paramNumericValue.intValue() - 1);
TriggerEventType var14 = var2 class="kw">instanceof TriggerCondition var17 ? var17.getEventType() : ((TriggerEffect)var2).getEventType();
if (var2 class="kw">instanceof TriggerCondition var18) {
var18.setEntry(var9);
} else {
((TriggerEffect)var2).setEntry(var9);
}
this.markSelectedDraftDirty();
this.setEventCategoryExpanded(TriggerVolumeInspectorPage.EventCategoryScope.VOLUME, normalizeEventType(var14), var9);
}
} else if (var2 class="kw">instanceof TriggerCondition var8) {
String var13 = getConditionTypeId(var8);
BuilderCodec var6 = getConditionBuilderCodecFor(var13);
if (var6 != null) {
this.applyCodecField(var6, var8, var3, var1);
this.markSelectedDraftDirty();
if ("Source".equals(var3) && "TagCondition".equals(var13)) {
this.rebuildAll();
}
}
} else {
TriggerEffect var4 = (TriggerEffect)var2;
if ("Interval".equals(var3)) {
if (var1.paramNumericValue != null) {
var4.setInterval(var1.paramNumericValue.floatValue());
this.markSelectedDraftDirty();
}
} else if ("Delay".equals(var3)) {
if (var1.paramNumericValue != null) {
var4.setDelay(var1.paramNumericValue.floatValue());
this.markSelectedDraftDirty();
}
} else if (var4 class="kw">instanceof ModifyRulesEffect var12) {
this.applyModifyRulesParameter(var12, var3, var1);
} else {
BuilderCodec var5 = getBuilderCodecFor(getTypeId(var4));
if (var5 != null) {
this.applyCodecField(var5, var4, var3, var1);
this.markSelectedDraftDirty();
if (var4 class="kw">instanceof RemoveEntitiesEffect && "Mode".equals(var3)) {
this.rebuildAll();
class="kw">return;
}
}
if (var4 class="kw">instanceof PastePrefabEffect && this.isPreviewingSelectedEffect()) {
if ("Position".equals(var3) || "Origin".equals(var3)) {
this.refreshActivePastePrefabPreviewPosition();
} else if ("Prefab".equals(var3) || "PrefabList".equals(var3)) {
this.refreshActivePastePrefabPreview();
}
}
}
}
}
}
class="kw">private void applyModifyRulesParameter(@Nonnull ModifyRulesEffect var1, @Nonnull String var2, @Nonnull TriggerVolumeInspectorPage.PageData var3) {
if ("RuleType".equals(var2)) {
this.applyRuleTypeChange(var1, var3.paramValue);
this.markSelectedDraftDirty();
this.rebuildAll();
} else if ("RuleField".equals(var2)) {
BuilderCodec var7 = getBuilderCodecFor(getTypeId(var1));
if (var7 != null) {
this.applyCodecField(var7, var1, "FieldKey", var3);
this.markSelectedDraftDirty();
}
this.rebuildAll();
} else {
BuilderCodec var4 = getBuilderCodecFor(getTypeId(var1));
if (var4 != null && var4.getEntries().containsKey(var2)) {
this.applyCodecField(var4, var1, var2, var3);
this.markSelectedDraftDirty();
if ("Operation".equals(var2)) {
this.rebuildAll();
}
} else {
TriggerRule var5 = var1.getRule();
if (var5 != null) {
BuilderCodec var6 = getRuleBuilderCodecFor(getRuleTypeId(var5));
if (var6 != null) {
this.applyCodecField(var6, var5, var2, var3);
this.markSelectedDraftDirty();
}
}
}
}
}
class="kw">private void applyRuleTypeChange(@Nonnull ModifyRulesEffect var1, @Nullable String var2) {
if (var2 != null && !var2.isBlank()) {
TriggerRule var3 = var1.getRule();
if (var3 == null || !var2.equals(getRuleTypeId(var3))) {
BuilderCodec var4 = getRuleBuilderCodecFor(var2);
if (var4 != null) {
TriggerRule var5 = var4.getSupplier().get();
materializeRuleDefaults(var4, var5);
var1.setRule(var5);
}
}
} else {
var1.setRule(null);
}
}
class="kw">private void onCommitEntry() {
Object var1 = this.getSelectedItem();
if (var1 != null) {
int var2 = this.entryOf(var1);
if (var2 >= 0 && var2 != this.lastCommittedEntry) {
this.lastCommittedEntry = var2;
this.rebuildEffectListOnly();
}
}
}
class="kw">private int entryOf(@Nullable Object var1) {
if (var1 class="kw">instanceof TriggerCondition var3) {
class="kw">return var3.getEntry();
} else {
class="kw">return var1 class="kw">instanceof TriggerEffect var2 ? var2.getEntry() : -1;
}
}
class="kw">private void onTogglePrefabPreview() {
if (this.isPreviewingSelectedEffect()) {
this.hidePastePrefabPreview();
this.rebuildAll();
} else {
if (this.getActivePastePrefabPreviewState() != null) {
this.hidePastePrefabPreview();
}
if (this.getSelectedItem() class="kw">instanceof PastePrefabEffect var2) {
Vector3d var3 = this.getPastePrefabPreviewPosition(var2);
if (var3 == null) {
this.playerRef.sendMessage(Message.translation("server.customUI.triggerVolumeEffectEditor.pastePrefab.preview.noPrefab"));
} else if (this.sendPastePrefabPreview(var2, true)) {
TriggerVolumesPlugin.get()
.setPastePrefabPreviewState(
this.playerRef.getUuid(),
new TriggerVolumesPlugin.PastePrefabPreviewState(
this.selectedWorld, this.selectedId, this.selectedIsGroup, this.selectedKind.name(), this.selectedEffectIndex, var3
)
);
this.rebuildAll();
}
}
}
}
class="kw">private boolean sendPastePrefabPreview(@Nonnull PastePrefabEffect var1, boolean var2) {
Vector3d var3 = this.getPastePrefabPreviewPosition(var1);
class="kw">return var3 == null ? false : this.sendPastePrefabPreview(var1, var3, var2);
}
class="kw">private boolean sendPastePrefabPreview(@Nonnull PastePrefabEffect var1, @Nonnull Vector3d var2, boolean var3) {
ShowTriggerVolumePastePrefabPreview var4 = new ShowTriggerVolumePastePrefabPreview();
var4.position = new Vector3f((float)var2.x(), (float)var2.y(), (float)var2.z());
if (var3) {
Path var5 = this.resolvePastePrefabPath(var1);
if (var5 == null) {
this.playerRef.sendMessage(Message.translation("server.customUI.triggerVolumeEffectEditor.pastePrefab.preview.noPrefab"));
class="kw">return false;
}
BlockSelection var6;
try {
var6 = PrefabStore.get().getPrefab(var5);
} catch (Exception var8) {
((HytaleLogger.Api)LOGGER.at(Level.WARNING).withCause(var8)).log("Failed to load PastePrefab preview '%s'", var5);
this.playerRef.sendMessage(Message.translation("server.customUI.triggerVolumeEffectEditor.pastePrefab.preview.loadFailed"));
class="kw">return false;
}
if (var6 == null) {
this.playerRef.sendMessage(Message.translation("server.customUI.triggerVolumeEffectEditor.pastePrefab.preview.loadFailed"));
class="kw">return false;
}
this.fillPreviewPacket(var4, var6);
}
this.playerRef.getPacketHandler().write(var4);
TriggerVolumesPlugin.PastePrefabPreviewState var9 = this.getActivePastePrefabPreviewState();
if (var9 != null) {
var9.setLastSentPosition(var2);
}
class="kw">return true;
}
class="kw">private void fillPreviewPacket(@Nonnull ShowTriggerVolumePastePrefabPreview var1, @Nonnull BlockSelection var2) {
EditorBlocksChange var3 = var2.toPacket();
var1.blocksChange = var3.blocksChange;
var1.fluidsChange = var3.fluidsChange;
var1.entityChanges = var3.entityChanges;
this.applyTintFromPlayerPosition(var1);
}
class="kw">private void applyTintFromPlayerPosition(@Nonnull ShowTriggerVolumePastePrefabPreview var1) {
Ref var2 = this.playerRef.getReference();
if (var2 == null) {
var1.biomeTint = DEFAULT_BIOME_TINT;
var1.waterTint = DEFAULT_WATER_TINT;
} else {
Store var3 = var2.getStore();
World var4 = var3.getExternalData().getWorld();
if (var4 == null) {
var1.biomeTint = DEFAULT_BIOME_TINT;
var1.waterTint = DEFAULT_WATER_TINT;
} else {
Vector3d var5 = this.playerRef.getTransform().getPosition();
int var6 = MathUtil.floor(var5.x);
int var7 = MathUtil.floor(var5.y);
int var8 = MathUtil.floor(var5.z);
long var9 = ChunkUtil.indexChunkFromBlock(var6, var8);
WorldChunk var11 = var4.getNonTickingChunk(var9);
if (var11 != null && var11.getBlockChunk() != null) {
BlockChunk var12 = var11.getBlockChunk();
var1.biomeTint = var12.getTint(var6, var8);
int var13 = var12.getEnvironment(var6, var7, var8);
Environment var14 = Environment.getAssetMap().getAsset(var13);
if (var14 != null) {
Color var15 = var14.getWaterTint();
if (var15 != null) {
var1.waterTint = (var15.red & 255) << 16 | (var15.green & 255) << 8 | var15.blue & 255;
class="kw">return;
}
}
var1.waterTint = DEFAULT_WATER_TINT;
} else {
var1.biomeTint = DEFAULT_BIOME_TINT;
var1.waterTint = DEFAULT_WATER_TINT;
}
}
}
}
@Nullable
class="kw">private Path resolvePastePrefabPath(@Nonnull PastePrefabEffect var1) {
String var2 = var1.getPrefabRelPath();
if (var2 != null && !var2.isBlank()) {
class="kw">return PastePrefabEffect.resolveDirectPrefabPath(var2.trim());
} else {
String var3 = var1.getPrefabListId();
if (var3 != null && !var3.isBlank()) {
PrefabListAsset var4 = PrefabListAsset.getAssetMap().getAsset(var3);
class="kw">return var4 != null ? var4.getRandomPrefab() : null;
} else {
class="kw">return null;
}
}
}
@Nullable
class="kw">private Vector3d getPastePrefabPreviewPosition(@Nonnull PastePrefabEffect var1) {
Vector3d var2 = this.getCurrentPreviewOrigin();
class="kw">return var2 == null ? null : this.getPastePrefabPreviewPosition(var1, var2);
}
@Nonnull
class="kw">private Vector3d getPastePrefabPreviewPosition(@Nonnull PastePrefabEffect var1, @Nonnull Vector3d var2) {
Vector3d var3 = var1.getPosition();
Vector3d var4 = class="kw">switch (var1.getOrigin()) {
case WORLD_ABSOLUTE -> var3 != null ? new Vector3d(var3) : new Vector3d();
class="kw">default -> {
Vector3d var5 = new Vector3d(var2);
if (var3 != null) {
var5.add(var3);
}
yield var5;
}
};
class="kw">return new Vector3d(Math.floor(var4.x()), Math.floor(var4.y()), Math.floor(var4.z()));
}
@Nullable
class="kw">private Vector3d getCurrentPreviewOrigin() {
if (this.selectedIsGroup) {
TriggerVolumeInspectorDrafts.GroupDraft var2 = this.selectedGroupDraft();
class="kw">return var2 != null ? var2.origin : null;
} else {
TriggerVolumeInspectorDrafts.VolumeDraft var1 = this.selectedVolumeDraft();
class="kw">return var1 != null ? var1.position : null;
}
}
@Nullable
class="kw">private Vector3d getPreviewOriginForState(@Nonnull TriggerVolumesPlugin.PastePrefabPreviewState var1) {
String var2 = var1.selectedId();
if (var2 == null) {
class="kw">return null;
} else {
TriggerVolumeManager var3 = getManagerForWorld(var1.worldName());
if (var3 == null) {
class="kw">return null;
} else if (var1.selectedIsGroup()) {
GroupEntry var5 = var3.getGroup(var2);
class="kw">return var5 == null ? null : this.draftForGroup(var5).origin;
} else {
VolumeEntry var4 = var3.getVolume(var2);
class="kw">return var4 == null ? null : this.draftForVolume(var4).position;
}
}
}
@Nullable
class="kw">private PastePrefabEffect getPastePrefabEffectForState(@Nonnull TriggerVolumesPlugin.PastePrefabPreviewState var1) {
String var2 = var1.selectedId();
if (var2 == null) {
class="kw">return null;
}
TriggerVolumeInspectorPage.EffectListKind var3;
try {
var3 = TriggerVolumeInspectorPage.EffectListKind.valueOf(var1.effectListKind());
} catch (IllegalArgumentException var9) {
class="kw">return null;
}
if (var3 != TriggerVolumeInspectorPage.EffectListKind.CONDITION && var3 != TriggerVolumeInspectorPage.EffectListKind.RULE) {
TriggerVolumeManager var4 = getManagerForWorld(var1.worldName());
if (var4 == null) {
class="kw">return null;
}
List var5;
if (var1.selectedIsGroup()) {
GroupEntry var6 = var4.getGroup(var2);
if (var6 == null) {
class="kw">return null;
}
TriggerVolumeInspectorDrafts.GroupDraft var7 = this.draftForGroup(var6);
var5 = var3 == TriggerVolumeInspectorPage.EffectListKind.REJECTION_EFFECT ? var7.rejectionEffects : var7.effects;
} else {
VolumeEntry var10 = var4.getVolume(var2);
if (var10 == null) {
class="kw">return null;
}
TriggerVolumeInspectorDrafts.VolumeDraft var12 = this.draftForVolume(var10);
var5 = var3 == TriggerVolumeInspectorPage.EffectListKind.REJECTION_EFFECT ? var12.rejectionEffects : var12.effects;
}
int var11 = var1.effectIndex();
if (var11 >= 0 && var11 < var5.size()) {
TriggerEffect var13 = var5.get(var11);
class="kw">return var13 class="kw">instanceof PastePrefabEffect var8 ? var8 : null;
} else {
class="kw">return null;
}
} else {
class="kw">return null;
}
}
class="kw">private void refreshActivePastePrefabPreviewPosition() {
TriggerVolumesPlugin.PastePrefabPreviewState var1 = this.getActivePastePrefabPreviewState();
if (var1 != null && var1.worldName().equals(this.selectedWorld)) {
PastePrefabEffect var2 = this.getPastePrefabEffectForState(var1);
if (var2 == null) {
this.hidePastePrefabPreview();
} else {
Vector3d var3 = this.getPreviewOriginForState(var1);
if (var3 == null) {
this.hidePastePrefabPreview();
} else {
Vector3d var4 = this.getPastePrefabPreviewPosition(var2, var3);
if (var4 == null) {
this.hidePastePrefabPreview();
} else {
Vector3d var5 = var1.lastSentPosition();
if (var5 == null || !var5.equals(var4)) {
this.sendPastePrefabPreview(var2, var4, false);
}
}
}
}
}
}
class="kw">private void refreshActivePastePrefabPreview() {
if (this.getActivePastePrefabPreviewState() != null && this.isPreviewingSelectedEffect()) {
if (!(this.getSelectedItem() class="kw">instanceof PastePrefabEffect var2 && this.sendPastePrefabPreview(var2, true))) {
this.hidePastePrefabPreview();
}
}
}
class="kw">private class="kw">static boolean isPastePrefabPreviewAssetField(@Nullable String var0) {
class="kw">return "Prefab".equals(var0) || "PrefabList".equals(var0);
}
class="kw">private void hidePastePrefabPreview() {
if (this.getActivePastePrefabPreviewState() != null) {
this.playerRef.getPacketHandler().write(new HideTriggerVolumePastePrefabPreview());
}
TriggerVolumesPlugin.get().clearPastePrefabPreviewState(this.playerRef.getUuid());
}
class="kw">private void clearPastePrefabPreviewIfFromDifferentWorld() {
TriggerVolumesPlugin.PastePrefabPreviewState var1 = this.getActivePastePrefabPreviewState();
if (var1 != null && !var1.worldName().equals(this.selectedWorld)) {
this.hidePastePrefabPreview();
}
}
class="kw">private boolean isPreviewingSelectedEffect() {
TriggerVolumesPlugin.PastePrefabPreviewState var1 = this.getActivePastePrefabPreviewState();
class="kw">return var1 != null && var1.matches(this.selectedWorld, this.selectedId, this.selectedIsGroup, this.selectedKind.name(), this.selectedEffectIndex);
}
@Nullable
class="kw">private TriggerVolumesPlugin.PastePrefabPreviewState getActivePastePrefabPreviewState() {
class="kw">return TriggerVolumesPlugin.get().getPastePrefabPreviewState(this.playerRef.getUuid());
}
class="kw">private <T> void applyCodecField(@Nonnull BuilderCodec<T> var1, @Nonnull T var2, @Nonnull String var3, @Nonnull TriggerVolumeInspectorPage.PageData var4) {
List var5 = var1.getEntries().get(var3);
if (var5 != null && !var5.isEmpty()) {
BuilderField var6 = var5.getLast();
Codec var7 = var6.getCodec().getChildCodec();
ExtraInfo var8 = ExtraInfo.THREAD_LOCAL.get();
if (var4.vecX != null && var4.vecY != null && var4.vecZ != null) {
BsonDocument var16 = new BsonDocument();
var16.put("X", new BsonDouble(var4.vecX));
var16.put("Y", new BsonDouble(var4.vecY));
var16.put("Z", new BsonDouble(var4.vecZ));
BsonDocument var17 = new BsonDocument();
var17.put(var3, var16);
var6.decode(var17, var2, var8);
} else if (var4.paramBool != null && var7 == Codec.BOOLEAN) {
BsonDocument var15 = new BsonDocument();
var15.put(var3, new BsonBoolean(var4.paramBool));
var6.decode(var15, var2, var8);
} else if (var4.paramNumericValue != null) {
double var14 = isNonNegativeNumericField(getCodecTypeId(var2), var3) ? Math.max(0.0, var4.paramNumericValue) : var4.paramNumericValue;
Object var11;
if (var7 == Codec.FLOAT || var7 == Codec.DOUBLE) {
var11 = new BsonDouble(var14);
} else if (var7 == Codec.INTEGER) {
var11 = new BsonInt32((int)var14);
} else if (var7 == Codec.LONG) {
var11 = new BsonInt64((long)var14);
} else if (var7 == Codec.BOOLEAN) {
var11 = new BsonBoolean(var14 != 0.0);
} else {
var11 = new BsonDouble(var14);
}
BsonDocument var12 = new BsonDocument();
var12.put(var3, var11);
var6.decode(var12, var2, var8);
} else {
try {
BsonValue var9 = stringToBsonValue(var7, var4.paramValue);
if (var9 != null) {
BsonDocument var10 = new BsonDocument();
var10.put(var3, var9);
var6.decode(var10, var2, var8);
}
} catch (Exception var13) {
((HytaleLogger.Api)LOGGER.at(Level.WARNING).withCause(var13)).log("Failed to parse value '%s' for field '%s'", var4.paramValue, var3);
}
}
}
}
class="kw">private void onOpenPresetSave() {
this.presetSaveName = "";
UICommandBuilder var1 = new UICommandBuilder();
var1.set("#MainPage.Visible", false);
var1.set("#PresetSavePage.Visible", true);
var1.set("#PresetName #Input.Value", "");
var1.set("#IncludeVolumeSettings #Input.Value", false);
var1.set("#IncludeVolumeSettings.Visible", !this.selectedIsGroup);
if (this.presetPackBrowser.hasSelectedPack()) {
var1.set("#PresetSavePage #SelectedPackLabel.Text", this.presetPackBrowser.getSelectedPackDisplayName());
}
this.setSavePresetButtonState(var1);
this.sendUpdate(var1);
}
class="kw">private void onPresetNameChanged(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
this.presetSaveName = var1.presetName != null ? var1.presetName : "";
UICommandBuilder var2 = new UICommandBuilder();
this.setSavePresetButtonState(var2);
this.sendUpdate(var2);
}
class="kw">private void setSavePresetButtonState(@Nonnull UICommandBuilder var1) {
var1.set("#ConfirmSavePresetButton.Disabled", this.presetSaveName.isBlank() || !this.presetPackBrowser.hasSelectedPack());
}
class="kw">private void restorePresetSavePage() {
UICommandBuilder var1 = new UICommandBuilder();
var1.set("#PresetSavePage.Visible", true);
this.setSavePresetButtonState(var1);
this.sendUpdate(var1);
}
class="kw">private void onConfirmSavePreset(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.presetName != null && !var1.presetName.isBlank()) {
String var2 = var1.presetName.trim();
if (!var2.contains("..") && !var2.contains("/") && !var2.contains("\\")) {
AssetPack var3 = this.presetPackBrowser.getSelectedPack();
if (var3 == null) {
this.playerRef.sendMessage(Message.translation("server.customUI.assetPackBrowser.packRequired"));
this.restorePresetSavePage();
} else {
AssetStore var4 = AssetRegistry.getAssetStore(TriggerEffectAsset.class);
if (var4 != null) {
TriggerEffectAsset.VolumeSettings var5 = Boolean.TRUE.equals(var1.includeVolumeSettings) && !this.selectedIsGroup
? volumeSettingsFrom(this.selectedVolumeDraft())
: null;
TriggerEffectAsset var6 = TriggerEffectAsset.create(
var2,
this.currentConditions().toArray(TriggerCondition[]::new),
this.currentEffects(TriggerVolumeInspectorPage.EffectListKind.EFFECT).toArray(TriggerEffect[]::new),
this.currentEffects(TriggerVolumeInspectorPage.EffectListKind.REJECTION_EFFECT).toArray(TriggerEffect[]::new),
this.currentRules().toArray(TriggerRule[]::new),
this.currentConditionTiming(),
var5
);
Path var7 = var3.getRoot().resolve("Server").resolve("TriggerVolumes").resolve("Effects");
UICommandBuilder var8 = new UICommandBuilder();
var8.set("#PresetSavePage.Visible", false);
var8.set("#MainPage.Visible", true);
this.sendUpdate(var8);
HytaleServer.SCHEDULED_EXECUTOR
.execute(
() -> {
try {
Files.createDirectories(var7);
var4.writeAssetToDisk(var3, Map.of(Path.of(var2 + ".json"), var6), SingleplayerModule.isOwner(this.playerRef));
this.playerRef.sendMessage(Message.translation("server.customUI.triggerVolumeEffectEditor.presetSaved").param("name", var2));
} catch (Exception var7) {
((HytaleLogger.Api)LOGGER.at(Level.SEVERE).withCause(var7)).log("Failed to save effect preset '%s'", var2);
this.playerRef
.sendMessage(
Message.translation("server.customUI.triggerVolumeEffectEditor.presetSaveError").param("error", var7.getMessage())
);
}
}
);
}
}
} else {
this.playerRef.sendMessage(Message.translation("server.customUI.triggerVolumeEffectEditor.presetInvalidName"));
this.restorePresetSavePage();
}
} else {
this.restorePresetSavePage();
}
}
@Nonnull
class="kw">private class="kw">static TriggerEffectAsset.VolumeSettings volumeSettingsFrom(@Nonnull TriggerVolumeInspectorDrafts.VolumeDraft var0) {
class="kw">return new TriggerEffectAsset.VolumeSettings(
Set.copyOf(var0.targetTypes),
TriggerVolumeInspectorDrafts.copyTags(var0.tags),
var0.rejectionDelayMode,
var0.cooldown,
var0.cooldownMode,
var0.activationDelay,
var0.projectileSource,
var0.keepLoaded,
var0.rotateEffectsOnPaste,
var0.cancelDelayedOnExit
);
}
class="kw">private void onCancelPresetSave() {
UICommandBuilder var1 = new UICommandBuilder();
var1.set("#PresetSavePage.Visible", false);
var1.set("#MainPage.Visible", true);
this.sendUpdate(var1);
}
class="kw">private void onOpenPresetLoad() {
UICommandBuilder var1 = new UICommandBuilder();
UIEventBuilder var2 = new UIEventBuilder();
var1.set("#MainPage.Visible", false);
var1.set("#PresetLoadPage.Visible", true);
var1.clear("#PresetList");
AssetStore var3 = AssetRegistry.getAssetStore(TriggerEffectAsset.class);
if (var3 != null) {
int var4 = 0;
for (String var6 : ((DefaultAssetMap)var3.getAssetMap()).getAssetMap().keySet()) {
String var7 = "#PresetList[" + var4 + "]";
var1.append("#PresetList", "Common/TextButton.ui");
var1.set(var7 + " #Button.Text", var6);
var2.addEventBinding(
CustomUIEventBindingType.Activating,
var7 + " #Button",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.LoadPreset.name()).append("PresetId", var6)
);
var4++;
}
}
this.sendUpdate(var1, var2, false);
}
class="kw">private void onLoadPreset(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.presetId != null && !var1.presetId.isBlank()) {
this.hidePastePrefabPreview();
AssetStore var2 = AssetRegistry.getAssetStore(TriggerEffectAsset.class);
if (var2 != null) {
TriggerEffectAsset var3 = (TriggerEffectAsset)((DefaultAssetMap)var2.getAssetMap()).getAsset(var1.presetId);
if (var3 == null) {
this.playerRef.sendMessage(Message.translation("server.customUI.triggerVolumeEffectEditor.presetNotFound").param("name", var1.presetId));
} else {
this.currentConditions().clear();
this.currentConditions().addAll(TriggerCondition.deepCopyList(Arrays.asList(var3.getConditions())));
this.currentEffects(TriggerVolumeInspectorPage.EffectListKind.EFFECT).clear();
this.currentEffects(TriggerVolumeInspectorPage.EffectListKind.EFFECT).addAll(TriggerEffect.deepCopyList(Arrays.asList(var3.getEffects())));
this.currentEffects(TriggerVolumeInspectorPage.EffectListKind.REJECTION_EFFECT).clear();
this.currentEffects(TriggerVolumeInspectorPage.EffectListKind.REJECTION_EFFECT)
.addAll(TriggerEffect.deepCopyList(Arrays.asList(var3.getRejectionEffects())));
this.currentRules().clear();
this.currentRules().addAll(TriggerRule.deepCopyList(Arrays.asList(var3.getRules())));
this.setCurrentConditionTiming(var3.getConditionTiming());
TriggerEffectAsset.VolumeSettings var4 = var3.getVolumeSettings();
if (var4 != null && !this.selectedIsGroup) {
TriggerVolumeInspectorDrafts.VolumeDraft var5 = this.selectedVolumeDraft();
var5.targetTypes = var4.targetTypes().isEmpty() ? EnumSet.noneOf(EntityTargetType.class) : EnumSet.copyOf(var4.targetTypes());
var5.tags = TriggerVolumeInspectorDrafts.copyTags(var4.tags());
var5.rejectionDelayMode = var4.rejectionDelayMode();
var5.cooldown = var4.cooldown();
var5.cooldownMode = var4.cooldownMode();
var5.activationDelay = var4.activationDelay();
var5.projectileSource = var4.projectileSource();
var5.keepLoaded = var4.keepLoaded();
var5.rotateEffectsOnPaste = var4.rotateEffectsOnPaste();
var5.cancelDelayedOnExit = var4.cancelDelayedOnExit();
}
this.markSelectedDraftDirty();
this.selectedKind = !this.currentConditions().isEmpty()
? TriggerVolumeInspectorPage.EffectListKind.CONDITION
: (
!this.currentEffects(TriggerVolumeInspectorPage.EffectListKind.EFFECT).isEmpty()
? TriggerVolumeInspectorPage.EffectListKind.EFFECT
: TriggerVolumeInspectorPage.EffectListKind.REJECTION_EFFECT
);
this.selectedEffectIndex = this.getItemCount(this.selectedKind) == 0 ? -1 : 0;
this.playerRef.sendMessage(Message.translation("server.customUI.triggerVolumeEffectEditor.presetLoaded").param("name", var1.presetId));
UICommandBuilder var6 = new UICommandBuilder();
var6.set("#PresetLoadPage.Visible", false);
var6.set("#MainPage.Visible", true);
this.sendUpdate(var6);
this.rebuildAll();
}
}
}
}
class="kw">private void onCancelPresetLoad() {
UICommandBuilder var1 = new UICommandBuilder();
var1.set("#PresetLoadPage.Visible", false);
var1.set("#MainPage.Visible", true);
this.sendUpdate(var1);
}
class="kw">private void onOpenAssetPicker(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.paramKey != null) {
Object var2 = this.getSelectedItem();
if (var2 != null) {
Object var3 = this.pickerTargetFor(var2, var1.paramKey);
String var4 = getCodecTypeId(var3);
String var5 = getAssetSourceForField(var4, var1.paramKey);
if (var5 != null) {
this.pendingPickerFieldKey = var1.paramKey;
this.pendingPickerSource = var5;
this.pendingPickerMultiSelect = this.isPickerFieldMultiSelect(var3, var1.paramKey);
this.pendingPickerSelections.clear();
if (this.pendingPickerMultiSelect) {
this.pendingPickerSelections.addAll(this.currentPickerArrayValues(var3, var1.paramKey));
}
UICommandBuilder var6 = new UICommandBuilder();
UIEventBuilder var7 = new UIEventBuilder();
var6.set("#MainPage.Visible", false);
var6.set("#AssetPickerPage.Visible", true);
var6.set("#AssetPickerPage #SearchInput.Value", this.assetPickerSearchQuery);
var6.set("#ConfirmAssetPickerButton.Visible", this.pendingPickerMultiSelect);
var6.set("#AssetPickerFieldLabel.Text", var1.paramKey);
this.buildAssetPickerList(var6, var7);
this.bindStaticEvents(var7);
this.sendUpdate(var6, var7, false);
}
}
}
}
class="kw">private void onAssetPickerSearch(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.assetPickerQuery != null) {
this.assetPickerSearchQuery = var1.assetPickerQuery.trim();
}
UICommandBuilder var2 = new UICommandBuilder();
UIEventBuilder var3 = new UIEventBuilder();
this.buildAssetPickerList(var2, var3);
this.bindStaticEvents(var3);
this.sendUpdate(var2, var3, false);
}
class="kw">private void onAssetPickerSelect(@Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.assetPickerSelection != null && this.pendingPickerFieldKey != null) {
if (this.pendingPickerMultiSelect) {
if (var1.assetPickerSelection.isEmpty()) {
this.pendingPickerSelections.clear();
} else if (!this.pendingPickerSelections.remove(var1.assetPickerSelection)) {
this.pendingPickerSelections.add(var1.assetPickerSelection);
}
UICommandBuilder var5 = new UICommandBuilder();
UIEventBuilder var7 = new UIEventBuilder();
this.buildAssetPickerList(var5, var7);
this.bindStaticEvents(var7);
this.sendUpdate(var5, var7, false);
} else {
Object var2 = this.getSelectedItem();
if (var2 != null) {
Object var3 = this.pickerTargetFor(var2, this.pendingPickerFieldKey);
BuilderCodec var4 = getItemBuilderCodec(var3);
if (var4 != null) {
this.applyPickerValue(var4, var3, this.pendingPickerFieldKey, var1.assetPickerSelection.isEmpty() ? null : var1.assetPickerSelection);
this.markSelectedDraftDirty();
}
}
if (isPastePrefabPreviewAssetField(this.pendingPickerFieldKey)) {
this.refreshActivePastePrefabPreview();
}
this.pendingPickerFieldKey = null;
this.pendingPickerSource = null;
UICommandBuilder var6 = new UICommandBuilder();
var6.set("#AssetPickerPage.Visible", false);
var6.set("#MainPage.Visible", true);
this.sendUpdate(var6);
this.rebuildAll();
}
}
}
class="kw">private void onConfirmAssetPicker() {
if (this.pendingPickerMultiSelect && this.pendingPickerFieldKey != null) {
Object var1 = this.getSelectedItem();
if (var1 != null) {
Object var2 = this.pickerTargetFor(var1, this.pendingPickerFieldKey);
BuilderCodec var3 = getItemBuilderCodec(var2);
if (var3 != null) {
this.applyPickerValues(var3, var2, this.pendingPickerFieldKey, this.pendingPickerSelections);
this.markSelectedDraftDirty();
}
}
if (isPastePrefabPreviewAssetField(this.pendingPickerFieldKey)) {
this.refreshActivePastePrefabPreview();
}
this.closeAssetPicker();
}
}
class="kw">private void onPreviewSound(@Nonnull TriggerVolumeInspectorPage.PageData var1, @Nonnull Store<EntityStore> var2) {
if ("SoundEvent".equals(this.pendingPickerSource) && var1.assetPickerSelection != null && !var1.assetPickerSelection.isBlank()) {
int var3 = SoundEvent.getAssetMap().getIndex(var1.assetPickerSelection);
if (var3 != Integer.MIN_VALUE && var3 != 0) {
Ref var4 = this.playerRef.getReference();
if (var4 != null && var4.isValid()) {
TransformComponent var5 = var2.getComponent(var4, TransformComponent.getComponentType());
if (var5 != null) {
Vector3d var6 = var5.getPosition();
SoundUtil.playSoundEvent3d(var3, SoundCategory.SFX, var6.x(), var6.y(), var6.z(), 1.0F, 1.0F, var2);
}
}
}
}
}
class="kw">private void onCancelAssetPicker() {
this.closeAssetPicker();
}
class="kw">private void closeAssetPicker() {
this.pendingPickerFieldKey = null;
this.pendingPickerSource = null;
this.pendingPickerMultiSelect = false;
this.pendingPickerSelections.clear();
UICommandBuilder var1 = new UICommandBuilder();
var1.set("#ConfirmAssetPickerButton.Visible", false);
var1.set("#AssetPickerPage.Visible", false);
var1.set("#MainPage.Visible", true);
this.sendUpdate(var1);
this.rebuildAll();
}
class="kw">private void registerSelectionObserver() {
TriggerVolumeManager var1 = getManagerForWorld(this.selectedWorld);
if (var1 != null) {
var1.setSelectionObserver(this.playerRef.getUuid(), this.selectionObserver);
}
}
class="kw">private void registerVolumeUpdateObserver() {
TriggerVolumeManager var1 = getManagerForWorld(this.selectedWorld);
if (var1 != null) {
var1.setVolumeUpdateObserver(this.playerRef.getUuid(), this.volumeUpdateObserver);
}
}
class="kw">private void onExternalSelectionChanged(@Nullable String var1) {
if (!this.suppressSelectionObserver) {
if (!Objects.equals(this.selectedId, var1) || this.selectedIsGroup) {
TriggerVolumeManager var2 = getManagerForWorld(this.selectedWorld);
if (var1 == null || var2 != null && var2.getVolume(var1) != null) {
this.selectedId = var1;
this.selectedIsGroup = false;
this.selectedEffectIndex = -1;
this.lastCommittedEntry = -1;
this.pendingScrollToSelection = true;
this.rebuildAll();
}
}
}
}
class="kw">private void onExternalVolumeUpdated(@Nonnull VolumeEntry var1) {
TriggerVolumesPlugin.PastePrefabPreviewState var2 = this.getActivePastePrefabPreviewState();
if (var2 != null) {
if (var2.selectedId() != null && var2.worldName().equals(this.selectedWorld)) {
if (var2.selectedIsGroup()) {
TriggerVolumeManager var3 = getManagerForWorld(this.selectedWorld);
GroupEntry var4 = var3 != null ? var3.getGroup(var2.selectedId()) : null;
if (var4 == null || !var4.getMemberVolumeIds().contains(var1.getId())) {
class="kw">return;
}
TriggerVolumeInspectorDrafts.GroupDraft var5 = this.groupDrafts.get(var2.selectedId());
if (var5 != null) {
var5.origin = new Vector3d(var4.getOrigin());
}
} else {
if (!var2.selectedId().equals(var1.getId())) {
class="kw">return;
}
TriggerVolumeInspectorDrafts.VolumeDraft var6 = this.volumeDrafts.get(var2.selectedId());
if (var6 != null) {
var6.position = new Vector3d(var1.getPosition());
}
}
this.refreshActivePastePrefabPreviewPosition();
}
}
}
class="kw">private void onExternalVolumeRemoved(@Nonnull String var1) {
TriggerVolumesPlugin.PastePrefabPreviewState var2 = this.getActivePastePrefabPreviewState();
if (var2 != null && var2.selectedId() != null) {
if (!var2.selectedIsGroup() && var2.selectedId().equals(var1)) {
this.hidePastePrefabPreview();
} else {
if (var2.selectedIsGroup()) {
TriggerVolumeInspectorDrafts.GroupDraft var3 = this.groupDrafts.get(var2.selectedId());
if (var3 != null && var3.memberVolumeIds.contains(var1)) {
this.hidePastePrefabPreview();
}
}
}
}
}
class="kw">private void syncSelectionToTool() {
TriggerVolumeToolSelection var1 = new TriggerVolumeToolSelection();
TriggerVolumeManager var2 = getManagerForWorld(this.selectedWorld);
if (this.selectedId != null && var2 != null) {
if (this.selectedIsGroup) {
GroupEntry var3 = var2.getGroup(this.selectedId);
if (var3 == null) {
class="kw">return;
}
String[] var4 = var3.getMemberVolumeIds().stream().filter(var1x -> var2.getVolume(var1x) != null).toArray(String[]::new);
var1.volumeIds = var4;
var1.primaryVolumeId = var4.length > 0 ? var4[0] : null;
this.suppressSelectionObserver = true;
var2.setPlayerSelection(this.playerRef.getUuid(), var1.primaryVolumeId);
this.suppressSelectionObserver = false;
} else {
var1.primaryVolumeId = this.selectedId;
var1.volumeIds = new String[]{this.selectedId};
this.suppressSelectionObserver = true;
var2.setPlayerSelection(this.playerRef.getUuid(), this.selectedId);
this.suppressSelectionObserver = false;
}
this.playerRef.getPacketHandler().write(var1);
} else {
if (var2 != null) {
this.suppressSelectionObserver = true;
var2.setPlayerSelection(this.playerRef.getUuid(), null);
this.suppressSelectionObserver = false;
}
this.playerRef.getPacketHandler().write(var1);
}
}
class="kw">private void applyPickerValue(@Nonnull BuilderCodec<?> var1, @Nonnull Object var2, @Nonnull String var3, @Nullable String var4) {
List var5 = var1.getEntries().get(var3);
if (var5 != null && !var5.isEmpty()) {
BuilderField var6 = var5.getLast();
BsonDocument var7 = new BsonDocument();
Codec var8 = var6.getCodec().getChildCodec();
if (var8 == Codec.STRING_ARRAY) {
var7.put(var3, this.pickerArrayValue(var4));
} else if (var4 != null) {
var7.put(var3, new BsonString(var4));
}
try {
var6.decode(var7, var2, ExtraInfo.THREAD_LOCAL.get());
} catch (Exception var10) {
((HytaleLogger.Api)LOGGER.at(Level.WARNING).withCause(var10)).log("Failed to apply picker value '%s' for field '%s'", var4, var3);
}
}
}
class="kw">private void applyPickerValues(@Nonnull BuilderCodec<?> var1, @Nonnull Object var2, @Nonnull String var3, @Nonnull Collection<String> var4) {
List var5 = var1.getEntries().get(var3);
if (var5 != null && !var5.isEmpty()) {
BuilderField var6 = var5.getLast();
BsonDocument var7 = new BsonDocument();
var7.put(var3, this.pickerArrayValue(var4));
try {
var6.decode(var7, var2, ExtraInfo.THREAD_LOCAL.get());
} catch (Exception var9) {
((HytaleLogger.Api)LOGGER.at(Level.WARNING).withCause(var9)).log("Failed to apply picker values for field '%s'", var3);
}
}
}
@Nullable
class="kw">private class="kw">static BuilderCodec<?> getItemBuilderCodec(@Nonnull Object var0) {
if (var0 class="kw">instanceof TriggerCondition var2) {
class="kw">return getConditionBuilderCodecFor(getConditionTypeId(var2));
} else {
class="kw">return var0 class="kw">instanceof TriggerRule var1 ? getRuleBuilderCodecFor(getRuleTypeId(var1)) : getBuilderCodecFor(getTypeId((TriggerEffect)var0));
}
}
@Nonnull
class="kw">private Object pickerTargetFor(@Nonnull Object var1, @Nullable String var2) {
if (var2 != null && var1 class="kw">instanceof ModifyRulesEffect var3 && var3.getRule() != null) {
BuilderCodec var4 = getBuilderCodecFor(getTypeId(var3));
if (var4 == null || !var4.getEntries().containsKey(var2)) {
class="kw">return var3.getRule();
}
}
class="kw">return var1;
}
@Nonnull
class="kw">private BsonArray pickerArrayValue(@Nullable String var1) {
class="kw">return var1 != null && !var1.isBlank() ? this.pickerArrayValue(List.of(var1)) : new BsonArray();
}
@Nonnull
class="kw">private BsonArray pickerArrayValue(@Nonnull Collection<String> var1) {
BsonArray var2 = new BsonArray();
for (String var4 : var1) {
var2.add(new BsonString(var4));
}
class="kw">return var2;
}
class="kw">private boolean isPickerFieldMultiSelect(@Nonnull Object var1, @Nonnull String var2) {
BuilderCodec var3 = getItemBuilderCodec(var1);
if (var3 == null) {
class="kw">return false;
} else {
List var4 = var3.getEntries().get(var2);
if (var4 != null && !var4.isEmpty()) {
BuilderField var5 = var4.getLast();
class="kw">return var5.getCodec().getChildCodec() == Codec.STRING_ARRAY;
} else {
class="kw">return false;
}
}
}
@Nonnull
class="kw">private Collection<String> currentPickerArrayValues(@Nonnull Object var1, @Nonnull String var2) {
BuilderCodec var3 = getItemBuilderCodec(var1);
if (var3 == null) {
class="kw">return List.of();
}
BsonDocument var4;
try {
var4 = ((BuilderCodec<Object>)var3).encode(var1, EmptyExtraInfo.EMPTY);
} catch (Exception var11) {
class="kw">return List.of();
}
LinkedHashSet var5 = new LinkedHashSet<>();
BsonValue var6 = var4.get(var2);
if (var6 class="kw">instanceof BsonArray) {
for (BsonValue var9 : (BsonArray)var6) {
if (var9 class="kw">instanceof BsonString var10) {
var5.add(var10.getValue());
}
}
}
class="kw">return var5;
}
class="kw">private void buildAssetPickerList(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) {
var1.clear("#AssetPickerList");
Collection var3 = this.resolvePickerIds();
String var4 = this.assetPickerSearchQuery.toLowerCase(Locale.ROOT);
List var5;
if (!var4.isEmpty()) {
Object2IntMap var6 = new Object2IntOpenHashMap(var3.size());
for (String var8 : var3) {
if (var8.toLowerCase(Locale.ROOT).contains(var4)) {
var6.put(var8, StringCompareUtil.getFuzzyDistance(var8, var4, Locale.ROOT));
}
}
var5 = var6.keySet().stream().sorted().sorted(Comparator.comparingInt(var6::getInt).reversed()).toList();
} else if ("AnimationApplyOn".equals(this.pendingPickerSource)) {
var5 = var3.stream().sorted(Comparator.<String, Boolean>comparing(var0 -> !isApplyOnPseudo(var0)).thenComparing(Comparator.naturalOrder())).toList();
} else {
var5 = var3.stream().sorted().toList();
}
List var12;
if (this.pendingPickerMultiSelect && !this.pendingPickerSelections.isEmpty()) {
ArrayList var13 = new ArrayList<>(var5.size());
for (String var9 : var5) {
if (this.pendingPickerSelections.contains(var9)) {
var13.add(var9);
}
}
for (String var18 : var5) {
if (!this.pendingPickerSelections.contains(var18)) {
var13.add(var18);
}
}
var12 = var13.size() > 50 ? var13.subList(0, 50) : var13;
} else {
var12 = var5.size() > 50 ? var5.subList(0, 50) : var5;
}
var1.set("#AssetPickerNoResults.Visible", var12.isEmpty());
var1.append("#AssetPickerList", "Common/TextButton.ui");
var1.set("#AssetPickerList[0] #Button.Text", Message.translation("server.customUI.triggerVolumeEffectEditor.assetPicker.clearEntry"));
var2.addEventBinding(
CustomUIEventBindingType.Activating,
"#AssetPickerList[0] #Button",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.AssetPickerSelect.name()).append("AssetPickerSelection", "")
);
boolean var14 = "SoundEvent".equals(this.pendingPickerSource);
for (int var17 = 0; var17 < var12.size(); var17++) {
String var19 = var12.get(var17);
String var10 = "#AssetPickerList[" + (var17 + 1) + "]";
String var11 = this.pendingPickerMultiSelect && this.pendingPickerSelections.contains(var19) ? "[x] " + var19 : var19;
if (var14) {
var1.append("#AssetPickerList", "Pages/TriggerVolume/TriggerVolumeInspectorSoundAssetRow.ui");
var1.set(var10 + " #SelectButton.Text", var11);
var2.addEventBinding(
CustomUIEventBindingType.Activating,
var10 + " #SelectButton",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.AssetPickerSelect.name()).append("AssetPickerSelection", var19)
);
var2.addEventBinding(
CustomUIEventBindingType.Activating,
var10 + " #PreviewButton",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.PreviewSound.name()).append("AssetPickerSelection", var19),
false
);
} else {
var1.append("#AssetPickerList", "Common/TextButton.ui");
if ("AnimationApplyOn".equals(this.pendingPickerSource) && isApplyOnPseudo(var19)) {
var1.set(var10 + " #Button.Text", Message.translation("server.customUI.triggerVolumeEffectEditor.applyOn." + var19));
} else if ("Animation".equals(this.pendingPickerSource) && this.isLoopingAnimation("PlayAnimation", "Animation", var19)) {
var1.set(
var10 + " #Button.Text",
Message.translation("server.customUI.triggerVolumeEffectEditor.assetPicker.animationLooping").param("animation", var19)
);
} else {
var1.set(var10 + " #Button.Text", var11);
}
var2.addEventBinding(
CustomUIEventBindingType.Activating,
var10 + " #Button",
new EventData().append("Action", TriggerVolumeInspectorPage.Action.AssetPickerSelect.name()).append("AssetPickerSelection", var19)
);
}
}
}
class="kw">private void rebuildAll() {
this.revertRejectedDraftIds();
UICommandBuilder var1 = new UICommandBuilder();
UIEventBuilder var2 = new UIEventBuilder();
this.buildWorldDropdown(var1);
this.buildTabs(var1, var2);
this.buildList(var1, var2);
this.buildSelectedPane(var1, var2);
this.bindStaticEvents(var2);
this.refreshActivePastePrefabPreviewPosition();
this.sendUpdate(var1, var2, false);
}
class="kw">private void rebuildEffectListOnly() {
UICommandBuilder var1 = new UICommandBuilder();
UIEventBuilder var2 = new UIEventBuilder();
this.buildEffectList(var1, var2);
this.sendUpdate(var1, var2, false);
}
@Nullable
class="kw">private TriggerVolumeManager getSelectedManager() {
class="kw">return getManagerForWorld(this.selectedWorld);
}
@Nullable
class="kw">private TriggerVolumeInspectorDrafts.VolumeDraft selectedVolumeDraft() {
TriggerVolumeManager var1 = this.getSelectedManager();
if (var1 != null && this.selectedId != null) {
VolumeEntry var2 = var1.getVolume(this.selectedId);
class="kw">return var2 != null ? this.draftForVolume(var2) : null;
} else {
class="kw">return null;
}
}
@Nullable
class="kw">private TriggerVolumeInspectorDrafts.GroupDraft selectedGroupDraft() {
TriggerVolumeManager var1 = this.getSelectedManager();
if (var1 != null && this.selectedId != null) {
GroupEntry var2 = var1.getGroup(this.selectedId);
class="kw">return var2 != null ? this.draftForGroup(var2) : null;
} else {
class="kw">return null;
}
}
@Nullable
class="kw">private TriggerVolumeInspectorDrafts.GroupDraft selectedInheritedGroupDraft() {
if (this.selectedIsGroup) {
class="kw">return null;
} else {
TriggerVolumeManager var1 = this.getSelectedManager();
TriggerVolumeInspectorDrafts.VolumeDraft var2 = this.selectedVolumeDraft();
if (var1 != null && var2 != null && var2.groupId != null) {
GroupEntry var3 = var1.getGroup(var2.groupId);
class="kw">return var3 != null ? this.draftForGroup(var3) : null;
} else {
class="kw">return null;
}
}
}
@Nonnull
class="kw">private TriggerVolumeInspectorDrafts.VolumeDraft draftForVolume(@Nonnull VolumeEntry var1) {
class="kw">return this.volumeDrafts.computeIfAbsent(var1.getId(), var1x -> TriggerVolumeInspectorDrafts.VolumeDraft.from(var1));
}
@Nonnull
class="kw">private TriggerVolumeInspectorDrafts.GroupDraft draftForGroup(@Nonnull GroupEntry var1) {
class="kw">return this.groupDrafts.computeIfAbsent(var1.getId(), var1x -> TriggerVolumeInspectorDrafts.GroupDraft.from(var1));
}
@Nonnull
class="kw">private Map<String, String> currentTags() {
class="kw">return this.selectedIsGroup ? this.selectedGroupDraft().tags : this.selectedVolumeDraft().tags;
}
@Nonnull
class="kw">private List<TriggerCondition> currentConditions() {
class="kw">return this.selectedIsGroup ? this.selectedGroupDraft().conditions : this.selectedVolumeDraft().conditions;
}
@Nonnull
class="kw">private List<TriggerRule> currentRules() {
class="kw">return this.selectedIsGroup ? this.selectedGroupDraft().rules : this.selectedVolumeDraft().rules;
}
@Nonnull
class="kw">private List<TriggerEffect> currentEffects(@Nonnull TriggerVolumeInspectorPage.EffectListKind var1) {
if (this.selectedIsGroup) {
TriggerVolumeInspectorDrafts.GroupDraft var3 = this.selectedGroupDraft();
class="kw">return var1 == TriggerVolumeInspectorPage.EffectListKind.REJECTION_EFFECT ? var3.rejectionEffects : var3.effects;
} else {
TriggerVolumeInspectorDrafts.VolumeDraft var2 = this.selectedVolumeDraft();
class="kw">return var1 == TriggerVolumeInspectorPage.EffectListKind.REJECTION_EFFECT ? var2.rejectionEffects : var2.effects;
}
}
@Nonnull
class="kw">private ConditionTiming currentConditionTiming() {
class="kw">return this.selectedIsGroup ? this.selectedGroupDraft().conditionTiming : this.selectedVolumeDraft().conditionTiming;
}
class="kw">private void setCurrentConditionTiming(@Nonnull ConditionTiming var1) {
if (this.selectedIsGroup) {
TriggerVolumeInspectorDrafts.GroupDraft var2 = this.selectedGroupDraft();
var2.conditionTiming = var1;
var2.markDirty();
} else {
TriggerVolumeInspectorDrafts.VolumeDraft var3 = this.selectedVolumeDraft();
var3.conditionTiming = var1;
var3.markDirty();
}
}
class="kw">private void markSelectedDraftDirty() {
if (this.selectedIsGroup) {
TriggerVolumeInspectorDrafts.GroupDraft var1 = this.selectedGroupDraft();
if (var1 != null) {
var1.markDirty();
}
} else {
TriggerVolumeInspectorDrafts.VolumeDraft var2 = this.selectedVolumeDraft();
if (var2 != null) {
var2.markDirty();
}
}
}
@Nullable
class="kw">private Object getSelectedItem() {
if (this.selectedId != null && this.selectedEffectIndex >= 0 && this.selectedEffectIndex < this.getItemCount(this.selectedKind)) {
class="kw">return class="kw">switch (this.selectedKind) {
case CONDITION -> (TriggerCondition)this.currentConditions().get(this.selectedEffectIndex);
case EFFECT, REJECTION_EFFECT -> (TriggerEffect)this.currentEffects(this.selectedKind).get(this.selectedEffectIndex);
case RULE -> (TriggerRule)this.currentRules().get(this.selectedEffectIndex);
};
} else {
class="kw">return null;
}
}
class="kw">private int getItemCount(@Nonnull TriggerVolumeInspectorPage.EffectListKind var1) {
class="kw">return class="kw">switch (var1) {
case CONDITION -> this.currentConditions().size();
case EFFECT, REJECTION_EFFECT -> this.currentEffects(var1).size();
case RULE -> this.currentRules().size();
};
}
class="kw">private class="kw">static int getGroupItemCount(@Nonnull TriggerVolumeInspectorPage.EffectListKind var0, @Nonnull TriggerVolumeInspectorDrafts.GroupDraft var1) {
class="kw">return class="kw">switch (var0) {
case CONDITION -> var1.conditions.size();
case EFFECT -> var1.effects.size();
case REJECTION_EFFECT -> var1.rejectionEffects.size();
case RULE -> var1.rules.size();
};
}
@Nullable
class="kw">private TriggerEventType getItemEventType(@Nonnull TriggerVolumeInspectorPage.EffectListKind var1, int var2) {
class="kw">return var1 == TriggerVolumeInspectorPage.EffectListKind.CONDITION
? this.currentConditions().get(var2).getEventType()
: this.currentEffects(var1).get(var2).getEventType();
}
@Nullable
class="kw">private class="kw">static TriggerEventType getGroupItemEventType(
@Nonnull TriggerVolumeInspectorPage.EffectListKind var0, int var1, @Nonnull TriggerVolumeInspectorDrafts.GroupDraft var2
) {
class="kw">return class="kw">switch (var0) {
case CONDITION -> var2.conditions.get(var1).getEventType();
case EFFECT -> var2.effects.get(var1).getEventType();
case REJECTION_EFFECT -> var2.rejectionEffects.get(var1).getEventType();
case RULE -> null;
};
}
class="kw">private int getItemEntry(@Nonnull TriggerVolumeInspectorPage.EffectListKind var1, int var2) {
class="kw">return var1 == TriggerVolumeInspectorPage.EffectListKind.CONDITION
? this.currentConditions().get(var2).getEntry()
: this.currentEffects(var1).get(var2).getEntry();
}
class="kw">private class="kw">static int getGroupItemEntry(
@Nonnull TriggerVolumeInspectorPage.EffectListKind var0, int var1, @Nonnull TriggerVolumeInspectorDrafts.GroupDraft var2
) {
class="kw">return class="kw">switch (var0) {
case CONDITION -> var2.conditions.get(var1).getEntry();
case EFFECT -> var2.effects.get(var1).getEntry();
case REJECTION_EFFECT -> var2.rejectionEffects.get(var1).getEntry();
case RULE -> 0;
};
}
@Nonnull
class="kw">private String getItemTypeId(@Nonnull TriggerVolumeInspectorPage.EffectListKind var1, int var2) {
class="kw">return class="kw">switch (var1) {
case CONDITION -> getConditionTypeId(this.currentConditions().get(var2));
case EFFECT, REJECTION_EFFECT -> getTypeId(this.currentEffects(var1).get(var2));
case RULE -> getRuleTypeId(this.currentRules().get(var2));
};
}
@Nonnull
class="kw">private class="kw">static String getGroupItemTypeId(
@Nonnull TriggerVolumeInspectorPage.EffectListKind var0, int var1, @Nonnull TriggerVolumeInspectorDrafts.GroupDraft var2
) {
class="kw">return class="kw">switch (var0) {
case CONDITION -> getConditionTypeId(var2.conditions.get(var1));
case EFFECT -> getTypeId(var2.effects.get(var1));
case REJECTION_EFFECT -> getTypeId(var2.rejectionEffects.get(var1));
case RULE -> getRuleTypeId(var2.rules.get(var1));
};
}
class="kw">private boolean matchesFilter(@Nonnull String var1) {
class="kw">return this.filterText.isEmpty() || var1.toLowerCase(Locale.ROOT).contains(this.filterText);
}
class="kw">private boolean matchesVolumeFilter(@Nonnull VolumeEntry var1) {
if (this.filterText.isEmpty()) {
class="kw">return true;
} else {
class="kw">return this.draftForVolume(var1).id.toLowerCase(Locale.ROOT).contains(this.filterText) ? true : this.tagsMatchFilter(this.draftForVolume(var1).tags);
}
}
class="kw">private boolean matchesGroupFilter(@Nonnull String var1, @Nonnull GroupEntry var2, @Nonnull List<VolumeEntry> var3) {
if (this.filterText.isEmpty()) {
class="kw">return true;
}
if (var1.toLowerCase(Locale.ROOT).contains(this.filterText)) {
class="kw">return true;
}
if (this.tagsMatchFilter(this.draftForGroup(var2).tags)) {
class="kw">return true;
}
for (VolumeEntry var5 : var3) {
if (this.matchesVolumeFilter(var5)) {
class="kw">return true;
}
}
class="kw">return false;
}
class="kw">private boolean tagsMatchFilter(@Nonnull Map<String, String> var1) {
for (Entry var3 : var1.entrySet()) {
if (this.tagMatchesFilter(var3.getKey(), var3.getValue())) {
class="kw">return true;
}
}
class="kw">return false;
}
class="kw">private boolean tagMatchesFilter(@Nonnull String var1, @Nullable String var2) {
if (this.filterText.isEmpty()) {
class="kw">return false;
}
String var3 = var1.toLowerCase(Locale.ROOT);
String var4 = var2 != null ? var2.toLowerCase(Locale.ROOT) : "";
class="kw">return var3.contains(this.filterText) || var4.contains(this.filterText) || (var3 + "=" + var4).contains(this.filterText);
}
class="kw">private int appendRowTagChips(@Nonnull UICommandBuilder var1, @Nonnull String var2, @Nonnull Map<String, String> var3, boolean var4) {
if (var3.isEmpty()) {
class="kw">return 0;
}
List var5 = this.orderedRowTags(var3);
int var6 = var4 ? 236 : 252;
int var7 = 0;
int var8 = 1;
int var9 = 0;
for (int var10 = 0; var10 < var5.size(); var10++) {
Entry var11 = var5.get(var10);
String var12 = this.chipDisplay(var11.getKey(), var11.getValue());
int var13 = chipWidth(var12);
if (var9 > 0 && var9 + var13 > var6) {
if (var8 == 2) {
this.appendChip(var1, var2, var7, "+" + (var5.size() - var10), 5596014);
class="kw">return 2;
}
var8++;
var9 = 0;
}
this.appendChip(var1, var2, var7++, var12, tagChipColor(var11.getKey()));
var9 += var13;
}
class="kw">return var8;
}
@Nonnull
class="kw">private List<Entry<String, String>> orderedRowTags(@Nonnull Map<String, String> var1) {
ArrayList var2 = new ArrayList<>(var1.entrySet());
if (!this.filterText.isEmpty()) {
var2.sort(
(var1x, var2x) -> Boolean.compare(this.tagMatchesFilter(var2x.getKey(), var2x.getValue()), this.tagMatchesFilter(var1x.getKey(), var1x.getValue()))
);
}
class="kw">return var2;
}
@Nonnull
class="kw">private String chipDisplay(@Nonnull String var1, @Nullable String var2) {
boolean var3 = var2 != null && !var2.isEmpty();
boolean var4 = var3 && !this.filterText.isEmpty() && var2.toLowerCase(Locale.ROOT).contains(this.filterText);
class="kw">return var4 ? var1 + ": " + var2 : var1;
}
class="kw">private class="kw">static int chipWidth(@Nonnull String var0) {
class="kw">return (int)Math.ceil(var0.length() * 6.2) + 14;
}
@Nullable
class="kw">private class="kw">static TriggerVolumeManager getManagerForWorld(@Nonnull String var0) {
for (World var2 : Universe.get().getWorlds().values()) {
if (var2.getName().equalsIgnoreCase(var0)) {
class="kw">return var2.getEntityStore().getStore().getResource(TriggerVolumesPlugin.get().getManagerResourceType());
}
}
class="kw">return null;
}
@Nonnull
class="kw">private class="kw">static PatchStyle colorPatch(int var0) {
class="kw">return new PatchStyle().setColor(Value.of(colorToHex(var0)));
}
@Nonnull
class="kw">private class="kw">static PatchStyle tagColorPatch(int var0) {
class="kw">return new PatchStyle().setColor(Value.of(colorToHex(var0) + "99"));
}
class="kw">private class="kw">static int tagChipColor(@Nonnull String var0) {
int var1 = var0.toLowerCase(Locale.ROOT).hashCode();
var1 ^= var1 >>> 16;
var1 *= 2146121005;
var1 ^= var1 >>> 15;
var1 *= -2073254261;
var1 ^= var1 >>> 16;
class="kw">return TAG_CHIP_COLORS[Math.floorMod(var1, TAG_CHIP_COLORS.length)];
}
class="kw">private void appendChip(@Nonnull UICommandBuilder var1, @Nonnull String var2, int var3, @Nonnull String var4, int var5) {
String var6 = var2 + "[" + var3 + "]";
var1.append(var2, "Pages/TriggerVolume/TriggerVolumeTagChip.ui");
var1.setObject(var6 + ".Background", tagColorPatch(var5));
var1.set(var6 + " #ChipLabel.Text", var4);
}
@Nonnull
class="kw">private class="kw">static String colorToHex(int var0) {
int var1 = var0 >> 16 & 0xFF;
int var2 = var0 >> 8 & 0xFF;
int var3 = var0 & 0xFF;
class="kw">return String.format("#%02X%02X%02X", var1, var2, var3);
}
@Nonnull
class="kw">private class="kw">static String colorToHex(@Nonnull Vector3f var0) {
int var1 = Math.round(var0.x() * 255.0F);
int var2 = Math.round(var0.y() * 255.0F);
int var3 = Math.round(var0.z() * 255.0F);
class="kw">return String.format("#%02X%02X%02X", var1, var2, var3);
}
@Nullable
class="kw">private class="kw">static Vector3f parseColor(@Nullable String var0) {
if (var0 != null && !var0.isBlank()) {
int var1 = parsePackedColor(var0, 52428);
class="kw">return new Vector3f((var1 >> 16 & 0xFF) / 255.0F, (var1 >> 8 & 0xFF) / 255.0F, (var1 & 0xFF) / 255.0F);
} else {
class="kw">return null;
}
}
class="kw">private class="kw">static int parsePackedColor(@Nullable String var0, int var1) {
if (var0 == null) {
class="kw">return var1;
}
String var2 = var0.trim();
if (var2.startsWith("#")) {
var2 = var2.substring(1);
}
if (var2.length() > 6) {
var2 = var2.substring(0, 6);
}
try {
class="kw">return Integer.parseInt(var2, 16) & 16777215;
} catch (NumberFormatException var4) {
class="kw">return var1;
}
}
class="kw">private class="kw">static void setVec(@Nonnull Vector3d var0, @Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.vecX != null && var1.vecY != null && var1.vecZ != null) {
var0.set(var1.vecX, var1.vecY, var1.vecZ);
}
}
class="kw">private class="kw">static void setBoxDimensions(@Nonnull Vector3d var0, @Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.vecX != null && var1.vecY != null && var1.vecZ != null) {
var0.set(clampDimension(var1.vecX, 0.25), clampDimension(var1.vecY, 0.25), clampDimension(var1.vecZ, 0.25));
}
}
class="kw">private class="kw">static void setSphereDimensions(@Nonnull Vector3d var0, @Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.paramNumericValue != null) {
var0.set(clampDimension(var1.paramNumericValue, 0.25), 0.0, 0.0);
}
}
class="kw">private class="kw">static void setCylinderDimensions(@Nonnull Vector3d var0, @Nonnull TriggerVolumeInspectorPage.PageData var1) {
if (var1.vecX != null && var1.vecY != null) {
var0.set(clampDimension(var1.vecX, 0.25), clampDimension(var1.vecY, 0.5), 0.0);
}
}
class="kw">private class="kw">static double clampDimension(double var0, double var2) {
class="kw">return Math.min(1000.0, Math.max(var2, var0));
}
@Nonnull
class="kw">private class="kw">static <T class="kw">extends Enum<T>> T parseEnum(@Nonnull Class<T> var0, @Nullable String var1, @Nonnull T var2) {
if (var1 == null) {
class="kw">return var2;
}
try {
class="kw">return Enum.valueOf(var0, var1);
} catch (IllegalArgumentException var4) {
class="kw">return var2;
}
}
@Nonnull
class="kw">private class="kw">static Set<EntityTargetType> parseTargetTypes(@Nullable String var0) {
class="kw">return class="kw">switch (var0 != null ? var0 : "PLAYER") {
case "NONE" -> EnumSet.noneOf(EntityTargetType.class);
case "NPC" -> EnumSet.of(EntityTargetType.NPC);
case "ITEM_DROP" -> EnumSet.of(EntityTargetType.ITEM_DROP);
case "PROJECTILE" -> EnumSet.of(EntityTargetType.PROJECTILE);
case "ALL" -> EnumSet.allOf(EntityTargetType.class);
class="kw">default -> EnumSet.of(EntityTargetType.PLAYER);
};
}
@Nonnull
class="kw">private class="kw">static String targetTypesValue(@Nonnull Set<EntityTargetType> var0) {
if (var0.containsAll(EnumSet.allOf(EntityTargetType.class))) {
class="kw">return "ALL";
} else if (var0.contains(EntityTargetType.PROJECTILE)) {
class="kw">return "PROJECTILE";
} else if (var0.contains(EntityTargetType.ITEM_DROP)) {
class="kw">return "ITEM_DROP";
} else if (var0.contains(EntityTargetType.NPC)) {
class="kw">return "NPC";
} else {
class="kw">return var0.contains(EntityTargetType.PLAYER) ? "PLAYER" : "NONE";
}
}
@Nonnull
class="kw">private class="kw">static List<DropdownEntryInfo> targetTypeEntries() {
class="kw">return List.of(
option("server.customUI.triggerVolumeInspector.option.none", "NONE"),
option("server.customUI.triggerVolumeInspector.option.player", "PLAYER"),
option("server.customUI.triggerVolumeInspector.option.npc", "NPC"),
option("server.customUI.triggerVolumeInspector.option.itemDrop", "ITEM_DROP"),
option("server.customUI.triggerVolumeInspector.option.projectile", "PROJECTILE"),
option("server.customUI.triggerVolumeInspector.option.all", "ALL")
);
}
@Nonnull
class="kw">private class="kw">static List<DropdownEntryInfo> projectileSourceEntries() {
class="kw">return List.of(
option(
"server.customUI.triggerVolumeInspector.option.projectileSource.shooter",
ProjectileSource.SHOOTER.name(),
"server.customUI.triggerVolumeInspector.option.projectileSource.shooter.tooltip"
),
option(
"server.customUI.triggerVolumeInspector.option.projectileSource.projectile",
ProjectileSource.PROJECTILE.name(),
"server.customUI.triggerVolumeInspector.option.projectileSource.projectile.tooltip"
)
);
}
@Nonnull
class="kw">private class="kw">static List<DropdownEntryInfo> shapeEntries() {
class="kw">return List.of(
option("server.customUI.triggerVolumeInspector.option.box", TriggerVolumeShapeType.Box.name()),
option("server.customUI.triggerVolumeInspector.option.sphere", TriggerVolumeShapeType.Sphere.name()),
option("server.customUI.triggerVolumeInspector.option.cylinder", TriggerVolumeShapeType.Cylinder.name())
);
}
@Nonnull
class="kw">private class="kw">static List<DropdownEntryInfo> cooldownModeEntries() {
class="kw">return List.of(
option(
"server.customUI.triggerVolumeInspector.option.perEntity",
CooldownMode.PER_ENTITY.name(),
"server.customUI.triggerVolumeInspector.option.perEntity.tooltip"
),
option("server.customUI.triggerVolumeInspector.option.total", CooldownMode.TOTAL.name(), "server.customUI.triggerVolumeInspector.option.total.tooltip")
);
}
@Nonnull
class="kw">private class="kw">static List<DropdownEntryInfo> conditionTimingEntries() {
class="kw">return List.of(
option(
"server.customUI.triggerVolumeInspector.option.beforeVolumeDelay",
ConditionTiming.BEFORE_VOLUME_DELAY.name(),
"server.customUI.triggerVolumeInspector.option.beforeVolumeDelay.tooltip"
),
option(
"server.customUI.triggerVolumeInspector.option.afterVolumeDelay",
ConditionTiming.AFTER_VOLUME_DELAY.name(),
"server.customUI.triggerVolumeInspector.option.afterVolumeDelay.tooltip"
)
);
}
@Nonnull
class="kw">private class="kw">static List<DropdownEntryInfo> rejectionDelayModeEntries() {
class="kw">return List.of(
option(
"server.customUI.triggerVolumeInspector.option.rejectionImmediate",
RejectionDelayMode.IMMEDIATE.name(),
"server.customUI.triggerVolumeInspector.option.rejectionImmediate.tooltip"
),
option(
"server.customUI.triggerVolumeInspector.option.rejectionUseVolumeDelay",
RejectionDelayMode.USE_VOLUME_DELAY.name(),
"server.customUI.triggerVolumeInspector.option.rejectionUseVolumeDelay.tooltip"
)
);
}
@Nonnull
class="kw">private class="kw">static DropdownEntryInfo option(@Nonnull String var0, @Nonnull String var1) {
class="kw">return new DropdownEntryInfo(LocalizableString.fromMessageId(var0), var1);
}
@Nonnull
class="kw">private class="kw">static DropdownEntryInfo option(@Nonnull String var0, @Nonnull String var1, @Nonnull String var2) {
class="kw">return new DropdownEntryInfo(LocalizableString.fromMessageId(var0), var1, LocalizableString.fromMessageId(var2));
}
@Nonnull
class="kw">private class="kw">static Message fieldLabel(@Nonnull String var0) {
class="kw">return Message.translation("server.customUI.triggerVolumeInspector.field." + var0);
}
@Nonnull
class="kw">private class="kw">static Message volumeFieldTooltip(@Nonnull String var0) {
class="kw">return Message.translation("server.customUI.triggerVolumeInspector.field." + var0 + ".tooltip");
}
@Nonnull
class="kw">private class="kw">static Message fieldLabel(@Nonnull String var0, @Nonnull String var1) {
String var2 = "server.customUI.triggerVolumeEffectEditor.field." + var0 + "." + var1;
if (messageExists(var2)) {
class="kw">return Message.translation(var2);
}
String var3 = "server.customUI.triggerVolumeEffectEditor.field.common." + var1;
class="kw">return messageExists(var3) ? Message.translation(var3) : Message.translation(var2);
}
@Nonnull
class="kw">private class="kw">static Message effectFieldTooltip(@Nonnull String var0, @Nonnull String var1) {
String var2 = "server.customUI.triggerVolumeEffectEditor.field." + var0 + "." + var1 + ".tooltip";
if (messageExists(var2)) {
class="kw">return Message.translation(var2);
}
String var3 = "server.customUI.triggerVolumeEffectEditor.field.common." + var1 + ".tooltip";
class="kw">return messageExists(var3) ? Message.translation(var3) : Message.translation(var2);
}
class="kw">private class="kw">static void setEffectFieldTooltip(@Nonnull UICommandBuilder var0, @Nonnull String var1, @Nonnull String var2, @Nonnull String var3) {
if (!var2.isEmpty()) {
var0.set(var1 + " #Label.TooltipText", effectFieldTooltip(var2, var3));
}
}
class="kw">private class="kw">static void setEffectFieldPlaceholder(@Nonnull UICommandBuilder var0, @Nonnull String var1, @Nonnull String var2, @Nonnull String var3) {
if (!var2.isEmpty()) {
String var4 = "server.customUI.triggerVolumeEffectEditor.field." + var2 + "." + var3 + ".placeholder";
I18nModule var5 = I18nModule.get();
if (var5 != null && var5.getMessage("en-US", var4) != null) {
var0.set(var1 + " #Input.PlaceholderText", Message.translation(var4));
}
}
}
class="kw">private class="kw">static boolean isNonNegativeNumericField(@Nonnull String var0, @Nonnull String var1) {
class="kw">return NON_NEGATIVE_NUMERIC_FIELDS.contains(var0 + "." + var1);
}
@Nonnull
class="kw">private class="kw">static String getCodecTypeId(@Nonnull Object var0) {
if (var0 class="kw">instanceof TriggerCondition var2) {
class="kw">return getConditionTypeId(var2);
} else {
class="kw">return var0 class="kw">instanceof TriggerRule var1 ? getRuleTypeId(var1) : getTypeId((TriggerEffect)var0);
}
}
@Nonnull
class="kw">private class="kw">static EventData paramEvent(@Nonnull String var0, @Nonnull String var1) {
class="kw">return new EventData().append("Action", TriggerVolumeInspectorPage.Action.UpdateParameter.name()).append("ParamKey", var0).append("@ParamValue", var1);
}
@Nonnull
class="kw">private class="kw">static EventData boolParamEvent(@Nonnull String var0, @Nonnull String var1) {
class="kw">return new EventData().append("Action", TriggerVolumeInspectorPage.Action.UpdateParameter.name()).append("ParamKey", var0).append("@ParamBool", var1);
}
@Nonnull
class="kw">private class="kw">static EventData numericParamEvent(@Nonnull String var0, @Nonnull String var1) {
class="kw">return new EventData()
.append("Action", TriggerVolumeInspectorPage.Action.UpdateParameter.name())
.append("ParamKey", var0)
.append("@ParamNumericValue", var1);
}
@Nonnull
class="kw">private class="kw">static TriggerVolumeInspectorPage.EffectListKind parseEffectListKind(@Nonnull String var0, @Nonnull TriggerVolumeInspectorPage.EffectListKind var1) {
try {
class="kw">return TriggerVolumeInspectorPage.EffectListKind.valueOf(var0);
} catch (IllegalArgumentException var3) {
class="kw">return var1;
}
}
@Nonnull
class="kw">private class="kw">static TriggerEventType parseTriggerEventType(@Nonnull String var0, @Nonnull TriggerEventType var1) {
try {
class="kw">return TriggerEventType.valueOf(var0);
} catch (IllegalArgumentException var3) {
class="kw">return var1;
}
}
@Nonnull
class="kw">private class="kw">static String humanizeTypeId(@Nonnull String var0) {
if (var0.isEmpty()) {
class="kw">return var0;
}
StringBuilder var1 = new StringBuilder(var0.length() + 4);
var1.append(var0.charAt(0));
for (int var2 = 1; var2 < var0.length(); var2++) {
char var3 = var0.charAt(var2);
if (Character.isUpperCase(var3) && !Character.isUpperCase(var0.charAt(var2 - 1))) {
var1.append(' ');
}
var1.append(var3);
}
class="kw">return var1.toString();
}
@Nonnull
class="kw">private class="kw">static List<String> getSortedTypeIds() {
ArrayList var0 = new ArrayList<>(TriggerEffect.CODEC.getRegisteredIds());
Collections.sort(var0);
class="kw">return var0;
}
@Nonnull
class="kw">private class="kw">static List<String> getSortedConditionTypeIds() {
ArrayList var0 = new ArrayList<>(TriggerCondition.CODEC.getRegisteredIds());
Collections.sort(var0);
class="kw">return var0;
}
@Nonnull
class="kw">private class="kw">static List<String> getSortedRuleTypeIds() {
ArrayList var0 = new ArrayList<>(TriggerRule.CODEC.getRegisteredIds());
Collections.sort(var0);
class="kw">return var0;
}
@Nonnull
class="kw">private class="kw">static String getTypeId(@Nonnull TriggerEffect var0) {
String var1 = TriggerEffect.CODEC.getIdFor((Class<? class="kw">extends TriggerEffect>)var0.getClass());
class="kw">return var1 != null ? var1 : "unknown";
}
@Nonnull
class="kw">private class="kw">static String getConditionTypeId(@Nonnull TriggerCondition var0) {
String var1 = TriggerCondition.CODEC.getIdFor((Class<? class="kw">extends TriggerCondition>)var0.getClass());
class="kw">return var1 != null ? var1 : "unknown";
}
@Nonnull
class="kw">private class="kw">static String getRuleTypeId(@Nonnull TriggerRule var0) {
String var1 = TriggerRule.CODEC.getIdFor((Class<? class="kw">extends TriggerRule>)var0.getClass());
class="kw">return var1 != null ? var1 : "unknown";
}
@Nullable
class="kw">private class="kw">static BuilderCodec<TriggerEffect> getBuilderCodecFor(@Nonnull String var0) {
class="kw">return (BuilderCodec<TriggerEffect>)(TriggerEffect.CODEC.getCodecFor(var0) class="kw">instanceof BuilderCodec var2 ? var2 : null);
}
@Nullable
class="kw">private class="kw">static BuilderCodec<TriggerCondition> getConditionBuilderCodecFor(@Nonnull String var0) {
class="kw">return (BuilderCodec<TriggerCondition>)(TriggerCondition.CODEC.getCodecFor(var0) class="kw">instanceof BuilderCodec var2 ? var2 : null);
}
@Nullable
class="kw">private class="kw">static BuilderCodec<TriggerRule> getRuleBuilderCodecFor(@Nonnull String var0) {
class="kw">return (BuilderCodec<TriggerRule>)(TriggerRule.CODEC.getCodecFor(var0) class="kw">instanceof BuilderCodec var2 ? var2 : null);
}
@Nonnull
class="kw">private class="kw">static BsonDocument encodeEffect(@Nonnull BuilderCodec<TriggerEffect> var0, @Nonnull TriggerEffect var1) {
try {
class="kw">return var0.encode(var1, EmptyExtraInfo.EMPTY);
} catch (Exception var3) {
class="kw">return new BsonDocument();
}
}
@Nonnull
class="kw">private class="kw">static BsonDocument encodeCondition(@Nonnull BuilderCodec<TriggerCondition> var0, @Nonnull TriggerCondition var1) {
try {
class="kw">return var0.encode(var1, EmptyExtraInfo.EMPTY);
} catch (Exception var3) {
class="kw">return new BsonDocument();
}
}
@Nonnull
class="kw">private class="kw">static BsonDocument encodeRule(@Nonnull BuilderCodec<TriggerRule> var0, @Nonnull TriggerRule var1) {
try {
class="kw">return var0.encode(var1, EmptyExtraInfo.EMPTY);
} catch (Exception var3) {
class="kw">return new BsonDocument();
}
}
@Nullable
class="kw">private class="kw">static BsonValue stringToBsonValue(@Nonnull Codec<?> var0, @Nullable String var1) {
if (var1 == null) {
class="kw">return null;
} else if (var0 == Codec.STRING) {
class="kw">return new BsonString(var1);
} else if (var0 == Codec.STRING_ARRAY) {
class="kw">return stringsToBsonArray(var1);
} else if (var0 == Codec.FLOAT || var0 == Codec.DOUBLE) {
class="kw">return new BsonDouble(Double.parseDouble(var1));
} else if (var0 == Codec.INTEGER) {
class="kw">return new BsonInt32(Integer.parseInt(var1));
} else if (var0 == Codec.LONG) {
class="kw">return new BsonInt64(Long.parseLong(var1));
} else if (var0 == Codec.BOOLEAN) {
class="kw">return new BsonBoolean(Boolean.parseBoolean(var1));
} else {
class="kw">return var0 class="kw">instanceof EnumCodec ? new BsonString(var1) : new BsonString(var1);
}
}
@Nonnull
class="kw">private class="kw">static BsonArray stringsToBsonArray(@Nonnull String var0) {
BsonArray var1 = new BsonArray();
Arrays.stream(var0.split(",", 0)).map(String::trim).filter(var0x -> !var0x.isEmpty()).map(BsonString::new).forEach(var1::add);
class="kw">return var1;
}
@Nonnull
class="kw">private class="kw">static String bsonValueToString(@Nonnull BsonValue var0) {
if (var0 class="kw">instanceof BsonString var5) {
class="kw">return var5.getValue();
} else if (var0 class="kw">instanceof BsonBoolean var4) {
class="kw">return String.valueOf(var4.getValue());
} else if (var0 class="kw">instanceof BsonDouble var3) {
class="kw">return String.valueOf(var3.getValue());
} else if (var0 class="kw">instanceof BsonInt32 var2) {
class="kw">return String.valueOf(var2.getValue());
} else {
class="kw">return var0 class="kw">instanceof BsonInt64 var1 ? String.valueOf(var1.getValue()) : var0.toString();
}
}
class="kw">private class="kw">static void materializeDefaults(@Nonnull BuilderCodec<TriggerEffect> var0, @Nonnull TriggerEffect var1) {
BsonDocument var2 = encodeEffect(var0, var1);
ExtraInfo var3 = ExtraInfo.THREAD_LOCAL.get();
for (Entry var5 : var0.getEntries().entrySet()) {
String var6 = var5.getKey();
if (!"Event".equals(var6) && !"Interval".equals(var6) && !"Entry".equals(var6) && !var2.containsKey(var6) && !var5.getValue().isEmpty()) {
BuilderField var7 = var5.getValue().getLast();
BsonValue var8 = getDefaultBsonValue(getTypeId(var1), var6, var7.getCodec().getChildCodec());
if (var8 != null) {
BsonDocument var9 = new BsonDocument();
var9.put(var6, var8);
try {
var7.decode(var9, var1, var3);
} catch (Exception var11) {
}
}
}
}
}
class="kw">private class="kw">static void materializeRuleDefaults(@Nonnull BuilderCodec<TriggerRule> var0, @Nonnull TriggerRule var1) {
BsonDocument var2 = encodeRule(var0, var1);
ExtraInfo var3 = ExtraInfo.THREAD_LOCAL.get();
for (Entry var5 : var0.getEntries().entrySet()) {
String var6 = var5.getKey();
if (!var2.containsKey(var6) && !var5.getValue().isEmpty()) {
BuilderField var7 = var5.getValue().getLast();
BsonValue var8 = getDefaultBsonValue(getRuleTypeId(var1), var6, var7.getCodec().getChildCodec());
if (var8 != null) {
BsonDocument var9 = new BsonDocument();
var9.put(var6, var8);
try {
var7.decode(var9, var1, var3);
} catch (Exception var11) {
}
}
}
}
}
class="kw">private class="kw">static void materializeConditionDefaults(@Nonnull BuilderCodec<TriggerCondition> var0, @Nonnull TriggerCondition var1) {
BsonDocument var2 = encodeCondition(var0, var1);
ExtraInfo var3 = ExtraInfo.THREAD_LOCAL.get();
for (Entry var5 : var0.getEntries().entrySet()) {
String var6 = var5.getKey();
if (!"Event".equals(var6) && !"Entry".equals(var6) && !var2.containsKey(var6) && !var5.getValue().isEmpty()) {
BuilderField var7 = var5.getValue().getLast();
BsonValue var8 = getDefaultBsonValue(getConditionTypeId(var1), var6, var7.getCodec().getChildCodec());
if (var8 != null) {
BsonDocument var9 = new BsonDocument();
var9.put(var6, var8);
try {
var7.decode(var9, var1, var3);
} catch (Exception var11) {
}
}
}
}
}
@Nullable
class="kw">private class="kw">static BsonValue getDefaultBsonValue(@Nonnull String var0, @Nonnull String var1, @Nonnull Codec<?> var2) {
BsonValue var3 = DEFAULT_FIELD_VALUES.get(var0 + "." + var1);
class="kw">return var3 != null ? var3 : getDefaultBsonValue(var2);
}
@Nullable
class="kw">private class="kw">static BsonValue getDefaultBsonValue(@Nonnull Codec<?> var0) {
if (var0 == Codec.BOOLEAN) {
class="kw">return new BsonBoolean(false);
} else if (var0 == Codec.FLOAT || var0 == Codec.DOUBLE) {
class="kw">return new BsonDouble(0.0);
} else if (var0 == Codec.INTEGER) {
class="kw">return new BsonInt32(0);
} else if (var0 == Codec.LONG) {
class="kw">return new BsonInt64(0L);
} else if (var0 == Codec.STRING) {
class="kw">return new BsonString("");
} else if (var0 == Codec.STRING_ARRAY) {
class="kw">return new BsonArray();
} else if (var0 == Vector3dUtil.CODEC) {
BsonDocument var1 = new BsonDocument();
var1.put("X", new BsonDouble(0.0));
var1.put("Y", new BsonDouble(0.0));
var1.put("Z", new BsonDouble(0.0));
class="kw">return var1;
} else {
class="kw">return null;
}
}
@Nonnull
class="kw">private class="kw">static Collection<String> getAssetIdsForSource(@Nullable String var0) {
class="kw">return var0 == null ? List.of() : TriggerVolumesPlugin.get().getAssetIds(var0);
}
class="kw">private Collection<String> resolvePickerIds() {
if (this.getSelectedItem() class="kw">instanceof PlayAnimationEffect var1) {
if ("Animation".equals(this.pendingPickerSource)) {
String var3 = var1.getNpcType();
if (!var3.isBlank()) {
class="kw">return TriggerVolumesPlugin.get().collectAnimationIdsForApplyOn(var3);
}
} else if ("AnimationApplyOn".equals(this.pendingPickerSource)) {
String var4 = var1.getAnimation();
if (var4 != null && !var4.isBlank()) {
class="kw">return TriggerVolumesPlugin.get().collectApplyOnIdsForAnimation(var4);
}
}
}
class="kw">return getAssetIdsForSource(this.pendingPickerSource);
}
@Nullable
class="kw">private class="kw">static String getAssetSourceForField(@Nonnull String var0, @Nonnull String var1) {
class="kw">return TriggerVolumesPlugin.get().getAssetSourceForField(var0, var1);
}
class="kw">public enum Action {
Select,
ChangeWorld,
FilterChanged,
ChangeTab,
UpdateVolumeField,
CommitName,
UpdateTag,
RemoveTag,
DeleteSelection,
Save,
Discard,
Teleport,
ToggleRenameSelected,
ConfirmRenameSelected,
CancelRenameSelected,
SelectEffect,
AddEffect,
RemoveEffect,
DuplicateEffect,
MoveEffectUp,
MoveEffectDown,
UpdateAddTarget,
UpdateAddEffectType,
UpdateAddEventType,
UpdateAddEntry,
ToggleEventCategory,
ToggleRulesCategory,
ToggleRejectionSignal,
UpdateParameter,
CommitEntry,
TogglePrefabPreview,
OpenPresetSave,
PresetNameChanged,
ConfirmSavePreset,
CancelPresetSave,
OpenPresetLoad,
LoadPreset,
CancelPresetLoad,
OpenAssetPicker,
AssetPickerSearch,
AssetPickerSelect,
ConfirmAssetPicker,
PreviewSound,
CancelAssetPicker,
OpenPackBrowser,
ConfirmPackBrowser,
CancelPackBrowser,
OpenCreatePack,
CreatePack,
CancelCreatePack,
PackSearch,
PackSelect;
Action() {
}
}
class="kw">private enum EffectListKind {
CONDITION,
EFFECT,
REJECTION_EFFECT,
RULE;
EffectListKind() {
}
}
class="kw">private record EventCategoryKey(@Nonnull TriggerEventType eventType, int entry) {
class="kw">private EventCategoryKey {
}
}
class="kw">private enum EventCategoryScope {
GROUP,
VOLUME;
EventCategoryScope() {
}
}
class="kw">public enum InspectorTab {
VOLUME("server.customUI.triggerVolumeInspector.tab.volume", "server.customUI.triggerVolumeInspector.tab.volume.tooltip"),
EFFECTS("server.customUI.triggerVolumeInspector.tab.effects", "server.customUI.triggerVolumeInspector.tab.effects.tooltip"),
TAGS("server.customUI.triggerVolumeInspector.tab.tags", "server.customUI.triggerVolumeInspector.tab.tags.tooltip");
class="kw">private class="kw">final String labelKey;
class="kw">private class="kw">final String tooltipKey;
InspectorTab(@Nonnull String nullxx, @Nonnull String nullxxx) {
this.labelKey = nullxx;
this.tooltipKey = nullxxx;
}
@Nonnull
Message label() {
class="kw">return Message.translation(this.labelKey);
}
@Nonnull
Message tooltip() {
class="kw">return Message.translation(this.tooltipKey);
}
}
class="kw">public class="kw">static class PageData {
class="kw">public class="kw">static class="kw">final BuilderCodec<TriggerVolumeInspectorPage.PageData> CODEC = BuilderCodec.builder(
TriggerVolumeInspectorPage.PageData.class, TriggerVolumeInspectorPage.PageData::new
)
.append(
new KeyedCodec<>("Action", new EnumCodec<>(TriggerVolumeInspectorPage.Action.class, EnumCodec.EnumStyle.LEGACY)),
(var0, var1) -> var0.action = var1,
var0 -> var0.action
)
.add()
.append(new KeyedCodec<>("Id", Codec.STRING, false), (var0, var1) -> var0.id = var1, var0 -> var0.id)
.add()
.append(new KeyedCodec<>("IsGroup", Codec.STRING, false), (var0, var1) -> var0.isGroup = var1, var0 -> var0.isGroup)
.add()
.append(new KeyedCodec<>("Tab", Codec.STRING, false), (var0, var1) -> var0.tab = var1, var0 -> var0.tab)
.add()
.append(new KeyedCodec<>("@WorldName", Codec.STRING, false), (var0, var1) -> var0.worldName = var1, var0 -> var0.worldName)
.add()
.append(new KeyedCodec<>("@FilterText", Codec.STRING, false), (var0, var1) -> var0.filterText = var1, var0 -> var0.filterText)
.add()
.append(new KeyedCodec<>("@TagKey", Codec.STRING, false), (var0, var1) -> var0.tagKey = var1, var0 -> var0.tagKey)
.add()
.append(new KeyedCodec<>("@TagValues", Codec.STRING, false), (var0, var1) -> var0.tagValues = var1, var0 -> var0.tagValues)
.add()
.append(new KeyedCodec<>("RemoveTagKey", Codec.STRING, false), (var0, var1) -> var0.removeTagKey = var1, var0 -> var0.removeTagKey)
.add()
.append(new KeyedCodec<>("EffectIndex", Codec.STRING, false), (var0, var1) -> var0.effectIndex = var1, var0 -> var0.effectIndex)
.add()
.append(new KeyedCodec<>("EffectListKind", Codec.STRING, false), (var0, var1) -> var0.effectListKind = var1, var0 -> var0.effectListKind)
.add()
.append(new KeyedCodec<>("@EffectType", Codec.STRING, false), (var0, var1) -> var0.effectType = var1, var0 -> var0.effectType)
.add()
.append(new KeyedCodec<>("@AddTargetKind", Codec.STRING, false), (var0, var1) -> var0.addTargetKind = var1, var0 -> var0.addTargetKind)
.add()
.append(new KeyedCodec<>("@AddEventType", Codec.STRING, false), (var0, var1) -> var0.addEventType = var1, var0 -> var0.addEventType)
.add()
.append(new KeyedCodec<>("@AddEntry", Codec.STRING, false), (var0, var1) -> var0.addEntry = var1, var0 -> var0.addEntry)
.add()
.append(new KeyedCodec<>("EventType", Codec.STRING, false), (var0, var1) -> var0.eventType = var1, var0 -> var0.eventType)
.add()
.append(new KeyedCodec<>("EventEntry", Codec.STRING, false), (var0, var1) -> var0.eventEntry = var1, var0 -> var0.eventEntry)
.add()
.append(new KeyedCodec<>("EventCategoryScope", Codec.STRING, false), (var0, var1) -> var0.eventCategoryScope = var1, var0 -> var0.eventCategoryScope)
.add()
.append(new KeyedCodec<>("ParamKey", Codec.STRING, false), (var0, var1) -> var0.paramKey = var1, var0 -> var0.paramKey)
.add()
.append(new KeyedCodec<>("@ParamValue", Codec.STRING, false), (var0, var1) -> var0.paramValue = var1, var0 -> var0.paramValue)
.add()
.append(new KeyedCodec<>("@ParamBool", Codec.BOOLEAN, false), (var0, var1) -> var0.paramBool = var1, var0 -> var0.paramBool)
.add()
.append(new KeyedCodec<>("@ParamNumericValue", Codec.DOUBLE, false), (var0, var1) -> var0.paramNumericValue = var1, var0 -> var0.paramNumericValue)
.add()
.append(new KeyedCodec<>("@VecX", Codec.DOUBLE, false), (var0, var1) -> var0.vecX = var1, var0 -> var0.vecX)
.add()
.append(new KeyedCodec<>("@VecY", Codec.DOUBLE, false), (var0, var1) -> var0.vecY = var1, var0 -> var0.vecY)
.add()
.append(new KeyedCodec<>("@VecZ", Codec.DOUBLE, false), (var0, var1) -> var0.vecZ = var1, var0 -> var0.vecZ)
.add()
.append(new KeyedCodec<>("@PresetName", Codec.STRING, false), (var0, var1) -> var0.presetName = var1, var0 -> var0.presetName)
.add()
.append(
new KeyedCodec<>("@IncludeVolumeSettings", Codec.BOOLEAN, false),
(var0, var1) -> var0.includeVolumeSettings = var1,
var0 -> var0.includeVolumeSettings
)
.add()
.append(new KeyedCodec<>("PresetId", Codec.STRING, false), (var0, var1) -> var0.presetId = var1, var0 -> var0.presetId)
.add()
.append(new KeyedCodec<>("@AssetPickerQuery", Codec.STRING, false), (var0, var1) -> var0.assetPickerQuery = var1, var0 -> var0.assetPickerQuery)
.add()
.append(
new KeyedCodec<>("AssetPickerSelection", Codec.STRING, false), (var0, var1) -> var0.assetPickerSelection = var1, var0 -> var0.assetPickerSelection
)
.add()
.append(new KeyedCodec<>("Pack", Codec.STRING, false), (var0, var1) -> var0.packBrowserData.pack = var1, var0 -> var0.packBrowserData.pack)
.add()
.append(new KeyedCodec<>("@PackSearch", Codec.STRING, false), (var0, var1) -> var0.packBrowserData.search = var1, var0 -> var0.packBrowserData.search)
.add()
.append(
new KeyedCodec<>("@CreateName", Codec.STRING, false),
(var0, var1) -> var0.packBrowserData.createName = var1,
var0 -> var0.packBrowserData.createName
)
.add()
.append(
new KeyedCodec<>("@CreateGroup", Codec.STRING, false),
(var0, var1) -> var0.packBrowserData.createGroup = var1,
var0 -> var0.packBrowserData.createGroup
)
.add()
.append(
new KeyedCodec<>("@CreateDescription", Codec.STRING, false),
(var0, var1) -> var0.packBrowserData.createDescription = var1,
var0 -> var0.packBrowserData.createDescription
)
.add()
.append(
new KeyedCodec<>("@CreateVersion", Codec.STRING, false),
(var0, var1) -> var0.packBrowserData.createVersion = var1,
var0 -> var0.packBrowserData.createVersion
)
.add()
.append(
new KeyedCodec<>("@CreateWebsite", Codec.STRING, false),
(var0, var1) -> var0.packBrowserData.createWebsite = var1,
var0 -> var0.packBrowserData.createWebsite
)
.add()
.append(
new KeyedCodec<>("@CreateAuthorName", Codec.STRING, false),
(var0, var1) -> var0.packBrowserData.createAuthorName = var1,
var0 -> var0.packBrowserData.createAuthorName
)
.add()
.append(
new KeyedCodec<>("ValidateCreate", Codec.STRING, false),
(var0, var1) -> var0.packBrowserData.validateCreate = var1,
var0 -> var0.packBrowserData.validateCreate
)
.add()
.append(
new KeyedCodec<>("@CreateTargetDir", Codec.STRING, false),
(var0, var1) -> var0.packBrowserData.createTargetDir = var1,
var0 -> var0.packBrowserData.createTargetDir
)
.add()
.append(
new KeyedCodec<>("@DirectoryFilter", Codec.STRING, false),
(var0, var1) -> var0.packBrowserData.directoryFilter = var1,
var0 -> var0.packBrowserData.directoryFilter
)
.add()
.build();
class="kw">public TriggerVolumeInspectorPage.Action action;
class="kw">public String id;
class="kw">public String isGroup;
class="kw">public String tab;
class="kw">public String worldName;
class="kw">public String filterText;
class="kw">public String tagKey;
class="kw">public String tagValues;
class="kw">public String removeTagKey;
class="kw">public String effectIndex;
class="kw">public String effectListKind;
class="kw">public String effectType;
class="kw">public String addTargetKind;
class="kw">public String addEventType;
class="kw">public String addEntry;
class="kw">public String eventType;
class="kw">public String eventEntry;
class="kw">public String eventCategoryScope;
class="kw">public String paramKey;
class="kw">public String paramValue;
class="kw">public Boolean paramBool;
class="kw">public Double paramNumericValue;
class="kw">public Double vecX;
class="kw">public Double vecY;
class="kw">public Double vecZ;
class="kw">public String presetName;
class="kw">public Boolean includeVolumeSettings;
class="kw">public String presetId;
class="kw">public String assetPickerQuery;
class="kw">public String assetPickerSelection;
class="kw">public class="kw">final AssetPackSaveBrowserEventData packBrowserData = new AssetPackSaveBrowserEventData();
class="kw">public PageData() {
}
}
class="kw">private record RowEntry(@Nonnull String id, boolean isGroup, int listIndex) {
class="kw">private RowEntry {
}
}
}