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

◆ DrawLine()

void Terraria.GameContent.UI.WiresUI.WiresRadial.DrawLine ( SpriteBatch spriteBatch)
inlineprivate

Definition at line 177 of file WiresUI.cs.

178 {
179 if (active || _lineOpacity == 0f)
180 {
181 return;
182 }
183 Vector2 vector = Main.MouseScreen;
184 Vector2 vector2 = new Vector2(Main.screenWidth / 2, Main.screenHeight - 70);
186 {
187 vector = Vector2.Zero;
188 }
189 Vector2 vector3 = vector - vector2;
192 vector3.ToRotation();
193 vector3.Length();
194 bool flag = false;
195 bool drawToolAllowActuators = Settings.DrawToolAllowActuators;
196 for (int i = 0; i < 6; i++)
197 {
198 if (!drawToolAllowActuators && i == 5)
199 {
200 continue;
201 }
202 bool flag2 = Settings.ToolMode.HasFlag((Settings.MultiToolMode)(1 << i));
203 if (i == 5)
204 {
205 flag2 = Settings.ToolMode.HasFlag(Settings.MultiToolMode.Actuator);
206 }
207 Vector2 vector4 = vector2 + Vector2.UnitX * (45f * ((float)i - 1.5f));
208 int num = i;
209 if (i == 0)
210 {
211 num = 3;
212 }
213 if (i == 3)
214 {
215 num = 0;
216 }
217 switch (num)
218 {
219 case 0:
220 case 1:
221 vector4 = vector2 + new Vector2((45f + (float)(drawToolAllowActuators ? 15 : 0)) * (float)(2 - num), 0f) * _lineOpacity;
222 break;
223 case 2:
224 case 3:
225 vector4 = vector2 + new Vector2((0f - (45f + (float)(drawToolAllowActuators ? 15 : 0))) * (float)(num - 1), 0f) * _lineOpacity;
226 break;
227 case 5:
228 vector4 = vector2 + new Vector2(0f, 22f) * _lineOpacity;
229 break;
230 case 4:
231 flag2 = false;
232 vector4 = vector2 - new Vector2(0f, drawToolAllowActuators ? 22f : 0f) * _lineOpacity;
233 break;
234 }
235 bool flag3 = false;
237 {
238 flag3 = Vector2.Distance(vector4, vector) < 19f * _lineOpacity;
239 }
240 if (flag)
241 {
242 flag3 = false;
243 }
244 if (flag3)
245 {
246 flag = true;
247 }
248 Texture2D value = TextureAssets.WireUi[(Settings.ToolMode.HasFlag(Settings.MultiToolMode.Cutter) ? 8 : 0) + (flag3 ? 1 : 0)].Value;
249 Texture2D texture2D = null;
250 switch (i)
251 {
252 case 0:
253 case 1:
254 case 2:
255 case 3:
256 texture2D = TextureAssets.WireUi[2 + i].Value;
257 break;
258 case 4:
259 texture2D = TextureAssets.WireUi[Settings.ToolMode.HasFlag(Settings.MultiToolMode.Cutter) ? 7 : 6].Value;
260 break;
261 case 5:
262 texture2D = TextureAssets.WireUi[10].Value;
263 break;
264 }
265 Color color = Color.White;
266 Color color2 = Color.White;
267 if (!flag2 && i != 4)
268 {
269 if (flag3)
270 {
271 color2 = new Color(100, 100, 100);
272 color2 = new Color(120, 120, 120);
273 color = new Color(200, 200, 200);
274 }
275 else
276 {
277 color2 = new Color(150, 150, 150);
278 color2 = new Color(80, 80, 80);
279 color = new Color(100, 100, 100);
280 }
281 }
282 Utils.CenteredRectangle(vector4, new Vector2(40f));
283 if (flag3)
284 {
285 if (Main.mouseLeft && Main.mouseLeftRelease)
286 {
287 switch (i)
288 {
289 case 0:
290 Settings.ToolMode ^= Settings.MultiToolMode.Red;
291 break;
292 case 1:
293 Settings.ToolMode ^= Settings.MultiToolMode.Green;
294 break;
295 case 2:
296 Settings.ToolMode ^= Settings.MultiToolMode.Blue;
297 break;
298 case 3:
299 Settings.ToolMode ^= Settings.MultiToolMode.Yellow;
300 break;
301 case 4:
302 Settings.ToolMode ^= Settings.MultiToolMode.Cutter;
303 break;
304 case 5:
305 Settings.ToolMode ^= Settings.MultiToolMode.Actuator;
306 break;
307 }
308 }
309 if (!Main.mouseLeft || Main.player[Main.myPlayer].mouseInterface)
310 {
311 Main.player[Main.myPlayer].mouseInterface = true;
312 }
313 OnWiresMenu = true;
314 }
315 spriteBatch.Draw(value, vector4, null, color * _lineOpacity, 0f, value.Size() / 2f, _lineOpacity, SpriteEffects.None, 0f);
316 spriteBatch.Draw(texture2D, vector4, null, color2 * _lineOpacity, 0f, texture2D.Size() / 2f, _lineOpacity, SpriteEffects.None, 0f);
317 }
318 if (Main.mouseLeft && Main.mouseLeftRelease && !flag)
319 {
320 active = false;
321 }
322 }
void Draw(Texture2D texture, Vector2 position, Color color)
static float Dot(Vector2 value1, Vector2 value2)
Definition Vector2.cs:121
static float Distance(Vector2 value1, Vector2 value2)
Definition Vector2.cs:91

References Terraria.GameContent.UI.WiresUI.WiresRadial._lineOpacity, Terraria.GameContent.UI.WiresUI.WiresRadial.active, Terraria.Utils.CenteredRectangle(), Microsoft.Xna.Framework.Graphics.Color, Microsoft.Xna.Framework.Vector2.Distance(), Microsoft.Xna.Framework.Vector2.Dot(), Microsoft.Xna.Framework.Graphics.SpriteBatch.Draw(), Terraria.GameContent.UI.WiresUI.Settings.DrawToolAllowActuators, Microsoft.Xna.Framework.Vector2.Length(), Terraria.Main.mouseLeft, Terraria.Main.mouseLeftRelease, Terraria.Main.MouseScreen, Terraria.Main.myPlayer, Microsoft.Xna.Framework.Vector2.Normalize(), Terraria.GameContent.UI.WiresUI.WiresRadial.OnWiresMenu, Terraria.Main.player, Terraria.Main.screenHeight, Terraria.Main.screenWidth, Terraria.GameContent.UI.WiresUI.Settings.ToolMode, Microsoft.Xna.Framework.Vector2.UnitX, Microsoft.Xna.Framework.Vector2.UnitY, Terraria.GameInput.PlayerInput.UsingGamepad, System.value, Microsoft.Xna.Framework.Graphics.Vector2, Microsoft.Xna.Framework.Color.White, Terraria.GameContent.TextureAssets.WireUi, and Microsoft.Xna.Framework.Vector2.Zero.