@@ -46,30 +46,38 @@ private enum ProcessResult {
46
46
}
47
47
48
48
public static void tick () {
49
+ tick (STATE , false );
50
+ }
51
+
52
+ public static boolean tick (TooltipRenderer .State state , boolean inspect ) {
49
53
try (var ignored = ProfilerUtil .profile ("wthit:tick" )) {
50
- _tick ();
54
+ return _tick (state , inspect );
51
55
}
52
56
}
53
57
54
- private static void _tick () {
58
+ private static boolean _tick (TooltipRenderer . State state , boolean inspect ) {
55
59
STATE .render = false ;
56
60
57
61
var client = Minecraft .getInstance ();
58
62
var config = Waila .CONFIG .get ().getGeneral ();
59
63
60
- if (client .options .hideGui ) return ;
61
- if (client .screen != null && !(client .screen instanceof ChatScreen )) return ;
62
- if (client .level == null || !config .isDisplayTooltip ()) return ;
63
- if (config .getDisplayMode () == IWailaConfig .General .DisplayMode .HOLD_KEY && !WailaClient .keyShowOverlay .isDown ()) return ;
64
- if (config .isHideFromPlayerList () && ((PlayerTabOverlayAccess ) client .gui .getTabList ()).wthit_isVisible ()) return ;
65
- if (config .isHideFromDebug () && client .getDebugOverlay ().showDebugScreen ()) return ;
66
- if (client .gameMode == null ) return ;
64
+ if (client .level == null ) return false ;
65
+ if (client .gameMode == null ) return false ;
66
+
67
+ if (!inspect ) {
68
+ if (client .options .hideGui ) return false ;
69
+ if (client .screen != null && !(client .screen instanceof ChatScreen )) return false ;
70
+ if (!config .isDisplayTooltip ()) return false ;
71
+ if (config .getDisplayMode () == IWailaConfig .General .DisplayMode .HOLD_KEY && !WailaClient .keyShowOverlay .isDown ()) return false ;
72
+ if (config .isHideFromPlayerList () && ((PlayerTabOverlayAccess ) client .gui .getTabList ()).wthit_isVisible ()) return false ;
73
+ if (config .isHideFromDebug () && client .getDebugOverlay ().showDebugScreen ()) return false ;
74
+ }
67
75
68
76
Player player = client .player ;
69
- if (player == null ) return ;
77
+ if (player == null ) return false ;
70
78
71
79
var camera = client .cameraEntity ;
72
- if (camera == null ) return ;
80
+ if (camera == null ) return false ;
73
81
74
82
var frameTime = client .getDeltaTracker ().getGameTimeDeltaPartialTick (true );
75
83
var pickRange = Math .max (player .blockInteractionRange (), player .entityInteractionRange ());
@@ -87,14 +95,16 @@ private static void _tick() {
87
95
break ;
88
96
}
89
97
90
- if (castOrigin == null ) return ;
98
+ if (castOrigin == null ) return false ;
91
99
92
100
for (var target : results ) {
93
- if (processTarget (target , client , player , castOrigin , castDirection , pickRange , config ) == ProcessResult .BREAK ) break ;
101
+ if (processTarget (state , target , client , player , castOrigin , castDirection , pickRange , config ) == ProcessResult .BREAK ) break ;
94
102
}
103
+
104
+ return true ;
95
105
}
96
106
97
- private static ProcessResult redirectTarget (HitResult target , TargetRedirector redirector , Minecraft client , Player player , Vec3 castOrigin , Vec3 castDirection , double pickRange , WailaConfig .General config ) {
107
+ private static ProcessResult redirectTarget (TooltipRenderer . State state , HitResult target , TargetRedirector redirector , Minecraft client , Player player , Vec3 castOrigin , Vec3 castDirection , double pickRange , WailaConfig .General config ) {
98
108
if (redirector .nowhere ) return ProcessResult .BREAK ;
99
109
if (redirector .behind ) return ProcessResult .CONTINUE ;
100
110
@@ -103,18 +113,18 @@ private static ProcessResult redirectTarget(HitResult target, TargetRedirector r
103
113
if (redirect .getType () == HitResult .Type .MISS ) return ProcessResult .CONTINUE ;
104
114
105
115
return processTarget (
106
- redirect , client , player ,
116
+ state , redirect , client , player ,
107
117
castOrigin .subtract (target .getLocation ().subtract (redirect .getLocation ())),
108
118
castDirection , pickRange , config );
109
119
}
110
120
111
- private static ProcessResult processTarget (HitResult target , Minecraft client , Player player , Vec3 castOrigin , Vec3 castDirection , double pickRange , WailaConfig .General config ) {
121
+ private static ProcessResult processTarget (TooltipRenderer . State state , HitResult target , Minecraft client , Player player , Vec3 castOrigin , Vec3 castDirection , double pickRange , WailaConfig .General config ) {
112
122
var accessor = ClientAccessor .INSTANCE ;
113
123
114
124
//noinspection DataFlowIssue
115
125
accessor .set (client .level , player , target , client .cameraEntity , castOrigin , castDirection , pickRange , client .getDeltaTracker ().getGameTimeDeltaPartialTick (true ));
116
126
117
- TooltipRenderer .beginBuild (STATE );
127
+ TooltipRenderer .beginBuild (state );
118
128
119
129
if (target .getType () == HitResult .Type .BLOCK ) {
120
130
var block = accessor .getBlock ();
@@ -142,7 +152,7 @@ private static ProcessResult processTarget(HitResult target, Minecraft client, P
142
152
}
143
153
144
154
if (redirectResult != null && !redirector .self ) {
145
- return redirectTarget (target , redirector , client , player , castOrigin , castDirection , pickRange , config );
155
+ return redirectTarget (state , target , redirector , client , player , castOrigin , castDirection , pickRange , config );
146
156
}
147
157
148
158
if (block instanceof LiquidBlock ) {
@@ -151,10 +161,10 @@ private static ProcessResult processTarget(HitResult target, Minecraft client, P
151
161
return ProcessResult .CONTINUE ;
152
162
}
153
163
154
- var state = ComponentHandler .getOverrideBlock (target );
155
- if (state == IBlockComponentProvider .EMPTY_BLOCK_STATE ) return ProcessResult .CONTINUE ;
164
+ var blockState = ComponentHandler .getOverrideBlock (target );
165
+ if (blockState == IBlockComponentProvider .EMPTY_BLOCK_STATE ) return ProcessResult .CONTINUE ;
156
166
157
- accessor .setState (state );
167
+ accessor .setState (blockState );
158
168
159
169
requestBlockData (accessor );
160
170
@@ -187,7 +197,7 @@ private static ProcessResult processTarget(HitResult target, Minecraft client, P
187
197
}
188
198
189
199
if (redirectResult != null && !redirector .self ) {
190
- return redirectTarget (target , redirector , client , player , castOrigin , castDirection , pickRange , config );
200
+ return redirectTarget (state , target , redirector , client , player , castOrigin , castDirection , pickRange , config );
191
201
}
192
202
193
203
if (!PluginConfig .CLIENT .getBoolean (WailaConstants .CONFIG_SHOW_ENTITY )) return ProcessResult .CONTINUE ;
0 commit comments