TModLoader v1.4.4.9
TModLoader source code documentation
Loading...
Searching...
No Matches

◆ Draw()

void Terraria.GameContent.UI.NewMultiplayerClosePlayersOverlay.Draw ( )
inline

Implements Terraria.GameContent.UI.IMultiplayerClosePlayersOverlay.

Definition at line 190 of file NewMultiplayerClosePlayersOverlay.cs.

191 {
192 //IL_0038: Unknown result type (might be due to invalid IL or missing references)
193 //IL_003d: Unknown result type (might be due to invalid IL or missing references)
194 //IL_0065: Unknown result type (might be due to invalid IL or missing references)
195 //IL_0251: Unknown result type (might be due to invalid IL or missing references)
196 //IL_00e1: Unknown result type (might be due to invalid IL or missing references)
197 //IL_0224: Unknown result type (might be due to invalid IL or missing references)
198 //IL_0226: Unknown result type (might be due to invalid IL or missing references)
199 //IL_0157: Unknown result type (might be due to invalid IL or missing references)
200 //IL_017d: Unknown result type (might be due to invalid IL or missing references)
201 //IL_01b7: Unknown result type (might be due to invalid IL or missing references)
202 //IL_01bc: Unknown result type (might be due to invalid IL or missing references)
203 //IL_01c0: Unknown result type (might be due to invalid IL or missing references)
204 //IL_01d1: Unknown result type (might be due to invalid IL or missing references)
205 //IL_01d8: Unknown result type (might be due to invalid IL or missing references)
206 //IL_01e6: Unknown result type (might be due to invalid IL or missing references)
207 //IL_0204: Unknown result type (might be due to invalid IL or missing references)
208 //IL_0206: Unknown result type (might be due to invalid IL or missing references)
209 //IL_0208: Unknown result type (might be due to invalid IL or missing references)
210 //IL_020e: Unknown result type (might be due to invalid IL or missing references)
211 //IL_02fb: Unknown result type (might be due to invalid IL or missing references)
212 //IL_0342: Unknown result type (might be due to invalid IL or missing references)
213 int teamNamePlateDistance = Main.teamNamePlateDistance;
214 if (teamNamePlateDistance <= 0)
215 {
216 return;
217 }
218 _playerOnScreenCache.Clear();
219 _playerOffScreenCache.Clear();
220 SpriteBatch spriteBatch = Main.spriteBatch;
222 int screenWidth = Main.screenWidth;
223 int screenHeight = Main.screenHeight;
224 Vector2 screenPosition = Main.screenPosition;
226 int num = teamNamePlateDistance * 8;
227 Player[] player = Main.player;
228 int myPlayer = Main.myPlayer;
229 byte mouseTextColor = Main.mouseTextColor;
230 Color[] teamColor = Main.teamColor;
231 _ = Main.screenPosition;
232 Player player2 = player[myPlayer];
233 float num2 = (float)(int)mouseTextColor / 255f;
234 if (player2.team == 0)
235 {
236 return;
237 }
238 DynamicSpriteFont value = FontAssets.MouseText.Value;
239 Color color = default(Color);
240 for (int i = 0; i < 255; i++)
241 {
242 if (i == myPlayer)
243 {
244 continue;
245 }
246 Player player3 = player[i];
247 if (!player3.active || player3.dead || player3.team != player2.team)
248 {
249 continue;
250 }
251 string name = player3.name;
252 GetDistance(screenWidth, screenHeight, screenPosition, player2, value, player3, name, out var namePlatePos, out var namePlateDist, out var measurement);
253 ((Color)(ref color))._002Ector((int)(byte)((float)(int)((Color)(ref teamColor[player3.team])).R * num2), (int)(byte)((float)(int)((Color)(ref teamColor[player3.team])).G * num2), (int)(byte)((float)(int)((Color)(ref teamColor[player3.team])).B * num2), (int)mouseTextColor);
254 if (namePlateDist > 0f)
255 {
256 float num3 = player3.Distance(player2.Center);
257 if (!(num3 > (float)num))
258 {
259 float num4 = 20f;
260 float num5 = -27f;
261 num5 -= (measurement.X - 85f) / 2f;
262 string textValue = Language.GetTextValue("GameUI.PlayerDistance", (int)(num3 / 16f * 2f));
263 Vector2 npDistPos = value.MeasureString(textValue);
264 npDistPos.X = namePlatePos.X - num5;
265 npDistPos.Y = namePlatePos.Y + measurement.Y / 2f - npDistPos.Y / 2f - num4;
266 _playerOffScreenCache.Add(new PlayerOffScreenCache(name, namePlatePos, color, npDistPos, textValue, player3, measurement));
267 }
268 }
269 else
270 {
271 _playerOnScreenCache.Add(new PlayerOnScreenCache(name, namePlatePos, color));
272 }
273 }
274 spriteBatch.End();
275 spriteBatch.Begin((SpriteSortMode)0, (BlendState)null, (SamplerState)null, (DepthStencilState)null, (RasterizerState)null, (Effect)null, Main.UIScaleMatrix);
276 for (int j = 0; j < _playerOnScreenCache.Count; j++)
277 {
278 _playerOnScreenCache[j].DrawPlayerName_WhenPlayerIsOnScreen(spriteBatch);
279 }
280 for (int k = 0; k < _playerOffScreenCache.Count; k++)
281 {
282 _playerOffScreenCache[k].DrawPlayerName(spriteBatch);
283 }
284 for (int l = 0; l < _playerOffScreenCache.Count; l++)
285 {
286 _playerOffScreenCache[l].DrawPlayerDistance(spriteBatch);
287 }
288 spriteBatch.End();
289 spriteBatch.Begin((SpriteSortMode)0, (BlendState)null, (SamplerState)null, (DepthStencilState)null, (RasterizerState)null, (Effect)null, Main.UIScaleMatrix);
290 for (int m = 0; m < _playerOffScreenCache.Count; m++)
291 {
292 _playerOffScreenCache[m].DrawLifeBar();
293 }
294 spriteBatch.End();
295 spriteBatch.Begin((SpriteSortMode)1, (BlendState)null, (SamplerState)null, (DepthStencilState)null, (RasterizerState)null, (Effect)null, Main.UIScaleMatrix);
296 for (int n = 0; n < _playerOffScreenCache.Count; n++)
297 {
298 _playerOffScreenCache[n].DrawPlayerHead();
299 }
300 }
static void GetDistance(int testWidth, int testHeight, Vector2 testPosition, Player localPlayer, DynamicSpriteFont font, Player player, string nameToShow, out Vector2 namePlatePos, out float namePlateDist, out Vector2 measurement)
static string GetTextValue(string key)
Retrieves the text value for a specified localization key. The text returned will be for the currentl...
Definition Language.cs:35
Contains methods to access or retrieve localization values. The Localization Guideteaches more about ...
Definition Language.cs:12

References Terraria.GameContent.UI.NewMultiplayerClosePlayersOverlay._playerOffScreenCache, Terraria.GameContent.UI.NewMultiplayerClosePlayersOverlay._playerOnScreenCache, Terraria.GameContent.UI.NewMultiplayerClosePlayersOverlay.GetDistance(), Terraria.Localization.Language.GetTextValue(), Terraria.GameContent.FontAssets.MouseText, Terraria.Main.mouseTextColor, Terraria.Main.myPlayer, Terraria.Main.player, Terraria.Main.screenHeight, Terraria.Main.screenPosition, Terraria.Main.screenWidth, Terraria.GameInput.PlayerInput.SetZoom_UI(), Terraria.GameInput.PlayerInput.SetZoom_World(), Terraria.Main.spriteBatch, Terraria.Main.teamColor, Terraria.Main.teamNamePlateDistance, and Terraria.Main.UIScaleMatrix.

+ Here is the call graph for this function: